/* ============ TOKENS ============ */
:root{
  --bg: #F2EEDF;
  --bg-elevated: #FBF9F0;
  --bg-sunken: #EAE4CF;
  --ink: #1B2A22;
  --ink-muted: #57604F;
  --pine: #1F4736;
  --pine-deep: #12271D;
  --pine-tint: #DDE5D6;
  --copper: #AD5A28;
  --copper-strong: #8F4A20;
  --copper-soft: #EAD2B8;
  --border: #DED5B9;
  --shadow: 220 30% 12%;
  --focus: #AD5A28;
  --on-copper: #FBF6EE;
  --on-pine: #FBF9F0;
  --accent-on-dark: #F0AB79;
  --portrait-bg: #E9DEC8;

  --font-display: 'Newsreader', Georgia, 'Iowan Old Style', 'Times New Roman', serif;
  --font-body: 'Karla', 'Segoe UI', system-ui, -apple-system, sans-serif;

  --space-1: .5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2.25rem;
  --space-5: 3.5rem;
  --space-6: 5.5rem;
  --space-7: 7.5rem;

  --radius-s: 10px;
  --radius-m: 16px;
  --radius-l: 26px;
  --container: 1160px;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg: #12160F;
    --bg-elevated: #1B2118;
    --bg-sunken: #0C0F0A;
    --ink: #EFEAD9;
    --ink-muted: #B5BEA8;
    --pine: #86BC9C;
    --pine-deep: #08100B;
    --pine-tint: #223124;
    --copper: #E3945D;
    --copper-strong: #F0AB79;
    --copper-soft: #3B2A1E;
    --border: #333B2C;
    --focus: #E3945D;
    --on-copper: #1A120B;
    --on-pine: #0C0F0A;
    --portrait-bg: #D9CDB6;
  }
}
:root[data-theme="dark"]{
  --bg: #12160F;
  --bg-elevated: #1B2118;
  --bg-sunken: #0C0F0A;
  --ink: #EFEAD9;
  --ink-muted: #B5BEA8;
  --pine: #86BC9C;
  --pine-deep: #08100B;
  --pine-tint: #223124;
  --copper: #E3945D;
  --copper-strong: #F0AB79;
  --copper-soft: #3B2A1E;
  --border: #333B2C;
  --focus: #E3945D;
  --on-copper: #1A120B;
  --on-pine: #0C0F0A;
  --portrait-bg: #D9CDB6;
}

/* ============ RESET / BASE ============ */
*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *,*::before,*::after{ animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}
html{ font-size: 18px; }
body{
  margin:0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
html{ overflow-x: clip; }
img,svg{ display:block; max-width:100%; }
a{ color: inherit; }
h1,h2,h3,h4{
  font-family: var(--font-display);
  color: var(--ink);
  margin: 0;
  text-wrap: balance;
  font-weight: 500;
}
p{ margin:0; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family: inherit; }
:focus-visible{ outline: 2.5px solid var(--focus); outline-offset: 3px; border-radius: 4px; }

.container{
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}
.prose{ max-width: 62ch; }
.eyebrow{
  display:inline-flex; align-items:center; gap:.5em;
  font-family: var(--font-body); font-weight:700; font-size:.82rem;
  letter-spacing:.1em; text-transform:uppercase; color: var(--copper-strong);
}
.section{ padding-block: var(--space-6); }
[id]{ scroll-margin-top: 96px; }
.section-head{ margin-bottom: var(--space-4); }
.visually-hidden{
  position:absolute; width:1px;height:1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap; border:0; padding:0; margin:-1px;
}
.skip-link{
  position:absolute; left:1rem; top:-4rem; z-index:200;
  background: var(--pine); color: var(--on-pine); padding:.75rem 1.25rem; font-weight:600; border-radius: 8px;
  transition: top .15s ease;
}
.skip-link:focus{ top: 1rem; }

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font-family: var(--font-body); font-weight:600; font-size:1rem;
  padding: .85em 1.6em; min-height:48px; border-radius: 999px; border: 1.5px solid transparent;
  cursor:pointer; text-decoration:none; white-space:nowrap;
  transition: transform .15s ease, background .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.btn:hover{ transform: translateY(-1.5px); }
.btn-primary{ background: var(--copper); color: var(--on-copper); box-shadow: 0 6px 18px -8px hsl(var(--shadow) / .5); }
.btn-primary:hover{ background: var(--copper-strong); }
.btn-ghost{ background: transparent; color: var(--pine); border-color: var(--border); }
.btn-ghost:hover{ border-color: var(--pine); }
.btn-block{ width:100%; white-space:normal; text-align:center; }
.btn[disabled], .btn[aria-disabled="true"]{ opacity:.65; cursor:progress; transform:none; }
.btn-sm{ padding: .6em 1.2em; font-size:14.5px; min-height:0; line-height:1.5; }

/* ============ HEADER / NAV ============ */
.site-header{
  position: sticky; top:0; z-index:100;
  background: var(--bg-elevated);
  border-bottom: 1px solid var(--border);
}
.nav-row{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block: 14px; }
.brand{ display:flex; align-items:center; gap:.6rem; text-decoration:none; flex-shrink:0; }
.brand-mark{ width:58px; height:58px; object-fit:cover; border-radius:10px; flex-shrink:0; box-shadow:0 4px 14px -6px hsl(var(--shadow) / .55); border:1px solid var(--border); }
.brand-word{ font-family: var(--font-display); font-style: italic; font-size:19.8px; letter-spacing:.005em; color: var(--pine); font-weight:500; white-space:nowrap; }
.brand-word .accent{ color: var(--copper); font-weight:600; }
.brand-word small{ display:block; font-family: var(--font-body); font-style:normal; font-weight:600; letter-spacing:.11em; text-transform:uppercase; font-size:10.5px; color: var(--ink-muted); margin-top:.15rem; white-space:nowrap; }

.nav-links{ display:flex; align-items:center; gap:36px; }
.nav-links a{
  font-size:15.5px; font-weight:600; text-decoration:none; color: var(--ink-muted);
  padding:.6rem .1rem; min-height:44px; display:inline-flex; align-items:center; border-bottom: 2px solid transparent; white-space:nowrap; transition: color .15s ease, border-color .15s ease;
}
.nav-links a:hover{ color: var(--pine); border-color: var(--copper); }
.nav-cta{ display:flex; align-items:center; gap:24px; }
.nav-phone{ display:flex; align-items:center; gap:.4rem; font-weight:600; font-size:15.5px; text-decoration:none; color: var(--ink); white-space:nowrap; }
.nav-phone svg{ width:16px; height:16px; color: var(--copper); }

.nav-toggle{
  display:none; background:none; border:1.5px solid var(--border); border-radius:8px;
  width:44px; height:44px; align-items:center; justify-content:center; cursor:pointer;
}
.nav-toggle svg{ width:20px; height:20px; color: var(--pine); }

.theme-toggle{
  display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
  width:44px; height:44px; border-radius:50%; border:1.5px solid var(--border);
  background:none; color: var(--pine); cursor:pointer;
  transition: border-color .15s ease, transform .15s ease;
}
.theme-toggle:hover{ border-color: var(--copper); transform: translateY(-1.5px); }
.theme-toggle svg{ width:18px; height:18px; }
.theme-toggle .icon-moon{ display:none; }

@media (max-width: 1720px){
  .nav-links{ gap:24px; }
  .nav-phone{ display:none; }
}
@media (max-width: 1200px){
  .nav-links{
    position:absolute; top:100%; left:0; right:0; background: var(--bg-elevated);
    border-bottom:1px solid var(--border); flex-direction:column; align-items:flex-start;
    padding: var(--space-3) clamp(1.25rem,4vw,2.5rem); gap: var(--space-2);
    display:none;
  }
  .nav-links.is-open{ display:flex; }
  .nav-phone{ display:none; }
  .nav-toggle{ display:inline-flex; }
  .nav-links a{ padding:.55rem .1rem; width:100%; }
}
@media (max-width: 640px){
  .nav-cta .btn{ display:none; }
  .nav-cta{ gap: var(--space-1); }
  .brand-mark{ width:46px; height:46px; }
  .brand-word{ font-size:18px; }
  .brand-word small{ display:none; }
}
@media (max-width: 360px){
  .brand-mark{ width:40px; height:40px; }
  .brand-word{ font-size:16.5px; }
  .nav-row{ gap: var(--space-1); }
  .theme-toggle{ width:42px; height:42px; }
  .nav-toggle{ width:42px; height:42px; }
}

.nav-links .nav-menu-phone{ display:none; }
@media (max-width: 1200px){
  .nav-links .nav-menu-phone{ display:inline-flex; align-items:center; gap:.5rem; color: var(--pine) !important; border-top:1px solid var(--border); margin-top:.4rem; padding-top:.9rem !important; width:100%; }
  .nav-links .nav-menu-phone svg{ width:18px; height:18px; color: var(--copper); }
}

/* ============ PHONE NAVIGATION AIDS ============ */
.jump-strip{ display:none; }
@media (max-width: 760px){
  .jump-strip{ display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; padding-block: 0 var(--space-3); }
  .jump-strip span{ font-size:.9rem; font-weight:700; color: var(--ink-muted); margin-right:.2rem; }
  .jump-strip a{ display:inline-flex; align-items:center; min-height:44px; padding:0 1.1rem; border-radius:999px; border:1.5px solid var(--border); background: var(--bg-elevated); color: var(--pine); font-weight:600; font-size:.95rem; text-decoration:none; }
  .jump-strip a:hover{ border-color: var(--copper); }
}
.back-to-top{
  position:fixed; right:1rem; bottom:1.25rem; z-index:90; width:48px; height:48px; border-radius:50%;
  background: var(--pine); color: var(--on-pine); display:flex; align-items:center; justify-content:center;
  box-shadow: 0 10px 24px -10px hsl(var(--shadow) / .6); opacity:0; pointer-events:none; transform: translateY(8px);
  transition: opacity .2s ease, transform .2s ease;
}
.back-to-top.is-visible{ opacity:1; pointer-events:auto; transform:none; }
.back-to-top svg{ width:22px; height:22px; }
.sticky-bar{ display:none; }
@media (max-width: 760px){
  .back-to-top{ bottom: calc(68px + 1rem); }
  .sticky-bar{
    position:fixed; left:0; right:0; bottom:0; z-index:95; display:flex; gap:.5rem;
    padding:.55rem clamp(1rem,4vw,1.5rem) calc(.55rem + env(safe-area-inset-bottom));
    background: var(--bg-elevated); border-top:1px solid var(--border); box-shadow: 0 -8px 24px -16px hsl(var(--shadow) / .5);
    transform: translateY(110%); transition: transform .25s ease;
  }
  .sticky-bar.is-visible{ transform:none; }
  .sticky-bar a{ flex:1; display:inline-flex; align-items:center; justify-content:center; gap:.4rem; min-height:48px; padding:0 .6rem; border-radius:999px; font-weight:700; font-size:.88rem; white-space:nowrap; text-decoration:none; }
  .sticky-call{ flex:1.1; }
  .sticky-consult .label-short{ display:none; }
  @media (max-width: 360px){ .sticky-bar a{ font-size:.85rem; gap:.3rem; padding:0 .5rem; } .sticky-consult .label-long{ display:none; } .sticky-consult .label-short{ display:inline; } }
  .sticky-call{ background: var(--pine); color: var(--on-pine); }
  .sticky-call svg{ width:18px; height:18px; }
  .sticky-consult{ background: var(--copper); color: var(--on-copper); }
  body.has-sticky-bar{ padding-bottom: 80px; }
}

/* collapsible service cards on phones */
.service-toggle{ display:none; }
@media (max-width: 760px){
  .service-card.is-collapsible .service-list > li:not(:first-child),
  .service-card.is-collapsible .service-list > li:first-child .service-sublist{ display:none; }
  .service-card.is-collapsible.is-open .service-list > li:not(:first-child),
  .service-card.is-collapsible.is-open .service-list > li:first-child .service-sublist{ display:revert; }
  .service-card.is-collapsible.is-open .service-list > li{ display:block; }
  .service-toggle{
    display:inline-flex; align-items:center; gap:.4rem; margin-top: var(--space-2);
    min-height:44px; padding:0 .2rem; background:none; border:none; cursor:pointer;
    color: var(--pine); font-weight:700; font-size:.95rem; border-bottom:2px solid var(--copper-soft);
  }
  .service-toggle svg{ width:16px; height:16px; transition: transform .2s ease; }
  .service-card.is-open .service-toggle svg{ transform: rotate(180deg); }
}

/* ============ PATH DIVIDERS ============ */
.path-divider{ display:block; width:100%; height:auto; color: var(--copper); opacity:.85; }
.path-divider .waypoint{ fill: var(--copper); }
.path-divider path{ fill:none; stroke: currentColor; stroke-width:3; stroke-linecap:round; }

/* ============ HERO ============ */
.hero{ padding-block: var(--space-6) var(--space-5); }
.hero-grid{ display:grid; grid-template-columns: .8fr 1.2fr; gap: var(--space-3); align-items:center; }
/* headline scales with its own column (10cqi = 10% of it) so it always sets in three lines; first font-size is the fallback */
.hero-copy{ container-type: inline-size; }
.hero h1{ font-style:italic; font-weight:500; color: var(--pine); font-size: clamp(1.5rem, 2.6vw, 2.05rem); max-width: 10.5em; line-height:1.2; margin-block: var(--space-2) var(--space-3); }
.hero .lede{ font-size:1.14rem; color: var(--ink-muted); max-width:52ch; margin-bottom: var(--space-4); }
.hero-ctas{ display:flex; flex-wrap:wrap; align-items:center; gap: var(--space-3); }
.hero-ctas .btn{ white-space:normal; text-align:center; }
.hero-ctas .link-arrow{ padding:.6rem 0; font-weight:600; color: var(--pine); text-decoration:none; border-bottom:1.5px solid var(--copper-soft); padding-bottom:2px; }
.hero-art{ position:relative; }
.hero-art svg{ width:100%; height:auto; }

.hero-bg{
  transform-box: fill-box; transform-origin: center;
  animation: heroBreathe 6s ease-in-out .2s infinite;
}
.hero-path{
  stroke-dasharray: 1000; stroke-dashoffset: 1000;
  animation: heroDraw 2.2s cubic-bezier(.34,.04,.24,1) .3s forwards;
}
.hero-dot{
  opacity: 0; transform-box: fill-box; transform-origin: center;
  animation: heroDotPop .6s ease-out forwards;
}
.hero-dot:nth-of-type(1){ animation-delay: .35s; }
.hero-dot:nth-of-type(2){ animation-delay: .7s; }
.hero-dot:nth-of-type(3){ animation-delay: 1.38s; }
.hero-endpoint-core{
  transform-box: fill-box; transform-origin: center;
  opacity: 0; animation: heroCoreIn .5s ease-out 2.4s forwards;
}
.hero-endpoint-halo{
  transform-box: fill-box; transform-origin: center;
  opacity: 0; animation: heroHalo 2.6s ease-out 2.5s infinite;
}
.hero-endpoint-halo.delay2{ animation-delay: 3.8s; }
.hero-needle{
  transform-box: fill-box; transform-origin: center;
  animation: heroNeedleSettle 1.6s cubic-bezier(.2,.7,.3,1) 2.5s both;
}

@media (prefers-reduced-motion: reduce){
  .hero-bg, .hero-path, .hero-dot, .hero-endpoint-core, .hero-needle{ animation: none !important; opacity: 1; stroke-dashoffset: 0; transform:none; }
  .hero-dot{ opacity:.85; }
  .hero-endpoint-halo{ animation:none !important; opacity:0; }
}

@keyframes heroBreathe{ 0%,100%{ transform: scale(1); } 50%{ transform: scale(1.018); } }
@keyframes heroDraw{ to{ stroke-dashoffset: 0; } }
@keyframes heroDotPop{
  0%{ opacity:0; transform: scale(.25); }
  55%{ opacity:1; transform: scale(1.3); }
  100%{ opacity:.85; transform: scale(1); }
}
@keyframes heroCoreIn{
  0%{ opacity:0; transform: scale(.4); }
  65%{ opacity:1; transform: scale(1.15); }
  100%{ opacity:1; transform: scale(1); }
}
@keyframes heroHalo{
  0%{ opacity:.55; transform: scale(.7); }
  100%{ opacity:0; transform: scale(1.9); }
}
@keyframes heroNeedleSettle{
  0%{ transform: rotate(-38deg); }
  28%{ transform: rotate(22deg); }
  50%{ transform: rotate(-12deg); }
  70%{ transform: rotate(7deg); }
  86%{ transform: rotate(-3deg); }
  100%{ transform: rotate(0deg); }
}

@media (max-width: 900px){
  .hero-grid{ grid-template-columns: 1fr; }
  .hero-art{ order:-1; max-width:520px; margin-inline:auto; }
}

/* ============ PHILOSOPHY ============ */
.philosophy{ text-align:center; }
.philosophy .pullquote{
  font-family: var(--font-display); font-style: italic; font-weight:500;
  font-size: clamp(1.75rem, 3.2vw, 2.45rem); line-height:1.2; color: var(--pine);
  max-width: 30ch; margin-inline:auto; margin-bottom: var(--space-4);
}
.philosophy .prose{ max-width:900px; margin-inline:auto; color: var(--ink-muted); font-size:1.06rem; }
.philosophy .prose + .prose{ margin-top: var(--space-2); }

/* section headings share the pull-quote style */
.section h2, .about-wrap h3{ font-style:italic; font-weight:500; color: var(--pine); font-size: clamp(1.5rem, 2.6vw, 2.05rem); }

/* ============ ABOUT ============ */
.about-wrap{ max-width:760px; margin-inline:auto; }
.about-wrap h2{ margin-bottom: var(--space-3); }
.about-wrap h3{ margin-block: var(--space-5) var(--space-2); }
.about-wrap p{ color: var(--ink-muted); font-size:1.05rem; }
.about-wrap p + p{ margin-top: var(--space-2); }
.about-wrap .about-lead{ font-family: var(--font-display); font-style:italic; font-weight:500; font-size: clamp(1.25rem,2vw,1.5rem); line-height:1.35; color: var(--pine); }
.about-sign{ margin-top: var(--space-5); text-align:center; }
/* the photo has a white backdrop; multiply lets it take the frame's warm color instead */
.about-frame{ isolation:isolate; overflow:hidden; width:170px; height:170px; margin: 0 auto var(--space-3); border-radius:50%; background: var(--portrait-bg); border:2px solid var(--copper); }
.about-frame img{ width:100%; height:100%; object-fit:cover; object-position:50% 0; mix-blend-mode:multiply; }
.about-wrap .about-signoff{ font-family: var(--font-display); font-style:italic; font-size:1.15rem; }
.about-wrap .about-name{ font-family: var(--font-display); font-style:italic; font-weight:500; font-size:1.5rem; line-height:1.3; color: var(--pine); margin-top:.35rem; }
.about-wrap .about-role{ font-weight:700; font-size:.82rem; letter-spacing:.1em; text-transform:uppercase; color: var(--copper-strong); margin-top:.15rem; }

/* ============ SERVICES ============ */
.services-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-3); }
.service-card{
  background: var(--bg-elevated); border:1px solid var(--border); border-radius: var(--radius-m);
  padding: var(--space-4); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.service-card:hover{ transform: translateY(-3px); box-shadow: 0 16px 32px -20px hsl(var(--shadow) / .55); border-color: color-mix(in srgb, var(--copper) 40%, var(--border)); }
.service-icon{
  width:52px; height:52px; border-radius:50%; margin-bottom: var(--space-3);
  display:flex; align-items:center; justify-content:center;
}
.service-card:nth-child(odd) .service-icon{ background: var(--pine-tint); color: var(--pine); }
.service-card:nth-child(even) .service-icon{ background: var(--copper-soft); color: var(--copper-strong); }
.service-icon svg{ width:26px; height:26px; }
.service-card h3{ font-size:1.25rem; line-height:1.25; margin-bottom:.7rem; overflow-wrap:break-word; }
.service-card p{ color: var(--ink-muted); font-size:1rem; }
.service-list{ display:flex; flex-direction:column; gap:.6rem; color: var(--ink-muted); font-size:1rem; }
.service-list li{ position:relative; padding-left:1.1rem; }
.service-sublist{ margin-top:.4rem; display:flex; flex-direction:column; gap:.35rem; font-size:.95rem; }
.service-sublist li{ padding-left:1rem; }
.service-sublist li::before{ content:''; position:absolute; left:0; top:.65em; width:5px; height:5px; border-radius:50%; background: var(--border); border:1px solid var(--copper); box-sizing:border-box; }
.service-list li::before{ content:''; position:absolute; left:0; top:.6em; width:6px; height:6px; border-radius:50%; background: var(--copper); }

@media (max-width: 900px){ .services-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px){ .services-grid{ grid-template-columns: 1fr; } }

.focus-panel{
  display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--space-4) var(--space-5);
  background: var(--bg-elevated); border:1px solid var(--border); border-radius: var(--radius-l);
  padding: var(--space-4); margin-bottom: var(--space-4);
}
.focus-panel h3{ font-size:1.25rem; line-height:1.25; color: var(--pine); margin-bottom:.5rem; }
.focus-panel p{ color: var(--ink-muted); font-size:1rem; }
.focus-list{ display:flex; flex-direction:column; gap:.55rem; margin-top: var(--space-2); }
.focus-list li{ display:flex; gap:.55rem; align-items:flex-start; font-size:1rem; font-weight:600; color: var(--ink); }
.focus-list svg{ width:16px; height:16px; color: var(--pine); margin-top:.3em; flex-shrink:0; }
.focus-wide{ grid-column: 1 / -1; }
.focus-wide .focus-list{ display:grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap:.55rem var(--space-3); }
.focus-panel .focus-note{ grid-column: 1 / -1; border-top:1px solid var(--border); padding-top: var(--space-3); color: var(--ink); font-size:1rem; }
.condition-tags{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top: var(--space-2); }
.condition-tags li{ font-size:.92rem; font-weight:600; color: var(--ink); background: var(--bg-sunken); border:1px solid var(--border); border-radius:999px; padding:.45rem .9rem; }
.condition-tags li span{ font-weight:400; color: var(--ink-muted); }
@media (max-width: 760px){ .focus-panel{ grid-template-columns: 1fr; padding: var(--space-3); } }

/* ============ WHY US ============ */
.stat-bar{
  display:grid; grid-template-columns: repeat(4,1fr); gap: var(--space-3);
  background: var(--pine-deep); color:#F4EFE1; border-radius: var(--radius-l);
  padding: var(--space-4); margin-block: var(--space-5);
}
.stat{ text-align:center; }
.stat b{ display:block; font-family: var(--font-display); font-size: clamp(1.7rem,2.4vw,2.2rem); color: var(--accent-on-dark); font-weight:600; }
.stat span{ font-size:.92rem; opacity:.9; }

.testimonials{ display:grid; grid-template-columns: repeat(3,1fr); gap: var(--space-3); margin-bottom: var(--space-5); }
.testimonial{
  background: var(--bg-elevated); border:1px solid var(--border); border-radius: var(--radius-m);
  padding: var(--space-4); display:flex; flex-direction:column; gap: var(--space-2);
}
.testimonial .quote-mark{ font-family: var(--font-display); font-size:2.6rem; color: var(--copper); line-height:.5; }
.testimonial p.quote{ font-size:1.05rem; color: var(--ink); font-style:italic; }
.testimonial .attrib{ font-size:.92rem; color: var(--ink-muted); font-weight:600; }

.credentials-row{ display:flex; flex-wrap:wrap; gap: var(--space-2); justify-content:center; }
.credential-pill{
  display:inline-flex; align-items:center; gap:.5rem; font-size:.92rem; font-weight:600;
  padding:.7rem 1.2rem; border-radius:999px; background: var(--bg-sunken); border:1px solid var(--border); color: var(--ink-muted);
}
.credential-pill svg{ width:15px; height:15px; color: var(--pine); }

@media (max-width: 900px){ .stat-bar{ grid-template-columns: 1fr 1fr; } .testimonials{ grid-template-columns: 1fr; } }

/* ============ PRICING ============ */
.pricing-intro{ display:flex; justify-content:space-between; align-items:flex-end; gap: var(--space-4); flex-wrap:wrap; margin-bottom: var(--space-5); }
.pricing-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap: var(--space-3); align-items:stretch; }
.price-card{
  position:relative; display:flex; flex-direction:column;
  background: var(--bg-elevated); border:1.5px solid var(--border); border-radius: var(--radius-l);
  padding: var(--space-4); gap: var(--space-2);
}
.price-card.flagship{ border-color: var(--copper); box-shadow: 0 20px 40px -24px hsl(var(--shadow) / .6); }
.ribbon{
  position:absolute; top:-13px; left: var(--space-4);
  background: var(--copper); color: var(--on-copper); font-size:.78rem; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; padding:.35rem .85rem; border-radius:999px;
}
.price-card h3{ font-size:1.3rem; line-height:1.25; overflow-wrap:break-word; }
.price-card .price{ font-family: var(--font-display); font-size:1.9rem; font-weight:600; color: var(--pine); }
.price-card .billing{ font-size:.92rem; color: var(--ink-muted); line-height:1.5; }
.price-card .btn{ padding-inline:.8em; }
.price-card .best-for{ font-size:1rem; color: var(--ink-muted); border-top:1px solid var(--border); padding-top: var(--space-2); }
.price-card ul{ display:flex; flex-direction:column; gap:.55rem; flex:1; }
.price-card li{ display:flex; gap:.55rem; font-size:.86rem; color: var(--ink); align-items:flex-start; }
.price-card li svg{ width:15px; height:15px; color: var(--pine); margin-top:.2em; flex-shrink:0; }


.pricing-disclaimer{ font-size:.95rem; line-height:1.6; color: var(--ink-muted); margin-top: var(--space-4); max-width:72ch; }

@media (max-width: 1200px){ .pricing-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px){ .pricing-grid{ grid-template-columns: 1fr; } }

/* ============ CONTACT ============ */
.contact-head{ display:flex; align-items:center; justify-content:space-between; gap: var(--space-5); }
.contact-head .section-head{ max-width:60ch; }
.photo-circle{ flex:none; width:clamp(250px, 33vw, 420px); aspect-ratio:1; border-radius:50%; overflow:hidden; border:4px solid var(--bg-elevated); outline:1.5px solid var(--copper); outline-offset:4px; margin:6px; }
.photo-circle img{ width:100%; height:100%; object-fit:cover; transform:scale(1.04); }
@media (max-width: 760px){
  .contact-head{ flex-direction:column-reverse; align-items:flex-start; gap: var(--space-3); }
  .photo-circle{ align-self:center; }
}
.contact-grid{ display:grid; grid-template-columns: 1.5fr 1fr; gap: var(--space-5); align-items:start; }
.contact-form{ background: var(--bg-elevated); border:1px solid var(--border); border-radius: var(--radius-l); padding: var(--space-5); }
fieldset{ border:none; padding:0; margin:0 0 var(--space-4); min-width:0; }
fieldset legend{ font-family: var(--font-display); font-size:1.1rem; padding:0 0 var(--space-2); color: var(--pine); width:100%; border-bottom:1px solid var(--border); padding-bottom:.6rem; margin-bottom: var(--space-3); }
.field-row{ display:grid; grid-template-columns: repeat(2,1fr); gap: var(--space-3); margin-bottom: var(--space-3); }
.field{ display:flex; flex-direction:column; gap:.4rem; min-width:0; }
.field-row > *, .contact-grid > *, .hero-grid > *{ min-width:0; }
.field.full{ grid-column: 1 / -1; }
.field label{ font-size:.95rem; font-weight:600; color: var(--ink); }
.field .hint{ font-size:.88rem; color: var(--ink-muted); font-weight:400; }
.field input[type="text"], .field input[type="email"], .field input[type="tel"], .field select, .field textarea{
  font-family: var(--font-body); font-size:1.02rem; padding:.8em 1em; min-height:50px; border-radius: var(--radius-s);
  border:1.5px solid var(--border); background: var(--bg); color: var(--ink); width:100%;
}
.field textarea{ resize:vertical; min-height:6.5em; }
.field input:focus, .field select:focus, .field textarea:focus{ border-color: var(--copper); }
.check-grid{ display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:.6rem; }
.check-option{ display:flex; align-items:center; gap:.7rem; font-size:1rem; padding:.55rem .7rem; min-height:48px; min-width:0; overflow-wrap:anywhere; border:1px solid var(--border); border-radius:8px; background: var(--bg); cursor:pointer; }
.check-option:hover{ border-color: var(--copper); }
.check-option:has(input:checked){ border-color: var(--copper); background: var(--copper-soft); }
.check-option input{ width:20px; height:20px; flex-shrink:0; accent-color: var(--copper); }
.consent-row{ display:flex; gap:.7rem; align-items:flex-start; font-size:.95rem; color: var(--ink-muted); }
.consent-row input{ margin-top:.3rem; width:20px; height:20px; flex-shrink:0; accent-color: var(--copper); }

.contact-sidebar{ display:flex; flex-direction:column; gap: var(--space-4); }
@media (min-width: 901px){ .contact-sidebar{ margin-top: calc(var(--space-5) + var(--space-4)); } }
.sidebar-card{ min-width:0; background: var(--pine-deep); color:#F4EFE1; border-radius: var(--radius-l); padding: var(--space-4); }
.sidebar-card h3{ color:#F4EFE1; font-size:1.15rem; margin-bottom: var(--space-2); }
.contact-line{ display:flex; align-items:center; gap:.7rem; font-size:1.02rem; min-width:0; overflow-wrap:anywhere; padding:.45rem 0; margin-bottom:.3rem; text-decoration:none; color:#F4EFE1; }
.contact-line svg{ width:18px; height:18px; color: var(--accent-on-dark); flex-shrink:0; }
.contact-line:last-child{ margin-bottom:0; }
.steps-card{ background: var(--bg-elevated); border:1px solid var(--border); border-radius: var(--radius-l); padding: var(--space-4); }
.steps-card h3{ font-size:1.05rem; margin-bottom: var(--space-3); color: var(--pine); }
.step{ display:flex; gap: var(--space-2); margin-bottom: var(--space-3); }
.step:last-child{ margin-bottom:0; }
.step-num{
  width:30px; height:30px; border-radius:50%; background: var(--copper-soft); color: var(--copper-strong);
  display:flex; align-items:center; justify-content:center; font-size:.88rem; font-weight:700; flex-shrink:0;
}
.step p{ font-size:.98rem; color: var(--ink-muted); }
.privacy-note{ font-size:.9rem; color: var(--ink-muted); display:flex; gap:.5rem; align-items:flex-start; }
.privacy-note svg{ width:15px; height:15px; color: var(--pine); flex-shrink:0; margin-top:.15em; }

.form-success{ display:none; text-align:center; padding: var(--space-5) var(--space-3); }
.form-success.is-visible{ display:block; }
.form-success svg{ width:52px; height:52px; color: var(--pine); margin-inline:auto; margin-bottom: var(--space-3); }
.form-success h3{ font-size:1.4rem; margin-bottom: var(--space-2); }
.form-success p{ color: var(--ink-muted); max-width:40ch; margin-inline:auto; }
.contact-form.is-submitted form{ display:none; }

@media (max-width: 900px){
  .contact-grid{ grid-template-columns: 1fr; }
  .field-row, .check-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 600px){
  .contact-form{ padding: var(--space-4) var(--space-3); }
  .stat-bar{ padding: var(--space-3); }
  .price-card, .service-card, .testimonial{ padding: var(--space-3); }
}

/* ============ FOOTER ============ */
.site-footer{ background: var(--pine-deep); color:#E9E3D1; padding-block: var(--space-6) var(--space-4); }
.footer-grid{ display:grid; grid-template-columns: 1.3fr 1fr 1fr 1.2fr; gap: var(--space-4); margin-bottom: var(--space-5); }
.footer-grid h4, .footer-heading{ color:#F4EFE1; font-family: var(--font-body); font-size:.88rem; letter-spacing:.08em; text-transform:uppercase; margin-bottom: var(--space-2); font-weight:700; }
.footer-brand .brand-word{ color:#F4EFE1; }
.footer-brand p{ font-size:.95rem; opacity:.85; margin-top: var(--space-2); max-width:32ch; }
.footer-grid ul li{ margin-bottom:.35rem; font-size:.98rem; }
.footer-grid ul li a{ display:inline-block; padding:.45rem 0; }
.footer-grid a{ font-size:.98rem; text-decoration:none; opacity:.85; }
.footer-grid a:hover{ opacity:1; text-decoration:underline; }
.footer-credentials{ display:flex; flex-wrap:wrap; gap:.5rem; }
.footer-credentials span{ font-size:.85rem; opacity:.85; border:1px solid rgba(233,227,209,.3); border-radius:999px; padding:.35rem .7rem; }
.footer-bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap: var(--space-2); border-top:1px solid rgba(233,227,209,.18); padding-top: var(--space-3); font-size:.9rem; opacity:.8; }
.footer-bottom a{ text-decoration:underline; display:inline-block; padding:.6rem .1rem; }

@media (max-width: 900px){ .footer-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px){ .footer-grid{ grid-template-columns: 1fr; } }

/* ============ FORM STATES ============ */
.field input[aria-invalid="true"], .field select[aria-invalid="true"], .field textarea[aria-invalid="true"]{ border-color: #B3261E; }
.field-error{ font-size:.9rem; color:#B3261E; font-weight:600; }
:root[data-theme="dark"] .field-error{ color:#F2B8B5; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .field-error{ color:#F2B8B5; } }
:root[data-theme="dark"] .field input[aria-invalid="true"], :root[data-theme="dark"] .field select[aria-invalid="true"], :root[data-theme="dark"] .field textarea[aria-invalid="true"]{ border-color:#F2B8B5; }
fieldset.needs-group{ margin:0; }
fieldset.needs-group legend{ font-family: var(--font-body); font-size:.95rem; font-weight:600; color: var(--ink); border:none; padding:0; margin-bottom:.6rem; }
.hp-field{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.form-status{ margin-top: var(--space-3); padding: var(--space-2) var(--space-3); border-radius: var(--radius-s); font-size:.95rem; display:none; }
.form-status.is-error{ display:block; background: color-mix(in srgb, #B3261E 10%, var(--bg-elevated)); border:1px solid color-mix(in srgb, #B3261E 45%, var(--border)); color: var(--ink); }
.form-status a{ font-weight:600; }
.emergency-note{
  display:flex; gap:.6rem; align-items:flex-start; font-size:.95rem; color: var(--ink);
  background: var(--copper-soft); border-radius: var(--radius-s); padding: .8rem 1rem; margin-bottom: var(--space-4);
}
.emergency-note strong{ color: var(--ink); }
.emergency-note svg{ width:18px; height:18px; flex-shrink:0; margin-top:.15em; color: var(--copper-strong); }
.form-success h3:focus{ outline:none; }

/* ============ LEGAL / SIMPLE PAGES ============ */
.page-simple{ padding-block: var(--space-6); }
.page-simple .legal{ max-width: 72ch; }
.page-simple h1{ font-size: clamp(2rem, 4vw, 2.8rem); margin-bottom: var(--space-2); }
.page-simple h2{ font-size: 1.4rem; margin-top: var(--space-4); margin-bottom: var(--space-1); }
.page-simple p, .page-simple li{ color: var(--ink-muted); margin-bottom: var(--space-2); }
.page-simple ul{ list-style: disc; padding-left: 1.3rem; }
.page-simple .updated{ font-size:.88rem; }
.draft-banner{ background: var(--copper-soft); color: var(--ink); padding: var(--space-2) var(--space-3); border-radius: var(--radius-s); font-size:.9rem; margin-bottom: var(--space-4); }

@media print{
  .site-header, .path-divider, .hero-art, .theme-toggle, .nav-toggle{ display:none !important; }
  body{ background:#fff; color:#000; }
}
