/* ============================================================
   JDF Accountancy Services
   Editorial high-end. Deep ink, warm paper, confident green.
   ============================================================ */

:root{
  --ink:        #0c110e;
  --ink-2:      #131a16;
  --ink-soft:   #1b231e;
  --paper:      #f4f1ea;
  --paper-2:    #ece7db;
  --line:       #2a332c;
  --line-light: #ddd6c7;

  --green:      #34d399;
  --green-deep: #0f6b46;
  --green-ink:  #0b5236;
  --amber:      #e8b04b;

  --text-dark:  #11160f;
  --text-mute:  #5c6358;
  --text-light: #f4f1ea;
  --text-faint: #9aa39a;

  --maxw: 1240px;
  --pad:  clamp(20px, 5vw, 64px);

  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sans:  "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;

  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);

  --r:   16px;
  --r-lg:24px;
}

/* ---------- reset ---------- */
*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}
body{
  font-family:var(--sans);
  background:var(--paper);
  color:var(--text-dark);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; cursor:pointer; border:none; background:none; color:inherit; }
::selection{ background:var(--green); color:var(--ink); }

.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad); }

.skip{
  position:absolute; left:-999px; top:0; z-index:200;
  background:var(--ink); color:var(--paper); padding:12px 18px; border-radius:0 0 10px 0;
}
.skip:focus{ left:0; }

/* film grain overlay */
.grain{
  position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.05; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ============ TYPE ============ */
.eyebrow{
  display:inline-flex; align-items:center; gap:.6em;
  font-size:.78rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:var(--text-mute);
}
.eyebrow .dot{ width:7px; height:7px; border-radius:50%; background:var(--green-deep); box-shadow:0 0 0 4px rgba(15,107,70,.15); }
.hero .eyebrow{ color:var(--text-faint); }
.hero .eyebrow .dot{ background:var(--green); box-shadow:0 0 12px var(--green); }

.ink-accent{ color:var(--green-deep); font-style:italic; }
.hero .ink-accent{ color:var(--green); }

.sec-head{ max-width:760px; margin-bottom:clamp(40px,5vw,72px); }
.sec-head--split{
  max-width:none; display:grid; grid-template-columns:1.2fr .9fr; gap:40px; align-items:end;
}
.sec-title{
  font-family:var(--serif); font-weight:400; line-height:1.04;
  font-size:clamp(2.2rem, 5.2vw, 4.2rem); letter-spacing:-.02em; margin:.35em 0 .5em;
}
.sec-sub{ font-size:clamp(1.02rem,1.5vw,1.2rem); color:var(--text-mute); max-width:54ch; }

/* ============ BUTTONS ============ */
.btn{
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  padding:14px 26px; border-radius:100px; font-weight:600; font-size:.98rem;
  background:var(--ink); color:var(--paper);
  transition:transform .5s var(--ease-out), background .35s, color .35s, box-shadow .5s;
  will-change:transform; overflow:hidden; isolation:isolate;
}
.btn span{ position:relative; z-index:2; }
.btn::before{
  content:""; position:absolute; inset:0; z-index:1; background:var(--green);
  transform:translateY(101%); transition:transform .5s var(--ease-out); border-radius:inherit;
}
.btn:hover{ color:var(--ink); box-shadow:0 18px 40px -18px rgba(15,107,70,.7); }
.btn:hover::before{ transform:translateY(0); }
.btn--lg{ padding:17px 34px; font-size:1.02rem; }
.btn--sm{ padding:11px 20px; font-size:.9rem; }
.btn--block{ display:flex; width:100%; }
.btn--ghost{ background:transparent; color:var(--text-light); box-shadow:inset 0 0 0 1.5px rgba(244,241,234,.28); }
.btn--ghost:hover{ color:var(--ink); }
.btn--ghost::before{ background:var(--paper); }

/* ============ NAV ============ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  transition:background .4s var(--ease), backdrop-filter .4s, box-shadow .4s;
}
.nav__inner{
  max-width:var(--maxw); margin-inline:auto; padding:18px var(--pad);
  display:flex; align-items:center; gap:24px;
}
.nav.scrolled{
  background:rgba(244,241,234,.82); backdrop-filter:saturate(160%) blur(14px);
  box-shadow:0 1px 0 rgba(17,22,15,.07);
}
.nav.scrolled .nav__links a,
.nav.scrolled .brand{ color:var(--text-dark); }

.brand{ display:inline-flex; align-items:center; gap:11px; font-weight:700; letter-spacing:-.01em; }
.brand__mark{ width:30px; height:30px; }
.brand__mark rect{ fill:var(--green); }
.brand__mark path{ stroke:currentColor; }
.brand__text{ font-size:1.12rem; }
.brand__text em{ font-style:normal; font-weight:500; color:var(--text-mute); margin-left:.18em; }
.hero-on .brand{ color:var(--text-light); }

.nav__links{ display:flex; gap:30px; margin-left:auto; }
.nav__links a{
  position:relative; font-size:.95rem; font-weight:500; color:var(--text-light); opacity:.85;
  transition:opacity .3s;
}
.nav__links a::after{
  content:""; position:absolute; left:0; bottom:-5px; height:1.5px; width:100%;
  background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .4s var(--ease-out);
}
.nav__links a:hover{ opacity:1; }
.nav__links a:hover::after,
.nav__links a.active::after{ transform:scaleX(1); transform-origin:left; }
.nav .btn--sm{ margin-left:0; }

.nav__progress{ height:2px; background:var(--green); width:0%; transition:width .1s linear; }

.nav__burger{ display:none; flex-direction:column; gap:6px; width:34px; height:34px; align-items:center; justify-content:center; margin-left:auto; }
.nav__burger span{ width:22px; height:2px; background:currentColor; color:var(--text-light); transition:transform .35s var(--ease), opacity .25s; }
.nav.scrolled .nav__burger span{ background:var(--text-dark); }
.nav__burger[aria-expanded="true"] span:first-child{ transform:translateY(4px) rotate(45deg); }
.nav__burger[aria-expanded="true"] span:last-child{ transform:translateY(-4px) rotate(-45deg); }

.drawer{
  position:fixed; inset:0; z-index:99; background:var(--ink); color:var(--paper);
  display:flex; flex-direction:column; justify-content:center; gap:8px; padding:var(--pad);
  transform:translateY(-100%); transition:transform .6s var(--ease-out); pointer-events:none;
}
.drawer.open{ transform:translateY(0); pointer-events:auto; }
.drawer a{ font-family:var(--serif); font-size:clamp(2rem,9vw,3rem); padding:8px 0; opacity:0; transform:translateY(20px); }
.drawer.open a{ opacity:1; transform:none; transition:opacity .5s var(--ease), transform .5s var(--ease); }
.drawer.open a:nth-child(1){ transition-delay:.08s; }
.drawer.open a:nth-child(2){ transition-delay:.14s; }
.drawer.open a:nth-child(3){ transition-delay:.20s; }
.drawer.open a:nth-child(4){ transition-delay:.26s; }
.drawer.open a:nth-child(5){ transition-delay:.32s; }
.drawer.open a:nth-child(6){ transition-delay:.38s; }
.drawer__cta{ color:var(--green); }

/* ============ HERO ============ */
.hero{
  position:relative; background:var(--ink); color:var(--text-light);
  padding:clamp(120px,16vh,180px) 0 clamp(60px,8vh,90px);
  min-height:100svh; display:flex; flex-direction:column; justify-content:center;
  overflow:hidden;
}
.hero__glow{
  position:absolute; z-index:0; width:80vw; max-width:900px; aspect-ratio:1; border-radius:50%;
  top:-30%; right:-10%;
  background:radial-gradient(circle at center, rgba(52,211,153,.22), rgba(52,211,153,0) 60%);
  filter:blur(20px); animation:floaty 14s ease-in-out infinite alternate;
}
@keyframes floaty{ to{ transform:translate(-6%, 8%) scale(1.12); } }

.hero__grid{
  position:relative; z-index:2; width:100%; max-width:var(--maxw); margin-inline:auto;
  padding-inline:var(--pad);
  display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,70px); align-items:center;
}
.hero__copy{ max-width:620px; }
.hero__title{
  font-family:var(--serif); font-weight:300; letter-spacing:-.025em; line-height:.98;
  font-size:clamp(2.8rem, 7vw, 5.6rem); margin:.5em 0 .55em;
}
.hero__title .line{ display:block; overflow:hidden; }
.hero__title .line > *,
.hero__title .line{ }
.hero__lede{ font-size:clamp(1.05rem,1.6vw,1.28rem); color:#cfd6cd; max-width:50ch; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }

.hero__trust{ display:flex; gap:clamp(24px,4vw,52px); margin-top:48px; list-style:none; }
.hero__trust li{ display:flex; flex-direction:column; }
.hero__trust strong{ font-family:var(--serif); font-weight:400; font-size:clamp(1.8rem,3vw,2.6rem); color:#fff; line-height:1; }
.hero__trust span{ font-size:.82rem; color:var(--text-faint); margin-top:6px; letter-spacing:.02em; }

.hero__scroll{
  position:relative; z-index:2; max-width:var(--maxw); margin:clamp(40px,6vh,70px) auto 0;
  padding-inline:var(--pad); display:flex; align-items:center; gap:14px;
  font-size:.74rem; letter-spacing:.22em; text-transform:uppercase; color:var(--text-faint);
}
.hero__scrollline{ position:relative; width:64px; height:1px; background:rgba(244,241,234,.25); overflow:hidden; }
.hero__scrollline::after{ content:""; position:absolute; inset:0; width:30%; background:var(--green); animation:scrollline 2.4s var(--ease) infinite; }
@keyframes scrollline{ 0%{ transform:translateX(-100%);} 60%,100%{ transform:translateX(330%);} }

/* ---------- live ledger ---------- */
.ledger{
  position:relative; background:linear-gradient(160deg, #141c17, #0e1411);
  border:1px solid rgba(255,255,255,.08); border-radius:var(--r-lg); padding:18px;
  box-shadow:0 50px 90px -40px rgba(0,0,0,.8), inset 0 1px 0 rgba(255,255,255,.05);
  transform-style:preserve-3d;
}
.ledger__chrome{ display:flex; align-items:center; gap:12px; padding:4px 6px 14px; border-bottom:1px solid rgba(255,255,255,.07); }
.ledger__dots{ display:flex; gap:6px; }
.ledger__dots i{ width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.18); }
.ledger__dots i:first-child{ background:#ff5f57; } .ledger__dots i:nth-child(2){ background:#febc2e; } .ledger__dots i:nth-child(3){ background:#28c840; }
.ledger__file{ font-size:.8rem; color:var(--text-faint); }
.ledger__live{ margin-left:auto; display:inline-flex; align-items:center; gap:6px; font-size:.72rem; color:var(--green); text-transform:uppercase; letter-spacing:.1em; }
.ledger__live i{ width:7px; height:7px; border-radius:50%; background:var(--green); animation:pulse 1.6s ease-in-out infinite; }
@keyframes pulse{ 0%,100%{ opacity:1; box-shadow:0 0 0 0 rgba(52,211,153,.5);} 50%{ opacity:.5; box-shadow:0 0 0 6px rgba(52,211,153,0);} }

.ledger__formula{ display:flex; align-items:center; gap:10px; margin:14px 0; }
.ledger__cellref{ font-family:ui-monospace,Menlo,monospace; font-size:.74rem; color:var(--text-faint); background:rgba(255,255,255,.06); padding:5px 9px; border-radius:7px; min-width:34px; text-align:center; }
.ledger__fx{ font-family:ui-monospace,Menlo,monospace; font-size:.82rem; color:#bfe9d4; }
.caret{ display:inline-block; width:7px; height:1.05em; background:var(--green); vertical-align:-.18em; margin-left:2px; animation:blink 1s steps(1) infinite; }
@keyframes blink{ 50%{ opacity:0; } }

.ledger__sheet{ width:100%; border-collapse:collapse; font-size:.86rem; }
.ledger__sheet th{ text-align:left; font-weight:500; color:var(--text-faint); font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; padding:8px 10px; border-bottom:1px solid rgba(255,255,255,.07); }
.ledger__sheet td{ padding:9px 10px; border-bottom:1px solid rgba(255,255,255,.045); color:#d7ddd5; font-variant-numeric:tabular-nums; }
.ledger__sheet .num{ text-align:right; font-family:ui-monospace,Menlo,monospace; }
.ledger__sheet .rownum{ color:var(--text-faint); font-size:.72rem; width:26px; opacity:.6; }
.ledger__sheet .neg{ color:#e9a0a0; }
.ledger__sheet .pos{ color:var(--green); }
.ledger__total td{ border-top:1px solid rgba(255,255,255,.14); border-bottom:none; font-weight:600; color:#fff; }

.ledger__chart{ display:flex; align-items:flex-end; gap:8px; height:74px; margin:18px 6px 12px; }
.ledger__chart .bar{ flex:1; height:var(--h); background:rgba(255,255,255,.1); border-radius:5px 5px 2px 2px; position:relative; transform:scaleY(0); transform-origin:bottom; transition:transform .9s var(--ease-out); }
.ledger__chart.in .bar{ transform:scaleY(1); }
.ledger__chart .bar--hi{ background:linear-gradient(var(--green), var(--green-deep)); box-shadow:0 0 18px -2px var(--green); }
.ledger__chart .bar:nth-child(1){ transition-delay:.05s;} .ledger__chart .bar:nth-child(2){ transition-delay:.12s;}
.ledger__chart .bar:nth-child(3){ transition-delay:.19s;} .ledger__chart .bar:nth-child(4){ transition-delay:.26s;}
.ledger__chart .bar:nth-child(5){ transition-delay:.33s;} .ledger__chart .bar:nth-child(6){ transition-delay:.40s;}
.ledger__chart .bar:nth-child(7){ transition-delay:.47s;}
.ledger__caption{ font-size:.78rem; color:var(--text-faint); padding:0 6px; }

/* ============ MARQUEE ============ */
.marquee{ background:var(--green-ink); color:var(--paper); padding:20px 0; overflow:hidden; border-top:1px solid rgba(255,255,255,.06); }
.marquee__track{ display:flex; align-items:center; gap:34px; white-space:nowrap; width:max-content; animation:marquee 34s linear infinite; }
.marquee:hover .marquee__track{ animation-play-state:paused; }
.marquee span{ font-family:var(--serif); font-size:clamp(1.3rem,2.6vw,2rem); font-style:italic; opacity:.92; }
.marquee i{ color:var(--green); font-style:normal; }
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* ============ APPROACH ============ */
.approach{ padding:clamp(80px,11vw,150px) 0; background:var(--paper); }
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.card{
  position:relative; background:#fff; border:1px solid var(--line-light); border-radius:var(--r-lg);
  padding:38px 32px; transition:transform .6s var(--ease-out), box-shadow .6s, border-color .4s;
  transform-style:preserve-3d; overflow:hidden;
}
.card::after{ content:""; position:absolute; left:0; top:0; height:3px; width:100%; background:var(--green); transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease-out); }
.card:hover{ box-shadow:0 40px 70px -42px rgba(15,40,28,.35); border-color:transparent; }
.card:hover::after{ transform:scaleX(1); }
.card__num{ font-family:var(--serif); font-size:1rem; color:var(--green-deep); letter-spacing:.1em; }
.card h3{ font-family:var(--serif); font-weight:400; font-size:1.6rem; margin:18px 0 14px; letter-spacing:-.01em; }
.card p{ color:var(--text-mute); font-size:1rem; }

/* ============ SERVICES ============ */
.services{ padding:clamp(80px,11vw,150px) 0; background:var(--ink); color:var(--text-light); }
.services .eyebrow{ color:var(--text-faint); }
.services .eyebrow .dot{ background:var(--green); box-shadow:0 0 10px var(--green); }
.services .sec-sub{ color:#b9c1b8; }
.svc-list{ list-style:none; border-top:1px solid rgba(255,255,255,.1); }
.svc{
  display:grid; grid-template-columns:64px 1fr; align-items:baseline; gap:8px 28px;
  padding:30px 16px; border-bottom:1px solid rgba(255,255,255,.1); position:relative;
  transition:background .4s, padding .4s var(--ease-out); cursor:default;
}
.svc__idx{ font-family:var(--serif); color:var(--green); font-size:1.05rem; }
.svc__name{ font-family:var(--serif); font-weight:400; font-size:clamp(1.4rem,2.6vw,2rem); letter-spacing:-.01em; transition:transform .4s var(--ease-out); }
.svc__desc{ grid-column:2; color:#9aa39a; max-width:62ch; max-height:0; overflow:hidden; opacity:0;
  transition:max-height .5s var(--ease-out), opacity .4s, margin .4s; }
.svc__arrow{ position:absolute; right:18px; top:32px; font-size:1.4rem; color:var(--green); opacity:0; transform:translateX(-12px) rotate(-45deg); transition:opacity .4s, transform .5s var(--ease-out); }
.svc:hover{ background:rgba(52,211,153,.05); padding-left:26px; }
.svc:hover .svc__name{ transform:translateX(6px); }
.svc:hover .svc__desc{ max-height:120px; opacity:1; margin-top:12px; }
.svc:hover .svc__arrow{ opacity:1; transform:translateX(0) rotate(0); }

/* ============ ESTIMATE ============ */
.estimate{ padding:clamp(80px,11vw,150px) 0; background:var(--paper-2); }
.estimate__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,90px); align-items:center; }
.estimate__intro .sec-title{ font-size:clamp(2rem,4.4vw,3.4rem); }

.field{ margin-top:26px; }
.field label{ display:block; font-size:.82rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--text-mute); }
.field output{ display:block; font-family:var(--serif); font-size:clamp(1.6rem,3vw,2.2rem); color:var(--text-dark); margin:2px 0 10px; font-variant-numeric:tabular-nums; }
input[type=range]{ -webkit-appearance:none; appearance:none; width:100%; height:6px; border-radius:100px; background:var(--line-light); outline:none; }
input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; width:24px; height:24px; border-radius:50%; background:var(--ink); border:4px solid var(--paper-2); box-shadow:0 4px 14px -3px rgba(0,0,0,.5); cursor:grab; transition:transform .2s, background .3s; }
input[type=range]::-webkit-slider-thumb:active{ cursor:grabbing; transform:scale(1.18); background:var(--green-deep); }
input[type=range]::-moz-range-thumb{ width:24px; height:24px; border-radius:50%; background:var(--ink); border:4px solid var(--paper-2); cursor:grab; }
.estimate__note{ margin-top:30px; font-size:.86rem; color:var(--text-mute); max-width:46ch; }

.calc{
  background:var(--ink); color:var(--text-light); border-radius:var(--r-lg); padding:30px;
  box-shadow:0 50px 90px -45px rgba(15,40,28,.6);
}
.calc__chrome{ display:flex; align-items:center; gap:12px; padding-bottom:18px; border-bottom:1px solid rgba(255,255,255,.08); }
.calc__readout{ padding:26px 0 22px; }
.calc__label{ font-size:.8rem; text-transform:uppercase; letter-spacing:.12em; color:var(--text-faint); }
.calc__big{ display:block; font-family:var(--serif); font-weight:400; font-size:clamp(2.6rem,6vw,3.8rem); line-height:1; margin-top:8px; font-variant-numeric:tabular-nums; }
.calc__bars{ display:flex; flex-direction:column; gap:18px; }
.cbar__head{ display:flex; justify-content:space-between; font-size:.9rem; margin-bottom:8px; color:#c9d0c8; }
.cbar__head b{ color:#fff; font-variant-numeric:tabular-nums; }
.cbar__track{ height:9px; border-radius:100px; background:rgba(255,255,255,.08); overflow:hidden; }
.cbar__fill{ height:100%; width:0%; border-radius:100px; transition:width .7s var(--ease-out); }
.cbar__fill--tax{ background:linear-gradient(90deg,#e8b04b,#e0894d); }
.cbar__fill--keep{ background:linear-gradient(90deg,var(--green),var(--green-deep)); }
.cbar__fill--rate{ background:linear-gradient(90deg,#7aa6ff,#5c7cf0); }
.calc__foot{ display:flex; gap:14px; margin:24px 0; }
.calc__foot div{ flex:1; background:rgba(255,255,255,.05); border-radius:12px; padding:14px 16px; }
.calc__foot span{ display:block; font-size:.74rem; color:var(--text-faint); text-transform:uppercase; letter-spacing:.08em; }
.calc__foot b{ font-family:var(--serif); font-weight:400; font-size:1.5rem; font-variant-numeric:tabular-nums; }

/* ============ STORY ============ */
.story{ padding:clamp(80px,11vw,150px) 0; background:var(--paper); }
.story__grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(40px,6vw,80px); align-items:center; }
.story__copy p{ color:var(--text-mute); margin-bottom:18px; max-width:56ch; font-size:1.05rem; }
.quote-card{
  position:relative; background:var(--ink); color:var(--text-light); border-radius:var(--r-lg);
  padding:42px 38px; box-shadow:0 50px 90px -45px rgba(15,40,28,.5); transform-style:preserve-3d;
}
.quote-card__mark{ width:46px; height:46px; fill:var(--green); margin-bottom:20px; opacity:.9; }
.quote-card blockquote{ font-family:var(--serif); font-weight:300; font-size:clamp(1.4rem,2.5vw,1.9rem); line-height:1.3; letter-spacing:-.01em; }
.quote-card footer{ margin-top:28px; padding-top:20px; border-top:1px solid rgba(255,255,255,.12); }
.quote-card footer strong{ display:block; font-size:1.05rem; }
.quote-card footer span{ color:var(--text-faint); font-size:.9rem; }

.timeline{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:36px; }
.tl{ border-left:2px solid var(--green); padding-left:14px; }
.tl b{ display:block; font-family:var(--serif); font-size:clamp(1.3rem,2vw,1.7rem); }
.tl span{ font-size:.84rem; color:var(--text-mute); }

/* ============ TEAM ============ */
.team{ padding:clamp(80px,11vw,150px) 0; background:var(--ink); color:var(--text-light); }
.team .eyebrow{ color:var(--text-faint); } .team .eyebrow .dot{ background:var(--green); box-shadow:0 0 10px var(--green); }
.team__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.member{
  background:linear-gradient(165deg,#151d18,#0f1512); border:1px solid rgba(255,255,255,.07);
  border-radius:var(--r-lg); padding:30px 26px; transition:transform .6s var(--ease-out), border-color .4s;
  transform-style:preserve-3d;
}
.member:hover{ border-color:rgba(52,211,153,.4); }
.member__avatar{
  width:64px; height:64px; border-radius:50%; display:grid; place-items:center; margin-bottom:22px;
  background:radial-gradient(circle at 30% 25%, var(--green), var(--green-ink));
  color:var(--ink); font-family:var(--serif); font-size:1.3rem; font-weight:500;
  box-shadow:0 12px 26px -10px rgba(52,211,153,.6);
}
.member h3{ font-family:var(--serif); font-weight:400; font-size:1.5rem; }
.member__role{ color:var(--green); font-size:.86rem; margin:4px 0 14px; letter-spacing:.01em; }
.member__bio{ color:#9aa39a; font-size:.94rem; }

/* ============ CONTACT ============ */
.contact{ position:relative; padding:clamp(80px,11vw,150px) 0; background:var(--ink); color:var(--text-light); overflow:hidden; border-top:1px solid rgba(255,255,255,.07); }
.contact__glow{ position:absolute; bottom:-40%; left:-10%; width:70vw; max-width:800px; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle, rgba(52,211,153,.16), transparent 60%); filter:blur(10px); }
.contact__grid{ position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,80px); align-items:start; }
.contact .eyebrow{ color:var(--text-faint); } .contact .eyebrow .dot{ background:var(--green); box-shadow:0 0 10px var(--green); }
.contact__title{ font-family:var(--serif); font-weight:300; font-size:clamp(2.2rem,5vw,4rem); line-height:1.02; letter-spacing:-.02em; margin:.3em 0 .5em; }
.contact__sub{ color:#b9c1b8; max-width:44ch; }
.contact__details{ list-style:none; margin-top:40px; display:flex; flex-direction:column; gap:24px; }
.contact__details li{ display:flex; flex-direction:column; gap:6px; }
.contact__k{ font-size:.74rem; text-transform:uppercase; letter-spacing:.14em; color:var(--text-faint); }
.contact__details a{ color:var(--green); font-size:1.15rem; transition:opacity .3s; width:fit-content; border-bottom:1px solid transparent; }
.contact__details a:hover{ border-color:var(--green); }
.contact__details li span:not(.contact__k){ color:#d4dad2; line-height:1.5; }

.form{ background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.09); border-radius:var(--r-lg); padding:clamp(26px,3vw,40px); }
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form__field{ position:relative; margin-top:16px; }
.form__row .form__field{ margin-top:0; }
.form__field input, .form__field textarea{
  width:100%; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.12); border-radius:12px;
  padding:20px 16px 8px; color:var(--text-light); font:inherit; font-size:1rem; transition:border-color .3s, background .3s;
  resize:vertical;
}
.form__field textarea{ padding-top:24px; }
.form__field input:focus, .form__field textarea:focus{ outline:none; border-color:var(--green); background:rgba(52,211,153,.06); }
.form__field label{ position:absolute; left:16px; top:15px; color:var(--text-faint); font-size:1rem; pointer-events:none; transition:.25s var(--ease-out); }
.form__field input:focus + label, .form__field input:not(:placeholder-shown) + label,
.form__field textarea:focus + label, .form__field textarea:not(:placeholder-shown) + label{
  top:7px; font-size:.7rem; letter-spacing:.04em; color:var(--green);
}
.form .btn{ margin-top:20px; }
.form__hint{ font-size:.78rem; color:var(--text-faint); text-align:center; margin-top:14px; }
.form__field.invalid input, .form__field.invalid textarea{ border-color:#e9a0a0; }

/* ============ FOOTER ============ */
.foot{ background:#080b09; color:var(--text-light); padding:clamp(56px,7vw,84px) 0 30px; }
.foot__grid{ display:grid; grid-template-columns:1.4fr 1fr 1.2fr; gap:40px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,.08); }
.foot__brand .brand{ color:var(--text-light); }
.foot__brand p{ color:var(--text-faint); margin-top:16px; max-width:30ch; }
.foot__nav{ display:flex; flex-direction:column; gap:12px; }
.foot__nav a{ color:#b9c1b8; width:fit-content; transition:color .3s, padding-left .3s; }
.foot__nav a:hover{ color:var(--green); padding-left:6px; }
.foot__legal p{ color:var(--text-faint); font-size:.9rem; line-height:1.9; }
.foot__base{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; padding-top:26px; color:var(--text-faint); font-size:.84rem; }

/* ============ REVEAL ============ */
[data-reveal]{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease-out), transform .8s var(--ease-out); }
[data-reveal].in{ opacity:1; transform:none; }
[data-reveal][data-delay="1"]{ transition-delay:.1s; }
[data-reveal][data-delay="2"]{ transition-delay:.2s; }
[data-reveal][data-delay="3"]{ transition-delay:.3s; }
[data-reveal][data-delay="4"]{ transition-delay:.4s; }

.hero__title .line{ }
.hero__title .line span, .hero__title .line{ }
[data-line]{ display:block; transform:translateY(110%); opacity:0; transition:transform 1s var(--ease-out), opacity 1s; }
[data-line].in{ transform:none; opacity:1; }
[data-line]:nth-child(2){ transition-delay:.12s; }

/* ============ RESPONSIVE ============ */
@media (max-width:1000px){
  .hero__grid{ grid-template-columns:1fr; gap:50px; }
  .ledger{ max-width:480px; }
  .estimate__grid, .story__grid, .contact__grid{ grid-template-columns:1fr; }
  .sec-head--split{ grid-template-columns:1fr; gap:18px; }
  .cards{ grid-template-columns:1fr; }
  .team__grid{ grid-template-columns:repeat(2,1fr); }
  .story__media{ order:2; }
  .foot__grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:760px){
  .nav__links, .nav .btn--sm{ display:none; }
  .nav__burger{ display:flex; }
  .timeline{ grid-template-columns:repeat(2,1fr); }
  .hero__trust{ flex-wrap:wrap; gap:26px 36px; }
  .form__row{ grid-template-columns:1fr; gap:0; }
  .form__row .form__field{ margin-top:16px; }
  .foot__grid{ grid-template-columns:1fr; }
  .svc{ grid-template-columns:44px 1fr; }
  .svc__desc{ max-height:none; opacity:1; margin-top:10px; } /* always show on touch */
  .svc__arrow{ display:none; }
}
@media (max-width:460px){
  .team__grid{ grid-template-columns:1fr; }
  .calc__foot{ flex-direction:column; }
}
