/*
 * Y Academy Press theme.
 * Tokens: --yay-* mirror STANDARD/assets/yay-ui.css; colour values come from the
 * Customizer (inc/tokens.php prints them after this file). System fonts only.
 * Brand: Y Academy Brand Standards, Edition 1.2.
 */
:root {
	--yay-primary: #00633b;
	--yay-primary-600: #004d2e;
	--yay-primary-800: #003a22;
	--yay-primary-050: #ebf3ef;
	--yay-gold: #d4aa25;
	--yapt-gold-text: #7e6410;
	--yay-crimson: #aa0010;
	--yay-ground: #ffffff;
	--yay-surface: #ffffff;
	--yay-ink: #1f2326;
	--yapt-black: #0a0a0a;
	--yapt-parchment: #e2dfdb;
	--yay-line: #e3e0dc;
	--yay-line-strong: #c9c5c0;
	--yay-muted: #555550;
	--yay-radius: 8px;
	--yay-radius-sm: 4px;
	--yay-shadow: 0 1px 2px rgba(16, 24, 20, .04);
	--yay-shadow-hover: 0 2px 5px rgba(16, 24, 20, .07);
	--yapt-book-shadow: 0 1px 2px rgba(10, 10, 10, .12), 0 12px 24px -12px rgba(10, 10, 10, .35);
	--yapt-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--yapt-serif: Cambria, "Liberation Serif", Georgia, "Times New Roman", serif;
	--yapt-head-font: var(--yapt-serif);
	--yapt-width: 1200px;
	--yapt-prose: 720px;
	--yapt-gutter: max(16px, 4vw);
}

/* Dark mode is opt-in (Customizer): neutrals invert, the accents stay put. */
@media (prefers-color-scheme: dark) {
	.yapt-dark-auto {
		--yay-ground: #16191c;
		--yay-surface: #1e2226;
		--yay-ink: #e7eaec;
		--yay-line: #2c3237;
		--yay-line-strong: #3c444b;
		--yay-muted: #9aa3ab;
		--yapt-gold-text: #d4aa25;
	}
}

*, *::before, *::after { box-sizing: border-box; }
body {
	margin: 0;
	background: var(--yay-ground);
	color: var(--yay-ink);
	font: 400 1.0625rem/1.65 var(--yapt-sans);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img, svg, video { max-width: 100%; height: auto; }
a { color: var(--yay-primary); text-underline-offset: 2px; }
a:hover { color: var(--yay-primary-800); }
:focus-visible { outline: 3px solid var(--yay-gold); outline-offset: 2px; }
h1, h2, h3, h4, h5, h6 { font-family: var(--yapt-head-font); font-weight: 700; line-height: 1.15; letter-spacing: -.01em; color: var(--yay-ink); text-wrap: balance; margin: 0 0 .5em; }
h1 { font-size: clamp(2.2rem, 4.5vw, 3.4rem); }
h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); }
h3 { font-size: 1.3rem; }
p { text-wrap: pretty; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }

html body .yapt-skip { position: absolute; left: -9999px; top: 8px; z-index: 1000; background: var(--yapt-black); color: var(--yapt-parchment); padding: 10px 16px; }
.yapt-skip:focus { left: 8px; }

.yapt-container { max-width: calc(var(--yapt-width) + 2 * var(--yapt-gutter)); margin: 0 auto; padding-left: var(--yapt-gutter); padding-right: var(--yapt-gutter); }
.yapt-container--prose { max-width: calc(var(--yapt-prose) + 2 * var(--yapt-gutter)); }
.yapt-main { padding-block: clamp(40px, 7vw, 88px); min-height: 50vh; }
.yapt-narrow { --content-width: 760px; }

.yapt-kicker { font: 700 .75rem/1.2 var(--yapt-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--yapt-gold-text); margin: 0 0 .75rem; }
html body .yapt-kicker a { color: inherit; text-decoration: none; }
.yapt-lead { font-size: 1.25rem; color: var(--yay-muted); }

/* Link colours carry `html body`: an Elementor kit colours every link with `.elementor-kit-N a`
   (one class and one element), and its stylesheet loads after this one. On yacademypress.com
   that turned the header button's text black on green (7 Nov 2026). */

/* Buttons: 40px minimum tap target (YAY-APP-STANDARD §1.6). */
.yapt-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 20px; border-radius: var(--yay-radius-sm); font: 700 .95rem/1.2 var(--yapt-sans); text-decoration: none; border: 2px solid transparent; cursor: pointer; }
html body .yapt-btn--primary { background: var(--yay-primary); color: #fff; }
html body .yapt-btn--primary:hover { background: var(--yay-primary-800); color: #fff; }

/* Announcement bar */
.yapt-announce { background: var(--yay-primary); color: var(--yapt-parchment); font: 600 .875rem/1.4 var(--yapt-sans); text-align: center; padding: 8px 0; }
html body .yapt-announce a { color: var(--yapt-parchment); text-decoration: underline; }

/* Header */
.yapt-header { background: var(--yay-surface); border-bottom: 1px solid var(--yay-line); z-index: 50; }
.yapt-sticky .yapt-header { position: sticky; top: 0; }
.admin-bar.yapt-sticky .yapt-header { top: 32px; }
.yapt-header__inner { display: flex; align-items: center; gap: 24px; min-height: 72px; }
.yapt-header__brand { flex: 0 0 auto; }
.yapt-logo { display: block; line-height: 0; }
.yapt-logo img { height: 52px; width: auto; }
html body .yapt-logo--text { font: 700 1.25rem/1.2 var(--yapt-serif); color: var(--yay-ink); text-decoration: none; line-height: 1.2; }
.custom-logo { max-height: 56px; width: auto; }
.yapt-nav { flex: 1 1 auto; }
.yapt-menu { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px 22px; flex-wrap: wrap; justify-content: center; }
html body .yapt-menu a { display: inline-flex; align-items: center; min-height: 40px; color: var(--yay-ink); text-decoration: none; font: 600 .95rem/1.2 var(--yapt-sans); }
html body .yapt-menu a:hover, html body .yapt-menu .current-menu-item > a { color: var(--yay-primary); }
.yapt-menu .sub-menu { list-style: none; margin: 0; padding: 8px 0; position: absolute; min-width: 220px; background: var(--yay-surface); border: 1px solid var(--yay-line); border-radius: var(--yay-radius); box-shadow: var(--yay-shadow-hover); display: none; }
.yapt-menu li { position: relative; }
.yapt-menu li:hover > .sub-menu, .yapt-menu li:focus-within > .sub-menu { display: block; }
.yapt-menu .sub-menu a { padding: 0 16px; }
.yapt-header__actions { display: flex; align-items: center; gap: 14px; flex: 0 0 auto; }
html body .yapt-header__account { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; color: var(--yay-ink); text-decoration: none; font: 600 .9rem/1 var(--yapt-sans); }
html body .yapt-header__account:hover, html body .yapt-header__cart:hover { color: var(--yay-primary); }
html body .yapt-header__cart { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; color: var(--yay-ink); text-decoration: none; font: 600 .9rem/1 var(--yapt-sans); }
.yapt-header__count { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--yay-gold); color: var(--yapt-black); font-size: .75rem; }
.yapt-nav-toggle { display: none; min-width: 44px; min-height: 44px; border: 1px solid var(--yay-line-strong); border-radius: var(--yay-radius-sm); background: var(--yay-surface); color: var(--yay-ink); cursor: pointer; }

@media (max-width: 980px) {
	.yapt-header__inner { flex-wrap: wrap; gap: 12px; padding-block: 10px; }
	.yapt-header__brand { flex: 1 1 auto; }
	.yapt-nav-toggle { display: inline-grid; place-items: center; order: 2; }
	.yapt-header__actions { order: 1; }
	.yapt-nav { order: 3; flex-basis: 100%; display: none; }
	.yapt-nav.is-open { display: block; }
	.yapt-menu { flex-direction: column; align-items: flex-start; padding-bottom: 8px; }
	.yapt-menu .sub-menu { position: static; display: block; border: 0; box-shadow: none; padding: 0 0 0 16px; }
	.yapt-header__actions .yapt-btn { display: none; }
}
@media (max-width: 480px) {
	.yapt-logo img { height: 42px; }
	.yapt-header__cart span:not(.yapt-header__count) { display: none; }
	.yapt-header__account span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* Entries */
.yapt-entry__head { margin-bottom: 1.5rem; }
.yapt-entry__title { margin-bottom: .4em; }
.yapt-entry__media { margin: 0 0 2rem; }
.yapt-entry__media img { border-radius: var(--yay-radius); }
.yapt-entry__content { font-family: var(--yapt-serif); font-size: 1.15rem; line-height: 1.7; }
.yapt-entry__content > * + * { margin-top: 1.1em; }
.yapt-entry__content blockquote { border-left: 3px solid var(--yay-gold); margin-left: 0; padding-left: 1.25rem; font-style: italic; }
.yapt-meta { font: .875rem/1.4 var(--yapt-sans); color: var(--yay-muted); }
.yapt-meta__sep { margin: 0 .5em; }
.yapt-listing-head { margin-bottom: 2rem; }

/* Cards and grids */
.yapt-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(max(260px, calc((100% - 3 * 28px) / 4)), 1fr)); gap: 28px; } /* at most 4 columns: yapt_listing_per_page() fills whole rows */
.yapt-card { background: var(--yay-surface); border: 1px solid var(--yay-line); border-radius: var(--yay-radius); overflow: hidden; display: flex; flex-direction: column; box-shadow: var(--yay-shadow); }
.yapt-card:hover { box-shadow: var(--yay-shadow-hover); }
.yapt-card__media { display: block; }
.yapt-card__media img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.yapt-card--book .yapt-card__media { padding: 20px 20px 0; background: var(--yay-surface); }
.yapt-card--book .yapt-card__media img { aspect-ratio: 2 / 3; box-shadow: var(--yapt-book-shadow); }
.yapt-card__body { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: 6px; }
.yapt-card__title { font-size: 1.15rem; margin: 0; }
html body .yapt-card__title a { color: var(--yay-ink); text-decoration: none; }
html body .yapt-card__title a:hover { color: var(--yay-primary); }
.yapt-card__excerpt p { margin: 0; color: var(--yay-muted); font-size: .95rem; }
.yapt-card__price { margin: 0; font: 700 .95rem/1.4 var(--yapt-sans); }
.yapt-book-author { margin: .15rem 0 .35rem; font: italic 1rem/1.4 var(--yapt-serif); color: var(--yay-muted); }

.yapt-pagination { margin-top: 2.5rem; font-family: var(--yapt-sans); }
.yapt-pagination .nav-links { display: flex; gap: 8px; flex-wrap: wrap; }
.yapt-pagination .page-numbers { display: inline-grid; place-items: center; min-width: 40px; min-height: 40px; padding: 0 10px; border: 1px solid var(--yay-line-strong); border-radius: var(--yay-radius-sm); text-decoration: none; color: var(--yay-ink); }
.yapt-pagination .current { background: var(--yay-primary); border-color: var(--yay-primary); color: #fff; }

.yapt-none { padding: 24px 0; }
.yapt-404 .yapt-search { margin: 24px 0; }

/* Search */
.yapt-search { display: flex; gap: 8px; flex-wrap: wrap; max-width: 560px; }
.yapt-search__field { flex: 1 1 220px; min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid var(--yay-line-strong); border-radius: var(--yay-radius-sm); background: var(--yay-surface); color: var(--yay-ink); font: 1rem var(--yapt-sans); }

/* Footer */
/* White footer (1.0.2): Ink on white, set off by a gold rule. */
.yapt-footer { background: var(--yay-surface); color: var(--yay-ink); border-top: 3px solid var(--yay-gold); padding-block: 64px 28px; font-size: .95rem; }
html body .yapt-footer a { color: var(--yay-ink); text-decoration: none; }
html body .yapt-footer a:hover { color: var(--yay-primary); text-decoration: underline; }
.yapt-footer__top { display: grid; grid-template-columns: 1.4fr 2fr; gap: 40px; }
.yapt-footer__brand .yapt-logo img { height: 56px; }
.yapt-footer__tagline { color: var(--yay-muted); max-width: 32em; }
.yapt-footer__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 28px; }
.yapt-footer__col .widget-title { font: 700 .75rem/1.2 var(--yapt-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--yapt-gold-text); margin-bottom: .8rem; }
.yapt-footer__col ul { list-style: none; margin: 0; padding: 0; }
.yapt-footer :is(h1, h2, h3, h4, h5, h6) { color: var(--yay-ink); font: 700 .75rem/1.2 var(--yapt-sans); letter-spacing: .16em; text-transform: uppercase; margin: 0 0 .8rem; }
.yapt-footer .yapt-footer__col :is(h1, h2, h3, h4, h5, h6) { color: var(--yapt-gold-text); }
.yapt-footer__col .widget + .widget { margin-top: 1.5rem; }
.yapt-footer__col li a { display: inline-flex; min-height: 36px; align-items: center; }
.yapt-footer__bottom { border-top: 1px solid var(--yay-line-strong); margin-top: 40px; padding-top: 20px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; font: .85rem/1.5 var(--yapt-sans); color: var(--yay-muted); }
.yapt-footer__bottom p { margin: 0; }
.yapt-footer__menu { list-style: none; margin: 0; padding: 0; display: flex; gap: 16px; flex-wrap: wrap; }
@media (max-width: 760px) { .yapt-footer__top { grid-template-columns: 1fr; } }

/* Comments */
.yapt-comments { margin-top: 3rem; border-top: 1px solid var(--yay-line); padding-top: 2rem; }
.yapt-comments__title { font-size: 1.4rem; }
.yapt-comments__list { padding-left: 1.2rem; }

/* Notices for editors (forms or plugins not active) */
.yapt-notice { font: .9rem/1.5 var(--yapt-sans); background: #fff8e1; color: #3b3000; border-left: 3px solid var(--yay-gold); padding: 12px 16px; }

/* Elementor designs: classes set by bin/make-templates.py */
.yapt-hero .woocommerce ul.products { margin: 0; }
.yapt-hero-books ul.products { display: flex !important; justify-content: center; }
.yapt-hero-books ul.products li.product { width: 33% !important; margin: 0 -14px !important; float: none !important; }
.yapt-hero-books ul.products li.product:nth-child(1) { transform: rotate(-6deg) translateY(12px); }
.yapt-hero-books ul.products li.product:nth-child(2) { transform: scale(1.08); z-index: 2; }
.yapt-hero-books ul.products li.product:nth-child(3) { transform: rotate(6deg) translateY(12px); }
.yapt-hero-books ul.products li.product :is(.woocommerce-loop-product__title, .price, .button, .yapt-book-author, .onsale) { display: none !important; }
.yapt-proof p { margin: 0; }
/* The gold half of a hero headline, as on the current site: the text-safe gold, italic. */
.yapt-accent { color: var(--yapt-gold-text); font-style: italic; }
.yapt-collection { transition: border-color .2s; }
.yapt-collection:hover { border-color: var(--yay-primary) !important; }
.yapt-stage { border-top: 2px solid var(--yay-gold); padding-top: 16px; }
.yapt-stage-num { font-family: var(--yapt-serif); }

/* WooCommerce: covers, saving badge, prices, buttons */
.yapt-shop .woocommerce-products-header__title, .woocommerce-products-header__title { font-family: var(--yapt-head-font); }
.woocommerce ul.products li.product a img, .woocommerce div.product div.images img { aspect-ratio: 2 / 3; object-fit: cover; box-shadow: var(--yapt-book-shadow); border-radius: 2px; transition: transform .25s ease; }
.woocommerce ul.products li.product:hover a img { transform: translateY(-4px); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--yapt-head-font); font-size: 1.05rem; color: var(--yay-ink); }
.woocommerce span.onsale { background: var(--yay-crimson); color: #fff; border-radius: 2px; min-height: 0; min-width: 0; line-height: 1; padding: .45em .6em; font: 700 .72rem/1 var(--yapt-sans); letter-spacing: .06em; text-transform: uppercase; }
.woocommerce .price { color: var(--yay-ink) !important; font: 700 1rem/1.4 var(--yapt-sans); }
.woocommerce .price del { color: var(--yay-muted); font-weight: 400; }
.woocommerce .price ins { text-decoration: none; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit { background: var(--yay-primary); color: #fff; border-radius: var(--yay-radius-sm); font-family: var(--yapt-sans); font-weight: 700; min-height: 44px; }
.woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--yay-primary-800); color: #fff; }
.woocommerce .woocommerce-breadcrumb { font: .875rem var(--yapt-sans); color: var(--yay-muted); }

/* Tutor LMS reads its own custom properties. */
:root { --tutor-color-primary: var(--yay-primary); --tutor-color-primary-hover: var(--yay-primary-800); }

/* YAY forms (CRM, Memberships, HRMS): width and type only; the form keeps its own logic. */
.yay-form input:not([type=checkbox]):not([type=radio]), .yay-form select, .yay-form textarea { min-height: 44px; border-radius: var(--yay-radius-sm); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; }
	.yapt-hero-books ul.products li.product { transform: none !important; }
}

/* Print drops the navigation (YAY-APP-STANDARD §1.6). */
@media print {
	.yapt-header, .yapt-announce, .yapt-footer, .yapt-nav, .yapt-skip, .yapt-comments { display: none !important; }
	body { background: #fff; color: #000; }
	a { color: inherit; }
}

/* Newsletter popup (1.2.0): white panel, gold rule, Ink text. */
.yapt-popup { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 16px; }
.yapt-popup[hidden] { display: none; }
.yapt-popup__backdrop { position: absolute; inset: 0; background: rgba(10, 10, 10, .45); }
.yapt-popup__panel { position: relative; width: min(520px, 100%); max-height: calc(100vh - 32px); overflow: auto; background: var(--yay-surface); color: var(--yay-ink); border-top: 4px solid var(--yay-gold); border-radius: var(--yay-radius); box-shadow: 0 20px 50px rgba(10, 10, 10, .25); padding: 36px 32px 28px; }
.yapt-popup__close { position: absolute; top: 10px; right: 10px; min-width: 44px; min-height: 44px; display: grid; place-items: center; background: none; border: 0; color: var(--yay-muted); cursor: pointer; border-radius: var(--yay-radius-sm); }
.yapt-popup__close:hover { color: var(--yay-ink); }
.yapt-popup__title { font-size: 1.6rem; margin: 0 0 .5rem; }
.yapt-popup__text { color: var(--yay-muted); margin: 0 0 1.25rem; }
.yapt-popup__form input[type=email], .yapt-popup__form input[type=text] { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--yay-line-strong); border-radius: var(--yay-radius-sm); font: 1rem var(--yapt-sans); }
.yapt-popup__form input[type=submit], .yapt-popup__form button { min-height: 44px; background: var(--yay-primary); color: #fff; border: 0; border-radius: var(--yay-radius-sm); padding: 10px 20px; font: 700 1rem var(--yapt-sans); cursor: pointer; }
.yapt-popup-open { overflow: hidden; }
@media (prefers-reduced-motion: no-preference) { .yapt-popup__panel { animation: yapt-rise .25s ease-out; } }
@keyframes yapt-rise { from { transform: translateY(12px); opacity: 0; } to { transform: none; opacity: 1; } }

/* Journal articles (1.2.0): the book link and the AI-assistance note. */
.yapt-further { border-top: 1px solid var(--yay-line); padding-top: 1rem; font-family: var(--yapt-sans); font-size: 1rem; }
.yapt-disclosure { font: italic .9rem/1.5 var(--yapt-sans); color: var(--yay-muted); }
@media print { .yapt-popup { display: none !important; } }

/* A newsletter section whose form renders nothing hides itself (1.2.1), for visitors.
   Editors still see it, with the theme's note saying why. */
body:not(.logged-in) .e-con:has(.yapt-form-empty[data-purpose="newsletter"]) { display: none; }

/* Book Insights head pictures (1.2.1): book covers are shown whole, never cropped. */
.yapt-card--insight .yapt-card__media { background: var(--yay-surface); border-bottom: 1px solid var(--yay-line); padding: 16px; }
.yapt-card--insight .yapt-card__media img { aspect-ratio: 3 / 2; object-fit: contain; }
.yapt-entry__media--insight { text-align: center; }
.yapt-entry__media--insight img { max-height: 460px; width: auto; object-fit: contain; border-radius: 2px; box-shadow: var(--yapt-book-shadow); }

/* Generative AI policy. The page carries its own HTML block (#yap-genai-policy, built from
   the brand standards in August 2026) with an Academy Green masthead and statement box and
   an Ink colophon. Here it is brought to the Press site's standard: totally white, no bands
   (Youssef, 7 Nov 2026), and laid out at full width, because in the theme's reading column
   its own contents rail left the text about 250px wide and cut its tables off. Its own
   title replaces the theme's. Nothing in the page's content is changed. */
.yapt-container--prose:has(#yap-genai-policy) { max-width: none; padding-left: 0; padding-right: 0; }
.yapt-entry:has(#yap-genai-policy) > .yapt-entry__head { display: none; }
.yapt-main:has(#yap-genai-policy) { padding-top: 0; }
html body #yap-genai-policy .yap-masthead { background: var(--yay-surface); color: var(--yay-ink); border-bottom: 3px solid var(--yay-gold); }
html body #yap-genai-policy .yap-masthead h1 { color: var(--yay-ink); }
html body #yap-genai-policy .yap-masthead .yap-kicker { color: var(--yapt-gold-text); }
html body #yap-genai-policy .yap-standfirst { color: var(--yay-ink); }
html body #yap-genai-policy .yap-meta, html body #yap-genai-policy .yap-meta strong { color: var(--yay-muted); }
html body #yap-genai-policy .yap-statement { background: var(--yay-surface); color: var(--yay-ink); border: 1px solid var(--yay-line); border-left: 4px solid var(--yay-primary); }
html body #yap-genai-policy .yap-statement .yap-statement-t { color: var(--yapt-gold-text); }
html body #yap-genai-policy .yap-statement em { color: var(--yay-primary); }
html body #yap-genai-policy .yap-colophon { background: var(--yay-surface); color: var(--yay-muted); border-top: 1px solid var(--yay-line); }
html body #yap-genai-policy .yap-colophon strong { color: var(--yay-ink); }

/* 1.2.2: product rows (textbooks on Home, the founder's books on Authors), the founder's
   profile, the motto card on About, and the FAQ and legal pages. */
.yapt-row { display: grid; gap: 14px; margin-top: 12px; }
.yapt-row-head { display: grid; gap: 2px; border-top: 1px solid var(--yay-line); padding-top: 24px; }
.yapt-row-head .yapt-kicker { margin: 0; }
.yapt-row-title { margin: 0; font-size: 1.6rem; }
.yapt-author-profile .elementor-widget-text-editor p + p { margin-top: .8em; }
.yapt-motto { font-style: italic; letter-spacing: .01em; }
.yapt-motto-card { border-top: 3px solid var(--yay-gold) !important; }
.yapt-faq h3, .yapt-faq .elementor-heading-title { scroll-margin-top: 96px; }
.yapt-faq .elementor-widget-heading:has(h2) { margin-top: 12px; padding-top: 18px; border-top: 1px solid var(--yay-line); }
.yapt-legal .elementor-widget-text-editor p + p { margin-top: .8em; }
.yapt-motto .elementor-heading-title { font-family: var(--yapt-head-font); }

/* ── 1.3.0: photograph headers, on the CEQAC model (Charter §9a) ─────────────────
   Every page opens with a photograph shaded left to right so its text passes contrast
   (CEQAC's page hero: ink 94 % → 82 % → 35 %). Grounds below stay white. */
.yapt-photo-hero, .yapt-photo-banner { position: relative; isolation: isolate; color: #fff; background-color: var(--yapt-black); background-size: cover; background-position: center; }
/* `html body` and the element class: Elementor's frontend stylesheet loads after this one and
   gives every container its own ::before (its overlay), which hid the shade on the designed
   pages (measured 7 Nov 2026: white text on a bright photograph). */
html body .e-con.yapt-photo-hero::before, html body .yapt-photo-hero::before, html body .yapt-photo-banner::before { content: ""; display: block; position: absolute; inset: 0; z-index: 0; opacity: 1; mix-blend-mode: normal; background: linear-gradient(100deg, rgba(10, 10, 10, .94) 0%, rgba(10, 10, 10, .82) 45%, rgba(10, 10, 10, .35) 100%); pointer-events: none; }
html body .yapt-photo-hero > *, html body .yapt-photo-banner > * { position: relative; z-index: 1; }
.yapt-photo-hero--home { min-height: min(84vh, 760px); }
.yapt-photo-hero .yapt-accent { color: var(--yay-gold); }
.yapt-photo-hero .yapt-hero-books { background: rgba(255, 255, 255, .97); color: var(--yay-ink); border-radius: var(--yay-radius-sm); padding: 16px; box-shadow: 0 24px 48px rgba(0, 0, 0, .35); }
.yapt-crumbs, .yapt-crumbs p { margin: 0; font: 600 .85rem/1.4 var(--yapt-sans); color: rgba(255, 255, 255, .78); }
html body .yapt-crumbs a { color: #fff; text-decoration: none; }
html body .yapt-crumbs a:hover { text-decoration: underline; }

/* The banner theme templates draw (listings, plain pages, the shop, 404): full width from
   inside the container, flush under the header. */
.yapt-main:has(.yapt-photo-banner) { overflow-x: clip; }
.yapt-photo-banner { margin: calc(-1 * clamp(40px, 7vw, 88px)) calc(50% - 50vw) 2.5rem; padding: clamp(64px, 9vw, 120px) max(16px, calc(50vw - 600px)) clamp(56px, 7vw, 96px); }
.yapt-photo-banner--compact { padding-block: clamp(40px, 5vw, 64px); }
.yapt-photo-banner__inner { max-width: 860px; display: grid; gap: 14px; }
.yapt-photo-banner .yapt-kicker { margin: 0; color: var(--yay-gold); }
.yapt-photo-banner__title { margin: 0; color: #fff; font-size: clamp(2.2rem, 5vw, 3.6rem); }
.yapt-photo-banner__text { color: rgba(255, 255, 255, .86); font-size: 1.15rem; max-width: 640px; }

/* A photograph beside text (CEQAC's image-and-text split). */
.yapt-split-photo img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: var(--yay-radius-sm); box-shadow: 0 24px 48px rgba(10, 10, 10, .18); }

/* The Generative AI policy: the theme's photograph banner carries its title, so the block's
   own kicker and title are hidden; on a phone, the block may no longer outgrow the screen
   (measured 7 Nov 2026: text clipped at 390 px). */
html body #yap-genai-policy .yap-masthead h1, html body #yap-genai-policy .yap-masthead .yap-kicker { display: none; }
html body #yap-genai-policy { max-width: 100%; overflow-x: clip; }
html body #yap-genai-policy .yap-shell > * { min-width: 0; }
.yapt-photo-hero__text { max-width: 860px; }
.yapt-split__media { align-self: stretch; }
.yapt-photo-hero .yapt-hero-books:not(:has(li)) { display: none; }

/* YAY Memberships' plans (1.3.2, Youssef: "three plans across, and label prices CAD"):
   three equal columns from 900px, one on phones; the page gets the full width, because the
   reading column is too narrow for three; prices read "$49 CAD/year" (the plugin prints the
   "$" from its own setting, so the theme adds the currency beside it). */
.yapt-container--prose:has(.yaymem-plans) { max-width: calc(var(--yapt-width) + 2 * var(--yapt-gutter)); }
html body .yaymem-plans__grid { display: grid; grid-template-columns: 1fr; gap: 24px; align-items: stretch; }
@media (min-width: 900px) { html body .yaymem-plans__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
html body .yaymem-plans__grid > .yaymem-plan { width: auto; max-width: none; margin: 0; }
html body .yaymem-plan__suffix::before { content: "CAD"; margin-right: .2em; }
