/* T1 "Editorial Warm" — generated stylesheet (palette: forest)
   Left-aligned warm editorial: utility topbar w/ phone, amber pill CTAs,
   forest headings on cream. Deliberately unlike T3's centred premium minimalism. */
:root{
  --brand: #1d3b2a;
  --brand-deep: #12271b;
  --brand-soft: #e7eee5;
  --ink: #23291f;
  --paper: #f7f4ec;
  --accent: #f0a83b;
  --accent-deep: #d98c1e;
  --rust: #a8452a;
  --ov: 16, 38, 27;
  --mut: color-mix(in srgb, var(--ink) 70%, var(--paper));
  --line: color-mix(in srgb, var(--ink) 14%, var(--paper));
  --line-soft: color-mix(in srgb, var(--ink) 8%, var(--paper));
  --disp: "Archivo", "Segoe UI", sans-serif;
  --body: "Inter", "Helvetica Neue", Arial, sans-serif;
  --r: 20px;
  --r-sm: 14px;
  --shadow: 0 26px 46px -32px rgba(var(--ov), .55);
  --shadow-lg: 0 44px 74px -38px rgba(var(--ov), .7);
  --pad: clamp(3.4rem, 6.5vw, 6rem);
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--body);font-size:17px;line-height:1.7;color:var(--ink);background:var(--paper);
  -webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
[id]{scroll-margin-top:104px}
.wrap{max-width:1200px;margin:0 auto;padding:0 28px}
h1,h2,h3{font-family:var(--disp);line-height:1.08;letter-spacing:-.02em;color:var(--brand-deep)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:8px}
.skip{position:absolute;left:-9999px;top:0;z-index:99;background:var(--accent);color:var(--brand-deep);
  font-family:var(--disp);font-weight:800;padding:.8rem 1.2rem;border-radius:0 0 12px 0}
.skip:focus{left:0}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-family:var(--disp);
  font-weight:800;font-size:.98rem;line-height:1;border-radius:999px;padding:.95rem 1.75rem;
  text-decoration:none;border:2px solid transparent;cursor:pointer;white-space:nowrap;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease, border-color .18s ease}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn-amber{background:var(--accent);color:var(--brand-deep)}
.btn-amber:hover{background:var(--accent-deep)}
.btn-deep{background:var(--brand-deep);color:#fff}
.btn-deep:hover{background:var(--brand)}
.btn-line{border-color:color-mix(in srgb, var(--brand-deep) 32%, transparent);color:var(--brand-deep);background:transparent}
.btn-line:hover{border-color:var(--brand-deep);background:color-mix(in srgb, var(--brand) 10%, transparent)}
.btn-ghost{border-color:rgba(255,255,255,.55);color:#fff}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.14)}
.btn-sm{padding:.6rem 1.15rem;font-size:.9rem;border-width:2px}
.btn svg{flex:none}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem}

/* ---------- utility topbar ---------- */
.topbar{background:var(--brand-deep);color:rgba(255,255,255,.78);font-size:.83rem;letter-spacing:.005em}
.topbar-in{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;min-height:40px;
  padding-top:.35rem;padding-bottom:.35rem}
.topbar-tag{display:inline-flex;align-items:center;gap:.55rem;font-weight:600;color:#fff}
.topbar-tag::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none}
.topbar-meta{display:flex;align-items:center;gap:1.4rem}
.topbar-meta a{text-decoration:none}
.topbar-meta span,.topbar-meta a{display:inline-flex;align-items:center;gap:.45rem}
.topbar-phone{font-family:var(--disp);font-weight:800;font-size:.95rem;color:var(--accent);letter-spacing:.01em}
.topbar-phone:hover{color:#fff}

/* ---------- header ---------- */
.site-head{background:var(--paper);border-bottom:1px solid var(--line);z-index:30;position:relative}
@media(min-width:941px){.site-head{position:sticky;top:0}}
.head-in{display:flex;align-items:center;gap:1.6rem;min-height:78px;padding-top:.55rem;padding-bottom:.55rem}
.brand{display:inline-flex;align-items:center;text-decoration:none;flex:0 1 auto;min-width:0}
.brand-name{font-family:var(--disp);font-weight:800;font-size:1.22rem;line-height:1.15;color:var(--brand-deep)}
.brand-logo{height:40px;width:auto;max-width:56vw;object-fit:contain;display:block}
.foot-logo{height:48px;width:auto;max-width:280px;object-fit:contain;display:block}
.nav{display:flex;align-items:center;gap:1.5rem;margin-left:auto;flex:none}
.nav a{position:relative;white-space:nowrap;text-decoration:none;font-weight:600;font-size:.96rem;color:var(--brand-deep);padding:.45rem 0}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:.1rem;height:2px;background:var(--accent);
  transition:right .25s ease}
.nav a:hover::after{right:0}
.head-cta{display:flex;align-items:center;gap:.6rem;flex:none}
@media(max-width:1140px){.head-in{gap:1.1rem}.nav{gap:1.05rem}.nav a{font-size:.92rem}}
@media(max-width:940px){
  .head-in{flex-wrap:wrap;gap:.8rem 1rem;min-height:0;padding-top:.75rem;padding-bottom:0}
  .head-cta{margin-left:auto}
  .nav{order:3;width:100%;margin-left:0;gap:1.3rem;flex:1 1 100%;overflow-x:auto;padding:.15rem 0 .7rem;
    scrollbar-width:none;-ms-overflow-style:none}
  .nav::-webkit-scrollbar{display:none}
}
@media(max-width:560px){
  .topbar{font-size:.77rem}
  .topbar-tag{display:none}
  .topbar-in{justify-content:center}
  .brand-name{font-size:1.02rem}
  .head-cta .btn-sm{padding:.55rem .9rem;font-size:.82rem}
}

/* ---------- hero ---------- */
.hero{position:relative;color:#fff;overflow:hidden;background-color:var(--brand-deep)}
.hero.has-img{background-size:cover;background-position:center;background-repeat:no-repeat}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
  gap:clamp(2rem,4vw,3.4rem);align-items:center;
  padding-top:clamp(3.4rem,6vw,5.4rem);padding-bottom:clamp(3.8rem,7vw,6rem)}
.hero-in{max-width:38rem}
.hero h1{font-weight:800;font-size:clamp(2.35rem,4.9vw,4rem);line-height:1.02;letter-spacing:-.03em;
  color:#fff;margin-bottom:1.15rem;text-wrap:balance}
.h1-kicker{display:flex;align-items:center;font-family:var(--body);font-weight:700;font-size:.8rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:1.15rem}
.hero-sub{font-size:clamp(1.02rem,1.35vw,1.16rem);color:rgba(255,255,255,.9);max-width:34em;margin-bottom:1.1rem}
.hero-meta{list-style:none;padding:0;display:flex;flex-direction:column;gap:.55rem;font-size:.95rem;
  color:rgba(255,255,255,.9);margin-bottom:1.9rem}
.hero-meta li{display:flex;align-items:center;gap:.65rem;line-height:1.45}
.hero-meta li::before{content:"";width:17px;height:17px;flex:none;background:var(--accent);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>") center/contain no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>") center/contain no-repeat}
.hero-in > *{opacity:0;transform:translateY(16px);animation:rise .75s cubic-bezier(.2,.7,.3,1) forwards}
.hero-in > *:nth-child(2){animation-delay:.09s}
.hero-in > *:nth-child(3){animation-delay:.18s}
.hero-in > *:nth-child(4){animation-delay:.27s}
.hero-form{position:relative;z-index:3}
@keyframes rise{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  .hero-in > *,.quote-card{animation:none;opacity:1;transform:none}
  html{scroll-behavior:auto}
  .btn:hover,.svc-card:hover,.chip:hover,.area-card:hover{transform:none}
}
@media(max-width:940px){
  .hero-grid{grid-template-columns:1fr;gap:2.4rem;padding-bottom:clamp(3rem,7vw,4rem)}
  .hero-in{max-width:none}
  .hero-form{max-width:520px}
}

/* ---------- quote card (hero-adjacent lead form — template law #1) ---------- */
.quote-card{position:relative;background:#fff;color:var(--ink);border-radius:24px;overflow:hidden;
  padding:1.75rem 1.6rem 1.6rem;border:1px solid var(--line);
  opacity:0;transform:translateY(16px);animation:rise .75s cubic-bezier(.2,.7,.3,1) .3s forwards}
.quote-card::before{content:"";position:absolute;inset:0 0 auto 0;height:6px;background:var(--accent)}
.quote-head{margin-bottom:1.1rem}
.quote-head h2{font-weight:800;font-size:1.35rem;letter-spacing:-.02em}
.quote-head span{display:block;margin-top:.35rem;font-size:.9rem;line-height:1.5;color:var(--mut)}
.quote-form{display:grid;grid-template-columns:1fr;gap:.7rem}
.qf{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.qf label{font-size:.71rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--mut)}
.qf input,.qf select{font:inherit;font-size:.97rem;color:var(--ink);width:100%;min-width:0;
  padding:.72rem .85rem;border:1.5px solid var(--line);border-radius:12px;background:var(--paper);
  transition:border-color .15s ease, box-shadow .15s ease}
.qf input::placeholder{color:color-mix(in srgb, var(--ink) 45%, var(--paper))}
.qf input:focus,.qf select:focus{outline:none;border-color:var(--brand);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 40%, transparent)}
.qf-wide{grid-column:1 / -1}
.quote-form .btn{width:100%;margin-top:.4rem}
.form-note{font-size:.88rem;font-weight:700;color:var(--brand);min-height:1em}
.quote-fine{font-size:.78rem;color:var(--mut);text-align:center;line-height:1.5}
.quote-wide .quote-form{grid-template-columns:1fr 1fr}
.quote-wide .quote-form .btn{width:auto;justify-self:start;padding-left:2.1rem;padding-right:2.1rem}
.quote-wide .form-note,.quote-wide .quote-fine{grid-column:1 / -1}
.quote-wide .quote-fine{text-align:left}
@media(max-width:600px){.quote-wide .quote-form{grid-template-columns:1fr}
  .quote-wide .quote-form .btn{width:100%}.quote-wide .quote-fine{text-align:center}}

/* ---------- section scaffolding ---------- */
section{padding:var(--pad) 0}
.band-white{background:#fff}
.band-soft{background:var(--brand-soft)}
.band-deep{background:var(--brand-deep);color:rgba(255,255,255,.8)}
.band-deep h2,.band-deep h3{color:#fff}
.band-deep .sec-head p{color:rgba(255,255,255,.76)}
.sec-head{max-width:44rem;margin-bottom:2.7rem}
.sec-head h2{font-weight:800;font-size:clamp(1.85rem,3.4vw,2.7rem);text-wrap:balance}
.sec-head p{margin-top:.85rem;color:var(--mut);font-size:1.04rem;max-width:38em}
.sec-split{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.4rem 2.5rem;max-width:none}
.sec-split > div{max-width:44rem}
.sec-link{font-family:var(--disp);font-weight:800;font-size:.95rem;color:var(--brand);text-decoration:none;
  border-bottom:2px solid color-mix(in srgb, var(--brand) 35%, transparent);padding-bottom:.15rem;white-space:nowrap}
.sec-link:hover{border-color:var(--brand)}

/* ---------- signature chip row ---------- */
.chips{padding-top:clamp(2.8rem,5vw,4.2rem)}
.chip-row{display:flex;flex-wrap:wrap;gap:.65rem}
.chip{display:inline-flex;align-items:center;gap:.5rem;background:#fff;border:1.5px solid var(--line);
  border-radius:999px;padding:.66rem 1.2rem;font-family:var(--disp);font-weight:700;font-size:.95rem;
  color:var(--brand-deep);text-decoration:none;
  transition:transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease}
.chip:hover{transform:translateY(-2px);border-color:var(--brand);background:var(--brand-soft);box-shadow:var(--shadow)}
.chip-go{border-color:var(--brand-deep);color:var(--brand-deep)}
.chip-go:hover{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff}

/* ---------- trust badges (inner-page mastheads) ---------- */
.badge{display:inline-flex;align-items:center;gap:.55rem;background:#fff;border:1px solid var(--line);
  border-radius:999px;padding:.52rem 1.05rem;font-size:.87rem;font-weight:600;color:var(--brand-deep)}
.badge::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none}
.badge b{font-family:var(--disp);font-weight:800}
.badge-since{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff}
.badge-since b{color:var(--accent)}
.band-deep .badge{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.18);color:#fff}

/* ---------- services: editorial media cards ---------- */
.svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
@media(max-width:880px){.svc-grid{grid-template-columns:1fr}}
.svc-card{display:grid;grid-template-columns:158px minmax(0,1fr);background:var(--paper);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;color:inherit;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease}
.band-white .svc-card{background:var(--paper)}
.svc-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);
  border-color:color-mix(in srgb, var(--brand) 38%, var(--line))}
.svc-thumb{position:relative;overflow:hidden;min-height:172px}
.svc-img{position:absolute;inset:0;background-position:center;background-size:cover;
  background-color:var(--brand);transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.svc-card:hover .svc-img{transform:scale(1.07)}
.svc-img img,.gal .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.svc-body{padding:1.3rem 1.4rem 1.35rem;display:flex;flex-direction:column;gap:.3rem}
.svc-idx{font-family:var(--disp);font-weight:800;font-size:.78rem;letter-spacing:.16em;color:var(--brand)}
.svc-body h3{font-size:1.18rem;font-weight:800;margin-top:.1rem}
.svc-body p{font-size:.95rem;line-height:1.6;color:var(--mut);flex:1;margin:.15rem 0 .55rem}
.svc-more{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--disp);font-weight:800;
  font-size:.9rem;color:var(--brand)}
.svc-more span{transition:transform .22s ease}
.svc-card:hover .svc-more span{transform:translateX(5px)}
@media(max-width:520px){
  .svc-card{grid-template-columns:1fr}
  .svc-thumb{min-height:0;aspect-ratio:16/9}
}

/* ---------- why us (inverted forest band) ---------- */
.why-grid-wrap{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(2rem,4vw,3.6rem);
  align-items:start}
@media(max-width:940px){.why-grid-wrap{grid-template-columns:1fr;gap:2.2rem}}
.why-aside .sec-head{margin-bottom:1.6rem}
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
@media(max-width:620px){.why-grid{grid-template-columns:1fr}}
.why-item{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.13);border-radius:18px;
  padding:1.4rem 1.4rem 1.5rem;transition:background .2s ease, border-color .2s ease, transform .2s ease}
.why-item:hover{background:rgba(255,255,255,.1);border-color:color-mix(in srgb, var(--accent) 70%, transparent);
  transform:translateY(-3px)}
.why-item .ic{width:46px;height:46px;border-radius:15px;background:var(--accent);color:var(--brand-deep);
  display:grid;place-items:center;font-size:1.2rem;margin-bottom:.95rem}
.why-item .ic svg{width:22px;height:22px}
.why-item h3{font-size:1.07rem;font-weight:800;margin-bottom:.4rem}
.why-item p{font-size:.94rem;line-height:1.6;color:rgba(255,255,255,.76)}

/* ---------- proof: reviews or honest-pricing fallback ---------- */
.rev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1.2rem}
.rev{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:1.6rem 1.6rem 1.4rem;overflow:hidden}
.rev::before{content:"\201C";position:absolute;top:.1rem;right:1rem;font-family:var(--disp);font-weight:800;
  font-size:5rem;line-height:1;color:var(--brand-soft)}
.rev .stars{position:relative;color:var(--accent);letter-spacing:.2em;margin-bottom:.6rem}
.rev p{position:relative;font-size:.97rem}
.rev .who{margin-top:.85rem;font-family:var(--disp);font-weight:800;font-size:.88rem;color:var(--mut)}
.pricing-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:1.6rem;align-items:start}
@media(max-width:940px){.pricing-grid{grid-template-columns:1fr}}
.pricing-grid .quote-card{animation-delay:0s}
.pricing{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.8rem 1.9rem}
.pricing h3{font-size:1.35rem;font-weight:800;margin-bottom:.4rem}
.pricing > p{color:var(--mut)}
.pricing ul{list-style:none;padding:0;margin:1.1rem 0 0}
.pricing li{position:relative;padding-left:2.1rem;margin:.8rem 0;color:var(--mut);font-size:.97rem;line-height:1.6}
.pricing li::before{content:"";position:absolute;left:0;top:.15rem;width:22px;height:22px;border-radius:50%;
  background:var(--brand-soft)}
.pricing li::after{content:"";position:absolute;left:6.5px;top:.5rem;width:9px;height:5px;
  border-left:2.5px solid var(--brand);border-bottom:2.5px solid var(--brand);transform:rotate(-45deg)}
.pricing .fine{margin-top:1.2rem;padding-top:1rem;border-top:1px dashed var(--line);font-size:.88rem;color:var(--mut)}

/* ---------- gallery: editorial mosaic ---------- */
.gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(130px,15vw,182px);gap:.9rem;
  grid-auto-flow:dense}
.gal .ph{position:relative;overflow:hidden;border-radius:16px;background-position:center;background-size:cover;
  background-color:var(--brand-soft);transition:filter .3s ease, box-shadow .3s ease}
.gal .ph.has-img::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.gal .ph:hover{filter:saturate(1.1) brightness(1.04);box-shadow:var(--shadow)}
.gal .ph:nth-child(1){grid-column:span 2;grid-row:span 2}
.gal .ph:nth-child(6):last-child{grid-column:span 4}
@media(max-width:880px){
  .gal{grid-template-columns:repeat(2,1fr);grid-auto-rows:clamp(120px,26vw,170px)}
  .gal .ph:nth-child(6):last-child{grid-column:span 2}
}

/* ---------- FAQ: title left, all questions stacked right ---------- */
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:1.5rem clamp(2rem,4vw,3.6rem);
  align-items:start}
.faq-grid .faq-head{margin-bottom:0;position:sticky;top:110px}
.faq-grid .faq-aside{margin-top:.85rem}
@media(max-width:880px){.faq-grid{grid-template-columns:1fr}.faq-grid .faq-head{position:static}}
.faq-list{display:grid;grid-template-columns:1fr;gap:.8rem;align-items:start}
.faq-list details{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;
  transition:border-color .2s ease, box-shadow .2s ease}
.faq-list details[open]{border-color:color-mix(in srgb, var(--brand) 34%, var(--line));box-shadow:var(--shadow)}
.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;
  list-style:none;padding:1.1rem 1.3rem;font-family:var(--disp);font-weight:800;font-size:1.02rem;
  line-height:1.35;color:var(--brand-deep)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";display:grid;place-items:center;flex:none;width:28px;height:28px;
  border-radius:50%;background:var(--brand-soft);color:var(--brand);font-family:var(--disp);font-weight:800;
  font-size:1.3rem;line-height:1;transition:transform .25s ease, background .2s ease, color .2s ease}
.faq-list details[open] summary::after{transform:rotate(45deg);background:var(--accent);color:var(--brand-deep)}
.faq-list details p{padding:0 1.3rem 1.2rem;color:var(--mut);font-size:.97rem}
.faq-aside{font-size:.97rem;color:var(--mut)}
.faq-aside a{font-family:var(--disp);font-weight:800;color:var(--brand);text-decoration:none}
.faq-aside a:hover{text-decoration:underline}

/* ---------- CTA band (deep forest, phone panel split right) ---------- */
.cta-band{background:var(--brand-deep);color:#fff;padding:clamp(3rem,5.5vw,4.6rem) 0}
.cta-in{display:flex;flex-wrap:wrap;align-items:center;gap:1.8rem 0}
.cta-copy{flex:1 1 380px;max-width:38rem;padding-right:clamp(1.4rem,3vw,2.6rem)}
.cta-band h2{color:#fff;font-size:clamp(1.85rem,3.4vw,2.6rem);font-weight:800;text-wrap:balance}
.cta-sub{margin-top:.7rem;font-size:1.02rem;color:rgba(255,255,255,.75);max-width:32rem}
.cta-copy .btn-row{margin-top:1.3rem}
.cta-phone{flex:0 1 300px;border-left:1px solid rgba(255,255,255,.18);padding:.4rem 0 .4rem clamp(1.4rem,3vw,2.6rem)}
.cta-phone-label{font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.65)}
.cta-phone-num{display:inline-block;white-space:nowrap;font-family:var(--disp);font-weight:800;
  font-size:clamp(1.6rem,3.2vw,2.5rem);letter-spacing:-.01em;color:var(--accent);
  text-decoration:none;margin-top:.35rem}
.cta-phone-num:hover{color:#fff}
.cta-phone-hours{color:rgba(255,255,255,.6);font-size:.9rem;margin-top:.3rem}
@media(max-width:720px){
  .cta-copy{padding-right:0}
  .cta-phone{flex-basis:100%;border-left:0;border-top:1px solid rgba(255,255,255,.18);padding:1.5rem 0 0}
}

/* ---------- inner-page masthead ---------- */
.masthead{position:relative;overflow:hidden;border-bottom:1px solid var(--line);background:var(--brand-soft);
  padding:clamp(2.2rem,4vw,3.4rem) 0 clamp(2.6rem,4.5vw,3.8rem)}
.mast-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
  gap:clamp(2rem,4vw,3.2rem);align-items:center}
.mast-grid.solo{grid-template-columns:1fr}
.mast-grid.solo .mast-in{max-width:52rem}
@media(max-width:940px){.mast-grid{grid-template-columns:1fr;gap:2.2rem}}
.masthead h1{font-weight:800;font-size:clamp(2rem,4.1vw,3.2rem);letter-spacing:-.03em;margin-bottom:.9rem;
  text-wrap:balance}
.mast-lede{font-size:1.06rem;color:var(--mut);max-width:38em}
.mast-in .btn-row{margin-top:1.6rem}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.84rem;color:var(--mut);
  margin-bottom:1.1rem}
.crumbs a{color:var(--brand);font-weight:600;text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.crumbs .sep{opacity:.45}
.mast-badges{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.4rem}

/* ---------- article body (service / city copy) ---------- */
.article-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2rem,4vw,3.4rem);
  align-items:start}
@media(max-width:940px){.article-grid{grid-template-columns:1fr}}
.prose{max-width:44rem}
.prose > p{margin-bottom:1.1rem;color:var(--mut)}
.prose h2{font-size:clamp(1.45rem,2.4vw,1.85rem);font-weight:800;margin:2.4rem 0 .9rem}
.prose h2:first-child{margin-top:0}
.prose ul{list-style:none;padding:0;margin:0 0 1.4rem}
.prose li{position:relative;padding-left:2rem;margin:.65rem 0;color:var(--mut)}
.prose li::before{content:"";position:absolute;left:0;top:.2rem;width:20px;height:20px;border-radius:50%;
  background:color-mix(in srgb, var(--accent) 28%, var(--paper))}
.prose li::after{content:"";position:absolute;left:5.5px;top:.52rem;width:8px;height:4.5px;
  border-left:2.5px solid var(--brand);border-bottom:2.5px solid var(--brand);transform:rotate(-45deg)}
.prose-figure{margin:2rem 0;border-radius:var(--r);overflow:hidden;position:relative;
  aspect-ratio:16/9;background-position:center;background-size:cover;box-shadow:var(--shadow)}
.aside-stack{display:flex;flex-direction:column;gap:1.1rem;position:sticky;top:110px}
@media(max-width:940px){.aside-stack{position:static}}
.aside-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.5rem 1.6rem}
.aside-card h3{font-size:1.1rem;font-weight:800;margin-bottom:.5rem}
.aside-card p{font-size:.94rem;color:var(--mut)}
.aside-card .btn{margin-top:1rem;width:100%}
.aside-phone{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--disp);font-weight:800;
  font-size:1.5rem;color:var(--brand-deep);text-decoration:none;margin-top:.3rem}
.aside-phone:hover{color:var(--brand)}
.aside-dark{background:var(--brand-deep);border-color:var(--brand-deep);color:rgba(255,255,255,.8)}
.aside-dark h3{color:#fff}
.aside-dark p{color:rgba(255,255,255,.75)}
.aside-dark .aside-phone{color:var(--accent)}
.aside-list{list-style:none;padding:0;margin:.6rem 0 0;font-size:.94rem;color:var(--mut)}
.aside-list li{padding:.4rem 0;border-bottom:1px solid var(--line-soft)}
.aside-list li:last-child{border-bottom:0}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:1.7rem;align-items:start}
@media(max-width:940px){.contact-grid{grid-template-columns:1fr}}
.contact-side{background:var(--brand-deep);color:rgba(255,255,255,.8);border-radius:var(--r);padding:1.8rem 1.8rem 1.6rem}
.contact-side h2{color:#fff;font-size:1.3rem;font-weight:800}
.contact-side p{font-size:.95rem;margin-bottom:.5rem}
.contact-side a{color:#fff}
.contact-big{display:inline-block;font-family:var(--disp);font-weight:800;font-size:1.75rem;
  color:var(--accent);text-decoration:none;margin:.2rem 0 .6rem}
.contact-big:hover{color:#fff}
.contact-block{padding:1.2rem 0;border-top:1px solid rgba(255,255,255,.14)}
.contact-block:first-of-type{border-top:0;padding-top:.2rem}
.map-wrap{margin-top:1.2rem}
.map-wrap iframe{width:100%;aspect-ratio:4/3;border:0;border-radius:16px;display:block}

/* ---------- areas ---------- */
.areas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}
.area-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.3rem 1.35rem;
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease}
.area-card h3{display:flex;align-items:center;gap:.5rem;font-size:1.08rem;font-weight:800;margin-bottom:.35rem}
.area-card h3::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--accent);flex:none}
.area-card p{font-size:.92rem;color:var(--mut)}
.area-card.is-home{background:var(--brand-soft);border-color:color-mix(in srgb, var(--brand) 30%, var(--line))}
a.area-card{display:block;text-decoration:none;color:inherit}
a.area-card:hover{transform:translateY(-3px);border-color:var(--brand);box-shadow:var(--shadow)}
a.area-card p{color:var(--brand);font-weight:700}

/* ---------- footer ---------- */
.site-foot{background:var(--brand-deep);color:rgba(255,255,255,.74);border-top:6px solid var(--accent)}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2rem;padding:3.4rem 28px 2.4rem}
@media(max-width:880px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr}}
.foot-brand{display:inline-flex;align-items:center;gap:.65rem;margin-bottom:.9rem}
.foot-brand .brand-mark{width:40px;height:40px;border-radius:13px;background:var(--accent);color:var(--brand-deep)}
.foot-name{font-family:var(--disp);font-weight:800;font-size:1.14rem;color:#fff}
.foot-h{font-family:var(--disp);font-weight:800;font-size:.95rem;color:#fff;margin-bottom:.75rem}
.foot-h a{text-decoration:none}
.foot-h a:hover{color:var(--accent)}
.foot-line{font-size:.9rem;line-height:1.6;margin-bottom:.3rem}
.foot-link{display:block;font-size:.9rem;text-decoration:none;margin-bottom:.4rem;opacity:.85;
  transition:opacity .15s ease, color .15s ease}
.foot-link:hover{opacity:1;color:var(--accent)}
.foot-base{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;justify-content:space-between;
  border-top:1px solid rgba(255,255,255,.13);padding:1.2rem 28px;font-size:.85rem;opacity:.72}