/*!
 * concordis-2026: theme stylesheet (single file)
 * Source: Concordis Design System 2026. Every value is a custom property named after its token;
 * see HANDOFF.md for the token -> theme.json preset map.
 * Headings: Lora 600. Order: 01 tokens (fonts, color, type, space, shape, motion, base) / 02+ components.
 */

/* =========================================================================
   01a. Fonts (theme.json typography.fontFamilies[].fontFace)
   ========================================================================= */
/* Self-hosted: Lora (headings), Source Sans 3 (body/UI), Bebas Neue (wordmark face: eyebrows, stats only). Mirror in theme.json fontFace. */
@font-face{font-family:"Lora";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/Lora-400.woff2") format("woff2")}
@font-face{font-family:"Lora";font-style:italic;font-weight:400;font-display:swap;src:url("fonts/Lora-400i.woff2") format("woff2")}
@font-face{font-family:"Lora";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/Lora-500.woff2") format("woff2")}
@font-face{font-family:"Lora";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/Lora-600.woff2") format("woff2")}
@font-face{font-family:"Lora";font-style:italic;font-weight:600;font-display:swap;src:url("fonts/Lora-600i.woff2") format("woff2")}
@font-face{font-family:"Lora";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/Lora-700.woff2") format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/SourceSans3-400.woff2") format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:italic;font-weight:400;font-display:swap;src:url("fonts/SourceSans3-400i.woff2") format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/SourceSans3-600.woff2") format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/SourceSans3-700.woff2") format("woff2")}
@font-face{font-family:"Bebas Neue";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/BebasNeue-400.woff2") format("woff2")}

/* =========================================================================
   01b. Color (theme.json color.palette + custom)
   ========================================================================= */
/* Concordis color tokens. Two brand colors only: navy + gold. No teal anywhere. */
:root{
/* Base: brand */
--navy:#023750;
--navy-hover:#0B4A68;
--navy-deep:#011F2E;
--navy-600:var(--navy-hover); /* header link hover tint */
--mist:#C9D5DC; /* muted text on navy */
--gold:#BBA14F;
--gold-hover:#CBB468;
--gold-text:#7A672C; /* gold words on white/stone: 5.4:1 */
--cream:#F9F4EB; /* tertiary accent: warm light ground; navy/ink/gold-text text on it */
/* Base: neutrals */
--white:#FFFFFF;
--stone:#F6F5F1;
--stone-2:#ECEAE3;
--stone-200:var(--stone-2);
--ink:#16232B;
--ink-muted:#4A5A64;
--line-color:#DDD9CE;
/* Semantic: surfaces */
--surface:var(--white);
--surface-alt:var(--stone);
--surface-cream:var(--cream);
--surface-accent:var(--cream);
--surface-inverse:var(--navy);
--surface-footer:var(--navy-deep);
--surface-card:var(--white);
--surface-placeholder:var(--stone-2);
/* Semantic: text */
--text:var(--ink);
--text-heading:var(--navy);
--text-muted:var(--ink-muted);
--text-accent:var(--gold-text);
--text-inverse:#FFFFFF;
--text-inverse-muted:rgba(255,255,255,.82);
--text-inverse-accent:var(--gold);
/* Semantic: lines */
--line:var(--line-color);
--line-inverse:rgba(255,255,255,.18);
--rule-accent:var(--gold);
/* Semantic: actions */
--action-primary:var(--navy);
--action-primary-hover:var(--navy-hover);
--action-secondary:var(--gold);
--action-secondary-hover:var(--gold-hover);
--link:var(--navy);
--link-hover:var(--gold-text);
--focus-ring:var(--navy);/* navy on light grounds (12:1) */
--focus-ring-inverse:var(--gold);/* gold on navy and photos */
/* Overlays: always navy, never black */
--overlay-navy:rgba(1,31,46,.85);
--overlay-navy-clear:rgba(1,31,46,0);
--overlay-card:rgba(1,31,46,.88);
--overlay-stats:rgba(1,31,46,.9);
--concordis-navy:var(--navy);
--concordis-gold:var(--gold);
--concordis-white:var(--white);
--concordis-navy-overlay:var(--overlay-navy);
}

/* =========================================================================
   01c. Typography (theme.json typography.fontSizes + custom)
   ========================================================================= */
:root{
--font-serif:"Lora",Georgia,"Times New Roman",serif;
--font-sans:"Source Sans 3","Source Sans Pro",system-ui,-apple-system,"Segoe UI",sans-serif;
--font-display:"Bebas Neue","Oswald",Impact,sans-serif;
--font-heading:var(--font-serif);
--font-body:var(--font-sans);
--font-label:var(--font-display);
--weight-regular:400;--weight-semibold:600;--weight-bold:700;
--weight-heading:600;
--weight-display:500;/* H1 and display headings */
--style-h3:italic;/* @kind other */ /* warm, friendly mid-level heading */
/* Type scale */
--fs-display:clamp(2.75rem,2.6vw + 1.9rem,4.5rem);/* @kind other */--lh-display:1.08;/* @kind font */
--fs-h1:clamp(2.25rem,1.6vw + 1.7rem,3.25rem);/* @kind other */--lh-h1:1.14;/* @kind font */
--fs-h2:clamp(1.875rem,1vw + 1.5rem,2.5rem);/* @kind other */--lh-h2:1.2;/* @kind font */
--fs-h3:clamp(1.375rem,.5vw + 1.2rem,1.75rem);/* @kind other */--lh-h3:1.28;/* @kind font */
--fs-h4:1.25rem;/* @kind font */--lh-h4:1.35;/* @kind font */
--fs-quote:clamp(1.5rem,1vw + 1.15rem,2.125rem);/* @kind other */--lh-quote:1.4;/* @kind font */
--fs-lead:1.25rem;/* @kind font */--lh-lead:1.6;/* @kind font */
--fs-body:17px;/* @kind font */--lh-body:28px;/* @kind font */
--fs-body-sm:15px;/* @kind font */--lh-body-sm:24px;/* @kind font */
--fs-caption:13px;/* @kind font */--lh-caption:20px;/* @kind font */
--fs-button:15px;/* @kind font */--ls-button:.06em;/* @kind font */
--fs-nav:15px;/* @kind font */--ls-nav:.04em;/* @kind font */
--fs-eyebrow:20px;/* @kind font */--ls-eyebrow:.08em;/* @kind font */
--fs-stat:clamp(3.5rem,3vw + 2.5rem,5.5rem);/* @kind other */--lh-stat:1;/* @kind font */
--fs-wordmark:2.5rem;/* @kind font */--ls-wordmark:.04em;/* @kind font */
--measure:68ch;/* @kind spacing */
}

/* =========================================================================
   01d. Spacing + layout (theme.json spacing.spacingSizes, layout)
   ========================================================================= */
:root{
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;
--container:1200px;
--gutter:var(--space-4);
--section-pad:var(--space-7);
--header-h:116px;
--sticky-h:64px;
--grid-gap:24px;
--hero-h:clamp(520px,68vh,640px);/* @kind spacing */
--card-ratio:4/3;/* @kind other */
}
@media (min-width:768px){:root{--gutter:var(--space-5)}}
@media (min-width:1024px){:root{--gutter:var(--space-6);--section-pad:var(--space-9)}}

/* =========================================================================
   01e. Shape: radius, borders, shadows (theme.json custom + shadow.presets)
   ========================================================================= */
/* Square-cut and formal. Photos, bands, service cards: none. Buttons/inputs: sm. Package + testimonial cards: md. No pills. */
:root{
--radius-none:0;
--radius-sm:2px;
--radius-md:4px;
--border-hairline:1px solid var(--line);
--rule-gold:3px solid var(--gold);
--border-accent:3px;
--shadow-none:none;
--shadow-card-hover:0 10px 28px rgba(1,31,46,.18);
--shadow-menu:0 14px 32px rgba(1,31,46,.22);
--shadow-sticky:0 0 4rem rgba(1,31,46,.3);
}

/* =========================================================================
   01f. Motion (theme.json custom.motion)
   ========================================================================= */
:root{
--dur-button:.18s;/* @kind other */
--dur-card:.3s;/* @kind other */
--dur-zoom:.5s;/* @kind other */
--dur-sticky:.3s;/* @kind other */
--dur-fade:.4s;/* @kind other */
--ease-standard:ease;/* @kind other */
--ease-card:ease-in;/* @kind other */
--ease-zoom:ease-in-out;/* @kind other */
--zoom-card:1.08;/* @kind other */
--dur-fast:var(--dur-button);/* @kind other */--dur-base:var(--dur-card);/* @kind other */--dur-slow:var(--dur-zoom);/* @kind other */--ease:var(--ease-standard);/* @kind other */
}
@media (prefers-reduced-motion:reduce){:root{--dur-button:0s;/* @kind other */--dur-card:0s;/* @kind other */--dur-zoom:0s;/* @kind other */--dur-sticky:0s;/* @kind other */--dur-fade:0s;/* @kind other */--zoom-card:1;/* @kind other */}}

/* =========================================================================
   01g. Base elements (theme.json styles.elements)
   ========================================================================= */
/* Element defaults + type utility classes (map to theme.json styles.elements / block style variations) */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text);background:var(--surface);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-heading);font-weight:var(--weight-heading);color:var(--text-heading);text-wrap:balance;margin:0}
h1{font-size:var(--fs-h1);line-height:var(--lh-h1);font-weight:var(--weight-display)}
h2{font-size:var(--fs-h2);line-height:var(--lh-h2)}
h3{font-size:var(--fs-h3);line-height:var(--lh-h3);font-style:var(--style-h3)}
h4{font-size:var(--fs-h4);line-height:var(--lh-h4)}
p{margin:0;text-wrap:pretty}
a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--dur-fast) var(--ease)}
a:hover{color:var(--link-hover)}
img{max-width:100%;display:block}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
.cds-display{font-family:var(--font-heading);font-weight:var(--weight-display);font-size:var(--fs-display);line-height:var(--lh-display);text-wrap:balance}
.cds-h1{font:var(--weight-display) var(--fs-h1)/var(--lh-h1) var(--font-heading)}
.cds-h2{font:600 var(--fs-h2)/var(--lh-h2) var(--font-heading)}
.cds-h3{font:var(--style-h3) 600 var(--fs-h3)/var(--lh-h3) var(--font-heading)}
.cds-h4{font:600 var(--fs-h4)/var(--lh-h4) var(--font-heading)}
.cds-quote{font:italic 400 var(--fs-quote)/var(--lh-quote) var(--font-heading)}
.cds-lead{font-size:var(--fs-lead);line-height:var(--lh-lead)}
.cds-body-sm{font-size:var(--fs-body-sm);line-height:var(--lh-body-sm)}
.cds-caption{font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--text-muted)}
.cds-stat{font-family:var(--font-display);font-size:var(--fs-stat);line-height:var(--lh-stat);letter-spacing:.02em}
.cds-wordmark{font-family:var(--font-display);font-size:var(--fs-wordmark);letter-spacing:var(--ls-wordmark)}
.cds-container{max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.cds-section{padding-block:var(--section-pad)}
.cds-section--alt{background:var(--surface-alt)}
.cds-section--cream{background:var(--surface-cream)}
.cds-section--inverse{background:var(--surface-inverse);color:var(--text-inverse)}
.cds-section--inverse h1,.cds-section--inverse h2,.cds-section--inverse h3{color:var(--text-inverse)}
.cds-measure{max-width:var(--measure)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* =========================================================================
   01h. Theme additions to the token set (new presets, same naming scheme)
   ========================================================================= */
:root{
--header-h-compact:96px;
--logo-h:64px;
--logo-h-compact:60px;
--hero-slider-h:90svh;
--hero-slider-h-sm:80svh;
--hero-slider-min:560px;
--page-hero-h:clamp(440px,62svh,600px);
--slide-duration:7s;
--dur-crossfade:1.4s;
--dur-reveal:.6s;
--zoom-card-hover:1.05;
--zoom-slide:1.08;
--reveal-distance:20px;
--reveal-stagger:80ms;
--fs-hero-title:clamp(2.125rem,1.6vw + 1.6rem,3.25rem);/* phones 34px */
--fs-hero-title-lg:clamp(3rem,2vw + 1.9rem,3.75rem);/* desktop 48 to 60px */
--fs-testimonial:1.375rem;
--lh-testimonial:1.55;
--radius-photo:8px;/* contained photos: headshots, service/offer/package cards (approved Sep 28, 2026) */
--overlay-chip:rgba(2,55,80,.55);
--line-chip:rgba(255,255,255,.6);
}
@media (prefers-reduced-motion:reduce){:root{--dur-crossfade:0s;--dur-reveal:0s;--zoom-card-hover:1;--zoom-slide:1}}


/* Tokens added in the pre-handoff audit (map to theme.json settings.custom / typography.fontSizes) */
:root{
--overlay-stats-edge:rgba(1,31,46,.8);--overlay-stats-mid:rgba(1,31,46,.68);
--line-inverse-strong:rgba(255,255,255,.55);--line-gold-soft:rgba(187,161,79,.35);--shadow-soft-color:rgba(1,31,46,.06);
--fs-body-lg:1.0625rem;--fs-micro:.8125rem;--fs-slide-lede:1.125rem;--fs-quote-sm:1.25rem;--fs-date:1.5rem;--fs-label:1rem;
}

/* =========================================================================
   03. Layout helpers (core/group presets)
   ========================================================================= */
html{scroll-padding-top:calc(var(--header-h-compact) + var(--space-4))}
body{overflow-x:clip}
main:focus{outline:none}
.cds-section--flush-top{padding-top:0}
.cds-section-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:var(--space-5);margin-bottom:var(--space-7)}
.cds-section-head__text{display:grid;gap:var(--space-3);max-width:var(--measure)}
.cds-split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--space-8);align-items:start}
@media (max-width:899px){.cds-split{grid-template-columns:minmax(0,1fr);gap:var(--space-6)}}
.cds-stack{display:grid;gap:var(--space-4);align-content:start}
.cds-muted{color:var(--text-muted)}
.cds-flag{display:inline-flex;align-items:center;gap:8px;justify-self:start;align-self:flex-start;max-width:100%;padding:4px 10px;border:1px dashed currentColor;border-radius:var(--radius-sm);font:600 var(--fs-caption)/var(--lh-caption) var(--font-body);font-style:normal;letter-spacing:.02em;text-transform:none;color:var(--text-muted)}
.cds-flag b{font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.cds-flag--inverse{color:var(--mist)}
.cds-hide-flags .cds-flag{display:none!important}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* =========================================================================
   04. Skip link + focus
   ========================================================================= */
.cds-skip{position:fixed;left:var(--space-4);top:var(--space-4);z-index:300;display:inline-flex;align-items:center;min-height:44px;padding:0 var(--space-5);background:var(--gold);color:var(--navy-deep);font-weight:700;text-decoration:none;border-radius:var(--radius-sm);transform:translateY(-200%);transition:transform var(--dur-fast) var(--ease)}
.cds-skip:focus{transform:none;color:var(--navy-deep)}
/* Focus ring: navy on light grounds, gold inside dark regions (gold on white is only ~2.4:1) */
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
.cds-site-header,.cds-drawer,.cds-slider,.cds-page-hero,.cds-photoband,.cds-stats,.cds-cta,.cds-footer,.cds-section--inverse,.cds-package--featured{--focus-ring:var(--focus-ring-inverse)}
.cds-mega,.cds-dropdown{--focus-ring:var(--navy)}

/* =========================================================================
   05. Button (core/button style variations) + chevrons
   ========================================================================= */
.cds-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;font-family:var(--font-body);font-weight:700;font-size:var(--fs-button);letter-spacing:var(--ls-button);text-transform:uppercase;line-height:1;padding:16px 28px;border-radius:var(--radius-sm);border:2px solid transparent;text-decoration:none;cursor:pointer;transition:background-color var(--dur-button) var(--ease),color var(--dur-button) var(--ease),border-color var(--dur-button) var(--ease);white-space:nowrap}
.cds-btn--sm{padding:11px 18px;font-size:var(--fs-micro)}
.cds-btn--navy{background:var(--navy);color:var(--white)}
.cds-btn--navy:hover{background:var(--navy-deep);color:var(--white)}
.cds-btn--gold{background:var(--gold);color:var(--navy-deep)}
.cds-btn--gold:hover{background:var(--gold-hover);color:var(--navy-deep)}
.cds-btn--outline{background:transparent;color:var(--navy);border-color:var(--navy)}
.cds-btn--outline:hover{background:var(--navy);color:var(--white)}
.cds-btn--outline.cds-btn--inverse{color:var(--white);border-color:var(--white)}
.cds-btn--outline.cds-btn--inverse:hover{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.cds-btn--text{background:none;padding:6px 0;border:0;border-bottom:1px solid currentColor;border-radius:0;color:var(--navy)}
.cds-btn--text:hover{color:var(--gold-text)}
.cds-btn--text.cds-btn--inverse{color:var(--white)}
.cds-btn--text.cds-btn--inverse:hover{color:var(--gold)}
.cds-btn:active{transform:translateY(1px)}
.cds-btn--block{display:flex;width:100%}
.cds-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}
.cds-chev{display:inline-block;flex:none;width:7px;height:7px;border-right:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg);margin-top:-1px;transition:transform var(--dur-button) var(--ease)}
.cds-btn:hover .cds-chev,a:hover>.cds-chev{transform:translateX(3px) rotate(45deg)}
.cds-chev--down{transform:rotate(135deg);margin-top:-4px}
.cds-chev--left{transform:rotate(-135deg);margin:0 -2px 0 2px}

/* =========================================================================
   06. Eyebrow (core/paragraph style: Eyebrow)
   ========================================================================= */
.cds-eyebrow{display:inline-flex;align-items:center;gap:12px;margin:0;font-family:var(--font-display);font-weight:400;font-size:var(--fs-eyebrow);letter-spacing:var(--ls-eyebrow);line-height:1.1;text-transform:uppercase;color:var(--gold-text)}
.cds-eyebrow--inverse{color:var(--gold)}
.cds-eyebrow--rule::before{content:"";width:32px;height:2px;background:currentColor}
.cds-eyebrow--lg{font-size:clamp(1.25rem,.6vw + 1.05rem,1.5rem);letter-spacing:.06em;color:var(--navy)}
.cds-eyebrow--lg::before{width:40px;background:var(--gold)}

/* =========================================================================
   07. Site header (template part: header) + mega menu + dropdown
   ========================================================================= */
.cds-site-header{position:fixed;inset:0 0 auto;z-index:100;height:var(--header-h);background:var(--navy);color:var(--white);border-bottom:var(--border-accent) solid transparent;transition:height var(--dur-sticky) var(--ease),background-color var(--dur-sticky) var(--ease),border-color var(--dur-sticky) var(--ease),box-shadow var(--dur-sticky) var(--ease)}
.cds-site-header--transparent{background:linear-gradient(to bottom,var(--overlay-navy) 0%,rgba(1,31,46,.55) 45%,rgba(1,31,46,.2) 75%,var(--overlay-navy-clear) 100%) border-box;border-bottom-color:transparent;box-shadow:none}
.cds-site-header.is-scrolled{height:var(--header-h-compact);background:var(--navy);border-bottom-color:var(--gold);box-shadow:var(--shadow-sticky)}
.cds-site-header--transparent.is-scrolled{animation:cds-header-in var(--dur-sticky) var(--ease)}
@keyframes cds-header-in{from{transform:translateY(-100%)}to{transform:none}}
html:not(.cds-js) .cds-site-header{position:absolute}
.cds-header-spacer{height:var(--header-h)}
.cds-site-header__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);height:100%;max-width:none;padding-bottom:10px}
.cds-site-header__logo{display:flex;align-items:center;flex:none;min-height:44px}
.cds-site-header__logo img{height:var(--logo-h);width:auto;transition:height var(--dur-sticky) var(--ease)}
.is-scrolled .cds-site-header__logo img{height:var(--logo-h-compact)}
.cds-site-header__nav{display:none;align-items:center;height:100%}
.cds-site-header__cta{margin-left:var(--space-4)}
@media (min-width:1280px){.cds-site-header__nav{display:flex}.cds-site-header__toggle{display:none!important}}
.cds-nav{display:flex;align-items:stretch;height:100%;list-style:none;margin:0;padding:0}
.cds-nav__item{display:flex;position:relative}
.cds-nav__item--mega{position:static}
.cds-nav__link{position:relative;display:flex;align-items:center;gap:8px;height:100%;padding:0 10px;font:600 var(--fs-nav)/1 var(--font-body);letter-spacing:var(--ls-nav);color:var(--white);text-decoration:none;white-space:nowrap;background:none;border:0;cursor:pointer}
.cds-nav__link::after{content:"";position:absolute;left:10px;right:10px;bottom:calc(50% - 18px);height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-button) var(--ease)}
.cds-nav__link:hover{color:var(--white)}
.cds-nav__link:hover::after,.cds-nav__link[aria-expanded="true"]::after,.cds-nav__link[aria-current="page"]::after{transform:scaleX(1)}
.cds-nav__link .cds-chev--down{width:6px;height:6px}
.cds-nav__link[aria-expanded="true"] .cds-chev--down{transform:rotate(-45deg);margin-top:3px}
.cds-mega,.cds-dropdown{visibility:hidden;opacity:0;transform:translateY(-6px);transition:opacity var(--dur-card) var(--ease),transform var(--dur-card) var(--ease),visibility 0s linear var(--dur-card)}
.cds-mega.is-open,.cds-dropdown.is-open{visibility:visible;opacity:1;transform:none;transition-delay:0s}
html:not(.cds-js) .cds-nav__item:hover>.cds-mega,html:not(.cds-js) .cds-nav__item:focus-within>.cds-mega,html:not(.cds-js) .cds-nav__item:hover>.cds-dropdown,html:not(.cds-js) .cds-nav__item:focus-within>.cds-dropdown{visibility:visible;opacity:1;transform:none}
.cds-mega{position:absolute;left:0;right:0;top:100%;background:var(--white);color:var(--text);box-shadow:var(--shadow-menu);border-top:var(--border-accent) solid var(--gold)}
.is-scrolled .cds-mega,.is-scrolled .cds-dropdown{border-top-width:0;margin-top:var(--border-accent)}
.cds-mega__inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.6fr);gap:var(--space-8);padding-block:var(--space-7)}
.cds-mega__callout{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);padding-right:var(--space-6);border-right:1px solid var(--line)}
.cds-mega__title{font:var(--style-h3) var(--weight-heading) var(--fs-h3)/var(--lh-h3) var(--font-heading);color:var(--navy);margin:0}
.cds-mega__callout p{color:var(--text-muted);font-size:var(--fs-body-sm);line-height:var(--lh-body-sm)}
.cds-mega__links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--space-6);list-style:none;margin:0;padding:0;align-content:start}
.cds-mega__links a{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:12px 0;border-bottom:1px solid var(--line);font-weight:600;color:var(--navy);text-decoration:none}
.cds-mega__links a:hover{color:var(--gold-text)}
.cds-dropdown{position:absolute;top:100%;left:0;min-width:220px;margin:0;padding:var(--space-2) 0;list-style:none;background:var(--white);box-shadow:var(--shadow-menu);border-top:var(--border-accent) solid var(--gold)}
.cds-dropdown a{display:flex;align-items:center;min-height:44px;padding:10px var(--space-5);font-weight:600;color:var(--navy);text-decoration:none}
.cds-dropdown a:hover{background:var(--stone);color:var(--gold-text)}
.cds-site-header__toggle{display:inline-flex;align-items:center;gap:12px;min-width:44px;min-height:44px;padding:0 14px;background:none;border:1px solid var(--line-chip);border-radius:var(--radius-sm);color:var(--white);font:700 var(--fs-caption)/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background-color var(--dur-button) var(--ease)}
.cds-site-header__toggle:hover{background:var(--navy-hover)}
html:not(.cds-js) .cds-site-header__toggle{display:none}
.cds-burger{display:grid;gap:4px}
.cds-burger i{display:block;width:18px;height:2px;background:currentColor}
.cds-close{position:relative;width:16px;height:16px}
.cds-close::before,.cds-close::after{content:"";position:absolute;left:-1px;top:7px;width:18px;height:2px;background:currentColor;transform:rotate(45deg)}
.cds-close::after{transform:rotate(-45deg)}

/* Mobile drawer (phones + tablets) */
.cds-drawer{position:fixed;inset:0;z-index:150;display:flex;flex-direction:column;background:var(--navy);color:var(--white);overflow-y:auto;overscroll-behavior:contain;visibility:hidden;transform:translateX(100%);transition:transform var(--dur-card) var(--ease),visibility 0s linear var(--dur-card)}
.cds-drawer.is-open{visibility:visible;transform:none;transition-delay:0s}
.cds-drawer__head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);height:var(--header-h-compact);border-bottom:var(--border-accent) solid var(--gold)}
.cds-drawer__head img{height:var(--logo-h-compact);width:auto}
.cds-drawer__nav{padding-block:var(--space-4) var(--space-8)}
.cds-drawer__list{list-style:none;margin:0;padding:0}
.cds-drawer__list>li{border-bottom:1px solid var(--line-inverse)}
.cds-drawer__link{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);width:100%;min-height:60px;padding:12px 0;font:600 1.1875rem/1.3 var(--font-body);color:var(--white);text-decoration:none;cursor:pointer;list-style:none}
.cds-drawer__link::-webkit-details-marker{display:none}
.cds-drawer__link:hover{color:var(--gold)}
.cds-drawer__sign{flex:none;width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--line-inverse);border-radius:var(--radius-sm);font:400 1.25rem/1 var(--font-body)}
.cds-drawer__sign::before{content:"+"}
details[open]>.cds-drawer__link .cds-drawer__sign{background:var(--gold);border-color:var(--gold);color:var(--navy-deep)}
details[open]>.cds-drawer__link .cds-drawer__sign::before{content:"\2013"}
.cds-drawer__sub{list-style:none;margin:0;padding:0 0 var(--space-4) var(--space-4);border-left:2px solid var(--gold)}
.cds-drawer__sub a{display:flex;align-items:center;min-height:48px;color:var(--mist);text-decoration:none}
.cds-drawer__sub a:hover{color:var(--gold)}
.cds-drawer__cta{margin-top:var(--space-6)}
.cds-drawer__meta{margin-top:var(--space-6);font-size:var(--fs-body-sm);color:var(--mist)}
.cds-drawer__meta a{color:var(--white)}
html.cds-lock,html.cds-lock body{overflow:hidden}

/* =========================================================================
   08. Hero slider (core/group.cds-slider > core/cover.cds-slide)
   ========================================================================= */
.cds-slider{position:relative;isolation:isolate;overflow:hidden;background:var(--navy);color:var(--white);view-timeline:--cds-hero block;view-timeline-inset:0}
.cds-slider__track{display:grid;min-height:max(var(--hero-slider-min),var(--hero-slider-h-sm))}
@media (min-width:768px){.cds-slider__track{min-height:max(var(--hero-slider-min),var(--hero-slider-h))}}
.cds-slide{grid-area:1/1;position:relative;display:flex;align-items:flex-end;opacity:0;visibility:hidden;transition:opacity var(--dur-crossfade) ease-in-out,visibility 0s linear var(--dur-crossfade)}
.cds-slide.is-active{opacity:1;visibility:visible;z-index:1;transition-delay:0s}
.cds-slide__media{position:absolute;inset:0;overflow:hidden}
.cds-slide__media img,.cds-slide__media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--focus,70% 30%)}
.cds-slide.is-active .cds-slide__media img,.cds-slide.is-leaving .cds-slide__media img{animation:cds-slide-zoom calc(var(--slide-duration) + var(--dur-crossfade) * 2) linear forwards}
.cds-slide:nth-child(4n+1) .cds-slide__media img{--kb-from:0%,0%;--kb-to:-2%,-1.5%;transform-origin:30% 40%}
.cds-slide:nth-child(4n+2) .cds-slide__media img{--kb-from:-1.5%,0%;--kb-to:1.5%,-1%;transform-origin:70% 40%}
.cds-slide:nth-child(4n+3) .cds-slide__media img{--kb-from:0%,-1%;--kb-to:-2%,1%;transform-origin:60% 30%}
.cds-slide:nth-child(4n+4) .cds-slide__media img{--kb-from:1%,0%;--kb-to:-1.5%,-1.5%;transform-origin:40% 60%}
@keyframes cds-slide-zoom{from{transform:translate(var(--kb-from,0,0)) scale(1)}to{transform:translate(var(--kb-to,0,0)) scale(var(--zoom-slide))}}
.cds-slide__fade{position:absolute;inset:0;background:linear-gradient(to top,var(--overlay-navy) 0%,var(--overlay-navy) 48%,var(--overlay-navy-clear) 92%)}
.cds-slide__content{position:relative;z-index:1;width:100%;padding-top:calc(var(--header-h) + var(--space-8));padding-bottom:calc(44px + var(--space-8))}
@media (min-width:1024px){.cds-slide__content.cds-container{max-width:none;padding-left:clamp(var(--gutter),5vw,var(--space-10))}}
.cds-slide__copy{max-width:600px;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-5)}
.cds-slide__title{margin:0;font-family:var(--font-heading);font-weight:var(--weight-display);font-size:var(--fs-hero-title);line-height:var(--lh-h1);color:var(--white);text-wrap:balance}
.cds-slide__rule{width:120px;height:2px;margin:0;border:0;background:var(--gold)}
.cds-slide__lede{font-size:var(--fs-slide-lede);line-height:1.55;color:var(--white);max-width:34em}
@media (min-width:768px){.cds-slide__lede{font-size:var(--fs-lead);line-height:var(--lh-lead)}}
.cds-slide__actions{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-4);align-self:stretch;margin-top:var(--space-2)}
@media (min-width:600px){.cds-slide__actions{flex-direction:row;flex-wrap:wrap;align-items:center;align-self:flex-start}}
@media (min-width:768px){
  .cds-slide{align-items:center}
  .cds-slide__fade{background:linear-gradient(to right,var(--overlay-navy) 0%,var(--overlay-navy) 28%,var(--overlay-navy-clear) 78%)}
  .cds-slide__title{font-size:var(--fs-hero-title-lg);line-height:1.1}
  .cds-slide__content{padding-bottom:var(--space-10)}
}
.cds-slide.is-entering .cds-slide__copy>*{animation:cds-fade-up var(--dur-reveal) var(--ease) both}
.cds-slide.is-entering .cds-slide__copy>:nth-child(1){animation-delay:.25s}
.cds-slide.is-entering .cds-slide__copy>:nth-child(2){animation-delay:.35s}
.cds-slide.is-entering .cds-slide__copy>:nth-child(3){animation-delay:.45s}
.cds-slide.is-entering .cds-slide__copy>:nth-child(4){animation-delay:.55s}
.cds-slide.is-entering .cds-slide__copy>:nth-child(5){animation-delay:.65s}
@keyframes cds-fade-up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@supports (animation-timeline:view()){
  .cds-slide__copy-wrap{animation:cds-hero-exit linear both;animation-timeline:--cds-hero;animation-range:exit 0% exit 70%}
}
@keyframes cds-hero-exit{to{transform:translateY(-72px);opacity:0}}
.cds-slider__controls{position:absolute;z-index:3;left:0;right:0;bottom:var(--space-5);display:none;pointer-events:none}
.cds-js .cds-slider__controls{display:block}
.cds-slider__controls-inner{display:flex;align-items:center;justify-content:center;gap:var(--space-2)}
.cds-slider__controls button{pointer-events:auto}
.cds-slider__btn{width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid var(--line-chip);border-radius:50%;background:var(--overlay-chip);color:var(--white);cursor:pointer;transition:background-color var(--dur-button) var(--ease)}
.cds-slider__btn:hover{background:var(--navy)}
.cds-slider__dots{display:flex;margin-inline:var(--space-1)}
.cds-slider__dot{width:32px;height:44px;display:grid;place-items:center;padding:0;background:none;border:0;cursor:pointer}
.cds-slider__dot::before{content:"";width:10px;height:10px;border:1px solid var(--white);background:var(--white);border-radius:50%;transition:background-color var(--dur-button) var(--ease),border-color var(--dur-button) var(--ease)}
.cds-slider__dot:hover::before{background:var(--white)}
.cds-slider__dot[aria-current="true"]::before{background:var(--gold);border-color:var(--gold)}
.cds-pause-glyph{display:flex;gap:4px}
.cds-pause-glyph i{display:block;width:4px;height:14px;background:currentColor;border-radius:2px}
.cds-play-glyph{display:none;width:0;height:0;border-left:13px solid currentColor;border-top:8px solid transparent;border-bottom:8px solid transparent;margin-left:3px}
.cds-slider.is-paused .cds-pause-glyph{display:none}
.cds-slider.is-paused .cds-play-glyph{display:block}

/* =========================================================================
   09. Page hero (core/cover.cds-page-hero) + page intro (core/group)
   ========================================================================= */
.cds-page-hero{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:var(--page-hero-h);overflow:hidden;background:var(--navy);color:var(--white);view-timeline:--cds-page-hero block;view-timeline-inset:0}
.cds-page-hero__media{position:absolute;inset:0}
.cds-page-hero__media img{width:100%;height:100%;object-fit:cover;object-position:var(--focus,70% 30%)}
.cds-page-hero__fade{position:absolute;inset:0;background:linear-gradient(to top,var(--overlay-navy) 0%,var(--overlay-navy) 50%,var(--overlay-navy-clear) 95%)}
.cds-page-hero__content{position:relative;width:100%;padding-top:calc(var(--header-h) + var(--space-8));padding-bottom:var(--space-8)}
.cds-page-hero__copy{max-width:640px;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-5)}
.cds-page-hero h1{color:var(--white)}
.cds-page-hero__lede{font-size:var(--fs-lead);line-height:var(--lh-lead);color:var(--white);max-width:34em}
/* Parallax variant: photo drifts down and the copy rises as the hero scrolls away */
@supports (animation-timeline:view()){
  .cds-page-hero--parallax .cds-page-hero__media img{height:118%;animation:cds-page-hero-drift linear both;animation-timeline:--cds-page-hero;animation-range:exit 0% exit 100%}
  .cds-page-hero--parallax .cds-page-hero__copy{animation:cds-hero-exit linear both;animation-timeline:--cds-page-hero;animation-range:exit 0% exit 70%}
}
@keyframes cds-page-hero-drift{from{transform:translateY(-6%)}to{transform:translateY(10%)}}
@media (prefers-reduced-motion:reduce){.cds-page-hero--parallax .cds-page-hero__media img{height:100%;animation:none}.cds-page-hero--parallax .cds-page-hero__copy{animation:none}}
@media (min-width:768px){.cds-page-hero{align-items:center}.cds-page-hero__fade{background:linear-gradient(to right,var(--overlay-navy) 0%,var(--overlay-navy) 30%,var(--overlay-navy-clear) 80%)}}
@media (max-width:599px){.cds-page-hero .cds-buttons{flex-direction:column;align-items:stretch;align-self:stretch}}
.cds-page-intro{background:var(--surface-cream);padding-block:var(--space-8) var(--space-7)}
.cds-page-intro__inner{display:grid;gap:var(--space-4);max-width:var(--measure)}
.cds-page-intro__lede{font-size:var(--fs-lead);line-height:var(--lh-lead);color:var(--ink)}

/* =========================================================================
   10. Intro band (home)
   ========================================================================= */
.cds-intro{background:var(--surface-cream)}
.cds-intro__grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:var(--space-8);align-items:start}
@media (max-width:899px){.cds-intro__grid{grid-template-columns:minmax(0,1fr);gap:var(--space-5)}}
.cds-intro__head{display:grid;gap:var(--space-4)}
.cds-intro__body{display:grid;gap:var(--space-5);justify-items:start}
.cds-intro__body p{font-size:var(--fs-lead);line-height:var(--lh-lead);color:var(--ink);max-width:var(--measure)}

/* =========================================================================
   11. Service grid + service card (core/grid > core/cover.cds-service-card)
   ========================================================================= */
.cds-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--grid-gap);list-style:none;margin:0;padding:0}
@media (max-width:1023px){.cds-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:599px){.cds-service-grid{grid-template-columns:minmax(0,1fr)}}
.cds-service-card{position:relative;display:block;aspect-ratio:var(--card-ratio);overflow:hidden;border-radius:var(--radius-photo);background:var(--navy);color:var(--white);text-decoration:none;transition:box-shadow var(--dur-card) var(--ease-card)}
.cds-service-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--focus,center 35%);transition:transform var(--dur-zoom) var(--ease-zoom)}
.cds-service-card::after,.cds-service-card::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none}
.cds-service-card::after{background:linear-gradient(to bottom,var(--overlay-navy-clear) 30%,var(--overlay-card) 100%)}
.cds-service-card::before{z-index:2;background:linear-gradient(to bottom,var(--overlay-navy-clear) 0%,var(--overlay-navy) 100%);opacity:0;transition:opacity var(--dur-card) var(--ease-card)}
.cds-service-card:hover,.cds-service-card:focus-visible{color:var(--white);box-shadow:var(--shadow-card-hover)}
.cds-service-card:hover img,.cds-service-card:focus-visible img{transform:scale(var(--zoom-card-hover))}
.cds-service-card:hover::before,.cds-service-card:focus-visible::before{opacity:1}
.cds-service-card__copy{position:absolute;left:var(--space-5);right:var(--space-5);bottom:var(--space-5);z-index:3;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3)}
.cds-service-card__title{margin:0;font-family:var(--font-heading);font-weight:var(--weight-heading);font-style:var(--style-h3);font-size:var(--fs-h3);line-height:var(--lh-h3);color:var(--white)}
.cds-service-card__rule{display:block;width:64px;height:2px;background:var(--gold);transform:scaleX(.375);transform-origin:left;transition:transform var(--dur-card) var(--ease-card)}
.cds-service-card:hover .cds-service-card__rule,.cds-service-card:focus-visible .cds-service-card__rule{transform:scaleX(1)}
.cds-service-card__more{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:var(--fs-caption);letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}

/* =========================================================================
   11b. Feature (core/media-text.cds-feature): one highlighted service
   ========================================================================= */
.cds-feature{background:var(--surface-cream)}
.cds-feature__grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:var(--space-8);align-items:center}
@media (max-width:899px){.cds-feature__grid{grid-template-columns:minmax(0,1fr);gap:var(--space-6)}}
.cds-feature__media{position:relative;overflow:hidden;aspect-ratio:1/1;background:var(--stone-2)}
.cds-feature__media img{width:100%;height:100%;object-fit:cover;object-position:var(--focus,center)}
@media (max-width:899px){.cds-feature__media{aspect-ratio:4/3}}
.cds-feature__body{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-5)}
.cds-feature__body p{max-width:var(--measure)}
.cds-feature__lede{font-size:var(--fs-lead);line-height:var(--lh-lead);color:var(--ink)}
.cds-feature__list{display:grid;gap:0;align-self:stretch;list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.cds-feature__list li{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-weight:600;color:var(--ink)}
.cds-feature__list li::before{content:"";flex:none;width:6px;height:6px;background:var(--gold-text)}

/* =========================================================================
   12. Stats band (core/group.cds-stats > core/columns)
   ========================================================================= */
.cds-stats{position:relative;isolation:isolate;overflow:hidden;background:var(--navy);color:var(--white);text-align:center}
.cds-stats__bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:var(--focus,center 40%)}
.cds-stats__veil{position:absolute;inset:0;z-index:-1;background:linear-gradient(to bottom,var(--overlay-stats-edge) 0%,var(--overlay-stats-mid) 50%,var(--overlay-stats-edge) 100%)}
.cds-stats__inner{display:grid;gap:var(--space-7);justify-items:center}
.cds-stats__head{display:grid;gap:var(--space-3);justify-items:center}
.cds-stats__head h2{color:var(--white)}
.cds-stats__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;list-style:none;margin:0;padding:0}
@media (max-width:767px){.cds-stats__grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--space-7)}.cds-stat-item:nth-child(odd){border-left:0!important}}
.cds-stat-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding-inline:var(--space-4)}
.cds-stat-item+.cds-stat-item{border-left:1px solid var(--line-inverse-strong)}
.cds-stat-item__value{margin:0;font-family:var(--font-display);font-size:var(--fs-stat);line-height:var(--lh-stat);letter-spacing:.02em;color:var(--gold);font-variant-numeric:tabular-nums}
.cds-stat-item__label{margin:0;font-size:var(--fs-body-sm);line-height:var(--lh-body-sm);font-weight:600;color:var(--text-inverse-muted);max-width:16em;text-wrap:balance}

/* =========================================================================
   13. Photo band (core/cover.cds-photoband) with scroll-driven drift
   ========================================================================= */
.cds-photoband{position:relative;isolation:isolate;overflow:clip;display:flex;align-items:flex-end;background:var(--navy);color:var(--white);border-top:var(--border-accent) solid var(--gold);view-timeline:--cds-band block;view-timeline-inset:0}
.cds-photoband__media{position:absolute;inset:0;z-index:-1;overflow:hidden}
.cds-photoband__media img{width:100%;height:100%;object-fit:cover;object-position:var(--focus,center 35%)}
@supports (animation-timeline:view()){
  .cds-photoband__media img{height:140%;animation:cds-drift linear both;animation-timeline:--cds-band;animation-range:cover}
}
@keyframes cds-drift{from{transform:translateY(-25%)}to{transform:translateY(0)}}
.cds-photoband__fade{position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,var(--overlay-navy) 0%,var(--overlay-navy) 45%,var(--overlay-navy-clear) 90%)}
.cds-photoband__inner{position:relative;width:100%;padding-top:calc(var(--space-10) * 2);padding-bottom:var(--space-7)}
.cds-photoband__copy{max-width:560px;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-5);padding-left:var(--space-6);border-left:var(--border-accent) solid var(--gold)}
.cds-photoband__copy h2{color:var(--white)}
.cds-photoband__copy p{font-size:var(--fs-lead);line-height:var(--lh-lead)}
@media (min-width:768px){
  .cds-photoband{align-items:center}
  .cds-photoband__fade{background:linear-gradient(to right,var(--overlay-navy) 10%,var(--overlay-navy-clear) 85%)}
  .cds-photoband__inner{padding-block:var(--space-10)}
}
@media (prefers-reduced-motion:reduce){.cds-photoband__media img{height:100%;animation:none}}

/* =========================================================================
   14. Testimonial (core/group.cds-testimonial > core/image + core/quote)
   ========================================================================= */
.cds-testimonial{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-7);align-items:center;padding:var(--space-7);background:var(--surface-alt);border-radius:var(--radius-md)}
.cds-testimonial__logo{width:160px;height:160px;object-fit:contain}
.cds-testimonial__body{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-5)}
.cds-testimonial blockquote{margin:0}
.cds-testimonial blockquote p{font-family:var(--font-heading);font-style:italic;font-weight:400;font-size:var(--fs-testimonial);line-height:var(--lh-testimonial);color:var(--navy);max-width:var(--measure)}
.cds-testimonial__cite{display:grid;gap:2px;font-style:normal}
.cds-testimonial__name{font-weight:700;color:var(--ink)}
.cds-testimonial__role{font-size:var(--fs-body-sm);line-height:var(--lh-body-sm);color:var(--text-muted)}
@media (max-width:767px){.cds-testimonial{grid-template-columns:minmax(0,1fr);gap:var(--space-5);padding:var(--space-6)}.cds-testimonial__logo{width:112px;height:112px}}

/* =========================================================================
   15. CTA strip (core/group.cds-cta)
   ========================================================================= */
.cds-cta{background:var(--navy);color:var(--white)}
.cds-cta__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-6)}
.cds-cta__text{display:grid;gap:var(--space-3);max-width:var(--measure)}
.cds-cta h2{color:var(--white)}
.cds-cta p{color:var(--text-inverse-muted)}
.cds-cta p a{color:var(--white);text-decoration-color:var(--gold)}
.cds-cta p a:hover{color:var(--gold)}
@media (max-width:599px){.cds-cta .cds-btn{width:100%}}

/* =========================================================================
   16. Includes list (core/list.is-style-cds-includes)
   ========================================================================= */
/* Soft tags: warmer than ruled rows, still square-cornered enough to stay formal */
.cds-includes{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.cds-includes li{display:block;position:relative;max-width:100%;padding:7px 12px 7px 26px;border-radius:6px;background:var(--surface-cream);border:1px solid var(--line-gold-soft);font-size:var(--fs-body-sm);line-height:1.35;font-weight:600;color:var(--navy)}
.cds-includes li::before{content:"";position:absolute;left:12px;top:calc(7px + .675em - 3px);width:6px;height:6px;border-radius:1px;background:var(--gold)}
.cds-section--cream .cds-includes li,.cds-offer .cds-includes li{background:var(--stone)}

/* =========================================================================
   17. Service accordion (core/columns > core/image + core/details)
   ========================================================================= */
.cds-accordion{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--space-8);align-items:start}
.cds-accordion__aside{position:sticky;top:calc(var(--header-h-compact) + var(--space-5));aspect-ratio:4/5;overflow:hidden;background:var(--stone-2)}
.cds-accordion__aside img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--focus,center);opacity:0;transition:opacity var(--dur-card) var(--ease)}
.cds-accordion__aside img.is-active{opacity:1}
.cds-accordion__list{border-top:1px solid var(--line)}
.cds-accordion__item{border-bottom:1px solid var(--line)}
.cds-accordion__trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);min-height:44px;padding:22px 0;cursor:pointer;list-style:none;font-family:var(--font-heading);font-weight:var(--weight-heading);font-style:var(--style-h3);font-size:var(--fs-h3);line-height:var(--lh-h3);color:var(--navy);transition:color var(--dur-button) var(--ease)}
.cds-accordion__trigger::-webkit-details-marker{display:none}
.cds-accordion__trigger:hover{color:var(--gold-text)}
.cds-accordion__sign{flex:none;width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);font:normal 400 1.25rem/1 var(--font-body);color:var(--navy)}
.cds-accordion__sign::before{content:"+"}
.cds-accordion__item[open] .cds-accordion__sign{background:var(--navy);border-color:var(--navy);color:var(--white)}
.cds-accordion__item[open] .cds-accordion__sign::before{content:"\2013"}
.cds-accordion__panel{display:grid;gap:var(--space-5);padding:0 0 var(--space-6)}
.cds-accordion__panel p{color:var(--text-muted);max-width:var(--measure)}
.cds-accordion__photo{display:none;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:var(--focus,center)}
.cds-accordion__includes{display:flex;flex-wrap:wrap;gap:10px 28px;list-style:none;margin:0;padding:0;font-weight:600;color:var(--ink)}
.cds-accordion__includes li{display:flex;align-items:center;gap:10px}
.cds-accordion__includes li::before{content:"";flex:none;width:6px;height:6px;background:var(--gold)}
@media (max-width:899px){.cds-accordion{grid-template-columns:minmax(0,1fr)}.cds-accordion__aside{display:none}.cds-accordion__photo{display:block}}

/* =========================================================================
   18. Package card (core/group.cds-package) + grid
   ========================================================================= */
.cds-package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--grid-gap);align-items:stretch}
@media (max-width:1023px){.cds-package-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:599px){.cds-package-grid{grid-template-columns:minmax(0,1fr)}}
.cds-package-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:767px){.cds-package-grid--2{grid-template-columns:minmax(0,1fr)}}
.cds-package{display:flex;flex-direction:column;overflow:hidden;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-md);transition:box-shadow var(--dur-card) var(--ease-card)}
.cds-package:hover{box-shadow:var(--shadow-card-hover)}
.cds-package__photo{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:var(--focus,center 35%)}
.cds-package__body{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);padding:var(--space-6)}
.cds-package__name{margin:0}
.cds-package__desc{color:var(--text-muted)}
.cds-package__includes{align-self:stretch;list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.cds-package__includes li{padding:10px 0;border-bottom:1px solid var(--line);font-size:var(--fs-body-sm);line-height:var(--lh-body-sm);font-weight:600;color:var(--ink)}
.cds-package__foot{margin-top:auto;padding-top:var(--space-2);display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}
.cds-package--featured{background:var(--navy);border-color:var(--navy);border-top:var(--border-accent) solid var(--gold);color:var(--white)}
.cds-package--featured .cds-package__name{color:var(--white)}
.cds-package--featured .cds-package__desc{color:var(--text-inverse-muted)}
.cds-package--featured .cds-package__includes{border-color:var(--line-inverse)}
.cds-package--featured .cds-package__includes li{border-color:var(--line-inverse);color:var(--white)}
.cds-package--wide{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr)}
.cds-package--wide .cds-package__photo{aspect-ratio:auto;height:100%;min-height:420px}
.cds-package--wide .cds-package__body{padding:var(--space-7)}
@media (max-width:899px){.cds-package--wide{grid-template-columns:minmax(0,1fr)}.cds-package--wide .cds-package__photo{aspect-ratio:3/2;height:auto;min-height:0}.cds-package--wide .cds-package__body{padding:var(--space-6)}}
.cds-note{margin-top:var(--space-6);color:var(--text-muted);max-width:var(--measure)}

/* =========================================================================
   19. Team row (core/columns.cds-team)
   ========================================================================= */
.cds-team{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:var(--space-7) var(--space-6);list-style:none;margin:0;padding:0}
@media (max-width:899px){.cds-team{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:599px){.cds-team{grid-template-columns:minmax(0,1fr)}}
.cds-team__member{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3)}
.cds-team__frame{display:block;width:100%;max-width:300px;overflow:hidden;background:var(--stone-2);border-radius:var(--radius-photo)}
.cds-team__photo--placeholder{border-radius:var(--radius-photo)}
.cds-team__frame .cds-team__photo{max-width:none;transition:transform var(--dur-zoom) var(--ease-zoom)}
.cds-team__member:hover .cds-team__frame .cds-team__photo,.cds-team__member:focus-within .cds-team__frame .cds-team__photo{transform:scale(var(--zoom-card-hover))}
.cds-team__name::after{content:"";display:block;width:64px;height:2px;margin-top:var(--space-2);background:var(--gold-text);transform:scaleX(.375);transform-origin:left;transition:transform var(--dur-card) var(--ease-card)}
.cds-team__member:hover .cds-team__name::after,.cds-team__member:focus-within .cds-team__name::after{transform:scaleX(1)}
.cds-team__photo{width:100%;height:auto;max-width:300px;aspect-ratio:4/5;object-fit:cover;object-position:center 20%;background:var(--stone-2)}
.cds-team__photo--placeholder{display:grid;place-items:center;padding:var(--space-4);border:1px dashed var(--ink-muted);color:var(--text-muted);font-size:var(--fs-caption);line-height:var(--lh-caption);font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-align:center}
.cds-team__name{margin:var(--space-2) 0 0;font-style:normal;font-size:var(--fs-h4);line-height:var(--lh-h4)}
.cds-team__role{font-size:var(--fs-body);line-height:1.45;font-weight:600;color:var(--ink-muted)}
.cds-team__bio{align-self:stretch}
.cds-team-group{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:var(--space-7);align-items:start;scroll-margin-top:calc(var(--header-h-compact) + var(--space-5))}
.cds-team-head{padding-bottom:var(--space-6)}
.cds-team-head .cds-jumps{margin-bottom:0}
.cds-team-band{padding-block:var(--space-8);scroll-margin-top:var(--header-h-compact)}
.cds-team-band:nth-of-type(odd){background:var(--surface-alt)}
@media (max-width:767px){.cds-team-band{padding-block:var(--space-7)}}
.cds-team-group__title{margin:0;position:sticky;top:calc(var(--header-h-compact) + var(--space-5));display:grid;gap:2px;font-style:normal}
.cds-team-group__mark{font-family:var(--font-display);font-weight:400;font-style:normal;font-size:var(--fs-wordmark);line-height:1;letter-spacing:var(--ls-wordmark);color:var(--navy)}
.cds-team-group__name{font-family:var(--font-heading);font-weight:var(--weight-heading);font-style:italic;font-size:var(--fs-h3);line-height:var(--lh-h3);color:var(--gold-text)}
@media (max-width:899px){.cds-team-group{grid-template-columns:minmax(0,1fr);gap:var(--space-5)}.cds-team-group__title{position:static}}
.cds-team--compact{--cols:4;gap:var(--space-6) var(--space-5)}
.cds-team--compact .cds-team__frame{max-width:220px}
.cds-team--compact .cds-team__photo{aspect-ratio:1/1;max-width:220px}
.cds-jumps{display:flex;flex-wrap:wrap;gap:0 var(--space-5);list-style:none;margin:0 0 var(--space-8);padding:0 0 var(--space-4);border-bottom:1px solid var(--line)}
.cds-jumps a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600;color:var(--navy);text-decoration:none}
.cds-jumps a:hover{color:var(--gold-text)}
.cds-jumps .cds-chev--down{width:6px;height:6px}
.cds-team--compact .cds-team__name{font-size:var(--fs-body);line-height:1.35}
@media (min-width:1024px){.cds-team--compact.cds-team--3up{--cols:3}}
@media (max-width:1023px){.cds-team--compact{--cols:3}}
.cds-section--cream{background:var(--surface-cream)}

/* Quote band (core/group.cds-quoteband > core/image dandelion + core/quote) */
.cds-quoteband{background:var(--navy);color:var(--white);text-align:center}
.cds-quoteband__inner{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);max-width:900px;margin-inline:auto}
.cds-quoteband__mark{height:72px;width:auto}
.cds-quoteband blockquote{margin:0}
.cds-quoteband blockquote p{font-family:var(--font-heading);font-style:italic;font-weight:400;font-size:var(--fs-quote);line-height:var(--lh-quote);text-wrap:balance;color:var(--white)}
.cds-quoteband__cite{display:flex;flex-direction:column;gap:4px;align-items:center;font-style:normal}
.cds-quoteband__name{font-family:var(--font-display);font-size:var(--fs-eyebrow);letter-spacing:var(--ls-eyebrow);color:var(--gold)}
.cds-quoteband__role{font-size:var(--fs-body-sm);color:var(--text-inverse-muted)}
.cds-quoteband .cds-flag{align-self:center;justify-self:center}
.cds-team__bio summary{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;list-style:none;font-weight:600;font-size:var(--fs-body-sm);color:var(--navy);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}
.cds-team__bio summary::-webkit-details-marker{display:none}
.cds-team__bio summary:hover{color:var(--gold-text)}
.cds-team__bio-text{display:grid;gap:var(--space-3);padding-top:var(--space-2);font-family:var(--font-heading);font-weight:400;font-size:var(--fs-body-sm);line-height:1.7;color:var(--ink)}

/* =========================================================================
   19b. Contact (core/columns > details group + form block)
   ========================================================================= */
.cds-contact{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:var(--space-8);align-items:start}
@media (max-width:899px){.cds-contact{grid-template-columns:minmax(0,1fr);gap:var(--space-7)}}
.cds-contact__details{display:grid;gap:var(--space-6);align-content:start}
.cds-contact__item{display:grid;gap:var(--space-2);padding-bottom:var(--space-5);border-bottom:1px solid var(--line)}
.cds-contact__item address{font-style:normal;display:grid;gap:2px;color:var(--ink)}
.cds-contact__item p{color:var(--ink)}
.cds-contact__item a{font-weight:600}
.cds-contact__social{display:flex;flex-wrap:wrap;gap:0 var(--space-5);list-style:none;margin:0;padding:0}
.cds-contact__social a{display:inline-flex;align-items:center;min-height:44px}
.cds-social--drawer{margin-top:var(--space-5)!important}
.cds-form{display:grid;gap:var(--space-5);padding:var(--space-7);background:var(--surface-alt);border-radius:var(--radius-md)}
@media (max-width:599px){.cds-form{padding:var(--space-5)}}
.cds-form__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}
@media (max-width:599px){.cds-form__row{grid-template-columns:minmax(0,1fr)}}
.cds-field{display:grid;gap:var(--space-2)}
.cds-field label{font-weight:600;font-size:var(--fs-body-sm);line-height:var(--lh-body-sm);color:var(--ink)}
.cds-field input,.cds-field select,.cds-field textarea{width:100%;min-height:48px;padding:12px 14px;font:inherit;font-size:var(--fs-body);color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:var(--radius-sm);transition:border-color var(--dur-button) var(--ease)}
.cds-field textarea{min-height:160px;resize:vertical}
.cds-field input:hover,.cds-field select:hover,.cds-field textarea:hover{border-color:var(--ink-muted)}
.cds-field input:focus-visible,.cds-field select:focus-visible,.cds-field textarea:focus-visible{border-color:var(--navy);outline:2px solid var(--focus-ring);outline-offset:2px}
.cds-form__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4)}
.cds-form__note{font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--text-muted)}

/* =========================================================================
   20. Site footer (template part: footer)
   ========================================================================= */
.cds-footer{background:var(--surface-footer);color:var(--text-inverse-muted);font-size:var(--fs-body-sm);line-height:var(--lh-body-sm)}
.cds-footer__top{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr);gap:var(--space-7);padding-block:var(--space-8)}
@media (max-width:1023px){.cds-footer__top{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:599px){.cds-footer__top{grid-template-columns:minmax(0,1fr);gap:var(--space-6);padding-block:var(--space-7)}}
.cds-footer__brand{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-6)}
.cds-footer__brand img{width:200px;height:auto;margin-bottom:var(--space-3)}
.cds-footer__tag{width:200px;max-width:100%;text-align:center;font-family:var(--font-heading);font-style:italic;font-size:var(--fs-quote-sm);line-height:1.45;color:var(--white)}
.cds-footer__tag::before{content:"";display:block;width:170px;max-width:100%;margin-left:auto;margin-right:auto;height:2px;margin-bottom:var(--space-6);background:var(--gold)}
.cds-footer__heading{margin:0 0 var(--space-4);font-family:var(--font-display);font-weight:400;font-size:var(--fs-eyebrow);line-height:1.1;letter-spacing:var(--ls-eyebrow);color:var(--gold)}
.cds-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.cds-footer a{color:var(--text-inverse-muted);text-decoration:none}
.cds-footer ul a{display:inline-flex;align-items:center;min-height:32px}
.cds-footer a:hover{color:var(--gold)}
@media (max-width:767px){.cds-footer ul a{min-height:44px}}
.cds-footer__address{font-style:normal;display:grid;gap:4px}
.cds-footer__address a{color:var(--white);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}
.cds-social{display:flex!important;gap:var(--space-2)!important;margin-top:var(--space-5)!important}
.cds-social a{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line-inverse);border-radius:var(--radius-sm);transition:border-color var(--dur-button) var(--ease),background-color var(--dur-button) var(--ease)}
.cds-social a:hover{border-color:var(--gold);background:var(--navy)}
.cds-social img{width:20px;height:20px}
.cds-footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-4);padding-block:var(--space-5);border-top:1px solid var(--line-inverse);font-size:var(--fs-caption);line-height:var(--lh-caption)}

/* =========================================================================
   21. Reveal on scroll (add class cds-reveal to any group)
   ========================================================================= */
.cds-js .cds-reveal>*{opacity:0;transform:translateY(var(--reveal-distance));transition:opacity var(--dur-reveal) var(--ease),transform var(--dur-reveal) var(--ease)}
.cds-js .cds-reveal.is-revealed>*{opacity:1;transform:none}
.cds-reveal.is-revealed>:nth-child(2){transition-delay:calc(var(--reveal-stagger) * 1)}
.cds-reveal.is-revealed>:nth-child(3){transition-delay:calc(var(--reveal-stagger) * 2)}
.cds-reveal.is-revealed>:nth-child(4){transition-delay:calc(var(--reveal-stagger) * 3)}
.cds-reveal.is-revealed>:nth-child(5){transition-delay:calc(var(--reveal-stagger) * 4)}
.cds-reveal.is-revealed>:nth-child(6){transition-delay:calc(var(--reveal-stagger) * 5)}
.cds-reveal.is-revealed>:nth-child(7){transition-delay:calc(var(--reveal-stagger) * 6)}
.cds-reveal.is-revealed>:nth-child(8){transition-delay:calc(var(--reveal-stagger) * 7)}
.cds-reveal.is-revealed>:nth-child(9){transition-delay:calc(var(--reveal-stagger) * 8)}

/* =========================================================================
   22. Reduced motion: everything stops, everything shows
   ========================================================================= */
@media (prefers-reduced-motion:reduce){
  .cds-js .cds-reveal>*{opacity:1;transform:none}
  .cds-slide__copy-wrap{animation:none}
  .cds-site-header--transparent.is-scrolled{animation:none}
}

/* Ruled section heading: centered h2 with hairlines either side. Gold on light, white on navy. */
.cds-rule-heading{display:flex;align-items:center;justify-content:center;gap:var(--space-5);width:100%;text-align:center}
.cds-rule-heading::before,.cds-rule-heading::after{content:"";flex:1 1 0;max-width:160px;height:1px;background:var(--gold)}
.cds-section--navy .cds-rule-heading::before,.cds-section--navy .cds-rule-heading::after,.cds-section--inverse .cds-rule-heading::before,.cds-section--inverse .cds-rule-heading::after,.cds-rule-heading--inverse::before,.cds-rule-heading--inverse::after{background:var(--line-inverse-strong)}
@media (max-width:599px){.cds-rule-heading{gap:var(--space-3)}.cds-rule-heading::before,.cds-rule-heading::after{max-width:48px}}

/* Service offers (Services page): rounded photo cards, everything visible, no accordion */
.cds-offers__jump{margin-bottom:var(--space-8)}
.cds-offers__jump ul{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;list-style:none;margin:0 auto;padding:0;max-width:840px}
.cds-offers__jump a{display:inline-flex;align-items:center;min-height:54px;padding:0 24px;white-space:nowrap;box-shadow:0 2px 6px var(--shadow-soft-color);border-radius:6px;background:var(--white);border:1px solid var(--line);font-weight:600;font-size:var(--fs-body-lg);color:var(--navy);text-decoration:none;transition:background-color var(--dur-button) var(--ease),color var(--dur-button) var(--ease)}
.cds-offers__jump a:hover{background:var(--navy);color:var(--white);border-color:var(--navy)}
.cds-offers__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6);list-style:none;margin:0;padding:0}
@media (max-width:1023px){.cds-offers__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:639px){.cds-offers__grid{grid-template-columns:minmax(0,1fr)}}
.cds-offer{display:flex;flex-direction:column;background:var(--white);border-radius:var(--radius-photo);overflow:hidden;scroll-margin-top:calc(var(--header-h-compact) + var(--space-5));transition:box-shadow var(--dur-card) var(--ease-card),transform var(--dur-card) var(--ease-card)}
.cds-offer:hover{box-shadow:var(--shadow-card-hover)}
.cds-offer__media{aspect-ratio:3/2;overflow:hidden;background:var(--stone-2)}
.cds-offer__media img{width:100%;height:100%;object-fit:cover;object-position:var(--focus,center);transition:transform var(--dur-zoom) var(--ease-zoom)}
.cds-offer:hover .cds-offer__media img{transform:scale(var(--zoom-card-hover))}
.cds-offer__body{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);padding:var(--space-6)}
.cds-offer__title{margin:0;font-style:var(--style-h3);font-size:var(--fs-h3);line-height:var(--lh-h3);color:var(--navy)}
.cds-offer__body>p:not(.cds-offer__label):not(.cds-flag){margin:0;color:var(--ink-muted);font-size:var(--fs-body-sm);line-height:var(--lh-body-sm)}
.cds-offer__label{margin:var(--space-2) 0 0;font-family:var(--font-display);font-size:var(--fs-label);letter-spacing:.08em;color:var(--gold-text)}
.cds-offer__links{margin-top:auto;padding-top:var(--space-3);display:flex;flex-wrap:wrap;gap:var(--space-5)}
@media (prefers-reduced-motion:reduce){.cds-offer:hover .cds-offer__media img{transform:none}}

/* Header CTA: white label on gold (client request) */
.cds-site-header__cta.cds-btn--gold,.cds-site-header__cta.cds-btn--gold:hover,.cds-drawer__cta.cds-btn--gold,.cds-drawer__cta.cds-btn--gold:hover{color:var(--white)}


/* Photo band variant: keep the top of the photo (heads) in frame; gentler drift */
.cds-photoband--top .cds-photoband__media img{object-position:var(--focus-x,70%) var(--focus-y,18%)}
@supports (animation-timeline:view()){.cds-photoband--top .cds-photoband__media img{height:108%;animation-name:cds-drift-soft}}
@keyframes cds-drift-soft{from{transform:translateY(-7.4%)}to{transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){.cds-photoband--top .cds-photoband__media img{height:100%;animation:none}}

/* Form section (Formaloo embed). WordPress: Custom HTML block with the Formaloo embed code. */
.cds-form-section{scroll-margin-top:var(--header-h-compact)}
.cds-form-section__inner{max-width:720px;margin-inline:auto;display:grid;gap:var(--space-6)}
.cds-form-section__head{display:grid;gap:var(--space-3);justify-items:start}
.cds-form-section__note{color:var(--ink-muted);max-width:var(--measure)}
.cds-form-section__embed{background:var(--white);border-radius:var(--radius-md);border:1px solid var(--line);overflow:hidden}
.cds-form-section__embed iframe{display:block;width:100%;height:900px;border:0}
@media (max-width:599px){.cds-form-section__embed iframe{height:1100px}}
.cds-form-section__alt{font-size:var(--fs-body-sm);color:var(--ink-muted)}
.cds-form-section__alt a{color:var(--navy)}
.cds-contact__form{display:grid;gap:var(--space-6);align-content:start;scroll-margin-top:calc(var(--header-h-compact) + var(--space-5))}

/* Dandelion accents: ornament only, never in a band that holds the full logo. Decorative (CSS background), hidden from assistive tech. */
.cds-intro,.cds-cta,.cds-testimonial,.cds-form-section{position:relative;isolation:isolate;overflow:hidden}
.cds-intro::after,.cds-cta::after,.cds-testimonial::after,.cds-form-section::after{content:"";position:absolute;z-index:-1;pointer-events:none;background:no-repeat center/contain}
.cds-intro::after{right:-40px;bottom:-60px;width:clamp(200px,26vw,380px);aspect-ratio:0.904;background-image:url("logos/dandelion-navy-crop.png");opacity:.06}
.cds-cta::after{right:max(-60px,calc(50% - 760px));top:50%;translate:0 -50%;width:clamp(220px,24vw,360px);aspect-ratio:0.904;background-image:url("logos/dandelion-white-crop.png");opacity:.07}
.cds-testimonial::after{right:var(--space-5);top:var(--space-5);width:120px;aspect-ratio:0.904;background-image:url("logos/dandelion-navy-crop.png");opacity:.08}
.cds-form-section::after{left:-60px;bottom:-40px;width:clamp(200px,24vw,340px);aspect-ratio:0.904;background-image:url("logos/dandelion-navy-crop.png");opacity:.05}
@media (max-width:599px){.cds-cta::after,.cds-testimonial::after{opacity:.05}.cds-intro::after,.cds-form-section::after{width:180px}}


/* Dandelion placement variants (Home tweak: .cds-dl--bleed / --center / --off on main) */
.cds-dl--bleed .cds-intro::after{right:auto;left:-120px;bottom:auto;top:50%;translate:0 -50%;width:clamp(320px,38vw,620px);opacity:.05}
.cds-dl--bleed .cds-cta::after{right:-80px;top:auto;bottom:-140px;translate:none;width:clamp(300px,32vw,520px);opacity:.06}
.cds-dl--bleed .cds-testimonial::after{right:auto;left:-40px;top:auto;bottom:-50px;width:220px;opacity:.06}
.cds-dl--center .cds-intro::after,.cds-dl--center .cds-cta::after{left:50%;right:auto;top:50%;bottom:auto;translate:-50% -50%;width:clamp(220px,22vw,320px);opacity:.05}
.cds-dl--center .cds-testimonial::after{left:50%;right:auto;top:50%;translate:-50% -50%;width:200px;opacity:.05}
.cds-dl--off .cds-intro::after,.cds-dl--off .cds-cta::after,.cds-dl--off .cds-testimonial::after{display:none}

/* Smaller, mostly visible dandelions (override) */
.cds-intro::after{right:4%;bottom:auto;top:50%;translate:0 -50%;width:clamp(140px,14vw,220px)}
.cds-cta::after{right:4%;width:clamp(140px,13vw,200px)}
.cds-testimonial::after{width:90px}
.cds-dl--bleed .cds-intro::after{left:-30px;right:auto;width:clamp(160px,16vw,240px)}
.cds-dl--bleed .cds-cta::after{right:-20px;bottom:-30px;top:auto;translate:none;width:clamp(160px,15vw,230px)}
.cds-dl--bleed .cds-testimonial::after{left:-10px;bottom:-14px;width:120px}
.cds-dl--center .cds-intro::after,.cds-dl--center .cds-cta::after{width:clamp(140px,13vw,200px)}
.cds-dl--center .cds-testimonial::after{width:130px}
@media (max-width:599px){.cds-intro::after,.cds-cta::after,.cds-dl--bleed .cds-intro::after,.cds-dl--bleed .cds-cta::after{width:120px}}

/* "Behind the text" placement: sits under the heading block, a little stronger */
.cds-dl--center .cds-intro::after{left:max(4%,calc(50% - 560px));right:auto;top:50%;bottom:auto;translate:0 -50%;width:clamp(180px,18vw,260px);opacity:.09}
.cds-dl--center .cds-cta::after{left:max(4%,calc(50% - 560px));right:auto;top:50%;bottom:auto;translate:0 -50%;width:clamp(170px,16vw,240px);opacity:.1}
.cds-dl--center .cds-testimonial::after{left:auto;right:var(--space-7);top:50%;translate:0 -50%;width:150px;opacity:.08}

/* Dandelion accent in page intro bands (cream). Fills the open right side beside the heading block. */
.cds-page-intro{position:relative;isolation:isolate;overflow:hidden}
.cds-page-intro::after{content:"";position:absolute;z-index:-1;pointer-events:none;right:max(4%,calc(50% - 560px));top:50%;translate:0 -50%;width:clamp(160px,18vw,270px);aspect-ratio:0.904;background:url("logos/dandelion-navy-crop.png") no-repeat center/contain;opacity:.1}
@media (max-width:767px){.cds-page-intro::after{right:-30px;width:150px;opacity:.07}}

/* CTA band: dandelion sits directly behind the button (replaces the side placement) */
.cds-cta::after,.cds-dl--bleed .cds-cta::after,.cds-dl--center .cds-cta::after{display:none}
.cds-cta .cds-cta__inner>.cds-btn{position:relative}
.cds-cta .cds-cta__inner>.cds-btn::before{content:"";position:absolute;z-index:-1;left:50%;top:50%;translate:-50% -50%;width:clamp(150px,14vw,210px);aspect-ratio:0.904;background:url("logos/dandelion-white-crop.png") no-repeat center/contain;opacity:.12;pointer-events:none}
.cds-dl--off .cds-cta .cds-cta__inner>.cds-btn::before{display:none}
@media (max-width:599px){.cds-cta .cds-cta__inner>.cds-btn::before{width:130px;opacity:.09}}

/* Cropped watermark sits on the bottom edge of its band; sized so the top never clips */
.cds-page-intro::after,.cds-intro::after,.cds-dl--bleed .cds-intro::after,.cds-dl--center .cds-intro::after,.cds-testimonial::after,.cds-dl--bleed .cds-testimonial::after,.cds-dl--center .cds-testimonial::after{top:auto;bottom:0;translate:none;max-height:92%;width:auto;height:clamp(150px,70%,280px)}
.cds-testimonial::after,.cds-dl--bleed .cds-testimonial::after,.cds-dl--center .cds-testimonial::after{left:auto;right:var(--space-6);height:min(78%,200px)}
.cds-cta .cds-cta__inner>.cds-btn::before{display:none}
.cds-cta::after,.cds-dl--bleed .cds-cta::after,.cds-dl--center .cds-cta::after{display:block;left:auto;top:auto;bottom:0;translate:none;right:calc(max(var(--gutter),50% - 600px) + 20px);width:auto;height:min(82%,240px);opacity:.1}
.cds-dl--off .cds-cta::after{display:none}
@media (max-width:767px){.cds-page-intro::after,.cds-intro::after,.cds-cta::after{height:140px;right:var(--gutter);left:auto}}

/* Home intro: larger dandelion, set left of the heading so the seed head frames the text start */
.cds-intro::after,.cds-dl--bleed .cds-intro::after,.cds-dl--center .cds-intro::after{left:max(0px,calc(50% - 760px));right:auto;height:94%;max-height:94%;opacity:.08}
@media (max-width:767px){.cds-intro::after,.cds-dl--bleed .cds-intro::after,.cds-dl--center .cds-intro::after{left:auto;right:var(--gutter);height:150px}}

/* Watermark variety: per-band placement via data-dl (a/b/c/d). All sit fully visible; stems may meet the bottom edge. */
.cds-page-intro[data-dl="a"]::after{right:max(4%,calc(50% - 560px));left:auto;top:auto;bottom:0;height:90%;opacity:.09}
.cds-page-intro[data-dl="b"]::after{right:max(10%,calc(50% - 420px));left:auto;bottom:auto;top:12%;height:55%;opacity:.1}
.cds-page-intro[data-dl="c"]::after{left:-24px;right:auto;top:auto;bottom:0;height:82%;opacity:.07}
.cds-page-intro[data-dl="d"]::after{right:max(22%,calc(50% - 300px));left:auto;top:auto;bottom:0;height:68%;opacity:.08}
.cds-cta[data-dl="a"]::after{right:calc(max(var(--gutter),50% - 600px) + 20px);left:auto;top:auto;bottom:0;height:min(82%,240px);opacity:.1}
.cds-cta[data-dl="b"]::after{left:max(2%,calc(50% - 700px));right:auto;top:auto;bottom:0;height:88%;opacity:.07}
.cds-cta[data-dl="c"]::after{right:max(3%,calc(50% - 740px));left:auto;bottom:auto;top:14%;height:52%;opacity:.09}
.cds-testimonial::after{height:min(70%,170px)}
section:nth-of-type(even) .cds-testimonial::after{right:auto;left:var(--space-5);height:min(55%,130px);bottom:auto;top:var(--space-5)}
@media (max-width:767px){.cds-page-intro[data-dl]::after,.cds-cta[data-dl]::after{left:auto;right:var(--gutter);top:auto;bottom:0;height:130px}}

.cds-page-intro[data-dl="none"]::after{display:none}
/* No floating stems: every variant rests on the bottom edge */
.cds-page-intro[data-dl="b"]::after{top:auto;bottom:0;height:62%}
.cds-cta[data-dl="c"]::after{top:auto;bottom:0;height:60%}

/* Boot Camp page */
.cds-bc-theme{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,7fr);gap:var(--space-8);align-items:center}
@media (max-width:767px){.cds-bc-theme{grid-template-columns:minmax(0,1fr);gap:var(--space-6)}}
.cds-bc-theme__mark{width:100%;max-width:260px;height:auto;justify-self:center}
.cds-bc-theme__body{display:grid;gap:var(--space-5);justify-items:start}
.cds-bc-theme__verse{margin:0;padding-left:var(--space-5);border-left:2px solid var(--gold);display:grid;gap:var(--space-2)}
.cds-bc-theme__verse p{margin:0;font-family:var(--font-heading);font-style:italic;font-size:var(--fs-quote-sm);line-height:1.55;color:var(--navy);max-width:48ch}
.cds-bc-theme__verse cite{font-style:normal;font-weight:600;font-size:var(--fs-body-sm);color:var(--ink-muted)}
.cds-bc-locations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6);list-style:none;margin:0 0 var(--space-5);padding:0}
@media (max-width:767px){.cds-bc-locations{grid-template-columns:minmax(0,1fr)}}
.cds-bc-location{display:grid;gap:var(--space-2);align-content:start;padding:var(--space-6);background:var(--white);border-radius:var(--radius-photo);border-top:3px solid var(--gold)}
.cds-bc-location p{margin:0}
.cds-bc-location__city{font-family:var(--font-heading);font-style:italic;font-weight:600;font-size:var(--fs-h3);line-height:var(--lh-h3);color:var(--navy)}
.cds-bc-location__date{font-family:var(--font-display);font-size:var(--fs-date);letter-spacing:.04em;color:var(--gold-text)}
.cds-bc-tracks{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:var(--space-7) var(--space-6)}
.cds-bc-track{display:grid;gap:var(--space-4);align-content:start}
.cds-bc-track h3{margin:0}
.cds-bc-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-7)}
@media (max-width:767px){.cds-bc-people{grid-template-columns:minmax(0,1fr)}}
.cds-bc-people h3{margin:0 0 var(--space-4)}
.cds-bc-names{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.cds-bc-names li{padding:12px 0;border-bottom:1px solid var(--line);font-weight:600;color:var(--ink)}
.cds-bc-people{grid-template-columns:minmax(0,4fr) minmax(0,4fr) minmax(0,5fr);align-items:start}
@media (max-width:1023px){.cds-bc-people{grid-template-columns:repeat(2,minmax(0,1fr))}.cds-bc-photo{grid-column:1/-1;max-width:420px}}
@media (max-width:599px){.cds-bc-people{grid-template-columns:minmax(0,1fr)}}
.cds-bc-photo{margin:0;display:grid;gap:var(--space-3)}
.cds-bc-photo img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:55% 35%;border-radius:var(--radius-photo)}
.cds-bc-photo figcaption{font-size:var(--fs-body-sm);color:var(--ink-muted)}

.cds-package-grid--spaced{margin-top:var(--grid-gap)}
.cds-flag--spaced{margin-top:var(--space-4)}
.cds-package__price{margin:0;font-family:var(--font-display);font-size:var(--fs-date);letter-spacing:.04em;color:var(--gold-text)}
.cds-package--featured .cds-package__price{color:var(--gold)}

.cds-prose{font-family:var(--font-heading);font-weight:400;font-size:var(--fs-body);line-height:1.7;color:var(--ink);max-width:var(--measure)}
.cds-lp-trial{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-5);padding:var(--space-5);background:var(--surface-alt);border-radius:var(--radius-md)}
.cds-lp-trial p{margin:0}
.cds-lp-trial__label{font-size:var(--fs-micro);color:var(--ink-muted)}
.cds-lp-trial__code{font-family:var(--font-display);font-size:var(--fs-date);letter-spacing:.06em;color:var(--navy)}

/* Page hero with crossfading background videos (Boot Camp). Poster image is the base layer and the no-JS / phone / reduced-motion view. Videos never zoom. */
.cds-hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease-in-out;display:none}
.cds-page-hero.has-video .cds-hero-video{display:block}
.cds-hero-video.is-active{opacity:1}
.cds-hero-video__pause{position:absolute;z-index:3;right:var(--gutter);bottom:var(--space-5);display:none}
.cds-page-hero.has-video .cds-hero-video__pause{display:grid}
.cds-page-hero.is-paused .cds-pause-glyph{display:none}
.cds-page-hero.is-paused .cds-hero-video__pause::before{content:"";width:0;height:0;border-left:12px solid currentColor;border-top:8px solid transparent;border-bottom:8px solid transparent;margin-left:3px}
.cds-page-hero--video .cds-page-hero__fade{z-index:1}
.cds-page-hero--video .cds-page-hero__content{z-index:2}

/* Staff strip (concordis/staff-strip): people relevant to the page, drawn from the team roster */
.cds-staff{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:var(--space-6) var(--space-5);list-style:none;margin:0;padding:0}
.cds-staff__person{display:grid;gap:var(--space-2);align-content:start}
.cds-staff__person img{width:100%;max-width:220px;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:center 25%;border-radius:var(--radius-photo);background:var(--stone-2);margin-bottom:var(--space-2)}
.cds-staff__name{margin:0;font-weight:700;color:var(--ink)}
.cds-staff__role{margin:0;font-size:var(--fs-body-sm);line-height:var(--lh-body-sm);color:var(--ink-muted)}
@media (max-width:599px){.cds-staff{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cds-sn-tiers-head{margin-bottom:var(--space-7)}
.cds-sn-sub{margin:var(--space-3) 0 0;font-size:var(--fs-body-lg);font-style:normal;font-family:var(--font-body);font-weight:700;color:var(--navy)}
.cds-sn-counsel{display:grid;gap:var(--space-2);padding:var(--space-4);background:var(--surface-cream);border-radius:var(--radius-md)}
.cds-sn-counsel h4{margin:0;font-family:var(--font-display);font-weight:400;font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--gold-text)}
.cds-sn-counsel p{margin:0;font-size:var(--fs-body-sm);line-height:var(--lh-body-sm)}
.cds-bc-next{display:grid;gap:var(--space-3);margin-top:var(--space-7);padding:var(--space-6);background:var(--white);border-radius:var(--radius-photo);border:1px solid var(--line)}
.cds-bc-next h3{margin:0}
.cds-bc-next__list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}
.cds-bc-next__list li{max-width:var(--measure)}
.cds-bc-next__list .cds-flag{margin-left:var(--space-2);vertical-align:middle}
.cds-bc-guests{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:var(--space-8);align-items:center}
@media (max-width:899px){.cds-bc-guests{grid-template-columns:minmax(0,1fr);gap:var(--space-6)}}
.cds-bc-guests__body{display:grid;gap:var(--space-6)}
.cds-bc-guests__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);list-style:none;margin:0;padding:0}
@media (max-width:599px){.cds-bc-guests__list{grid-template-columns:minmax(0,1fr)}}
.cds-bc-guests__list li{display:grid;gap:4px;padding:var(--space-5);background:var(--white);border-radius:var(--radius-photo);border-left:3px solid var(--gold)}
.cds-bc-guests__list p{margin:0}
.cds-bc-guests__name{font-family:var(--font-heading);font-style:italic;font-weight:600;font-size:var(--fs-quote-sm);color:var(--navy)}
.cds-bc-guests__org{font-size:var(--fs-body-sm);color:var(--ink-muted)}
.cds-bc-guests__photo{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:60% 40%;border-radius:var(--radius-photo)}
.cds-package__note{margin:calc(var(--space-2) * -1) 0 0;font-size:var(--fs-body-sm);font-weight:600;color:var(--ink-muted)}

/* Equal space above and below the service jump buttons */
.cds-offers{padding-top:var(--space-8)}
.cds-offers__jump{margin-bottom:var(--space-8)}
/* Team row inside service offer cards */
.cds-offer__team{align-self:stretch;display:grid;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--line)}
.cds-offer__team ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}
.cds-offer__team li{display:flex;align-items:center;gap:var(--space-3)}
.cds-offer__team img{flex:none;width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:center 25%;background:var(--stone-2)}
.cds-offer__team span{display:grid;font-size:var(--fs-micro);line-height:1.35;color:var(--ink-muted)}
.cds-offer__team b{font-size:var(--fs-body-sm);font-weight:700;color:var(--ink)}

/* Dandelion watermark in the Services mega menu panel: behind the callout column, resting on the panel's bottom edge */
.cds-mega{overflow:hidden;isolation:isolate}
.cds-mega::after{content:"";position:absolute;z-index:-1;pointer-events:none;left:max(var(--gutter),calc(50% - 640px));bottom:0;height:88%;aspect-ratio:0.904;background:url("logos/dandelion-navy-crop.png") no-repeat center bottom/contain;opacity:.06}
/* Advancement calendar (Development & Fundraising) */
.cds-adv{list-style:none;margin:0 0 var(--space-7);padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6)}
@media (max-width:899px){.cds-adv{grid-template-columns:minmax(0,1fr)}}
.cds-adv__season{display:grid;gap:var(--space-4);align-content:start;padding:var(--space-6);background:var(--white);border-radius:var(--radius-photo);border-top:3px solid var(--gold)}
.cds-adv__season h3{margin:0}
.cds-adv__when{margin:0;font-family:var(--font-display);font-size:var(--fs-date);letter-spacing:.04em;color:var(--gold-text)}
.cds-adv__note{margin:0;font-size:var(--fs-body-sm);color:var(--ink-muted)}
.cds-adv__roles{display:grid;gap:var(--space-3);max-width:var(--measure)}
.cds-adv__roles h3{margin:0}
/* Page hero variant that keeps heads in frame: gentler drift that never lifts the top edge */
@supports (animation-timeline:view()){.cds-page-hero--top .cds-page-hero__media img{height:110%;animation-name:cds-page-hero-drift-top}}
@keyframes cds-page-hero-drift-top{from{transform:translateY(0)}to{transform:translateY(8%)}}
.cds-buttons--mid{margin-top:var(--space-7)}
.cds-buttons--center{justify-content:center}
.cds-intro__body .cds-buttons{margin-top:var(--space-2)}
.cds-bc-locations+.cds-buttons{margin-top:var(--space-2)}
@media (max-width:599px){.cds-buttons--mid .cds-btn{width:100%}}
/* Includes chips: give the list a definite width so wrapped chips grow with their text */
.cds-includes{align-self:stretch;width:100%}
.cds-includes li{flex:0 1 auto;min-width:0;height:auto}
/* Stat count-up: numbers rise in with a short stagger while counting */
.cds-stat-item__value{display:inline-block}
.cds-stat-item__value.is-counting{animation:cds-stat-in .6s var(--ease) both}
@keyframes cds-stat-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
/* Stats band photo desaturated so the navy veil reads evenly */
.cds-stats__bg{filter:grayscale(1) contrast(1.05)}

/* Rack-card Q&A (design system Sep 24): reader questions in Lora italic, then "We have answers" */
.cds-questions__label{margin:0;font-family:var(--font-label);font-size:18px;letter-spacing:.06em;line-height:1;color:var(--gold-text);text-transform:uppercase}
.cds-questions{margin:0;padding:0;list-style:none;display:grid;gap:var(--space-4)}
.cds-questions li{font-family:var(--font-heading);font-style:italic;font-size:1.3125rem;line-height:1.45;color:var(--navy);text-wrap:pretty}
.cds-includes--stack{grid-template-columns:minmax(0,1fr)!important;columns:auto!important}
