/* Yardage theme — main.css
   A yardage book meets an Apple product page. Mobile-first, no build step.
   Tokens are CSS custom properties (--yd-*); see COMPONENTS.md. */

/* 1. Tokens ---------------------------------------------------------------- */
:root {
  --yd-bg: #fbfaf6;
  --yd-surface: #ffffff;
  --yd-surface-2: #f1f0e9;
  --yd-surface-3: #e6e5dc;
  --yd-ink: #141a16;
  --yd-ink-2: #4b534d;
  --yd-ink-3: #5f6862;
  --yd-rule: #dfded6;
  --yd-rule-strong: #b9b8ae;
  --yd-green: #267946;
  --yd-green-text: #23703f;
  --yd-green-soft: #e3efe6;
  --yd-green-deep: #123b24;
  --yd-on-green: #ffffff;
  --yd-sand: #e8dfc7;
  --yd-water: #d9e6ea;
  --yd-yes: #23703f;
  --yd-no: #5f6862;
  --yd-partial: #8a5a0b;
  --yd-focus: #267946;
  --yd-phone-bezel: #0f1210;
  --yd-shadow-1: 0 1px 2px rgba(20, 26, 22, .06), 0 1px 1px rgba(20, 26, 22, .04);
  --yd-shadow-2: 0 24px 48px -24px rgba(20, 26, 22, .35), 0 0 0 1px rgba(20, 26, 22, .06);

  --yd-font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --yd-font-display: ui-rounded, "SF Pro Rounded", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --yd-font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  --yd-text-xs: .75rem;
  --yd-text-sm: .875rem;
  --yd-text-md: clamp(1rem, .95rem + .25vw, 1.0625rem);
  --yd-text-lg: clamp(1.125rem, 1.05rem + .35vw, 1.3125rem);
  --yd-text-xl: clamp(1.375rem, 1.2rem + .8vw, 1.75rem);
  --yd-text-2xl: clamp(1.75rem, 1.4rem + 1.6vw, 2.5rem);
  --yd-text-3xl: clamp(2.25rem, 1.6rem + 3vw, 4.25rem);
  --yd-text-display: clamp(5rem, 3rem + 12vw, 10rem);

  --yd-s-1: 4px; --yd-s-2: 8px; --yd-s-3: 12px; --yd-s-4: 16px; --yd-s-5: 24px; --yd-s-6: 32px;
  --yd-s-7: 48px; --yd-s-8: 64px; --yd-s-9: 96px;
  --yd-radius: 12px;
  --yd-radius-sm: 8px;
  --yd-radius-pill: 999px;
  --yd-wrap: 72rem;
  --yd-measure: 42rem;
  --yd-gutter: 16px;
  --yd-phone-w: 15rem;
  --yd-header-h: 60px;
  --yd-contour: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='480' viewBox='0 0 480 480'%3E%3Cg fill='none' stroke='%23fff' stroke-opacity='.09'%3E%3Cpath d='M-20 90C60 40 160 30 240 60s150 40 260 10'/%3E%3Cpath d='M-20 150C60 110 150 96 240 120s150 46 260 16'/%3E%3Cpath d='M-20 214C70 180 160 170 240 196s140 44 260 14'/%3E%3Cpath d='M-20 300C60 270 140 262 220 280s150 40 280 12'/%3E%3Cpath d='M-20 370C70 340 160 334 240 350s140 36 260 10'/%3E%3Cpath d='M-20 440C60 410 150 404 240 424s150 40 260 10'/%3E%3C/g%3E%3C/svg%3E");
  --yd-contour-soft: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='480' viewBox='0 0 480 480'%3E%3Cg fill='none' stroke='%23fff' stroke-opacity='.045'%3E%3Cpath d='M-20 90C60 40 160 30 240 60s150 40 260 10'/%3E%3Cpath d='M-20 150C60 110 150 96 240 120s150 46 260 16'/%3E%3Cpath d='M-20 214C70 180 160 170 240 196s140 44 260 14'/%3E%3Cpath d='M-20 300C60 270 140 262 220 280s150 40 280 12'/%3E%3Cpath d='M-20 370C70 340 160 334 240 350s140 36 260 10'/%3E%3Cpath d='M-20 440C60 410 150 404 240 424s150 40 260 10'/%3E%3C/g%3E%3C/svg%3E");
  --yd-green-band: #267946;
  color-scheme: light;
}
@media (min-width: 640px) { :root { --yd-gutter: 24px; --yd-phone-w: 16rem; } }
@media (min-width: 1024px) { :root { --yd-gutter: 32px; --yd-phone-w: 18rem; --yd-header-h: 68px; } }

@media (prefers-color-scheme: dark) {
  :root {
    --yd-bg: #0e1511;
    --yd-surface: #151f19;
    --yd-surface-2: #1b2720;
    --yd-surface-3: #243229;
    --yd-ink: #f1f0e8;
    --yd-ink-2: #b7bfb8;
    --yd-ink-3: #97a099;
    --yd-rule: #26332b;
    --yd-rule-strong: #3d4c43;
    --yd-green: #2a8551;
    --yd-green-text: #63c188;
    --yd-green-soft: #16301f;
    --yd-green-deep: #0e2c1b;
    --yd-on-green: #ffffff;
    --yd-sand: #4a4331;
    --yd-water: #1e3038;
    --yd-yes: #63c188;
    --yd-no: #97a099;
    --yd-partial: #d9a441;
    --yd-focus: #63c188;
    --yd-green-band: #247848; /* a touch deeper than --yd-green so white small text stays ≥ 4.5:1 over the texture */
    --yd-phone-bezel: #050705;
    --yd-shadow-1: 0 1px 2px rgba(0, 0, 0, .4);
    --yd-shadow-2: 0 24px 48px -20px rgba(0, 0, 0, .7), 0 0 0 1px rgba(255, 255, 255, .06);
    color-scheme: dark;
  }
}

/* 2. Base ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--yd-header-h) + 16px); scroll-padding-bottom: calc(var(--yd-consent-h, 0px) + 16px); }
body {
  margin: 0;
  background: var(--yd-bg);
  color: var(--yd-ink);
  font: 400 var(--yd-text-md)/1.6 var(--yd-font-sans);
  -webkit-font-smoothing: antialiased;
  hyphens: manual;
  text-rendering: optimizeLegibility;
}
/* Words never break mid-word. Only running text (where a long URL or string can appear) may break a
   word that cannot fit on a line of its own. Logo, nav, buttons, table headers and numbers never do. */
p, li, dd, blockquote, figcaption, td, caption, summary, label, pre, code, h1, h2, h3, h4 { overflow-wrap: break-word; }
th { overflow-wrap: normal; }
[hidden] { display: none !important; }
img, svg, video { max-width: 100%; height: auto; display: block; }
svg { overflow: visible; }
a { color: var(--yd-green-text); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em; text-decoration-color: color-mix(in srgb, currentColor 45%, transparent); }
a:hover { color: var(--yd-ink); text-decoration-color: currentColor; }
h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: 700; line-height: 1.12; letter-spacing: -.02em; color: var(--yd-ink); text-wrap: balance; }
h1 { font-size: var(--yd-text-3xl); letter-spacing: -.03em; line-height: 1.02; }
h2 { font-size: var(--yd-text-2xl); }
h3 { font-size: var(--yd-text-xl); letter-spacing: -.015em; }
h4 { font-size: var(--yd-text-lg); letter-spacing: -.01em; }
p { margin: 0 0 1em; text-wrap: pretty; }
ul, ol { margin: 0 0 1em; padding-left: 1.25em; }
hr { border: 0; border-top: 1px solid var(--yd-rule); margin: var(--yd-s-6) 0; }
strong { font-weight: 600; }
small { font-size: var(--yd-text-sm); }
code, kbd, pre { font-family: var(--yd-font-mono); font-size: .9em; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 2px solid var(--yd-focus); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--yd-green-soft); color: var(--yd-ink); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); white-space: nowrap; }
.yd-skip { position: absolute; left: var(--yd-s-4); top: -100px; z-index: 100; padding: var(--yd-s-2) var(--yd-s-4); background: var(--yd-ink); color: var(--yd-bg); border-radius: var(--yd-radius-sm); text-decoration: none; }
.yd-skip:focus { top: var(--yd-s-3); }
.yd-main:focus { outline: none; }

/* 3. Type utilities -------------------------------------------------------- */
.yd-eyebrow { margin: 0 0 var(--yd-s-3); font-size: var(--yd-text-xs); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--yd-ink-3); }
.yd-eyebrow a { color: inherit; text-decoration: none; }
.yd-eyebrow a:hover { color: var(--yd-ink); }
.yd-lede { font-size: var(--yd-text-lg); line-height: 1.5; color: var(--yd-ink-2); max-width: 36em; text-wrap: pretty; }
.yd-fineprint { font-size: var(--yd-text-sm); color: var(--yd-ink-3); }
.yd-num { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }
.yd-muted { color: var(--yd-ink-3); }
.yd-meta { font-size: var(--yd-text-sm); color: var(--yd-ink-3); }
.yd-meta time { font-variant-numeric: tabular-nums; }

/* 4. Layout ---------------------------------------------------------------- */
.yd-wrap { width: 100%; max-width: var(--yd-wrap); margin-inline: auto; padding-inline: var(--yd-gutter); }
.yd-section { padding-block: var(--yd-s-7); }
.yd-section__title { margin-bottom: var(--yd-s-5); font-size: var(--yd-text-xl); }
.yd-section__more { margin-top: var(--yd-s-5); font-weight: 600; }
/* Flows: the content stream of landing / full / tool / hub templates. Children are sized, never padded,
   so components keep their own box. Landing flows centre their text; the others align to the wrap's left edge. */
.yd-flow > * { margin-inline: auto; }
.yd-flow > :not(.yd-band):not(.alignfull):not(.yd-phone):not(.yd-number) { width: calc(min(var(--yd-wrap), 100%) - 2 * var(--yd-gutter)); }
.yd-flow > .yd-steps, .yd-flow > .yd-principles, .yd-flow > .yd-chips, .yd-flow > .yd-dl, .yd-flow > .yd-cta, .yd-flow > .yd-callout, .yd-flow > ul, .yd-flow > ol, .yd-flow > figure, .yd-flow > blockquote, .yd-flow > .yd-table-scroll, .yd-flow > .yd-lead-form, .yd-flow > .yd-number, .yd-flow > .yd-phone, .yd-flow > hr { margin-inline: auto; }
.yd-flow > p, .yd-flow > h2, .yd-flow > h3, .yd-flow > h4, .yd-flow > ul:not([class*="yd-"]), .yd-flow > ol:not([class*="yd-"]), .yd-flow > blockquote, .yd-flow > figure:not(.yd-phone), .yd-flow > .wp-block-details, .yd-flow > details, .yd-flow > .yd-callout, .yd-flow > .yd-cta--inline, .yd-flow > .yd-cta--card, .yd-flow > .yd-faq, .yd-flow > .yd-lead-form, .yd-flow > .yd-qr { max-width: var(--yd-measure); }
.yd-flow > figure.wp-block-table, .yd-flow > .yd-table-scroll { max-width: 56rem; margin-block: var(--yd-s-5); }
.yd-flow > .yd-band, .yd-flow > .alignfull { width: 100%; max-width: none; }
.yd-flow > .yd-hero { --yd-hero-pad: 0px; }
.yd-flow > h2 { margin-top: var(--yd-s-7); margin-bottom: var(--yd-s-3); }
.yd-flow > h3 { margin-top: var(--yd-s-5); margin-bottom: var(--yd-s-2); }
.yd-flow > p { line-height: 1.65; }
.yd-flow > .yd-split, .yd-flow > .yd-steps, .yd-flow > .yd-facts, .yd-flow > .yd-plans, .yd-flow > .yd-principles, .yd-flow > .yd-grid, .yd-flow > .yd-cta-band, .yd-flow > .yd-tool, .yd-flow > .yd-course-search, .yd-flow > .yd-state-map, .yd-flow > .yd-state-directory, .yd-flow > .yd-state-stats, .yd-flow > .yd-number, .yd-flow > .yd-phone { margin-block: var(--yd-s-7); }
.yd-flow > .yd-band + .yd-band { margin-top: 0; }
.yd-flow--landing > h2, .yd-flow--landing > p, .yd-flow--landing > .yd-callout, .yd-flow--landing > .yd-cta--inline { margin-inline: auto; }
.yd-flow--landing > h2, .yd-flow--landing > p { text-align: center; }
.yd-flow--landing > .yd-cta--primary { align-items: center; text-align: center; }
.yd-flow--landing > .yd-lead-form, .yd-flow--landing > .yd-qr { margin-inline: auto; }
.yd-flow--landing > h2 { max-width: 20em; text-wrap: balance; }
.yd-flow.yd-flow--full > *, .yd-flow.yd-flow--tool > *, .yd-flow.yd-flow--hub > * { margin-left: calc(max(0px, (100% - var(--yd-wrap)) / 2) + var(--yd-gutter)); margin-right: auto; }
.yd-flow.yd-flow--full > .yd-band, .yd-flow.yd-flow--tool > .yd-band, .yd-flow.yd-flow--hub > .yd-band, .yd-flow.yd-flow--full > .alignfull, .yd-flow.yd-flow--tool > .alignfull, .yd-flow.yd-flow--hub > .alignfull { margin-left: 0; }
.yd-flow--full, .yd-flow--tool, .yd-flow--hub { padding-block: var(--yd-s-6) var(--yd-s-7); }
.yd-flow--full > :first-child, .yd-flow--tool > :first-child, .yd-flow--hub > :first-child { margin-top: 0; }
.yd-flow--landing { padding-bottom: var(--yd-s-7); }
.yd-grid { display: grid; gap: var(--yd-s-4); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) {
  .yd-grid--2, .yd-grid--3, .yd-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
  .yd-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .yd-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* 5. Header & nav ---------------------------------------------------------- */
.yd-header { position: sticky; top: 0; z-index: 50; background: color-mix(in srgb, var(--yd-bg) 88%, transparent); backdrop-filter: saturate(1.4) blur(12px); -webkit-backdrop-filter: saturate(1.4) blur(12px); border-bottom: 1px solid var(--yd-rule); }
@supports not (color: color-mix(in srgb, red, blue)) { .yd-header { background: var(--yd-bg); } }
.yd-header__row { display: flex; align-items: center; gap: var(--yd-s-4); min-height: var(--yd-header-h); position: relative; }
.yd-brand { display: inline-flex; flex: none; align-items: center; gap: 10px; color: var(--yd-ink); text-decoration: none; font-weight: 700; letter-spacing: -.02em; font-size: 1.25rem; line-height: 1; white-space: nowrap; }
.yd-header__actions, .yd-header .yd-btn { flex: none; white-space: nowrap; }
.yd-brand:hover { color: var(--yd-ink); }
.yd-brand__logo { width: 28px; height: 28px; border-radius: 6px; }
.yd-mark { flex: none; }
.yd-mark__tile { fill: var(--yd-green); }
.yd-mark__glyph { stroke: var(--yd-on-green); }
.yd-mark__dot { fill: var(--yd-on-green); }
.yd-header__actions { margin-left: auto; display: flex; align-items: center; gap: var(--yd-s-2); }
.yd-nav-toggle { display: inline-flex; align-items: center; justify-content: center; gap: var(--yd-s-2); padding: 8px 10px; border: 0; background: transparent; border-radius: var(--yd-radius-sm); color: var(--yd-ink); font-weight: 600; font-size: var(--yd-text-sm); min-height: 44px; min-width: 44px; white-space: nowrap; }
/* Narrow phones: the toggle keeps its accessible name "Menu" but shows only the bars. */
@media (max-width: 399px) {
  .yd-nav-toggle__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .yd-header__row { gap: var(--yd-s-3); }
  .yd-header__actions { gap: var(--yd-s-1); }
}
@media (max-width: 359px) {
  .yd-brand { gap: 8px; font-size: 1.125rem; }
  .yd-header .yd-btn--sm { padding-inline: 12px; }
}
.yd-nav-toggle__bars { position: relative; width: 18px; height: 2px; background: currentColor; border-radius: 2px; }
.yd-nav-toggle__bars::before, .yd-nav-toggle__bars::after { content: ""; position: absolute; left: 0; width: 18px; height: 2px; background: currentColor; border-radius: 2px; transition: transform .2s; }
.yd-nav-toggle__bars::before { top: -6px; }
.yd-nav-toggle__bars::after { top: 6px; }
.yd-nav-toggle[aria-expanded="true"] .yd-nav-toggle__bars { background: transparent; }
.yd-nav-toggle[aria-expanded="true"] .yd-nav-toggle__bars::before { transform: translateY(6px) rotate(45deg); }
.yd-nav-toggle[aria-expanded="true"] .yd-nav-toggle__bars::after { transform: translateY(-6px) rotate(-45deg); }
.yd-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; padding: var(--yd-s-2) var(--yd-gutter) var(--yd-s-4); background: var(--yd-bg); border-bottom: 1px solid var(--yd-rule); box-shadow: var(--yd-shadow-2); }
.yd-nav.is-open { display: block; }
.yd-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.yd-nav__list a { display: block; padding: 12px 4px; color: var(--yd-ink); text-decoration: none; font-weight: 500; border-bottom: 1px solid var(--yd-rule); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.yd-nav__list li:last-child a { border-bottom: 0; }
.yd-nav__list .current-menu-item > a, .yd-nav__list a[aria-current="page"] { color: var(--yd-green-text); }
/* Inline nav from 900px. theme.js adds .is-compact to the header whenever the items + CTA would not fit
   on one line (long owner-set labels), so the nav collapses to the menu instead of wrapping. */
@media (min-width: 900px) {
  .yd-header:not(.is-compact) .yd-nav-toggle { display: none; }
  .yd-header:not(.is-compact) .yd-nav { display: block; flex: none; position: static; padding: 0; background: transparent; border: 0; box-shadow: none; margin-left: var(--yd-s-4); }
  .yd-header:not(.is-compact) .yd-nav__list { flex-direction: row; flex-wrap: nowrap; gap: var(--yd-s-1); }
  .yd-header:not(.is-compact) .yd-nav__list a { padding: 8px 10px; border: 0; border-radius: var(--yd-radius-sm); font-size: .9375rem; overflow: visible; }
  .yd-header:not(.is-compact) .yd-nav__list a:hover { background: var(--yd-surface-2); color: var(--yd-ink); }
}

/* 6. Buttons & forms ------------------------------------------------------- */
.yd-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; max-width: 100%; min-height: 44px; padding: 10px 20px; border: 1px solid transparent; border-radius: var(--yd-radius-pill); font-weight: 600; font-size: 1rem; line-height: 1.2; text-align: center; text-decoration: none; text-wrap: balance; transition: background-color .15s, color .15s, border-color .15s, transform .15s; }
.yd-btn:hover { transform: translateY(-1px); }
.yd-btn:active { transform: translateY(0); }
.yd-btn--primary { background: var(--yd-green); color: var(--yd-on-green); }
.yd-btn--primary:hover { background: var(--yd-green-deep); color: var(--yd-on-green); }
.yd-btn--secondary { background: var(--yd-surface-2); color: var(--yd-ink); }
.yd-btn--secondary:hover { background: var(--yd-surface-3); color: var(--yd-ink); }
.yd-btn--ghost { background: transparent; color: var(--yd-green-text); border-color: var(--yd-rule-strong); }
.yd-btn--ghost:hover { border-color: var(--yd-ink); color: var(--yd-ink); }
.yd-btn--paper { background: #fbfaf6; color: #123b24; }
.yd-btn--paper:hover { background: #fff; color: #123b24; }
.yd-btn--sm { min-height: 36px; padding: 6px 14px; font-size: var(--yd-text-sm); white-space: nowrap; }
.yd-btn--lg { min-height: 52px; padding: 14px 28px; font-size: 1.0625rem; }
.yd-btn--block { display: flex; width: 100%; }
.yd-btn:focus-visible { outline-offset: 3px; }
.yd-cta { margin: var(--yd-s-5) 0; }
.yd-cta--primary { display: flex; flex-direction: column; align-items: flex-start; gap: var(--yd-s-3); }
.yd-cta__note { margin: 0; font-size: var(--yd-text-sm); color: var(--yd-ink-3); }
.yd-cta--inline, .yd-cta--card { padding: var(--yd-s-5); border: 1px solid var(--yd-rule); border-radius: var(--yd-radius); background: var(--yd-surface); }
.yd-cta--inline p:last-of-type, .yd-cta--card p:last-of-type { margin-bottom: var(--yd-s-4); }
.yd-cta--inline > .yd-fineprint:last-child, .yd-cta--card > .yd-fineprint:last-child { margin: var(--yd-s-3) 0 0; }
.yd-cta--card h3 { margin-bottom: var(--yd-s-2); }
/* Card and form titles are styled paragraphs by default (no heading level that can skip); a heading_level
   attribute makes them h2–h4 with the same look. */
.yd-cta .yd-cta__title, .yd-lead-form .yd-lead-form__title { margin: 0 0 var(--yd-s-2); font-size: var(--yd-text-xl); font-weight: 700; line-height: 1.12; letter-spacing: -.015em; color: var(--yd-ink); text-wrap: balance; }
.yd-appstore-badge { display: inline-block; }
.yd-appstore-badge img { width: 135px; height: 40px; }
.yd-form { display: flex; flex-direction: column; gap: var(--yd-s-3); }
.yd-form--inline { flex-direction: row; flex-wrap: wrap; }
.yd-form--inline .yd-input { flex: 1 1 14rem; }
.yd-field { display: flex; flex-direction: column; gap: var(--yd-s-1); }
.yd-field label { font-size: var(--yd-text-sm); font-weight: 600; }
/* Visible email label in multi-field lead forms: its own line above the email + button row, same look and 4px rhythm as .yd-field labels. */
.yd-form--inline > .yd-lead-form__label { flex: 0 0 100%; margin-bottom: calc(var(--yd-s-1) - var(--yd-s-3)); font-size: var(--yd-text-sm); font-weight: 600; color: var(--yd-ink); }
.yd-input, .yd-select, .yd-textarea { width: 100%; min-height: 44px; padding: 10px 14px; border: 1px solid var(--yd-rule-strong); border-radius: var(--yd-radius); background: var(--yd-surface); color: var(--yd-ink); appearance: none; -webkit-appearance: none; }
.yd-input::placeholder { color: var(--yd-ink-3); }
.yd-input:focus, .yd-select:focus, .yd-textarea:focus { outline: 2px solid var(--yd-focus); outline-offset: 1px; border-color: var(--yd-green); }
.yd-form__note { font-size: var(--yd-text-xs); color: var(--yd-ink-3); margin: 0; }
input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }

/* 7. Hero, number, phone --------------------------------------------------- */
.yd-hero { --yd-hero-pad: var(--yd-gutter); position: relative; width: 100%; max-width: var(--yd-wrap); margin-inline: auto; padding: var(--yd-s-7) var(--yd-hero-pad) var(--yd-s-6); }
.yd-hero h1, .yd-hero h2 { margin-bottom: var(--yd-s-4); max-width: 14em; }
.yd-hero .yd-lede { margin-bottom: var(--yd-s-5); }
.yd-hero > .yd-phone { margin-top: var(--yd-s-6); }
.yd-hero > .yd-number { margin-top: var(--yd-s-6); }
.yd-hero--split > .yd-cta--primary { margin-top: 0; }
/* [yardage_cta variant="button"] as the hero CTA: the large size, and air before the fine print under it (QA-67). */
.yd-hero > .yd-btn--primary { min-height: 52px; padding: 14px 28px; font-size: 1.0625rem; }
:is(.yd-btn, .yd-appstore-badge, .yd-lead-form) + :is(.yd-fineprint, .yd-cta__note) { margin-top: var(--yd-s-3); }
.yd-hero > :is(.yd-btn, .yd-appstore-badge, .yd-lead-form) + .yd-fineprint { margin-top: var(--yd-s-4); }
@media (min-width: 900px) {
  .yd-hero { padding-block: var(--yd-s-9) var(--yd-s-8); }
  .yd-hero--split { padding-right: calc(var(--yd-hero-pad) + var(--yd-phone-w) + var(--yd-s-8)); min-height: calc(var(--yd-phone-w) * 2.32 + var(--yd-s-9) + var(--yd-s-8)); }
  .yd-hero--split > .yd-phone, .yd-hero--split > .yd-number { position: absolute; right: var(--yd-hero-pad); top: 50%; transform: translateY(-50%); margin: 0; }
  .yd-hero--split > .yd-number { right: calc(var(--yd-hero-pad) + var(--yd-s-6)); }
  .yd-hero--split { --yd-number-size: clamp(6rem, 12vw, 9rem); }
}
@media (min-width: 1100px) { .yd-hero--split { padding-right: calc(var(--yd-hero-pad) + var(--yd-phone-w) + var(--yd-s-9)); } }
.yd-number { display: grid; grid-template-columns: max-content max-content; grid-template-areas: "eyebrow eyebrow" "value unit"; align-items: baseline; column-gap: .25em; justify-content: center; text-align: center; font-variant-numeric: tabular-nums; width: max-content; margin-inline: auto; }
.yd-number__eyebrow { grid-area: eyebrow; font-size: var(--yd-text-xs); font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--yd-ink-3); margin-bottom: .5em; }
.yd-number__value { grid-area: value; font-family: var(--yd-font-display); font-weight: 700; font-size: var(--yd-number-size, var(--yd-text-display)); line-height: .9; letter-spacing: -.04em; color: var(--yd-ink); }
.yd-number__unit { grid-area: unit; align-self: end; font-size: clamp(.875rem, .6rem + 1.4vw, 1.25rem); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--yd-ink-3); padding-bottom: .35em; }
.yd-phone { --w: var(--yd-phone-w); width: var(--w); max-width: 100%; margin: 0 auto; }
.yd-phone__frame { position: relative; background: var(--yd-phone-bezel); border-radius: calc(var(--w) * .165); padding: calc(var(--w) * .028); box-shadow: var(--yd-shadow-2), inset 0 0 0 1px rgba(255, 255, 255, .08); }
.yd-phone__frame img, .yd-phone__frame picture { display: block; width: 100%; height: auto; aspect-ratio: 1320 / 2868; object-fit: cover; border-radius: calc(var(--w) * .138); background: #fff; }
.yd-phone figcaption { margin-top: var(--yd-s-3); text-align: center; font-size: var(--yd-text-sm); color: var(--yd-ink-3); }
.yd-phone--sm { --w: calc(var(--yd-phone-w) * .8); }

/* 8. Marketing components -------------------------------------------------- */
.yd-band { padding-block: var(--yd-s-8); background: var(--yd-surface-2); }
.yd-band--paper { background: var(--yd-surface-2); }
.yd-band--green, .yd-band--dark { color: var(--yd-on-green); background-image: var(--yd-contour); background-size: 480px 480px; }
.yd-band--green { background-color: var(--yd-green-band); background-image: var(--yd-contour-soft); }
.yd-band--dark { background-color: var(--yd-green-deep); }
.yd-band--green :is(h1, h2, h3, h4, p, li, .yd-eyebrow, .yd-lede, .yd-fact__num, .yd-fact__label, .yd-number__value, .yd-number__unit, .yd-number__eyebrow, .yd-steps > li::before), .yd-band--dark :is(h1, h2, h3, h4, p, li, .yd-eyebrow, .yd-lede, .yd-fact__num, .yd-fact__label, .yd-number__value, .yd-number__unit, .yd-number__eyebrow, .yd-steps > li::before) { color: inherit; }
.yd-band--green :is(.yd-eyebrow, .yd-lede, .yd-fineprint, .yd-fact__label, .yd-number__unit, .yd-number__eyebrow), .yd-band--dark :is(.yd-eyebrow, .yd-lede, .yd-fineprint, .yd-fact__label, .yd-number__unit, .yd-number__eyebrow) { color: rgba(255, 255, 255, .78); }
/* Green band small text is full white: ≥ 4.9:1 on the band and over its (softened) contour lines, both schemes. */
.yd-band--green :is(.yd-eyebrow, .yd-lede, .yd-fineprint, .yd-fact__label, .yd-number__unit, .yd-number__eyebrow, .yd-steps > li p, .yd-principles p, .yd-cta__note) { color: #fff; }
.yd-band--green a:not(.yd-btn), .yd-band--dark a:not(.yd-btn) { color: #fff; }
.yd-band--green .yd-btn--primary, .yd-band--dark .yd-btn--primary { background: #fbfaf6; color: #123b24; }
.yd-band--green .yd-btn--primary:hover, .yd-band--dark .yd-btn--primary:hover { background: #fff; color: #123b24; }
.yd-band--green :focus-visible, .yd-band--dark :focus-visible { outline-color: #fff; }
.yd-band--green .yd-steps > li, .yd-band--dark .yd-steps > li, .yd-band--green .yd-fact, .yd-band--dark .yd-fact { border-color: rgba(255, 255, 255, .25); }
.yd-band--dark .yd-cta__note { color: rgba(255, 255, 255, .78); }
.yd-band--green .yd-cta__note { color: #fff; }
.yd-band .yd-wrap > :first-child { margin-top: 0; }
.yd-band .yd-wrap > :last-child { margin-bottom: 0; }
.yd-band h2 { max-width: 20em; }
.yd-band .yd-split, .yd-band .yd-steps, .yd-band .yd-facts, .yd-band .yd-grid, .yd-band .yd-principles, .yd-band .yd-plans { margin-block: var(--yd-s-6) 0; }
/* A line that follows a component inside a band (fine print, a note, a link) gets air above it. */
.yd-band .yd-wrap > :is(.yd-split, .yd-steps, .yd-facts, .yd-grid, .yd-principles, .yd-plans, .yd-course-search) + :is(p, .yd-cta) { margin-top: var(--yd-s-6); }

.yd-split { display: grid; gap: var(--yd-s-6); align-items: center; }
.yd-split__text > :first-child { margin-top: 0; }
.yd-split__text h2 { margin-bottom: var(--yd-s-4); }
.yd-split__media { display: flex; justify-content: center; }
.yd-split__media > svg, .yd-split__media > img { width: 100%; max-width: 26rem; height: auto; }
@media (min-width: 800px) {
  .yd-split { grid-template-columns: 1fr 1fr; gap: var(--yd-s-8); }
  .yd-split--reverse .yd-split__text { order: 2; }
  .yd-split--reverse .yd-split__media { order: 1; }
}

.yd-steps { list-style: none; counter-reset: yd-step; margin: 0; padding: 0; display: grid; gap: var(--yd-s-5); }
.yd-steps > li { counter-increment: yd-step; padding-top: var(--yd-s-4); border-top: 1px solid var(--yd-rule-strong); }
.yd-steps > li::before { content: counter(yd-step); display: block; font-family: var(--yd-font-display); font-weight: 700; font-size: 2.5rem; line-height: 1; letter-spacing: -.02em; color: var(--yd-green-text); font-variant-numeric: tabular-nums; margin-bottom: var(--yd-s-3); }
.yd-steps > li h3 { margin-bottom: var(--yd-s-2); }
.yd-steps > li p { margin: 0; color: var(--yd-ink-2); }
@media (min-width: 720px) { .yd-steps { grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: var(--yd-s-6); } }

/* Facts: 2 across on phones and tablets, up to 4 on desktop (3 when the set is 3, 5, 6 or 9 long).
   Numbers never wrap; their size follows the column (container units) so "236,430" always fits. */
.yd-facts { display: grid; gap: var(--yd-s-5) var(--yd-s-4); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.yd-fact { display: flex; flex-direction: column; gap: var(--yd-s-1); min-width: 0; padding-top: var(--yd-s-3); border-top: 1px solid var(--yd-rule-strong); container-type: inline-size; }
.yd-fact__num { font-family: var(--yd-font-display); font-weight: 700; font-size: clamp(1.75rem, 1.2rem + 2.2vw, 3.25rem); font-size: clamp(1.5rem, 19cqi, 4rem); line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--yd-ink); }
.yd-fact__label { font-size: var(--yd-text-sm); color: var(--yd-ink-2); }
.yd-facts:has(> :only-child) { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 360px) { .yd-facts:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 640px) { .yd-facts { gap: var(--yd-s-5); } }
@media (min-width: 1024px) {
  .yd-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .yd-facts:has(> :nth-child(3):last-child), .yd-facts:has(> :nth-child(5):last-child), .yd-facts:has(> :nth-child(6):last-child), .yd-facts:has(> :nth-child(9):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .yd-facts:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.yd-table-scroll { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; margin: var(--yd-s-5) 0; }
.yd-table-scroll > table { margin: 0; }
.yd-compare, .yd-prose table, .yd-flow table, .yd-scorecard { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; font-size: .9375rem; line-height: 1.4; }
.yd-compare caption, .yd-prose table caption, .yd-flow table caption { caption-side: top; text-align: left; padding: 0 0 var(--yd-s-3); font-size: var(--yd-text-sm); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--yd-ink-3); }
.yd-compare th, .yd-compare td, .yd-prose th, .yd-prose td, .yd-flow th, .yd-flow td { padding: 10px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--yd-rule); }
@media (max-width: 639px) { .yd-compare th, .yd-compare td { padding: 8px 6px; font-size: var(--yd-text-sm); } .yd-compare td:first-child { padding-left: 0; } }
.yd-compare thead th, .yd-prose thead th, .yd-flow thead th { font-size: var(--yd-text-xs); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--yd-ink-2); border-bottom: 1px solid var(--yd-ink); padding-top: 0; background: transparent; }
.yd-compare tbody th, .yd-prose tbody th, .yd-flow tbody th, .yd-compare td:first-child { font-weight: 600; color: var(--yd-ink); }
.yd-compare tbody tr:last-child td, .yd-compare tbody tr:last-child th { border-bottom: 1px solid var(--yd-ink); }
.yd-compare td:not(:first-child), .yd-compare thead th:not(:first-child) { text-align: center; }
.yd-compare td:not(:first-child) { color: var(--yd-ink-2); }
.yd-yes, .yd-no, .yd-partial { font-weight: 600; }
.yd-yes { color: var(--yd-yes) !important; }
.yd-no { color: var(--yd-no) !important; }
.yd-partial { color: var(--yd-partial) !important; }
.yd-yes::before, .yd-no::before, .yd-partial::before { content: ""; display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 8px; vertical-align: 0; border: 2px solid currentColor; box-sizing: border-box; }
.yd-yes::before { background: currentColor; }
.yd-partial::before { background: linear-gradient(90deg, currentColor 50%, transparent 50%); }
.yd-compare .yd-compare__mark { display: inline-block; font-size: var(--yd-text-xs); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.yd-scorecard th, .yd-scorecard td { padding: 8px 10px; text-align: center; border: 1px solid var(--yd-rule); }
.yd-scorecard th:first-child, .yd-scorecard td:first-child { text-align: left; font-weight: 600; }
.yd-scorecard thead th { background: var(--yd-surface-2); font-size: var(--yd-text-xs); letter-spacing: .06em; text-transform: uppercase; }

.yd-plans { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--yd-s-4); }
.yd-plan { display: flex; flex-direction: column; padding: var(--yd-s-5); background: var(--yd-surface); border: 1px solid var(--yd-rule); border-radius: var(--yd-radius); box-shadow: var(--yd-shadow-1); }
.yd-plan .yd-eyebrow { margin-bottom: var(--yd-s-2); }
.yd-plan h3 { margin-bottom: var(--yd-s-3); }
.yd-plan__price { font-family: var(--yd-font-display); font-weight: 700; font-size: 2.75rem; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; margin: 0 0 var(--yd-s-2); }
.yd-plan__price small { display: inline; font-family: var(--yd-font-sans); font-weight: 500; font-size: 1rem; letter-spacing: 0; color: var(--yd-ink-3); margin-left: .25em; }
.yd-plan__period { display: block; font-size: var(--yd-text-sm); color: var(--yd-ink-3); margin-bottom: var(--yd-s-4); }
.yd-plan ul { list-style: none; padding: 0; margin: 0 0 var(--yd-s-5); flex: 1; }
.yd-plan li { position: relative; padding: 6px 0 6px 24px; border-top: 1px solid var(--yd-rule); font-size: .9375rem; color: var(--yd-ink-2); }
.yd-plan li::before { content: ""; position: absolute; left: 2px; top: 13px; width: 10px; height: 6px; border-left: 2px solid var(--yd-green-text); border-bottom: 2px solid var(--yd-green-text); transform: rotate(-45deg); }
.yd-plan .yd-btn { width: 100%; }
.yd-plan .yd-cta { margin: 0; }
/* [yardage_cta variant="button"]: a bare button (or App Store badge / waitlist form) at the foot of the card. */
.yd-plan > :is(.yd-btn, .yd-appstore-badge, .yd-cta, .yd-lead-form, form):last-child { margin-top: auto; }
.yd-plan .yd-appstore-badge { align-self: center; }
.yd-plan .yd-lead-form { padding: 0; border: 0; box-shadow: none; background: none; }
.yd-plan .yd-cta__note { display: none; }
.yd-plan--featured { border-color: var(--yd-green); box-shadow: 0 0 0 1px var(--yd-green), var(--yd-shadow-1); }
.yd-plan--featured .yd-eyebrow { color: var(--yd-green-text); }
@media (min-width: 720px) { .yd-plans { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; } }

.yd-principles { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--yd-s-5) var(--yd-s-7); }
.yd-principles > li { position: relative; padding-left: 34px; }
.yd-principles > li::before { content: ""; position: absolute; left: 0; top: .2em; width: 20px; height: 20px; border-radius: 50%; background: radial-gradient(circle, var(--yd-green) 0 3px, transparent 3.5px 6px, var(--yd-green) 6.5px 8.5px, transparent 9px); }
.yd-principles h3 { font-size: var(--yd-text-lg); margin-bottom: var(--yd-s-1); }
.yd-principles p { margin: 0; color: var(--yd-ink-2); }
@media (min-width: 720px) { .yd-principles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.yd-callout { padding: var(--yd-s-4) var(--yd-s-5); margin: var(--yd-s-5) 0; border-radius: var(--yd-radius); background: var(--yd-green-soft); border-left: 3px solid var(--yd-green); }
.yd-callout > :first-child { margin-top: 0; }
.yd-callout > :last-child { margin-bottom: 0; }
.yd-callout--note { background: var(--yd-surface-2); border-left-color: var(--yd-rule-strong); }
.yd-callout--honest { background: var(--yd-surface); border: 1px solid var(--yd-rule-strong); border-left: 3px solid var(--yd-ink); }
.yd-callout .yd-eyebrow { margin-bottom: var(--yd-s-2); }

.yd-cta-band { position: relative; overflow: hidden; padding: var(--yd-s-7) var(--yd-s-5); border-radius: var(--yd-radius); background: var(--yd-green-deep) var(--yd-contour); background-size: 480px 480px; color: #fff; text-align: center; }
.yd-cta-band h2 { color: inherit; margin: 0 auto var(--yd-s-3); max-width: 16em; }
.yd-cta-band p, .yd-cta-band li { color: rgba(255, 255, 255, .86); max-width: 34em; margin: 0 auto var(--yd-s-5); }
.yd-cta-band .yd-fineprint, .yd-cta-band .yd-cta__note { color: rgba(255, 255, 255, .7); margin: var(--yd-s-3) auto 0; }
.yd-cta-band .yd-btn--primary { background: #fbfaf6; color: #123b24; }
.yd-cta-band .yd-btn--primary:hover { background: #fff; color: #123b24; }
.yd-cta-band .yd-cta { margin: 0; display: flex; flex-direction: column; align-items: center; }
.yd-cta-band :focus-visible { outline-color: #fff; }
.yd-cta-band .yd-wrap { padding: 0; }
@media (min-width: 720px) { .yd-cta-band { padding: var(--yd-s-8) var(--yd-s-7); } }

.yd-card { display: block; padding: var(--yd-s-5); background: var(--yd-surface); border: 1px solid var(--yd-rule); border-radius: var(--yd-radius); color: var(--yd-ink); text-decoration: none; box-shadow: var(--yd-shadow-1); transition: border-color .15s, transform .15s; }
a.yd-card:hover { border-color: var(--yd-ink); transform: translateY(-2px); color: var(--yd-ink); }
.yd-card h3 { font-size: var(--yd-text-lg); margin-bottom: var(--yd-s-2); }
.yd-card p { margin: 0; color: var(--yd-ink-2); font-size: .9375rem; }
.yd-card__meta { font-size: var(--yd-text-xs); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--yd-ink-3) !important; margin-bottom: var(--yd-s-3) !important; }
.yd-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--yd-s-2); }
.yd-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 6px 14px; border: 1px solid var(--yd-rule-strong); border-radius: var(--yd-radius-pill); color: var(--yd-ink); text-decoration: none; font-size: var(--yd-text-sm); font-weight: 500; }
.yd-chip:hover { border-color: var(--yd-ink); color: var(--yd-ink); }
.yd-chip .yd-num { color: var(--yd-ink-3); }
.yd-dl { margin: 0; display: grid; gap: 0; }
.yd-dl > div { display: grid; grid-template-columns: 8rem 1fr; gap: var(--yd-s-3); padding: var(--yd-s-3) 0; border-top: 1px solid var(--yd-rule); }
.yd-dl > div:last-child { border-bottom: 1px solid var(--yd-rule); }
.yd-dl dt { font-size: var(--yd-text-xs); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--yd-ink-3); padding-top: .2em; }
.yd-dl dd { margin: 0; }

/* 9. Page heads, crumbs ---------------------------------------------------- */
.yd-page-head { padding: var(--yd-s-6) 0 var(--yd-s-5); border-bottom: 1px solid var(--yd-rule); }
.yd-page-head h1 { margin-bottom: var(--yd-s-4); max-width: 16em; }
.yd-page-head .yd-lede { margin-bottom: var(--yd-s-3); }
.yd-page-head .yd-meta { margin: 0; }
.yd-page-head .yd-eyebrow { margin-top: var(--yd-s-4); }
.yd-page-head--narrow .yd-wrap > * { max-width: var(--yd-measure); margin-left: 0; }
.yd-page-head--article h1 { font-size: clamp(2rem, 1.4rem + 2.6vw, 3.5rem); max-width: 18em; }
.yd-page-head--hub h1 { font-size: var(--yd-text-3xl); }
.yd-page-head--404 h1, .yd-page-head--course h1 { max-width: 14em; }
.yd-page-head .yd-form { margin-top: var(--yd-s-4); }
@media (min-width: 900px) { .yd-page-head { padding: var(--yd-s-7) 0 var(--yd-s-6); } .yd-page-head--article, .yd-page-head--narrow { padding-bottom: var(--yd-s-6); } }
.yd-crumbs { font-size: var(--yd-text-sm); color: var(--yd-ink-3); }
.yd-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 0; }
.yd-crumbs li { display: inline-flex; align-items: center; }
.yd-crumbs li + li::before { content: "/"; margin: 0 8px; color: var(--yd-rule-strong); }
.yd-crumbs a { color: inherit; text-decoration: none; }
.yd-crumbs a:hover { color: var(--yd-ink); text-decoration: underline; }
.yd-crumbs li[aria-current] { color: var(--yd-ink-2); max-width: 24em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }

/* 10. Article, prose, TOC, blocks ------------------------------------------ */
.yd-article__layout { padding-block: var(--yd-s-6) var(--yd-s-7); }
.yd-article__body { max-width: var(--yd-measure); }
.yd-article__aside { margin-bottom: var(--yd-s-5); max-width: var(--yd-measure); }
.yd-article__foot { border-top: 1px solid var(--yd-rule); }
.yd-article__footwrap { padding-block: var(--yd-s-7); }
.yd-article__footwrap > .yd-cta-band { max-width: var(--yd-wrap); }
.yd-related { border-top: 1px solid var(--yd-rule); }
@media (min-width: 1100px) {
  .yd-article__layout.has-toc { display: grid; grid-template-columns: minmax(0, var(--yd-measure)) 14rem; gap: var(--yd-s-9); justify-content: center; }
  .yd-article__layout:not(.has-toc), .yd-page-head--article .yd-wrap, .yd-page-head--narrow .yd-wrap, .yd-article__footwrap { max-width: calc(var(--yd-measure) + 14rem + var(--yd-s-9) + 2 * var(--yd-gutter)); }
  .yd-article__layout:not(.has-toc) > .yd-article__body, .yd-page-head--article .yd-wrap > *, .yd-page-head--narrow .yd-wrap > * { max-width: var(--yd-measure); }
  .yd-article__aside { order: 2; margin: 0; position: sticky; top: calc(var(--yd-header-h) + var(--yd-s-5)); align-self: start; max-height: calc(100vh - var(--yd-header-h) - var(--yd-s-6)); overflow: auto; }
  .yd-article__body { order: 1; }
}
.yd-toc { border: 1px solid var(--yd-rule); border-radius: var(--yd-radius); background: var(--yd-surface); padding: 0; }
.yd-toc summary { display: flex; align-items: center; justify-content: space-between; padding: var(--yd-s-3) var(--yd-s-4); cursor: pointer; list-style: none; font-size: var(--yd-text-xs); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--yd-ink-3); }
.yd-toc summary::-webkit-details-marker { display: none; }
.yd-toc summary::after { content: ""; width: 8px; height: 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); transition: transform .2s; margin-right: 2px; }
.yd-toc[open] summary::after { transform: rotate(-135deg); }
.yd-toc nav { padding: 0 var(--yd-s-4) var(--yd-s-4); }
.yd-toc ol { list-style: none; margin: 0; padding: 0; counter-reset: toc; }
.yd-toc ol ol { padding-left: var(--yd-s-4); }
.yd-toc li { margin: 0; }
.yd-toc a { display: block; padding: 6px 0 6px 12px; border-left: 2px solid var(--yd-rule); color: var(--yd-ink-2); text-decoration: none; font-size: var(--yd-text-sm); line-height: 1.35; }
.yd-toc ol ol a { font-size: .8125rem; color: var(--yd-ink-3); }
.yd-toc a:hover { color: var(--yd-ink); border-color: var(--yd-ink-3); }
.yd-toc a.is-active { color: var(--yd-green-text); border-color: var(--yd-green); font-weight: 600; }
@media (min-width: 1100px) {
  .yd-toc { border: 0; background: transparent; }
  .yd-toc summary { pointer-events: none; padding: 0 0 var(--yd-s-3); }
  .yd-toc summary::after { display: none; }
  .yd-toc nav { padding: 0; }
}

.yd-prose { font-size: var(--yd-text-md); line-height: 1.65; }
.yd-prose > * { margin-block: 0 1.25em; }
.yd-prose > :last-child { margin-bottom: 0; }
.yd-prose h2 { margin-top: 2em; margin-bottom: .6em; font-size: var(--yd-text-2xl); }
.yd-prose h3 { margin-top: 1.6em; margin-bottom: .5em; }
.yd-prose h4 { margin-top: 1.4em; margin-bottom: .4em; }
.yd-prose h2:first-child, .yd-prose h3:first-child { margin-top: 0; }
.yd-prose :is(h2, h3, h4)[id] { scroll-margin-top: calc(var(--yd-header-h) + 20px); }
/* Zero specificity: components inside prose (CTA band, lead form, cards) keep their own text colours. */
:where(.yd-prose) :where(p, li) { color: var(--yd-ink); }
.yd-prose ul, .yd-prose ol { padding-left: 1.4em; }
.yd-prose li { margin-bottom: .4em; padding-left: .2em; }
.yd-prose li::marker { color: var(--yd-green-text); font-weight: 600; font-variant-numeric: tabular-nums; }
.yd-prose ul ul, .yd-prose ol ol, .yd-prose ul ol, .yd-prose ol ul { margin: .4em 0 0; }
/* Component lists keep their own geometry inside prose: the generic list rules above must not reach them (QA-81). */
.yd-prose :is(.yd-principles, .yd-steps, .yd-chips) { padding-left: 0; }
.yd-prose :is(.yd-principles, .yd-steps, .yd-chips) > li { margin-bottom: 0; }
.yd-prose .yd-principles > li { padding-left: 34px; }
.yd-prose :is(.yd-steps, .yd-chips) > li { padding-left: 0; }
.yd-prose blockquote, .wp-block-quote { margin: 1.5em 0; padding: .25em 0 .25em 1.25em; border-left: 3px solid var(--yd-green); font-size: var(--yd-text-lg); line-height: 1.45; color: var(--yd-ink); }
.yd-prose blockquote p { margin-bottom: .5em; }
.yd-prose blockquote p:last-child { margin-bottom: 0; }
.yd-prose blockquote cite, .wp-block-quote cite { display: block; margin-top: .5em; font-size: var(--yd-text-sm); font-style: normal; color: var(--yd-ink-3); }
.yd-prose figure, .wp-block-image { margin: 1.75em 0; }
.yd-prose figure img, .wp-block-image img { border-radius: var(--yd-radius); width: 100%; }
.yd-prose figcaption, .wp-block-image figcaption, .wp-element-caption { margin-top: var(--yd-s-2); font-size: var(--yd-text-sm); color: var(--yd-ink-3); text-align: left; }
.yd-prose hr, .wp-block-separator { border: 0; border-top: 1px solid var(--yd-rule); margin: 2.5em auto; width: 100%; }
.wp-block-separator.is-style-wide { width: 100%; }
.wp-block-separator.is-style-dots { text-align: center; border: 0; }
.wp-block-separator.is-style-dots::before { content: "···"; letter-spacing: .5em; color: var(--yd-ink-3); font-size: 1.5em; }
.yd-prose .wp-block-table { margin: 1.75em 0; }
.wp-block-table { overflow-x: auto; }
.wp-block-table table { margin: 0; }
.wp-block-table figcaption { margin-top: var(--yd-s-2); font-size: var(--yd-text-sm); color: var(--yd-ink-3); }
.yd-prose .wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: var(--yd-surface-2); }
.yd-prose .wp-block-table.is-style-stripes td, .yd-prose .wp-block-table.is-style-stripes th { border: 0; }
.yd-prose table.has-fixed-layout { table-layout: fixed; }
.yd-prose .yd-table-scroll { margin: 1.75em 0; }
.yd-prose sup { font-size: .7em; line-height: 0; vertical-align: super; }
.yd-prose sup a { text-decoration: none; font-weight: 600; }
.yd-prose code { padding: .1em .35em; background: var(--yd-surface-2); border-radius: 4px; }
.yd-prose pre { padding: var(--yd-s-4); background: var(--yd-surface-2); border-radius: var(--yd-radius); overflow: auto; }
.yd-prose .yd-eyebrow { margin-top: 1.5em; }
.yd-prose .yd-cta-band { margin: 2.5em 0; }
.yd-prose .yd-number { margin: 2em auto; }
.yd-prose .yd-phone { margin: 2em auto; }
.yd-prose .yd-callout, .yd-prose .yd-cta { margin: 2em 0; }
.yd-prose .yd-cta--primary { align-items: flex-start; }
.yd-prose .yd-hole { max-width: 22rem; margin-inline: auto; }
.yd-prose .yd-faq { margin-top: 2.5em; }
.yd-prose .yd-facts, .yd-prose .yd-steps { margin: 2em 0; }
/* WordPress alignments */
.alignleft { float: left; margin: .4em 1.5em 1em 0; max-width: 50%; }
.alignright { float: right; margin: .4em 0 1em 1.5em; max-width: 50%; }
.aligncenter { margin-left: auto; margin-right: auto; text-align: center; }
.alignwide, .alignfull { width: 100%; max-width: none; }
.yd-flow > .alignwide { max-width: var(--yd-wrap); }
@media (max-width: 639px) { .alignleft, .alignright { float: none; margin: 1.5em 0; max-width: 100%; } }
.yd-prose::after { content: ""; display: table; clear: both; }
/* Details / FAQ */
details, .wp-block-details { margin: 0; }
.yd-prose > details, .yd-prose > .wp-block-details, .yd-faq details { border-top: 1px solid var(--yd-rule); margin: 0; }
.yd-prose > details:last-of-type, .yd-prose > .wp-block-details:last-of-type, .yd-faq details:last-of-type { border-bottom: 1px solid var(--yd-rule); }
.yd-prose summary, .yd-faq summary { position: relative; padding: var(--yd-s-4) 40px var(--yd-s-4) 0; cursor: pointer; list-style: none; font-weight: 600; font-size: 1.0625rem; line-height: 1.4; color: var(--yd-ink); }
.yd-prose summary::-webkit-details-marker, .yd-faq summary::-webkit-details-marker { display: none; }
.yd-prose summary::after, .yd-faq summary::after { content: ""; position: absolute; right: 8px; top: 50%; width: 10px; height: 10px; margin-top: -8px; border-right: 2px solid var(--yd-ink-3); border-bottom: 2px solid var(--yd-ink-3); transform: rotate(45deg); transition: transform .2s; }
details[open] > summary::after { transform: rotate(-135deg); margin-top: -2px; }
.yd-prose summary:hover, .yd-faq summary:hover { color: var(--yd-green-text); }
.yd-prose details > :not(summary), .yd-faq details > :not(summary) { padding: 0 0 var(--yd-s-4); color: var(--yd-ink-2); }
.yd-faq__a > :last-child, .wp-block-details > :last-child { margin-bottom: 0; }
.yd-faq > h2 { margin-bottom: var(--yd-s-3); }
/* Sources */
.yd-sources { margin-top: 3em; padding-top: 1.5em; border-top: 1px solid var(--yd-rule); }
.yd-sources h2 { font-size: var(--yd-text-xs); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--yd-ink-3); margin: 0 0 var(--yd-s-3); }
.yd-sources ol { font-size: var(--yd-text-sm); color: var(--yd-ink-2); padding-left: 1.5em; }
.yd-sources li { margin-bottom: .35em; }
.yd-sources li::marker { color: var(--yd-ink-3); font-weight: 400; }
/* Lists of posts */
.yd-list { display: grid; gap: 0; max-width: var(--yd-measure); }
.yd-list__item { padding: var(--yd-s-5) 0; border-top: 1px solid var(--yd-rule); }
.yd-list__item:last-child { border-bottom: 1px solid var(--yd-rule); }
.yd-list__meta { margin: 0 0 var(--yd-s-2); font-size: var(--yd-text-xs); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--yd-ink-3); }
.yd-list__meta a { color: inherit; text-decoration: none; }
.yd-list__meta a:hover { color: var(--yd-ink); }
.yd-list__title { font-size: var(--yd-text-xl); margin-bottom: var(--yd-s-2); }
.yd-list__title a { color: var(--yd-ink); text-decoration: none; }
.yd-list__title a:hover { color: var(--yd-green-text); }
.yd-list__excerpt { margin: 0; color: var(--yd-ink-2); }
.yd-pagination { margin-top: var(--yd-s-6); }
.yd-pagination .nav-links { display: flex; flex-wrap: wrap; gap: var(--yd-s-2); }
.yd-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; padding: 0 12px; border: 1px solid var(--yd-rule-strong); border-radius: var(--yd-radius-pill); text-decoration: none; color: var(--yd-ink); font-variant-numeric: tabular-nums; }
.yd-pagination .page-numbers.current { background: var(--yd-ink); color: var(--yd-bg); border-color: var(--yd-ink); }
.yd-pagination .page-numbers.dots { border: 0; }
/* Guides index */
.yd-flagship { display: grid; gap: var(--yd-s-6); align-items: center; border-bottom: 1px solid var(--yd-rule); }
.yd-flagship h2 { font-size: var(--yd-text-2xl); margin-bottom: var(--yd-s-3); }
.yd-flagship h2 a { color: inherit; text-decoration: none; }
.yd-flagship h2 a:hover { color: var(--yd-green-text); }
.yd-flagship__art { display: flex; justify-content: center; }
.yd-flagship__art svg { max-width: 18rem; }
@media (min-width: 800px) { .yd-flagship { grid-template-columns: 3fr 2fr; } .yd-flagship__art svg { max-width: 22rem; } }
.yd-clusters { display: grid; gap: var(--yd-s-5); }
.yd-cluster { padding-top: var(--yd-s-4); border-top: 1px solid var(--yd-rule-strong); }
.yd-cluster__title { font-size: var(--yd-text-lg); margin-bottom: var(--yd-s-3); }
.yd-cluster__title a { color: inherit; text-decoration: none; }
.yd-cluster__title a:hover { color: var(--yd-green-text); }
.yd-cluster__list { list-style: none; margin: 0 0 var(--yd-s-3); padding: 0; }
.yd-cluster__list li { padding: 5px 0; font-size: .9375rem; }
.yd-cluster__list a { color: var(--yd-ink-2); text-decoration: none; }
.yd-cluster__list a:hover { color: var(--yd-ink); text-decoration: underline; }
.yd-cluster__all { font-size: var(--yd-text-sm); font-weight: 600; }
@media (min-width: 640px) { .yd-clusters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--yd-s-6) var(--yd-s-7); } }
@media (min-width: 1024px) { .yd-clusters { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Course page */
.yd-course__grid { display: grid; gap: var(--yd-s-6); padding-block: var(--yd-s-6); }
.yd-course__art { margin: 0; display: flex; flex-direction: column; align-items: center; }
.yd-course__art svg { max-width: 16rem; }
.yd-course__art figcaption { margin-top: var(--yd-s-3); font-size: var(--yd-text-sm); color: var(--yd-ink-3); text-align: center; max-width: 22em; }
@media (min-width: 800px) { .yd-course__grid { grid-template-columns: 3fr 2fr; gap: var(--yd-s-8); padding-block: var(--yd-s-7); } }
/* 404 / search */
.yd-404 { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--yd-s-7); }
.yd-404__search { max-width: var(--yd-measure); }
.yd-404__search .yd-section__title { margin-top: var(--yd-s-5); }
.yd-404__search .yd-section__title:first-child { margin-top: 0; }
.yd-empty { max-width: var(--yd-measure); margin-bottom: var(--yd-s-7); }

/* 11. Footer --------------------------------------------------------------- */
.yd-footer { margin-top: var(--yd-s-7); padding: var(--yd-s-7) 0 var(--yd-s-6); border-top: 1px solid var(--yd-rule); background: var(--yd-surface-2); font-size: var(--yd-text-sm); }
.yd-footer__grid { display: grid; gap: var(--yd-s-6); grid-template-columns: 1fr 1fr; }
.yd-footer__brand { grid-column: 1 / -1; }
.yd-footer__brand .yd-brand { margin-bottom: var(--yd-s-3); }
.yd-footer__tag { margin: 0 0 var(--yd-s-1); font-weight: 600; color: var(--yd-ink); }
.yd-footer__note { margin: 0; color: var(--yd-ink-3); max-width: 24em; }
.yd-footer__h { font-size: var(--yd-text-xs); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--yd-ink-3); margin: 0 0 var(--yd-s-3); }
.yd-footer__menu { list-style: none; margin: 0; padding: 0; }
.yd-footer__menu li { padding: 4px 0; }
.yd-footer__menu a { color: var(--yd-ink-2); text-decoration: none; }
.yd-footer__menu a:hover { color: var(--yd-ink); text-decoration: underline; }
.yd-footer__legal { display: flex; flex-wrap: wrap; align-items: center; gap: var(--yd-s-3) var(--yd-s-5); margin-top: var(--yd-s-7); padding-top: var(--yd-s-5); border-top: 1px solid var(--yd-rule); color: var(--yd-ink-3); }
.yd-footer__copy { margin: 0; }
.yd-footer__legal-nav { display: flex; flex-wrap: wrap; align-items: center; gap: var(--yd-s-4); }
.yd-footer__menu--inline { display: flex; flex-wrap: wrap; gap: var(--yd-s-4); }
.yd-footer__menu--inline li { padding: 0; }
.yd-footer__consent { color: var(--yd-ink-2); text-decoration: none; }
.yd-footer__consent:hover { color: var(--yd-ink); text-decoration: underline; }
@media (min-width: 800px) { .yd-footer__grid { grid-template-columns: 2fr 1fr 1fr 1fr; } .yd-footer__brand { grid-column: auto; } }

/* 12. Hole diagrams (inline SVG) ------------------------------------------- */
.yd-hole { width: 100%; height: auto; }
.yd-hole__contour { stroke: var(--yd-ink); }
.yd-hole__arcs, .yd-hole__arclabel { stroke: var(--yd-green-text); }
.yd-hole__arclabel text { fill: var(--yd-green-text); stroke: none; }
.yd-hole__labelbg { fill: var(--yd-bg); stroke: none; }
.yd-hole__fairway { stroke: var(--yd-green-soft); }
.yd-hole__green { fill: var(--yd-green); }
.yd-hole__sand path { fill: var(--yd-sand); }
.yd-hole__water { fill: var(--yd-water); }
.yd-hole__tee { fill: var(--yd-surface-3); }
.yd-hole__line { stroke: var(--yd-ink); }
.yd-hole__player circle { fill: var(--yd-ink); }
.yd-band--green .yd-hole__labelbg, .yd-band--dark .yd-hole__labelbg { fill: var(--yd-green-deep); }
.yd-band--green .yd-hole__contour, .yd-band--dark .yd-hole__contour, .yd-band--green .yd-hole__line, .yd-band--dark .yd-hole__line, .yd-band--green .yd-hole__player circle, .yd-band--dark .yd-hole__player circle { stroke: #fff; fill: #fff; }
.yd-band--green .yd-hole__arcs, .yd-band--dark .yd-hole__arcs { stroke: #fff; }
.yd-band--green .yd-hole__arclabel text, .yd-band--dark .yd-hole__arclabel text { fill: #fff; }
.yd-band--green .yd-hole__green, .yd-band--dark .yd-hole__green { fill: #fff; }
.yd-band--green .yd-hole__target, .yd-band--dark .yd-hole__target { stroke: var(--yd-green-deep); }
.yd-band--green .yd-hole__target circle[fill], .yd-band--dark .yd-hole__target circle[fill] { fill: var(--yd-green-deep); }
.yd-band--green .yd-hole__fairway, .yd-band--dark .yd-hole__fairway { stroke: rgba(255, 255, 255, .14); }
.yd-band--green .yd-hole__sand path, .yd-band--dark .yd-hole__sand path { fill: rgba(255, 255, 255, .35); }
.yd-band--green .yd-hole__tee, .yd-band--dark .yd-hole__tee { fill: rgba(255, 255, 255, .3); }

/* 13. Shortcode containers the theme owns (Tools & Data style their own roots) ---- */
.yd-tool, .yd-lead-form { padding: var(--yd-s-5); background: var(--yd-surface); border: 1px solid var(--yd-rule); border-radius: var(--yd-radius); box-shadow: var(--yd-shadow-1); }
.yd-tool__result { margin-top: var(--yd-s-4); padding-top: var(--yd-s-4); border-top: 1px solid var(--yd-rule); }
.yd-lead-form { max-width: 34rem; }
.yd-lead-form h3 { margin: 0 0 var(--yd-s-2); }
.yd-lead-form p { color: var(--yd-ink-2); }
.yd-lead-form__ok { color: var(--yd-green-text); font-weight: 600; }
.yd-lead-form__err { color: var(--yd-partial); }
/* Paper islands inside dark surfaces (QA-59): a lead-form card, a CTA card, a tool, a plan or a course-search
   panel placed in a CTA band or a green/dark band keeps the page's own colours — ink text, green links, green
   focus ring, green primary button — instead of inheriting the band's white text. */
:is(.yd-cta-band, .yd-band--green, .yd-band--dark) :is(.yd-lead-form, .yd-cta--card, .yd-cta--inline, .yd-plan, .yd-tool, .yd-card, .yd-course-search__empty, .yd-course-search__server) { color: var(--yd-ink); text-align: left; }
:is(.yd-cta-band, .yd-band--green, .yd-band--dark) :is(.yd-lead-form, .yd-cta--card, .yd-cta--inline, .yd-plan, .yd-tool, .yd-card, .yd-course-search__empty, .yd-course-search__server) :is(h2, h3, h4, label, legend, strong, .yd-lead-form__title, .yd-cta__title) { color: var(--yd-ink); }
:is(.yd-cta-band, .yd-band--green, .yd-band--dark) :is(.yd-lead-form, .yd-cta--card, .yd-cta--inline, .yd-plan, .yd-tool, .yd-card, .yd-course-search__empty, .yd-course-search__server) :is(p, li) { color: var(--yd-ink-2); max-width: none; margin-inline: 0; }
:is(.yd-cta-band, .yd-band--green, .yd-band--dark) :is(.yd-lead-form, .yd-cta--card, .yd-cta--inline, .yd-plan, .yd-tool, .yd-card, .yd-course-search__empty, .yd-course-search__server) :is(.yd-fineprint, .yd-form__note, .yd-cta__note, .yd-eyebrow) { color: var(--yd-ink-3); }
:is(.yd-cta-band, .yd-band--green, .yd-band--dark) :is(.yd-lead-form, .yd-cta--card, .yd-cta--inline, .yd-plan, .yd-tool, .yd-card, .yd-course-search__empty, .yd-course-search__server) .yd-lead-form__ok { color: var(--yd-green-text); }
:is(.yd-cta-band, .yd-band--green, .yd-band--dark) :is(.yd-lead-form, .yd-cta--card, .yd-cta--inline, .yd-plan, .yd-tool, .yd-card, .yd-course-search__empty, .yd-course-search__server) .yd-lead-form__err { color: var(--yd-partial); }
:is(.yd-cta-band, .yd-band--green, .yd-band--dark) :is(.yd-lead-form, .yd-cta--card, .yd-cta--inline, .yd-plan, .yd-tool, .yd-card, .yd-course-search__empty, .yd-course-search__server) a:not(.yd-btn) { color: var(--yd-green-text); }
:is(.yd-cta-band, .yd-band--green, .yd-band--dark) :is(.yd-lead-form, .yd-cta--card, .yd-cta--inline, .yd-plan, .yd-tool, .yd-card, .yd-course-search__empty, .yd-course-search__server) .yd-btn--primary { background: var(--yd-green); color: var(--yd-on-green); }
:is(.yd-cta-band, .yd-band--green, .yd-band--dark) :is(.yd-lead-form, .yd-cta--card, .yd-cta--inline, .yd-plan, .yd-tool, .yd-card, .yd-course-search__empty, .yd-course-search__server) .yd-btn--primary:hover { background: var(--yd-green-deep); color: var(--yd-on-green); }
:is(.yd-cta-band, .yd-band--green, .yd-band--dark) :is(.yd-lead-form, .yd-cta--card, .yd-cta--inline, .yd-plan, .yd-tool, .yd-card, .yd-course-search__empty, .yd-course-search__server) :focus-visible { outline-color: var(--yd-focus); }
.yd-cta-band .yd-lead-form { max-width: 30rem; margin: 0 auto; }
/* Consent bar (plugin renders; see COMPONENTS.md) */
.yd-consent { position: fixed; z-index: 60; left: 0; right: 0; bottom: 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--yd-s-2) var(--yd-s-4); padding: var(--yd-s-3) var(--yd-gutter); padding-bottom: max(var(--yd-s-3), env(safe-area-inset-bottom)); background: var(--yd-ink); color: var(--yd-bg); font-size: var(--yd-text-sm); line-height: 1.4; box-shadow: 0 -8px 24px rgba(0, 0, 0, .18); }
.yd-consent__text { flex: 1 1 22rem; margin: 0; }
.yd-consent__text a { color: inherit; }
.yd-consent__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--yd-s-2); }
.yd-consent .yd-btn { min-height: 36px; padding: 6px 14px; font-size: var(--yd-text-sm); white-space: nowrap; }
.yd-consent .yd-btn--primary { background: var(--yd-bg); color: var(--yd-ink); }
.yd-consent .yd-btn--secondary { background: transparent; color: var(--yd-bg); border-color: rgba(255, 255, 255, .35); }
.yd-consent :focus-visible { outline: 2px solid var(--yd-bg); outline-offset: 2px; }
/* The bar never takes more than about a third of a short (zoomed) viewport: it scrolls instead. */
@media (max-height: 520px) {
  .yd-consent { max-height: 35vh; overflow-y: auto; overscroll-behavior: contain; padding-block: 6px; font-size: var(--yd-text-xs); line-height: 1.35; }
  .yd-consent .yd-btn { min-height: 32px; padding: 4px 12px; }
}
/* While the bar is showing, the page can scroll its last controls clear of it (theme.js / the plugin set --yd-consent-h). */
body { padding-bottom: var(--yd-consent-h, 0px); }
@media (prefers-color-scheme: dark) { .yd-consent { background: var(--yd-surface-3); color: var(--yd-ink); } .yd-consent .yd-btn--primary { background: var(--yd-ink); color: var(--yd-bg); } .yd-consent .yd-btn--secondary { color: var(--yd-ink); border-color: rgba(255, 255, 255, .4); } .yd-consent :focus-visible { outline-color: var(--yd-ink); } }

/* 14. Motion, print -------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }
@media print {
  :root { --yd-bg: #fff; --yd-ink: #000; --yd-ink-2: #222; --yd-ink-3: #444; --yd-rule: #999; }
  .yd-header, .yd-footer, .yd-skip, .yd-nav-toggle, .yd-cta, .yd-cta-band, .yd-related, .yd-article__foot, .yd-pagination, .yd-header__actions { display: none !important; }
  body { font-size: 11pt; background: #fff; color: #000; }
  .yd-article__layout.has-toc { display: block; }
  .yd-toc { display: none; }
  .yd-prose a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .85em; color: #444; }
  .yd-page-head { border-bottom: 1px solid #000; }
  details { border: 0; }
  details > summary::after { display: none; }
  details:not([open]) > :not(summary) { display: block; }
  h2, h3 { break-after: avoid; }
  table, figure, .yd-callout { break-inside: avoid; }
  .yd-tool, .yd-card { box-shadow: none; border: 1px solid #999; }
}
