:root{
  --paper:#F4EFE6; --paper-deep:#EBE3D4; --card:#FBF8F1;
  --ink:#1A1714; --ink-soft:#5C544A; --ink-mute:#6B635A;
  --rule:#D8CFBE; --rule-soft:#E5DCC8;
  --solar:#E8541C; --solar-text:#B83A0F; --solar-soft:#F8C9B4; --solar-tint:#FBE6D9;
  --green:#2F6F4E; --green-tint:#D6E5DA; --red:#B23B2A;
  --disp:"Fraunces",Georgia,serif; --ui:"Inter",system-ui,sans-serif; --mono:"JetBrains Mono",ui-monospace,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{background:var(--paper);color:var(--ink);font-family:var(--ui);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
p a,li a,.note a{color:var(--solar-text)}
::selection{background:var(--solar);color:var(--paper)}
.skip{position:absolute;left:-9999px;top:8px;background:var(--ink);color:var(--paper);padding:8px 14px;border-radius:8px;z-index:100}
.skip:focus{left:16px}
.wrap{max-width:1160px;margin:0 auto;padding:0 40px}
.narrow{max-width:820px}
.disp{font-family:var(--disp);font-weight:500;letter-spacing:-.025em;font-feature-settings:"ss01"}
.disp em{font-style:italic;color:var(--solar)}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute)}
.eyebrow b{color:var(--solar-text);font-weight:500}
p{text-wrap:pretty}
:focus-visible{outline:2px solid var(--solar);outline-offset:3px;border-radius:4px}

header{position:sticky;top:0;z-index:50;background:rgba(244,239,230,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule-soft)}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px;gap:20px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.mark{width:30px;height:30px;border-radius:7px;background:var(--solar);display:grid;place-items:center;flex:none}
.mark svg{width:18px;height:18px}
.word{display:flex;flex-direction:column;line-height:1}
.word span:first-child{font-family:var(--disp);font-weight:600;font-size:22px;letter-spacing:-.03em}
.word span:last-child{font-family:var(--mono);font-size:9px;letter-spacing:.22em;color:var(--ink-mute);margin-top:3px}
.links{display:flex;gap:22px;list-style:none}
.links a{text-decoration:none;font-size:14px;color:var(--ink-soft)}
.links a:hover,.links a[aria-current]{color:var(--ink)}
.links a[aria-current]{text-decoration:underline;text-decoration-color:var(--solar);text-underline-offset:6px;text-decoration-thickness:2px}
.nav-r{display:flex;align-items:center;gap:16px;flex:none}
.tel{font-size:14px;font-weight:500;text-decoration:none;font-variant-numeric:tabular-nums}
.menu{display:none;position:relative}
.menu summary{list-style:none;cursor:pointer;border:1px solid var(--rule);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:500}
.menu summary::-webkit-details-marker{display:none}
.menu ul{position:absolute;right:0;top:46px;background:var(--card);border:1px solid var(--rule);border-radius:12px;list-style:none;padding:8px;min-width:220px;box-shadow:0 18px 40px -24px rgba(26,23,20,.3)}
.menu li a{display:block;padding:10px 12px;text-decoration:none;border-radius:8px;font-size:15px}
.menu li a:hover{background:var(--paper-deep)}

.btn{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:12px 20px;font-size:14px;font-weight:500;text-decoration:none;border:1px solid transparent;cursor:pointer;font-family:var(--ui);transition:background .15s,border-color .15s}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-ink:hover{background:#000}
.btn-solar{background:var(--solar);color:var(--paper)}
.btn-solar:hover{background:#d24814}
.btn-ghost{border-color:var(--rule);color:var(--ink);background:transparent}
.btn-ghost:hover{border-color:var(--ink)}
.btn-ghost-dark{border-color:rgba(244,239,230,.3);color:var(--paper)}
.btn-ghost-dark:hover{border-color:var(--paper)}
.nav .btn{padding:9px 16px;font-size:13px}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}

.hero{padding:64px 0 56px}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.hero-solo{max-width:820px}
.hero h1{font-size:clamp(40px,5.4vw,68px);line-height:1.04;margin:18px 0 22px}
.lead{font-size:18px;color:var(--ink-soft);max-width:36em}
.photo{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:4/3.4;box-shadow:0 30px 60px -36px rgba(26,23,20,.35);background:var(--paper-deep)}
.photo.tall{aspect-ratio:4/4.6}
.photo img{width:100%;height:100%;object-fit:cover}
.photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,23,20,0) 62%,rgba(26,23,20,.55))}
.cap{position:absolute;left:18px;bottom:14px;z-index:1;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--paper)}

.promises{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.promises li{padding:24px 22px;border-left:1px solid var(--rule);display:flex;flex-direction:column;gap:6px}
.promises li:first-child{border-left:0;padding-left:0}
.promises b{font-family:var(--disp);font-weight:500;font-size:19px;letter-spacing:-.015em;line-height:1.2}
.promises span{font-size:14px;color:var(--ink-soft)}

section{padding:88px 0}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:end;margin-bottom:44px}
.sec-head h2{font-size:clamp(30px,3.6vw,46px);line-height:1.08;margin-top:14px}
.sec-head p{color:var(--ink-soft);font-size:17px}
.more{margin-top:28px}
.more a{font-family:var(--mono);font-size:13px;color:var(--solar-text);text-decoration:none}
.more a:hover{text-decoration:underline}

.cards{display:grid;gap:20px}
.cards.c3{grid-template-columns:repeat(3,1fr)}
.cards.c2{grid-template-columns:repeat(2,1fr)}
.card{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:28px;display:flex;flex-direction:column}
.card h3{font-family:var(--disp);font-weight:500;font-size:26px;letter-spacing:-.02em;margin:14px 0 10px;line-height:1.15}
.card p{color:var(--ink-soft);font-size:15.5px}
.card .go{margin-top:auto;padding-top:22px;font-family:var(--mono);font-size:13px;text-decoration:none;color:var(--solar-text)}
.card .go:hover{text-decoration:underline}

.steps{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));border-top:1px solid var(--rule)}
.steps li{padding:26px 26px 26px 0;border-bottom:1px solid var(--rule-soft)}
.steps .n{font-family:var(--mono);font-size:12px;color:var(--solar-text);letter-spacing:.12em}
.steps h3{font-family:var(--disp);font-weight:500;font-size:23px;letter-spacing:-.02em;margin:10px 0 8px}
.steps p{color:var(--ink-soft);font-size:15px}

.split{background:var(--paper-deep)}
.split-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
.split h2{font-size:clamp(30px,3.6vw,44px);line-height:1.08;margin:14px 0 18px}
.split p{color:var(--ink-soft);font-size:17px}
.ticks{list-style:none;margin:22px 0 28px;display:grid;gap:14px}
.ticks li{padding-left:26px;position:relative;color:var(--ink-soft)}
.ticks li::before{content:"";position:absolute;left:0;top:8px;width:10px;height:10px;border-radius:50%;background:var(--solar)}
.ticks b{color:var(--ink);font-weight:600}

.equip{margin-top:36px;display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;padding-top:24px;border-top:1px solid var(--rule)}
.equip ul{list-style:none;display:flex;flex-wrap:wrap;gap:10px}
.equip li{font-size:13px;font-weight:500;border:1px solid var(--rule);border-radius:999px;padding:5px 12px;background:var(--card);color:var(--ink-soft)}

.table-wrap{overflow-x:auto;border:1px solid var(--rule);border-radius:12px;background:var(--card)}
.data{width:100%;border-collapse:collapse;min-width:560px}
.data th{background:var(--paper-deep);text-align:left;font-family:var(--mono);font-weight:500;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);padding:12px 20px}
.data td{padding:16px 20px;border-top:1px solid var(--rule-soft);font-size:15px;color:var(--ink-soft);vertical-align:top}
.data td b{color:var(--ink)}
.data td.n{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap;text-align:right}
.data th:not(:first-child){text-align:right}
.data th:nth-child(2):not(:last-child){text-align:left}
.note{margin-top:16px;font-size:14px;color:var(--ink-mute);max-width:60em}
.callout{background:var(--solar-tint);border:1px solid var(--solar-soft);border-radius:12px;padding:24px 28px;max-width:860px}
.callout p{font-size:16px;color:var(--ink)}
.callout p+p{margin-top:10px}

.faq{border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;padding:22px 40px 22px 0;font-family:var(--disp);font-size:21px;letter-spacing:-.015em;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:18px;font-family:var(--ui);font-size:24px;color:var(--solar)}
.faq details[open] summary::after{content:"\2212"}
.faq p{padding:0 0 24px;color:var(--ink-soft);max-width:60em}

.dark{background:var(--ink);color:var(--paper);position:relative;overflow:hidden}
.dark .eyebrow{color:#a79e92}
.arc{position:absolute;pointer-events:none;opacity:.16}
.band h2{font-size:clamp(32px,4.2vw,54px);line-height:1.06;margin:16px 0 18px;max-width:16em}
.band p{color:#c9c0b3;font-size:17px;max-width:40em}

.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}
.contact-list{list-style:none;margin-top:32px;border-top:1px solid var(--rule)}
.contact-list li{padding:16px 0;border-bottom:1px solid var(--rule-soft);display:grid;grid-template-columns:90px 1fr;gap:12px;align-items:baseline}
.contact-list a{text-decoration:none;font-weight:500}
.lead-form{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:32px;display:grid;gap:16px;box-shadow:0 18px 40px -28px rgba(26,23,20,.18)}
.lead-form h2{font-size:30px;line-height:1.1}
.lead-form .sub{color:var(--ink-soft);font-size:15px;margin-top:-8px}
.lead-form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.lead-form label{display:grid;gap:6px;font-size:13px;font-weight:500;color:var(--ink-soft)}
.lead-form input,.lead-form select,.lead-form textarea{font:inherit;font-size:15px;font-weight:400;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:8px;padding:11px 12px;width:100%}
.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus{outline:2px solid var(--solar);outline-offset:0;border-color:var(--solar)}
.lead-form fieldset{border:0;display:flex;flex-wrap:wrap;gap:10px 20px}
.lead-form legend{font-size:13px;font-weight:500;color:var(--ink-soft);margin-bottom:8px;width:100%}
.lead-form .chk{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--ink);font-weight:400}
.lead-form .chk input{width:18px;height:18px;accent-color:var(--solar)}
.lead-form .hp{position:absolute;left:-9999px}
.lead-form button{justify-self:start;font-size:15px;padding:13px 22px}
.lead-form .fine{font-size:12.5px;color:var(--ink-mute)}
.lead-form .status{font-size:15px;font-weight:500}
.lead-form .status.ok{color:var(--green)}
.lead-form .status.err{color:var(--red)}
.lead-form [aria-invalid="true"]{border-color:var(--red)}

.prose p{margin-top:16px;color:var(--ink-soft);font-size:17px}
.prose h1{font-size:48px;margin:16px 0 8px}

footer{padding:56px 0 40px;border-top:1px solid var(--rule)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:40px}
.foot-grid ul{list-style:none;margin-top:14px;display:grid;gap:8px;font-size:14px;color:var(--ink-soft)}
.foot-grid ul a{text-decoration:none;color:var(--ink-soft)}
.foot-grid ul a:hover{color:var(--ink)}
.foot-about{margin-top:16px;font-size:14px;color:var(--ink-soft);max-width:26em}
.foot-base{margin-top:44px;padding-top:20px;border-top:1px solid var(--rule-soft);display:flex;flex-wrap:wrap;gap:8px 24px;font-family:var(--mono);font-size:12px;color:var(--ink-mute)}
.foot-base a{text-decoration:none}

@media (max-width:1080px){.links{display:none}.menu{display:block}.tel{display:none}}
@media (max-width:980px){
  .hero-grid,.sec-head,.split-grid,.contact-grid{grid-template-columns:1fr;gap:28px}
  .photo,.photo.tall{aspect-ratio:16/10}
  .promises{grid-template-columns:repeat(2,1fr)}
  .promises li:nth-child(3){border-left:0;padding-left:0}
  .promises li:nth-child(n+3){border-top:1px solid var(--rule)}
  .cards.c3{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .wrap{padding:0 16px}
  .hero{padding:36px 0 40px}
  section{padding:60px 0}
  .nav-r .btn{display:none}
  .cards.c3,.cards.c2,.promises,.lead-form .row{grid-template-columns:1fr}
  .promises li,.promises li:nth-child(3){border-left:0;padding-left:0;border-top:1px solid var(--rule)}
  .promises li:first-child{border-top:0}
  .lead-form{padding:22px}
  .foot-grid{grid-template-columns:1fr}
  .contact-list li{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* v2: track record, photos, reviews, crew */
.stats{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-bottom:8px}
.stats li{padding:26px 22px;border-left:1px solid var(--rule);display:flex;flex-direction:column;gap:8px}
.stats li:first-child{border-left:0;padding-left:0}
.stats b{font-family:var(--disp);font-weight:500;font-size:40px;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}
.stats span{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);line-height:1.5}
.promises{margin-top:0}
.card.pic{padding:0;overflow:hidden}
.card.pic img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;background:var(--paper-deep)}
.card.pic .body{padding:24px 26px 26px;display:flex;flex-direction:column;flex:1}
.card.pic .go{margin-top:auto}
.figs{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--rule);border-radius:12px;background:var(--card);margin-top:28px;overflow:hidden}
.figs div{padding:20px 22px;border-left:1px solid var(--rule-soft);border-top:1px solid var(--rule-soft);margin:-1px 0 0 -1px}
.figs dt{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
.figs dd{margin-top:8px;font-family:var(--disp);font-size:21px;letter-spacing:-.01em;line-height:1.25}
.equip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.equip-grid>div{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:24px}
.equip-grid ul{list-style:none;margin-top:12px;display:grid;gap:8px}
.equip-grid li{font-family:var(--disp);font-size:21px;letter-spacing:-.01em}
.quotes{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.quote{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:28px;display:flex;flex-direction:column;gap:20px}
.quote blockquote{font-family:var(--disp);font-size:21px;line-height:1.4;letter-spacing:-.01em}
.quote figcaption{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--ink-soft);margin-top:auto}
.quote figcaption b{color:var(--ink);font-weight:600}
.av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex:none;font-family:var(--mono);font-size:13px;font-weight:500;color:var(--paper);background:var(--ink)}
.av.lg{width:56px;height:56px;font-size:15px;background:var(--solar)}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.inst{background:var(--card);border:1px solid var(--rule);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.inst img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:var(--paper-deep)}
.inst .body{padding:18px 20px 20px}
.inst h3{font-family:var(--disp);font-weight:500;font-size:21px;letter-spacing:-.015em;margin:8px 0 4px}
.inst p{font-size:14.5px;color:var(--ink-soft)}
.area{display:grid;gap:22px}
.area-stats{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.area-stats li{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:6px}
.area-stats b{font-family:var(--disp);font-weight:500;font-size:40px;letter-spacing:-.02em;line-height:1;color:var(--solar)}
.area-stats span{font-size:14px;color:var(--ink-soft)}
.area p{color:var(--ink-soft);font-size:16px;max-width:52em}
.crew{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.person{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:24px;display:flex;gap:18px;align-items:flex-start}
.person h3{font-family:var(--disp);font-weight:500;font-size:24px;letter-spacing:-.02em}
.person .eyebrow{margin-top:4px}
.person p{margin-top:10px;font-size:15px;color:var(--ink-soft)}
.compare td.yes{color:var(--ink);font-weight:600}
.compare th:nth-child(2),.compare th:nth-child(3){text-align:left}
@media (max-width:980px){
  .stats{grid-template-columns:repeat(2,1fr)}
  .stats li:nth-child(3){border-left:0;padding-left:0}
  .stats li:nth-child(n+3){border-top:1px solid var(--rule)}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .quotes,.crew{grid-template-columns:1fr}
  .figs{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .stats,.equip-grid,.area-stats,.figs{grid-template-columns:1fr}
  .stats li,.stats li:nth-child(3){border-left:0;padding-left:0;border-top:1px solid var(--rule)}
  .stats li:first-child{border-top:0}
  .gallery{grid-template-columns:1fr}
  .stats b{font-size:34px}
}
