/* ============================================================
   MFD Virtual Assistant Solutions - site.css
   Single consolidated design system (no stacked override layers).
   Sections: tokens · base · components · pages · responsive
   ============================================================ */

:root {
  /* ---- light palette ---- */
  --white:#FFFFFF; --ivory:#FBF8F3; --paper:#F4EEE5; --paper-2:#EFE7DA;
  --blush:#F0E4DA; --blush-deep:#E4D2C4;

  /* ---- ink ---- */
  --black:#191410; --ink:#2E251C; --ink-soft:#54473B; --muted:#857769;

  /* ---- terracotta accent ---- */
  --terra:#BC5A29; --terra-deep:#9C4820; --terra-soft:#D08A5E; --apricot:#E6B189;

  /* ---- unified dark system: blackened espresso -> walnut (no red mud) ----
     One scale used for EVERY dark surface: bands, contact panel,
     feature testimonial, footer, dark service cell. */
  --espresso:#1E1813;   /* deepest - footer / near-black */
  --walnut:#272019;     /* mid - panels / bands base */
  --cocoa:#312820;      /* lifted - gradient highlight corner */
  --dark-text:#EBE2D6;  /* primary text on dark */
  --dark-text-soft:#C3B5A6;
  --dark-line:rgba(235,226,214,.14);
  --dark-line-strong:rgba(235,226,214,.22);

  /* hairlines on light */
  --line:#E6DDD0; --line-soft:#EFE8DD;

  /* assets */
  --logo:url("logo.png"); --logo-light:url("logo-light.png");
  --logo-mark:url("logo-mark.png"); --logo-mark-light:url("logo-mark-light.png");
  --herobg:url("hero.jpg");

  /* type */
  --display:"Fraunces", Georgia, serif; --body:"Inter", system-ui, sans-serif;

  /* layout + scale */
  --maxw:1440px;
  --pad:clamp(1.25rem, 4vw, 3.75rem);
  --section-y:clamp(3rem, 5.5vw, 5rem);
  --section-y-tight:clamp(1.8rem, 3vw, 2.6rem);

  /* radius + depth */
  --r:12px; --r-sm:8px; --r-pill:999px;
  --shadow:0 30px 64px -40px rgba(40,28,18,.40), 0 2px 6px -3px rgba(40,28,18,.10);
  --shadow-sm:0 18px 40px -30px rgba(40,28,18,.34);
  --ease:cubic-bezier(.22,.61,.36,1);
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html { scroll-behavior:auto; } }

body {
  margin:0; background:var(--ivory); color:var(--ink);
  font-family:var(--body); font-size:1.04rem; line-height:1.7;
  letter-spacing:.002em; -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
body.locked { overflow:hidden; height:100vh; }

h1,h2,h3,h4 {
  font-family:var(--display); font-weight:380; line-height:1.08; margin:0;
  color:var(--black); letter-spacing:-.018em; text-wrap:balance; font-optical-sizing:auto;
}
p { margin:0; }
a { color:inherit; }
img { max-width:100%; display:block; }
.wrap { max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad); }

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

:focus-visible { outline:2.5px solid var(--terra); outline-offset:3px; border-radius:3px; }
.skip { position:absolute; left:-999px; top:0; background:var(--black); color:#fff; padding:.6rem 1rem; z-index:9999; }
.skip:focus { left:0; }

/* ---------- SPLASH ---------- */
#splash { position:fixed; inset:0; z-index:9000; background:var(--ivory); display:grid; place-items:center; overflow:hidden; }
#splash .slogo { width:min(60vw,330px); aspect-ratio:760/450; background:var(--logo) center/contain no-repeat; opacity:0; transform:scale(.98); animation:logoIn .7s cubic-bezier(.2,.7,.2,1) .1s forwards; }
#splash .skipbar { position:absolute; top:1.4rem; right:1.6rem; opacity:0; animation:fadeUp .6s ease .5s forwards; }
#splash .skipbar button { font-family:var(--body); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); background:none; border:0; cursor:pointer; }
#splash .skipbar button:hover { color:var(--terra); }
@keyframes logoIn { to { opacity:1; transform:scale(1); } }
@keyframes fadeUp { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
body.entering #splash { animation:splashFade .9s cubic-bezier(.6,0,.2,1) forwards; }
@keyframes splashFade { to { opacity:0; visibility:hidden; } }
@media (prefers-reduced-motion: reduce){
  #splash .slogo,#splash .skipbar { animation:none; opacity:1; transform:none; }
  body.entering #splash { animation:none; display:none; }
}

/* ============================================================
   SHARED COMPONENTS
   ============================================================ */

/* ---- labels / small caps (one readable tracking everywhere) ---- */
.label { display:inline-flex; align-items:center; gap:.7rem; font-size:.72rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--terra); margin:0; font-family:var(--body); }
.label .n { color:var(--muted); letter-spacing:.16em; }

/* ---- button system (one coherent set) ---- */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-family:var(--body); font-size:.84rem; font-weight:600; letter-spacing:.04em;
  padding:.95rem 1.7rem; border-radius:var(--r-sm);
  border:1px solid var(--terra); background:var(--terra); color:#fff;
  text-decoration:none; cursor:pointer;
  transition:transform .25s var(--ease), background .25s var(--ease), color .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.btn .ar { transition:transform .25s var(--ease); }
.btn:hover { background:var(--terra-deep); border-color:var(--terra-deep); transform:translateY(-1px); box-shadow:0 16px 28px -16px rgba(156,72,32,.55); }
.btn:hover .ar { transform:translateX(4px); }
.btn-ghost { background:transparent; color:var(--terra-deep); border-color:color-mix(in srgb, var(--ink-soft) 40%, transparent); }
.btn-ghost:hover { background:transparent; color:var(--terra-deep); border-color:var(--terra-deep); box-shadow:none; transform:translateY(-1px); }
.btn-onDark { background:var(--apricot); border-color:var(--apricot); color:var(--espresso); }
.btn-onDark:hover { background:#efc59f; border-color:#efc59f; color:var(--espresso); box-shadow:0 16px 28px -18px rgba(230,177,137,.5); }
.arrow-link { display:inline-flex; align-items:center; gap:.5rem; font-family:var(--body); font-weight:600; font-size:.8rem; letter-spacing:.06em; text-transform:uppercase; color:var(--terra-deep); text-decoration:none; }
.arrow-link .ar { transition:transform .25s var(--ease); }
.arrow-link:hover .ar { transform:translateX(4px); }

/* ---------- header ---------- */
header { position:sticky; top:0; z-index:60; background:color-mix(in srgb, var(--ivory) 84%, transparent); backdrop-filter:blur(14px); border-bottom:1px solid transparent; transition:border-color .3s ease, background .3s ease; }
header.scrolled { border-bottom-color:var(--line); background:color-mix(in srgb, var(--ivory) 92%, transparent); }
.nav { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:1rem; padding-block:.9rem; }
.nav > nav { justify-self:center; }
.nav .nav-cta { justify-self:end; }
.brand-logo { display:block; width:150px; height:69px; margin-left:-2px; background:var(--logo-mark) left center/contain no-repeat; }
.nav-links { display:flex; align-items:center; gap:2.2rem; list-style:none; margin:0; padding:0; }
.nav-links a { text-decoration:none; font-size:.78rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); opacity:.74; transition:color .15s, opacity .15s; position:relative; }
.nav-links a:hover { color:var(--terra); opacity:1; }
.nav-links a.active { color:var(--terra); opacity:1; }
.nav-links a.active::after { content:""; position:absolute; left:0; right:0; bottom:-6px; height:1.5px; background:var(--terra); }
.nav-cta { display:flex; align-items:center; gap:1rem; }
.nav-cta .btn { padding:.66rem 1.35rem; }
.menu-btn { display:none; background:none; border:0; cursor:pointer; padding:.4rem; }
.menu-btn span { display:block; width:22px; height:2px; background:var(--black); margin:4px 0; transition:.2s; }

/* ---------- hero ---------- */
.hero { position:relative; min-height:clamp(600px,90vh,860px); display:flex; flex-direction:column; justify-content:center; overflow:hidden; isolation:isolate; }
.hero-bg { position:absolute; inset:0; background:var(--herobg) center 34%/cover no-repeat; z-index:-2; transform:scale(1.04); }
.hero-bg::after {
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(102deg, rgba(20,15,10,.76) 0%, rgba(26,19,13,.52) 32%, rgba(32,23,15,.18) 58%, rgba(32,23,15,0) 80%),
    linear-gradient(0deg, rgba(16,11,7,.46), rgba(16,11,7,0) 36%);
}
.hero .wrap { position:relative; z-index:2; width:100%; padding-block:clamp(3.4rem,9vw,6rem); flex:1; display:flex; align-items:center; }
.hero-copy { max-width:40rem; }
.hero h1 { color:var(--ivory); font-size:clamp(2.5rem,6.4vw,5rem); font-weight:330; letter-spacing:-.032em; line-height:1.0; max-width:18ch; text-wrap:balance; }
.hero h1 .it { font-style:italic; color:var(--apricot); font-weight:330; }
.hero-deck { font-family:var(--display); font-style:italic; font-weight:360; font-size:clamp(1.35rem,2.9vw,2.15rem); color:var(--apricot); line-height:1.2; margin:1.1rem 0 0; letter-spacing:-.01em; }
.hero-sub { font-size:clamp(1.04rem,1.5vw,1.2rem); color:rgba(251,248,243,.92); margin:1.6rem 0 2.4rem; max-width:42ch; }
.hero-cta { display:flex; flex-wrap:wrap; gap:.85rem; }
.hero .btn-ghost { color:var(--ivory); border-color:rgba(251,248,243,.5); }
.hero .btn-ghost:hover { background:rgba(251,248,243,.08); color:var(--ivory); border-color:var(--ivory); }
.hero-trust { position:relative; z-index:2; background:rgba(18,13,8,.52); backdrop-filter:blur(6px); border-top:1px solid rgba(251,248,243,.16); }
.hero-trust .row { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.9rem 2.4rem; padding-block:1.5rem; }
.hero-trust span.ti { display:inline-flex; align-items:center; gap:.7rem; font-size:.74rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:rgba(251,248,243,.92); white-space:nowrap; position:relative; }
.hero-trust span.ti::after { content:""; position:absolute; right:calc(-1.2rem - 1px); top:50%; transform:translateY(-50%); width:1px; height:14px; background:rgba(251,248,243,.22); }
.hero-trust span.ti:last-child::after { display:none; }
.hero-trust .tk { width:6px; height:6px; border-radius:50%; background:var(--apricot); flex:none; box-shadow:0 0 0 4px rgba(230,177,137,.16); }
@media (max-width:760px){
  .hero-trust .row { justify-content:flex-start; gap:.9rem 1.5rem; }
  .hero-trust span.ti::after { display:none; }
}

/* ---------- section + rhythm ---------- */
.section { padding-block:var(--section-y); position:relative; }
.section.tight-top { padding-top:var(--section-y-tight); }
.section.tight-bottom { padding-bottom:var(--section-y-tight); }
.sec-head { margin-bottom:clamp(1.8rem,3vw,2.6rem); }
.sec-head.split { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
.sec-head .label { margin-bottom:1.1rem; }
.sec-head h2 { font-size:clamp(2.2rem,5vw,3.4rem); font-weight:360; }
.sec-head h2 .it { font-style:italic; color:var(--terra); }
.sec-head .price-note { font-size:.72rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--terra-deep); white-space:nowrap; padding-bottom:.5rem; }

/* ---------- interior page intro (tighter header system) ---------- */
.page-intro { padding-block:clamp(2.4rem,4vw,3.4rem) clamp(1.4rem,2.4vw,2rem); background:var(--paper); border-bottom:1px solid var(--line); }
.page-intro .label { margin-bottom:1.1rem; }
.page-intro h1 { font-family:var(--display); font-weight:320; font-size:clamp(2rem,4.4vw,3.35rem); line-height:1.06; letter-spacing:-.02em; color:var(--black); margin:0 0 1rem; max-width:24ch; text-wrap:balance; }
.page-intro h1.oneline { max-width:30ch; }
.page-intro h1 .it { font-style:italic; color:var(--terra); font-weight:300; }
.page-intro .lead { font-size:clamp(1.02rem,1.4vw,1.18rem); color:var(--ink-soft); max-width:54ch; line-height:1.6; }

/* ---------- homepage process cards ---------- */
.teasers { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.2rem,2.4vw,2rem); }
.tcard { position:relative; display:flex; flex-direction:column; background:var(--white); border:1px solid var(--line); border-radius:var(--r); padding:clamp(1.7rem,2.4vw,2.4rem); text-decoration:none; color:inherit; overflow:hidden; transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease); }
.tcard::before { content:""; position:absolute; left:0; top:0; width:34px; height:3px; background:var(--terra); opacity:0; transition:opacity .25s var(--ease); }
.tcard:hover { transform:translateY(-3px); box-shadow:var(--shadow); border-color:var(--apricot); }
.tcard:hover::before { opacity:1; }
.tcard .tnum { display:flex; align-items:center; gap:.6rem; font-family:var(--body); font-weight:600; font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:1.1rem; }
.tcard .tnum b { font-family:var(--display); font-style:italic; font-weight:400; font-size:1.5rem; letter-spacing:0; color:var(--terra); }
.tcard h3 { font-family:var(--display); font-weight:360; font-size:clamp(1.3rem,2.2vw,1.7rem); color:var(--black); margin:0 0 .7rem; letter-spacing:-.01em; }
.tcard p { color:var(--ink-soft); line-height:1.6; margin:0 0 1.4rem; font-size:.98rem; flex:1; }
.tcard .go { font-family:var(--body); font-weight:600; font-size:.8rem; letter-spacing:.06em; text-transform:uppercase; color:var(--terra-deep); display:inline-flex; align-items:center; gap:.5rem; }
.tcard .go .ar { transition:transform .25s var(--ease); }
.tcard:hover .go .ar { transform:translateX(4px); }

/* ---------- homepage mini-about (on dark band) ---------- */
.mini-about { display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(2rem,5vw,4.5rem); align-items:stretch; }
.mini-about .ph { position:relative; border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow); min-height:100%; }
.mini-about .ph img { display:block; width:100%; height:100%; object-fit:cover; min-height:340px; filter:saturate(.97) contrast(1.02); }
.mini-about .copy { display:flex; flex-direction:column; justify-content:center; }
.mini-about h2 { font-family:var(--display); font-weight:320; font-size:clamp(1.7rem,3.4vw,2.5rem); line-height:1.12; letter-spacing:-.015em; margin:0 0 1.1rem; }
.mini-about h2 .it { font-style:italic; color:var(--terra); }
.mini-about p { color:var(--ink-soft); line-height:1.68; margin:0 0 1rem; }

/* ---------- homepage pull quote ---------- */
.pullquote { max-width:48rem; margin:0 auto; text-align:center; }
.pullquote .stars { justify-content:center; margin-bottom:1.6rem; color:var(--terra); letter-spacing:.22em; font-size:.8rem; }
.pullquote blockquote { font-family:var(--display); font-weight:330; font-style:italic; font-size:clamp(1.4rem,2.8vw,2.1rem); line-height:1.4; color:var(--black); margin:0 0 1.6rem; letter-spacing:-.012em; }
.pullquote blockquote::before { content:"\201C"; color:var(--terra); }
.pullquote blockquote::after { content:"\201D"; color:var(--terra); }
.pullquote .who { display:flex; flex-direction:column; gap:.2rem; align-items:center; }
.pullquote .who .nm { font-weight:600; color:var(--black); font-size:.95rem; }
.pullquote .who .rl { color:var(--muted); font-size:.85rem; }

/* ---------- services grid (dossier) ---------- */
.svc-grid { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; background:var(--white); }
.scard { position:relative; padding:clamp(1.9rem,3vw,2.5rem) clamp(1.7rem,2.4vw,2.15rem); display:flex; flex-direction:column; border-right:1px solid var(--line); border-bottom:1px solid var(--line); transition:background .24s ease; }
.scard:nth-child(3n) { border-right:0; }
.scard:nth-child(n+7) { border-bottom:0; }
.scard:hover { background:var(--ivory); }
.scard .idx { display:flex; align-items:center; gap:.6rem; font-family:var(--body); font-style:normal; font-size:.72rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--terra-deep); line-height:1; margin-bottom:1.2rem; }
.scard .idx::before { content:""; display:inline-block; width:22px; height:1px; background:var(--terra); opacity:.7; }
.scard .idx::after { content:""; height:1px; flex:1; background:var(--line); }
.scard h3 { font-size:clamp(1.2rem,2vw,1.4rem); margin-bottom:.45rem; font-weight:400; letter-spacing:-.01em; }
.scard .bestfor { font-size:.8rem; color:var(--ink-soft); margin:.1rem 0 1rem; }
.scard .bestfor b { color:var(--terra-deep); font-weight:600; }
.scard .svc-desc { font-size:.9rem; color:var(--ink-soft); line-height:1.55; margin:0 0 1rem; }
.scard ul { list-style:none; margin:0; padding:0; display:grid; gap:.55rem; }
.scard li { position:relative; padding-left:1.4rem; font-size:.9rem; color:var(--ink-soft); line-height:1.5; }
.scard li::before { content:""; position:absolute; left:0; top:.55em; width:5px; height:5px; border-radius:50%; background:var(--terra); }
.scard .firsttask { margin-top:1.2rem; padding-top:1rem; border-top:1px solid var(--line); font-size:.78rem; color:var(--muted); }
.scard .firsttask b { color:var(--ink); font-weight:600; }
.scard.start { background:var(--walnut); grid-column:1 / -1; border-right:0; border-bottom:0; display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:clamp(1.2rem,3vw,2.5rem); flex-wrap:wrap; }
.scard.start > div { flex:1 1 auto; min-width:0; }
.scard.start .enq { margin-top:0; padding-top:0; flex:0 0 auto; white-space:nowrap; }
@media (max-width:640px){ .scard.start { align-items:flex-start; } .scard.start .enq { white-space:normal; } }
.scard.start:hover { background:var(--cocoa); }
.scard.start .idx { color:var(--apricot); }
.scard.start .idx::before { background:var(--apricot); opacity:.8; }
.scard.start .idx::after { background:var(--dark-line); }
.scard.start .start-h { font-family:var(--display); color:var(--dark-text); font-size:clamp(1.5rem,2.6vw,2rem); font-weight:340; line-height:1.05; margin-top:.4rem; letter-spacing:-.015em; }
.scard.start p { color:var(--dark-text-soft); font-size:.92rem; margin-top:.7rem; }
.scard.start .enq { margin-top:auto; display:inline-flex; align-items:center; gap:.6rem; font-size:.74rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--apricot); text-decoration:none; padding-top:1.4rem; }
.scard.start .enq .ar { transition:transform .2s ease; }
.scard.start .enq:hover .ar { transform:translateX(4px); }

/* services intro two-column */
.svc-intro-duo { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,4vw,3.4rem); align-items:stretch; }
.svc-intro-duo .svc-body { display:flex; flex-direction:column; justify-content:center; }
.svc-intro-duo .svc-body h2 { font-family:var(--display); font-weight:340; font-size:clamp(1.7rem,3.4vw,2.5rem); line-height:1.14; letter-spacing:-.015em; color:var(--black); margin:0 0 1.1rem; }
.svc-intro-duo .svc-body p { color:var(--ink-soft); line-height:1.7; margin:0 0 1rem; max-width:52ch; }
.svc-intro-duo .svc-body p:last-child { margin-bottom:0; }
.svc-intro-duo .svc-media { position:relative; border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow); min-height:100%; }
.svc-intro-duo .svc-media img { width:100%; height:100%; object-fit:cover; min-height:300px; display:block; filter:saturate(.97) contrast(1.02); }
.svc-intro-duo .svc-media .mcap { position:absolute; left:0; right:0; bottom:0; padding:1.4rem 1.5rem .9rem; background:linear-gradient(0deg, rgba(20,15,10,.62), transparent); color:var(--ivory); font-size:.74rem; letter-spacing:.04em; font-weight:500; }

.scard .priceline { display:inline-flex; align-items:baseline; gap:.4rem; margin:0 0 1rem; font-family:var(--body); font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--terra-deep); }
.scard .priceline .poa { color:var(--muted); }

/* free consultation strip */
.consult { display:flex; align-items:center; justify-content:space-between; gap:clamp(1.2rem,3vw,2.4rem); flex-wrap:wrap; background:var(--white); border:1px solid var(--line); border-left:3px solid var(--terra); border-radius:var(--r); padding:clamp(1.4rem,2.4vw,1.9rem) clamp(1.5rem,2.6vw,2.2rem); box-shadow:var(--shadow-sm); }
.consult h3 { font-family:var(--display); font-weight:360; font-size:clamp(1.15rem,2.1vw,1.5rem); margin:0 0 .4rem; letter-spacing:-.01em; }
.consult p { margin:0; color:var(--ink-soft); font-size:.95rem; line-height:1.6; max-width:56ch; }
@media (max-width:640px){ .consult { flex-direction:column; align-items:flex-start; } }

/* price badge */
.price-badge { display:inline-flex; align-items:baseline; gap:.5rem; background:var(--white); border:1px solid var(--line); border-radius:var(--r-pill); padding:.55rem 1.25rem; margin-top:1.4rem; box-shadow:var(--shadow-sm); }
.price-badge .amt { font-family:var(--display); font-size:1.3rem; color:var(--terra-deep); line-height:1; }
.price-badge .unit { font-size:.7rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.price-badge .sep { width:1px; align-self:stretch; background:var(--line); margin:0 .2rem; }
.price-badge .start { font-size:.78rem; color:var(--ink-soft); }

/* services help block */
.helpblock { margin-top:clamp(1.6rem,3vw,2.4rem); display:grid; grid-template-columns:1fr auto; align-items:center; gap:clamp(1.2rem,3vw,2.4rem); background:var(--paper); border:1px solid var(--line); border-radius:var(--r); padding:clamp(1.6rem,3vw,2.2rem) clamp(1.6rem,3vw,2.6rem); }
.helpblock h3 { font-family:var(--display); font-weight:360; font-size:clamp(1.25rem,2.2vw,1.6rem); color:var(--black); margin:0 0 .35rem; }
.helpblock p { color:var(--ink-soft); font-size:.95rem; margin:0; max-width:48ch; }
.helpblock .btn { white-space:nowrap; }

/* ---------- about ---------- */
.about-grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:clamp(2.4rem,5vw,4.5rem); align-items:center; }
.about-photo { position:relative; max-width:380px; }
.about-photo img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center 18%; border-radius:var(--r); box-shadow:var(--shadow); filter:saturate(.97) contrast(1.02); }
.about-photo .cap { position:absolute; z-index:2; left:14px; bottom:14px; background:rgba(20,15,10,.78); backdrop-filter:blur(4px); color:var(--ivory); padding:.7rem 1.05rem; border-radius:var(--r-sm); border-left:2px solid var(--apricot); }
.about-photo .cap .nm { font-family:var(--display); font-style:italic; font-size:1rem; line-height:1.1; display:block; }
.about-photo .cap .rl { font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:#cdbfb0; }
.about-body .label { margin-bottom:1.3rem; }

/* homepage about: photo fills column and matches body height (shorter/wider) */
.about-grid--media-fill { align-items:center; }
.about-photo--fill { max-width:none; }
.about-photo--fill img { aspect-ratio:5/5.5; height:auto; width:100%; min-height:0; object-position:center 20%; }
@media (max-width:980px){
  .about-grid--media-fill { align-items:center; }
  .about-photo--fill { max-width:340px; margin-inline:auto; }
  .about-photo--fill img { aspect-ratio:4/5; min-height:0; }
}
.about-body h2 { font-size:clamp(2.1rem,4.4vw,3.1rem); margin-bottom:1.5rem; font-weight:360; }
.about-body h2 .it { font-style:italic; color:var(--terra); }
.about-lead { font-size:1.05rem; color:var(--ink); margin-bottom:1.2rem; font-weight:500; }
.about-body p { color:var(--ink-soft); max-width:60ch; font-size:.98rem; }
.about-body p + p { margin-top:1.05rem; }
.about-body .sig { margin-top:1.8rem; font-family:var(--display); font-style:italic; font-size:1.2rem; color:var(--terra); }
.about-body .sig small { display:block; font-style:normal; font-family:var(--body); font-size:.64rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-top:.35rem; }

/* about duo (Hands on, head clear) - horizontal editorial crop */
.duo { display:grid; grid-template-columns:1fr 1fr; gap:0; align-items:stretch; background:var(--white); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow-sm); }
.duo.reverse .duo-media { order:2; }
.duo-media { position:relative; overflow:hidden; min-height:100%; }
.duo-media img { display:block; width:100%; height:100%; object-fit:cover; min-height:320px; filter:saturate(.97) contrast(1.02); }
.duo-body { display:flex; flex-direction:column; justify-content:center; padding:clamp(2rem,4vw,3.4rem); }
.duo-body h2 { font-family:var(--display); font-weight:320; font-size:clamp(1.6rem,3.2vw,2.4rem); line-height:1.12; letter-spacing:-.015em; color:var(--black); margin:0 0 1.1rem; }
.duo-body h2 .it { font-style:italic; color:var(--terra); }
.duo-body p { color:var(--ink-soft); line-height:1.68; margin:0 0 1rem; }
.duo-body p:last-child { margin-bottom:0; }

/* ---------- accreditation cards (readable, text-led) ---------- */
.accred-band { padding-block:clamp(2.6rem,5vw,3.8rem); border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--paper); }
.accred { display:flex; flex-direction:column; align-items:center; gap:1.8rem; text-align:center; }
.accred .at { font-size:.74rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
.accred .logos { display:flex; flex-wrap:wrap; align-items:stretch; justify-content:center; gap:clamp(1.2rem,3vw,1.8rem); width:100%; }
.accred .badge { flex:1 1 240px; max-width:340px; display:flex; flex-direction:column; align-items:center; gap:1rem; background:var(--white); border:1px solid var(--line); border-radius:var(--r); padding:1.8rem 1.6rem 1.5rem; box-shadow:var(--shadow-sm); }
.accred .badge img { height:150px; width:auto; }
.accred .badge .bl { font-size:.7rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--ink); }

/* ---------- dark credentials band ---------- */
.band { position:relative; color:var(--dark-text); overflow:hidden;
  background:linear-gradient(155deg, var(--cocoa) 0%, var(--walnut) 48%, var(--espresso) 100%); }
.band > .wrap { position:relative; z-index:1; }
.band-head { margin-bottom:clamp(2rem,3.6vw,2.8rem); }
.band-head .label { color:var(--apricot); margin-bottom:1rem; }
.band-head h2 { color:var(--dark-text); font-size:clamp(1.9rem,4vw,2.8rem); font-weight:340; }
.band-head h2 .it { font-style:italic; color:var(--apricot); }
.cred-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; border-top:1px solid var(--dark-line); }
.cred { padding:1.9rem 1.4rem .4rem 0; border-right:1px solid var(--dark-line); }
.cred:last-child { border-right:0; }
.cred .tk { font-size:.64rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--apricot); opacity:.9; margin-bottom:1rem; }
.cred .big { font-family:var(--display); font-weight:360; font-size:clamp(1.9rem,3.6vw,2.7rem); color:var(--apricot); line-height:1; margin-bottom:.65rem; }
.cred .desc { font-size:.9rem; color:var(--dark-text-soft); line-height:1.5; }
.band .mini-about h2 { color:var(--dark-text); }
.band .mini-about h2 .it { color:var(--apricot); }
.band .mini-about p { color:var(--dark-text-soft); }
.band .mini-about .label { color:var(--apricot); }
.band .mini-about .btn-ghost { color:var(--dark-text); border-color:var(--dark-line-strong); }
.band .mini-about .btn-ghost:hover { background:rgba(235,226,214,.08); color:var(--ivory); border-color:var(--ivory); }

/* ---------- testimonials ---------- */
.testi-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:1.5rem; align-items:stretch; }
.testi { position:relative; border:1px solid var(--line); border-radius:var(--r); padding:2rem 2.4rem 1.9rem; display:flex; flex-direction:column; background:var(--white); }
.testi.feature { background:linear-gradient(155deg, var(--cocoa) 0%, var(--walnut) 55%, var(--espresso) 100%); border-color:var(--walnut); color:var(--dark-text); }
.testi .stars { color:var(--terra); letter-spacing:.22em; font-size:.8rem; margin:0 0 1.3rem; }
.testi.feature .stars { color:var(--apricot); }
.testi p { font-family:var(--display); font-weight:360; font-size:clamp(1.12rem,1.9vw,1.38rem); line-height:1.5; color:var(--ink); margin:0 0 1.4rem; letter-spacing:-.006em; }
.testi.feature p { color:var(--dark-text); }
.testi .who { margin-top:auto; display:flex; align-items:center; gap:.95rem; padding-top:1.2rem; border-top:1px solid var(--line); }
.testi.feature .who { border-top-color:var(--dark-line); }
.testi .avatar { width:44px; height:44px; border-radius:50%; background:var(--blush); color:var(--terra-deep); display:grid; place-items:center; font-family:var(--display); font-weight:500; font-size:1.05rem; flex:none; }
.testi.feature .avatar { background:var(--terra); color:#fff; }
.testi .who .nm { font-weight:600; letter-spacing:.06em; font-size:.84rem; text-transform:uppercase; color:var(--black); }
.testi.feature .who .nm { color:var(--dark-text); }
.testi .who .rl { font-size:.84rem; color:var(--muted); }
.testi.feature .who .rl { color:var(--dark-text-soft); }

/* ---------- testimonials carousel ---------- */
.testi-carousel { position:relative; max-width:78rem; margin:0 auto; }
.testi-viewport { overflow:hidden; }
.testi-track { display:flex; align-items:stretch; transition:transform .55s var(--ease); }
.testi-slide { flex:0 0 50%; min-width:0; display:flex; padding:0 .7rem; }
.testi-slide .testi { width:100%; }
.testi .stars { color:var(--terra); letter-spacing:.3em; font-size:1.2rem; margin:0 0 1.5rem; }
.testi.feature .stars { color:var(--apricot); }
.testi-controls { display:flex; align-items:center; justify-content:center; gap:1.5rem; margin-top:1.9rem; }
.testi-arrow { width:50px; height:50px; border-radius:50%; border:1px solid var(--line); background:var(--white); color:var(--ink); display:grid; place-items:center; cursor:pointer; font-size:1.15rem; line-height:1; box-shadow:var(--shadow-sm); transition:border-color .2s var(--ease), color .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease); }
.testi-arrow:hover { border-color:var(--terra); color:var(--terra); transform:translateY(-1px); box-shadow:var(--shadow); }
.testi-dots { display:flex; align-items:center; gap:.55rem; }
.testi-dots button { width:11px; height:11px; padding:0; border:1.5px solid var(--blush-deep); border-radius:50%; background:transparent; cursor:pointer; transition:background .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease); }
.testi-dots button:hover { border-color:var(--terra); }
.testi-dots button.active { background:var(--terra); border-color:var(--terra); transform:scale(1.05); }

/* ---------- FAQ ---------- */
.faq-layout { display:grid; grid-template-columns:1fr; gap:clamp(1.6rem,3vw,2.4rem); }
.faq-hint { font-size:.72rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin:0 0 1rem; }
.faq-list { border-top:1px solid var(--ink); }
.faq-item { border-bottom:1px solid var(--line); transition:background .2s var(--ease); }
.faq-item.open { background:linear-gradient(0deg, transparent, rgba(244,238,229,.5)); }
.faq-q { width:100%; text-align:left; background:none; border:0; cursor:pointer; padding:1.5rem 3.2rem 1.5rem 0; position:relative; font-family:var(--display); font-size:clamp(1.1rem,2vw,1.4rem); font-weight:360; color:var(--black); letter-spacing:-.01em; transition:color .15s; }
.faq-q:hover { color:var(--terra); }
.faq-q .pm { position:absolute; right:.2rem; top:50%; transform:translateY(-50%); width:17px; height:17px; }
.faq-q .pm::before,.faq-q .pm::after { content:""; position:absolute; background:var(--terra); transition:transform .25s ease, opacity .2s; }
.faq-q .pm::before { left:0; right:0; top:50%; height:1.5px; transform:translateY(-50%); }
.faq-q .pm::after { top:0; bottom:0; left:50%; width:1.5px; transform:translateX(-50%); }
.faq-item.open .faq-q .pm::after { opacity:0; transform:translateX(-50%) scaleY(0); }
.faq-a { max-height:0; overflow:hidden; transition:max-height .35s ease; }
.faq-a-inner { padding:0 0 1.6rem; color:var(--ink-soft); line-height:1.7; max-width:62ch; }
.faq-a-inner a { color:var(--terra); text-decoration:underline; text-underline-offset:2px; }
.faq-item.open .faq-a { max-height:600px; }
@media (prefers-reduced-motion: reduce){ .faq-a { transition:none; } }
.faq-aside { background:var(--paper); border:1px solid var(--line); border-radius:var(--r); padding:1.8rem 1.7rem; }
.faq-aside .label { margin-bottom:1rem; }
.faq-aside h3 { font-family:var(--display); font-weight:360; font-size:1.35rem; color:var(--black); margin:0 0 .7rem; line-height:1.2; }
.faq-aside p { font-size:.92rem; color:var(--ink-soft); margin:0 0 1.3rem; }

/* ---------- contact panel ---------- */
.contact-panel { position:relative; display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,5vw,4rem); border-radius:var(--r); padding:clamp(2.4rem,5vw,4rem); overflow:hidden; color:var(--dark-text);
  background:linear-gradient(150deg, var(--cocoa) 0%, var(--walnut) 50%, var(--espresso) 100%); box-shadow:var(--shadow); }
.contact-panel::before { content:""; position:absolute; inset:0; border-radius:var(--r); border:1px solid rgba(235,226,214,.08); pointer-events:none; }
.contact-left { position:relative; z-index:1; }
.contact-left .label { color:var(--apricot); margin-bottom:1.2rem; }
.contact-left h2 { color:var(--dark-text); font-size:clamp(2.3rem,5vw,3.4rem); font-weight:340; }
.contact-left h2 .it { font-style:italic; color:var(--apricot); }
.contact-left p { color:var(--dark-text-soft); margin:1.1rem 0 0; max-width:40ch; }
.contact-left .reassure { font-size:.88rem; color:rgba(235,226,214,.6); margin-top:1.4rem; }
.contact-right { position:relative; z-index:1; display:flex; flex-direction:column; gap:1.1rem; justify-content:center; }
.cfield { display:block; border:1px solid var(--dark-line-strong); border-radius:var(--r-sm); padding:1.1rem 1.3rem; text-decoration:none; transition:border-color .2s ease, background .2s ease; }
.cfield:hover { border-color:var(--apricot); background:rgba(235,226,214,.05); }
.cfield .cl { display:block; font-size:.62rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:rgba(235,226,214,.55); margin-bottom:.45rem; }
.cfield .cv { display:inline-flex; align-items:center; gap:.6rem; font-family:var(--display); font-size:1.18rem; color:var(--dark-text); }
.cfield .cv .ar { transition:transform .2s ease; color:var(--apricot); }
.cfield:hover .cv .ar { transform:translateX(4px); }

/* contact form */
.contact-form { display:grid; gap:1.05rem; }
.ff { display:grid; gap:.4rem; }
.ff label { font-size:.66rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:rgba(235,226,214,.62); }
.ff input, .ff textarea, .ff select {
  font-family:var(--body); font-size:.98rem; color:var(--dark-text); background:rgba(235,226,214,.05);
  border:1px solid var(--dark-line-strong); border-radius:var(--r-sm); padding:.85rem 1rem; width:100%;
  transition:border-color .2s var(--ease), background .2s var(--ease), box-shadow .2s var(--ease);
}
.ff textarea { min-height:96px; resize:vertical; line-height:1.55; }
.ff input::placeholder, .ff textarea::placeholder { color:rgba(235,226,214,.4); }
.ff input:focus, .ff textarea:focus, .ff select:focus { outline:none; border-color:var(--apricot); background:rgba(235,226,214,.09); box-shadow:0 0 0 3px rgba(230,177,137,.16); }
.ff input:user-invalid, .ff textarea:user-invalid { border-color:#d98a6b; box-shadow:0 0 0 3px rgba(217,138,107,.14); }
.ff select option { color:#191410; }
.contact-form .btn { margin-top:.4rem; }
.ff-row { display:grid; grid-template-columns:1fr 1fr; gap:1.05rem; }
.form-note { font-size:.78rem; color:rgba(235,226,214,.55); margin:.2rem 0 0; }
.form-note a { color:var(--apricot); }

/* contact left guidance */
.write-prompts { list-style:none; margin:1.3rem 0 0; padding:0; display:grid; gap:.65rem; }
.write-prompts li { position:relative; padding-left:1.4rem; font-size:.94rem; color:var(--dark-text-soft); line-height:1.5; }
.write-prompts li::before { content:""; position:absolute; left:0; top:.55em; width:6px; height:6px; border-radius:50%; background:var(--apricot); }
.reassure-chips { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.6rem; }
.reassure-chips .chip { font-size:.74rem; font-weight:600; letter-spacing:.04em; color:var(--dark-text-soft); border:1px solid var(--dark-line-strong); border-radius:var(--r-pill); padding:.4rem .9rem; }
.reassure-chips .chip.accent { background:var(--apricot); color:var(--espresso); border-color:var(--apricot); }
.reassure-chips a.chip { text-decoration:none; transition:background .2s var(--ease), transform .2s var(--ease); }
.reassure-chips a.chip.accent:hover { background:#efc59f; transform:translateY(-1px); }
.contact-panel--light .reassure-chips a.chip.accent { background:var(--terra); color:#fff; border-color:var(--terra); }
.contact-panel--light .reassure-chips a.chip.accent:hover { background:var(--terra-deep); }

/* ---------- footer ---------- */
footer { background:var(--espresso); color:#cdbfb2; padding-block:clamp(3.2rem,6vw,4.6rem); }
.foot-grid { display:grid; grid-template-columns:1.8fr 1fr 1fr; gap:3.2rem; align-items:start; }
.foot-logo { width:150px; height:70px; background:var(--logo-mark-light) left center/contain no-repeat; margin-bottom:1.2rem; margin-left:-2px; opacity:.96; }
.foot-tag { max-width:34ch; color:#b3a597; font-size:.94rem; font-style:italic; }
footer h4 { font-family:var(--body); text-transform:uppercase; letter-spacing:.16em; font-size:.68rem; color:#9c8d7e; margin:0 0 1.2rem; font-weight:600; }
.foot-links { list-style:none; margin:0; padding:0; display:grid; gap:.66rem; }
.foot-links a { color:#cdbfb2; text-decoration:none; font-size:.93rem; transition:color .15s; }
.foot-links a:hover { color:var(--apricot); }
.foot-bottom { margin-top:3rem; padding-top:1.6rem; border-top:1px solid var(--dark-line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:.8rem; font-size:.78rem; color:#9c8d7e; }
.foot-legal a { color:#a89a8c; }

/* ---------- contact page: dark intro + light form panel ---------- */
.page-intro--dark { background:linear-gradient(150deg, var(--cocoa) 0%, var(--walnut) 50%, var(--espresso) 100%); border-bottom:0; color:var(--dark-text); }
.page-intro--dark .label { color:var(--apricot); }
.page-intro--dark h1 { color:var(--dark-text); }
.page-intro--dark h1 .it { color:var(--apricot); }
.page-intro--dark .lead { color:var(--dark-text-soft); }

.contact-panel--light { background:var(--white); border:1px solid var(--line); color:var(--ink); box-shadow:var(--shadow); }
.contact-panel--light::before { border-color:var(--line); }
.contact-panel--light .contact-left .label { color:var(--terra); }
.contact-panel--light .contact-left h2 { color:var(--black); }
.contact-panel--light .contact-left h2 .it { color:var(--terra); }
.contact-panel--light .contact-left p { color:var(--ink-soft); }
.contact-panel--light .contact-left .reassure { color:var(--muted); }
.contact-panel--light .write-prompts li { color:var(--ink-soft); }
.contact-panel--light .write-prompts li::before { background:var(--terra); }
.contact-panel--light .reassure-chips .chip { color:var(--ink-soft); border-color:var(--line); }
.contact-panel--light .reassure-chips .chip.accent { background:var(--terra); color:#fff; border-color:var(--terra); }
.contact-panel--light .ff label { color:var(--muted); }
.contact-panel--light .ff input, .contact-panel--light .ff textarea, .contact-panel--light .ff select {
  color:var(--ink); background:var(--ivory); border-color:var(--line);
}
.contact-panel--light .ff input::placeholder, .contact-panel--light .ff textarea::placeholder { color:var(--muted); }
.contact-panel--light .ff input:focus, .contact-panel--light .ff textarea:focus, .contact-panel--light .ff select:focus {
  border-color:var(--terra); background:var(--white); box-shadow:0 0 0 3px rgba(188,90,41,.14);
}
.contact-panel--light .contact-form .btn { background:var(--terra); border-color:var(--terra); color:#fff; }
.contact-panel--light .contact-form .btn:hover { background:var(--terra-deep); border-color:var(--terra-deep); }
.contact-panel--light .form-note { color:var(--muted); }
.contact-panel--light .form-note a { color:var(--terra); }

/* contact panel: terracotta variant (brings brand orange in as a section bg) */
.contact-panel--terra { background:radial-gradient(125% 95% at 14% 0%, rgba(255,255,255,.17) 0%, rgba(255,255,255,0) 46%), linear-gradient(150deg, rgba(188,90,41,.93) 0%, rgba(156,72,32,.94) 55%, rgba(130,58,27,.95) 100%); box-shadow:0 44px 84px -44px rgba(130,58,27,.7), 0 6px 16px -8px rgba(40,28,18,.32); }
.contact-panel--terra::before { border-color:rgba(255,255,255,.24); box-shadow:inset 0 1px 0 rgba(255,255,255,.2); }
.contact-panel--terra::before { border-color:rgba(255,255,255,.18); }
.contact-panel--terra .contact-left .label { color:#FBE9DC; }
.contact-panel--terra .contact-left h2 { color:#fff; }
.contact-panel--terra .contact-left h2 .it { color:#FBE9DC; }
.contact-panel--terra .contact-left p { color:rgba(255,255,255,.92); }
.contact-panel--terra .contact-left .reassure { color:rgba(255,255,255,.74); }
.contact-panel--terra .cfield { border-color:rgba(255,255,255,.34); }
.contact-panel--terra .cfield:hover { border-color:#fff; background:rgba(255,255,255,.10); }
.contact-panel--terra .cfield .cl { color:rgba(255,255,255,.72); }
.contact-panel--terra .cfield .cv { color:#fff; }
.contact-panel--terra .cfield .cv .ar { color:#FBE9DC; }

.sec-head .sec-lead { color:var(--ink-soft); max-width:60ch; margin-top:1rem; line-height:1.7; }
[aria-label="What sets me apart"] .sec-lead { max-width:none; }
.teasers-4 { grid-template-columns:repeat(4,1fr); }
@media (max-width:980px){ .teasers-4 { grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .teasers-4 { grid-template-columns:1fr; } }

.sr-only { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* ---------- reveal ---------- */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .85s ease, transform .85s ease; }
.reveal.in { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal { opacity:1; transform:none; transition:none; } }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  .about-grid { grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,4vw,3rem); }
}
@media (max-width:980px){
  .about-grid, .testi-grid, .contact-panel, .foot-grid,
  .svc-intro-duo, .duo, .mini-about { grid-template-columns:1fr; }
  .duo.reverse .duo-media { order:0; }
  .svc-grid { grid-template-columns:1fr 1fr; }
  .scard:nth-child(3n) { border-right:1px solid var(--line); }
  .scard:nth-child(2n) { border-right:0; }
  .scard:nth-child(n+4) { border-bottom:1px solid var(--line); }
  .scard:nth-child(n+5) { border-bottom:0; }
  .cred-grid { grid-template-columns:1fr 1fr; }
  .cred:nth-child(2) { border-right:0; }
  .about-photo { max-width:340px; margin-inline:auto; }
  .duo-media img { aspect-ratio:16/10; min-height:0; }
  .svc-intro-duo .svc-media img { aspect-ratio:16/10; min-height:0; }
  .mini-about .ph img { aspect-ratio:16/10; min-height:0; }
  .duo-media, .svc-intro-duo .svc-media, .mini-about .ph { min-height:0; }
  .helpblock { grid-template-columns:1fr; }
  .helpblock .btn { width:100%; }
}
@media (min-width:900px){
  .faq-layout { grid-template-columns:1fr 300px; align-items:start; }
  .faq-aside { position:sticky; top:96px; }
}
@media (max-width:820px){
  .teasers { grid-template-columns:1fr; }
}
@media (max-width:760px){
  body { font-size:1.0rem; line-height:1.68; }
  .nav-links, .nav-cta .btn { display:none; }
  .menu-btn { display:block; }
  .brand-logo { width:128px; height:58px; }
  .nav-links.open { display:flex; position:absolute; top:100%; left:0; right:0; flex-direction:column; background:var(--ivory); border-bottom:1px solid var(--line); padding:1.2rem var(--pad); gap:1.2rem; }
  .nav-links.open a { font-size:1rem; letter-spacing:.06em; text-transform:none; opacity:.92; }
  .nav-links.open a.active { color:var(--terra); }
  .nav-links.open a.active::after { display:none; }
  .nav-mobile-cta { display:block; margin-top:.4rem; }
  .nav-mobile-cta .btn { display:inline-flex; width:100%; padding:.95rem 1.5rem; }
  .svc-grid { grid-template-columns:1fr; }
  .scard { border-right:0 !important; border-bottom:1px solid var(--line) !important; }
  .scard:last-child { border-bottom:0 !important; }
  .scard ul { margin-top:1rem; }
  .cred-grid { grid-template-columns:1fr; }
  .cred { border-right:0; border-bottom:1px solid var(--dark-line); padding:1.5rem 0 1.4rem; }
  .cred:last-child { border-bottom:0; }
  .hero { min-height:clamp(480px,76vh,640px); }
  .hero-bg::after { background:linear-gradient(180deg, rgba(22,16,10,.4) 0%, rgba(26,18,12,.56) 55%, rgba(18,12,8,.74) 100%); }
  .hero-trust .row { display:grid; grid-template-columns:1fr 1fr; gap:.7rem 1.4rem; padding-block:1.1rem; }
  .accred .badge { flex:1 1 100%; max-width:none; }
  .accred .badge img { height:128px; }
  .foot-grid { gap:2rem; }
  .foot-logo { width:132px; height:60px; }
  .foot-links a { font-size:1rem; padding:.15rem 0; display:inline-block; }
  footer { padding-block:clamp(2.6rem,8vw,3.4rem); }
}
.nav-mobile-cta { display:none; }
@media (max-width:380px){
  .hero-trust .row { grid-template-columns:1fr; }
  .ff-row { grid-template-columns:1fr; }
}

/* ============================================================
   EDIT LAYER - homepage + services refinements
   ============================================================ */

/* footer stays dark (default espresso) */

/* homepage about-lead as larger display text */
.about-grid--media-fill .about-lead { font-family:var(--display); font-style:italic; font-weight:360; font-size:clamp(1.12rem,1.7vw,1.32rem); line-height:1.5; color:var(--ink); letter-spacing:-.005em; }
.about-grid--media-fill .about-body p { max-width:none; }

/* "what sets me apart" teaser cards - clean, even spacing (no top accent) */
.teasers-4 .tcard { padding-top:clamp(1.9rem,2.6vw,2.4rem); border-color:var(--blush-deep); box-shadow:var(--shadow-sm); }
.teasers-4 .tcard::before { display:none; }
.teasers-4 .tcard h3 { margin-bottom:.8rem; }

/* services: separated cards on a warm section background */
.svc-section--warm { background:var(--blush); }
.svc-grid--cards { border:0; background:transparent; border-radius:0; overflow:visible; gap:clamp(1rem,2vw,1.4rem); }
.svc-grid--cards .scard { border:1px solid var(--blush-deep); border-radius:var(--r); background:var(--white); box-shadow:var(--shadow-sm); }
.svc-grid--cards .scard:hover { background:var(--white); border-color:var(--apricot); box-shadow:var(--shadow); }
.svc-grid--cards .scard.start { background:var(--walnut); border-color:var(--walnut); }
.svc-grid--cards .scard.start:hover { background:var(--cocoa); border-color:var(--cocoa); }
@media (max-width:760px){
  .svc-grid--cards .scard { border:1px solid var(--blush-deep) !important; }
  .svc-grid--cards .scard.start { border-color:var(--walnut) !important; }
}

/* services: contrasting terracotta help block */
.helpblock--terra { position:relative; background:radial-gradient(125% 130% at 14% 0%, rgba(255,255,255,.17) 0%, rgba(255,255,255,0) 46%), linear-gradient(150deg, rgba(188,90,41,.93) 0%, rgba(156,72,32,.94) 55%, rgba(130,58,27,.95) 100%); border-color:rgba(130,58,27,.5); box-shadow:0 44px 84px -44px rgba(130,58,27,.7), 0 6px 16px -8px rgba(40,28,18,.32); }
.helpblock--terra::before { content:""; position:absolute; inset:0; border-radius:var(--r); border:1px solid rgba(255,255,255,.24); box-shadow:inset 0 1px 0 rgba(255,255,255,.2); pointer-events:none; }
.helpblock--terra > * { position:relative; }

/* primary buttons share the same beveled orange */
.btn:not(.btn-ghost):not(.btn-onDark) { background:linear-gradient(150deg, var(--terra) 0%, var(--terra-deep) 100%); border-color:rgba(130,58,27,.6); box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 10px 22px -14px rgba(130,58,27,.6); }
.btn:not(.btn-ghost):not(.btn-onDark):hover { background:linear-gradient(150deg, var(--terra-deep) 0%, #823a1b 100%); border-color:#823a1b; box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 16px 30px -16px rgba(130,58,27,.7); transform:translateY(-1px); }
.helpblock--terra .btn:not(.btn-ghost):not(.btn-onDark) { background:#fff; border-color:#fff; color:var(--terra-deep); box-shadow:0 16px 28px -18px rgba(40,28,18,.4); }
.helpblock--terra .btn:not(.btn-ghost):not(.btn-onDark):hover { background:var(--ivory); border-color:var(--ivory); color:var(--terra-deep); }

/* about duo: beveled orange body */
.duo--terra .duo-body { position:relative; background:radial-gradient(120% 130% at 12% 0%, rgba(255,255,255,.16) 0%, rgba(255,255,255,0) 48%), linear-gradient(150deg, rgba(188,90,41,.94) 0%, rgba(156,72,32,.95) 55%, rgba(130,58,27,.96) 100%); box-shadow:inset 0 1px 0 rgba(255,255,255,.2); }
.duo--terra .duo-body .label { color:#FBE9DC; }
.duo--terra .duo-body h2 { color:#fff; }
.duo--terra .duo-body h2 .it { color:#FBE9DC; }
.duo--terra .duo-body p { color:rgba(255,255,255,.92); }
.duo--brown .duo-body { position:relative; background:radial-gradient(120% 130% at 12% 0%, rgba(255,255,255,.10) 0%, rgba(255,255,255,0) 48%), linear-gradient(150deg, var(--cocoa) 0%, var(--walnut) 55%, var(--espresso) 100%); box-shadow:inset 0 1px 0 rgba(255,255,255,.12); }
.duo--brown .duo-body .label { color:var(--apricot); }
.duo--brown .duo-body h2 { color:#fff; }
.duo--brown .duo-body h2 .it { color:var(--apricot); }
.duo--brown .duo-body p { color:rgba(255,255,255,.9); }
.helpblock--terra h3 { color:#fff; }
.helpblock--terra p { color:rgba(255,255,255,.9); }
.helpblock--terra .btn { background:#fff; color:var(--terra-deep); border-color:#fff; }
.helpblock--terra .btn:hover { background:var(--ivory); border-color:var(--ivory); color:var(--terra-deep); box-shadow:0 16px 28px -16px rgba(40,28,18,.4); }

/* home accreditation band on dark brown */
.accred-band--dark { background:linear-gradient(155deg, var(--cocoa) 0%, var(--walnut) 50%, var(--espresso) 100%); border-top-color:var(--dark-line); border-bottom-color:var(--dark-line); }
.accred-band--dark .at { color:var(--apricot); }

/* dark page intros: balanced top/bottom padding */
.page-intro--dark { padding-block:clamp(2.8rem,5vw,4rem); }

/* image-background page intro banner (photo set per-page via inline background-image) */
.page-intro--media { position:relative; padding-block:clamp(3rem,5.5vw,4.4rem); border-bottom:0; background-color:var(--espresso); background-size:cover; background-position:center 42%; background-repeat:no-repeat; isolation:isolate; }
.page-intro--media::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(100deg, rgba(20,15,10,.82) 0%, rgba(20,15,10,.5) 58%, rgba(20,15,10,.34) 100%); }
.page-intro--media .label { color:var(--apricot); }
.page-intro--media h1 { color:var(--ivory); max-width:none; }
.page-intro--media h1 .it { color:var(--apricot); }
.page-intro--media .lead { color:rgba(251,248,243,.92); }
.pull-up { margin-top:calc(-1 * clamp(0.8rem, 2.4vw, 2rem)); }

/* testimonials carousel: one-up on mobile */
@media (max-width:760px){ .testi-slide { flex:0 0 100%; padding:0; } }

/* netlify forms honeypot */
.hidden-field { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* thanks / legal document pages */
.doc { max-width:52rem; margin:0 auto; }
.doc h2 { font-family:var(--display); font-weight:360; font-size:clamp(1.4rem,2.6vw,1.9rem); color:var(--terra-deep); margin:2.4rem 0 .9rem; letter-spacing:-.015em; }
.doc h2:first-child { margin-top:0; }
.doc h3 { font-family:var(--display); font-weight:400; font-size:clamp(1.1rem,1.9vw,1.3rem); color:var(--black); margin:1.8rem 0 .6rem; }
.doc p, .doc li { color:var(--ink-soft); line-height:1.75; font-size:1rem; }
.doc p { margin:0 0 1.05rem; }
.doc ul, .doc ol { margin:0 0 1.2rem; padding-left:1.3rem; }
.doc li { margin-bottom:.5rem; }
.doc .updated { font-size:.72rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:2rem; }
.doc a { color:var(--terra-deep); }
.doc .callout { background:var(--white); border:1px solid var(--line); border-left:3px solid var(--terra); border-radius:var(--r); padding:clamp(1.2rem,2.2vw,1.6rem) clamp(1.3rem,2.4vw,1.8rem); margin:0 0 1.6rem; }
.doc .callout p:last-child { margin-bottom:0; }
.doc dl { margin:0 0 1.4rem; }
.doc dt { font-weight:600; color:var(--ink); margin-top:1.1rem; }
.doc dd { margin:.3rem 0 0; color:var(--ink-soft); line-height:1.7; }

/* thank-you confirmation */
.thanks { max-width:40rem; margin:0 auto; text-align:center; }
.thanks .tick { width:64px; height:64px; border-radius:50%; background:var(--terra); color:#fff; display:grid; place-items:center; margin:0 auto 1.6rem; font-size:1.9rem; line-height:1; }
.thanks h1 { font-family:var(--display); font-weight:330; font-size:clamp(2rem,4.4vw,3rem); letter-spacing:-.02em; margin:0 0 1rem; }
.thanks p { color:var(--ink-soft); line-height:1.7; margin:0 0 1.6rem; }


/* ---------- document download + inline PDF (terms of business) ---------- */
.doc-file {
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:1.4rem 2rem; background:var(--white); border:1px solid var(--line);
  border-radius:var(--r); padding:clamp(1.3rem,2.4vw,1.8rem) clamp(1.4rem,2.6vw,2rem);
  margin:0 0 1.8rem;
}
.doc-file-text { min-width:14rem; }
.doc .doc-file h2 { margin:0 0 .3rem; color:var(--black); font-size:clamp(1.25rem,2.2vw,1.55rem); }
.doc .doc-file-meta {
  margin:0; font-family:var(--body); font-size:.74rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
}
.doc-file-actions { display:flex; flex-wrap:wrap; gap:.7rem; }
.doc-file-actions .btn { padding:.8rem 1.4rem; }
/* .doc a sets a link colour, which would otherwise beat .btn on specificity */
.doc .btn { color:#fff; }
.doc .btn-ghost { color:var(--terra-deep); }
.doc .btn-ghost:hover { color:var(--terra-deep); }

.pdf-frame {
  position:relative; border:1px solid var(--line); border-radius:var(--r);
  overflow:hidden; background:var(--paper); margin:0 0 .9rem; height:min(78vh,900px);
}
.pdf-frame iframe { display:block; width:100%; height:100%; border:0; }
.doc .pdf-fallback { font-size:.88rem; color:var(--muted); }

@media (max-width:760px) {
  .doc-file { flex-direction:column; align-items:flex-start; }
  .doc-file-actions .btn { flex:1 1 auto; }
  /* mobile browsers render embedded PDFs poorly - the buttons above open the file */
  .pdf-frame, .doc .pdf-fallback { display:none; }
}
