/* ==========================================================================
   REVOLVE MOTORS — shared stylesheet
   Direction: Pacific-Northwest editorial. Cream paper, slate ink, one
   emerald accent used like a highlighter. Hairlines instead of cards.
   Serif display type, sans/mono micro-labels, photography up top.
   ========================================================================== */

:root{
  --slate:#2F3E46;
  --slate-70:rgba(47,62,70,.70);
  --slate-45:rgba(47,62,70,.45);
  --slate-16:rgba(47,62,70,.16);
  --slate-08:rgba(47,62,70,.08);
  --emerald:#1F7A63;
  --emerald-lt:#69C3A8;
  --cream:#E6E2D3;
  --cream-soft:#F1EEE4;
  --paper:#FAF8F2;
  --white:#FFFFFF;

  --serif: Georgia, "Iowan Old Style", "Palatino Linotype", Palatino, "Times New Roman", serif;
  --sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  --gut: clamp(20px, 5.5vw, 76px);
  --rule: 1px solid var(--slate-16);
  --ease: cubic-bezier(.2,.7,.2,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:96px;
}

body{
  margin:0;
  background:var(--paper);
  color:var(--slate);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.55;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

/* paper grain */
body::before{
  content:"";
  position:fixed; inset:0; z-index:60; pointer-events:none;
  opacity:.30; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/><feColorMatrix type='saturate' values='0'/></filter><rect width='160' height='160' filter='url(%23n)' opacity='.30'/></svg>");
}

a{ color:inherit; }
h1,h2,h3,h4,p,ul,ol,figure,blockquote,dl,dd{ margin:0; }
ul,ol{ list-style:none; padding:0; }
img{ max-width:100%; display:block; }
svg{ max-width:100%; }

.wrap{ width:100%; max-width:1240px; margin:0 auto; padding-left:var(--gut); padding-right:var(--gut); }
.wrap-wide{ width:100%; max-width:1600px; margin:0 auto; padding-left:var(--gut); padding-right:var(--gut); }

.skip{
  position:absolute; left:-9999px; top:0; z-index:100;
  background:var(--slate); color:var(--white); padding:10px 16px; font-size:13px;
}
.skip:focus{ left:8px; top:8px; }

:focus-visible{ outline:2px solid var(--emerald); outline-offset:3px; border-radius:2px; }

/* ---------- micro type ---------- */
.eyebrow{
  font-family:var(--sans); font-size:11px; font-weight:600;
  letter-spacing:.22em; text-transform:uppercase; color:var(--slate-45);
}
.num{ font-family:var(--mono); font-size:11px; letter-spacing:.14em; color:var(--emerald); font-variant-numeric:tabular-nums; }
.display{ font-family:var(--serif); font-weight:400; line-height:1.0; letter-spacing:-.022em; }
.lede{ font-family:var(--serif); font-size:clamp(19px,2.4vw,25px); line-height:1.45; color:var(--slate-70); }

/* ---------- header ---------- */
.hdr{
  position:sticky; top:0; z-index:50;
  background:rgba(250,248,242,.94);
  backdrop-filter:saturate(140%) blur(8px);
  -webkit-backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid transparent;
  transition:border-color .3s ease;
}
.hdr.stuck{ border-bottom-color:var(--slate-16); }
.hdr-bar{ display:flex; align-items:center; gap:16px; min-height:66px; }
.brand{ display:flex; align-items:center; margin-right:auto; text-decoration:none; }
.brand img{ width:132px; height:66px; object-fit:contain; object-position:left center; }

.nav{ display:flex; gap:clamp(14px,3vw,28px); align-items:center; flex-wrap:wrap; }
.nav a{
  font-size:12px; font-weight:500; letter-spacing:.11em; text-transform:uppercase;
  text-decoration:none; color:var(--slate-70); padding:6px 0; position:relative; white-space:nowrap;
}
.nav a::after{
  content:""; position:absolute; left:0; right:100%; bottom:2px; height:1px;
  background:var(--emerald); transition:right .35s var(--ease);
}
.nav a:hover{ color:var(--slate); }
.nav a:hover::after{ right:0; }
.nav a[aria-current="page"]{ color:var(--slate); }
.nav a[aria-current="page"]::after{ right:0; }

.callbtn{
  font-family:var(--mono); font-size:12.5px; letter-spacing:.02em;
  text-decoration:none; color:var(--white); background:var(--slate);
  padding:10px 15px; border-radius:2px; white-space:nowrap;
  transition:background .25s ease;
}
.callbtn:hover{ background:var(--emerald); }

/* mobile: nav on its own row */
.nav-row{ border-top:var(--rule); }
.nav-row .nav{ justify-content:space-between; padding:9px 0; gap:8px; }
.nav-row .nav a{ font-size:11px; letter-spacing:.08em; }
.hdr-bar .nav{ display:none; }
@media (min-width:900px){
  .hdr-bar .nav{ display:flex; }
  .nav-row{ display:none; }
  .brand img{ width:150px; height:72px; }
  .hdr-bar{ min-height:78px; }
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  background:var(--emerald); color:var(--white); text-decoration:none;
  font-size:12.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  padding:15px 24px; border-radius:2px;
  transition:background .25s ease, transform .3s var(--ease);
}
.btn:hover{ background:var(--slate); transform:translateY(-2px); }
.btn svg{ width:14px; height:14px; flex:none; }
.btn-ghost{
  background:transparent; color:var(--slate); border:1px solid var(--slate-16);
}
.btn-ghost:hover{ background:var(--slate); color:var(--white); border-color:var(--slate); }
.btn-light{ background:var(--emerald-lt); color:var(--slate); }
.btn-light:hover{ background:var(--cream-soft); color:var(--slate); }
.btnrow{ display:flex; flex-wrap:wrap; gap:12px; margin-top:clamp(24px,4vw,34px); }

.arrowlink{
  display:inline-flex; align-items:center; gap:9px; text-decoration:none;
  font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--emerald);
  padding-top:4px;
}
.arrowlink svg{ width:20px; height:8px; transition:transform .35s var(--ease); }
.arrowlink:hover svg{ transform:translateX(6px); }

/* ---------- photo primitives ---------- */
.ph{ position:relative; overflow:hidden; background:var(--cream); }
.ph img{ width:100%; height:100%; object-fit:cover; display:block; }
.ph-16x10{ aspect-ratio:16/10; }
.ph-16x9{ aspect-ratio:16/9; }
.ph-4x3{ aspect-ratio:4/3; }
.ph-1x1{ aspect-ratio:1/1; }
.ph-3x4{ aspect-ratio:3/4; }
.ph-16x13{ aspect-ratio:16/13; }  /* native ratio of the founders photo — never crops it */
.ph-right img{ object-position:70% center; }
.ph-left img{ object-position:30% center; }
.ph-zoom img{ transition:transform 1.1s var(--ease); }
.ph-zoom:hover img{ transform:scale(1.035); }
figcaption{
  margin-top:10px; font-family:var(--mono); font-size:10.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--slate-45);
}

/* ---------- hero (photo-led) ---------- */
.hero{ position:relative; }
.hero-photo{ position:relative; overflow:hidden; background:var(--slate); }
.hero-photo img{
  width:100%; height:100%; object-fit:cover;
  aspect-ratio:3/4;
}
@media (min-width:700px){ .hero-photo img{ aspect-ratio:16/9; } }
@media (min-width:1200px){ .hero-photo img{ aspect-ratio:21/9; } }
/* shorter hero for interior pages */
.hero-sm .hero-photo img{ aspect-ratio:5/4; }
@media (min-width:700px){ .hero-sm .hero-photo img{ aspect-ratio:16/7; } }
@media (min-width:1200px){ .hero-sm .hero-photo img{ aspect-ratio:24/9; } }
.hero-sm h1{ font-size:clamp(38px,8vw,80px); }
.hero-photo::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(47,62,70,.52) 0%, rgba(47,62,70,.18) 38%, rgba(47,62,70,.72) 100%);
}
.hero-inner{
  position:absolute; inset:0; z-index:2;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding-bottom:clamp(28px,4.5vw,58px); padding-top:clamp(20px,4vw,40px);
}
.hero-inner .wrap{ width:100%; }
.hero h1{
  color:var(--white);
  font-size:clamp(42px,9.5vw,104px);
  max-width:14ch;
  text-shadow:0 2px 30px rgba(0,0,0,.28);
}
.hero h1 .charge{ color:var(--emerald-lt); font-style:italic; }
.hero .kicker{
  color:rgba(255,255,255,.82); letter-spacing:.24em; margin-bottom:clamp(14px,2.5vw,22px);
  display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center;
}
.hero .kicker .dot{ width:4px; height:4px; border-radius:50%; background:var(--emerald-lt); display:inline-block; }
.hero-tail{
  margin-top:clamp(18px,3vw,26px); display:flex; flex-wrap:wrap; gap:14px 28px; align-items:center;
}
.hero-tail p{
  color:rgba(255,255,255,.86); font-family:var(--serif);
  font-size:clamp(16px,2vw,21px); line-height:1.4; max-width:34ch;
}

/* hero focal point overrides (subject not centred in frame) */
.hero-photo.focus-right img{ object-position:72% center; }
@media (min-width:1100px){ .hero-photo.focus-right img{ object-position:center; } }

/* ---------- photo-lead (uncropped image on top, headline below) ---------- */
.photolead{ background:var(--cream-soft); border-bottom:var(--rule); }
.photolead .ph{ background:var(--slate); }
.photolead .ph img{ object-fit:cover; }
.photolead .caption{
  padding-top:14px; font-family:var(--mono); font-size:10.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--slate-45);
}
.photolead .head{ padding-top:clamp(26px,4vw,44px); padding-bottom:clamp(34px,5vw,64px); }
.photolead h1{ font-size:clamp(40px,8.5vw,88px); max-width:14ch; }
.photolead h1 .charge{ color:var(--emerald); font-style:italic; }
.photolead .kicker{
  display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center; margin-bottom:16px;
}
.photolead .kicker .dot{ width:4px; height:4px; border-radius:50%; background:var(--emerald); display:inline-block; }

/* page hero (interior pages) */
.phero{ padding:clamp(38px,6vw,74px) 0 clamp(26px,4vw,42px); border-bottom:var(--rule); }
.phero h1{ font-size:clamp(40px,8.5vw,86px); max-width:16ch; }
.phero .lede{ margin-top:clamp(20px,3vw,28px); max-width:52ch; }
.phero .num{ display:block; margin-bottom:14px; }

/* ---------- sections ---------- */
.sec{ padding:clamp(56px,8.5vw,116px) 0; position:relative; }
.sec + .sec{ border-top:var(--rule); }
.sec-tight{ padding:clamp(40px,6vw,76px) 0; }
.sec-head{ display:flex; align-items:baseline; gap:14px; margin-bottom:clamp(28px,4.5vw,50px); }
.sec-head h2{ font-family:var(--serif); font-weight:400; font-size:clamp(30px,5.2vw,54px); line-height:1.04; letter-spacing:-.02em; }
.sec-head .num{ padding-top:.35em; flex:none; }
.band-cream{ background:var(--cream); }
.band-soft{ background:var(--cream-soft); }

/* ---------- value props (with illustration cards) ---------- */
.values{ display:grid; gap:clamp(28px,4vw,44px); }
@media (min-width:820px){ .values{ grid-template-columns:repeat(3,1fr); gap:clamp(24px,3.5vw,48px); } }
.value{ display:grid; gap:14px; align-content:start; }
/* the illustration PNGs are 3:2 with their own #F7FAFA ground — match the
   card to that ground and let the art fill it edge to edge, so there's no
   box-inside-a-box */
.value .ph{ aspect-ratio:3/2; background:#F7FAFA; border:1px solid var(--slate-16); }
.value .ph img{ object-fit:cover; }
.value .vnum{ font-family:var(--mono); font-size:11px; color:var(--emerald); letter-spacing:.14em; }
.value h3{ font-family:var(--sans); font-size:12px; font-weight:700; letter-spacing:.20em; text-transform:uppercase; }
.value p{ font-family:var(--serif); font-size:clamp(18px,2.1vw,21px); line-height:1.42; color:var(--slate-70); }

/* value props, list variant (no images) */
.values-list .value{ border-top:var(--rule); padding-top:22px; }

/* ---------- split (photo + text) ---------- */
.split{ display:grid; gap:clamp(28px,4.5vw,60px); align-items:center; }
@media (min-width:880px){
  .split{ grid-template-columns:1fr 1fr; }
  .split-wide-l{ grid-template-columns:1.15fr .85fr; }
  .split-wide-r{ grid-template-columns:.85fr 1.15fr; }
  .split-flip .split-media{ order:2; }
}
.split-body h2{ font-family:var(--serif); font-weight:400; font-size:clamp(30px,5vw,52px); line-height:1.05; letter-spacing:-.02em; }
.split-body p{ margin-top:20px; font-family:var(--serif); font-size:clamp(18px,2.2vw,23px); line-height:1.46; color:var(--slate-70); max-width:46ch; }
.split-body .eyebrow{ display:block; margin-bottom:14px; }

/* ---------- makes ---------- */
.makes{ border-top:var(--rule); }
.makes li{ border-bottom:var(--rule); }
.makes a{
  display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  padding:16px 0; text-decoration:none;
  font-family:var(--serif); font-size:clamp(24px,4vw,38px); letter-spacing:-.02em;
  transition:padding-left .38s var(--ease), color .28s ease;
}
.makes a .tag{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--slate-45); transition:color .28s ease; text-align:right;
}
.makes a:hover{ padding-left:14px; color:var(--emerald); }
.makes a:hover .tag{ color:var(--emerald); }

/* ---------- gallery ---------- */
.gallery{ display:grid; gap:clamp(10px,1.6vw,18px); grid-template-columns:1fr; }
@media (min-width:640px){ .gallery{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1000px){
  .gallery{ grid-template-columns:repeat(3,1fr); }
  .gallery .g-tall{ grid-row:span 2; }
  .gallery .g-tall .ph{ height:100%; }
  .gallery .g-tall .ph img{ height:100%; }
}
.gallery figure{ margin:0; }

/* ---------- ratings / reviews strip ---------- */
.reviews{ background:var(--slate); color:var(--cream-soft); }
.reviews .wrap{ padding-top:clamp(50px,7.5vw,96px); padding-bottom:clamp(50px,7.5vw,96px); }
.reviews .eyebrow{ color:rgba(230,226,211,.5); }
.reviews h2{
  font-family:var(--serif); font-weight:400; font-size:clamp(30px,5.4vw,56px);
  line-height:1.05; letter-spacing:-.022em; margin-top:14px; max-width:18ch;
}
.reviews h2 em{ font-style:italic; color:var(--emerald-lt); }
.ratings{ display:grid; gap:0; margin-top:clamp(30px,4.5vw,48px); border-top:1px solid rgba(230,226,211,.22); }
@media (min-width:760px){ .ratings{ grid-template-columns:repeat(3,1fr); column-gap:clamp(20px,4vw,56px); } }
.rating{
  border-bottom:1px solid rgba(230,226,211,.22);
  padding:22px 0; display:grid; gap:7px; align-content:start;
}
@media (min-width:760px){ .rating{ border-top:0; } }
.rating .score{
  font-family:var(--serif); font-size:clamp(38px,5.5vw,56px); line-height:1;
  letter-spacing:-.03em; color:var(--white); display:flex; align-items:baseline; gap:8px;
}
.rating .score .star{ color:var(--emerald-lt); font-size:.5em; }
.rating .src{ font-family:var(--sans); font-size:11.5px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--cream-soft); }
.rating .note{ font-size:13.5px; color:rgba(230,226,211,.6); line-height:1.45; }
.rating.award .score{ font-size:clamp(24px,3.2vw,32px); line-height:1.15; max-width:12ch; }
.rating.award .awardbadge{ margin-bottom:4px; justify-self:start; }
.stars{ display:flex; gap:3px; }
.stars svg{ width:15px; height:15px; }
.stars svg path{ fill:var(--emerald-lt); }
.stars .half path{ opacity:.5; }
.review-cta{ display:flex; flex-wrap:wrap; gap:12px; margin-top:clamp(28px,4vw,40px); align-items:center; }
.review-cta .txt{ font-size:13px; color:rgba(230,226,211,.6); }

/* light variant of the ratings strip (used where it follows a dark band) */
.reviews.light{ background:var(--cream); color:var(--slate); }
.reviews.light .eyebrow{ color:var(--slate-45); }
.reviews.light h2{ color:var(--slate); }
.reviews.light h2 em{ color:var(--emerald); }
.reviews.light .ratings{ border-top-color:var(--slate-16); }
.reviews.light .rating{ border-bottom-color:var(--slate-16); }
.reviews.light .rating .score{ color:var(--slate); }
.reviews.light .rating .score .star{ color:var(--emerald); }
.reviews.light .rating .src{ color:var(--slate); }
.reviews.light .rating .note{ color:var(--slate-45); }
.reviews.light .stars svg path{ fill:var(--emerald); }
.reviews.light .review-cta .txt{ color:var(--slate-45); }

/* ---------- lists ---------- */
.idxlist{ border-top:var(--rule); display:grid; grid-template-columns:1fr; }
@media (min-width:680px){ .idxlist-2{ grid-template-columns:1fr 1fr; column-gap:clamp(24px,5vw,64px); } }
.idxlist li{
  border-bottom:var(--rule); padding:15px 0;
  display:flex; align-items:baseline; gap:14px;
  font-family:var(--serif); font-size:clamp(17px,2vw,20px);
}
.idxlist li .k{ font-family:var(--mono); font-size:10.5px; color:var(--emerald); letter-spacing:.1em; min-width:2.2em; flex:none; }

.checklist{ border-top:var(--rule); }
.checklist li{
  border-bottom:var(--rule); padding:18px 0;
  display:flex; gap:14px; align-items:flex-start;
  font-family:var(--serif); font-size:clamp(17px,2vw,21px); line-height:1.4;
}
.checklist li svg{ width:16px; height:16px; flex:none; margin-top:.34em; }

/* ---------- price card ---------- */
.pricecard{
  background:var(--paper); border:1px solid var(--slate-16);
  padding:22px; display:grid; gap:13px; max-width:440px;
}
.band-cream .pricecard{ background:var(--paper); }
.pricerow{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; font-size:13.5px; }
.pricerow span:first-child{ color:var(--slate-70); }
.pricerow span:last-child{ font-family:var(--mono); font-size:12.5px; letter-spacing:.02em; }
.pricerow.strike span:last-child{ text-decoration:line-through; color:var(--slate-45); }
.pricerow.total{ border-top:var(--rule); padding-top:14px; }
.pricerow.total span:last-child{ color:var(--emerald); font-weight:600; }

/* ---------- hours ---------- */
.hours{ display:grid; gap:26px; }
@media (min-width:620px){ .hours-2{ grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,48px); } }
.hourblock{ border-top:2px solid var(--slate); padding-top:14px; }
.hourblock h3,.hourblock h4{
  font-family:var(--sans); font-size:11.5px; font-weight:700; letter-spacing:.2em;
  text-transform:uppercase; margin-bottom:10px;
}
.hourblock .row{
  display:flex; justify-content:space-between; gap:14px; align-items:baseline;
  padding:9px 0; border-bottom:var(--rule); font-size:14px;
}
.hourblock .row span:first-child{ color:var(--slate-70); }
.hourblock .row span:last-child{ font-family:var(--mono); font-size:12.5px; letter-spacing:.02em; text-align:right; }
.recharge{ color:var(--emerald) !important; font-weight:600; display:inline-flex; align-items:center; gap:6px; }
.recharge svg{ width:11px; height:11px; flex:none; }

/* ---------- contact bits ---------- */
.bigcontact{ display:grid; gap:4px; }
.bigcontact a{
  font-family:var(--serif); font-size:clamp(25px,4.4vw,44px); letter-spacing:-.022em;
  text-decoration:none; line-height:1.22; display:inline-block; word-break:break-word;
  transition:color .25s ease, transform .35s var(--ease);
}
.bigcontact a:hover{ color:var(--emerald); transform:translateX(6px); }
.addr{ margin-top:22px; font-family:var(--serif); font-size:clamp(18px,2.2vw,22px); line-height:1.4; color:var(--slate-70); }
.socials{ margin-top:24px; display:flex; flex-wrap:wrap; gap:10px; }
.socials a{
  display:inline-flex; align-items:center; gap:8px;
  border:1px solid var(--slate-16); padding:9px 14px; border-radius:100px;
  font-size:11.5px; letter-spacing:.11em; text-transform:uppercase; text-decoration:none; color:var(--slate-70);
  transition:border-color .25s ease, color .25s ease, background .25s ease;
}
.socials a:hover{ color:var(--emerald); border-color:var(--emerald); background:var(--white); }
.socials svg{ width:14px; height:14px; flex:none; }

/* ---------- award badge ---------- */
.awardbadge{
  display:inline-flex; align-items:center; gap:9px;
  border:1px solid var(--slate-16); border-radius:100px;
  padding:7px 15px 7px 11px; background:var(--white);
}
.awardbadge svg{ width:15px; height:15px; flex:none; }
.awardbadge span{ font-size:10.5px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; color:var(--slate-70); }

/* ---------- pull quote (about) ---------- */
.quote{
  font-family:var(--serif); font-size:clamp(23px,3.6vw,40px);
  line-height:1.26; letter-spacing:-.018em;
}
.quote .hl{ color:var(--emerald); font-style:italic; }

/* ---------- award photo (portrait, never cropped) ---------- */
/* the badge art is a gold rosette on white — multiply drops the white
   into the paper so it reads as a stamp, not a pasted rectangle */
.award-photo{ max-width:320px; margin-inline:auto; }
.award-photo .ph{ background:transparent; }
.award-photo .ph img{ object-fit:contain; mix-blend-mode:multiply; }
@media (min-width:880px){ .award-photo{ margin-inline:0; } }

/* ---------- signature ---------- */
.sig{ margin-top:28px; display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.sig svg{ width:120px; height:auto; }
.sig .who{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--slate-45); }

/* ---------- line art ---------- */
.lineart .stroke{ fill:none; stroke:var(--slate); stroke-width:1.15; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
.lineart .thin{ stroke:var(--slate-45); stroke-width:1; }
.lineart .accent{ stroke:var(--emerald); stroke-width:1.6; }
.lineart .dashline{ stroke-dasharray:5 7; opacity:.5; }
.lineart svg{ width:100%; height:auto; display:block; }
.lineart-light .stroke{ stroke:rgba(230,226,211,.65); }
.lineart-light .accent{ stroke:var(--emerald-lt); }

/* ---------- dark band ---------- */
.dark{ background:var(--slate); color:var(--cream-soft); }
.dark .wrap{ padding-top:clamp(56px,8.5vw,112px); padding-bottom:clamp(56px,8.5vw,112px); }
.dark .eyebrow{ color:rgba(230,226,211,.5); }
.dark h2{ font-family:var(--serif); font-weight:400; font-size:clamp(32px,5.6vw,58px); line-height:1.04; letter-spacing:-.022em; max-width:17ch; }
.dark h2 em{ font-style:italic; color:var(--emerald-lt); }
.dark p{ color:rgba(230,226,211,.74); font-family:var(--serif); font-size:clamp(18px,2.2vw,23px); line-height:1.46; max-width:45ch; margin-top:20px; }
.dark .idxlist{ border-top-color:rgba(230,226,211,.22); }
.dark .idxlist li{ border-bottom-color:rgba(230,226,211,.22); color:rgba(230,226,211,.92); font-size:clamp(16px,1.9vw,19px); }
.dark .idxlist li .k{ color:var(--emerald-lt); }
.dark .hourblock{ border-top-color:var(--cream-soft); }
.dark .hourblock .row{ border-bottom-color:rgba(230,226,211,.22); }
.dark .hourblock .row span:first-child{ color:rgba(230,226,211,.7); }
.dark .hourblock .row span:last-child{ color:var(--cream-soft); }
.dark .recharge{ color:var(--emerald-lt) !important; }

/* ---------- CTA strip ---------- */
.ctastrip{ background:var(--cream); }
.ctastrip .wrap{ padding-top:clamp(44px,6.5vw,80px); padding-bottom:clamp(44px,6.5vw,80px); }
.ctastrip .inner{ display:grid; gap:clamp(20px,3vw,40px); align-items:center; }
@media (min-width:820px){ .ctastrip .inner{ grid-template-columns:1.2fr .8fr; } }
.ctastrip h2{ font-family:var(--serif); font-weight:400; font-size:clamp(28px,4.6vw,46px); line-height:1.06; letter-spacing:-.02em; max-width:16ch; }
.ctastrip p{ margin-top:14px; color:var(--slate-70); font-size:15px; max-width:44ch; }

/* ---------- footer ---------- */
.ftr{ background:var(--slate); color:rgba(230,226,211,.7); }
.ftr-top{ padding-top:clamp(44px,6vw,72px); padding-bottom:clamp(30px,4vw,48px); display:grid; gap:clamp(28px,4vw,48px); }
@media (min-width:760px){ .ftr-top{ grid-template-columns:1.2fr .8fr .8fr; } }
.ftr img.flogo{ width:150px; height:75px; object-fit:contain; object-position:left center; filter:brightness(0) invert(1); opacity:.92; }
.ftr h4{ font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--cream-soft); margin-bottom:14px; }
.ftr .fnav li{ margin-bottom:9px; }
.ftr .fnav a, .ftr .fcontact a{ font-size:14px; text-decoration:none; color:rgba(230,226,211,.72); transition:color .22s ease; }
.ftr .fnav a:hover, .ftr .fcontact a:hover{ color:var(--emerald-lt); }
.ftr .fcontact li{ margin-bottom:9px; font-size:14px; line-height:1.45; }
.ftr .ftagline{ margin-top:16px; font-family:var(--serif); font-size:18px; line-height:1.4; color:rgba(230,226,211,.7); max-width:30ch; }
.ftr-bot{
  border-top:1px solid rgba(230,226,211,.2);
  padding-top:22px; padding-bottom:30px;
  display:flex; flex-wrap:wrap; gap:12px 24px; align-items:center;
}
.ftr-bot small{ font-size:11.5px; letter-spacing:.09em; text-transform:uppercase; }
.ftr-bot .spacer{ margin-left:auto; }
.ftr-bot a{ font-size:11.5px; letter-spacing:.09em; text-transform:uppercase; text-decoration:none; color:rgba(230,226,211,.7); }
.ftr-bot a:hover{ color:var(--emerald-lt); }
.ftr .socials a{ border-color:rgba(230,226,211,.25); color:rgba(230,226,211,.72); }
.ftr .socials a:hover{ color:var(--emerald-lt); border-color:var(--emerald-lt); background:transparent; }

/* ---------- motion ---------- */
.rev{ opacity:0; transform:translateY(16px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.rev.in{ opacity:1; transform:none; }
.rev.d1{ transition-delay:.08s; } .rev.d2{ transition-delay:.16s; } .rev.d3{ transition-delay:.24s; }

.fadein{ opacity:0; animation:fi .9s ease forwards; }
.fadein.a1{ animation-delay:.06s; } .fadein.a2{ animation-delay:.2s; }
.fadein.a3{ animation-delay:.34s; } .fadein.a4{ animation-delay:.48s; }
@keyframes fi{ to{ opacity:1; } }

.riseup{ opacity:0; transform:translateY(22px); animation:ru 1s .1s var(--ease) forwards; }
.riseup.a1{ animation-delay:.12s; } .riseup.a2{ animation-delay:.26s; } .riseup.a3{ animation-delay:.4s; }
@keyframes ru{ to{ opacity:1; transform:none; } }

@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; }
  .rev{ opacity:1; transform:none; }
  .fadein,.riseup{ opacity:1; transform:none; }
  html{ scroll-behavior:auto; }
}
