@font-face{
  font-family:'PT Sans'; font-style:normal; font-weight:400; font-display:swap;
  src:url('fonts/ptsans-400.ttf') format('truetype');
}
@font-face{
  font-family:'PT Sans'; font-style:normal; font-weight:700; font-display:swap;
  src:url('fonts/ptsans-700.ttf') format('truetype');
}
@font-face{
  font-family:'PT Serif'; font-style:normal; font-weight:400; font-display:swap;
  src:url('fonts/ptserif-400.ttf') format('truetype');
}
@font-face{
  font-family:'PT Serif'; font-style:normal; font-weight:700; font-display:swap;
  src:url('fonts/ptserif-700.ttf') format('truetype');
}

:root{
  --bg:#FBF6EC;
  --bg-soft:#F2E9D7;
  --panel:#FFFFFF;
  --ink:#2C3942;
  --ink-soft:#5C6972;
  --ink-faint:#6E7A82;
  --accent:#C8973F;
  --accent-deep:#8C6424;
  --accent-tint:#F3E2BC;
  --sky-tint:#EAF3F3;
  --sage:#5E734F;
  --line:#E4D7B8;
  --surface-dark:#33424A;
  --on-dark:#F5EEDC;
  --on-dark-soft:#D5DDD8;
  --radius-sm:14px;
  --radius:22px;
  --radius-lg:32px;
  --radius-pill:999px;
  --ease:cubic-bezier(.22,.8,.3,1);
  --serif:'PT Serif', Georgia, 'Times New Roman', serif;
  --sans:'PT Sans', 'Segoe UI', sans-serif;
  --pad:clamp(16px, 4vw, 28px);
  --nav-h:76px;
  --dock:0px;
  color-scheme:light;
}

*{box-sizing:border-box;}
html{scroll-padding-top:calc(var(--nav-h) + 18px); scroll-padding-bottom:calc(var(--dock) + 12px);}
html,body{margin:0;padding:0;}
body{
  background:var(--bg); color:var(--ink);
  font-family:var(--sans); font-size:1.0625rem; line-height:1.65;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:clip;
}
img,video,svg{max-width:100%; height:auto;}
h1,h2,h3{font-family:var(--serif); font-weight:700; text-wrap:balance; hyphens:manual; margin:0; overflow-wrap:break-word;}
p{margin:0; overflow-wrap:break-word;}
a{color:inherit;}
:focus{outline:none;}
:focus-visible{outline:2px solid var(--accent-deep); outline-offset:3px; border-radius:4px;}
.skip{
  position:absolute; left:12px; top:8px; z-index:80;
  background:var(--surface-dark); color:var(--on-dark);
  padding:10px 14px; border-radius:var(--radius-pill);
  transform:translateY(-140%); text-decoration:none; font-weight:700;
}
.skip:focus{transform:none;}
.wrap{max-width:1100px; margin:0 auto; padding:0 var(--pad);}

.nav-seat{
  position:sticky; top:max(10px, env(safe-area-inset-top));
  z-index:50; padding:0 max(12px, env(safe-area-inset-left)) 0 max(12px, env(safe-area-inset-right));
}
nav.topbar{
  max-width:1100px; margin:0 auto;
  background:rgba(255,255,255,.94);
  background:color-mix(in srgb, var(--panel) 92%, transparent);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border:1px solid var(--line); border-radius:28px;
  box-shadow:0 10px 30px -20px rgba(40,40,20,.22);
}
.nav-inner{
  min-height:64px; padding:8px 8px 8px 20px;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.wordmark{
  font-family:var(--serif); font-weight:700; font-size:1.15rem;
  letter-spacing:.01em; text-decoration:none; line-height:1.1; padding:6px 0;
}
.wordmark .rule{display:block; width:28px; height:2px; border-radius:2px; background:var(--accent); margin-top:5px;}
.nav-links{display:flex; gap:4px; list-style:none; margin:0; padding:0; flex-wrap:wrap;}
.nav-links a{
  text-decoration:none; color:var(--ink-soft); font-size:.95rem; font-weight:700;
  padding:10px 12px; border-radius:var(--radius-pill); min-height:44px;
  display:inline-flex; align-items:center;
}
.nav-links a:hover{color:var(--ink); background:var(--bg-soft);}
.nav-links a[aria-current="page"]{color:var(--ink); background:var(--accent-tint);}
.nav-tools{display:flex; align-items:center; gap:8px;}
.nav-cta,.call-dock{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-weight:700; white-space:nowrap; color:#2A1F0D; text-decoration:none;
  background:linear-gradient(180deg, #F6E7C4, var(--accent));
  min-height:44px; padding:10px 16px; border-radius:var(--radius-pill);
  box-shadow:0 6px 16px -8px rgba(169,123,46,.55);
}
.nav-cta:hover,.call-dock:hover{filter:brightness(1.03);}
.nav-toggle{
  display:none; align-items:center; gap:8px;
  min-height:44px; min-width:44px; padding:8px 14px;
  border:1px solid var(--line); border-radius:var(--radius-pill);
  background:var(--panel); color:var(--ink); font:inherit; font-weight:700; cursor:pointer;
}
.nav-toggle-bars{
  width:16px; height:10px; display:inline-block; position:relative;
}
.nav-toggle-bars::before,.nav-toggle-bars::after,.nav-toggle-bars span{
  content:""; position:absolute; left:0; right:0; height:2px; border-radius:2px; background:currentColor;
}
.nav-toggle-bars::before{top:0;}
.nav-toggle-bars span{top:4px;}
.nav-toggle-bars::after{bottom:0;}
.nav-panel{padding:4px 10px 12px;}
.nav-panel ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column;}
.nav-panel a{
  display:flex; align-items:center; min-height:48px; padding:8px 14px;
  border-radius:14px; text-decoration:none; font-weight:700;
}
.nav-panel a:hover,.nav-panel a[aria-current="page"]{background:var(--accent-tint);}
.nav-panel a.panel-now{color:var(--accent-deep);}
.call-dock{
  display:none; position:fixed; z-index:60;
  left:max(12px, env(safe-area-inset-left));
  right:max(12px, env(safe-area-inset-right));
  bottom:max(12px, env(safe-area-inset-bottom));
  min-height:52px; font-size:1.05rem;
  box-shadow:0 12px 30px -12px rgba(44,40,20,.45);
}

.hero-seat{padding:22px max(12px, env(safe-area-inset-right)) 0 max(12px, env(safe-area-inset-left));}
.hero{
  position:relative; overflow:hidden; color:var(--ink);
  border-radius:var(--radius-lg);
  background:#F4D9B0 url('video/hero-road.jpg') center 58% / cover no-repeat;
  min-height:min(78vh, 640px); min-height:min(78svh, 640px);
  display:flex; flex-direction:column; justify-content:center;
  padding:clamp(48px, 8vw, 72px) 0 clamp(40px, 7vw, 64px);
}
.hero-video{
  position:absolute; inset:0; width:100%; height:100%; z-index:0;
  object-fit:cover; object-position:center 58%; pointer-events:none;
}
.hero-scrim{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(100deg,
    rgba(251,246,236,.94) 0%,
    rgba(251,246,236,.88) 34%,
    rgba(251,246,236,.4) 58%,
    rgba(251,246,236,0) 78%);
}
.hero-content{position:relative; z-index:2; padding:0 clamp(20px, 4vw, 48px); max-width:1100px; margin:0 auto; width:100%;}
.eyebrow,.kicker,.urgent-kicker{
  font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700;
  color:var(--accent-deep); display:block; margin-bottom:12px;
}
.hero h1{font-size:clamp(2rem, 4.4vw, 3.25rem); line-height:1.16; max-width:16ch; color:#30291A;}
.hero-sub{margin-top:16px; max-width:42ch; font-size:1.08rem; color:#3E3628;}
.hero-actions{display:flex; flex-wrap:wrap; gap:14px 18px; margin-top:28px; align-items:center;}
.btn-call{
  display:inline-flex; align-items:center; gap:10px;
  background:linear-gradient(180deg, #3C4C55, #2C3942); color:var(--on-dark);
  font-family:var(--serif); font-weight:700; font-size:1.05rem;
  padding:14px 22px; min-height:52px; border-radius:var(--radius-pill);
  text-decoration:none; border:0; cursor:pointer;
  box-shadow:0 14px 30px -14px rgba(44,57,66,.55);
}
.btn-call:hover{transform:translateY(-1px);}
.btn-call .dot{width:8px; height:8px; border-radius:50%; background:#7DCA96; box-shadow:0 0 0 4px rgba(125,202,150,.28); flex:0 0 auto;}
.btn-label{text-align:center;}
.btn-num{white-space:nowrap;}
.btn-num::before{content:" · ";}
.link-plan{font-size:1rem; color:#3E3628; text-underline-offset:3px; font-weight:700;}

.page-hero{padding:40px 0 0;}
.page-hero h1{font-size:clamp(1.8rem, 3.6vw, 2.7rem); max-width:16ch;}
.lede{margin-top:12px; max-width:46ch; color:var(--ink-soft); font-size:1.08rem;}
.page-hero .btn-call{margin-top:24px;}
.hero-split{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:48px; align-items:center;
}
.frame{margin:0; border-radius:var(--radius-lg); overflow:hidden; background:var(--bg-soft); line-height:0;}
.frame img,.card-photo{display:block; width:100%; height:100%; object-fit:cover;}
.frame.wide{aspect-ratio:16/9;}
.frame.card{aspect-ratio:3/2;}
.frame.tall{aspect-ratio:4/5;}
.portrait{margin:0; min-width:0;}
.portrait .frame{aspect-ratio:4/5;}
.caption{margin-top:12px; font-size:.92rem; color:var(--ink-faint); line-height:1.5;}

.urgent-seat{padding:32px max(12px, env(safe-area-inset-right)) 0 max(12px, env(safe-area-inset-left));}
.urgent,.panel{
  background:var(--panel); border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:0 20px 50px -34px rgba(40,40,20,.25);
}
.urgent{
  max-width:1100px; margin:0 auto; padding:clamp(32px, 4vw, 48px);
}
.panel{padding:32px; margin:0; max-width:none;}
.urgent-grid{display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:48px; align-items:start;}
.split{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; align-items:start;}
.urgent h2,.split h2{font-size:clamp(1.45rem, 2.4vw, 1.7rem); max-width:16ch;}
.lead{margin-top:12px; color:var(--ink-soft); max-width:36ch;}
.steps{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:24px;}
.step{display:grid; grid-template-columns:auto minmax(0,1fr); gap:14px; align-items:start;}
.step .num{
  font-family:var(--serif); font-weight:700; color:var(--accent-deep);
  width:44px; height:44px; border-radius:50%; background:var(--accent-tint);
  display:flex; align-items:center; justify-content:center;
}
.step h3{font-size:1.08rem; margin-bottom:4px;}
.step p{color:var(--ink-soft); font-size:1rem;}

section.block{padding:clamp(64px, 7vw, 96px) 0;}
.page-hero + .block{padding-top:48px;}
.band{background:var(--bg-soft);}
.block-head{max-width:40rem; margin-bottom:32px;}
.block-head h2,.page-hero h1{color:var(--ink);}
.block-head h2{font-size:clamp(1.6rem, 3vw, 2rem);}
.desc{margin-top:12px; color:var(--ink-soft); max-width:46ch;}

.svc-grid,.testi-grid,.card-grid,.towns{display:grid; gap:24px;}
.svc-grid{grid-template-columns:repeat(3, minmax(0,1fr));}
.testi-grid,.card-grid{grid-template-columns:repeat(2, minmax(0,1fr));}
.towns{grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));}
.svc-card,.testi-card,.info-card,.notice{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  min-width:0; box-shadow:0 18px 40px -30px rgba(40,40,20,.28);
}
.testi-card{padding:28px; display:flex; flex-direction:column; height:100%;}
.svc-card,.info-card,.notice{padding:0; overflow:hidden; display:flex; flex-direction:column; height:100%;}
.card-photo{aspect-ratio:3/2; height:auto; object-fit:cover;}
.card-copy{padding:24px; display:flex; flex-direction:column; gap:16px; flex:1; min-width:0;}
.svc-card h2,.svc-card h3,.info-card h2,.info-card h3,.notice h2,.notice h3{font-size:1.35rem; line-height:1.25;}
.price-line{display:flex; flex-direction:column; align-items:flex-start; gap:4px; margin:0;}
.price-tag{
  font-size:.82rem; color:var(--accent-deep); font-weight:700;
  background:var(--accent-tint); display:inline-block; padding:6px 12px;
  border-radius:var(--radius-pill); width:fit-content;
}
.price-note{color:var(--ink-faint); font-size:.86rem; line-height:1.4;}
.svc-card p.body,.info-card p{color:var(--ink-soft);}
.svc-card ul,.plain-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px;}
.svc-card li,.plain-list li{display:flex; gap:8px; align-items:flex-start; color:var(--ink-soft);}
.svc-card li::before,.plain-list li::before{content:"✓"; color:var(--sage); font-weight:700;}
.more{font-weight:700; color:var(--accent-deep); text-underline-offset:3px;}
.card-copy ul{margin-top:auto;}
.card-copy .more{margin-top:0;}
.links{margin-top:24px;}
.fine{margin-top:16px; color:var(--ink-faint); font-size:.92rem; max-width:62ch;}
.card-copy .fine{margin-top:0;}
.after-grid{margin-top:48px; display:flex; flex-direction:column; gap:24px;}

.about-grid{display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:48px; align-items:start;}
.about-copy{display:flex; flex-direction:column; align-items:flex-start; gap:16px; min-width:0; padding-top:4px;}
.about-copy .kicker,.about-copy .lede,.about-copy .links,.about-copy .founder-name,.about-copy .founder-role,.about-copy blockquote{margin:0;}
.page-hero .about-grid .portrait{order:-1;}
.about-band .about-grid{align-items:center;}
.about-band .about-copy{padding-top:0;}
blockquote{font-family:var(--serif); font-style:italic; font-size:clamp(1.2rem, 2vw, 1.4rem); line-height:1.5; margin:8px 0 0;}
.founder-name{font-weight:700;}
.founder-role{color:var(--ink-faint); font-size:.9rem;}
.testi-note,.sample-flag{
  font-size:.92rem; color:var(--ink-soft); margin-bottom:16px;
  background:var(--accent-tint); display:inline-block; padding:6px 12px; border-radius:var(--radius-pill);
}
.testi-card p{font-family:var(--serif); font-size:1.08rem; line-height:1.5;}
.testi-meta{margin-top:auto; padding-top:16px; display:flex; flex-wrap:wrap; gap:8px 12px; align-items:center;}
.stars{color:var(--accent-deep); letter-spacing:1px;}
.testi-who{font-size:.9rem; color:var(--ink-faint);}

.faq-list{display:flex; flex-direction:column; gap:8px; max-width:760px;}
.page-hero + .block .faq-list{max-width:none;}
details{border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--panel); padding:2px 18px;}
summary{
  cursor:pointer; padding:16px 36px 16px 2px; font-family:var(--serif); font-weight:700; font-size:1.05rem;
  min-height:52px; display:flex; align-items:center; list-style:none; position:relative;
}
summary::-webkit-details-marker{display:none;}
summary::after{
  content:"+"; position:absolute; right:0; top:50%; transform:translateY(-50%);
  width:28px; height:28px; border-radius:50%; background:var(--accent-tint); color:var(--accent-deep);
  display:flex; align-items:center; justify-content:center; font-family:var(--sans);
}
details[open] summary::after{content:"–";}
details p{padding:0 8px 18px 2px; color:var(--ink-soft); max-width:65ch;}

.labor{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:24px;}
.labor div{
  background:var(--panel); border:1px solid var(--line); border-radius:16px; padding:24px; min-width:0; height:100%;
}
.stack > div{display:flex; flex-direction:column; gap:16px;}
.stack .fine{margin-top:0;}
.sample-flag{margin:0 0 24px;}
.labor strong{display:block; font-family:var(--serif); margin-bottom:8px;}
.labor span{color:var(--ink-soft); font-size:.95rem;}

.stack{display:flex; flex-direction:column; gap:24px; min-width:0;}
.panel{display:flex; flex-direction:column; gap:16px;}
.quiet-form{display:flex; flex-direction:column; gap:16px;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
label{display:flex; flex-direction:column; gap:6px; font-weight:700; font-size:.92rem;}
input,textarea,select{
  font:inherit; font-size:1rem; color:var(--ink); background:var(--bg);
  border:1px solid var(--line); border-radius:14px; padding:14px 14px; width:100%; min-height:48px;
}
textarea{min-height:120px; resize:vertical;}
.form-help{color:var(--ink-soft); font-weight:400; font-size:.95rem;}
.form-ok{
  background:var(--sky-tint); border:1px solid var(--line); border-radius:16px; padding:16px 18px;
}
button.btn-call{width:100%; justify-content:center;}

.notice header{display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; align-items:baseline;}
.notice .card-copy p + p{margin-top:0;}
.notice .fine{margin-top:auto;}
.notice .when{color:var(--ink-faint); font-size:.92rem;}
.towns li{
  list-style:none; background:var(--panel); border:1px solid var(--line); border-radius:16px;
  padding:16px 18px; font-weight:700;
}
.towns{padding:0; margin:0;}

.end-call{
  margin-top:48px;
  display:flex; flex-wrap:wrap; gap:24px; align-items:center; justify-content:space-between;
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  padding:24px 28px;
}
.end-call p{color:var(--ink-soft); max-width:36ch;}

.step-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.step-grid .step{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  padding:24px; box-shadow:0 18px 40px -30px rgba(40,40,20,.28);
}
.foot-seat{padding:0;}
footer{
  background:var(--surface-dark); color:var(--on-dark-soft);
  padding:28px 0 20px;
}
.foot-bar{
  max-width:1100px; margin:0 auto; padding:0 var(--pad);
  display:flex; flex-wrap:wrap; align-items:center; gap:8px 28px;
}
footer .wordmark{color:var(--on-dark); margin-right:auto;}
footer a{text-decoration:none; color:var(--on-dark-soft); min-height:44px; display:inline-flex; align-items:center;}
footer a:hover{color:var(--on-dark);}
.foot-phone{font-family:var(--serif); font-weight:700; font-size:1.05rem; color:var(--on-dark);}
.foot-bottom{
  max-width:1100px; margin:8px auto 0; padding:12px var(--pad) 0;
  border-top:1px solid rgba(255,255,255,.14);
  display:flex; justify-content:space-between; gap:8px 24px; flex-wrap:wrap;
  font-size:.85rem;
}

.reveal{opacity:0; transform:translateY(12px); transition:opacity .6s var(--ease), transform .6s var(--ease);}
.reveal.in{opacity:1; transform:none;}

@media (max-width:899px){
  .js .nav-links{display:none;}
  .js .nav-toggle{display:inline-flex;}
  .js .nav-cta{display:none;}
  .call-dock{display:flex;}
  :root{--dock:84px;}
  body{padding-bottom:0;}
  footer{padding-bottom:calc(16px + var(--dock) + env(safe-area-inset-bottom));}
  .foot-bar{align-items:flex-start;}
  footer .wordmark{margin-right:0; width:100%;}
  .hero-scrim{
    background:linear-gradient(180deg, rgba(251,246,236,.94) 0%, rgba(251,246,236,.82) 58%, rgba(251,246,236,.35) 100%);
  }
  .hero-actions .btn-call,.end-call .btn-call,.page-hero .btn-call{width:100%; justify-content:center;}
  .btn-num{display:block;}
  .btn-num::before{content:none;}
  .urgent-grid,.split,.about-grid,.hero-split,.svc-grid,.testi-grid,.card-grid,.labor,.field-row,.step-grid{
    grid-template-columns:1fr;
  }
  .hero{min-height:0; padding:36px 0 24px;}
  .hero-split{gap:16px;}
  .split,.about-grid,.urgent-grid{gap:24px;}
  .hero-split .frame{aspect-ratio:auto; height:168px;}
  .page-hero + .block{padding-top:32px;}
  .portrait .frame,.frame.tall{aspect-ratio:3/2;}
  .page-hero .about-grid .portrait{order:0;}
  .card-copy{padding:20px;}
  .about-grid{gap:24px;}
  .panel{padding:24px;}
}
@media (min-width:900px){
  .nav-panel{display:none;}
}
@media (max-height:700px) and (orientation:landscape){
  .hero{min-height:0; padding:36px 0;}
}
@media (prefers-reduced-motion: reduce){
  .hero-video{display:none;}
  .reveal{opacity:1; transform:none; transition:none;}
  .btn-call:hover{transform:none;}
}
@media (forced-colors: active){
  .btn-call,.nav-cta,.call-dock,.nav-toggle{border:1px solid ButtonText;}
}
@media print{
  .nav-seat,.call-dock,.hero-video,.skip{display:none !important;}
  body{padding:0; background:#fff;}
  .hero{min-height:0; background:#fff;}
  footer,a{color:#000;}
  a[href^="tel:"]::after{content:" (" attr(href) ")";}
}
