/* ==========================================================================
   Astra PSTC — global styles. Component spec v2 (ACC design system alignment).
   Component CSS lives with each block in /blocks. Keep this file short.
   ========================================================================== */

/* --- Tokens that the spec expresses as CSS variables (the palette itself is theme.json) --- */
:root {
	--pstc-black: #000000; --pstc-white: #FFFFFF; --pstc-purple: #4D1979; --pstc-deep: #2E1A47; --pstc-orange: #D23F00;
	--pstc-yellow: #F0B323; --pstc-lime: #C1D82F; --pstc-grey: #5E5E5E; --pstc-light: #F4F2F5;
	--pstc-display: Montserrat, 'Helvetica Neue', Arial, sans-serif;
	--pstc-serif: 'Libre Baskerville', Georgia, 'Times New Roman', serif;
	--pstc-ease: 300ms ease;
	--link-line: var(--pstc-orange);   /* underline colour: orange on light, yellow on dark (see .pstc-dark) */
	--focus: var(--pstc-black);        /* focus ring colour: black on light, white on dark */
}
/* Every purple / dark-purple section sets the dark context. Blocks add .pstc-dark themselves; editors can add it to a Group. */
.pstc-dark, .has-pstc-purple-background-color, .has-pstc-deep-background-color, .has-pstc-band-gradient-background,
.pstc-hero.is-cover, .pstc-hero.is-section, .pstc-hero.is-tinted, .pstc-hero.is-flat, .pstc-stat-band, .pstc-cta.is-purple, .pstc-cta.is-deep, .site-footer {
	--link-line: var(--pstc-yellow); --focus: var(--pstc-white);
}

/* --- Type rendering --- */
strong, b { font-weight: 700; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-weight: 500; }
/* §1 Text colour: black on light, white on dark. Headings: Title Case, never transformed. */
body, .entry-content, .entry-content p, .entry-content li { color: var(--pstc-black); }
.entry-content :is(h1, h2, h3, h4, h5, h6) { color: var(--pstc-black); text-transform: none; letter-spacing: 0; font-family: var(--pstc-display); }
.entry-content h1 { font-family: var(--pstc-serif); font-weight: 700; font-size: clamp(40px, 5vw, 68px); line-height: 1.15; }
.entry-content h2 { font-weight: 400; font-size: clamp(30px, 3.4vw, 42px); line-height: 1.1; }
.entry-content h3 { font-weight: 500; font-size: clamp(28px, 3vw, 36px); line-height: 1.2; }
.entry-content h4 { font-weight: 600; font-size: clamp(24px, 2.6vw, 30px); line-height: 1.2; }
.entry-content h5 { font-weight: 600; font-size: clamp(20px, 2vw, 24px); line-height: 1.3; }
.entry-content h6 { font-weight: 600; font-size: clamp(18px, 1.8vw, 22px); line-height: 1.2; }
.entry-content p, .entry-content li, .entry-content td { font-size: 16px; line-height: 1.7; }
.entry-content .has-lead-font-size, .entry-content .is-style-lead { font-size: 18px; line-height: 1.7; }
.pstc-dark, .pstc-dark :is(h1, h2, h3, h4, h5, h6, p, li) { color: var(--pstc-white); }

/* --- §16 Focus (all interactive elements): 1px outline in the context colour --- */
:where(a, button, [role="button"], input, select, textarea, summary):focus-visible { outline: 1px solid var(--focus); outline-offset: 2px; box-shadow: none; }
:where(a, button):focus:not(:focus-visible) { outline: none; }

/* --- §5 Links --- */
/* (component links — breadcrumbs, Section menu, Link list — style themselves) */
.entry-content :is(p, li, td, dd, figcaption, .pstc-links) a:not(.wp-block-button__link):not(.pstc-crumbs__link):not(.pstc-subnav__link):not(.pstc-link-item__link) {
	color: inherit; font-weight: 700; text-decoration: underline;
	text-decoration-color: var(--link-line); text-decoration-thickness: 1px; text-underline-offset: 5px;
	transition: text-decoration-thickness 200ms ease;
}
.entry-content :is(p, li, td, dd, figcaption, .pstc-links) a:not(.wp-block-button__link):not(.pstc-crumbs__link):not(.pstc-subnav__link):not(.pstc-link-item__link):hover { text-decoration-thickness: 3px; }
/* Secondary CTA (Read full bio, Compare both tracks, Start again): 700 16px caps, 2px line → 3px */
.pstc-secondary, .wp-block-button.is-style-text .wp-block-button__link {
	display: inline-block; background: transparent; border: 0; border-radius: 0; padding: 0 0 4px; margin: 0; cursor: pointer;
	font-family: var(--pstc-display); font-size: 16px; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; line-height: 1.2;
	color: inherit; text-decoration: none; border-bottom: 2px solid var(--link-line); transition: border-bottom-width var(--pstc-ease);
}
.pstc-secondary:hover, .wp-block-button.is-style-text .wp-block-button__link:hover,
.pstc-secondary:focus-visible, .wp-block-button.is-style-text .wp-block-button__link:focus-visible { border-bottom-width: 3px; color: inherit; background: transparent; }
.pstc-secondary.is-jump::after { content: " \2193"; }

/* --- §4 Buttons: pill, caps, borders drawn with inset box-shadow so they can grow without moving anything --- */
.wp-block-button .wp-block-button__link, .pstc-btn {
	display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--pstc-display); font-size: 16px; font-weight: 700; line-height: 1; letter-spacing: 0.02em; text-transform: uppercase;
	padding: 14px 28px; border-radius: 999px; border: 0; white-space: nowrap; text-decoration: none; cursor: pointer;
	transition: background-color var(--pstc-ease), color var(--pstc-ease), box-shadow var(--pstc-ease);
}
/* Primary (core "Fill", the old "Accent" too) */
.wp-block-button:not(.is-style-outline):not(.is-style-text) .wp-block-button__link, .pstc-btn.is-primary {
	background: var(--pstc-orange); color: var(--pstc-white); box-shadow: inset 0 0 0 3px var(--pstc-orange);
}
.wp-block-button:not(.is-style-outline):not(.is-style-text) .wp-block-button__link:hover, .pstc-btn.is-primary:hover { background: var(--pstc-white); color: var(--pstc-black); }
.pstc-dark .wp-block-button:not(.is-style-outline):not(.is-style-text) .wp-block-button__link:hover, .pstc-dark .pstc-btn.is-primary:hover { background: transparent; color: var(--pstc-white); }
/* Outline */
.wp-block-button.is-style-outline .wp-block-button__link, .pstc-btn.is-outline {
	background: transparent; color: var(--pstc-black); box-shadow: inset 0 0 0 1.5px var(--pstc-orange);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover, .pstc-btn.is-outline:hover { box-shadow: inset 0 0 0 3px var(--pstc-orange); background: transparent; color: var(--pstc-black); }
.pstc-dark .wp-block-button.is-style-outline .wp-block-button__link, .pstc-dark .pstc-btn.is-outline {
	background: rgba(255, 255, 255, 0.10); color: var(--pstc-white); box-shadow: inset 0 0 0 1.5px var(--pstc-yellow);
}
.pstc-dark .wp-block-button.is-style-outline .wp-block-button__link:hover, .pstc-dark .pstc-btn.is-outline:hover { background: transparent; color: var(--pstc-white); box-shadow: inset 0 0 0 3px var(--pstc-yellow); }
.wp-block-button .wp-block-button__link:focus-visible, .pstc-btn:focus-visible { outline: 1px solid var(--focus) !important; outline-offset: 2px !important; }
.wp-block-button .wp-block-button__link:focus:not(:focus-visible) { outline: none; }

/* --- §3 Subtext (eyebrow): Paragraph → Styles → Eyebrow, and every component eyebrow --- */
.is-style-pstc-eyebrow, .pstc-eyebrow {
	font-family: var(--pstc-display) !important; font-size: 16px !important; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; line-height: 1;
	color: inherit;
}

/* --- Lime marker (decorative): dot + line --- */
.pstc-marker { display: flex; align-items: center; gap: 8px; height: 13px; margin-bottom: 18px; }
.pstc-marker::before { content: ""; width: 13px; height: 13px; border-radius: 50%; background: var(--pstc-lime); flex: none; }
.pstc-marker::after  { content: ""; width: 44px; height: 3px; background: var(--pstc-lime); }
.pstc-marker.is-small { height: 9px; margin-bottom: 0; }
.pstc-marker.is-small::before { width: 9px; height: 9px; }
.pstc-marker.is-small::after  { width: 100%; height: 1px; background: var(--pstc-lime); }

/* --- Heading → Styles → Ruled --- */
.is-style-ruled { border-bottom: 3px solid var(--pstc-black); padding-bottom: 18px; margin-bottom: 36px; }

/* --- Details → Styles → FAQ --- */
.wp-block-details.is-style-pstc-faq { max-width: 900px; border-bottom: 1px solid var(--pstc-grey); margin: 0; }
.wp-block-details.is-style-pstc-faq:first-of-type, .wp-block-details.is-style-pstc-faq:not(.wp-block-details + .wp-block-details) { border-top: 1px solid var(--pstc-grey); }
.wp-block-details.is-style-pstc-faq > summary {
	display: flex; justify-content: space-between; gap: 32px; align-items: flex-start;
	font-family: var(--pstc-display); font-weight: 600; font-size: 18px; line-height: 1.5; text-transform: none; color: var(--pstc-black);
	padding: 24px 26px; cursor: pointer; list-style: none; background: transparent; transition: background var(--pstc-ease);
}
.wp-block-details.is-style-pstc-faq > summary::-webkit-details-marker { display: none; }
.wp-block-details.is-style-pstc-faq > summary::after { content: "+" / ""; font-family: inherit; font-size: 34px; line-height: 0.8; font-weight: 300; color: var(--pstc-orange); flex: none; transition: transform 420ms cubic-bezier(0.4, 0, 0.2, 1); }
.wp-block-details.is-style-pstc-faq[open] > summary::after { transform: rotate(45deg); }
.wp-block-details.is-style-pstc-faq > summary:hover, .wp-block-details.is-style-pstc-faq[open] > summary { background: var(--pstc-light); }
.wp-block-details.is-style-pstc-faq > :not(summary) { max-width: 760px; padding: 0 26px; font-size: 16px; line-height: 1.7; color: var(--pstc-black); }
.wp-block-details.is-style-pstc-faq > summary + * { padding-top: 20px; }
.wp-block-details.is-style-pstc-faq > :last-child:not(summary) { padding-bottom: 28px; }
.wp-block-details.is-style-pstc-faq > p { margin: 0 0 16px; }

/* --- List → Styles → Hairline list --- */
.wp-block-list.is-style-pstc-hairline { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.wp-block-list.is-style-pstc-hairline > li { font-size: 16px; line-height: 1.7; color: var(--pstc-black); border-top: 1px solid rgba(94, 94, 94, 0.22); padding-top: 10px; margin: 0; }

/* --- Tables --- */
.wp-block-table th { font-family: var(--pstc-display); font-size: 14px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; background: var(--pstc-light); color: var(--pstc-black); }
.wp-block-table td, .wp-block-table th { border-color: rgba(94, 94, 94, 0.22); }
@media (max-width: 640px) {
	/* A label/value table (no header row) stacks on phones; tables with a header row keep their grid and scroll. */
	.wp-block-table table:not(:has(th)) { border: 0; }
	.wp-block-table table:not(:has(th)) tbody, .wp-block-table table:not(:has(th)) tr, .wp-block-table table:not(:has(th)) td { display: block; width: 100%; box-sizing: border-box; }
	.wp-block-table table:not(:has(th)) tr { padding: 14px 0 16px; border: 0; border-top: 1px solid rgba(94, 94, 94, 0.22); }
	.wp-block-table table:not(:has(th)) tr:last-child { border-bottom: 1px solid rgba(94, 94, 94, 0.22); }
	.wp-block-table table:not(:has(th)) td { border: 0; padding: 0; }
	.wp-block-table table:not(:has(th)) td:first-child { font-family: var(--pstc-display); font-size: 14px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--pstc-black); margin-bottom: 6px; }
	/* Astra's scroll-to-top floats over buttons and text on phones. */
	#ast-scroll-top, .ast-scroll-to-top-enable #ast-scroll-top { display: none !important; }
}
#ast-scroll-top:focus-visible { outline-offset: -2px; }

/* --- Photos: 12px radius on content images (not heroes) --- */
.entry-content .wp-block-image img, .entry-content .wp-block-media-text__media img { border-radius: 12px; }

/* ==========================================================================
   §8 Site header (Astra Header Builder markup)
   ========================================================================== */
.site-header .ast-site-title-wrap, .site-header .site-title, .site-header .site-description { display: none !important; }
.ast-primary-header-bar, .site-header .main-header-bar { background: var(--pstc-white); border-bottom: 1px solid rgba(94, 94, 94, 0.22); }
#masthead .site-logo-img .custom-logo-link img, #masthead .site-logo-img img { width: auto; height: auto; max-width: min(100%, clamp(220px, 32vw, 362px)); max-height: none; aspect-ratio: auto; object-fit: contain; }
#masthead .site-logo-img .custom-logo-link, #masthead .site-logo-img { line-height: 0; }

.ast-builder-menu-1 .main-header-menu { flex-wrap: wrap; justify-content: flex-end; align-items: flex-end; gap: 12px 28px; }
.ast-builder-menu-1 .main-header-menu > .menu-item { margin: 0; }
/* Links: Montserrat 600 16px Title Case black; orange underline 3px on the active page and on hover, 0 otherwise. */
.ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link {
	font-family: var(--pstc-display); font-size: 16px; font-weight: 600; letter-spacing: 0; text-transform: none; line-height: 1.2;
	color: var(--pstc-black); padding: 0 0 7px; margin: 0; background-color: transparent;
	background-image: linear-gradient(var(--pstc-orange), var(--pstc-orange)); background-repeat: no-repeat; background-position: 0 100%; background-size: 100% 0px;
	box-shadow: none; text-decoration: none; transition: background-size var(--pstc-ease);
}
.ast-builder-menu-1 .main-header-menu > .menu-item:hover > .menu-link, .ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link:hover,
.ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link:focus-visible, .ast-builder-menu-1 .main-header-menu > .menu-item.focus > .menu-link { background-size: 100% 3px; background-color: transparent; color: var(--pstc-black); }
/* Active page (and ancestors — BPOC stays active on every /bpoc/* page) */
.ast-builder-menu-1 .main-header-menu > .current-menu-item > .menu-link, .ast-builder-menu-1 .main-header-menu > .current-menu-ancestor > .menu-link,
.ast-builder-menu-1 .main-header-menu > .current-menu-parent > .menu-link, .ast-builder-menu-1 .main-header-menu > .current_page_item > .menu-link,
.ast-builder-menu-1 .main-header-menu > .current_page_ancestor > .menu-link, .ast-builder-menu-1 .main-header-menu > .current_page_parent > .menu-link { background-size: 100% 3px; color: var(--pstc-black); }
/* Dropdowns (a Programs group) */
.ast-builder-menu-1 .main-header-menu .sub-menu .menu-link { font-family: var(--pstc-display); font-size: 16px; font-weight: 600; text-transform: none; letter-spacing: 0; background-image: none; padding: 12px 18px; color: var(--pstc-black); }
.ast-builder-menu-1 .main-header-menu .sub-menu .menu-item:hover > .menu-link, .ast-builder-menu-1 .main-header-menu .sub-menu .current-menu-item > .menu-link { color: var(--pstc-black); background: var(--pstc-light); box-shadow: inset 4px 0 0 var(--pstc-yellow); }
/* Heading items (class "pstc-heading", URL "#", or a Category with sub-items): a label, not a link */
.menu-item.pstc-heading > .pstc-menu-heading { cursor: default; text-decoration: none; }
/* Keyboard: the dropdown opens while anything inside the group has focus (Astra only opens it for hover / its own .focus class) */
.ast-desktop .ast-builder-menu-1 .main-header-menu .menu-item-has-children:focus-within > .sub-menu,
.ast-builder-menu-1 .main-header-menu .menu-item-has-children:focus-within > .sub-menu { opacity: 1; visibility: visible; }
.ast-builder-menu-1 .main-header-menu > .menu-item > .pstc-menu-heading:focus-visible { outline: 1px solid var(--pstc-black); outline-offset: 2px; }
.site-footer .menu-item.pstc-heading > .pstc-menu-heading { display: block; margin-bottom: 8px; font-family: var(--pstc-display); font-size: 16px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--pstc-white); }

/* --- Footer --- */
.site-footer, .site-footer p, .site-footer li { color: var(--pstc-white); }
.site-footer .widget-title { font-family: var(--pstc-display); font-size: 16px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--pstc-white); }
.site-footer a { color: var(--pstc-white); font-weight: 500; text-decoration: none; }
.site-footer a:hover, .site-footer a:focus-visible { text-decoration: underline; text-decoration-color: var(--pstc-yellow); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.site-footer .menu-item.pstc-tag > a::after, .pstc-tag::after {
	content: "Coming soon"; display: inline-block; margin-left: 8px; padding: 2px 8px;
	font-family: var(--pstc-display); font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
	border: 1px solid rgba(255, 255, 255, 0.35); border-radius: 999px; color: var(--pstc-white); vertical-align: middle;
}
@media (max-width: 880px) {
	.site-footer .ast-builder-grid-row, .site-footer .ast-builder-footer-grid-columns { justify-items: center; text-align: center; }
	.site-footer .ast-footer-row-inline, .site-footer .site-footer-section, .site-footer .footer-widget-area, .site-footer .widget,
	.site-footer .ast-footer-copyright, .site-footer .ast-footer-html, .site-footer .ast-footer-nav-menu { text-align: center; justify-content: center; align-items: center; }
	.site-footer .widget-title, .site-footer .pstc-footer-contact, .site-footer .pstc-footer-contact p { text-align: center; }
	.site-footer .menu, .site-footer ul { padding-left: 0; list-style: none; }
	.site-footer .menu li, .site-footer .footer-widget-area ul li { text-align: center; }
	.site-footer .site-logo-img, .site-footer .ast-footer-logo, .site-footer .custom-logo-link { display: flex; justify-content: center; margin-left: auto; margin-right: auto; }
}

/* ==========================================================================
   Layout (section-menu-and-layout-spec.md §1): one 1240px container with 32px side padding (20px ≤640),
   so the content column is 1176px. Narrower elements use max-width tokens and sit LEFT-aligned in the column.
   Astra's own container padding is removed so the two never double up.
   ========================================================================== */
:root {
	--pstc-gutter: 32px;
	--pstc-col: min(100% - 2 * var(--pstc-gutter), 1176px);                 /* the content column */
	--pstc-edge: max(var(--pstc-gutter), calc((100% - 1176px) / 2));         /* left edge of the column */
	--w-text: 800px; --w-intro: 900px; --w-grid-sm: 860px; --w-grid: 1000px; --w-steps: 1100px;
}
@media (max-width: 640px) { :root { --pstc-gutter: 20px; } }
.site-content .ast-container, .site-content > .ast-container, .ast-page-builder-template .site-content > .ast-container,
.site-content .entry-content, .site-content .ast-article-single, .site-content #primary { padding-left: 0 !important; padding-right: 0 !important; max-width: none; }
html { overflow-x: hidden; overflow-x: clip; }
.site { overflow-x: clip; }
/* Every top-level block: the column, left edge at the container's padding (centred once the page is wider than 1240px) */
.site-content .entry-content > *:not(.alignfull):not(.wp-block-pstc-hero):not(.wp-block-pstc-stat-band):not(.wp-block-pstc-subnav),
.entry-content > *:not(.alignfull):not(.wp-block-pstc-hero):not(.wp-block-pstc-stat-band):not(.wp-block-pstc-subnav),
.entry-content > .wp-block-group.alignfull > * {
	width: var(--pstc-col); max-width: 100%; margin-left: var(--pstc-ml, var(--pstc-edge)) !important; margin-right: auto !important; box-sizing: border-box;
}
/* Full-bleed blocks */
.site-content .entry-content > .alignfull, .entry-content > .alignfull, .entry-content > .wp-block-pstc-hero, .entry-content > .wp-block-pstc-stat-band {
	width: 100vw !important; max-width: 100vw !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important;
}
.entry-content .alignwide { max-width: 100%; }
/* Inner width tokens (max-widths, left-aligned in the column per the spec; Paragraph block: 800px). Editors can also add these classes under Advanced → Additional CSS class(es). */
.entry-content > :is(p, ul, ol, .wp-block-table, .wp-block-pstc-schedule-list, .wp-block-pstc-content-needed, .wp-block-pstc-detail-card, .wp-block-list, .pstc-w-text),
.entry-content > .wp-block-group.alignfull > :is(p, ul, ol, .wp-block-table, .wp-block-list, .pstc-w-text) { width: min(var(--pstc-col), var(--w-text)) !important; }
.entry-content > :is(.has-lead-font-size, .is-style-lead, .wp-block-details, .wp-block-pstc-qualify, .wp-block-pstc-cta-banner, .wp-block-pstc-accent-card.is-left, .pstc-w-intro),
.entry-content > .wp-block-group.alignfull > :is(.has-lead-font-size, .is-style-lead, .wp-block-details, .pstc-w-intro) { width: min(var(--pstc-col), var(--w-intro)) !important; }
.entry-content > :is(.wp-block-pstc-hairline-grid, .pstc-w-grid-sm) { width: min(var(--pstc-col), var(--w-grid-sm)) !important; }
.entry-content > :is(.pstc-contact-grid, .pstc-w-grid) { width: min(var(--pstc-col), var(--w-grid)) !important; }
.entry-content > :is(.wp-block-pstc-step-list, .pstc-w-steps) { width: min(var(--pstc-col), var(--w-steps)) !important; }
/* Pages that start with a Hero: flush to the header, no Astra page title */
body.pstc-has-hero .site-content > .ast-container, body.pstc-has-hero .ast-page-builder-template .site-content > .ast-container { padding-top: 0; }
body.pstc-has-hero .ast-article-single { padding-top: 0; }
body.pstc-has-hero .entry-header, body.pstc-has-hero .ast-single-post .entry-header { display: none; }
body.pstc-has-hero .entry-content > .wp-block-pstc-hero:first-child { margin-top: 0; }
.entry-content [class*="wp-block-pstc-"] :is(h1, h2, h3, h4) { margin-top: 0; }
.entry-content [class*="wp-block-pstc-"] :is(h1, h2, h3, h4) + p { margin-top: 0; }
/* Vertical rhythm: section headings get 24–36px to their content; sections 56–96px apart (48–64 ≤880) */
.entry-content > .wp-block-pstc-section-heading { margin-top: 72px !important; }
.entry-content > .wp-block-pstc-subnav + .wp-block-pstc-section-heading, .entry-content > .wp-block-pstc-hero + .wp-block-pstc-section-heading, .entry-content > .wp-block-pstc-section-heading:first-child { margin-top: 0 !important; }
.entry-content > .wp-block-pstc-stat-band + .wp-block-pstc-section-heading { margin-top: 72px !important; }
@media (max-width: 880px) { .entry-content > .wp-block-pstc-section-heading, .entry-content > .wp-block-pstc-stat-band + .wp-block-pstc-section-heading { margin-top: 56px !important; } }
/* Tablets (782–1024): a three-column card row goes two-up */
@media (min-width: 782px) and (max-width: 1024px) {
	.entry-content .wp-block-columns:has(> .wp-block-column:nth-child(3):last-child) { flex-wrap: wrap; }
	.entry-content .wp-block-columns:has(> .wp-block-column:nth-child(3):last-child) > .wp-block-column { flex-basis: calc(50% - var(--wp--style--block-gap, 2em) / 2) !important; flex-grow: 0 !important; }
}
/* Grid tracks that hold long text can't overflow */
.entry-content .wp-block-columns > .wp-block-column { min-width: 0; }

/* ==========================================================================
   §8 ≤880px: hamburger + in-flow dropdown panel (Astra "Dropdown" mobile style)
   ========================================================================== */
@media (max-width: 880px) {
	.ast-mobile-header-wrap .ast-primary-header-bar, .ast-mobile-header-wrap .main-header-bar { background: var(--pstc-white); border-bottom: 1px solid rgba(94, 94, 94, 0.22); }
	/* "MENU ≡" / "MENU ×" toggle: optional label (Customizer → Header Builder → Toggle Button → Label) + three bars that become an × */
	.ast-header-break-point .ast-button-wrap .menu-toggle.main-header-menu-toggle, .ast-header-break-point .ast-button-wrap .menu-toggle {
		display: flex; align-items: center; gap: 12px; padding: 12px 4px; margin-left: auto; background: none !important; border: 0 !important; border-radius: 0; box-shadow: none; cursor: pointer; line-height: 1; color: var(--pstc-deep);
	}
	.ast-header-break-point .ast-button-wrap .menu-toggle svg, .ast-header-break-point .ast-button-wrap .menu-toggle .ahfb-svg-iconset { display: none !important; }
	.ast-header-break-point .ast-button-wrap .menu-toggle .mobile-menu-wrap { display: block; order: -1; }
	.ast-header-break-point .ast-button-wrap .menu-toggle .menu-toggle-text { display: block; font-family: var(--pstc-display); font-size: 14px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--pstc-deep); }
	.ast-header-break-point .ast-button-wrap .menu-toggle .mobile-menu-toggle-icon {
		display: block; position: relative; width: 26px; height: 19px; flex: none;
		background: linear-gradient(var(--pstc-deep), var(--pstc-deep)) center / 26px 3px no-repeat; transition: background-size 200ms ease;
	}
	.ast-header-break-point .ast-button-wrap .menu-toggle .mobile-menu-toggle-icon::before, .ast-header-break-point .ast-button-wrap .menu-toggle .mobile-menu-toggle-icon::after {
		content: ""; position: absolute; left: 0; width: 26px; height: 3px; background: var(--pstc-deep); transition: transform 200ms ease;
	}
	.ast-header-break-point .ast-button-wrap .menu-toggle .mobile-menu-toggle-icon::before { top: 0; }
	.ast-header-break-point .ast-button-wrap .menu-toggle .mobile-menu-toggle-icon::after { bottom: 0; }
	.ast-header-break-point .ast-button-wrap .menu-toggle.toggled .mobile-menu-toggle-icon { background-size: 0 3px; }
	.ast-header-break-point .ast-button-wrap .menu-toggle.toggled .mobile-menu-toggle-icon::before { transform: translateY(8px) rotate(45deg); }
	.ast-header-break-point .ast-button-wrap .menu-toggle.toggled .mobile-menu-toggle-icon::after { transform: translateY(-8px) rotate(-45deg); }
	.ast-header-break-point .ast-button-wrap .menu-toggle:focus-visible { outline: 1px solid var(--pstc-black); outline-offset: 2px; }

	/* Panel (ACC mobile menu reference): full width, purple gradient, white items with a yellow "+" that opens the child pages.
	   Tapping the item text goes to the page; tapping "+" expands. Content lines up with the page container. */
	.ast-mobile-header-content, .ast-mobile-header-content .ast-builder-menu-mobile, .ast-mobile-header-content .main-header-menu,
	.ast-mobile-header-content .main-header-bar-navigation, .ast-mobile-header-content .main-navigation { background: transparent; }
	.ast-mobile-header-content { background: linear-gradient(180deg, var(--pstc-deep) 0%, var(--pstc-purple) 100%); border-top: 0; padding: 8px var(--pstc-gutter) 24px; }
	.ast-mobile-header-content .main-header-menu, .ast-builder-menu-mobile .main-header-menu { display: grid; max-width: 1176px; margin: 0 auto; }
	.ast-mobile-header-content .main-header-menu > .menu-item, .ast-builder-menu-mobile .main-header-menu > .menu-item { margin: 0; position: relative; border-bottom: 1px solid rgba(255, 255, 255, 0.55); }
	.ast-mobile-header-content .main-header-menu > .menu-item:last-child, .ast-builder-menu-mobile .main-header-menu > .menu-item:last-child { border-bottom: 0; }
	.ast-mobile-header-content .main-header-menu > .menu-item > .menu-link, .ast-builder-menu-mobile .main-header-menu > .menu-item > .menu-link,
	.ast-mobile-header-content .main-header-menu > .menu-item > .pstc-menu-heading, .ast-builder-menu-mobile .main-header-menu > .menu-item > .pstc-menu-heading {
		display: block; font-family: var(--pstc-display); font-size: 22px; font-weight: 500; letter-spacing: 0; text-transform: none; line-height: 1.3;
		padding: 22px 56px 22px 0; border: 0; color: var(--pstc-white); text-decoration: none; background: transparent; box-shadow: none;
	}
	.ast-mobile-header-content .main-header-menu > .menu-item > .menu-link:hover, .ast-builder-menu-mobile .main-header-menu > .menu-item > .menu-link:hover { background: transparent; color: var(--pstc-white); text-decoration: underline; text-decoration-color: var(--pstc-yellow); text-decoration-thickness: 2px; text-underline-offset: 6px; }
	.ast-mobile-header-content .main-header-menu .current-menu-item > .menu-link, .ast-mobile-header-content .main-header-menu > .current-menu-ancestor > .menu-link, .ast-mobile-header-content .main-header-menu > .current_page_ancestor > .menu-link,
	.ast-builder-menu-mobile .main-header-menu .current-menu-item > .menu-link, .ast-builder-menu-mobile .main-header-menu > .current-menu-ancestor > .menu-link, .ast-builder-menu-mobile .main-header-menu > .current_page_ancestor > .menu-link { color: var(--pstc-white); background: transparent; box-shadow: none; font-weight: 700; }
	.ast-mobile-header-content .main-header-menu > .menu-item > .pstc-menu-heading, .ast-builder-menu-mobile .main-header-menu > .menu-item > .pstc-menu-heading { cursor: default; }
	/* "+" toggle (Astra's .ast-menu-toggle button, restyled): yellow, rotates to × when its sub-menu is open */
	.ast-mobile-header-content .main-header-menu .ast-menu-toggle, .ast-builder-menu-mobile .main-header-menu .ast-menu-toggle {
		display: flex !important; align-items: center; justify-content: center; position: absolute; top: 14px; right: -8px; width: 44px; height: 44px; margin: 0; padding: 0;
		background: transparent !important; border: 0 !important; box-shadow: none; color: var(--pstc-yellow); cursor: pointer; line-height: 0;
	}
	.ast-mobile-header-content .main-header-menu .ast-menu-toggle .screen-reader-text, .ast-builder-menu-mobile .main-header-menu .ast-menu-toggle .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); white-space: nowrap; }
	.ast-mobile-header-content .main-header-menu .ast-menu-toggle .ast-icon, .ast-mobile-header-content .main-header-menu .ast-menu-toggle svg, .ast-builder-menu-mobile .main-header-menu .ast-menu-toggle .ast-icon, .ast-builder-menu-mobile .main-header-menu .ast-menu-toggle svg { display: none !important; }
	.ast-mobile-header-content .main-header-menu .ast-menu-toggle::before, .ast-builder-menu-mobile .main-header-menu .ast-menu-toggle::before {
		content: "+"; font-family: var(--pstc-display); font-size: 34px; font-weight: 300; line-height: 1; color: var(--pstc-yellow); transition: transform 420ms cubic-bezier(0.4, 0, 0.2, 1);
	}
	.ast-mobile-header-content .main-header-menu .ast-menu-toggle.toggled::before, .ast-mobile-header-content .main-header-menu .ast-menu-toggle[aria-expanded="true"]::before, .ast-mobile-header-content .main-header-menu .menu-item.ast-submenu-expanded > .ast-menu-toggle::before,
	.ast-builder-menu-mobile .main-header-menu .ast-menu-toggle.toggled::before, .ast-builder-menu-mobile .main-header-menu .ast-menu-toggle[aria-expanded="true"]::before, .ast-builder-menu-mobile .main-header-menu .menu-item.ast-submenu-expanded > .ast-menu-toggle::before { transform: rotate(45deg); }
	.ast-mobile-header-content .main-header-menu .ast-menu-toggle:focus-visible, .ast-builder-menu-mobile .main-header-menu .ast-menu-toggle:focus-visible { outline: 1px solid var(--pstc-white); outline-offset: -4px; }
	/* Sub-menu: hidden until "+" is tapped; indented white items */
	.ast-mobile-header-content .main-header-menu .sub-menu, .ast-builder-menu-mobile .main-header-menu .sub-menu { display: none; position: static; width: auto; margin: 0; padding: 0 0 12px; box-shadow: none; border: 0; background: transparent; opacity: 1; visibility: visible; transform: none; }
	.ast-mobile-header-content .main-header-menu .menu-item.ast-submenu-expanded > .sub-menu, .ast-mobile-header-content .main-header-menu .ast-menu-toggle.toggled ~ .sub-menu, .ast-mobile-header-content .main-header-menu .ast-menu-toggle[aria-expanded="true"] ~ .sub-menu, .ast-mobile-header-content .main-header-menu .sub-menu.ast-submenu-expanded,
	.ast-builder-menu-mobile .main-header-menu .menu-item.ast-submenu-expanded > .sub-menu, .ast-builder-menu-mobile .main-header-menu .ast-menu-toggle.toggled ~ .sub-menu, .ast-builder-menu-mobile .main-header-menu .ast-menu-toggle[aria-expanded="true"] ~ .sub-menu, .ast-builder-menu-mobile .main-header-menu .sub-menu.ast-submenu-expanded { display: block !important; }
	.ast-mobile-header-content .main-header-menu .sub-menu .menu-item, .ast-builder-menu-mobile .main-header-menu .sub-menu .menu-item { margin: 0; border: 0; }
	.ast-mobile-header-content .main-header-menu .sub-menu .menu-link, .ast-builder-menu-mobile .main-header-menu .sub-menu .menu-link {
		display: block; padding: 10px 0 10px 24px; font-family: var(--pstc-display); font-size: 18px; font-weight: 500; text-transform: none; letter-spacing: 0; line-height: 1.3; color: var(--pstc-white); background: transparent; border: 0; box-shadow: none; text-decoration: none;
	}
	.ast-mobile-header-content .main-header-menu .sub-menu .menu-link:hover, .ast-builder-menu-mobile .main-header-menu .sub-menu .menu-link:hover { background: transparent; color: var(--pstc-white); text-decoration: underline; text-decoration-color: var(--pstc-yellow); text-decoration-thickness: 2px; text-underline-offset: 6px; }
	.ast-mobile-header-content .main-header-menu .sub-menu .current-menu-item > .menu-link, .ast-builder-menu-mobile .main-header-menu .sub-menu .current-menu-item > .menu-link { font-weight: 700; color: var(--pstc-white); background: transparent; box-shadow: none; }
	.ast-mobile-header-content .main-header-menu .menu-link:focus-visible, .ast-builder-menu-mobile .main-header-menu .menu-link:focus-visible { outline: 1px solid var(--pstc-white); outline-offset: 2px; }
	/* Footer-style extras Astra can put in the panel (search, buttons, HTML) inherit the white text */
	.ast-mobile-header-content, .ast-mobile-header-content p, .ast-mobile-header-content a { color: var(--pstc-white); }
}

/* --- §17 Motion: respect reduced motion everywhere --- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 0ms !important; animation-duration: 0ms !important; }
}
