/* Hallmark · macrostructure: Editorial-Civic (root-cause narrative) · tone: refined wellness · anchor hue: emerald + terracotta · display-font: Cormorant Garamond
 * pre-emit critique: P5 H5 E4 S5 R4 V4
 * studied-DNA build · source: crownchiropractic.com (palette pixel-sampled, fonts pinned) · diversification suspended (preserving client brand)
 * contrast: AA-checked - cream/green 7.9:1 · green/white 9:1 · muted/white 5.5:1 · white/terracotta-btn(#a8501d) 5.4:1
 */

/* ---------- tokens ---------- */
:root{
  --green:#17513f;
  --green-deep:#0d4634;
  --green-deepest:#0b3d2e;
  --terracotta:#c96a2f;      /* decorative / large display only */
  --terracotta-ink:#b0561f;  /* accent text on light (AA 4.9:1) */
  --terracotta-btn:#a8501d;  /* button bg, white text (AA 5.4:1) */
  --terracotta-btn-hover:#8f4315;
  --cream:#f6f1e7;
  --cream-dim:#e9e0cf;
  --sand:#eab883;            /* warm accent for text/glyphs ON green (AA 4.9:1) */
  --ink:#1f2a28;
  --muted:#5b6b64;
  --paper:#ffffff;
  --paper-soft:#f5f8f5;
  --paper-warm:#faf7f0;
  --line:#e3e9e4;
  --line-cream:rgba(246,241,231,.22);

  --font-display:"Cormorant Garamond", Georgia, "Times New Roman", serif;
  --font-body:"Inter", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

  --text-hero:clamp(2.9rem,7vw,5.3rem);
  --text-h2:clamp(2.1rem,4.4vw,3.4rem);
  --text-h3:clamp(1.4rem,2.2vw,1.7rem);
  --text-eyebrow:.78rem;
  --text-body:1.0625rem;
  --text-lg:1.2rem;
  --text-sm:.9rem;

  --sp-1:.25rem; --sp-2:.5rem; --sp-3:.75rem; --sp-4:1rem; --sp-5:1.5rem;
  --sp-6:2rem; --sp-7:3rem; --sp-8:4rem; --sp-9:6rem; --sp-10:8rem;

  --wrap:1180px; --wrap-narrow:760px;
  --radius:16px; --radius-sm:12px; --radius-pill:999px;
  --ease-out:cubic-bezier(.22,.61,.36,1);
  --ease-in-out:cubic-bezier(.65,.05,.36,1);
  --shadow-card:0 1px 2px rgba(11,61,46,.05), 0 12px 30px -14px rgba(11,61,46,.16);
  --shadow-soft:0 1px 2px rgba(11,61,46,.05), 0 6px 18px -10px rgba(11,61,46,.14);
}

/* ---------- reset ---------- */
*{box-sizing:border-box}
html{overflow-x:clip; scroll-behavior:smooth; -webkit-text-size-adjust:100%}
body{overflow-x:clip}
html,body{margin:0}
body{
  font-family:var(--font-body); color:var(--ink); background:var(--paper);
  font-size:var(--text-body); line-height:1.7; -webkit-font-smoothing:antialiased;
}
img{max-width:100%; height:auto; display:block}
a{color:var(--green); text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-display); font-weight:600; line-height:1.06; margin:0; letter-spacing:-.01em; overflow-wrap:anywhere; min-width:0}
p{margin:0}
:focus-visible{outline:3px solid var(--terracotta); outline-offset:3px; border-radius:4px}
.wrap{width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:clamp(1.1rem,4vw,2rem)}
.eyebrow{font-family:var(--font-body); font-size:var(--text-eyebrow); font-weight:600; letter-spacing:.16em; text-transform:uppercase; margin:0 0 var(--sp-4)}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}
section{padding-block:clamp(3.4rem,7vw,6rem)}
[id]{scroll-margin-top:98px}

/* ---------- buttons ---------- */
.btn{display:inline-flex; align-items:center; gap:.55rem; font-family:var(--font-body);
  font-weight:600; font-size:1rem; line-height:1; padding:1rem 1.6rem; border-radius:var(--radius-pill);
  border:1.5px solid transparent; cursor:pointer; transition:transform .18s var(--ease-out), background .2s var(--ease-out), box-shadow .2s var(--ease-out); text-align:center}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--terracotta-btn); color:#fff; box-shadow:0 8px 20px -10px rgba(168,80,29,.7)}
.btn-primary:hover{background:var(--terracotta-btn-hover); box-shadow:0 10px 24px -10px rgba(168,80,29,.8)}
.btn-ghost{background:transparent; color:var(--cream); border-color:var(--line-cream)}
.btn-ghost:hover{background:rgba(246,241,231,.1); border-color:var(--cream)}
.btn-dark{background:var(--green); color:var(--cream)}
.btn-dark:hover{background:var(--green-deep)}
.btn-lg{padding:1.15rem 2rem; font-size:1.05rem}

/* ---------- fixed transparent header stack ---------- */
.site-top{position:fixed; top:0; left:0; right:0; z-index:60;
  background:linear-gradient(to bottom, rgba(6,40,30,.62), rgba(6,40,30,0));
  transition:background .4s var(--ease-out), box-shadow .4s var(--ease-out)}
.site-top.scrolled{background:var(--green); box-shadow:0 2px 16px rgba(0,0,0,.2)}

/* ---------- topbar ---------- */
.topbar{color:var(--cream)}
.site-top.scrolled .topbar{border-bottom:1px solid rgba(246,241,231,.12)}
.topbar .wrap{display:flex; flex-wrap:wrap; gap:.3rem 1.4rem; align-items:center; justify-content:space-between; padding-block:.38rem; font-size:.8rem}
.topbar a{color:var(--cream); font-weight:500}
.topbar a:hover{color:#fff; text-decoration:underline}
.topbar .t-item{display:inline-flex; align-items:center; gap:.4rem; color:rgba(246,241,231,.9)}
.topbar svg{width:14px; height:14px; flex:none}

/* ---------- header / nav ---------- */
.site-header{background:transparent}
.nav{display:flex; align-items:center; gap:var(--sp-5); padding-block:.45rem}
.brand{display:inline-flex; align-items:center; gap:.6rem; margin-right:auto}
.brand img{width:36px; height:36px}
.brand-name{font-family:var(--font-display); color:var(--cream); font-size:1.22rem; font-weight:600; line-height:1; letter-spacing:.01em}
.brand-name small{display:block; font-family:var(--font-body); font-size:.52rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(246,241,231,.72); margin-top:.24rem; font-weight:600}
.nav-links{display:flex; align-items:center; gap:1.5rem}
.nav-links a{color:rgba(246,241,231,.9); font-size:.95rem; font-weight:500; padding:.4rem 0; position:relative}
.nav-links a::after{content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px; background:var(--terracotta); transition:right .25s var(--ease-out)}
.nav-links a:hover{color:#fff}
.nav-links a:hover::after{right:0}
.nav-cta{display:flex; align-items:center; gap:1rem}
.nav-phone{color:var(--cream); font-weight:600; font-size:1.02rem; white-space:nowrap; display:inline-flex; align-items:center; gap:.45rem}
.nav-phone svg{width:16px; height:16px}
.navtoggle,.navtoggle-label{display:none}
.lbl-short{display:none}

/* ---------- hero ---------- */
.hero{position:relative; background:var(--green-deep); color:var(--cream); overflow:hidden; padding-top:clamp(7rem,10vw,9rem); padding-bottom:clamp(3rem,6vw,5rem); isolation:isolate}
.hero-media{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2}
.hero::before{content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(92deg, rgba(9,56,42,.95) 0%, rgba(11,61,46,.86) 44%, rgba(11,61,46,.55) 100%),
             radial-gradient(85% 90% at 88% 8%, rgba(201,106,47,.16), transparent 55%)}
.hero .wrap{position:relative; z-index:1}
.hero-grid{display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(2rem,5vw,3.6rem); align-items:center}
.hero-eyebrow{color:var(--cream); opacity:.9}
.hero-eyebrow .dot{color:var(--sand)}
.hero h1{font-size:var(--text-hero); color:var(--cream); font-weight:600; margin-bottom:var(--sp-5)}
.hero h1 em{font-style:italic; color:#fff; font-weight:500}
.hero .lede{font-size:var(--text-lg); color:rgba(246,241,231,.9); max-width:34ch; margin-bottom:var(--sp-6)}
.hero-actions{display:flex; flex-wrap:wrap; gap:var(--sp-4); margin-bottom:var(--sp-6)}
.hero-trust{display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 1.5rem; border-top:1px solid var(--line-cream); padding-top:var(--sp-5)}
.hero-trust .tt{display:inline-flex; align-items:center; gap:.5rem; font-size:.9rem; color:rgba(246,241,231,.9)}
.hero-trust strong{color:#fff}
.stars{color:var(--terracotta); letter-spacing:.08em; font-size:1rem}
.hero-trust .stars{color:var(--sand)}
.btn-outline-green{background:transparent; color:var(--green); border-color:var(--green)}
.btn-outline-green:hover{background:rgba(23,81,63,.06)}
/* booking panel (the "form" in the hero) */
.hero-book{position:relative; display:grid; place-items:center}
.book-panel{background:rgba(255,255,255,.97); border:1px solid rgba(255,255,255,.55); border-radius:var(--radius); padding:clamp(1.5rem,3vw,2.1rem); box-shadow:0 26px 64px -26px rgba(6,40,30,.75); color:var(--ink); width:100%; max-width:420px}
.book-panel .bp-eyebrow{color:var(--terracotta-ink); font-weight:600; font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; margin-bottom:.4rem}
.book-panel h2{font-family:var(--font-display); font-size:clamp(1.7rem,2.6vw,2.1rem); color:var(--green); line-height:1.05; margin-bottom:.5rem}
.book-panel .bp-sub{color:var(--muted); font-size:.94rem; margin-bottom:var(--sp-5)}
.book-panel .btn{width:100%; margin-bottom:.55rem}
.book-panel .bp-note{display:flex; align-items:center; justify-content:center; gap:.4rem .8rem; font-size:.82rem; color:var(--muted); margin-top:var(--sp-4); border-top:1px solid var(--line); padding-top:var(--sp-4); text-align:center; flex-wrap:wrap}
.book-panel .bp-note .stars{color:var(--terracotta-ink); font-size:.9rem}
.book-panel .bp-note b{color:var(--ink)}

/* ---------- section heads ---------- */
.head{max-width:var(--wrap-narrow); margin-bottom:clamp(2rem,4vw,3rem)}
.head.center{margin-inline:auto; text-align:center}
.head .eyebrow{color:var(--terracotta-ink)}
.head h2{font-size:var(--text-h2); color:var(--green)}
.head p{color:var(--muted); font-size:var(--text-lg); margin-top:var(--sp-4)}
.on-green .head .eyebrow{color:var(--sand)}
.on-green .head h2{color:var(--cream)}
.on-green .head p{color:rgba(246,241,231,.85)}

/* ---------- trust bar ---------- */
.trustbar{background:var(--paper-warm); border-block:1px solid var(--line)}
.trustbar .wrap{display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1rem,3vw,2rem); padding-block:clamp(1.8rem,3vw,2.4rem)}
.trust-cell{text-align:center}
.trust-cell .n{font-family:var(--font-display); font-size:clamp(2rem,3.4vw,2.7rem); color:var(--green); font-weight:600; line-height:1}
.trust-cell .l{color:var(--muted); font-size:.86rem; margin-top:.4rem; letter-spacing:.02em}

/* ---------- approach / root-cause ---------- */
.approach .wrap{display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4.5rem); align-items:center}
.approach .lead-line{font-family:var(--font-display); font-size:clamp(1.8rem,3.4vw,2.6rem); color:var(--green); font-weight:500; line-height:1.18; letter-spacing:-.01em}
.approach .lead-line em{font-style:italic; color:var(--terracotta-ink)}
.approach p + p{margin-top:var(--sp-4)}
.approach .body p{color:var(--muted)}
.diff-list{list-style:none; padding:0; margin:var(--sp-5) 0 0; display:grid; gap:var(--sp-4)}
.diff-list li{display:grid; grid-template-columns:auto 1fr; gap:.9rem; align-items:start}
.diff-list .mk{width:34px; height:34px; border-radius:50%; background:var(--paper-soft); border:1px solid var(--line); display:grid; place-items:center; flex:none}
.diff-list .mk svg{width:18px; height:18px; stroke:var(--green); fill:none; stroke-width:2}
.diff-list b{color:var(--ink); font-weight:600}
.diff-list span{color:var(--muted); font-size:.96rem}

/* ---------- services ---------- */
.services{background:var(--paper-soft)}
.svc-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--sp-4)}
.svc-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; transition:transform .2s var(--ease-out), box-shadow .2s var(--ease-out), border-color .2s}
.svc-card:hover{transform:translateY(-3px); box-shadow:var(--shadow-card); border-color:var(--cream-dim)}
.svc-media{aspect-ratio:16/9; overflow:hidden; background:var(--paper-soft)}
.svc-media img{width:100%; height:100%; object-fit:cover; transition:transform .45s var(--ease-out)}
.svc-card:hover .svc-media img{transform:scale(1.04)}
.svc-body{padding:var(--sp-5); display:flex; flex-direction:column; flex:1}
.svc-body h3{font-size:1.22rem; color:var(--green); margin-bottom:.4rem}
.svc-body p{color:var(--muted); font-size:.92rem; margin-bottom:var(--sp-4)}
.svc-more{margin-top:auto; align-self:flex-start; display:inline-flex; align-items:center; gap:.35rem; color:var(--terracotta-ink); font-weight:600; font-size:.9rem}
.svc-more::after{content:"\2192"; transition:transform .2s var(--ease-out)}
.svc-more:hover{color:var(--terracotta-btn-hover)}
.svc-more:hover::after{transform:translateX(3px)}
.map-embed{border:0; width:100%; aspect-ratio:16/11; border-radius:var(--radius); box-shadow:var(--shadow-card); display:block}

/* ---------- techniques band ---------- */
.techniques{background:var(--paper-warm)}
.tech-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--sp-5) var(--sp-4)}
.tech-item{text-align:center; padding:var(--sp-3)}
.tech-ico{width:86px; height:86px; margin:0 auto var(--sp-4); border-radius:50%; background:rgba(23,81,63,.09); display:grid; place-items:center; transition:transform .25s var(--ease-out), background .25s}
.tech-item:hover .tech-ico{transform:translateY(-4px); background:rgba(201,106,47,.14)}
.tech-ico svg{width:46px; height:46px; stroke:var(--green); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:stroke .25s}
.tech-item:hover .tech-ico svg{stroke:var(--terracotta-ink)}
.tech-item h3{font-size:1.15rem; color:var(--green); font-weight:600; margin-bottom:.35rem}
.tech-item p{color:var(--muted); font-size:.88rem; line-height:1.55}

/* ---------- doctors ---------- */
.doc-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--sp-5)}
.doc-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-soft); display:flex; flex-direction:column}
.doc-card .ph{aspect-ratio:4/5; background:var(--paper-soft)}
.doc-card .ph img{width:100%; height:100%; object-fit:cover; object-position:center 22%}
.doc-body{padding:var(--sp-5); display:flex; flex-direction:column; flex:1}
.doc-body h3{font-size:1.45rem; color:var(--green)}
.doc-role{color:var(--terracotta-ink); font-weight:600; font-size:.82rem; letter-spacing:.06em; text-transform:uppercase; margin:.3rem 0 .7rem}
.doc-body p{color:var(--muted); font-size:.95rem}
.doc-more{margin-top:var(--sp-5); align-self:flex-start; display:inline-flex; align-items:center; gap:.45rem; padding:.6rem 1.25rem; border:1.5px solid var(--line); border-radius:var(--radius-pill); color:var(--green); font-weight:600; font-size:.9rem; transition:background .2s var(--ease-out), border-color .2s}
.doc-more::after{content:"\2192"; transition:transform .2s var(--ease-out)}
.doc-more:hover{background:var(--paper-soft); border-color:var(--green)}
.doc-more:hover::after{transform:translateX(3px)}

/* ---------- about / lifestyle ---------- */
.about .wrap{display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(2rem,5vw,4rem); align-items:center}
.about-media{border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-card); position:relative}
.about-media img{width:100%; aspect-ratio:3/2; object-fit:cover}
.about-media .badge{position:absolute; left:1rem; bottom:1rem; background:var(--cream); color:var(--green); border-radius:var(--radius-pill); padding:.5rem 1rem; font-weight:600; font-size:.85rem; box-shadow:var(--shadow-soft)}
.about .body h2{font-size:var(--text-h2); color:var(--green); margin-bottom:var(--sp-4)}
.about .body p{color:var(--muted)}
.about .body p + p{margin-top:var(--sp-4)}
.area-list{display:flex; flex-wrap:wrap; gap:.5rem; margin-top:var(--sp-5)}
.area-list span{background:var(--paper-soft); border:1px solid var(--line); color:var(--green); border-radius:var(--radius-pill); padding:.4rem .9rem; font-size:.85rem; font-weight:500}

/* ---------- reviews ---------- */
.reviews{background:var(--paper-warm)}
.rev-top{display:flex; flex-wrap:wrap; gap:1rem 1.5rem; align-items:center; justify-content:space-between; margin-bottom:clamp(2rem,4vw,3rem)}
.rev-badge{display:inline-flex; align-items:center; gap:.8rem; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-pill); padding:.6rem 1.2rem; box-shadow:var(--shadow-soft)}
.rev-badge .g{font-weight:700; color:var(--green); font-family:var(--font-display); font-size:1.5rem; line-height:1}
.rev-badge .stars{font-size:1.05rem}
.rev-badge small{color:var(--muted); font-size:.82rem}
.rev-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--sp-4); align-items:start}
.rev-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:var(--sp-5); box-shadow:var(--shadow-soft)}
.rev-card .stars{font-size:1rem; margin-bottom:.7rem}
.rev-card blockquote{margin:0; font-family:var(--font-display); font-size:1.28rem; line-height:1.4; color:var(--ink); font-weight:500}
.rev-card .who{margin-top:var(--sp-4); display:flex; align-items:center; gap:.7rem; font-size:.88rem; color:var(--muted)}
.rev-card .who .av{width:34px; height:34px; border-radius:50%; background:var(--green); color:var(--cream); display:grid; place-items:center; font-weight:600; font-family:var(--font-display); font-size:1.05rem; flex:none}
.rev-card .who b{color:var(--ink); font-weight:600}

/* ---------- conditions ---------- */
.conditions .chips{display:flex; flex-wrap:wrap; gap:.6rem; margin-top:var(--sp-5)}
.conditions .chips span{border:1px solid var(--line); background:var(--paper); border-radius:var(--radius-pill); padding:.55rem 1.1rem; font-size:.95rem; color:var(--ink)}
.conditions .chips span::before{content:"✓"; color:var(--terracotta-ink); font-weight:700; margin-right:.5rem}

/* ---------- faq ---------- */
.faq .wrap{display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(2rem,5vw,4rem); align-items:start}
.faq-list{display:grid; gap:.8rem}
.faq details{border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--paper); overflow:hidden}
.faq summary{cursor:pointer; list-style:none; padding:1.1rem 1.3rem; font-weight:600; color:var(--green); font-size:1.05rem; display:flex; justify-content:space-between; gap:1rem; align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; font-family:var(--font-body); font-size:1.4rem; color:var(--terracotta-ink); transition:transform .2s var(--ease-out); line-height:1}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 1.3rem 1.2rem; color:var(--muted); font-size:.98rem}

/* ---------- YMYL trust band ---------- */
.trust-band{background:var(--paper-soft); border-top:1px solid var(--line)}
.trust-cols{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--sp-5); margin-top:clamp(1.6rem,3vw,2.4rem)}
.trust-col{display:grid; grid-template-columns:auto 1fr; gap:.9rem; align-items:start}
.trust-col .ic{width:46px; height:46px; border-radius:12px; background:rgba(23,81,63,.08); display:grid; place-items:center; flex:none}
.trust-col .ic svg{width:23px; height:23px; stroke:var(--green); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}
.trust-col h3{font-size:1.1rem; color:var(--green); margin-bottom:.2rem}
.trust-col p{color:var(--muted); font-size:.92rem}
.trust-disclaimer{margin-top:clamp(1.8rem,3vw,2.6rem); padding-top:var(--sp-5); border-top:1px solid var(--line); color:var(--muted); font-size:.82rem; line-height:1.6}

/* ---------- contact / cta ---------- */
.contact{background:var(--green); color:var(--cream)}
.contact .wrap{display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem)}
.contact h2{font-size:var(--text-h2); color:var(--cream); margin-bottom:var(--sp-4)}
.contact .lede{color:rgba(246,241,231,.88); margin-bottom:var(--sp-6); max-width:40ch}
.contact-facts{display:grid; gap:var(--sp-5)}
.cf{display:grid; grid-template-columns:auto 1fr; gap:1rem; align-items:start}
.cf .ic{width:40px; height:40px; border-radius:10px; background:rgba(11,61,46,.5); border:1px solid var(--line-cream); display:grid; place-items:center; flex:none}
.cf .ic svg{width:19px; height:19px; stroke:var(--cream); fill:none; stroke-width:1.8}
.cf .k{font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(246,241,231,.7); margin-bottom:.2rem}
.cf .v{color:var(--cream); font-weight:500}
.cf .v a{color:var(--cream); text-decoration:underline; text-decoration-color:var(--line-cream)}
.cf .v a:hover{text-decoration-color:var(--cream)}
.hours-row{display:flex; justify-content:space-between; gap:1rem; padding:.35rem 0; border-bottom:1px solid var(--line-cream); font-size:.9rem; color:rgba(246,241,231,.9); max-width:320px}
.hours-row b{color:var(--cream); font-weight:600}
.form-card{background:var(--paper); border-radius:var(--radius); padding:clamp(1.5rem,3vw,2.2rem); box-shadow:var(--shadow-card); color:var(--ink)}
.form-card h3{font-size:1.6rem; color:var(--green); margin-bottom:.4rem}
.form-card .sub{color:var(--muted); font-size:.92rem; margin-bottom:var(--sp-5)}
.field{margin-bottom:var(--sp-4)}
.field label{display:block; font-size:.85rem; font-weight:600; color:var(--ink); margin-bottom:.35rem}
.field input,.field textarea,.field select{width:100%; font-family:var(--font-body); font-size:1rem; color:var(--ink); background:var(--paper-soft); border:1.5px solid var(--line); border-radius:var(--radius-sm); padding:.8rem .9rem; transition:border-color .18s var(--ease-out), box-shadow .18s var(--ease-out)}
.field input:focus,.field textarea:focus,.field select:focus{outline:none; border-color:var(--green); box-shadow:0 0 0 3px rgba(23,81,63,.14)}
.field textarea{min-height:96px; resize:vertical}
.form-note{font-size:.8rem; color:var(--muted); margin-top:var(--sp-3); text-align:center}
.form-ok{display:none; background:rgba(23,81,63,.08); border:1px solid var(--green); color:var(--green); border-radius:var(--radius-sm); padding:1rem; font-weight:500; text-align:center}
.form-ok.show{display:block}

/* ---------- footer ---------- */
.site-footer{background:var(--green-deepest); color:rgba(246,241,231,.8)}
.foot-top{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:clamp(1.6rem,4vw,3rem); padding-block:clamp(2.6rem,5vw,4rem)}
.foot-brand img{width:52px; height:52px; margin-bottom:var(--sp-4)}
.foot-brand .fname{font-family:var(--font-display); font-size:1.5rem; color:var(--cream); font-weight:600}
.foot-brand p{font-size:.9rem; margin-top:var(--sp-3); max-width:32ch}
.foot-col h4{font-family:var(--font-body); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--cream); margin-bottom:var(--sp-4); font-weight:600}
.foot-col ul{list-style:none; padding:0; margin:0; display:grid; gap:.55rem}
.foot-col a{color:rgba(246,241,231,.8); font-size:.92rem}
.foot-col a:hover{color:#fff; text-decoration:underline}
.foot-rating{display:inline-flex; align-items:center; gap:.5rem; color:var(--cream); font-weight:600; font-size:.95rem}
.foot-rating .stars{font-size:.95rem}
.foot-bottom{border-top:1px solid var(--line-cream); padding-block:1.3rem; display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; align-items:center; justify-content:space-between; font-size:.82rem; color:rgba(246,241,231,.66)}
.foot-bottom a{color:rgba(246,241,231,.66)}
.foot-bottom a:hover{color:var(--cream)}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .hero-grid{grid-template-columns:1fr; gap:2.4rem}
  .hero-book{max-width:460px}
  .approach .wrap,.about .wrap,.faq .wrap,.contact .wrap{grid-template-columns:1fr; gap:2.2rem}
  .trust-cols{grid-template-columns:1fr; gap:1.4rem}
  .svc-grid,.rev-grid,.doc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tech-grid{grid-template-columns:repeat(2,1fr)}
  .trustbar .wrap{grid-template-columns:repeat(2,1fr); gap:1.4rem}
  .foot-top{grid-template-columns:1fr 1fr; gap:2rem}
}
@media (max-width:720px){
  .topbar{display:none}
  .nav-links,.nav-phone{display:none}
  .nav{gap:.5rem; flex-wrap:nowrap}
  .brand{margin-right:auto; min-width:0}
  .brand small{display:none}
  .brand-name{font-size:1.15rem; white-space:nowrap}
  .nav-cta{order:2}
  .nav-cta .btn{padding:.65rem 1rem; font-size:.9rem}
  .lbl-full{display:none} .lbl-short{display:inline}
  .navtoggle{display:block; position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); opacity:0; margin:0; pointer-events:none}
  .navtoggle-label{display:inline-flex; order:3; flex-direction:column; gap:5px; padding:.5rem; cursor:pointer; background:transparent; border:0; flex:none}
  .navtoggle-label span{display:block; width:26px; height:2px; background:var(--cream); border-radius:2px; transition:transform .2s var(--ease-out), opacity .2s}
  .navtoggle:focus-visible + .navtoggle-label{outline:3px solid var(--cream); outline-offset:2px; border-radius:6px}
  #nt:checked ~ .nav-links{display:flex; position:absolute; left:0; right:0; top:100%; flex-direction:column; align-items:flex-start; gap:0; background:var(--green-deep); padding:.6rem 1.2rem 1.2rem; box-shadow:var(--shadow-card)}
  #nt:checked ~ .nav-links a{width:100%; padding:.85rem 0; border-bottom:1px solid var(--line-cream); font-size:1.05rem}
  #nt:checked ~ .nav-links a::after{display:none}
  #nt:checked ~ .navtoggle-label span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  #nt:checked ~ .navtoggle-label span:nth-child(2){opacity:0}
  #nt:checked ~ .navtoggle-label span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .site-header .nav{position:relative}
}
@media (max-width:560px){
  .svc-grid,.rev-grid,.doc-grid,.tech-grid,.trustbar .wrap,.foot-top{grid-template-columns:1fr}
  .hero-actions .btn{width:100%; justify-content:center}
  section{padding-block:clamp(2.8rem,9vw,3.6rem)}
}
@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto !important}
  *,*::before,*::after{transition-duration:.01ms !important; animation-duration:.01ms !important}
}
