/* Eastbound Advisory. One stylesheet for the whole site. */

@font-face{font-family:"Playfair Display";src:url(fonts/playfair-display-latin-wght-normal.woff2) format("woff2");font-weight:400 900;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url(fonts/hanken-grotesk-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap}

:root{
  /* brand colours, exact from the brief */
  --dark:#1F3D2E;--sage:#6E9C7C;--grey:#B4B2A9;--cream:#F4F3EF;--white:#fff;
  --photo-bg:#1F3D2E;                             /* behind the headshots: the site's dark green */
  /* deeper shades of grey and sage for words only: the brand shades are too faint to read on cream */
  --grey-text:#6F6D65;--sage-text:#4A7758;      /* small text, 4.5:1 or better */
  --grey-display:#86847B;--sage-display:#5B8A6B; /* large headings, 3:1 or better */
  --ink:#24302A;--muted:#55605A;--line:#DAD8CF;--error:#8F2D22;
  --on-dark:#F4F3EF;--on-dark-soft:rgba(244,243,239,.84);--line-dark:rgba(244,243,239,.2);
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;
  --sans:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --header-h:100px;--gutter:clamp(20px,4.4vw,72px);--section:clamp(72px,9.5vw,136px);--wrap:1360px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
.is-growth{--svc:var(--grey);--svc-text:var(--grey-text);--svc-display:var(--grey-display);--svc-on:var(--dark)}
.is-transformation{--svc:var(--sage);--svc-text:var(--sage-text);--svc-display:var(--sage-display);--svc-on:#14291F}
.is-performance{--svc:var(--dark);--svc-text:var(--dark);--svc-display:var(--dark);--svc-on:var(--on-dark)}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scrollbar-gutter:stable;scroll-behavior:smooth;background:var(--cream)}
body{margin:0;background:var(--cream);color:var(--ink);font:400 clamp(1rem,.96rem + .2vw,1.125rem)/1.62 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,p,ul,dl,dd,figure{margin:0}
ul{padding:0;list-style:none}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:500;color:var(--dark);line-height:1.14;letter-spacing:-.005em;text-wrap:balance}
:focus-visible{outline:2px solid var(--dark);outline-offset:3px}
.band :focus-visible,.stats :focus-visible,.stay :focus-visible,.site-footer :focus-visible,.hero--services :focus-visible{outline-color:var(--on-dark)}
main{display:block;padding-top:var(--header-h)}
main [id]{scroll-margin-top:calc(var(--header-h) + 16px)}
.wrap{width:100%;max-width:calc(var(--wrap) + var(--gutter)*2);margin-inline:auto;padding-inline:var(--gutter)}
.skip{position:fixed;left:16px;top:-80px;z-index:200;background:var(--dark);color:var(--on-dark);padding:12px 18px;text-decoration:none}
.skip:focus{top:12px}
.i-arrow{width:1.42em;height:1em;flex:none;overflow:visible}
.eyebrow{font-size:.8rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:1.1em}
.t-growth{color:var(--grey-text)}.t-transformation{color:var(--sage-text)}.t-performance{color:var(--dark)}

/* ---------- brand lockup ---------- */
.brand{display:inline-flex;align-items:center;gap:14px;text-decoration:none;color:var(--dark)}
.brand-text{display:block}
.wordmark{display:block;font:500 31px/1.08 var(--serif);white-space:nowrap;letter-spacing:-.005em}
.strap{display:block;font:600 9.72px/1 var(--sans);letter-spacing:.13em;margin-top:7px;white-space:nowrap}
.strap i{font-style:normal;font-weight:400;margin:0 .5em}
.brand-mark,.brand-mark-static{display:block;width:62px;height:62px;flex:none}
.brand-mark svg,.brand-mark-static svg{width:100%;height:100%}
.intro-running .brand-mark{visibility:hidden}
.brand--dark{color:var(--on-dark)}
.brand--dark .t-growth{color:#D2D0C8}.brand--dark .t-transformation{color:#A9C8B3}.brand--dark .t-performance{color:var(--on-dark)}

/* ---------- header ---------- */
.site-header{position:fixed;inset:0 0 auto;z-index:100;background:var(--cream);border-bottom:1px solid transparent;transition:border-color .3s;view-transition-name:site-header}
.is-scrolled .site-header{border-bottom-color:var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:var(--header-h);max-width:calc(var(--wrap) + var(--gutter)*2);margin-inline:auto;padding-inline:var(--gutter)}
.site-nav{display:flex;gap:clamp(18px,2.4vw,38px)}
.site-nav a{position:relative;padding:10px 0;font-size:.97rem;font-weight:500;color:var(--dark);text-decoration:none}
.site-nav a::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1.5px;background:var(--dark);transform:scaleX(0);transform-origin:0 50%;transition:transform .32s var(--ease)}
.site-nav a:hover::after,.site-nav a:focus-visible::after,.site-nav a[aria-current=page]::after{transform:scaleX(1)}
.menu-toggle{display:none;width:44px;height:44px;margin-right:-8px;padding:0;background:none;border:0;cursor:pointer;position:relative}
.menu-toggle span{position:absolute;left:9px;right:9px;height:1.75px;background:var(--dark);transition:transform .3s var(--ease),top .3s var(--ease)}
.menu-toggle span:first-child{top:17px}.menu-toggle span:last-child{top:26px}
.menu-open .menu-toggle span:first-child{top:21.5px;transform:rotate(45deg)}
.menu-open .menu-toggle span:last-child{top:21.5px;transform:rotate(-45deg)}

/* ---------- buttons and links ---------- */
.btn{display:inline-flex;align-items:center;gap:14px;min-height:54px;padding:14px 28px;background:var(--dark);color:var(--on-dark);border:1px solid var(--dark);font-size:.97rem;font-weight:600;letter-spacing:.02em;text-decoration:none;cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.btn .i-arrow{transition:transform .35s var(--ease)}
.btn:hover .i-arrow,.btn:focus-visible .i-arrow{transform:translateX(6px)}
.btn:hover{background:#17301f;border-color:#17301f}
.btn--light{background:var(--on-dark);color:var(--dark);border-color:var(--on-dark)}
.btn--light:hover{background:#fff;border-color:#fff}
.btn[disabled]{opacity:.6;cursor:progress}
.link{display:inline-flex;align-items:center;gap:12px;min-height:44px;font-weight:600;font-size:.97rem;color:var(--dark);text-decoration:none}
.link span{background:linear-gradient(currentColor,currentColor) 0 100%/100% 1.5px no-repeat;padding-bottom:2px;transition:background-size .3s var(--ease)}
.link .i-arrow{transition:transform .35s var(--ease)}
.link:hover .i-arrow,.link:focus-visible .i-arrow{transform:translateX(6px)}
.link--light{color:var(--on-dark)}

/* ---------- heroes ---------- */
.hero{position:relative;display:flex;align-items:center;overflow:hidden;background:#cfd3cb;isolation:isolate}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero-wash{position:absolute;inset:0;z-index:-1}
.hero-inner{padding-block:clamp(56px,8vh,110px)}
.hero-title{max-width:18.6em;font-size:clamp(2.15rem,3.5vw,3.45rem);line-height:1.15}
.hero-text{max-width:39em;margin-top:1.5em}
.hero .btn{margin-top:2.1em}
.hero--home{min-height:min(calc(100svh - var(--header-h)),920px)}
.hero--home .hero-img{object-position:62% 50%;transform-origin:0 62%;transform:scale(1.2)}
.hero--home .hero-wash{background:linear-gradient(90deg,rgba(244,243,239,.9) 0%,rgba(244,243,239,.8) 36%,rgba(244,243,239,.34) 55%,rgba(244,243,239,0) 68%)}
.hero--home .hero-title{max-width:15.6em;color:var(--dark)}
.hero--home .hero-text{max-width:33em;color:#24302a}
.hero--services{min-height:min(calc(82svh - var(--header-h)),720px);background:var(--dark);color:var(--on-dark)}
.hero--services .hero-img{object-position:70% 40%}
.hero--services .hero-wash{background:linear-gradient(90deg,rgba(23,42,32,.92) 0%,rgba(23,42,32,.8) 40%,rgba(23,42,32,.15) 72%)}
.hero--services .hero-title{color:var(--on-dark);max-width:16em}
.hero--services .hero-text{color:var(--on-dark-soft);max-width:40em}
.hero--services .eyebrow{color:#C9D8CE}
/* About and Team: the Services band, shorter because it carries only a title */
.hero--page{min-height:clamp(320px,calc(62svh - var(--header-h)),520px)}
.hero--page .hero-title{font-size:clamp(2.5rem,5vw,4.6rem)}

/* ---------- credibility stats ---------- */
.stats{background:var(--dark);color:var(--on-dark-soft);padding-block:clamp(56px,7vw,96px)}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.stat{padding-inline:clamp(20px,3vw,48px);border-left:1px solid var(--line-dark)}
.stat:first-child{padding-left:0;border-left:0}
.stat:last-child{padding-right:0}
.stat h2{color:var(--on-dark);font-size:clamp(1.9rem,3vw,2.9rem);margin-bottom:.55em}
.stat p{font-size:1rem;line-height:1.58}

/* ---------- full-bleed image bands ---------- */
.band{position:relative;overflow:hidden;isolation:isolate;color:var(--on-dark);background:var(--dark)}
.band-img{position:absolute;inset:-8% 0;width:100%;height:116%;object-fit:cover;z-index:-2}
.band-shade{position:absolute;inset:0;z-index:-1}
.band-inner{padding-block:clamp(88px,12vw,176px)}
.band h2{color:var(--on-dark);font-size:clamp(2rem,3.7vw,3.5rem);max-width:15em}
.band p{color:var(--on-dark-soft)}
.band .btn,.band .link{margin-top:1.9em}
.band--about .band-shade{background:linear-gradient(90deg,rgba(23,42,32,.95) 0%,rgba(23,42,32,.9) 42%,rgba(23,42,32,.28) 72%,rgba(23,42,32,.08) 100%)}
.band--about .band-img{object-position:50% 22%}
.band--about .band-inner>*{max-width:37rem}
.band--about p{margin-top:1.3em}
.band--cta .band-shade{background:rgba(16,30,23,.58)}
.band-inner--centre{display:flex;flex-direction:column;align-items:center;text-align:center}
.band-inner--centre p{margin-top:1em;max-width:36em}

/* ---------- general sections and service cards ---------- */
.section{padding-block:var(--section)}
.section--tight{padding-block:clamp(40px,5vw,72px) var(--section)}
.section-title{font-size:clamp(2rem,3.4vw,3.2rem);margin-bottom:clamp(36px,4.6vw,64px)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,3.6vw,56px)}
.card{display:flex;flex-direction:column}
.card-rule{position:relative;height:22px;margin-bottom:26px;color:var(--svc)}
.card-rule::before{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;background:var(--svc);transform:scaleX(.999);transform-origin:0 50%}
.card-rule .i-arrow{position:absolute;left:0;top:0;width:31px;height:22px;background:var(--cream);padding-right:4px;box-sizing:content-box;transition:left .75s var(--ease)}
.card:hover .card-rule .i-arrow,.card:focus-within .card-rule .i-arrow{left:calc(100% - 35px)}
.card h3{font-size:clamp(1.6rem,2.1vw,2rem);color:var(--svc-display);margin-bottom:.6em}
.card p{flex:1;margin-bottom:1.3em}

/* ---------- plain page heads (About, Team, Resources, Contact) ---------- */
.page-head{position:relative;overflow:hidden;padding-block:clamp(56px,7.5vw,112px) clamp(36px,4.5vw,64px)}
.page-head h1{font-size:clamp(2.5rem,5vw,4.6rem);max-width:15em}
.page-head-inner{display:flex;align-items:center;justify-content:space-between;gap:40px}
.page-head-mark{position:absolute;right:-2vw;top:50%;transform:translateY(-50%);width:clamp(170px,14.5vw,210px);opacity:.15;pointer-events:none}
.page-lede{margin-top:1.15em;max-width:37em;font-size:1.1em}
.page-head--message{min-height:50vh}
.page-head--message .btn{margin-top:2em}
.eyebrow--status{margin:1.3em 0 0;color:var(--sage-text)}

/* ---------- services ---------- */
.svc-index{background:var(--white);border-bottom:1px solid var(--line)}
.svc-index-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.svc-index a{display:flex;align-items:center;gap:14px;min-height:76px;padding:18px clamp(14px,2vw,28px);border-left:1px solid var(--line);color:var(--svc-text);text-decoration:none;font-weight:600;font-size:.98rem}
.svc-index a:first-child{border-left:0;padding-left:0}
.svc-index-name{flex:1}
.svc-index-num{font-family:var(--serif);font-weight:500;font-size:1.1rem}
.svc-index .i-arrow{color:var(--svc);transition:transform .35s var(--ease)}
.svc-index a:hover .i-arrow,.svc-index a:focus-visible .i-arrow{transform:translateX(6px)}
.svc{padding-block:var(--section);border-bottom:1px solid var(--line)}
.svc:last-of-type{border-bottom:0}
.svc-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(36px,6vw,96px);align-items:start}
.svc--flip .svc-media{order:2}
.svc--flip{background:var(--white)}
.svc-media{position:sticky;top:calc(var(--header-h) + 28px);overflow:hidden}
.svc-media img{width:100%;aspect-ratio:4/5;object-fit:cover}
.svc-num{font:500 1.05rem var(--serif);color:var(--svc-text);margin-bottom:.5em}
.svc h2{font-size:clamp(2.2rem,3.6vw,3.4rem);color:var(--svc-display)}
.svc-sub{font:500 clamp(1.25rem,1.7vw,1.55rem)/1.3 var(--serif);color:var(--dark);margin-top:.85em}
.svc-sub + .svc-sub{margin-top:.3em;font-size:clamp(1.1rem,1.4vw,1.28rem);color:var(--muted)}
.svc-text{margin-top:1.35em}
.ticks{margin-top:clamp(24px,3vw,36px);border-top:1px solid var(--line)}
.ticks li{display:flex;align-items:flex-start;gap:14px;padding:13px 0;border-bottom:1px solid var(--line);font-weight:500}
.ticks .i-arrow{color:var(--svc);margin-top:.32em;width:20px;height:14px}
.partners{margin-top:clamp(28px,3.4vw,44px)}
.partners h3{font:600 .8rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
.partners ul{display:flex;flex-wrap:wrap;gap:14px 30px}
.partners a{display:flex;align-items:center;gap:13px;min-height:44px;text-decoration:none;font-weight:600;color:var(--dark)}
.partners a span{background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat;padding-bottom:2px;transition:background-size .3s var(--ease)}
.partners a:hover span,.partners a:focus-visible span{background-size:100% 1.5px}
.partners img{width:56px;height:56px;border-radius:50%;background:var(--photo-bg);box-shadow:0 0 0 1px var(--line)}

/* ---------- team ---------- */
.members{padding-block:clamp(8px,2vw,24px) var(--section)}
.member{display:grid;grid-template-columns:minmax(260px,380px) minmax(0,1fr);gap:clamp(32px,6vw,96px);padding-block:clamp(40px,5.4vw,76px);border-top:1px solid var(--line)}
.member:first-child{border-top:0}  /* the band above already closes the section */
.member-photo{background:var(--photo-bg);border-top:4px solid var(--svc)}
.member-photo img{width:100%}
.member h2{font-size:clamp(1.6rem,2.2vw,2.05rem);margin-top:22px}
.member-title{font-weight:600;color:var(--dark);margin-top:.25em}
.member-facts{margin-top:16px;border-top:1px solid var(--line)}
.member-facts div{display:flex;gap:16px;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.member-facts dt{color:var(--muted)}
.member-facts dd{text-align:right;font-weight:500}
.member-facts a{color:var(--dark);text-underline-offset:3px}
/* service lines: plain text in the service's colour, each a link to it on the Services page (Noor, round 2) */
.service-lines{margin-top:18px}
.service-lines-label{font:600 .72rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.service-lines ul{display:flex;flex-wrap:wrap;gap:0 24px}
.service-lines a{display:inline-flex;align-items:center;gap:9px;min-height:44px;color:var(--svc-text);font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none}
.service-lines a span{background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat;padding-bottom:2px;transition:background-size .3s var(--ease)}
.service-lines a:hover span,.service-lines a:focus-visible span{background-size:100% 1.5px}
.service-lines .i-arrow{width:17px;height:12px;color:var(--svc);transition:transform .3s var(--ease)}
.service-lines a:hover .i-arrow,.service-lines a:focus-visible .i-arrow{transform:translateX(4px)}
.member-bio{max-width:44em;align-self:start;padding-top:2px}
.member-bio>p:first-child{font-size:1.08em;line-height:1.66}
.member-line{margin-top:1.05em;padding-top:1.05em;border-top:1px solid var(--line)}
.member-line strong{font-weight:700;color:var(--dark)}

/* ---------- about ---------- */
.story{padding-bottom:var(--section)}
.story-row{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(20px,5vw,80px);padding-block:clamp(36px,4.8vw,68px);border-top:1px solid var(--line)}
.story-row h2{display:flex;align-items:baseline;gap:14px;font-size:clamp(1.55rem,2.2vw,2.1rem)}
.story-row h2 .i-arrow{color:var(--sage);width:24px;height:17px;transform:translateY(-.08em)}
.story-row p{font:400 clamp(1.22rem,1.75vw,1.6rem)/1.5 var(--serif);color:var(--ink);max-width:33em}
/* Every row has a picture. Purpose, Background, Mission also take one service colour each on the arrow and title (Noor, round 2);
   Story and Values have no service, so they keep the standard dark title and sage arrow */
.story-row--image{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center}
.story-row--flip{grid-template-columns:minmax(0,6fr) minmax(0,5fr)}  /* the picture keeps the same width on either side */
.story-row--flip .story-media{order:2}
.story-media{overflow:hidden}
.story-media img{width:100%;aspect-ratio:4/3;object-fit:cover}
.story-row--image h2{color:var(--svc-display,var(--dark))}
.story-row--image h2 .i-arrow{color:var(--svc,var(--sage))}
.story-body p{margin-top:.8em}

/* ---------- resources ---------- */
.coming{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.coming li{display:flex;flex-direction:column;gap:clamp(36px,5vw,84px);padding:24px clamp(14px,2vw,28px) 34px;border-left:1px solid var(--line);font:500 clamp(1.4rem,2vw,1.9rem)/1.2 var(--serif);color:var(--dark)}
.coming li:first-child{border-left:0;padding-left:0}
.coming .i-arrow{color:var(--sage);width:30px;height:21px}
.stay{background:var(--dark);color:var(--on-dark);padding-block:clamp(56px,7vw,96px)}
.stay-inner{display:flex;align-items:center;justify-content:space-between;gap:32px 64px;flex-wrap:wrap}
.stay h2{color:var(--on-dark);font-size:clamp(2rem,3.4vw,3.2rem)}
.stay-action{flex:0 1 560px;display:flex;justify-content:flex-end}
.stay-form{display:none;width:100%}
.stay-open .stay-form{display:block}
.stay-open [data-stay-open]{display:none}
.stay-row{display:flex;gap:10px}
.stay-row input{flex:1;min-width:0}
.stay-row .btn{flex:none}

/* ---------- contact and forms ---------- */
.page-head--contact{padding-bottom:clamp(24px,3vw,40px)}
.page-head--contact h1{max-width:13.5em}
.contact{padding-block:clamp(24px,3vw,40px) var(--section)}
.contact-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(36px,6vw,96px);align-items:start}
.form-note{font-size:.95rem;color:var(--muted);margin-bottom:22px}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 24px;margin-bottom:30px}
.field--full{grid-column:1/-1}
.field label{display:block;font-size:.92rem;font-weight:600;color:var(--dark);margin-bottom:7px}
.field--dark label{color:var(--on-dark)}
.field input,.field select,.field textarea{display:block;width:100%;min-height:52px;padding:13px 14px;background:#fff;border:1px solid #A9A79E;border-radius:0;color:var(--ink);font-size:1rem;transition:border-color .2s,box-shadow .2s;appearance:none}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%231F3D2E' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:12px 8px;padding-right:40px}
.field textarea{resize:vertical;min-height:150px;line-height:1.5}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--dark);box-shadow:0 0 0 1px var(--dark)}
.field-error{display:none;margin-top:6px;font-size:.9rem;font-weight:500;color:var(--error)}
.field--dark .field-error{color:#F2C4BC}
.has-error .field-error{display:block}
.has-error input,.has-error select,.has-error textarea{border-color:var(--error);box-shadow:0 0 0 1px var(--error)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-success h2{font-size:clamp(2rem,3vw,2.8rem);margin-bottom:.4em}
.form-success--large{padding:clamp(28px,4vw,52px);background:#fff;border-top:4px solid var(--sage)}
.form-failure{margin-top:16px;color:var(--error);font-weight:500}
.stay .form-failure{color:#F2C4BC}.stay .form-failure a{color:inherit}
.stay .form-success{color:var(--on-dark);font:500 1.4rem/1.3 var(--serif)}
.contact-img{width:100%;aspect-ratio:4/3;object-fit:cover}

/* ---------- footer ---------- */
.site-footer{background:var(--dark);color:var(--on-dark-soft);padding-top:clamp(52px,6vw,84px);border-top:1px solid var(--line-dark)}
.footer-grid{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:36px clamp(40px,7vw,110px);align-items:start;padding-bottom:clamp(40px,5vw,64px)}
.footer-nav{display:grid;grid-template-columns:repeat(2,auto);gap:4px 36px}
.footer-nav a{display:block;padding:6px 0;text-decoration:none;color:var(--on-dark);font-size:.97rem}
.footer-nav a:hover{text-decoration:underline;text-underline-offset:4px}
.footer-contact p+p{margin-top:8px}
.footer-contact a{color:var(--on-dark);text-underline-offset:3px;overflow-wrap:anywhere}
.footer-base{padding-block:20px;border-top:1px solid var(--line-dark);font-size:.86rem}
.site-footer .footer-base{max-width:calc(var(--wrap) + var(--gutter)*2)}

/* ---------- entry animation ---------- */
#intro{position:fixed;inset:0;z-index:1000;overflow:hidden;cursor:pointer;--s:min(44vmin,340px)}
.i-bg{position:absolute;inset:0;background:var(--cream)}
.i-rail{position:absolute;left:0;top:50%;width:calc(50% - var(--s)*.2);height:1px;background:var(--sage);transform:scaleX(0);transform-origin:0 50%}
.i-stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.i-box{position:relative;width:var(--s);height:var(--s)}
.i-box svg{width:100%;height:100%;overflow:visible}
.i-word{position:absolute;top:calc(100% + clamp(18px,3.4vmin,34px));left:50%;transform:translate(-50%,8px);opacity:0;text-align:center;white-space:nowrap}
.i-name{display:block;font:500 clamp(26px,3.4vmin,36px)/1.1 var(--serif);color:var(--dark)}
.i-strap{display:block;margin-top:8px;font:600 clamp(8.2px,1.07vmin,11.3px)/1 var(--sans);letter-spacing:.13em}
.i-strap i{font-style:normal;font-weight:400;margin:0 .5em}

/* ---------- gentle motion ---------- */
.js .reveal{opacity:0;transform:translateY(18px)}
.js .reveal.in{opacity:1;transform:none;transition:opacity .85s var(--ease) var(--d,0ms),transform .85s var(--ease) var(--d,0ms)}
.js .split .w{display:inline-block;opacity:0;transform:translateY(.38em)}
.js .split.in .w{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:calc(var(--i)*32ms)}
@keyframes ebZoom{from{scale:1.05}to{scale:1}}
.js.hero-live .hero-img{animation:ebZoom 2.6s var(--ease) both}
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.28s}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  :root{--header-h:88px}
  .wordmark{font-size:27px}.strap{font-size:8.47px;margin-top:6px}
  .brand-mark,.brand-mark-static{width:54px;height:54px}.brand{gap:12px}
  .site-nav{gap:18px}.site-nav a{font-size:.92rem}
}
@media (max-width:980px){
  .menu-toggle{display:block}
  .site-nav{position:fixed;inset:var(--header-h) 0 0;z-index:99;display:flex;flex-direction:column;gap:0;padding:12px var(--gutter) 40px;background:var(--cream);border-top:1px solid var(--line);overflow-y:auto;visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity .25s,transform .25s,visibility 0s .25s}
  .menu-open .site-nav{visibility:visible;opacity:1;transform:none;transition:opacity .25s,transform .25s}
  .site-nav a{padding:16px 0;border-bottom:1px solid var(--line);font:500 1.9rem/1.2 var(--serif)}
  .site-nav a::after{display:none}
  .site-nav a[aria-current=page]{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:6px}
  html.menu-open{overflow:hidden}
  .cards{grid-template-columns:1fr;gap:44px}
  .stats-grid{grid-template-columns:1fr}
  .stat,.stat:first-child,.stat:last-child{padding:28px 0;border-left:0;border-top:1px solid var(--line-dark)}
  .stat:first-child{border-top:0;padding-top:0}.stat:last-child{padding-bottom:0}
  .svc-grid{grid-template-columns:1fr}
  .svc--flip .svc-media{order:0}
  .svc-media{position:static}
  .svc-media img{aspect-ratio:4/3}
  .member{grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:clamp(24px,4vw,44px)}
  .story-row,.story-row--image,.story-row--flip{grid-template-columns:1fr}
  .story-row--flip .story-media{order:0}
  .contact-grid{grid-template-columns:1fr}
  .coming{grid-template-columns:repeat(2,1fr)}
  .coming li:nth-child(odd){border-left:0;padding-left:0}
  .coming li:nth-child(n+3){border-top:1px solid var(--line)}
  .footer-grid{grid-template-columns:1fr}
  .hero--home{--img-h:clamp(290px,60vw,520px);align-items:flex-start;background:var(--cream)}
  .hero--home .hero-img{top:auto;bottom:0;height:var(--img-h);object-position:70% 42%;transform:none}
  .hero--home .hero-wash{top:auto;bottom:0;height:var(--img-h);background:linear-gradient(180deg,var(--cream) 0%,rgba(244,243,239,.55) 16%,rgba(244,243,239,0) 40%)}
  .hero--home .hero-inner{padding-bottom:calc(var(--img-h) - 26px)}
  .page-head-mark{display:none}
  .hero--services .hero-wash{background:rgba(23,42,32,.74)}
  .band--about .band-shade{background:rgba(23,42,32,.84)}
  .stay-action{flex:1 1 100%;justify-content:flex-start}
}
@media (max-width:640px){
  :root{--header-h:76px}
  .wordmark{font-size:22.5px}.strap{font-size:7.05px;margin-top:5px;letter-spacing:.125em}
  .brand-mark,.brand-mark-static{width:44px;height:44px}.brand{gap:9px}
  .site-footer .wordmark{font-size:26px}.site-footer .strap{font-size:8.15px;margin-top:6px}
  .site-footer .brand-mark-static{width:52px;height:52px}
  .field-grid{grid-template-columns:1fr}
  .member{grid-template-columns:1fr;gap:26px}
  .member-card{max-width:440px}
  .svc-index-grid{grid-template-columns:1fr}
  .svc-index a,.svc-index a:first-child{min-height:56px;padding:12px 0;border-left:0;border-top:1px solid var(--line)}
  .svc-index a:first-child{border-top:0}
  .stay-row{flex-direction:column}
  .stay-row .btn{justify-content:center}
  .btn{justify-content:center}
  .member-facts div{gap:12px}
}
@media (max-width:350px){
  .wordmark{font-size:19.5px}.strap{font-size:6.1px}
  .brand-mark,.brand-mark-static{width:38px;height:38px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .js .reveal,.js .split .w{opacity:1;transform:none}
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
}
@media print{
  .site-header{position:static}main{padding-top:0}#intro,.menu-toggle{display:none}
  .js .reveal,.js .split .w{opacity:1;transform:none}
}
