@import url("tokens/fonts.css");
@import url("tokens/colors.css");
@import url("tokens/typography.css");
@import url("tokens/spacing.css");
@import url("tokens/elevation.css");
@import url("tokens/motion.css");
@import url("tokens/base.css");

/* Obedient Wealth Planning — production site stylesheet.
   Every value resolves to a design-system token. No hard-coded brand hexes. */

.skip-link{position:absolute;left:-9999px;top:0;background:var(--surface-dark);color:var(--text-inverse);padding:12px 18px;font:var(--type-button);text-transform:uppercase;letter-spacing:var(--ls-button);z-index:60}
.skip-link:focus{left:var(--space-4);top:var(--space-4)}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:30;background:var(--overlay-glass);backdrop-filter:var(--overlay-blur);-webkit-backdrop-filter:var(--overlay-blur);border-bottom:var(--border-hairline) solid var(--border-subtle)}
.site-header__inner{max-width:var(--container-max);margin-inline:auto;padding:var(--space-4) var(--gutter);display:flex;align-items:center;gap:var(--space-6)}
.site-header__logo{flex:0 0 auto;display:block;text-decoration:none}
.site-header__logo img{height:40px;width:auto}
.site-nav{margin-left:auto;display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap;justify-content:flex-end}
.site-nav__link{font:var(--fw-medium) var(--fs-body-sm)/1 var(--font-sans);text-decoration:none;color:var(--neutral-700);padding-bottom:4px;border-bottom:var(--border-rule) solid transparent;transition:var(--transition-control)}
.site-nav__link:hover{color:var(--olive-700);border-bottom-color:var(--owp-gold)}
.site-nav__link[aria-current="page"]{color:var(--olive-700);border-bottom-color:var(--owp-gold)}
.login{position:relative}
.login>summary{list-style:none;cursor:pointer;font:var(--fw-medium) var(--fs-body-sm)/1 var(--font-sans);color:var(--neutral-700);display:flex;align-items:center;gap:6px;padding-bottom:4px}
.login>summary::-webkit-details-marker{display:none}
.login>summary:hover{color:var(--olive-700)}
.login>summary::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-3px}
.login[open]>summary::after{transform:rotate(225deg);margin-top:4px}
.login__menu{position:absolute;right:0;top:calc(100% + 12px);min-width:248px;background:var(--surface-page);border:var(--border-hairline) solid var(--border-subtle);border-radius:var(--radius-xs);box-shadow:var(--shadow-md);padding:var(--space-2);display:grid}
.login__menu a{display:block;padding:10px 12px;text-decoration:none;font:var(--fw-regular) var(--fs-body-sm)/1.35 var(--font-sans);color:var(--neutral-700)}
.login__menu a:hover{background:var(--olive-100);color:var(--olive-700)}
.login__note{padding:8px 12px 4px;font:var(--fw-regular) var(--fs-legal)/1.5 var(--font-sans);color:var(--text-muted)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font:var(--type-button);letter-spacing:var(--ls-button);text-transform:uppercase;text-decoration:none;border-radius:var(--radius-xs);padding:13px 26px;cursor:pointer;transition:var(--transition-control);border:var(--border-hairline) solid var(--action-primary-bg);background:var(--action-primary-bg);color:var(--action-primary-fg)}
.btn:hover{background:var(--action-primary-bg-hover);border-color:var(--action-primary-bg-hover);color:var(--action-primary-fg)}
.btn--sm{padding:9px 17px;font-size:var(--fs-caption)}
.btn--lg{padding:16px 34px;font-size:var(--fs-body)}
.btn--secondary{background:var(--action-secondary-bg);color:var(--action-secondary-fg);border-color:var(--action-secondary-border)}
.btn--secondary:hover{background:var(--olive-100);color:var(--olive-700);border-color:var(--action-secondary-border)}
.btn--inverse{background:transparent;color:var(--action-inverse-fg);border-color:var(--action-inverse-border)}
.btn--inverse:hover{background:rgba(255,255,255,.12);border-color:var(--neutral-000);color:var(--text-inverse)}
.btn--accent{background:var(--action-accent-bg);color:var(--action-accent-fg);border-color:var(--action-accent-bg)}
.btn--accent:hover{background:var(--action-accent-bg-hover);border-color:var(--action-accent-bg-hover);color:var(--action-accent-fg)}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font:var(--fw-semibold) var(--fs-body-sm)/1 var(--font-sans);letter-spacing:var(--ls-button);text-transform:uppercase;text-decoration:none;color:var(--text-link)}
.link-arrow:hover{color:var(--text-link-hover)}
.link-arrow--inverse{color:var(--text-inverse)}
.link-arrow--inverse:hover{color:var(--gold-300)}

/* ---------- sections ---------- */
.section{padding-block:var(--section-y)}
.section--tight{padding-block:var(--section-y-tight)}
.section--subtle{background:var(--surface-subtle)}
.section--pewter{background:var(--surface-pewter)}
.section--dark{background:var(--surface-dark);color:var(--text-inverse)}
.section--dark h2,.section--dark h3,.section--dark h4{color:var(--text-inverse)}
.section--dark p{color:var(--text-inverse-muted)}
.section--dark .owp-eyebrow{color:var(--gold-300)}
.section-head{max-width:var(--container-narrow);margin-bottom:var(--space-8)}
.section-head--center{margin-inline:auto;text-align:center}
.section-head .owp-eyebrow{display:block;margin-bottom:var(--space-3)}
.section-head .owp-rule{margin:0 0 var(--space-5)}
.section-head--center .owp-rule{margin:0 auto var(--space-5)}
.section-head h2{margin-bottom:var(--space-4)}
.lead{font:var(--type-lead);color:var(--text-body);max-width:var(--measure)}
.section--dark .lead{color:var(--text-inverse-muted)}

/* ---------- hero ---------- */
.hero{position:relative;isolation:isolate;background:var(--surface-dark);overflow:hidden}
.hero__media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 28%;z-index:-2}
.hero::after{content:"";position:absolute;inset:0;background:var(--scrim-side);z-index:-1}
.hero__inner{max-width:var(--container-max);margin-inline:auto;padding:var(--space-11) var(--gutter) var(--space-10)}
.hero--interior .hero__inner{padding-block:var(--space-9) var(--space-9)}
.hero__body{max-width:660px;color:var(--text-inverse)}
.hero .owp-eyebrow{color:var(--gold-300);display:block;margin-bottom:var(--space-4)}
.hero h1{color:var(--text-inverse);font-size:var(--fs-display-1);line-height:var(--lh-tight);margin-bottom:var(--space-5);max-width:20ch}
.hero--interior h1{font-size:var(--fs-display-2)}
.hero h1 em{font-style:normal;color:var(--gold-300)}
.hero p{color:var(--text-inverse-muted);font:var(--type-lead);max-width:56ch;margin-bottom:var(--space-6)}
.hero--interior p{margin-bottom:0}

/* ---------- generic layout helpers ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-10);align-items:center}
.split--narrow{gap:var(--space-9)}
.split__media img{width:100%;max-width:520px;margin-inline:auto;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 50%;border-radius:var(--radius-image);box-shadow:var(--shadow-sm)}
.split--reverse .split__media{order:2}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6)}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6)}
.prose{max-width:var(--measure)}
.prose p:last-child{margin-bottom:0}

/* ---------- cards ---------- */
.card{background:var(--surface-card);border:var(--border-hairline) solid var(--border-subtle);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);padding:var(--space-6);transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}
.card--gold-top{border-top:var(--border-accent-bar) solid var(--owp-gold)}
a.card,.card--link{text-decoration:none;color:inherit;display:block}
a.card:hover,.card--link:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.card h3{margin-bottom:var(--space-3)}
.card p:last-child{margin-bottom:0}
.icon-tile{width:76px;height:76px;display:grid;place-items:center;background:var(--olive-100);border-radius:var(--radius-xs);margin-bottom:var(--space-5)}
.icon-tile img{width:44px;height:44px}
.icon-tile--dark{background:rgba(255,255,255,.1)}

/* ---------- value props / credibility ---------- */
.cred-list{display:grid;gap:var(--space-6);margin:0;padding:0;list-style:none}
.cred-list li{padding-left:var(--space-5);border-left:var(--border-rule) solid var(--border-subtle)}
.cred-list dt,.cred-list strong{display:block;font:var(--type-h3);font-size:var(--fs-h4);color:var(--text-heading);margin-bottom:6px}
.cred-list p{margin:0;color:var(--text-muted)}

/* ---------- process ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6);counter-reset:step}
.step{border-top:var(--border-hairline) solid var(--border-inverse);padding-top:var(--space-5)}
.step__num{font:var(--fw-regular) var(--fs-h2)/1 var(--font-serif);color:var(--gold-300);display:block;margin-bottom:var(--space-4)}
.step h3{font-size:var(--fs-h4);margin-bottom:var(--space-2)}
.step__meta{display:block;font:var(--fw-medium) var(--fs-caption)/1.4 var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-3)}
.section--dark .step__meta{color:var(--gold-300)}
.step p{margin:0}
.steps--light .step{border-top-color:var(--border-default)}
.steps--light .step__num{color:var(--gold-600)}

/* ---------- service rows ---------- */
.service{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-10);align-items:center;padding-block:var(--space-9);border-top:var(--border-hairline) solid var(--border-subtle)}
.service:first-of-type{border-top:0;padding-top:0}
.service:last-of-type{padding-bottom:0}
.service--reverse .service__media{order:2}
.service__media img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 30%;border-radius:var(--radius-image)}
.service__hook{font:var(--type-h3);font-size:var(--fs-h4);color:var(--gold-700);margin-bottom:var(--space-4)}
.service h2{font-size:var(--fs-h3);margin-bottom:var(--space-3)}
.service p:last-child{margin-bottom:0}

/* ---------- C.H.I.R.P. interactive list ---------- */
.chirp{display:grid;margin-top:var(--space-6);border-top:var(--border-hairline) solid var(--border-inverse)}
.chirp__item{border-bottom:var(--border-hairline) solid var(--border-inverse)}
.chirp__item>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:var(--space-4);padding:var(--space-5) 0;font:var(--fw-semibold) var(--fs-h4)/1.4 var(--font-serif);color:var(--text-inverse);transition:var(--transition-control)}
.chirp__item>summary::-webkit-details-marker{display:none}
.chirp__item>summary:hover,.chirp__item[open]>summary{color:var(--gold-300)}
.chirp__letter{flex:0 0 auto;width:38px;height:38px;display:grid;place-items:center;border:var(--border-rule) solid var(--gold-500);border-radius:var(--radius-xs);font:var(--fw-regular) var(--fs-h4)/1 var(--font-serif);color:var(--gold-300);transition:var(--transition-control)}
.chirp__item>summary:hover .chirp__letter,.chirp__item[open] .chirp__letter{background:var(--gold-500);color:var(--olive-900)}
.chirp__word{font:inherit}
.chirp__item>summary::after{content:"";margin-left:auto;flex:0 0 auto;width:14px;height:14px;border-right:var(--border-rule) solid var(--owp-gold);border-bottom:var(--border-rule) solid var(--owp-gold);transform:rotate(45deg);margin-top:-4px;transition:transform var(--dur-base) var(--ease-out)}
.chirp__item[open]>summary::after{transform:rotate(225deg);margin-top:6px}
.chirp__body{padding:0 0 var(--space-5) calc(38px + var(--space-4))}
.chirp__body p{margin:0;font:var(--type-body);color:var(--text-inverse-muted);max-width:70ch}

/* ---------- quote ---------- */
.quote{border-left:var(--border-rule) solid var(--owp-gold);padding-left:var(--space-6);margin:0}
.quote blockquote{margin:0 0 var(--space-4);font:var(--fw-regular) var(--fs-h3)/1.4 var(--font-serif);color:var(--text-inverse)}
.quote figcaption{font:var(--fw-medium) var(--fs-body-sm)/1.4 var(--font-sans);color:var(--gold-300)}

/* ---------- trust bar (grounded in the design system's TrustBar) ---------- */
.trust{background:var(--surface-page);border-top:var(--border-hairline) solid var(--border-subtle);border-bottom:var(--border-hairline) solid var(--border-subtle)}
.trust__inner{max-width:var(--container-max);margin-inline:auto;padding:var(--space-7) var(--gutter);display:grid;grid-template-columns:1fr 1fr;align-items:center}
.trust__cell{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding-inline:var(--space-6)}
.trust__cell+.trust__cell{border-left:var(--border-hairline) solid var(--border-subtle)}
.trust__label{font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-muted);text-align:center}
.trust__logo{height:40px;width:auto;opacity:.85}
.trust__clip{height:44px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.trust__clip img{height:120px;width:auto;opacity:.85}
@media (max-width:620px){.trust__inner{grid-template-columns:1fr;gap:var(--space-7)}.trust__cell+.trust__cell{border-left:0;border-top:var(--border-hairline) solid var(--border-subtle);padding-top:var(--space-7)}}

/* ---------- team ---------- */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}
.team-card{background:var(--surface-card);border:var(--border-hairline) solid var(--border-subtle);border-radius:var(--radius-card);overflow:hidden;box-shadow:var(--shadow-sm)}
.team-card img{width:100%;aspect-ratio:4/5;object-fit:cover}
.team-card__body{padding:var(--space-6)}
.team-card__body h3{margin-bottom:4px;font-size:var(--fs-h4)}
.team-card__role{font:var(--fw-medium) var(--fs-body-sm)/1.4 var(--font-sans);color:var(--text-accent);margin-bottom:var(--space-3)}
.team-card__body p{margin:0;font-size:var(--fs-body-sm)}

/* team + partnership split (Who We Are) */
.team-split{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:var(--space-10);align-items:center}
.team-split__aside{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-5);max-width:56ch}
.team-split__aside h3{font-size:var(--fs-h2);margin:0}
.team-split__aside p{margin:0}
.team-split__logos{display:flex;align-items:center;gap:var(--space-6)}
.team-split__logos img{height:40px;width:auto}
.team-split__clip{height:30px;display:block;overflow:hidden}
.team-split__clip img{height:112px;width:auto;display:block;margin:-41px 0;mix-blend-mode:multiply}
.team-split__divider{width:1px;height:32px;background:var(--border-subtle)}

/* extended platform teams (RFG + Bluemonte) */
.people-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-7) var(--space-6)}
.person__photo{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%;border-radius:var(--radius-image);margin-bottom:var(--space-5)}
image-slot.person__photo{height:auto}
.person h3{font-size:var(--fs-h4);margin-bottom:6px}
.person__role{font:var(--fw-semibold) var(--fs-eyebrow)/1.4 var(--font-sans);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-accent);margin-bottom:var(--space-3)}
.person p{margin:0;font-size:var(--fs-body-sm)}
@media (max-width:1080px){.people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.team-split{grid-template-columns:1fr;gap:var(--space-8)}}
@media (max-width:560px){.people-grid{grid-template-columns:1fr}}

/* ---------- accordion / faq ---------- */
.faq{max-width:900px;border-top:var(--border-hairline) solid var(--border-subtle)}
.faq__item{border-bottom:var(--border-hairline) solid var(--border-subtle)}
.faq__item>summary{list-style:none;cursor:pointer;display:flex;gap:var(--space-4);align-items:center;justify-content:space-between;padding:var(--space-5) 0;font:var(--fw-semibold) var(--fs-h4)/1.4 var(--font-serif);color:var(--text-heading);transition:var(--transition-control)}
.faq__item>summary::-webkit-details-marker{display:none}
.faq__item>summary:hover{color:var(--gold-700)}
.faq__item[open]>summary{color:var(--olive-700)}
.faq__item>summary::after{content:"";flex:0 0 auto;width:14px;height:14px;margin-top:-4px;border-right:var(--border-rule) solid var(--owp-gold);border-bottom:var(--border-rule) solid var(--owp-gold);transform:rotate(45deg);transition:transform var(--dur-base) var(--ease-out)}
.faq__item[open]>summary::after{transform:rotate(225deg);margin-top:6px}
.faq__answer{padding-bottom:var(--space-5)}
.faq__answer p{max-width:70ch}
.faq__answer p:last-child{margin-bottom:0}


/* ---------- forms ---------- */
.form{display:grid;gap:var(--space-5)}
.field{display:grid;gap:8px}
.field label{font:var(--fw-medium) var(--fs-body-sm)/1.3 var(--font-sans);color:var(--neutral-700)}
.field input,.field textarea,.field select{font:var(--type-body);font-size:var(--fs-body-sm);color:var(--neutral-800);background:var(--surface-page);border:var(--border-hairline) solid var(--border-default);border-radius:var(--radius-xs);padding:12px 14px;width:100%;transition:var(--transition-control)}
.field textarea{min-height:132px;resize:vertical}
.field input:focus,.field textarea:focus{border-color:var(--olive-700);box-shadow:var(--shadow-focus);outline:none}
.field__hint{font:var(--fw-regular) var(--fs-caption)/1.5 var(--font-sans);color:var(--text-muted)}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}
.contact-list{list-style:none;margin:0 0 var(--space-6);padding:0;display:grid;gap:var(--space-5)}
.contact-list dt{font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-accent);margin-bottom:4px}
.contact-list dd{margin:0;font:var(--fw-medium) var(--fs-lead)/1.4 var(--font-sans);color:var(--neutral-800)}
.contact-list dd a{text-decoration:none}
.map-frame{aspect-ratio:16/7;border:var(--border-hairline) solid var(--border-subtle);border-radius:var(--radius-image);background:var(--surface-subtle);display:grid;place-items:center;text-align:center;padding:var(--space-6)}

/* ---------- footer ---------- */
.site-footer{background:var(--surface-dark);color:var(--text-inverse);padding-block:var(--space-9) var(--space-7)}
.site-footer a{color:var(--text-inverse);text-decoration:none}
.site-footer a:hover{color:var(--gold-300)}
.site-footer__top{display:grid;grid-template-columns:1.4fr 1fr 1.2fr;gap:var(--space-8)}
.site-footer__logo img{height:52px;width:auto;margin-bottom:var(--space-5)}
.site-footer__tag{font:var(--fw-regular) var(--fs-h4)/1.4 var(--font-serif);color:var(--gold-300);margin-bottom:var(--space-5);max-width:22ch}
.footer-head{font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--gold-300);margin-bottom:var(--space-4)}
.footer-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3);font-size:var(--fs-body-sm)}
.footer-contact{font-size:var(--fs-body-sm);line-height:var(--lh-body);color:var(--text-inverse-muted)}
.footer-contact a{color:var(--text-inverse)}
.footer-addr{display:block;margin-top:var(--space-4);font-size:var(--fs-body-sm);line-height:var(--lh-body);color:var(--text-inverse-muted)}
.social{display:flex;gap:var(--space-4);margin-top:var(--space-5)}
.social a{width:36px;height:36px;border:var(--border-hairline) solid var(--border-inverse);border-radius:var(--radius-xs);display:grid;place-items:center;font:var(--fw-semibold) var(--fs-caption)/1 var(--font-sans)}
.social a:hover{border-color:var(--gold-300)}
.site-footer__legal{margin-top:var(--space-8);padding-top:var(--space-6);border-top:var(--border-hairline) solid var(--border-inverse)}
.legal{font:var(--fw-regular) var(--fs-legal)/1.7 var(--font-sans);color:rgba(255,255,255,.78);max-width:none;margin-bottom:var(--space-4)}
.legal-links{display:flex;flex-wrap:wrap;gap:var(--space-4);list-style:none;margin:0 0 var(--space-5);padding:0;font-size:var(--fs-legal)}
.copyright{font:var(--fw-regular) var(--fs-legal)/1.6 var(--font-sans);color:rgba(255,255,255,.6);margin:0}

/* ---------- CTA band ---------- */
.cta-band{background:var(--surface-pewter);padding-block:var(--space-10);text-align:center}
.cta-band h2{max-width:26ch;margin-inline:auto}
.cta-band p{max-width:60ch;margin-inline:auto;margin-bottom:var(--space-6);font:var(--type-lead)}
.cta-band .owp-rule{margin:0 auto var(--space-5)}

/* =========================================================================
   v2 SWEEP — airier rhythm, de-carded sections, editorial layouts.
   Replaces the block-grid patterns carried over from earlier builds.
   ========================================================================= */

:root{--section-y:var(--space-11);--section-y-tight:var(--space-10)}

/* scroll reveal (calm: fade + 8px, honours reduced motion) */
.js [data-reveal]{opacity:0;transform:translateY(8px);transition:opacity var(--dur-reveal,700ms) var(--ease-out),transform var(--dur-reveal,700ms) var(--ease-out)}
.js [data-reveal].is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js [data-reveal]{opacity:1;transform:none;transition:none}}

/* header: consolidated nav, transparent on landing, solid on scroll, full-width mega panel */
.site-header{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom-color:transparent;transition:background var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out)}
.site-header__inner{padding:var(--space-5) var(--gutter);display:flex;align-items:center;gap:var(--space-7);flex-wrap:nowrap;transition:padding var(--dur-base) var(--ease-out)}
/* the two lockups are stacked in one grid cell and crossfaded, so the swap
   can't hard-cut or jump the header's width mid-transition */
.site-header__logo{flex:0 0 auto;line-height:0;display:grid;grid-template-areas:"logo"}
.site-header__logo img{grid-area:logo;height:48px;width:auto;transition:height var(--dur-base) var(--ease-out),opacity var(--dur-base) var(--ease-out)}
.site-header__logo .logo--light{opacity:1}
.site-header__logo .logo--dark{opacity:0}
.site-nav{margin-left:auto;display:flex;align-self:stretch;align-items:stretch;gap:var(--space-7);flex-wrap:nowrap}
.site-header .site-nav__link{transition:color var(--dur-base) var(--ease-out)}
.site-header .site-nav__link{display:inline-flex;align-items:center;gap:10px;font:var(--fw-medium) var(--fs-body-sm)/1 var(--font-sans);color:var(--text-inverse);background:none;border:0;padding:0;white-space:nowrap;cursor:pointer;text-decoration:none;transition:var(--transition-control)}
.site-header .site-nav__link--plain::after{display:none}
.site-header .site-nav__link:not(.site-nav__link--plain)::after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform var(--dur-base) var(--ease-out)}
.nav-item:hover>.site-nav__link,.nav-item:focus-within>.site-nav__link,.nav-item.is-open>.site-nav__link{color:var(--gold-300)}
.nav-item:hover>.site-nav__link::after,.nav-item:focus-within>.site-nav__link::after,.nav-item.is-open>.site-nav__link::after{transform:rotate(225deg) translateY(-2px)}
.site-header .site-nav__link[data-current="true"]{color:var(--text-inverse)}
.site-header__cta{flex:0 0 auto}
.site-header .btn--sm{background:var(--owp-gold);color:var(--olive-900,#0f3520);border:0}
.site-header .btn--sm:hover{background:var(--gold-700);color:var(--text-inverse)}

/* mega panel */
/* nav items extend into the header's vertical padding so the pointer never
   leaves the hover target while travelling down into the panel */
.site-header{--nav-pad:var(--space-5)}
.site-header.is-stuck{--nav-pad:var(--space-3)}
.nav-item{position:static;display:flex;align-items:center;padding-block:var(--nav-pad);margin-block:calc(-1 * var(--nav-pad));transition:padding var(--dur-base) var(--ease-out),margin var(--dur-base) var(--ease-out)}
.nav-item--mega::after,.nav-item--login::after{content:"";position:absolute;display:none}
.mega{position:absolute;left:0;right:0;top:100%;background:var(--surface-pale-olive);border-top:var(--border-hairline) solid var(--border-subtle);box-shadow:var(--shadow-md);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out),visibility var(--dur-base)}
.nav-item--mega:hover .mega,.nav-item--mega:focus-within .mega,.nav-item--mega.is-open .mega{opacity:1;visibility:visible;transform:none}
.mega__inner{max-width:var(--container-max);margin-inline:auto;padding:var(--space-9) var(--gutter);display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(280px,340px);gap:var(--space-8)}
.mega__col{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4)}
.mega__label{font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--olive-700);margin-bottom:var(--space-2)}
.mega__col a{font:var(--fw-regular) var(--fs-body)/1.35 var(--font-sans);color:var(--text-body);text-decoration:none;max-width:26ch;transition:var(--transition-control)}
.mega__col a:hover{color:var(--olive-700)}
.mega__feature{display:flex;flex-direction:column;background:var(--surface-dark);padding:var(--space-7);text-decoration:none;border-radius:var(--radius-xs)}
.mega__feature-label{font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--gold-300);margin-bottom:var(--space-5)}
.mega__feature h3{font:var(--fw-regular) var(--fs-h4)/1.25 var(--font-serif);color:var(--text-inverse);margin:0 0 var(--space-3)}
.mega__feature p{font-size:var(--fs-body-sm);color:var(--text-inverse-muted);margin:0 0 var(--space-6)}
.mega__contact{display:none;margin-top:var(--space-6);align-self:flex-start}
@media (max-width:1040px){.mega__contact{display:inline-flex}}
.mega__feature-cue{margin-top:auto;font:var(--type-button);letter-spacing:var(--ls-button);text-transform:uppercase;color:var(--text-inverse);transition:var(--transition-control)}
.mega__feature:hover .mega__feature-cue{color:var(--gold-300)}

/* small login dropdown */
.nav-item--login{position:relative}
.nav-menu{position:absolute;top:100%;right:0;min-width:250px;padding:var(--space-3) 0;background:var(--surface-page);border:var(--border-hairline) solid var(--border-subtle);border-radius:var(--radius-xs);box-shadow:var(--shadow-md);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out),visibility var(--dur-base);z-index:5}
.nav-item--login:hover .nav-menu,.nav-item--login:focus-within .nav-menu,.nav-item--login.is-open .nav-menu{opacity:1;visibility:visible;transform:none}
.nav-menu a{display:block;padding:var(--space-3) var(--space-5);font:var(--fw-regular) var(--fs-body-sm)/1.35 var(--font-sans);color:var(--neutral-700);text-decoration:none}
.nav-menu a:hover{background:var(--olive-100);color:var(--olive-700)}
.nav-menu__note{margin:var(--space-2) var(--space-5) 0;padding-top:var(--space-3);border-top:var(--border-hairline) solid var(--border-subtle);font-size:var(--fs-caption);line-height:1.45;color:var(--text-muted)}

/* scrolled state */
.site-header.is-stuck{background:var(--overlay-glass);backdrop-filter:var(--overlay-blur);-webkit-backdrop-filter:var(--overlay-blur);border-bottom-color:var(--border-subtle)}
.site-header.is-stuck .site-header__inner{padding-block:var(--space-3)}
.site-header.is-stuck .site-header__logo img{height:36px}
.site-header.is-stuck .logo--light{opacity:0}
.site-header.is-stuck .logo--dark{opacity:1}
.site-header.is-stuck .site-nav__link{color:var(--neutral-700)}
.site-header.is-stuck .nav-item:hover>.site-nav__link,.site-header.is-stuck .nav-item:focus-within>.site-nav__link,.site-header.is-stuck .site-nav__link[data-current="true"]{color:var(--olive-700)}

@media (max-width:1080px){.mega__inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-7)}.mega__feature{grid-column:span 2}.mega{max-height:76vh;overflow-y:auto}}
@media (max-width:820px){.site-header__inner{gap:var(--space-5)}.site-nav{gap:var(--space-5)}.site-header__cta{display:none}.mega__inner{grid-template-columns:1fr;padding-block:var(--space-7)}.mega__feature{grid-column:auto}.mega{max-height:70vh;overflow-y:auto}}

/* hero: taller, quieter, type sits low; no eyebrow crowding */
.hero__inner{min-height:76vh;display:flex;align-items:flex-end;padding:var(--space-11) var(--gutter) var(--space-10)}
.hero--interior .hero__inner{min-height:52vh;padding-block:var(--space-10) var(--space-9)}
.hero__body{max-width:800px}
.hero h1{font-size:clamp(2.9rem,5.1vw,4.5rem);letter-spacing:var(--ls-display);max-width:17ch;margin-bottom:var(--space-5)}
.hero--interior h1{font-size:clamp(2.25rem,3.4vw,3.1rem);max-width:22ch}
.hero p{max-width:48ch;margin-bottom:var(--space-7)}
.hero .owp-eyebrow{margin-bottom:var(--space-5);opacity:.9}

/* statement — one oversized serif line in a field of white */
.statement{padding-block:var(--space-11)}
.statement__inner{max-width:var(--container-max);margin-inline:auto;padding-inline:var(--gutter);display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:var(--space-10);align-items:end}
.statement__text{font:var(--fw-light) clamp(1.55rem,2.7vw,2.5rem)/1.3 var(--font-serif);letter-spacing:var(--ls-display);color:var(--text-heading);margin:0;max-width:30ch;text-wrap:pretty}
.statement__text em{font-style:normal;color:var(--gold-700)}
.statement__aside{max-width:38ch}
.statement__aside p{color:var(--text-muted);margin-bottom:var(--space-5)}
.statement__aside p:last-child{margin-bottom:0}

/* value props — borderless, no icon tiles, air instead of boxes */
.props{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-10) var(--space-9)}
.prop>img{width:56px;height:56px;display:block}
.prop__rule{width:56px;height:var(--border-rule);background:var(--owp-gold);border:0;margin:var(--space-5) 0}
.prop h3{font:var(--fw-regular) var(--fs-h4)/1.3 var(--font-serif);margin-bottom:var(--space-3)}
.prop p{color:var(--text-muted);margin:0;max-width:34ch}

/* editorial two-column: sticky heading, hairline-divided rows */
.editorial{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:var(--space-9) var(--space-10)}
.editorial__head{align-self:start;position:sticky;top:104px}
.editorial__head h2{margin-bottom:var(--space-4)}
.editorial__head p{color:var(--text-muted);max-width:34ch}
.editorial__head .owp-rule{margin:0 0 var(--space-5)}
.rows{display:grid}
.row{display:grid;grid-template-columns:auto 1fr;gap:var(--space-6);align-items:start;padding-block:var(--space-7);border-top:var(--border-hairline) solid var(--border-subtle)}
.row:last-child{border-bottom:var(--border-hairline) solid var(--border-subtle)}
.row--plain{grid-template-columns:1fr}
.row__num{font:var(--fw-regular) var(--fs-h3)/1 var(--font-serif);color:var(--gold-600);min-width:2.2ch}
.row__icon{width:48px;height:48px;margin-top:2px}
.row h3{font:var(--fw-regular) var(--fs-h3)/1.25 var(--font-serif);margin-bottom:var(--space-3)}
.row__hook{font:var(--fw-medium) var(--fs-body-sm)/1.4 var(--font-sans);color:var(--gold-700);margin-bottom:var(--space-2)}
.row p{margin:0;color:var(--text-muted);max-width:62ch}
.row p+p{margin-top:var(--space-3)}
.section--dark .row{border-color:var(--border-inverse)}
.section--dark .row__num{color:var(--gold-300)}
.section--dark .row p{color:var(--text-inverse-muted)}
.section--dark .row__hook{color:var(--gold-300)}

/* feature: asymmetric image + text, no 50/50 slab */
.feature{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--space-10);align-items:center}
.feature+.feature{margin-top:var(--space-11)}
.feature--reverse .feature__media{order:2}
.feature__media img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:50% 40%;border-radius:var(--radius-image)}
.feature__body h2,.feature__body h3{font:var(--fw-regular) var(--fs-h2)/var(--lh-heading) var(--font-serif);letter-spacing:var(--ls-display);margin-bottom:var(--space-4)}
.feature__body p{color:var(--text-muted);max-width:46ch}
.feature__body p:last-of-type{margin-bottom:0}
.feature__hook{font:var(--fw-medium) var(--fs-body-sm)/1.4 var(--font-sans);color:var(--gold-700);margin-bottom:var(--space-3)}

/* portrait intro — tall single image, text given room */
.split{gap:var(--space-11)}
.split__media img{max-width:460px;box-shadow:none}

/* cards: flatter, roomier, no float */
.card{box-shadow:none;padding:var(--space-8)}
a.card:hover,.card--link:hover{box-shadow:var(--shadow-sm)}
.team-card{box-shadow:none}

/* credentials: hairline rows, no coloured left borders */
.cred-list{gap:0}
.cred-list>div{padding-block:var(--space-5);border-top:var(--border-hairline) solid var(--border-subtle)}
.cred-list>div:last-child{border-bottom:var(--border-hairline) solid var(--border-subtle)}
.cred-list dt{font:var(--fw-regular) var(--fs-h4)/1.3 var(--font-serif)}

/* partnership band: full-bleed dark olive, one row */
.trust{background:var(--surface-dark);border:0;padding:0}
.trust__inner{display:block;max-width:var(--container-max);margin-inline:auto;padding:var(--space-8) var(--gutter)}
.trust__plate{display:flex;align-items:center;justify-content:center;gap:clamp(24px,4vw,56px);flex-wrap:nowrap}
.trust__label{font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-inverse);white-space:nowrap}
.trust__logo{width:auto;height:66px;display:block}
.trust__divider{width:var(--border-hairline);align-self:stretch;min-height:72px;background:var(--border-inverse)}
.trust__clip{display:block}
.trust__clip img{width:auto;height:38px;display:block}
@media (max-width:820px){.trust__plate{flex-direction:column;gap:var(--space-6)}.trust__divider{width:64px;min-height:0;height:var(--border-hairline);align-self:center}.trust__label{white-space:normal;text-align:center}.trust__logo{height:56px}.trust__clip img{height:36px}}

/* CTA: white, oversized serif, minimal furniture */
.cta-band{background:var(--surface-page);border-top:var(--border-hairline) solid var(--border-subtle);padding-block:var(--space-11);text-align:left}
.cta-band .owp-container{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);column-gap:var(--space-9);row-gap:var(--space-6);align-items:end}
.cta-band .owp-rule{display:none}
.cta-band h2{grid-column:1;grid-row:1;font-size:clamp(2rem,3.3vw,3rem);letter-spacing:var(--ls-display);max-width:24ch;margin:0}
.cta-band p{grid-column:1;grid-row:2;margin:0;max-width:52ch}
.cta-band .btn{grid-column:2;grid-row:1/span 2;justify-self:start;align-self:end}
@media (max-width:1080px){.cta-band .owp-container{grid-template-columns:1fr;row-gap:var(--space-5)}.cta-band h2,.cta-band p,.cta-band .btn{grid-column:1;grid-row:auto}}

/* section heads breathe */
.section-head{margin-bottom:var(--space-9)}
.section-head h2{letter-spacing:var(--ls-display)}

@media (max-width:1080px){
.props{grid-template-columns:1fr;gap:var(--space-8)}
.editorial,.feature,.statement__inner{grid-template-columns:1fr;gap:var(--space-7)}
.editorial__head{position:static}
.feature--reverse .feature__media{order:0}
.prop p,.editorial__head p,.statement__text{max-width:none}
}

.btn{white-space:nowrap}
.site-nav__link,.login>summary{white-space:nowrap}

/* alternating page bands: white and a very pale olive */
:root{--surface-pale-olive:#f2f6f3}
.section--subtle,.section--pewter{background:var(--surface-pale-olive)}
.cta-band{background:var(--surface-pale-olive);border-top:0}
.section--subtle .card,.section--subtle .accordion,.trust .card{background:var(--surface-page)}

/* C.H.I.R.P. values: open list, oversized gold initials, no boxes */
.chirp-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-6)}
.chirp-row{display:block;padding-top:var(--space-5);border-top:var(--border-hairline) solid var(--border-inverse);text-align:center}
.chirp-row__letter{display:block;margin-bottom:var(--space-3);min-width:0}
.chirp-row__letter{font:var(--fw-regular) clamp(2.75rem,4vw,3.75rem)/.85 var(--font-serif);color:var(--owp-gold);min-width:1.2ch;text-align:center}
.chirp-row h3{font:var(--fw-regular) var(--fs-h4)/1.25 var(--font-serif);color:var(--text-inverse);margin:0 0 var(--space-2)}
.chirp-row p{color:var(--text-inverse-muted);margin:0;max-width:40ch;margin-inline:auto}
@media (max-width:1100px){.chirp-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.chirp-list{grid-template-columns:1fr}}

/* photographic clickable modules */
.photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6)}
.photo-grid--3{grid-template-columns:repeat(3,1fr)}
.photo-card{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;min-height:400px;padding:var(--space-7);text-decoration:none;color:var(--text-inverse);border-radius:var(--radius-image);overflow:hidden;background:var(--surface-dark);transition:transform var(--dur-base) var(--ease-out)}
.photo-card--sm{min-height:260px;padding:var(--space-6)}
.photo-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%;z-index:-2}
.photo-card::after{content:"";position:absolute;inset:0;background-image:var(--scrim-dark);background-color:color-mix(in srgb,var(--olive-900) 26%,transparent);z-index:-1;transition:opacity var(--dur-base) var(--ease-out)}
.photo-card:hover{transform:translateY(-2px)}
.photo-card:hover::after{opacity:.88}
.photo-card__eyebrow{font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--gold-300);margin-bottom:var(--space-3)}
.photo-card h3{font:var(--fw-regular) var(--fs-h3)/1.25 var(--font-serif);color:var(--text-inverse);margin:0 0 var(--space-3);max-width:22ch}
.photo-card--sm h3{font-size:var(--fs-h4);margin-bottom:var(--space-2)}
.photo-card p{color:rgba(255,255,255,.86);margin:0 0 var(--space-5);max-width:38ch;font-size:var(--fs-body-sm)}
.photo-card__cue{display:inline-flex;align-items:center;gap:8px;font:var(--type-button);letter-spacing:var(--ls-button);text-transform:uppercase;color:var(--text-inverse);padding-bottom:3px;border-bottom:var(--border-rule) solid transparent;transition:var(--transition-control)}
.photo-card:hover .photo-card__cue{color:var(--gold-300);border-bottom-color:var(--owp-gold)}
.photo-card:focus-visible{outline:var(--border-rule) solid var(--owp-gold);outline-offset:2px}
@media (max-width:1080px){.photo-grid,.photo-grid--3{grid-template-columns:1fr}.photo-card{min-height:320px}}

/* full-bleed photographic quote band */
.photo-band{position:relative;isolation:isolate;min-height:520px;display:flex;align-items:flex-end;overflow:hidden}
.photo-band>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%;z-index:-2}
.photo-band::after{content:"";position:absolute;inset:0;background-image:var(--scrim-dark);z-index:-1}
.photo-band__inner{max-width:var(--container-max);margin-inline:auto;width:100%;padding:var(--space-10) var(--gutter)}
.photo-band blockquote{margin:0;max-width:26ch;font:var(--fw-light) clamp(1.7rem,3vw,2.6rem)/1.25 var(--font-serif);letter-spacing:var(--ls-display);color:var(--text-inverse)}
.photo-band cite{display:block;margin-top:var(--space-5);font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;font-style:normal;color:var(--gold-300)}
@media (max-width:720px){.photo-band{min-height:420px}}
.photo-tile{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;min-height:300px;padding:var(--space-6);border-radius:var(--radius-image);overflow:hidden}
.photo-tile>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%;z-index:-2}
.photo-tile::after{content:"";position:absolute;inset:0;background-image:var(--scrim-dark);z-index:-1}
.photo-tile h3{font:var(--fw-regular) var(--fs-h4)/1.25 var(--font-serif);color:var(--text-inverse);margin:0 0 var(--space-2)}
.photo-tile p{color:rgba(255,255,255,.86);margin:0;font-size:var(--fs-body-sm);max-width:32ch}

/* single-advisor team grid shouldn't stretch to three columns */
.team-grid{grid-template-columns:repeat(auto-fill,minmax(260px,340px));gap:var(--space-7)}



/* ---------- responsive ---------- */
@media (max-width:1080px){
.grid-4,.steps{grid-template-columns:repeat(2,1fr)}
.site-footer__top{grid-template-columns:1fr 1fr}
}
@media (max-width:1080px){
.split,.service,.grid-3,.grid-2,.team-grid,.form__row{grid-template-columns:1fr;gap:var(--space-7)}
.split--reverse .split__media,.service--reverse .service__media{order:0}
.hero__inner{padding-block:var(--space-9)}


}
@media (max-width:620px){
.grid-4,.steps,.site-footer__top{grid-template-columns:1fr}
.section{padding-block:var(--space-9)}
.hero h1{font-size:var(--fs-h1)}
}

/* hero sits under the transparent header */
.hero{margin-top:calc(-1 * var(--header-h,120px))}
.hero .hero__inner{padding-top:calc(var(--space-10) + var(--header-h,120px))}
.hero--interior .hero__inner{padding-top:calc(var(--space-9) + var(--header-h,120px))}

/* hero crops: taller interior band + per-photo focal points so faces are never cut */
.hero--interior .hero__inner{min-height:64vh}
.hero__media[src$="stock-couple-suburban-street.jpg"]{object-position:50% 56%}
.hero__media[src$="stock-professionals-collab.jpg"]{object-position:50% 58%}
.hero__media[src$="stock-grandparents-baby.jpg"]{object-position:50% 54%}
.hero__media[src$="stock-couple-laughing.jpg"]{object-position:46% 66%}
.hero__media[src$="stock-friends-coastal-sunset.jpg"]{object-position:50% 40%}
.hero__media[src$="stock-women-friends.jpg"]{object-position:50% 34%}
.hero__media[src$="stock-grandfather-grandkids.jpg"]{object-position:50% 24%}
.hero__media[src$="stock-multigen-dinner-dusk.jpg"]{object-position:50% 24%}
.hero__media[src$="stock-multigen-dinner-sunset.jpg"]{object-position:50% 26%}

/* light studio hero: subject right, type on the open left side */
.hero--light .hero__media{object-position:66% 18%}
.hero--light::after{background:linear-gradient(100deg,rgba(11,26,16,.88) 0%,rgba(11,26,16,.72) 34%,rgba(11,26,16,.28) 58%,rgba(11,26,16,.06) 78%)}
@media (max-width:820px){.hero--light .hero__media{object-position:72% 14%}.hero--light::after{background:linear-gradient(180deg,rgba(11,26,16,.5) 0%,rgba(11,26,16,.86) 72%)}}

/* founder hero: hold the image nearer its native scale so it stays crisp */
.hero--light .hero__inner{min-height:0}
.hero--light{max-height:none}
.hero--light .hero__media{object-position:64% 20%}
@media (min-width:1500px){.hero--light .hero__media{object-position:64% 14%}}

/* ---------- photo zoom (1.03 on hover/focus) ---------- */
.photo-card,.photo-tile{overflow:hidden}
.photo-card>img,.photo-tile>img,.feature__media img,.split__media img,.person__frame img{transition:transform var(--dur-slow,240ms) var(--ease-out);will-change:transform}
.photo-card:hover>img,.photo-card:focus-visible>img,.photo-tile:hover>img{transform:scale(1.03)}
.feature__media,.person__frame{overflow:hidden;border-radius:var(--radius-image)}
.feature__media:hover img{transform:scale(1.03)}
.split__media{max-width:460px;margin-inline:auto;overflow:hidden;border-radius:var(--radius-image)}
.split__media img{max-width:100%;margin-inline:0}
.split__media:hover img{transform:scale(1.03)}
.person__frame{display:block;margin-bottom:var(--space-5)}
.person__frame img,.person__frame .person__photo{margin-bottom:0}
.person:hover .person__frame img{transform:scale(1.03)}
@media (prefers-reduced-motion:reduce){.photo-card>img,.photo-tile>img,.feature__media img,.split__media img,.person__frame img{transition:none}.photo-card:hover>img,.photo-tile:hover>img,.feature__media:hover img,.split__media:hover img,.person:hover .person__frame img{transform:none}}


/* =========================================================================
   MOBILE / RESPONSIVE PASS — mobile-first normalisation, 320px -> desktop.
   No visual identity, copy, imagery or desktop composition changes.
   Breakpoints are content-driven: 379 / 479 / 639 / 899 / 1080.
   ========================================================================= */

/* --- container gutters + section rhythm ------------------------------- */
@media (max-width:767px){:root{--gutter:20px}}
@media (max-width:479px){:root{--gutter:16px}}
@media (max-width:899px){:root{--section-y:var(--space-9);--section-y-tight:var(--space-8)}}
@media (max-width:479px){:root{--section-y:var(--space-8);--section-y-tight:var(--space-7)}}
@media (max-width:899px){.section{padding-block:var(--section-y)}.statement{padding-block:var(--section-y)}.cta-band{padding-block:var(--section-y)}.feature+.feature{margin-top:var(--space-9)}.section-head{margin-bottom:var(--space-7)}}

/* --- long strings ----------------------------------------------------- */
h1,h2,h3,.statement__text,.photo-card h3{overflow-wrap:break-word}
.footer-contact a,.contact-list dd a,.footer-addr,.legal-links a{overflow-wrap:anywhere}
.legal,.faq__answer p,.prose p{overflow-wrap:break-word}

/* --- touch targets ---------------------------------------------------- */
.btn{min-height:44px}
@media (max-width:899px){
.btn--sm{min-height:44px;padding-inline:20px}
.footer-list a,.legal-links a{display:inline-flex;align-items:center;min-height:44px}
.social a{width:44px;height:44px}
.field input,.field select,.field textarea{font-size:16px}
}
@media (max-width:479px){
.btn{white-space:normal;text-align:center;padding:13px 20px;line-height:1.25}
.btn--lg{padding:15px 22px;font-size:var(--fs-body-sm)}
}

/* --- header: logo + menu trigger only below 900px --------------------- */
.nav-toggle{display:none}
@media (max-width:899px){
.site-header__inner{position:relative;gap:var(--space-4);padding-inline:var(--gutter)}
.site-header__cta{display:none}
.site-header__logo img{height:42px}
.site-header.is-stuck .site-header__logo img{height:34px}
.js .nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-left:auto;padding:0;background:none;border:0;cursor:pointer;color:var(--text-inverse);border-radius:var(--radius-xs)}
.site-header.is-stuck .nav-toggle{color:var(--neutral-800)}
.nav-toggle__bars,.nav-toggle__bars::before,.nav-toggle__bars::after{display:block;width:24px;height:2px;background:currentColor;transition:transform var(--dur-base) var(--ease-out),opacity var(--dur-base) var(--ease-out)}
.nav-toggle__bars{position:relative}
.nav-toggle__bars::before,.nav-toggle__bars::after{content:"";position:absolute;left:0}
.nav-toggle__bars::before{top:-7px}
.nav-toggle__bars::after{top:7px}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars{background:transparent}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before{transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after{transform:translateY(-7px) rotate(-45deg)}
}
@media (max-width:379px){.site-header__logo img{height:36px}}

/* --- mobile navigation drawer (JS enhanced; no-JS falls back below) --- */
@media (max-width:899px){
.js .site-nav{position:absolute;top:100%;left:0;right:0;margin-left:0;display:block;align-self:auto;background:var(--surface-page);border-top:var(--border-hairline) solid var(--border-subtle);box-shadow:var(--shadow-md);padding:var(--space-3) var(--gutter) calc(var(--space-7) + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - var(--header-h,72px));overflow-y:auto;overscroll-behavior:contain;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out),visibility var(--dur-base);z-index:40}
.js .site-nav.is-open{opacity:1;visibility:visible;transform:none}
.js .site-nav .nav-item{display:block;padding-block:0;margin-block:0;border-bottom:var(--border-hairline) solid var(--border-subtle)}
.js .site-nav .nav-item:last-of-type{border-bottom:0}
.js .site-header .site-nav__link{display:flex;width:100%;min-height:52px;align-items:center;justify-content:space-between;color:var(--neutral-800);font-size:var(--fs-body);white-space:normal;text-align:left}
.js .site-header .site-nav__link:hover,.js .site-header .nav-item:hover>.site-nav__link,.js .site-header .nav-item.is-open>.site-nav__link{color:var(--olive-700)}
.js .site-nav .nav-item--mega>.site-nav__link{display:none}
.js .site-nav .mega{position:static;opacity:1;visibility:visible;transform:none;max-height:none;overflow:visible;background:transparent;border-top:0;box-shadow:none}
.js .site-nav .mega__inner{display:block;max-width:none;padding:0}
.js .site-nav .mega__col{display:block;padding-block:var(--space-4)}
.js .site-nav .mega__col+.mega__col{border-top:var(--border-hairline) solid var(--border-subtle)}
.js .site-nav .mega__label{display:block;margin-bottom:var(--space-1)}
.js .site-nav .mega__col a{display:flex;align-items:center;min-height:44px;max-width:none;font-size:var(--fs-body-sm)}
.js .site-nav .mega__feature{display:none}
.js .site-nav .mega__contact{display:flex;width:100%;margin-top:var(--space-4)}
.js .site-nav .nav-item--login .nav-menu{display:none}
.js .site-nav .nav-item--login.is-open .nav-menu{display:block;position:static;opacity:1;visibility:visible;transform:none;min-width:0;padding:0 0 var(--space-4);border:0;box-shadow:none;background:transparent}
.js .site-nav .nav-menu a{padding-inline:0;min-height:44px;display:flex;align-items:center}
.js .site-nav .nav-menu__note{margin-inline:0}
.js .site-nav .site-header__cta{display:flex;width:100%;margin-top:var(--space-5)}
.nav-scrim{position:fixed;inset:0;background:rgba(11,26,16,.5);opacity:0;visibility:hidden;transition:opacity var(--dur-base) var(--ease-out),visibility var(--dur-base);z-index:25;border:0}
.nav-scrim.is-open{opacity:1;visibility:visible}
html.nav-open,html.nav-open body{overflow:hidden}
/* no-JS fallback: nav stays in flow, wraps, mega list shown open */
html:not(.js) .site-nav{flex-wrap:wrap;gap:var(--space-4);row-gap:var(--space-3)}
html:not(.js) .mega{position:static;opacity:1;visibility:visible;transform:none;max-height:none;box-shadow:none}
html:not(.js) .mega__inner{grid-template-columns:1fr;padding-block:var(--space-5)}
html:not(.js) .mega__feature{display:none}
}
@media (max-width:899px) and (prefers-reduced-motion:reduce){.js .site-nav,.nav-scrim{transition:none}}

/* --- heroes: content-driven height on mobile -------------------------- */
@media (max-width:899px){
.hero__inner{min-height:56svh;padding-block:calc(var(--space-9) + var(--header-h,72px)) var(--space-9)}
.hero--interior .hero__inner{min-height:auto;padding-block:calc(var(--space-8) + var(--header-h,72px)) var(--space-8)}
.hero--light .hero__inner{min-height:auto}
.hero h1{font-size:clamp(2rem,7.2vw,3rem);max-width:none}
.hero--interior h1{font-size:clamp(1.75rem,6.2vw,2.5rem);max-width:none}
.hero p{max-width:none;margin-bottom:var(--space-6)}
.hero .owp-eyebrow{margin-bottom:var(--space-4)}
}
@media (max-width:899px) and (orientation:landscape){.hero__inner{min-height:auto}}
@media (max-width:379px){.hero h1{font-size:1.8rem}.hero--interior h1{font-size:1.6rem}}

/* --- photographic modules -------------------------------------------- */
@media (max-width:899px){
.photo-card{min-height:300px;padding:var(--space-6)}
.photo-card--sm{min-height:240px}
.photo-card h3,.photo-card p{max-width:none}
.photo-band{min-height:auto}
.photo-band__inner{padding-block:var(--space-9)}
.photo-band blockquote{max-width:none}
.photo-tile{min-height:250px}
}
@media (max-width:479px){.photo-card{min-height:264px;padding:var(--space-5)}.photo-card--sm{min-height:220px}}

/* --- cards, rows, splits, trust, footer ------------------------------- */
@media (max-width:899px){
.card{padding:var(--space-6)}
.split,.service,.feature,.editorial,.statement__inner,.grid-2,.grid-3,.grid-4,.steps,.props,.form__row,.team-grid,.site-footer__top{grid-template-columns:1fr}
.split,.service,.feature,.editorial{gap:var(--space-7)}
.site-footer__top{gap:var(--space-7)}
.site-footer__tag{max-width:none}
.split__media,.split__media img{max-width:none}
.row{gap:var(--space-4)}
.row p{max-width:none}
.team-split__logos{flex-wrap:wrap;gap:var(--space-5)}
.chirp__body{padding-left:0}
.cta-band h2,.cta-band p{max-width:none}
.map-frame{aspect-ratio:4/3;padding:var(--space-3)}
}
@media (max-width:479px){
.trust__logo{height:48px}
.trust__clip img{height:30px}
.map-frame{aspect-ratio:1/1}
.icon-tile{width:64px;height:64px}
.icon-tile img{width:38px;height:38px}
.legal-links{gap:var(--space-2) var(--space-4)}
}
@media (max-width:379px){.card{padding:var(--space-5)}.section-head h2{font-size:1.75rem}}

/* --- 320px min-content safety ----------------------------------------- */
.contact-card{padding:var(--space-8)}
@media (max-width:899px){
.split,.service,.feature,.editorial,.statement__inner,.grid-2,.grid-3,.grid-4,.steps,.props,.form__row,.site-footer__top{grid-template-columns:minmax(0,1fr)}
.js .site-header .site-nav__link::after{margin-right:3px}
}
@media (max-width:479px){.contact-card{padding:var(--space-5)}}
