/* Vanta Built to Last — clean, calm, solid. Straight lines, lots of space.
   Colors and fonts from the brand brief: Jost (text), DM Mono (labels and measurements). */
@font-face{font-family:Jost;font-weight:300 700;font-display:swap;src:url(/fonts/jost.woff) format("woff")}
@font-face{font-family:"DM Mono";font-weight:400;font-display:swap;src:url(/fonts/dmmono-400.woff) format("woff")}
@font-face{font-family:"DM Mono";font-weight:500;font-display:swap;src:url(/fonts/dmmono-500.woff) format("woff")}

:root{
  --graphite:#1C1E21; --limestone:#F4F2EE; --concrete:#D9D6D0; --steel:#5E6266;
  --teal:#2F6F73; --teal-dk:#245659; --teal-lt:#7FB3B5; --white:#FFFFFF; --panel:#ECE9E3;
  --font:"Jost",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --mono:"DM Mono",ui-monospace,Menlo,Consolas,monospace;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s6:24px;--s8:32px;--s12:48px;--s16:64px;--s24:96px;
  --wrap:1140px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;background:var(--limestone);color:var(--graphite);font:400 1.0625rem/1.6 var(--font);-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
img{display:block;height:auto}
a{color:var(--teal);text-underline-offset:3px}
a:hover{color:var(--teal-dk)}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
h1,h2,h3{margin:0;font-weight:500;color:var(--graphite);text-wrap:balance}
h1{font-size:clamp(2.5rem,7vw,4.25rem);line-height:1.02;letter-spacing:-.025em}
h2{font-size:clamp(1.75rem,4vw,2.625rem);line-height:1.12;letter-spacing:-.015em}
h3{font-size:1.1875rem;line-height:1.3;font-weight:500}
p{margin:0}
.mono{font-family:var(--mono)}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}
.skip{position:absolute;left:-9999px;top:8px;z-index:60;background:var(--graphite);color:var(--limestone);padding:10px 14px}
.skip:focus{left:8px}
.label{font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin-bottom:var(--s4)}
.lead{font-size:clamp(1.0625rem,2.2vw,1.25rem);line-height:1.55;color:#3a3d42;max-width:34em}
.sub{color:var(--steel);margin-top:var(--s3);max-width:36em}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 22px;font:500 1.0625rem/1 var(--font);letter-spacing:.01em;text-decoration:none;border:1.5px solid transparent;border-radius:2px;transition:background .15s,color .15s,border-color .15s}
.btn-teal{background:var(--teal);color:var(--white)}
.btn-teal:hover{background:var(--teal-dk);color:var(--white)}
.btn-line{background:transparent;color:var(--graphite);border-color:var(--graphite)}
.btn-line:hover{background:var(--graphite);color:var(--limestone)}
.btn-sm{min-height:42px;padding:0 16px;font-size:.9375rem}
.arr{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:square}
.ctas{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s8)}
.phone{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s4);margin-top:var(--s6);font-size:1.0625rem}
.phone .mono{font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;color:var(--steel);width:100%}
.phone a{display:inline-flex;align-items:center;gap:8px;color:var(--graphite);text-decoration:none;font-weight:500;min-height:44px}
.phone a .num{font-size:1.375rem;letter-spacing:.01em;border-bottom:1.5px solid var(--concrete)}
.phone a:hover .num{border-color:var(--teal)}
.phone .sms{font-size:.9375rem;padding:0 14px;border:1.5px solid var(--concrete)}
.phone .sms:hover{border-color:var(--teal)}
.ic-s{width:18px;height:18px;fill:none;stroke:var(--teal);stroke-width:1.7;stroke-linejoin:round}

/* header */
.top{position:sticky;top:0;z-index:40;background:rgba(244,242,238,.94);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--concrete)}
.top-in{display:flex;align-items:center;gap:var(--s4);height:68px}
.brand{display:flex;align-items:center;min-height:44px}
.brand img{width:150px;height:auto}
.lang{display:flex;margin-left:auto;border:1px solid var(--concrete)}
.lang a{display:grid;place-items:center;min-width:44px;height:38px;font:500 .8125rem/1 var(--mono);letter-spacing:.06em;color:var(--steel);text-decoration:none}
.lang a[aria-current="page"]{background:var(--graphite);color:var(--limestone)}
@media (max-width:420px){.brand img{width:118px}.top-in{gap:var(--s2)}.lang a{min-width:38px}.top .btn-sm{padding:0 12px;font-size:.875rem}}

/* hero */
.hero{padding:var(--s16) 0 0;border-bottom:1px solid var(--concrete)}
.hero-in{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--s12);align-items:center}
.hero h1{margin-bottom:var(--s6)}
.hero-art{margin:0}
.plan{display:block;width:100%;height:auto}
.room-fill{fill:var(--white)}
.wall{fill:none;stroke:var(--graphite);stroke-width:5}
.wall-gap{fill:var(--white)}
.pl-row{stroke:var(--concrete);stroke-width:1.2}
.pl-seam{stroke:var(--concrete);stroke-width:1.2}
.door,.door-leaf{stroke:var(--graphite);stroke-width:2;fill:none}
.swing{fill:none;stroke:var(--steel);stroke-width:1;stroke-dasharray:3 4}
.win{stroke:var(--teal-lt);stroke-width:7}
.dim line{stroke:var(--teal);stroke-width:1.2}
.dim .ext{stroke:var(--steel);stroke-width:.8;stroke-dasharray:2 3}
.dim-bg{fill:var(--limestone)}
.dim text,.tag text{font:500 13px var(--mono);fill:var(--teal);letter-spacing:.04em}
.tag rect{fill:var(--limestone);stroke:var(--graphite);stroke-width:1.2}
.tag .tag-a{fill:var(--graphite);font-size:12px;letter-spacing:.12em}
.tag .tag-b{fill:var(--steel);font-size:12px}
.facts{list-style:none;padding:0;margin:var(--s12) 0 0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--concrete)}
.facts li{padding:var(--s4) var(--s4) var(--s4) 0;font-size:.8125rem;letter-spacing:.05em;text-transform:uppercase;color:var(--steel);border-right:1px solid var(--concrete);margin-right:var(--s4)}
.facts li:last-child{border-right:0}

/* sections */
.sec{padding:var(--s24) 0}
.sec-panel{background:var(--panel);border-top:1px solid var(--concrete);border-bottom:1px solid var(--concrete)}
.sec-h{max-width:720px;margin-bottom:var(--s12)}
.note{margin-top:var(--s8);color:var(--steel);max-width:44em}

.svcs{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--graphite)}
.svc{padding:var(--s8) var(--s6) var(--s8) 0;border-right:1px solid var(--concrete);margin-right:var(--s6)}
.svc:last-child{border-right:0;margin-right:0}
.ic{width:36px;height:36px;fill:none;stroke:var(--graphite);stroke-width:1.2;margin-bottom:var(--s6)}
.ic .hi{fill:var(--teal-lt);stroke:var(--teal)}
.svc h3{margin-bottom:var(--s2)}
.svc p{color:var(--steel);font-size:1rem}
.dont{margin-top:var(--s12);display:grid;grid-template-columns:220px 1fr;gap:var(--s6);padding:var(--s6);border:1px solid var(--concrete);background:var(--white)}
.dont h3{font-size:1rem}
.dont p{color:var(--steel);font-size:1rem}

.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,1fr);gap:0;counter-reset:s}
.steps li{position:relative;padding:var(--s6) var(--s6) 0 0;border-top:2px solid var(--graphite)}
.steps li:last-child{border-top-color:var(--teal)}
.step{display:block;font-size:.8125rem;color:var(--teal);margin-bottom:var(--s4);letter-spacing:.06em}
.steps h3{margin-bottom:var(--s2)}
.steps p{color:var(--steel);font-size:1rem}

.rooms{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6)}
.room{background:var(--white);border:1px solid var(--concrete);padding:var(--s6)}
.mini{display:block;width:100%;height:auto;margin-bottom:var(--s6)}
.mini .grid{fill:none;stroke:var(--concrete);stroke-width:1;stroke-dasharray:2 4}
.mini .room-fill{fill:#f9f8f5}
.mini .wall{stroke-width:2.5}
.mp-row,.mp-seam{stroke:var(--concrete);stroke-width:.8}
.room h3{margin-bottom:6px}
.room-dim{font-size:.875rem;color:var(--teal);letter-spacing:.03em}
.room-time{margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--concrete);color:var(--steel);font-size:.9375rem}

.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4)}
.gallery figure{margin:0;background:var(--white);border:1px solid var(--concrete)}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover}
.gallery figcaption{padding:var(--s3) var(--s4);font-size:.9375rem;color:var(--steel)}
.revs{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6)}
.rev{background:var(--white);border:1px solid var(--concrete);padding:var(--s6);display:flex;flex-direction:column;gap:var(--s3)}
.stars{color:var(--teal);letter-spacing:2px;font-size:1rem}
.rev p{font-size:1rem;color:#3a3d42}
.rev cite{font-style:normal;font-family:var(--mono);font-size:.8125rem;color:var(--steel)}
.rev-links{margin-top:var(--s6)}

.team{display:grid;grid-template-columns:1fr 1fr;gap:var(--s6)}
.person{display:flex;gap:var(--s6);align-items:flex-start;padding:var(--s6) 0;border-top:2px solid var(--graphite)}
.initial{flex:none;display:grid;place-items:center;width:64px;height:64px;background:var(--graphite);color:var(--limestone);font-size:1.5rem}
.person:last-child .initial{background:var(--teal)}
.role{font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;color:var(--teal);margin:4px 0 var(--s3)}
.person p:last-child{color:var(--steel);font-size:1rem}

.where{display:grid;grid-template-columns:1fr 1fr;gap:var(--s12);align-items:end}
.where .sec-h{margin:0}
.towns{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--s3)}
.towns li{font:500 .9375rem/1 var(--mono);padding:12px 16px;border:1px solid var(--graphite);background:var(--limestone)}
.towns li:first-child{background:var(--graphite);color:var(--limestone)}

.final{background:var(--graphite);color:var(--limestone);padding:var(--s24) 0}
.final h2{color:var(--limestone);font-size:clamp(2rem,5vw,3.25rem)}
.final .lead{color:#c9c7c2;margin-top:var(--s4)}
.final .btn-line{color:var(--limestone);border-color:var(--limestone)}
.final .btn-line:hover{background:var(--limestone);color:var(--graphite)}
.final .phone .mono{color:#a7a8aa}
.final .phone a{color:var(--limestone)}
.final .phone a .num{border-color:#4a4d52}
.final .phone .sms{border-color:#4a4d52}
.final .ic-s{stroke:var(--teal-lt)}

.foot{background:var(--graphite);color:#c9c7c2;border-top:1px solid #33363b;font-size:.9375rem}
.foot-in{display:grid;grid-template-columns:1fr 2fr;gap:var(--s12);padding-top:var(--s12);padding-bottom:var(--s12)}
.foot-brand img{width:140px}
.foot-brand p{margin-top:var(--s3);font-family:var(--mono);font-size:.8125rem;letter-spacing:.04em;color:var(--teal-lt)}
.foot-info{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6)}
.foot strong{color:var(--limestone);font-weight:500}
.foot a{color:var(--limestone)}
.foot a:hover{color:var(--teal-lt)}
.socs{display:flex;gap:var(--s3)}
.soc svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5}
.soc .fill{fill:currentColor;stroke:none}
.foot-base{display:flex;justify-content:space-between;gap:var(--s4);flex-wrap:wrap;padding-top:var(--s4);padding-bottom:var(--s6);border-top:1px solid #33363b;font-size:.8125rem}

.nf{padding:var(--s24) 0;min-height:60vh}
.nf h1{font-size:clamp(2rem,5vw,3rem);margin-bottom:var(--s4)}
.nf .lead+.lead{margin-top:var(--s3)}

/* responsive: phones first in content, layout collapses here */
@media (max-width:960px){
  .hero-in{grid-template-columns:1fr}
  .hero-art{max-width:460px;margin-top:var(--s4)}
  .svcs{grid-template-columns:1fr 1fr}
  .svc:nth-child(2){border-right:0;margin-right:0}
  .svc:nth-child(n+3){border-top:1px solid var(--concrete)}
  .steps{grid-template-columns:1fr;gap:0}
  .steps li{display:grid;grid-template-columns:56px 1fr;column-gap:var(--s4);padding:var(--s6) 0;border-top-width:1px}
  .steps li .step{grid-row:span 2;margin:3px 0 0}
  .rooms{grid-template-columns:1fr}
  .room{display:grid;grid-template-columns:140px 1fr;column-gap:var(--s6);align-items:center}
  .room .mini{grid-row:span 3;margin:0}
  .room-time{grid-column:2}
  .gallery,.revs{grid-template-columns:1fr 1fr}
  .team,.where,.foot-in{grid-template-columns:1fr}
  .facts{grid-template-columns:1fr 1fr}
  .facts li:nth-child(2){border-right:0}
  .facts li:nth-child(n+3){border-top:1px solid var(--concrete)}
}
@media (max-width:620px){
  .hero{padding-top:var(--s8)}
  .hero-art{margin:0 -8px}
  .sec,.final{padding:var(--s16) 0}
  .sec-h{margin-bottom:var(--s8)}
  .svcs{grid-template-columns:1fr}
  .svc{border-right:0;margin-right:0;padding:var(--s6) 0;display:grid;grid-template-columns:48px 1fr;column-gap:var(--s4)}
  .svc .ic{grid-row:span 2;margin:2px 0 0}
  .svc+.svc{border-top:1px solid var(--concrete)}
  .dont{grid-template-columns:1fr;gap:var(--s2)}
  .ctas .btn{width:100%;justify-content:space-between}
  .room{grid-template-columns:96px 1fr}
  .gallery,.revs{grid-template-columns:1fr}
  .foot-info{grid-template-columns:1fr}
  .facts{margin-top:var(--s8)}
  .facts li{padding:var(--s3) var(--s3) var(--s3) 0;font-size:.75rem}
}
