/* ============================================================
   Ward BOYL — About page styles
   New components only. Inherits tokens.css + style.css.
   ============================================================ */

/* ---- Reveal animation -------------------------------------- */
[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity 700ms var(--ease-out),transform 700ms var(--ease-out);}
[data-reveal].is-in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none;transition:none;}}

/* ---- Light section eyebrow/title variants ------------------ */
.section-eyebrow--light{color:var(--ward-citrus);}
.section-title--light{color:var(--ward-cloud);}

/* ============================================================
   1. HERO
   ============================================================ */
.ab-hero{position:relative;min-height:56svh;display:flex;align-items:flex-start;overflow:hidden;}
.ab-hero__bg{position:absolute;inset:0;z-index:0;}
.ab-hero__poster{width:100%;height:100%;object-fit:cover;}
.ab-hero__scrim{position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(var(--ward-emerald-rgb),.55) 0%,rgba(var(--ward-emerald-rgb),.38) 38%,rgba(var(--ward-emerald-rgb),.78) 100%);}
.ab-hero__inner{position:relative;z-index:1;padding-block:var(--space-24) var(--space-64);color:var(--ward-cloud);}
.ab-hero__eyebrow{display:inline-block;font-family:'Open Sans',sans-serif;font-size:var(--fs-12);font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--ward-citrus);margin-block-end:var(--space-16);}
.ab-hero__title{font-family:'Montserrat',sans-serif;font-weight:700;line-height:1.06;color:var(--ward-cloud);font-size:clamp(2.1rem,6vw,4rem);margin:0 0 var(--space-24);letter-spacing:-.01em;}
.ab-hero__title-accent{color:var(--ward-citrus);}
.ab-hero__lede{max-width:46ch;font-family:'Open Sans',sans-serif;font-size:var(--fs-18);line-height:1.7;color:rgba(255,255,255,.92);margin:0 0 var(--space-32);}
.ab-hero__credential{display:inline-flex;align-items:center;gap:var(--space-16);padding:var(--space-16) var(--space-24);margin-block-end:var(--space-32);border:1px solid rgba(255,255,255,.28);border-radius:14px;background:rgba(var(--ward-emerald-rgb),.34);backdrop-filter:blur(6px);}
.ab-hero__wg{height:56px;width:auto;flex:0 0 auto;}
.ab-hero__credential-text{font-family:'Open Sans',sans-serif;font-size:var(--fs-14);line-height:1.4;color:rgba(255,255,255,.95);max-width:24ch;}
.ab-hero__credential-text strong{color:var(--ward-citrus);font-weight:700;}
.ab-hero__ctas{display:flex;flex-wrap:wrap;gap:var(--space-16);}
@media (max-width:640px){
  .ab-hero{min-height:auto;}
  .ab-hero__credential{flex-direction:row;}
  .ab-hero__ctas .btn{flex:1 1 auto;}
}

/* ============================================================
   2. STAT BAR
   ============================================================ */
.ab-stats{background:var(--ward-emerald);color:var(--ward-cloud);padding-block:var(--space-48);}
.ab-stats__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-32);text-align:center;}
.ab-stat{display:flex;flex-direction:column;gap:var(--space-8);}
.ab-stat__num{font-family:'Montserrat',sans-serif;font-weight:700;font-size:clamp(2rem,4vw,3rem);line-height:1;color:var(--ward-cloud);}
.ab-stat__plus{color:var(--ward-citrus);font-size:.5em;font-weight:700;margin-inline-start:2px;vertical-align:super;}
.ab-stat__label{font-family:'Open Sans',sans-serif;font-size:var(--fs-14);color:rgba(255,255,255,.78);max-width:18ch;margin-inline:auto;}
@media (max-width:760px){
  .ab-stats__grid{grid-template-columns:1fr 1fr;gap:var(--space-32) var(--space-24);}
}

/* ============================================================
   3. STORY
   ============================================================ */
.ab-story{padding-block:var(--space-96);background:var(--ward-bg-primary);}
.ab-story__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-64);align-items:center;}
.ab-story__media{position:relative;border-radius:16px;overflow:hidden;box-shadow:0 30px 60px -28px rgba(var(--ward-emerald-rgb),.5);}
.ab-story__media img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;}
.ab-story__media-tag{position:absolute;left:var(--space-24);bottom:var(--space-24);font-family:'Montserrat',sans-serif;font-weight:700;font-size:var(--fs-24);color:var(--ward-cloud);text-shadow:0 2px 18px rgba(var(--ward-emerald-rgb),.8);}
.ab-story__body p{font-family:'Open Sans',sans-serif;font-size:var(--fs-18);line-height:1.75;color:var(--ward-text-body);margin:0 0 var(--space-24);}
.ab-story__signature{font-family:'Montserrat',sans-serif !important;font-weight:500;font-size:var(--fs-18);color:var(--ward-emerald) !important;border-inline-start:3px solid var(--ward-citrus);padding-inline-start:var(--space-16);margin-block-start:var(--space-32) !important;}
@media (max-width:860px){
  .ab-story{padding-block:var(--space-64);}
  .ab-story__grid{grid-template-columns:1fr;gap:var(--space-32);}
  .ab-story__media img{aspect-ratio:3/2;}
}

/* ============================================================
   4. PILLARS
   ============================================================ */
.ab-pillars{padding-block:var(--space-96);background:var(--ward-bg-secondary);}
.ab-pillars__head{max-width:54ch;margin-block-end:var(--space-64);}
.ab-pillars__lede{font-family:'Open Sans',sans-serif;font-size:var(--fs-18);line-height:1.7;color:var(--ward-text-body);margin-block-start:var(--space-16);}
.ab-pillars__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-32);}
.ab-pillar{background:var(--ward-cloud);border-radius:14px;padding:var(--space-32);box-shadow:0 18px 40px -30px rgba(var(--ward-emerald-rgb),.55);transition:transform 240ms var(--ease-out),box-shadow 240ms var(--ease-out);}
.ab-pillar:hover{transform:translateY(-4px);box-shadow:0 26px 50px -28px rgba(var(--ward-emerald-rgb),.55);}
/* ---- Pillar icons: large, free-standing, animated ---------- */
.ab-pillar__icon{width:80px;height:80px;display:grid;place-items:center;margin-block-end:var(--space-24);position:relative;}
.ab-pillar__icon::after{content:"";position:absolute;left:0;bottom:-12px;height:3px;width:38px;border-radius:2px;background:var(--ward-citrus);transform:scaleX(0);transform-origin:left;transition:transform 600ms var(--ease-out) 500ms;}
.ab-pillar.is-in .ab-pillar__icon::after{transform:scaleX(1);}
.ab-pillar__icon svg{width:80px;height:80px;overflow:visible;transition:transform 300ms var(--ease-out);}
.ab-pillar:hover .ab-pillar__icon svg{transform:translateY(-3px) scale(1.05);}

/* draw-in: strokes trace themselves on reveal */
.ab-pillar__icon svg path,.ab-pillar__icon svg rect{stroke-dasharray:420;stroke-dashoffset:420;}
.ab-pillar.is-in .ab-pillar__icon svg path,.ab-pillar.is-in .ab-pillar__icon svg rect{animation:ab-draw 1150ms var(--ease-out) forwards;}
.ab-pillar:nth-child(2).is-in .ab-pillar__icon svg path,.ab-pillar:nth-child(2).is-in .ab-pillar__icon svg rect{animation-delay:130ms;}
.ab-pillar:nth-child(3).is-in .ab-pillar__icon svg path,.ab-pillar:nth-child(3).is-in .ab-pillar__icon svg rect{animation-delay:260ms;}
@keyframes ab-draw{to{stroke-dashoffset:0;}}

/* citrus accent keeps a gentle glow after drawing — feels alive */
.ab-pillar.is-in .ab-ic-citrus{animation:ab-draw 1150ms var(--ease-out) forwards, ab-glow 2.8s ease-in-out 1300ms infinite;}
@keyframes ab-glow{0%,100%{opacity:1;}50%{opacity:.45;}}

/* citrus marker pops, then pings */
.ab-pillar__icon svg circle{opacity:0;transform:scale(0);transform-box:fill-box;transform-origin:center;}
.ab-pillar.is-in .ab-pillar__icon svg circle{animation:ab-pop 500ms var(--ease-out) 950ms forwards, ab-ping 2.8s ease-in-out 1600ms infinite;}
@keyframes ab-pop{to{opacity:1;transform:scale(1);}}
@keyframes ab-ping{0%,100%{transform:scale(1);}50%{transform:scale(1.45);}}

@media (prefers-reduced-motion:reduce){
  .ab-pillar__icon svg path,.ab-pillar__icon svg rect{stroke-dashoffset:0;animation:none;}
  .ab-ic-citrus{animation:none;opacity:1;}
  .ab-pillar__icon svg circle{opacity:1;transform:none;animation:none;}
  .ab-pillar__icon::after{transform:scaleX(1);transition:none;}
}
.ab-pillar__title{font-family:'Montserrat',sans-serif;font-weight:700;font-size:var(--fs-24);color:var(--ward-emerald);margin:0 0 var(--space-8);}
.ab-pillar p{font-family:'Open Sans',sans-serif;font-size:var(--fs-16);line-height:1.7;color:var(--ward-text-body);margin:0;}
.ab-pillar[data-reveal]{transition-delay:0ms;}
.ab-pillar:nth-child(2)[data-reveal]{transition-delay:90ms;}
.ab-pillar:nth-child(3)[data-reveal]{transition-delay:180ms;}
@media (max-width:860px){
  .ab-pillars{padding-block:var(--space-64);}
  .ab-pillars__grid{grid-template-columns:1fr;gap:var(--space-24);}
}

/* ============================================================
   5. CRAFT RAIL
   ============================================================ */
.ab-craft{padding-block:var(--space-96) var(--space-64);background:var(--ward-bg-primary);}
.ab-craft__head{margin-block-end:var(--space-48);}
.ab-craft__rail{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-16);padding-inline:max(24px,calc((100% - 1200px)/2));}
.ab-craft__frame{position:relative;margin:0;border-radius:12px;overflow:hidden;aspect-ratio:3/4;}
.ab-craft__frame img{width:100%;height:100%;object-fit:cover;transition:transform 600ms var(--ease-out);}
.ab-craft__frame:hover img{transform:scale(1.05);}
.ab-craft__frame figcaption{position:absolute;left:0;right:0;bottom:0;padding:var(--space-24) var(--space-16) var(--space-16);font-family:'Montserrat',sans-serif;font-weight:500;font-size:var(--fs-16);color:var(--ward-cloud);background:linear-gradient(180deg,transparent,rgba(var(--ward-emerald-rgb),.85));}
.ab-craft__frame:nth-child(2)[data-reveal]{transition-delay:80ms;}
.ab-craft__frame:nth-child(3)[data-reveal]{transition-delay:160ms;}
.ab-craft__frame:nth-child(4)[data-reveal]{transition-delay:240ms;}
@media (max-width:860px){
  .ab-craft{padding-block:var(--space-64) var(--space-48);}
  .ab-craft__rail{grid-template-columns:1fr 1fr;gap:var(--space-8);}
}

/* ============================================================
   6. AWARD BAND
   ============================================================ */
.ab-award{background:var(--ward-emerald);color:var(--ward-cloud);padding-block:var(--space-96);position:relative;overflow:hidden;}
.ab-award::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 85% 10%,rgba(var(--ward-citrus-rgb),.16),transparent 60%);pointer-events:none;}
.ab-award__grid{position:relative;display:grid;grid-template-columns:1.3fr .9fr;gap:var(--space-64);align-items:center;}
.ab-award__body p{font-family:'Open Sans',sans-serif;font-size:var(--fs-18);line-height:1.75;color:rgba(255,255,255,.9);margin:0 0 var(--space-24);}
.ab-award__badges{display:flex;flex-wrap:wrap;gap:var(--space-32);align-items:center;justify-content:center;}
.ab-award__badge{background:rgba(255,255,255,.96);border-radius:16px;padding:var(--space-24);display:grid;place-items:center;box-shadow:0 20px 50px -24px rgba(0,0,0,.6);}
.ab-award__badge img{max-width:180px;max-height:140px;width:auto;height:auto;display:block;}
.ab-award__badge--wg{background:var(--ward-emerald);border:1px solid rgba(255,255,255,.25);}
.ab-award__badge--wg img{max-width:200px;}
@media (max-width:860px){
  .ab-award{padding-block:var(--space-64);}
  .ab-award__grid{grid-template-columns:1fr;gap:var(--space-48);}
}

/* ============================================================
   7. TREES
   ============================================================ */
.ab-trees{padding-block:var(--space-96);background:var(--ward-bg-primary);}
.ab-trees__grid{display:grid;grid-template-columns:1.2fr .8fr;gap:var(--space-64);align-items:center;}
.ab-trees__body p{font-family:'Open Sans',sans-serif;font-size:var(--fs-18);line-height:1.75;color:var(--ward-text-body);margin:var(--space-16) 0 0;}
.ab-trees__count{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:rgba(var(--ward-sage-rgb),.28);border-radius:20px;padding:var(--space-48);}
.ab-trees__big{font-family:'Montserrat',sans-serif;font-weight:700;font-size:clamp(4rem,12vw,8rem);line-height:1;color:var(--ward-emerald);}
.ab-trees__small{font-family:'Open Sans',sans-serif;font-size:var(--fs-16);color:var(--ward-text-body);margin-block-start:var(--space-8);}
@media (max-width:860px){
  .ab-trees{padding-block:var(--space-64);}
  .ab-trees__grid{grid-template-columns:1fr;gap:var(--space-32);}
}

/* ============================================================
   8. CONTACT spacing on About
   ============================================================ */
.ab-contact{padding-block:var(--space-96);}
@media (max-width:860px){.ab-contact{padding-block:var(--space-64);}}

/* ============================================================
   v2 ELEVATIONS — quote, timeline, recognition wall, polish
   ============================================================ */

/* ---- Hero scroll cue ---------------------------------------- */
.ab-hero__scroll{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);width:24px;height:38px;border:2px solid rgba(255,255,255,.55);border-radius:14px;z-index:2;}
.ab-hero__scroll span{position:absolute;left:50%;top:7px;width:3px;height:7px;border-radius:2px;background:var(--ward-citrus);transform:translateX(-50%);animation:ab-scroll 1.8s var(--ease-out) infinite;}
@keyframes ab-scroll{0%{opacity:0;transform:translate(-50%,0);}30%{opacity:1;}60%{opacity:1;transform:translate(-50%,12px);}100%{opacity:0;transform:translate(-50%,12px);}}
@media (prefers-reduced-motion:reduce){.ab-hero__scroll span{animation:none;}}

/* ---- Stat word variant -------------------------------------- */
.ab-stat__num--word{display:inline-flex;flex-direction:column;align-items:center;line-height:1;}
.ab-stat__num--word .ab-stat__plus{vertical-align:baseline;font-size:.34em;margin:6px 0 0;letter-spacing:.14em;text-transform:uppercase;}

/* ============================================================
   PULL-QUOTE
   ============================================================ */
.ab-quote{position:relative;background:var(--ward-emerald);color:var(--ward-cloud);padding-block:var(--space-96);overflow:hidden;}
.ab-quote::before{content:"\201C";position:absolute;top:-.18em;left:max(24px,calc((100% - 1200px)/2));font-family:'Montserrat',serif;font-weight:700;font-size:clamp(9rem,22vw,16rem);line-height:1;color:rgba(var(--ward-citrus-rgb),.16);pointer-events:none;}
.ab-quote .container{position:relative;z-index:1;}
.ab-quote__text{margin:0;max-width:22ch;font-family:'Montserrat',sans-serif;font-weight:300;font-size:clamp(1.6rem,4.4vw,3rem);line-height:1.22;color:var(--ward-cloud);letter-spacing:-.01em;}
.ab-quote__text em{font-style:normal;color:var(--ward-citrus);font-weight:500;}
.ab-quote__attr{margin:var(--space-24) 0 0;font-family:'Open Sans',sans-serif;font-size:var(--fs-14);letter-spacing:.16em;text-transform:uppercase;color:var(--ward-newday);}
@media (max-width:860px){.ab-quote{padding-block:var(--space-64);}}

/* ============================================================
   TIMELINE
   ============================================================ */
.ab-timeline{background:var(--ward-emerald);color:var(--ward-cloud);padding-block:var(--space-96);position:relative;}
.ab-timeline__head{margin-block-end:var(--space-64);}
.ab-timeline__track{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-32);counter-reset:tl;}
.ab-tl{position:relative;padding:var(--space-32);border-radius:14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);transition:transform 240ms var(--ease-out),background 240ms var(--ease-out),border-color 240ms var(--ease-out);}
.ab-tl::before{content:"";position:absolute;left:var(--space-32);top:0;width:42px;height:3px;background:var(--ward-newday);border-radius:2px;transform:translateY(-1px);}
.ab-tl:hover{transform:translateY(-4px);background:rgba(255,255,255,.08);border-color:rgba(var(--ward-newday-rgb),.5);}
.ab-tl__year{display:inline-block;font-family:'Montserrat',sans-serif;font-weight:700;font-size:var(--fs-32);color:var(--ward-newday);margin-block:var(--space-16) var(--space-8);line-height:1;}
.ab-tl__title{font-family:'Montserrat',sans-serif;font-weight:700;font-size:var(--fs-18);color:var(--ward-cloud);margin:0 0 var(--space-8);}
.ab-tl__body{font-family:'Open Sans',sans-serif;font-size:var(--fs-14);line-height:1.65;color:rgba(255,255,255,.78);margin:0;}
.ab-tl--gold{background:rgba(var(--ward-citrus-rgb),.12);border-color:rgba(var(--ward-citrus-rgb),.45);}
.ab-tl--gold::before{background:var(--ward-citrus);}
.ab-tl--gold .ab-tl__year{color:var(--ward-citrus);}
.ab-tl:nth-child(2)[data-reveal]{transition-delay:70ms;}
.ab-tl:nth-child(3)[data-reveal]{transition-delay:140ms;}
.ab-tl:nth-child(4)[data-reveal]{transition-delay:210ms;}
.ab-tl:nth-child(5)[data-reveal]{transition-delay:280ms;}
.ab-tl:nth-child(6)[data-reveal]{transition-delay:350ms;}
@media (max-width:860px){
  .ab-timeline{padding-block:var(--space-64);}
  .ab-timeline__track{grid-template-columns:1fr;gap:var(--space-16);}
  .ab-tl:nth-child(n)[data-reveal]{transition-delay:0ms;}
}

/* ============================================================
   RECOGNITION WALL (inside award band)
   ============================================================ */
.ab-award__wall{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:var(--space-24);}
.ab-cred{border-radius:16px;display:grid;place-items:center;text-align:center;padding:var(--space-32);min-height:150px;background:rgba(255,255,255,.96);box-shadow:0 20px 50px -28px rgba(0,0,0,.6);}
.ab-cred img{max-width:220px;max-height:130px;width:auto;height:auto;display:block;}
.ab-cred--wg{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.22);}
.ab-cred--wg img{max-width:240px;}

/* ---- Trees leaf + count ------------------------------------- */
.ab-trees__leaf{width:48px;height:48px;color:var(--ward-emerald);margin-block-end:var(--space-8);}

/* ---- whole-company About additions ---- */
@keyframes kbDrift{from{transform:scale(1.04) translate3d(0,0,0);}to{transform:scale(1.14) translate3d(-2%,-1.5%,0);}}
.ab-story__media img{animation:kbDrift 22s ease-in-out infinite alternate;}
.ab-craft__frame img{animation:kbDrift 26s ease-in-out infinite alternate;}
@media (prefers-reduced-motion: reduce){.ab-story__media img,.ab-craft__frame img{animation:none;}}
.ab-belong{background:var(--ward-sage);padding-block:var(--space-96);}
.ab-belong__inner{max-width:760px;margin-inline:auto;text-align:center;}
.ab-belong__inner .section-eyebrow{color:var(--ward-emerald);}
.ab-belong__inner p{font-family:'Open Sans',sans-serif;font-size:var(--fs-18);line-height:1.8;color:var(--ward-text-body,#2b3a38);margin:var(--space-24) auto 0;max-width:62ch;}
.ab-craft__detail{font-family:'Open Sans',sans-serif;font-size:var(--fs-18);line-height:1.75;color:var(--ward-text-body,#555);margin:var(--space-24) 0 0;max-width:64ch;}
.ab-team{padding-block:var(--space-96);}
.ab-team__head{max-width:840px;margin-block-end:var(--space-64);}
.ab-team__lede{font-family:'Open Sans',sans-serif;font-size:var(--fs-18);line-height:1.75;color:var(--ward-text-body,#555);margin:var(--space-24) 0 0;}
.ab-team__pillars{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-48);}
.ab-team__pillars li{padding-block-start:var(--space-24);border-block-start:3px solid var(--ward-citrus);}
.ab-team__pillars h3{font-family:'Montserrat',sans-serif;font-weight:700;font-size:1.25rem;color:var(--ward-emerald);margin:0 0 var(--space-8);}
.ab-team__pillars p{font-family:'Open Sans',sans-serif;font-size:1rem;line-height:1.7;color:var(--ward-text-body,#555);margin:0;}
@media(max-width:760px){.ab-team__pillars{grid-template-columns:1fr;gap:var(--space-32);}}
.contact__journey{font-family:'Open Sans',sans-serif;font-size:var(--fs-18);line-height:1.75;color:var(--ward-text-body,#555);margin:var(--space-24) 0 0;}
.contact__journey-link{color:var(--ward-emerald);font-weight:700;text-decoration:none;border-block-end:2px solid var(--ward-citrus);padding-block-end:2px;white-space:nowrap;}
.contact__journey-link:hover{opacity:.8;}

/* ===== About polish pass (hero/ghost/story/badges/rail) ===== */

/* Hero: zoom the drone scene out + close the desktop gap */
.ab-hero{ min-height:70svh; }
.ab-hero__inner{ padding-block:var(--space-64); }
.ab-hero__poster{ object-position:center 45%; }
@media (min-width:900px){
  .ab-hero{ min-height:78vh; }
  .ab-hero__inner{ padding-block:var(--space-64); }
}

/* EXPLORE THE PLANS — legible ghost button on the dark hero (was inheriting purple) */
.ab-hero__ctas a.btn--ghost,
.ab-hero__ctas a.btn--ghost:link,
.ab-hero__ctas a.btn--ghost:visited{ color:var(--ward-cloud); background:transparent; border:1.5px solid rgba(255,255,255,.65); }
.ab-hero__ctas a.btn--ghost:hover{ background:rgba(255,255,255,.14); border-color:#fff; }

/* Story image: photo is ~4:3, so show the whole house */
.ab-story__media img{ aspect-ratio:4/3; object-position:center; }
@media (min-width:900px){ .ab-story__media img{ aspect-ratio:4/3; } }

/* Welcome-home banner pinned to the bottom of the story card */
.ab-story__media .welcome-home__banner.ab-story__welcome{ position:absolute; left:0; right:0; bottom:0; margin:0; }

/* Award badges: smaller, uniform, lighter — less boxy */
.ab-award__wall{ grid-template-columns:1fr 1fr; gap:var(--space-20); }
.ab-cred{ padding:var(--space-20) var(--space-24); min-height:0; border-radius:14px; box-shadow:0 12px 34px -24px rgba(0,0,0,.55); }
.ab-cred img{ max-height:58px; max-width:170px; }
.ab-cred--wg img{ max-height:58px; max-width:180px; }

/* Craft rail: show the whole house under construction; lets Ken Burns read */
.ab-craft__frame{ aspect-ratio:4/3; }
.ab-craft__frame img{ object-position:center; }

/* ===== About v5 — cinematic hero (mirrors home), welcome bar, solo award logos ===== */

/* HERO desktop: full-bleed scene, content anchored bottom-left (no dead space) */
.ab-hero{ position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; padding:0; background:#0b1110; }
.ab-hero__bg{ position:absolute; inset:0; z-index:0; }
.ab-hero__poster{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.ab-hero__scrim{ position:absolute; inset:0; pointer-events:none; background:
  linear-gradient(to top, rgba(9,63,60,0.90) 0%, rgba(9,63,60,0.55) 26%, rgba(9,63,60,0.14) 52%, rgba(9,63,60,0) 74%),
  linear-gradient(to right, rgba(9,63,60,0.58) 0%, rgba(9,63,60,0.14) 38%, rgba(9,63,60,0) 66%); }
.ab-hero__inner{ position:relative; z-index:1; display:block; width:min(100% - 48px, 1440px); max-width:1440px; margin-inline:auto; padding:0 0 clamp(48px,8vh,104px); color:var(--ward-cloud); }
.ab-hero__lede{ max-width:52ch; }

/* HERO mobile: image renders as a natural band, headline melts into it, content continues on solid panel */
@media (max-width:768px){
  .ab-hero{ min-height:auto; display:block; position:relative; background:#0b1110; }
  .ab-hero__bg{ position:relative; inset:auto; width:100%; height:auto; display:block; background:#0b1110; }
  .ab-hero__poster{ position:relative; inset:auto; display:block; width:100%; height:auto; object-fit:fill; }
  .ab-hero__scrim{ display:block; position:absolute; left:0; right:0; bottom:0; top:auto; height:62%;
    background:linear-gradient(to bottom, rgba(11,17,16,0) 0%, rgba(11,17,16,0.55) 55%, #0b1110 100%); z-index:1; }
  .ab-hero__inner{ position:relative; z-index:2; width:auto; max-width:none; margin-top:-26vw; padding:0 18px 44px; }
  .ab-hero__lede{ max-width:none; }
  .ab-hero__scroll{ display:none; }
}

/* Welcome-home bar: small emerald bar, logo left + label right */
.ab-story__media .ab-welcome-bar{
  position:absolute; left:0; right:0; bottom:0; top:auto; margin:0;
  display:flex; align-items:center; gap:12px; padding:14px 18px;
  background:linear-gradient(180deg, rgba(var(--ward-emerald-rgb),0) 0%, rgba(var(--ward-emerald-rgb),.92) 62%); }
.ab-story__media .ab-welcome-bar .ab-welcome-bar__logo{ height:36px; width:auto; max-width:130px; flex:0 0 auto; margin:0; display:block; }
.ab-story__media .ab-welcome-bar .ab-welcome-bar__label{ font-family:'Montserrat',sans-serif; font-weight:700; font-size:1.05rem; line-height:1; color:var(--ward-cloud); margin:0; }

/* Award logos: solo white marks on emerald, no boxes, staggered fade-in + hover lift */
.ab-award__wall{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:var(--space-48); grid-template-columns:none; }
.ab-cred, .ab-cred--wg{ background:none; border:none; box-shadow:none; padding:0; min-height:0; border-radius:0; opacity:0; transform:translateY(14px); animation:abBadgeIn .6s var(--ease-out) forwards; }
.ab-cred:nth-child(1){ animation-delay:.05s; }
.ab-cred:nth-child(2){ animation-delay:.15s; }
.ab-cred:nth-child(3){ animation-delay:.25s; }
.ab-cred:nth-child(4){ animation-delay:.35s; }
@keyframes abBadgeIn{ to{ opacity:1; transform:none; } }
.ab-cred img, .ab-cred--wg img{ max-height:64px; max-width:160px; width:auto; display:block;
  filter:brightness(0) invert(1); opacity:.85; transition:opacity .35s var(--ease-out), transform .35s var(--ease-out); }
.ab-cred:hover img, .ab-cred--wg:hover img{ opacity:1; transform:translateY(-4px) scale(1.04); }
@media (max-width:560px){ .ab-award__wall{ gap:var(--space-32); } .ab-cred img,.ab-cred--wg img{ max-height:52px; } }
@media (prefers-reduced-motion:reduce){ .ab-cred,.ab-cred--wg{ animation:none; opacity:1; transform:none; } }

/* ===== About v6 — welcome bar (match home), award panel (real logos), Ken Burns, cards, desktop hero ===== */

/* Desktop hero: tighten the band, crop the excess sky (mobile untouched) */
@media (min-width:769px){
  .ab-hero{ min-height:80vh; }
  .ab-hero__poster{ object-position:center 64%; }
}

/* Welcome-home bar — mirror the home page exactly (logo whitened via filter) */
.ab-story__media .ab-welcome-bar{
  position:absolute; inset:auto 0 0 0; top:auto; margin:0;
  display:flex; align-items:center; gap:18px; padding:28px 32px;
  background:linear-gradient(to top, rgba(var(--ward-emerald-rgb),.92) 0%, rgba(var(--ward-emerald-rgb),.72) 55%, rgba(var(--ward-emerald-rgb),0) 100%); }
.ab-story__media .ab-welcome-bar .ab-welcome-bar__logo{ height:52px; width:auto; max-width:none; filter:brightness(0) invert(1); flex-shrink:0; margin:0; display:block; }
.ab-story__media .ab-welcome-bar .ab-welcome-bar__label{ font-family:'Montserrat',sans-serif; font-size:clamp(22px,3vw,32px); font-weight:600; letter-spacing:-.01em; line-height:1.05; color:var(--ward-cloud); margin:0; }
@media (max-width:600px){
  .ab-story__media .ab-welcome-bar{ padding:18px 20px; gap:12px; }
  .ab-story__media .ab-welcome-bar .ab-welcome-bar__logo{ height:38px; }
}

/* Award logos — real logos on one clean panel, all four, subtle float + hover lift */
.ab-award__wall{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:clamp(20px,4vw,48px);
  grid-template-columns:none; background:var(--ward-cloud); border-radius:18px;
  padding:clamp(22px,4vw,38px) clamp(20px,4vw,44px); box-shadow:0 30px 60px -30px rgba(0,0,0,.4);
  max-width:940px; margin-inline:auto; }
.ab-cred, .ab-cred--wg{ background:none; border:none; box-shadow:none; padding:0; min-height:0; border-radius:0; opacity:1; transform:none; animation:none; }
.ab-cred img, .ab-cred--wg img{ filter:none; opacity:1; max-height:76px; max-width:168px; width:auto; height:auto; display:block;
  animation:abFloat 5.5s ease-in-out infinite; will-change:transform; }
.ab-cred:nth-child(2) img{ animation-delay:.6s; }
.ab-cred:nth-child(3) img{ animation-delay:1.2s; }
.ab-cred:nth-child(4) img{ animation-delay:1.8s; }
.ab-cred:hover img, .ab-cred--wg:hover img{ animation-play-state:paused; transform:translateY(-5px) scale(1.05); }
@keyframes abFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-6px); } }
@media (max-width:560px){ .ab-award__wall{ gap:22px; padding:22px 18px; } .ab-cred img,.ab-cred--wg img{ max-height:52px; max-width:120px; } }
@media (prefers-reduced-motion:reduce){ .ab-cred img,.ab-cred--wg img{ animation:none; } }

/* Ken Burns: define the drift keyframes that were missing (cards + story photo) */
@keyframes kbDrift{ 0%{ transform:scale(1.05) translate3d(0,0,0); } 100%{ transform:scale(1.16) translate3d(-2%,-1.5%,0); } }
.ab-story__media img{ animation-duration:16s; }
.ab-craft__frame img{ animation-duration:18s; }

/* Build cards on mobile: taller frames + stronger gradient so captions sit at the bottom */
@media (max-width:860px){
  .ab-craft__frame{ aspect-ratio:3/4; }
  .ab-craft__frame figcaption{ font-size:var(--fs-14); padding:var(--space-32) var(--space-12) var(--space-12);
    background:linear-gradient(180deg, transparent 0%, rgba(var(--ward-emerald-rgb),.45) 45%, rgba(var(--ward-emerald-rgb),.92) 100%); }
}

/* ===== About v7 — awards on emerald (no box), bigger captions + welcome bar ===== */

/* Award logos: float on the emerald, no panel, larger, evenly spaced */
.ab-award__wall{ background:none; box-shadow:none; border-radius:0; padding:0; border:none;
  max-width:1080px; margin-inline:auto; gap:clamp(30px,5vw,64px);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; grid-template-columns:none; }
.ab-cred, .ab-cred--wg{ background:none; border:none; box-shadow:none; padding:0; min-height:0; border-radius:0; opacity:1; transform:none; animation:none; }
.ab-cred img, .ab-cred--wg img{ filter:none; opacity:1; max-height:clamp(68px,9vw,96px); max-width:210px; width:auto; height:auto; display:block;
  animation:abFloat 5.5s ease-in-out infinite; will-change:transform; }
.ab-cred:nth-child(2) img{ animation-delay:.6s; }
.ab-cred:nth-child(3) img{ animation-delay:1.2s; filter:brightness(0) invert(1); }
.ab-cred:nth-child(4) img{ animation-delay:1.8s; }
.ab-cred:hover img, .ab-cred--wg:hover img{ animation-play-state:paused; transform:translateY(-6px) scale(1.06); }
@media (max-width:560px){ .ab-award__wall{ gap:30px; } .ab-cred img,.ab-cred--wg img{ max-height:64px; max-width:150px; } }
@media (prefers-reduced-motion:reduce){ .ab-cred img,.ab-cred--wg img{ animation:none; } }

/* Build-card captions: larger, still not overpowering */
.ab-craft__frame figcaption{ font-size:clamp(1.05rem,2.4vw,1.3rem); font-weight:600;
  padding:var(--space-32) var(--space-16) var(--space-16);
  background:linear-gradient(180deg, transparent 0%, rgba(var(--ward-emerald-rgb),.35) 42%, rgba(var(--ward-emerald-rgb),.9) 100%); }
@media (max-width:860px){
  .ab-craft__frame figcaption{ font-size:clamp(1.05rem,3.4vw,1.25rem); padding:var(--space-32) var(--space-12) var(--space-14); }
}

/* Welcome-home bar: a touch bigger (logo + label), still balanced */
.ab-story__media .ab-welcome-bar{ padding:32px 36px; gap:20px; }
.ab-story__media .ab-welcome-bar .ab-welcome-bar__logo{ height:64px; }
.ab-story__media .ab-welcome-bar .ab-welcome-bar__label{ font-size:clamp(26px,3.6vw,40px); }
@media (max-width:600px){
  .ab-story__media .ab-welcome-bar{ padding:22px 24px; gap:14px; }
  .ab-story__media .ab-welcome-bar .ab-welcome-bar__logo{ height:46px; }
  .ab-story__media .ab-welcome-bar .ab-welcome-bar__label{ font-size:clamp(22px,5vw,30px); }
}

/* ===== About v8 — award strip (light full-bleed, all four, flip-in), captions restyle + slide-in ===== */

/* Award logos: full-bleed light recognition strip, real color, explicit height (fixes dimensionless SVG) */
.ab-award__wall{
  width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); max-width:none;
  background:var(--ward-cloud); padding:clamp(40px,6vw,64px) clamp(24px,5vw,64px);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:clamp(36px,7vw,88px);
  border:none; border-radius:0; box-shadow:inset 0 20px 44px -38px rgba(0,0,0,.45); grid-template-columns:none; }
.ab-cred, .ab-cred--wg{ background:none; border:none; box-shadow:none; padding:0; min-height:0; border-radius:0; opacity:1; transform:none; animation:none; }
.ab-cred img, .ab-cred--wg img{ filter:none; opacity:1; height:clamp(66px,8.5vw,92px); width:auto; max-width:210px; display:block; animation:none; }
.ab-cred:nth-child(3) img{ filter:none; }
.ab-cred:hover img, .ab-cred--wg:hover img{ transform:translateY(-5px); transition:transform .3s var(--ease-out); }
@media (max-width:560px){ .ab-award__wall{ gap:32px; padding:36px 20px; } .ab-cred img,.ab-cred--wg img{ height:58px; max-width:150px; } }

/* Build-card captions: restyled (tighter + citrus accent), less basic */
.ab-craft__frame figcaption{ font-family:'Montserrat',sans-serif; font-weight:600; font-size:clamp(1.05rem,2.2vw,1.25rem);
  letter-spacing:-.01em; color:var(--ward-cloud); padding:var(--space-32) var(--space-16) var(--space-20);
  background:linear-gradient(180deg, transparent 0%, rgba(var(--ward-emerald-rgb),.30) 40%, rgba(var(--ward-emerald-rgb),.92) 100%); }
.ab-craft__frame figcaption::before{ content:""; display:block; width:30px; height:3px; border-radius:2px; background:var(--ward-citrus); margin-bottom:12px; }
@media (max-width:860px){ .ab-craft__frame figcaption{ font-size:clamp(1.05rem,3.2vw,1.25rem); padding:var(--space-32) var(--space-12) var(--space-16); } }

/* Scroll-driven flip-in (awards) + slide-in (captions), play once on entry; guarded for support */
@keyframes abFlipIn{ from{ opacity:0; transform:perspective(700px) rotateX(-32deg) translateY(16px); } to{ opacity:1; transform:none; } }
@keyframes abCapIn{ from{ opacity:0; transform:translateY(46%); } to{ opacity:1; transform:none; } }
@supports (animation-timeline: view()){
  .ab-cred img, .ab-cred--wg img{ animation:abFlipIn linear both; animation-timeline:view(); animation-range:entry 0% entry 55%; transform-origin:center bottom; }
  .ab-cred:nth-child(2) img{ animation-range:entry 7% entry 62%; }
  .ab-cred:nth-child(3) img{ animation-range:entry 14% entry 68%; }
  .ab-cred:nth-child(4) img{ animation-range:entry 21% entry 74%; }
  .ab-craft__frame figcaption{ animation:abCapIn linear both; animation-timeline:view(); animation-range:entry 10% entry 64%; }
}
@media (prefers-reduced-motion:reduce){
  .ab-cred img,.ab-cred--wg img{ animation:none; opacity:1; transform:none; }
  .ab-craft__frame figcaption{ animation:none; opacity:1; transform:none; }
}

/* ===== About v9 — award overlap fix, desktop hero band, caption balance, centered credential ===== */

/* Award section: single column so the full-bleed strip drops below the text (no overlap) */
.ab-award__grid{ grid-template-columns:1fr; gap:var(--space-40); align-items:start; }
.ab-award__body{ max-width:760px; }

/* Desktop hero: same natural-aspect band as mobile (full landscape, house small) */
@media (min-width:769px){
  .ab-hero{ min-height:auto; display:block; position:relative; background:#0b1110; padding:0; align-items:initial; }
  .ab-hero__bg{ position:relative; inset:auto; width:100%; height:auto; display:block; background:#0b1110; }
  .ab-hero__poster{ position:relative; inset:auto; display:block; width:100%; height:auto; object-fit:cover; object-position:center; }
  .ab-hero__scrim{ display:block; position:absolute; left:0; right:0; bottom:0; top:auto; height:52%;
    background:linear-gradient(to bottom, rgba(11,17,16,0) 0%, rgba(11,17,16,0.50) 52%, #0b1110 100%); z-index:1; }
  .ab-hero__inner{ position:relative; z-index:2; width:min(100% - 96px, 1280px); max-width:1280px; margin-inline:auto;
    margin-top:-7vw; padding:0 0 clamp(56px,7vh,96px); }
  .ab-hero__lede{ max-width:62ch; }
  .ab-hero__scroll{ display:none; }
}

/* Build-card captions: balanced inset off the left edge */
.ab-craft__frame figcaption{ padding:var(--space-28) var(--space-24) var(--space-20); }
@media (max-width:860px){ .ab-craft__frame figcaption{ padding:var(--space-24) var(--space-20) var(--space-18); } }

/* Credential chip: centered over the two hero buttons on mobile */
@media (max-width:768px){
  .ab-hero__credential{ display:flex; width:fit-content; max-width:100%; margin-inline:auto; }
}

/* ===== About v10 — caption inset (rem-based; v9 used undefined tokens so it never applied) ===== */
.ab-craft__frame figcaption{ padding:1.75rem 1.6rem 1.3rem; box-sizing:border-box; text-indent:0; }
.ab-craft__frame figcaption::before{ margin-left:0; }
@media (max-width:560px){
  .ab-craft__frame figcaption{ padding:1.3rem 1.25rem 1.1rem; font-size:1.02rem; }
}

/* ===== About v11 — interior photos woven into text sections (Ken Burns) ===== */
.ab-weave{ position:relative; margin:var(--space-48) auto var(--space-32); max-width:980px; border-radius:16px; overflow:hidden; box-shadow:0 34px 70px -34px rgba(var(--ward-emerald-rgb),.5); }
.ab-weave img{ display:block; width:100%; height:100%; object-fit:cover; aspect-ratio:3/2; animation:kbDrift 18s ease-in-out infinite alternate; }
@media (prefers-reduced-motion:reduce){ .ab-weave img{ animation:none; } }

/* ABOUT HERO FINAL OVERRIDE */
/* Image stays a natural full-width band (unchanged). Eyebrow + headline overlay the top of the image; lede/credential/CTAs sit below on the dark panel. Last in file = wins. */
.ab-hero{ position:relative; min-height:auto; display:block; padding:0; overflow:hidden; background:#0b1110; align-items:initial; }
.ab-hero__bg{ position:relative; inset:auto; z-index:0; width:100%; height:auto; display:block; }
.ab-hero__poster{ position:relative; inset:auto; width:100%; height:auto; display:block; object-fit:cover; object-position:center; }
.ab-hero__scrim{ position:absolute; left:0; right:0; top:0; bottom:auto; height:72%; display:block; pointer-events:none; z-index:1;
  background:linear-gradient(180deg, rgba(9,63,60,.68) 0%, rgba(9,63,60,.30) 42%, rgba(9,63,60,0) 100%); }
.ab-hero__overlay{ position:absolute; left:0; right:0; top:0; z-index:2; padding:var(--space-32) clamp(18px,5vw,72px) 0; color:var(--ward-cloud); }
.ab-hero__overlay .ab-hero__eyebrow{ color:var(--ward-citrus); }
.ab-hero__overlay .ab-hero__title{ color:var(--ward-cloud); margin:0; }
.ab-hero__inner{ position:relative; z-index:2; display:block; width:auto; max-width:none; margin:0; padding:var(--space-32) clamp(18px,5vw,72px) var(--space-48); background:#0b1110; color:var(--ward-cloud); }
.ab-hero__lede{ max-width:60ch; }
.ab-hero__scroll{ display:none; }
@media (min-width:769px){
  .ab-hero__bg{ max-height:72svh; overflow:hidden; }
  .ab-hero__overlay{ width:min(100% - 96px,1280px); left:50%; right:auto; transform:translateX(-50%); padding-inline:0; }
  .ab-hero__inner{ width:min(100% - 96px,1280px); margin-inline:auto; padding-inline:0; }
}
