/* T2 "Heritage Badge" — generated stylesheet (palette: burgundy)
   Established-family-business skin: badge crest, gold ribbon, solid label banners,
   cream + dot texture + organic blobs, sturdy Archivo headings on roomy PT Sans. */

:root{
  --crest: #5a2129;
  --crest-dark: #3a1219;
  --crest-mid: #8d4249;
  --gold: #e8ae42;
  --cream: #f8f2e6;
  --paper: #fffdf8;
  --ink: #2b2020;
  --ov: 36, 15, 20;
  --gold-deep: color-mix(in srgb, var(--gold) 56%, #4d2f02);
  --mut: color-mix(in srgb, var(--ink) 70%, var(--cream));
  --crest-mid-text: color-mix(in srgb, var(--crest-mid) 75%, #000);
  --line: color-mix(in srgb, var(--ink) 15%, var(--cream));
  --disp: "Archivo", "Helvetica Neue", sans-serif;
  --mark: "Bitter", Georgia, serif;
  --body: "PT Sans", "Segoe UI", sans-serif;
  --r: 10px;
  --r-sm: 4px;
  --sh: 0 16px 34px -22px rgba(var(--ov), .55);
}

/* ---------- base ---------- */
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--body);font-size:16.5px;line-height:1.72;color:var(--ink);
  background-color:var(--cream);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
ul{list-style:none;padding:0;margin:0}
a{color:inherit}
h1,h2,h3{font-family:var(--disp);line-height:1.12;letter-spacing:-.018em}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.skip{position:absolute;left:-9999px;top:0;z-index:99;background:var(--gold);color:var(--crest-dark);
  font-family:var(--disp);font-weight:800;padding:.7rem 1.2rem}
.skip:focus{left:0}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:3px}
::selection{background:color-mix(in srgb, var(--gold) 55%, transparent)}

/* ---------- icons ---------- */
.ic-leaf,.ic-ph,.ic-ar,.ic-ck{flex:0 0 auto;fill:none;overflow:visible}
.ic-leaf{width:16px;height:16px}
.ic-ph{width:15px;height:15px}
.ic-ar{width:18px;height:11px}
.ic-ck{width:17px;height:17px}

/* ---------- buttons: printed-sign plates, not pills ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  border-radius:var(--r-sm);padding:.85rem 1.6rem;border:2px solid transparent;cursor:pointer;
  font-family:var(--disp);font-weight:800;font-size:.85rem;letter-spacing:.09em;text-transform:uppercase;
  line-height:1.15;text-decoration:none;
  transition:transform .14s ease, box-shadow .14s ease, background .16s ease, color .16s ease, border-color .16s ease;
}
.btn-lg{padding:1.05rem 2.2rem;font-size:.95rem}
.btn-block{width:100%}
.btn-gold{background:var(--gold);color:var(--crest-dark);box-shadow:0 4px 0 var(--gold-deep)}
.btn-gold:hover{transform:translateY(3px);box-shadow:0 1px 0 var(--gold-deep)}
.btn-green{background:var(--crest-mid);color:#fff;box-shadow:0 4px 0 color-mix(in srgb, var(--crest-mid) 50%, #000)}
.btn-green:hover{transform:translateY(3px);box-shadow:0 1px 0 color-mix(in srgb, var(--crest-mid) 50%, #000)}
.btn-outline{border-color:rgba(255,255,255,.55);color:#fff}
.btn-outline:hover{background:rgba(255,255,255,.13);border-color:#fff}
.btn-row{display:flex;gap:.85rem;flex-wrap:wrap}

/* ---------- header: ribbon strip + solid crest bar ---------- */
.site-head{position:relative;z-index:30}
.ribbon-strip{background:var(--crest-dark);position:relative;z-index:2}
.ribbon-in{display:flex;align-items:stretch;justify-content:space-between;gap:1rem;min-height:40px}
.strip-note{align-self:center;font-family:var(--mark);font-size:.8rem;color:color-mix(in srgb, var(--cream) 66%, transparent)}
.ribbon{
  display:inline-flex;align-items:center;gap:.55rem;text-decoration:none;
  background:var(--gold);color:var(--crest-dark);
  font-family:var(--disp);font-weight:800;font-size:.79rem;letter-spacing:.05em;text-transform:uppercase;
  padding:.35rem 1.15rem .35rem 1.7rem;
  clip-path:polygon(18px 0, 100% 0, 100% 100%, 18px 100%, 0 50%);
  filter:drop-shadow(0 3px 0 rgba(0,0,0,.3));
  transition:filter .14s ease, background .14s ease;
}
.ribbon:hover{background:color-mix(in srgb, var(--gold) 82%, #fff);filter:drop-shadow(0 1px 0 rgba(0,0,0,.3))}
.ribbon b{font-weight:900}

.head-bar{
  background-color:var(--crest);
  border-bottom:4px solid var(--gold);
}
.head-in{display:flex;align-items:center;gap:1.6rem;padding-top:15px;padding-bottom:15px}
.brand{display:flex;align-items:center;gap:.85rem;text-decoration:none;color:#fff}
.brand-txt{display:flex;flex-direction:column;gap:3px}
.brand-name{font-family:var(--disp);font-weight:800;font-size:1.13rem;line-height:1.14;letter-spacing:-.015em}
.brand-logo{height:60px;width:auto;max-width:56vw;object-fit:contain;display:block}
.foot-logo{height:64px;width:auto;max-width:300px;object-fit:contain;display:block;margin-bottom:.6rem}
.brand-sub{font-family:var(--disp);font-weight:600;font-size:.65rem;letter-spacing:.19em;text-transform:uppercase;
  color:color-mix(in srgb, var(--gold) 86%, #fff)}

/* the crest — CSS-only badge from biz.initials */
.crest{
  position:relative;flex:0 0 auto;width:62px;height:62px;border-radius:50%;
  background:radial-gradient(circle at 34% 28%, color-mix(in srgb, var(--crest-mid) 60%, var(--crest)) 0%, var(--crest) 56%, var(--crest-dark) 100%);
  border:2px solid var(--gold);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16), 0 5px 14px -7px rgba(0,0,0,.75);
  display:grid;place-content:center;justify-items:center;text-align:center;line-height:1;
}
.crest::before{content:"";position:absolute;inset:4px;border-radius:50%;
  border:1px dashed color-mix(in srgb, var(--gold) 52%, transparent)}
.crest b{font-family:var(--disp);font-weight:900;font-size:1.08rem;letter-spacing:.03em;color:#fff}
.crest i{
  display:block;margin-top:3px;padding-top:3px;
  font-family:var(--mark);font-style:normal;font-size:7px;line-height:1;letter-spacing:.1em;text-transform:uppercase;
  color:var(--gold);border-top:1px solid color-mix(in srgb, var(--gold) 42%, transparent);
}
.crest-lg{width:84px;height:84px;border-width:3px}
.crest-lg b{font-size:1.5rem}
.crest-lg i{font-size:9px;margin-top:5px;padding-top:5px}

.nav{display:flex;align-items:center;gap:1.55rem;margin-left:auto}
.nav a{color:rgba(255,255,255,.9);text-decoration:none;font-family:var(--disp);font-weight:600;
  font-size:.79rem;letter-spacing:.11em;text-transform:uppercase;padding:.35rem 0;
  border-bottom:2px solid transparent;transition:color .15s, border-color .15s}
.nav a:hover{color:var(--gold);border-color:var(--gold)}
.nav a{white-space:nowrap}
.head-cta{padding:.78rem 1.35rem;font-size:.77rem;white-space:nowrap}
.nav-burger{display:none;flex:0 0 auto;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;padding:10px;background:none;border:0;cursor:pointer}
.nav-burger span{display:block;height:2px;background:#fff;border-radius:2px;
  transition:transform .2s ease, opacity .2s ease}
.nav-open .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-open .nav-burger span:nth-child(2){opacity:0}
.nav-open .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- hero ---------- */
.hero{
  position:relative;display:flex;align-items:center;min-height:min(84vh, 760px);
  padding:112px 0 136px;
  background-color:var(--crest-dark);
  background-image:
    linear-gradient(101deg, rgba(var(--ov),.94) 0%, rgba(var(--ov),.8) 40%, rgba(var(--ov),.5) 100%),
    radial-gradient(900px 520px at 80% 6%, color-mix(in srgb, var(--crest-mid) 60%, transparent) 0%, transparent 62%),
    linear-gradient(158deg, var(--crest) 0%, var(--crest-dark) 100%);
  background-size:cover;background-position:center;
}
.hero.has-img{background-size:cover;background-position:center}
.hero > .wrap{width:100%}
.hero-in{position:relative;z-index:1;color:#fff;text-align:center}
.hero-in > *{max-width:640px;margin-inline:auto;opacity:0;transform:translateY(16px);animation:rise .7s cubic-bezier(.2,.72,.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-in > *:nth-child(5){animation-delay:.36s}
@keyframes rise{to{opacity:1;transform:none}}
.hero h1{font-weight:900;font-size:clamp(2.15rem, 4.6vw, 3.5rem);line-height:1.06;letter-spacing:-.028em;margin-bottom:1.1rem;text-wrap:balance}
.h1-kicker{display:block;font-family:var(--disp);font-weight:800;font-size:.79rem;line-height:1.4;
  letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:.95rem}
.hero-sub{font-size:1.1rem;color:rgba(255,255,255,.85);margin-bottom:1.5rem;text-wrap:pretty}
.hero-plate{padding:.2rem 0;margin-bottom:1.9rem}
.hero-est{display:inline-block;border-top:3px solid var(--gold);padding-top:.7rem}
.hero-est{font-family:var(--mark);font-weight:600;font-size:1.12rem;line-height:1.4;color:var(--gold)}
.hero-serving{font-size:.97rem;color:rgba(255,255,255,.82)}
.hero-cta{display:flex;align-items:center;justify-content:center;gap:1.5rem;flex-wrap:wrap}
.hero-call{display:inline-flex;align-items:center;gap:.5rem;color:rgba(255,255,255,.88);text-decoration:none;font-size:.98rem}
.hero-call b{font-family:var(--disp);font-weight:800;border-bottom:2px solid color-mix(in srgb, var(--gold) 65%, transparent);transition:color .15s, border-color .15s}
.hero-call:hover b{color:var(--gold);border-color:var(--gold)}

/* ---------- sections ---------- */
section{padding:4.8rem 0}
.sec-head{max-width:680px;margin:0 0 2.5rem}
.sec-head.is-center{margin-left:auto;margin-right:auto;text-align:center}
.eyebrow{display:flex;align-items:center;gap:.55rem;margin-bottom:.7rem;
  font-family:var(--disp);font-weight:800;font-size:.77rem;letter-spacing:.17em;text-transform:uppercase;color:var(--crest-mid-text)}
.sec-head.is-center .eyebrow{justify-content:center}
.sec-head.is-light .eyebrow{color:var(--gold)}
.sec-head h2{font-weight:800;font-size:clamp(1.75rem, 3.3vw, 2.45rem);line-height:1.1;color:var(--crest)}
.sec-head.is-light h2{color:#fff}
.sec-head p{color:var(--mut);margin-top:.95rem}
.sec-head.is-light p{color:rgba(255,255,255,.78)}

.has-blobs{position:relative;overflow:hidden}
.has-blobs > .wrap{position:relative;z-index:1}

/* ---------- section 2: full-width quote band on cream (template law #1) ---------- */
.quote-band{position:relative;padding:3.9rem 0 4.4rem}
.quote-band::before{
  content:"";position:absolute;left:0;right:0;top:-33px;height:34px;z-index:2;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 34' preserveAspectRatio='none'%3E%3Cpath d='M0 34 L0 15 C 230 2 430 27 720 21 C 1000 15 1230 -3 1440 8 L1440 34 Z' fill='%23f8f2e6'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
}
.quote-band > .wrap{position:relative;z-index:3}

/* ---------- quote form (band + card skins) ---------- */
.quote-panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
.quote-panel.is-band{border-top:5px solid var(--crest);padding:1.75rem 1.85rem 1.55rem}
.quote-panel.is-card{border-top:5px solid var(--gold);padding:1.5rem 1.6rem 1.35rem}
.quote-head{margin-bottom:1.15rem}
.quote-head h3{font-family:var(--disp);font-weight:800;font-size:1.22rem;color:var(--crest)}
.quote-head p{font-size:.9rem;color:var(--mut);margin-top:.25rem}
.quote-form{display:grid;gap:1rem 1.1rem;margin:0}
.quote-panel.is-band .quote-form{grid-template-columns:repeat(4,1fr);align-items:end}
.quote-panel.is-band .qf-msg{grid-column:span 3}
.quote-panel.is-band .form-note{grid-column:1 / -1}
.quote-panel.is-card .quote-form{grid-template-columns:1fr;gap:.85rem}
.qf{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.qf label{font-family:var(--disp);font-weight:800;font-size:.69rem;letter-spacing:.13em;text-transform:uppercase;color:var(--crest-mid-text)}
.qf input,.qf select{
  font:inherit;font-size:.95rem;width:100%;min-width:0;padding:.72rem .85rem;color:var(--ink);
  background:#fff;border:1.5px solid var(--line);border-radius:var(--r-sm);
  transition:border-color .15s, box-shadow .15s;
}
.qf input::placeholder{color:color-mix(in srgb, var(--ink) 36%, var(--paper))}
.qf input:focus,.qf select:focus{outline:none;border-color:var(--crest-mid);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--crest-mid) 22%, transparent)}
.qf-go{align-items:flex-start;justify-content:flex-end}
.quote-panel .qf-go{align-items:stretch}
.quote-panel.is-band .qf-go .btn{padding:.85rem 1rem;letter-spacing:.05em;font-size:.82rem}
.form-note{font-size:.9rem;font-weight:700;color:var(--crest);min-height:1em}
.quote-fine{margin-top:.95rem;font-family:var(--mark);font-size:.85rem;color:var(--mut)}

/* ---------- service cards: photo + solid label banner ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.svc-card{
  display:flex;flex-direction:column;text-decoration:none;color:inherit;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  box-shadow:0 2px 0 color-mix(in srgb, var(--crest) 10%, transparent);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.svc-card:hover{transform:translateY(-5px);border-color:color-mix(in srgb, var(--crest) 28%, var(--line));
  box-shadow:0 22px 36px -24px rgba(var(--ov),.55)}
.svc-media{position:relative;overflow:hidden}
.svc-img{
  position:relative;aspect-ratio:4/3;
  background-color:var(--crest);
  background-image:
    repeating-linear-gradient(135deg, rgba(255,255,255,.05) 0 10px, transparent 10px 22px),
    radial-gradient(circle at 30% 24%, color-mix(in srgb, var(--crest-mid) 72%, transparent) 0%, transparent 60%),
    linear-gradient(158deg, var(--crest-mid) 0%, var(--crest) 52%, var(--crest-dark) 100%);
  transition:transform .5s ease;
}
.svc-img::after{content:"";position:absolute;inset:0;opacity:.5;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.4 19.6C2.8 15 4.4 8.9 9 5.9c3.5-2.3 7.7-2.4 11-2.4.3 3.7.1 8-2.4 11.4-3 4.3-8.8 5.9-13.2 4.7z'/%3E%3Cpath d='M4.4 19.6C7 14.1 11 9.6 16.6 6.6'/%3E%3C/svg%3E") center / 92px no-repeat}
.svc-card:hover .svc-img{transform:scale(1.045)}
.svc-img.has-img{background-image:none}
.svc-img.has-img::after{display:none}
.svc-img img,.gal .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.svc-banner{
  position:absolute;left:0;bottom:16px;max-width:88%;
  background:var(--crest);color:#fff;
  font-family:var(--disp);font-weight:800;font-size:.93rem;letter-spacing:.07em;text-transform:uppercase;
  padding:.6rem 2.1rem .6rem 1.15rem;
  clip-path:polygon(0 0, 100% 0, calc(100% - 15px) 50%, 100% 100%, 0 100%);
  filter:drop-shadow(2px 3px 0 rgba(0,0,0,.18));
  transition:background .18s ease, color .18s ease;
}
.svc-card:hover .svc-banner{background:var(--gold);color:var(--crest-dark)}
.svc-body{display:flex;flex-direction:column;gap:.8rem;flex:1;padding:1.2rem 1.35rem 1.35rem}
.svc-body p{flex:1;font-size:.95rem;color:var(--mut)}
.svc-more{display:inline-flex;align-items:center;gap:.55rem;
  font-family:var(--disp);font-weight:800;font-size:.77rem;letter-spacing:.11em;text-transform:uppercase;color:var(--crest-mid-text)}
.svc-more .ic-ar{transition:transform .18s ease}
.svc-card:hover .svc-more{color:var(--crest)}
.svc-card:hover .svc-more .ic-ar{transform:translateX(4px)}

/* ---------- why choose us (dark band) ---------- */
.why{
  position:relative;overflow:hidden;color:#fff;
  background-color:var(--crest-dark);
}
.why > .wrap{position:relative;z-index:1}
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(228px,1fr));gap:1.15rem}
.why-item{
  background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.13);
  border-top:3px solid color-mix(in srgb, var(--gold) 60%, transparent);
  border-radius:var(--r);padding:1.5rem 1.4rem;
  transition:background .2s, transform .2s, border-top-color .2s;
}
.why-item:hover{background:rgba(255,255,255,.09);transform:translateY(-4px);border-top-color:var(--gold)}
.why-item .ic{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-size:1.2rem;
  background:var(--gold);color:var(--crest-dark);margin-bottom:.95rem;box-shadow:0 0 0 4px rgba(255,255,255,.08)}
.why-item .ic svg{width:22px;height:22px}
.why-item h3{font-weight:800;font-size:1.05rem;margin-bottom:.4rem}
.why-item p{font-size:.93rem;color:rgba(255,255,255,.78)}

/* trust chips */
.chip-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2.4rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,.14)}
.chip{display:inline-flex;align-items:center;gap:.45rem;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-left:4px solid var(--gold);
  border-radius:var(--r-sm);padding:.6rem 1.05rem;
  font-family:var(--disp);font-weight:600;font-size:.85rem;color:rgba(255,255,255,.92)}
.chip b{font-weight:900;color:var(--gold)}
.chip .stars{color:var(--gold)}

/* ---------- proof: reviews, or the no-reviews pricing module ---------- */
.rev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.3rem}
.rev{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
  padding:1.5rem 1.5rem 1.25rem;box-shadow:var(--sh)}
.rev::before{content:"\201C";position:absolute;top:-4px;right:16px;font-family:var(--mark);font-size:4rem;line-height:1;
  color:color-mix(in srgb, var(--gold) 40%, transparent)}
.rev .stars{color:var(--gold);letter-spacing:.16em;margin-bottom:.55rem}
.rev p{font-size:.97rem}
.rev .who{margin-top:1rem;padding-top:.8rem;border-top:1px solid var(--line);
  font-family:var(--disp);font-weight:800;font-size:.9rem;color:var(--crest)}
.rev .who span{display:block;font-weight:600;font-size:.82rem;color:var(--mut);letter-spacing:.03em}

.pricing-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:1.7rem;align-items:start}
.pricing{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;box-shadow:var(--sh)}
.pricing-banner{background:var(--crest);color:#fff;font-family:var(--disp);font-weight:800;font-size:1.06rem;
  letter-spacing:.02em;padding:1rem 1.7rem}
.pricing .check-list{padding:1.45rem 1.7rem 0;align-content:start}
.pricing .fine{margin-top:auto;padding:1.4rem 1.7rem 1.5rem;font-family:var(--mark);font-size:.89rem;color:var(--mut)}
.check-list{display:grid;gap:.8rem}
.check-list li{display:flex;align-items:flex-start;gap:.75rem;font-size:.97rem}
.check-list .ic-ck{color:var(--crest-mid);margin-top:.24rem}

/* ---------- gallery ---------- */
.gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:192px;grid-auto-flow:dense;gap:12px}
.gal .ph{
  position:relative;overflow:hidden;border-radius:var(--r);border:3px solid var(--paper);
  box-shadow:0 12px 26px -20px rgba(var(--ov),.75);
  background-color:var(--crest);
  background-image:
    repeating-linear-gradient(45deg, rgba(255,255,255,.055) 0 12px, transparent 12px 26px),
    radial-gradient(circle at 34% 28%, color-mix(in srgb, var(--crest-mid) 70%, transparent) 0%, transparent 62%),
    linear-gradient(150deg, var(--crest-mid) 0%, var(--crest) 55%, var(--crest-dark) 100%);
}
.gal .ph:nth-child(4n+1){grid-column:span 2}
.gal.is-strip{grid-template-columns:repeat(3,1fr);grid-auto-rows:230px}
.gal.is-strip .ph:nth-child(4n+1){grid-column:span 1}
.gal .ph::before{content:"";position:absolute;inset:0;opacity:.55;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.4 19.6C2.8 15 4.4 8.9 9 5.9c3.5-2.3 7.7-2.4 11-2.4.3 3.7.1 8-2.4 11.4-3 4.3-8.8 5.9-13.2 4.7z'/%3E%3Cpath d='M4.4 19.6C7 14.1 11 9.6 16.6 6.6'/%3E%3C/svg%3E") center / 76px no-repeat}
.gal .ph.has-img{background-image:none;background-size:cover;background-position:center}
.gal .ph.has-img::before{display:none}
.ph-tag{
  position:absolute;left:0;right:0;bottom:0;display:block;
  padding:1.7rem .95rem .75rem;
  background:linear-gradient(transparent, rgba(var(--ov),.92));
  color:#fff;font-family:var(--disp);font-weight:700;font-size:.78rem;line-height:1.35;
  transform:translateY(100%);opacity:0;transition:transform .28s ease, opacity .28s ease;
}
.ph-tag::first-letter{text-transform:uppercase}
.gal .ph:hover .ph-tag{transform:none;opacity:1}

/* ---------- FAQ ---------- */
.faq-list{display:grid;gap:.75rem;max-width:920px}
.faq-list details{background:var(--paper);border:1px solid var(--line);
  border-left:4px solid color-mix(in srgb, var(--crest) 42%, var(--cream));
  border-radius:var(--r-sm);overflow:hidden;transition:border-color .18s, box-shadow .18s}
.faq-list details[open]{border-left-color:var(--gold);box-shadow:var(--sh)}
.faq-list summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1.2rem;
  padding:1.05rem 1.3rem;font-family:var(--disp);font-weight:700;font-size:1.01rem;color:var(--crest);transition:color .15s}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:hover{color:var(--crest-mid)}
.faq-list summary::after{content:"+";flex:0 0 auto;width:27px;height:27px;border-radius:50%;
  display:grid;place-items:center;line-height:1;
  background:color-mix(in srgb, var(--gold) 26%, transparent);color:var(--crest);
  font-family:var(--disp);font-weight:800;font-size:1.15rem;
  transition:transform .2s ease, background .2s ease}
.faq-list details[open] summary::after{transform:rotate(45deg);background:var(--gold)}
.faq-list details p{padding:0 1.3rem 1.2rem;color:var(--mut)}
.faq-list.is-light details{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);
  border-left-color:color-mix(in srgb, var(--gold) 55%, transparent)}
.faq-list.is-light details[open]{border-left-color:var(--gold)}
.faq-list.is-light summary{color:#fff}
.faq-list.is-light summary:hover{color:var(--gold)}
.faq-list.is-light summary::after{background:color-mix(in srgb, var(--gold) 70%, transparent);color:var(--crest-dark)}
.faq-list.is-light details p{color:rgba(255,255,255,.78)}

/* ---------- CTA band: pitch left, oversized phone right ---------- */
.cta-band{color:#fff;padding:4.2rem 0;background:var(--crest-dark)}
.cta-in{display:flex;align-items:center;justify-content:space-between;gap:2.5rem;flex-wrap:wrap}
.cta-band h2{font-weight:900;font-size:clamp(1.7rem, 3.2vw, 2.4rem);margin-bottom:.5rem;text-wrap:balance}
.cta-sub{color:rgba(255,255,255,.82);max-width:52ch}
.cta-phone{text-align:right}
.cta-phone small{display:block;font-family:var(--mark);font-size:.95rem;color:rgba(255,255,255,.7);margin-bottom:.3rem}
.cta-num{display:block;font-family:var(--disp);font-weight:900;font-size:clamp(1.6rem, 3vw, 2.3rem);
  color:var(--gold);text-decoration:none;margin-bottom:.9rem;transition:color .15s}
.cta-num:hover{color:#fff}

/* ---------- inner page hero ---------- */
.page-hero{
  position:relative;color:#fff;padding:4.7rem 0 5.6rem;
  background-color:var(--crest);
  background-image:
    radial-gradient(820px 420px at 88% -12%, color-mix(in srgb, var(--crest-mid) 60%, transparent) 0%, transparent 62%),
    linear-gradient(155deg, var(--crest) 0%, var(--crest-dark) 100%);
}
.page-hero::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:34px;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 34' preserveAspectRatio='none'%3E%3Cpath d='M0 34 L0 15 C 230 2 430 27 720 21 C 1000 15 1230 -3 1440 8 L1440 34 Z' fill='%23f8f2e6'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
}
.page-hero h1{font-weight:900;font-size:clamp(1.95rem, 4.1vw, 3rem);line-height:1.08;letter-spacing:-.028em;
  max-width:20ch;margin-bottom:.9rem;text-wrap:balance}
.page-lead{color:rgba(255,255,255,.85);font-size:1.05rem;max-width:64ch}
.page-hero .btn-row{margin-top:1.7rem}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1.25rem;
  font-family:var(--disp);font-weight:600;font-size:.8rem;letter-spacing:.05em;color:rgba(255,255,255,.66)}
.crumbs a{text-decoration:none;color:color-mix(in srgb, var(--gold) 84%, #fff);border-bottom:1px solid transparent}
.crumbs a:hover{border-color:currentColor}
.crumbs span[aria-hidden]{opacity:.4}

/* ---------- service page body ---------- */
.svc-lead-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:2.7rem;align-items:start}
.svc-body-copy .lede{font-size:1.09rem}
.svc-body-copy p{margin-bottom:.95rem}
.svc-body-copy h2{font-family:var(--disp);font-weight:800;font-size:1.42rem;color:var(--crest);
  margin:2.1rem 0 .95rem;padding-left:.9rem;border-left:4px solid var(--gold)}
.svc-aside{display:grid;gap:1.35rem;align-content:start}
.svc-plate .svc-media{border-radius:var(--r);overflow:hidden;border:3px solid var(--paper);box-shadow:var(--sh)}
.side-card{background:var(--paper);border:1px solid var(--line);border-top:5px solid var(--crest);
  border-radius:var(--r);padding:1.45rem 1.5rem;box-shadow:var(--sh)}
.side-h{font-family:var(--disp);font-weight:800;font-size:1.1rem;color:var(--crest);margin-bottom:.4rem}
.side-p{font-size:.93rem;color:var(--mut);margin-bottom:1.05rem}
.side-call{display:inline-flex;align-items:center;gap:.55rem;margin-top:.9rem;text-decoration:none;
  font-family:var(--disp);font-weight:800;font-size:1.12rem;color:var(--crest);transition:color .15s}
.side-call:hover{color:var(--crest-mid)}
.side-list{display:grid;gap:.42rem;margin-top:1.15rem;padding-top:1rem;border-top:1px solid var(--line)}
.side-list li{position:relative;padding-left:1.05rem;font-size:.88rem;color:var(--mut)}
.side-list li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.side-more{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;
  font-family:var(--disp);font-weight:800;font-size:.78rem;letter-spacing:.11em;text-transform:uppercase;color:var(--crest-mid-text)}
.side-more:hover{color:var(--crest)}

/* ---------- contact page ---------- */
.contact-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:2rem;align-items:start}
.contact-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh)}
.contact-banner{background:var(--crest);color:#fff;padding:.95rem 1.7rem;
  font-family:var(--disp);font-weight:800;font-size:1.02rem;letter-spacing:.06em;text-transform:uppercase}
.contact-card .quote-form{grid-template-columns:1fr 1fr;padding:1.65rem 1.7rem 0}
.contact-card .qf-msg,.contact-card .qf-go,.contact-card .form-note{grid-column:1 / -1}
.contact-card .qf-go{align-items:flex-start}
.contact-card .quote-fine{padding:0 1.7rem 1.55rem}
.contact-side{display:grid;gap:1.35rem}
.contact-side .big{display:inline-flex;align-items:center;gap:.6rem;margin-bottom:.7rem;text-decoration:none;
  font-family:var(--disp);font-weight:900;font-size:1.55rem;color:var(--crest);transition:color .15s}
.contact-side .big:hover{color:var(--crest-mid)}
.contact-side .big .ic-ph{width:20px;height:20px;color:var(--crest-mid)}
.map-wrap{margin-top:1.25rem}
.map-wrap iframe{width:100%;aspect-ratio:4/3;border:0;border-radius:var(--r-sm);display:block}

/* ---------- areas + city pages ---------- */
.areas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:1.1rem}
.area-card{background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--gold);
  border-radius:var(--r-sm);padding:1.25rem 1.35rem;
  box-shadow:0 2px 0 color-mix(in srgb, var(--crest) 8%, transparent)}
.area-card h3{font-weight:800;font-size:1.1rem;color:var(--crest);margin-bottom:.35rem}
.area-fl{font-weight:600;font-size:.88em;color:var(--mut)}
.area-card p{display:flex;align-items:center;gap:.45rem;font-size:.9rem;color:var(--mut)}
a.area-card{display:block;text-decoration:none;color:inherit;
  transition:transform .16s, border-left-color .16s, box-shadow .16s}
a.area-card:hover{transform:translateY(-3px);border-left-color:var(--crest-mid);
  box-shadow:0 18px 30px -22px rgba(var(--ov),.55)}
a.area-card p{color:var(--crest-mid);font-weight:700}
.proof-plate{background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--gold);
  border-radius:var(--r);padding:1.75rem 1.9rem;max-width:840px;font-size:1.02rem;box-shadow:var(--sh)}
.fact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}
.fact-grid li{display:flex;align-items:flex-start;gap:.8rem;font-size:.96rem;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1.15rem 1.3rem}
.fact-grid .ic-leaf{color:var(--crest-mid);margin-top:.24rem}
.why .fact-grid li{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);color:rgba(255,255,255,.85)}
.why .fact-grid .ic-leaf{color:var(--gold)}

/* ---------- footer ---------- */
.site-foot{
  color:color-mix(in srgb, var(--cream) 74%, transparent);border-top:5px solid var(--gold);
  background-color:var(--crest-dark);
}
.foot-grid{display:grid;grid-template-columns:1.25fr .85fr 1fr;gap:2.4rem;padding-top:3.4rem;padding-bottom:2.5rem}
.foot-nap .crest{margin-bottom:1.05rem}
.foot-brand{font-family:var(--disp);font-weight:800;font-size:1.2rem;color:#fff;margin-bottom:.35rem}
.foot-line{font-size:.89rem;opacity:.85;margin-bottom:.32rem}
.foot-h{font-family:var(--disp);font-weight:800;font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;
  color:var(--gold);margin-bottom:.9rem}
.foot-h .foot-link{display:inline;margin:0;opacity:1;color:var(--gold);font:inherit;letter-spacing:inherit}
.foot-link{display:block;font-size:.89rem;text-decoration:none;opacity:.88;margin-bottom:.38rem;
  transition:opacity .15s, color .15s}
.foot-link:hover{opacity:1;color:var(--gold)}
.foot-link.is-big{font-family:var(--disp);font-weight:800;font-size:1.25rem;color:#fff;opacity:1;margin:.65rem 0 .35rem}
.foot-base{border-top:1px solid rgba(255,255,255,.12);padding:1.2rem 0;font-size:.84rem;opacity:.78}

/* ---------- responsive ---------- */
/* header collapses its nav into a hamburger dropdown before the single row gets tight */
@media (max-width:1120px){
  .head-bar{position:relative}
  .nav-burger{display:flex}
  .head-cta{margin-left:auto}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;z-index:40;margin:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--crest-dark);border-bottom:4px solid var(--gold);
    padding:.4rem 24px .9rem;box-shadow:0 24px 34px -22px rgba(0,0,0,.55)}
  .nav-open .nav{display:flex}
  .nav a{padding:.85rem 0;border-bottom:1px solid rgba(255,255,255,.12)}
}
@media (max-width:740px){
  .strip-note{display:none}
  .ribbon-in{justify-content:flex-end}
}
@media (max-width:1040px){
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .svc-lead-grid{grid-template-columns:1fr;gap:2.1rem}
  .svc-aside{grid-template-columns:1fr 1fr}
  .quote-panel.is-band .quote-form{grid-template-columns:repeat(2,1fr)}
  .quote-panel.is-band .qf-msg{grid-column:span 2}
  .gal{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:880px){
  section{padding:3.5rem 0}
  .hero{min-height:0;padding:76px 0 112px}
  .hero-in > *{max-width:none}
  .page-hero{padding:3.4rem 0 4.6rem}
  .contact-grid,.pricing-grid{grid-template-columns:1fr}
  .cta-phone{text-align:left}
  .foot-grid{grid-template-columns:1fr 1fr;gap:2rem}
  .foot-nap{grid-column:1 / -1}
}
@media (max-width:640px){
  body{font-size:16px}
  .svc-grid{grid-template-columns:1fr}
  .quote-panel.is-band .quote-form{grid-template-columns:1fr}
  .quote-panel.is-band .qf-msg{grid-column:span 1}
  .contact-card .quote-form{grid-template-columns:1fr}
  .gal,.gal.is-strip{grid-template-columns:repeat(2,1fr);grid-auto-rows:148px}
  .foot-grid{grid-template-columns:1fr;gap:1.8rem}
  .svc-aside{grid-template-columns:1fr}
  .head-in{flex-wrap:wrap;row-gap:.6rem}
  .brand{flex:1;min-width:0}
  .head-cta{order:1;width:100%;margin-left:0}
  .ribbon{font-size:.73rem;padding-left:1.4rem;padding-right:.95rem}
  .hero-cta{gap:1.1rem}
  .quote-panel.is-band{padding:1.35rem 1.25rem 1.2rem}
  .pricing-banner,.contact-banner{font-size:.95rem;padding-left:1.25rem;padding-right:1.25rem}
  .pricing .check-list,.pricing .fine,.contact-card .quote-form,.contact-card .quote-fine{padding-left:1.25rem;padding-right:1.25rem}
}
@media (max-width:430px){
  .gal,.gal.is-strip{grid-template-columns:1fr;grid-auto-rows:190px}
  .gal .ph:nth-child(4n+1){grid-column:span 1}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;animation-delay:0ms !important;transition-duration:.001ms !important}
  .hero-in > *{opacity:1;transform:none}
}