/*
Theme Name: Andy Howard
Theme URI: https://andyhoward.id.au/
Author: Astronaut
Author URI: https://astronaut.works/
Description: WordPress theme for Andy Howard
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 8.0
Text Domain: andyhoward
*/

/* Every value below reads a theme.json preset or custom property. The short names map to them. */
:root {
	--ink: var(--wp--preset--color--ink);
	--white: var(--wp--preset--color--white);
	--muted: var(--wp--preset--color--text-muted);
	--faint: var(--wp--preset--color--text-faint);
	--border: var(--wp--preset--color--border);
	--grey-400: var(--wp--preset--color--grey-400);
	--grey-200: var(--wp--preset--color--grey-200);
	--w85: var(--wp--preset--color--white-85);
	--w80: var(--wp--preset--color--white-80);
	--w70: var(--wp--preset--color--white-70);
	--w30: var(--wp--preset--color--white-30);
	--w20: var(--wp--preset--color--white-20);
	--w05: var(--wp--preset--color--white-05);
	--error: var(--wp--preset--color--error);
	--r-md: var(--wp--custom--radius--md);
	--r-lg: var(--wp--custom--radius--lg);
	--r-pill: var(--wp--custom--radius--pill);
	--section-y: var(--wp--custom--section-y);
	--ease: var(--wp--custom--motion--ease);
	--dur: var(--wp--custom--motion--base);
	--dur-fast: var(--wp--custom--motion--fast);
	--pad: var(--wp--style--root--padding-left, 24px);
	--arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 11' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.5 1L25 5.5L20.5 10M7 5.5H25'/%3E%3C/svg%3E");
	--arrow-short: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='6 0 20 11' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.5 1L25 5.5L20.5 10M7 5.5H25'/%3E%3C/svg%3E");
	--arrow-left: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 11' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 1L1 5.5L5.5 10M19 5.5H1'/%3E%3C/svg%3E");
}

/* ---- Base ------------------------------------------------------------- */
html { -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body { -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5 { text-wrap: balance; }
p { text-wrap: pretty; }
img { max-width: 100%; height: auto; }
::selection { background: var(--ink); color: var(--white); }
:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
[id] { scroll-margin-top: 0; }
#investing { scroll-margin-top: 48px; }
.screen-reader-text:not(:focus) { position: absolute !important; clip: rect(0 0 0 0); width: 1px; height: 1px; overflow: hidden; }

/* Structural containers set their own gaps; the flow layout's block gap does not apply inside them. */
[class*="ah-"] > *, .wp-site-blocks > * { margin-block-start: 0; margin-block-end: 0; }
.wp-block-group, .wp-block-cover { margin: 0; }

.is-ink { background: var(--ink); color: var(--white); }

/* ---- Type styles ------------------------------------------------------ */
.is-style-eyebrow { font-size: var(--wp--preset--font-size--eyebrow); line-height: 27px; font-weight: 500; color: var(--muted); }
.is-style-lead { font-size: var(--wp--preset--font-size--lead); line-height: 30px; color: var(--muted); max-width: 560px; }
.ah-lead-ink { font-size: var(--wp--preset--font-size--lead); line-height: 30px; }
.ah-muted { color: var(--muted); }
.is-ink .is-style-eyebrow, .ah-photo-hero .is-style-eyebrow, .ah-past .is-style-eyebrow { color: var(--w70); }
.is-ink .is-style-lead, .is-ink .ah-muted, .ah-past .is-style-lead { color: var(--w80); }
.is-ink h2, .ah-past h2 { color: var(--white); }
h2.wp-block-heading, .wp-block-query-title:is(h2) { font-size: var(--wp--preset--font-size--h-2); }

.ah-heading { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--stack-heading); max-width: 720px; }
.ah-inline-icon { display: inline-flex; align-items: center; gap: 8px; }
.ah-icon { display: block; flex-shrink: 0; }

/* Tag (pill) */
.is-style-tag, .ah-tag {
	display: inline-flex; align-items: center; padding: 3px 10px; border: 1px solid var(--border); border-radius: var(--r-pill);
	font-size: var(--wp--preset--font-size--tag); line-height: 16px; font-weight: 500; letter-spacing: var(--wp--custom--tracking--tag);
	text-transform: uppercase; white-space: nowrap; color: var(--muted); background: transparent;
}
.is-ink .is-style-tag, .is-ink .ah-tag { border-color: var(--w30); color: var(--w80); }
.ah-tags { display: flex; flex-wrap: wrap; gap: 6px; }

/* ---- Buttons ---------------------------------------------------------- */
.wp-block-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; }
.wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px; white-space: nowrap;
	transition: transform var(--dur), border-color var(--dur-fast);
}
.wp-block-button:not(.is-style-arrow):not(.is-style-outline) .wp-block-button__link:hover { transform: var(--wp--custom--motion--lift); }
.is-style-white .wp-block-button__link { background: var(--white); color: var(--ink); border-color: var(--white); }
.is-style-outline .wp-block-button__link { background: transparent; color: currentColor; border: 1px solid var(--border); padding: 15px 40px; }
.is-style-outline .wp-block-button__link:hover { border-color: currentColor; }
/* ArrowLink: text + thin arrow; underline grows from the left, arrow nudges 6px. */
.is-style-arrow .wp-block-button__link {
	background: none; border: 0; border-radius: 0; padding: 0; color: inherit; gap: 14px;
	background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-position: 0 100%; background-repeat: no-repeat;
	padding-bottom: 2px; transition: background-size .25s ease-in-out;
}
.is-style-arrow .wp-block-button__link::after {
	content: ""; width: 26px; height: 11px; background: currentColor; -webkit-mask: var(--arrow) no-repeat center / contain; mask: var(--arrow) no-repeat center / contain;
	transition: transform var(--dur) var(--ease);
}
.is-style-arrow .wp-block-button__link:hover { background-size: calc(100% - 40px) 1px; }
.is-style-arrow .wp-block-button__link:hover::after { transform: var(--wp--custom--motion--nudge); }

/* ---- Navbar ----------------------------------------------------------- */
.ah-nav { position: relative; z-index: 5; gap: 24px; padding-top: 32px; color: var(--white); }
.ah-wordmark { margin: 0; font-size: 22px; line-height: 1; font-weight: 500; letter-spacing: var(--wp--custom--tracking--wordmark); white-space: nowrap; }
.ah-wordmark--sm { font-size: 20px; }
.ah-wordmark a { color: inherit; text-decoration: none; }
.ah-menu { font-size: var(--wp--preset--font-size--ui); line-height: 25.6px; font-weight: 500; }
.ah-menu .wp-block-navigation__container { gap: 36px; align-items: center; }
.ah-menu .wp-block-navigation-item__content { position: relative; display: inline-block; color: inherit; }
.ah-menu .wp-block-navigation-item:not(.ah-nav-cta) > .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1px; background: currentColor;
	transform: scaleX(0); transform-origin: 0 50%; transition: transform .25s ease-in-out;
}
.ah-menu .wp-block-navigation-item:not(.ah-nav-cta) > .wp-block-navigation-item__content:hover::after,
.ah-menu .current-menu-item:not(.ah-nav-cta) > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.ah-menu .current-menu-item:not(.ah-nav-cta) > .wp-block-navigation-item__content::after { height: 2px; }
.ah-menu .ah-nav-cta > .wp-block-navigation-item__content {
	padding: 11px 28px; border-radius: var(--r-pill); background: var(--white); color: var(--ink); transition: transform var(--dur);
}
.ah-menu .ah-nav-cta > .wp-block-navigation-item__content:hover { transform: var(--wp--custom--motion--lift); }
/* "Menu" pill */
.ah-menu .wp-block-navigation__responsive-container-open,
.ah-menu .wp-block-navigation__responsive-container-close {
	align-items: center; gap: 10px; min-height: 44px; padding: 0 20px; border: 1px solid var(--w30); border-radius: var(--r-pill);
	color: var(--white); font: 500 16px/1 var(--wp--preset--font-family--core); cursor: pointer;
}
.ah-menu .wp-block-navigation__responsive-container-open:hover, .ah-menu .wp-block-navigation__responsive-container-close:hover { border-color: var(--white); }
/* The design folds the links into the Menu pill at 860px; core does it at 600px. */
@media (min-width: 600px) and (max-width: 860px) {
	.ah-menu .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.ah-menu .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
@media (max-width: 860px) { .ah-nav { padding-top: 20px; } }
/* Full-screen ink sheet */
.ah-menu .wp-block-navigation__responsive-container.is-menu-open { padding: 20px var(--pad) max(32px, env(safe-area-inset-bottom)); }
.ah-menu .is-menu-open .wp-block-navigation__responsive-container-close { position: absolute; top: 20px; right: var(--pad); display: inline-flex; }
.ah-menu .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 80px; align-items: stretch; }
.ah-menu .is-menu-open .wp-block-navigation__container { gap: 0; width: 100%; align-items: stretch; }
.ah-menu .is-menu-open .wp-block-navigation-item:nth-last-child(2) > .wp-block-navigation-item__content { border-bottom: 1px solid var(--w20); }
.ah-menu .is-menu-open .wp-block-navigation-item { width: 100%; }
.ah-menu .is-menu-open .wp-block-navigation-item:not(.ah-nav-cta) > .wp-block-navigation-item__content {
	display: flex; justify-content: space-between; align-items: center; gap: 16px; width: 100%; padding: 18px 0;
	border-top: 1px solid var(--w20); font-size: 28px; line-height: 36px; font-weight: 300;
}
.ah-menu .is-menu-open .wp-block-navigation-item:not(.ah-nav-cta) > .wp-block-navigation-item__content::after {
	position: static; width: 20px; height: 11px; transform: none; background: currentColor;
	-webkit-mask: var(--arrow-short) no-repeat center / contain; mask: var(--arrow-short) no-repeat center / contain;
}
.ah-menu .is-menu-open .current-menu-item:not(.ah-nav-cta) > .wp-block-navigation-item__content { font-weight: 500; }
.ah-menu .is-menu-open .wp-block-navigation-item.ah-nav-cta { order: 99; width: auto; align-self: flex-start; margin-top: 32px; padding-bottom: 8px; }
.ah-menu .is-menu-open .ah-nav-cta > .wp-block-navigation-item__content { display: inline-flex; padding: 15px 40px; }

/* ---- Page hero (ink) -------------------------------------------------- */
.ah-hero { padding-bottom: clamp(48px, 5vw, 72px); }
.ah-hero__copy { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; padding-top: clamp(56px, 7vw, 96px); }
.ah-hero-title { margin: 0 0 0 -0.02em; font-size: var(--wp--preset--font-size--hero); line-height: var(--wp--custom--leading--hero); font-weight: 300; overflow-wrap: break-word; max-width: 1100px; }
.ah-hero-sub, .ah-hero-sub p { margin: 0; max-width: 620px; font-size: var(--wp--preset--font-size--lead); line-height: 30px; color: var(--w85); }
.ah-hero .wp-block-post-excerpt__more-text { display: none; }
@media (max-width: 860px) { .ah-hero-title { font-size: clamp(36px, 10.5vw, 56px); } }

/* Overlay navbar on photo-hero pages */
.wp-site-blocks { position: relative; }
.ah-overlay-nav { position: absolute; top: 0; left: 0; right: 0; z-index: 10; padding-inline: var(--pad); }
.ah-overlay-nav .ah-nav { max-width: var(--wp--style--global--content-size); margin-inline: auto; }

/* Photo hero (cover): copy right-aligned over --shade-hero */
.ah-photo-hero { min-height: min(860px, 100vh); align-items: flex-end; padding: 120px var(--pad) clamp(48px, 5vw, 72px); }
.ah-photo-hero .wp-block-cover__background, .ah-past .wp-block-cover__background { opacity: 1 !important; }
.ah-photo-hero .wp-block-cover__background { background: var(--wp--custom--shade--hero) !important; }
.ah-photo-hero .wp-block-cover__inner-container { width: 100%; max-width: var(--wp--style--global--content-size); margin-inline: auto; display: flex; justify-content: flex-end; color: var(--white); }
.ah-photo-hero .ah-hero__copy { padding-top: 0; max-width: min(600px, 56%); }
.ah-hero__actions { gap: 16px 32px; margin-top: 12px; align-items: center; }
@media (max-width: 860px) {
	.ah-photo-hero .ah-hero__copy { max-width: 100%; }
	.ah-photo-hero .wp-block-cover__background { background: linear-gradient(0deg, rgba(14,14,14,.96) 0%, rgba(14,14,14,.88) 38%, rgba(14,14,14,.35) 62%, rgba(14,14,14,0) 80%), linear-gradient(180deg, rgba(14,14,14,.6) 0%, rgba(14,14,14,0) 22%) !important; } /* PageHero.jsx HERO_CSS */
}

/* ---- Sections and grids ---------------------------------------------- */
.ah-section { padding-block: var(--section-y); }
.ah-section.has-border { border-top: 1px solid var(--border); }
.ah-split { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; align-items: start; }
.ah-split > :nth-child(2) { grid-column: span 2; min-width: 0; }
.ah-split__intro { display: flex; flex-direction: column; gap: 24px; align-items: flex-start; }
.ah-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 40px; }
.ah-grid3--center { align-items: center; }
.ah-span2 { grid-column: span 2; min-width: 0; }
@media (max-width: 860px) {
	.ah-split, .ah-grid3 { grid-template-columns: minmax(0, 1fr); }
	.ah-split > :nth-child(2), .ah-span2 { grid-column: auto; }
}

/* Logo band */
.ah-logoband { background: var(--ink); color: var(--white); padding-block: 48px 56px; }
.ah-logoband > * + * { margin-block-start: 32px !important; }
.ah-logoband__label { text-align: center; }
.ah-logoband__logos { justify-content: center; align-items: center; gap: 36px clamp(28px, 3.5vw, 56px); }
.ah-logo { margin: 0; }
.ah-logo img { width: auto; max-width: 180px; object-fit: contain; }

/* What I do */
.ah-whatido > * + * { margin-block-start: clamp(48px, 5vw, 64px) !important; }
.ah-intro { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.ah-intro__text { font-size: clamp(22px, 2.4vw, 28px); line-height: 1.4; }
.ah-portrait { margin: 0; }
.ah-portrait img { width: 100%; max-width: 280px; aspect-ratio: 1 / 1; height: auto; border-radius: 50%; object-fit: cover; object-position: 50% 40%; }
.ah-pillar { position: relative; display: flex; flex-direction: column; gap: 10px; padding-top: 24px; border-top: 1px solid var(--border); }
.ah-pillar::before, .ah-row::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 1px; background: var(--ink); transform: scaleX(0); transform-origin: left; transition: transform .35s ease-in-out; }
.ah-pillar:hover::before, .ah-row:hover::before { transform: scaleX(1); }
.ah-pillar__title { display: flex; justify-content: space-between; align-items: center; gap: 16px; font-size: var(--wp--preset--font-size--h-3); line-height: 32px; }
.ah-pillar__title a { color: inherit; }
.ah-pillar__title a::before { content: ""; position: absolute; inset: 0; }
.ah-pillar__title::after { content: ""; flex: 0 0 26px; height: 11px; background: currentColor; -webkit-mask: var(--arrow) no-repeat center / contain; mask: var(--arrow) no-repeat center / contain; transition: transform var(--dur) var(--ease); }
.ah-pillar:hover .ah-pillar__title::after { transform: var(--wp--custom--motion--nudge); }
.ah-pillar .ah-tags { margin-top: 6px; }

/* Consulting expertise (results) */
.ah-sticky { display: flex; flex-direction: column; gap: 24px; max-width: 420px; }
.ah-sticky .wp-block-buttons { margin-top: 8px; }
@media (min-width: 861px) { .ah-sticky { position: sticky; top: 32px; } }
.ah-resgroups { display: flex; flex-direction: column; gap: 48px; }
.ah-resgroup { display: flex; flex-direction: column; gap: 12px; }
.ah-reslist { border-bottom: 1px solid var(--w20); }
.ah-res { display: grid; grid-template-columns: minmax(96px, 150px) minmax(0, 1fr) auto; align-items: center; gap: 8px 24px; padding: 16px 0; border-top: 1px solid var(--w20); }
.ah-res__v { font-size: 24px; line-height: 32px; font-weight: 300; font-variant-numeric: tabular-nums; }
.ah-res__l { font-weight: 500; }
.ah-res__t { justify-content: flex-end; }
@media (max-width: 860px) {
	.ah-res { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; padding: 20px 0; }
	.ah-res > :nth-child(2) { grid-column: 1 / -1; grid-row: 2; }
	.ah-res > :nth-child(3) { grid-column: 2; grid-row: 1; }
}

/* ---- Article rows (ArticleRow) ---------------------------------------- */
.ah-rows { min-width: 0; }
.ah-rows__list { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--border); }
.ah-rows__list > li { margin: 0; }
.ah-row { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) 20px; align-items: center; column-gap: 20px; padding: 16px 0; border-top: 1px solid var(--border); }
.ah-row::after { content: ""; width: 20px; height: 11px; margin-left: 12px; background: currentColor; -webkit-mask: var(--arrow-short) no-repeat center / contain; mask: var(--arrow-short) no-repeat center / contain; transition: transform var(--dur) var(--ease); }
.ah-row:hover::after { transform: var(--wp--custom--motion--nudge); }
.ah-thumb { width: 112px; height: 72px; margin: 0; overflow: hidden; border-radius: var(--r-md); background: var(--grey-200); }
.ah-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.ah-row:hover .ah-thumb img { transform: scale(1.06); }
.ah-row__text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ah-row__meta { font-size: var(--wp--preset--font-size--small); line-height: 22.4px; color: var(--muted); }
.ah-row__title { margin: 0; font-size: 20px; line-height: 28px; font-weight: 500; }
.ah-row__title a { color: var(--ink); }
.ah-row__title a::before { content: ""; position: absolute; inset: 0; z-index: 1; }
@media (max-width: 860px) { .ah-thumb { width: 80px; height: 56px; } }

/* Pagination */
.ah-pager { padding-top: 32px; align-items: center; gap: 16px; }
.ah-pager .wp-block-query-pagination-numbers { display: flex; gap: 8px; margin: 0 auto; }
.ah-pager .page-numbers { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid var(--border); border-radius: 50%; font-size: 15px; font-weight: 500; font-variant-numeric: tabular-nums; }
.ah-pager .page-numbers.current { background: var(--ink); border-color: var(--ink); color: var(--white); }
.ah-pager .page-numbers.dots { border: 0; }
.ah-pager :is(.wp-block-query-pagination-previous, .wp-block-query-pagination-next) {
	display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border: 1px solid var(--border); border-radius: 50%;
	font-size: 0; color: var(--ink); transition: border-color var(--dur-fast);
}
.ah-pager :is(.wp-block-query-pagination-previous, .wp-block-query-pagination-next):hover { border-color: var(--ink); }
.ah-pager :is(.wp-block-query-pagination-previous, .wp-block-query-pagination-next)::before { content: ""; width: 20px; height: 11px; background: currentColor; }
.ah-pager .wp-block-query-pagination-previous::before { -webkit-mask: var(--arrow-left) no-repeat center / contain; mask: var(--arrow-left) no-repeat center / contain; }
.ah-pager .wp-block-query-pagination-next::before { -webkit-mask: var(--arrow-short) no-repeat center / contain; mask: var(--arrow-short) no-repeat center / contain; }
.ah-pager .wp-block-query-pagination-next { margin-left: auto; }

/* Category filter */
.ah-filter ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ah-filter .ah-tag { padding: 7px 14px; transition: border-color var(--dur-fast); }
.ah-filter .ah-tag:hover { border-color: var(--ink); }
.ah-filter .ah-tag.is-active { background: var(--ink); border-color: var(--ink); color: var(--white); }

/* ---- Single post ------------------------------------------------------ */
.ah-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; line-height: 22.4px; color: var(--w70); }
.ah-breadcrumbs li { display: flex; gap: 8px; }
.ah-breadcrumbs a:hover { color: var(--white); }
.ah-byline { display: flex; align-items: center; gap: 12px; margin-top: 8px; }
.ah-byline__avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; object-position: 50% 40%; }
.ah-byline__name { display: block; font-size: 16px; line-height: 24px; font-weight: 500; }
.ah-byline__meta { display: block; font-size: 14px; line-height: 22.4px; color: var(--w70); }
.ah-main > .ah-article { max-width: calc(var(--wp--custom--measure) + 0px); margin-inline: auto; padding-top: 56px; }
.ah-cover { margin: 0 0 40px; }
.ah-cover img { width: 100%; height: auto; border-radius: var(--r-lg); }
.ah-cover figcaption, .ah-prose figcaption { margin-top: 8px; font-size: 14px; line-height: 22.4px; color: var(--muted); }
.ah-prose > * + *, .ah-prose.ah-prose > * + * { margin-block-start: 20px; }
.ah-prose a, .ah-prose figcaption a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.ah-prose a:hover { text-decoration-thickness: 2px; }
.ah-prose h2 { margin-block-start: 40px !important; font-size: 28px; line-height: 1.3; }
.ah-prose h3 { margin-block-start: 32px !important; font-size: 22px; }
.ah-prose ul, .ah-prose ol { padding-left: 1.2em; }
.ah-prose li + li { margin-top: 8px; }
.ah-prose .wp-block-quote { margin-block: 16px; padding: 24px 0; border: 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); font-size: 32px; line-height: 40px; font-weight: 300; }
.ah-prose .wp-block-quote strong { font-weight: inherit; }
.ah-prose .wp-block-image img { border-radius: var(--r-lg); }
.ah-prose .wp-block-embed { margin-block: 12px; }
.ah-prose .wp-block-embed iframe { width: 100%; border-radius: var(--r-lg); }
.ah-prose .wp-block-file { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; padding: 20px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.ah-prose .wp-block-file__button { margin: 0 !important; padding: 11px 28px; border-radius: var(--r-pill); background: var(--ink); color: var(--white); font-size: 16px; font-weight: 500; text-decoration: none; }
.ah-main > .ah-newsletter { max-width: var(--wp--style--global--content-size); margin-top: 64px !important; }

/* Newsletter band */
.ah-newsletter { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 24px 48px; align-items: end; padding: 40px 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--border); }
.ah-newsletter__text { display: flex; flex-direction: column; gap: 12px; }
.ah-newsletter h3 { margin: 0; font-size: 32px; line-height: 40px; }

/* ---- About ------------------------------------------------------------ */
.ah-about { display: grid; grid-template-columns: minmax(0, 280px) minmax(0, 1fr); gap: 40px 80px; align-items: start; }
.ah-about__text { display: flex; flex-direction: column; gap: 24px; }
.ah-about__text .wp-block-buttons { margin-top: 8px; }
.ah-facts { margin-top: 16px; border-bottom: 1px solid var(--border); }
.ah-fact { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 16px 0; border-top: 1px solid var(--border); }
.ah-fact__l { font-weight: 500; }
.ah-slashlist { display: flex; flex-wrap: wrap; row-gap: 4px; padding-top: 20px; border-top: 1px solid var(--ink); font-size: clamp(22px, 2.2vw, 28px); line-height: 1.4; }
.ah-slash { color: var(--grey-400); font-weight: 300; padding: 0 14px; }
@media (max-width: 860px) { .ah-about { grid-template-columns: minmax(0, 1fr); } }

/* ---- Speaking --------------------------------------------------------- */
.ah-formats { border-bottom: 1px solid var(--border); }
.ah-format { position: relative; display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 8px 24px; padding: 28px 0; border-top: 1px solid var(--border); }
.ah-format::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 1px; background: var(--ink); transform: scaleX(0); transform-origin: left; transition: transform .35s ease-in-out; }
.ah-format__n { font-size: 14px; line-height: 32px; color: var(--muted); font-variant-numeric: tabular-nums; }
.ah-format__text { display: flex; flex-direction: column; gap: 8px; }
.ah-format__text .ah-muted { max-width: 520px; }
.ah-format__title { margin: 0; font-size: var(--wp--preset--font-size--h-3); line-height: 32px; color: var(--muted); transition: color .3s; }
.ah-format:hover::before, .ah-formats:not(:hover) .ah-format:first-child::before { transform: scaleX(1); }
.ah-format:hover .ah-format__title, .ah-formats:not(:hover) .ah-format:first-child .ah-format__title { color: var(--ink); }
.ah-past { min-height: min(720px, 90vh); align-items: flex-start; padding: var(--section-y) var(--pad); }
.ah-past .wp-block-cover__background { background: linear-gradient(200deg, rgba(14,14,14,.94) 0%, rgba(14,14,14,.8) 32%, rgba(14,14,14,.2) 62%, rgba(14,14,14,0) 80%) !important; } /* SpeakingScreen.jsx */
.ah-past .wp-block-cover__inner-container { width: 100%; max-width: var(--wp--style--global--content-size); margin-inline: auto; display: flex; justify-content: flex-end; color: var(--white); }
.ah-past__copy { width: 100%; max-width: min(480px, 100%); display: flex; flex-direction: column; gap: 32px; }
.ah-stages { border-bottom: 1px solid var(--w30); }
.ah-stage { padding: 16px 0; border-top: 1px solid var(--w30); font-size: 20px; line-height: 30px; font-weight: 500; }
.ah-topics { border-bottom: 1px solid var(--border); }
.ah-topic { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 24px; align-items: start; padding: 24px 0; border-top: 1px solid var(--border); }
.ah-topic__text { display: flex; flex-direction: column; gap: 6px; }
.ah-topic__title { margin: 0; font-size: 20px; line-height: 28px; }
.ah-topic .ah-tags { justify-content: flex-end; padding-top: 4px; }

/* ---- Contact and forms ------------------------------------------------ */
.ah-form-missing { color: var(--faint); font-size: 14px; }
.ah-contact .ah-form-missing { color: var(--w70); }

/* ---- Footer ----------------------------------------------------------- */
.ah-footer { padding-top: clamp(56px, 6vw, 80px); padding-bottom: 40px; }
.ah-footer__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 48px 40px; padding-bottom: 40px; }
.ah-footer__nav { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; font-size: 17px; line-height: 27.2px; font-weight: 500; }
.ah-footer__label { font-size: 15px; line-height: 27px; font-weight: 500; color: var(--faint); }
.ah-footer__nav .ah-footer__label { margin-bottom: 8px; }
.ah-footer__news { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.ah-footer__small { font-size: 15px; line-height: 24px; color: var(--faint); }
.ah-footer__meta { justify-content: space-between; align-items: center; gap: 12px; padding-bottom: 28px; }
.ah-footer__meta .ah-footer__small { font-size: 14px; line-height: 22.4px; }
.ah-social { display: flex; align-items: center; gap: 24px; }
.ah-social a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 14px; }
.ah-footer__bar > .wp-block-shortcode, .ah-footer__bar { width: 100%; }
.ah-footer__bar { align-items: center; justify-content: space-between; gap: 16px 32px; padding-top: 28px; border-top: 1px solid var(--w20); font-size: 14px; line-height: 22.4px; }
.ah-footer__legal { display: flex; flex-wrap: wrap; gap: 8px 24px; color: var(--faint); }
.ah-footer__legal a:hover, .ah-footer__nav a:hover, .ah-social a:hover { color: var(--white); text-decoration: underline; text-underline-offset: 3px; }
.ah-footer__astro { display: inline-flex; opacity: .9; }
.ah-footer__astro img { height: 20px; width: auto; }

/* Search */
.ah-search .wp-block-search__inside-wrapper { border: 1px solid var(--border); border-radius: var(--r-pill); padding: 4px 4px 4px 20px; max-width: 420px; }
.ah-search .wp-block-search__input { border: 0; padding: 10px 0; font-size: 16px; background: transparent; }
.ah-search .wp-block-search__button { margin: 0; padding: 11px 28px; border-radius: var(--r-pill); }
.ah-footer__bar p, .ah-footer__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; }
.ah-fact .is-style-tag { white-space: normal; text-align: right; }
.ah-search { width: 100%; max-width: 420px; }
.ah-search .wp-block-search__inside-wrapper { width: 100% !important; box-sizing: border-box; }
.ah-search .wp-block-search__input { min-width: 0; flex: 1 1 auto; }
.ah-menu .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container { margin-top: 28px; }
.ah-logoband .is-style-eyebrow { color: var(--w70); }

/* ---- Gravity Forms: Field component ---------------------------------- */
.ah-form .gform_wrapper.gravity-theme { margin: 0; }
.ah-form .gform_heading { display: none; }
.ah-form .gform_wrapper.gravity-theme .gfield_label { margin: 0 0 8px; padding: 0; font-size: var(--wp--preset--font-size--eyebrow); line-height: 27px; font-weight: 500; color: var(--muted); }
.ah-form .gform_wrapper.gravity-theme .gfield_required { color: inherit; }
.ah-form .gform_wrapper.gravity-theme :is(input[type=text], input[type=email], textarea) {
	width: 100%; box-sizing: border-box; margin: 0; padding: 14px 16px; border: 1px solid var(--border); border-radius: var(--r-md);
	background: var(--white); color: var(--ink); font: 16px/25.6px var(--wp--preset--font-family--core); outline: none; transition: border-color var(--dur-fast);
}
.ah-form .gform_wrapper.gravity-theme :is(input[type=text], input[type=email], textarea):focus { border-color: var(--ink); }
.ah-form .gform_wrapper.gravity-theme textarea { resize: vertical; height: auto; min-height: 0; }
.ah-form .gform_wrapper.gravity-theme .gfield_error :is(input, textarea) { border-color: var(--error); }
.ah-form .gform_wrapper.gravity-theme .gfield_validation_message, .ah-form .gform_wrapper.gravity-theme .validation_message { margin-top: 8px; padding: 0; border: 0; background: none; font-size: 14px; color: var(--error); }
.ah-form .gform_wrapper.gravity-theme .gform_validation_errors { margin: 0 0 20px; padding: 12px 16px; border: 1px solid var(--error); border-radius: var(--r-md); background: none; box-shadow: none; }
.ah-form .gform_wrapper.gravity-theme .gform_validation_errors h2 { margin: 0; font-size: 14px; line-height: 22.4px; font-weight: 500; color: inherit; }
.ah-form .gform_wrapper.gravity-theme .gform_validation_errors .gform-icon { display: none; }
.ah-form .gform_confirmation_message { font-size: var(--wp--preset--font-size--lead); line-height: 30px; }
.ah-form .gform_footer { margin: 0; padding: 0; }

/* Contact, on ink */
.ah-form--contact .gform_wrapper.gravity-theme .gform_fields { row-gap: 20px; column-gap: 20px; }
.ah-form--contact .gform_wrapper.gravity-theme .gfield_label { color: var(--w80); }
.ah-form--contact .gform_wrapper.gravity-theme :is(input[type=text], input[type=email], textarea) { border-color: var(--w30); background: var(--w05); color: var(--white); }
.ah-form--contact .gform_wrapper.gravity-theme :is(input[type=text], input[type=email], textarea):focus { border-color: var(--w70); }
.ah-form--contact .gform_wrapper.gravity-theme .gfield_validation_message, .ah-form--contact .gform_wrapper.gravity-theme .gform_validation_errors { color: var(--w85); }
.ah-form--contact .gform_wrapper.gravity-theme .gform_validation_errors { border-color: var(--w30); }
.ah-form--contact .gform_wrapper.gravity-theme .gfield_error :is(input, textarea) { border-color: var(--w70); border-width: 2px; }
.ah-form--contact .gform_footer { margin-top: 20px !important; }
.ah-form--contact .gform_button { padding: 15px 40px; border: 1px solid var(--white); border-radius: var(--r-pill); background: var(--white); color: var(--ink); font: 500 16px/25.6px var(--wp--preset--font-family--core); cursor: pointer; transition: transform var(--dur); }
.ah-form--contact .gform_button:hover { transform: var(--wp--custom--motion--lift); }
/* Topic: pill tags; the checked one is white */
.ah-topics-field .gfield_radio { display: flex; flex-wrap: wrap; gap: 8px; }
.ah-topics-field .gchoice { position: relative; margin: 0; }
.ah-topics-field .gchoice input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.ah-topics-field .gchoice label {
	display: inline-flex; align-items: center; margin: 0; padding: 11px 16px; border: 1px solid var(--w30); border-radius: var(--r-pill);
	font-size: var(--wp--preset--font-size--tag); line-height: 16px; font-weight: 500; letter-spacing: var(--wp--custom--tracking--tag); text-transform: uppercase; color: var(--w80);
}
.ah-topics-field .gchoice input:checked + label { background: var(--white); border-color: var(--white); color: var(--ink); }
.ah-topics-field .gchoice input:focus-visible + label { outline: 2px solid var(--white); outline-offset: 2px; }
.ah-topics-field .gchoice:hover label { border-color: var(--white); }

/* Newsletter: one email pill with a round submit inside it */
.ah-form--newsletter .gform_wrapper.gravity-theme form { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
.ah-form--newsletter .gform_wrapper.gravity-theme :is(.gform-body, .gform_body, .gform_fields) { display: contents; }
.ah-form--newsletter .ah-nl-email { grid-column: 1 / -1; grid-row: 1; }
.ah-form--newsletter .gform_validation_errors { display: none; }
.ah-form--newsletter .gform_footer { grid-column: 2; grid-row: 1; align-self: start; z-index: 1; margin: 4px 4px 0 0 !important; }
.ah-form--newsletter .ah-nl-email .gfield_label { position: absolute; clip: rect(0 0 0 0); width: 1px; height: 1px; overflow: hidden; }
.ah-form--newsletter .gform_wrapper.gravity-theme input[type=email] { border-radius: var(--r-pill); padding: 12px 56px 12px 20px; }
.ah-form--newsletter .gform_button { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: var(--ink); color: var(--white); cursor: pointer; transition: transform var(--dur); }
.ah-form--newsletter .gform_button:hover { transform: scale(1.08); }
.ah-form--newsletter .gform_confirmation_message { font-size: 17px; line-height: 27.2px; font-weight: 500; }
/* Footer variant, on ink */
.ah-form--footer .gform_wrapper.gravity-theme input[type=email] { border-color: var(--w30); background: var(--w05); color: var(--white); }
.ah-form--footer .gform_wrapper.gravity-theme input[type=email]:focus { border-color: var(--w70); }
.ah-form--footer .gform_wrapper.gravity-theme ::placeholder { color: var(--faint); }
.ah-form--footer .gform_button { background: var(--white); color: var(--ink); }
.ah-form--footer .gfield_validation_message { color: var(--faint); }
.ah-topics-field .gfield_radio { display: flex !important; flex-wrap: wrap; gap: 8px; }
.ah-topics-field .gchoice { display: inline-flex; }
.ah-topics-field .gchoice label { max-width: none !important; white-space: nowrap; }
.ah-form--newsletter .gform_wrapper.gravity-theme .gfield.ah-nl-email { grid-column: 1 / -1 !important; grid-row: 1 !important; }
.ah-form--newsletter .gform_wrapper.gravity-theme .gform_footer { grid-column: 2 !important; grid-row: 1 !important; justify-self: end; }
.ah-form--newsletter .gform_wrapper.gravity-theme .gfield:not(.ah-nl-email) { grid-column: 1 / -1 !important; }
.ah-form--newsletter .gform_wrapper.gravity-theme .gform_footer { padding: 0 !important; margin: 6px 6px 0 0 !important; align-self: start; }
.ah-form--newsletter .gform_wrapper.gravity-theme .gfield.ah-nl-email { margin: 0 !important; padding: 0 !important; }
.ah-form--newsletter .gform_wrapper.gravity-theme .gfield.ah-nl-email > :is(p:empty, .gfield_description:empty) { display: none; }
.ah-newsletter h2.wp-block-heading { margin: 0; font-size: 32px; line-height: 40px; }
/* Heading block → content: 64px side by side, the 48px stack-section token when stacked (2026-11-14 review). */
.ah-split { column-gap: var(--wp--preset--spacing--64); row-gap: var(--wp--preset--spacing--stack-section); }
