:root {
  --c1: #f4f4f3;
  --c2: #ffffff;
  --c3: #181818;
  --c4: #2d2d33;
  --c5: #e0a23a;
  --c6: #ffffff;
  --c7: #73737a;
  --c8: #dadadc;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--c1);
  color:var(--c3);
  font-family:system-ui,-apple-system,sans-serif;
  font-weight:400;
  font-size:1rem;
  line-height:1.6;
  min-height:100vh;
}
img,picture,video,canvas,svg{display:block;max-width:100%}
input,button,textarea,select{font:inherit}
p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}
a{color:var(--c5);text-decoration:underline}
a:hover{color:var(--c4)}
ul,ol{padding-left:1.4em}

/* container */
.cn{width:100%;max-width:1120px;margin-inline:auto;padding-inline:1.25rem}

/* ── buttons (C3 pill) ── */
.b{display:inline-block;padding:.75rem 2rem;border-radius:9999px;font-weight:700;font-size:1rem;cursor:pointer;text-decoration:none;border:2px solid transparent;transition:background .18s,color .18s,border-color .18s;line-height:1.2;text-align:center}
.bp{background:var(--c5);color:var(--c6);border-color:var(--c5)}
.bp:hover{background:var(--c4);border-color:var(--c4);color:var(--c6)}
.bs{background:transparent;color:var(--c4);border-color:var(--c4)}
.bs:hover{background:var(--c4);color:var(--c6)}
.be{display:inline-flex;align-items:center;gap:.4em;font-weight:600;color:var(--c5);text-decoration:none;font-size:.95rem}
.be:hover{color:var(--c4)}
.be::after{content:'→'}

/* ── header / nav N3 hamburger-always ── */
.h{
  position:sticky;top:0;z-index:100;
  background:var(--c1);
  border-bottom:1px solid var(--c8);
}
.nb{display:flex;align-items:center;justify-content:space-between;height:60px}
.nl{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--c4);font-weight:700;font-size:1.05rem;font-family:system-ui,-apple-system,sans-serif}
.nl svg{width:24px;height:24px;fill:var(--c5)}
/* hamburger always visible (N3) */
.hb{
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  width:40px;height:40px;gap:5px;cursor:pointer;
  background:none;border:none;padding:4px;
  border-radius:6px;
}
.hb span{display:block;width:22px;height:2px;background:var(--c4);transition:transform .22s,opacity .22s}
.hb[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hb[aria-expanded="true"] span:nth-child(2){opacity:0}
.hb[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nm{
  display:none;position:absolute;top:60px;left:0;right:0;
  background:var(--c1);border-bottom:1px solid var(--c8);
  padding:1rem 0;z-index:99;
}
.nm.open{display:block}
.ni{list-style:none;padding:0;margin:0}
.ni li a{
  display:block;padding:.7rem 1.5rem;
  color:var(--c4);text-decoration:none;font-weight:600;font-size:.95rem;
}
.ni li a:hover{color:var(--c5);background:var(--c2)}
.ni li a.ac{color:var(--c5)}
.ni .nb-cta{padding:.7rem 1.5rem}
.ni .nb-cta .bp{width:100%;display:block;text-align:center}

/* ── hero H4 full-bleed photo + overlaid text, R1 = 60vh ── */
.hr{
  position:relative;min-height:60vh;display:flex;align-items:flex-end;
  overflow:hidden;background:var(--c4);
}
.hp{
  position:absolute;inset:0;z-index:0;
}
.hp img,.hp source{width:100%;height:100%;object-fit:cover}
.hr::after{
  content:'';position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,rgba(26,24,20,.82) 0%,rgba(26,24,20,.38) 55%,rgba(26,24,20,.12) 100%);
}
.ht{
  position:relative;z-index:2;padding:3rem 0 2.5rem;color:var(--c6);
  max-width:760px;
}
.hk{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--c5);margin-bottom:.6rem}
.hh{font-size:clamp(1.9rem,4.5vw,3.2rem);font-weight:700;line-height:1.15;margin-bottom:.9rem;font-family:system-ui,-apple-system,sans-serif}
.hs{font-size:clamp(1rem,2vw,1.2rem);line-height:1.55;margin-bottom:1.5rem;color:rgba(255,255,255,.88);max-width:560px}
.hc{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}

/* ── trust strip ── */
.ts{background:var(--c2);padding:1.25rem 0;border-bottom:1px solid var(--c8)}
.tsi{display:flex;align-items:center;justify-content:center;gap:1.5rem 3rem;flex-wrap:wrap}
.tsp{font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--c7)}

/* ── section base (R1: 3rem padding) ── */
section{padding:3rem 0}
.sh{text-align:center;margin-bottom:2rem}
.sh h2{font-size:clamp(1.5rem,3vw,2.2rem);font-weight:700;line-height:1.2;margin-bottom:.5rem;font-family:system-ui,-apple-system,sans-serif}
.sh p{color:var(--c7);font-size:1.05rem;max-width:560px;margin-inline:auto}

/* ── services SC5 text-only-numbered ── */
.sv{background:var(--c1)}
.sg{display:grid;grid-template-columns:1fr;gap:0}
.sc{
  border-top:1px solid var(--c8);padding:1.8rem 0;
  display:grid;grid-template-columns:3rem 1fr auto;gap:1rem;align-items:start;
}
.sc:last-child{border-bottom:1px solid var(--c8)}
.sn{font-size:1.5rem;font-weight:700;color:var(--c8);font-variant-numeric:tabular-nums;line-height:1}
.si h3{font-size:1.15rem;font-weight:700;margin-bottom:.4rem;font-family:system-ui,-apple-system,sans-serif}
.si p{color:var(--c7);font-size:.95rem;line-height:1.55}

/* ── about summary section ── */
.ab{background:var(--c2)}
.abg{display:grid;grid-template-columns:1fr;gap:2rem;align-items:center}
.abv{position:relative;border-radius:4px;overflow:hidden;aspect-ratio:3/4;max-width:360px;margin-inline:auto}
.abv img{width:100%;height:100%;object-fit:cover}
.abt h2{font-size:clamp(1.4rem,2.8vw,2rem);font-weight:700;line-height:1.25;margin-bottom:1rem;font-family:system-ui,-apple-system,sans-serif}
.abt p{color:var(--c7);line-height:1.65;margin-bottom:1rem}

/* ── testimonials ── */
.tm{background:var(--c1)}
.tg{display:grid;grid-template-columns:1fr;gap:1.5rem}
.tq{
  background:var(--c2);border-radius:6px;padding:1.5rem;
  border-left:3px solid var(--c5);
}
.tq blockquote{font-style:italic;line-height:1.65;margin-bottom:1rem;font-size:.97rem}
.tq blockquote::before{content:'\201C';font-size:1.6em;color:var(--c5);line-height:0;vertical-align:-.35em;margin-right:.1em}
.tq blockquote::after{content:'\201D';font-size:1.6em;color:var(--c5);line-height:0;vertical-align:-.35em;margin-left:.1em}
.tn{font-weight:700;font-size:.88rem;color:var(--c4)}
.tr_{color:var(--c7);font-size:.82rem;margin-left:.5rem}

/* ── FAQ accordion ── */
.fq{background:var(--c2)}
.fa{padding:0}
.fi{border-bottom:1px solid var(--c8)}
.fi:first-child{border-top:1px solid var(--c8)}
summary.fqh{list-style:none}
summary.fqh::-webkit-details-marker{display:none}
.fqh{
  width:100%;text-align:left;background:none;border:none;
  padding:1rem 0;cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;
  font-weight:600;font-size:.97rem;color:var(--c3);
  gap:1rem;
}
.fqh:hover{color:var(--c5)}
.fqh svg{width:18px;height:18px;flex-shrink:0;fill:var(--c5);transition:transform .2s}
details.fi[open] .fqh svg{transform:rotate(180deg)}
.fqp{
  padding:0 0 1rem;
  color:var(--c7);line-height:1.65;font-size:.95rem;
}

/* ── CTA closing strip ── */
.ct{background:var(--c4);color:var(--c6);text-align:center;padding:3rem 0}
.ct h2{font-size:clamp(1.4rem,2.8vw,2rem);font-weight:700;line-height:1.25;margin-bottom:.75rem;font-family:system-ui,-apple-system,sans-serif}
.ct p{color:rgba(255,255,255,.8);margin-bottom:1.5rem;max-width:520px;margin-inline:auto;font-size:1.05rem}
.ct .bs{border-color:rgba(255,255,255,.6);color:var(--c6)}
.ct .bs:hover{background:var(--c6);color:var(--c4)}

/* ── footer F4 centered single-column ── */
.f{background:var(--c4);color:var(--c6);padding:2.5rem 0 1.5rem;text-align:center}
.fc{max-width:640px;margin-inline:auto;padding-inline:1.25rem}
.fb{font-size:1.05rem;font-weight:700;margin-bottom:1rem}
.fl{list-style:none;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.5rem;margin-bottom:1.2rem}
.fl li a{color:rgba(255,255,255,.75);text-decoration:none;font-size:.88rem}
.fl li a:hover{color:var(--c6)}
.fp{color:rgba(255,255,255,.55);font-size:.8rem;line-height:1.55;margin-bottom:.75rem}
.fc2{color:rgba(255,255,255,.45);font-size:.75rem;margin-top:.5rem}

/* ── sub-hero (inner pages) ── */
.sh2{background:var(--c4);color:var(--c6);padding:3rem 0}
.sh2 h1{font-size:clamp(1.7rem,3.5vw,2.6rem);font-weight:700;line-height:1.2;font-family:system-ui,-apple-system,sans-serif;margin-bottom:.5rem}
.sh2 p{color:rgba(255,255,255,.8);font-size:1.05rem;max-width:560px}

/* ── breadcrumbs ── */
.bc{font-size:.82rem;color:var(--c7);margin-bottom:.6rem}
.bc a{color:rgba(255,255,255,.6);text-decoration:none}
.bc a:hover{color:var(--c6)}
.bc span{color:rgba(255,255,255,.45)}

/* ── service page body ── */
.pg{background:var(--c1);padding:3rem 0}
.pg-body{display:grid;grid-template-columns:1fr;gap:2.5rem}
.pg-main h2{font-size:1.3rem;font-weight:700;margin:2rem 0 .6rem;font-family:system-ui,-apple-system,sans-serif}
.pg-main p{line-height:1.7;margin-bottom:1rem;color:var(--c7)}
.pg-main ul{margin-bottom:1rem;color:var(--c7);line-height:1.7}
.pg-main ul li{margin-bottom:.35rem}
.pg-side{background:var(--c2);border-radius:6px;padding:1.5rem;align-self:start;position:sticky;top:80px}
.pg-side h3{font-size:1.05rem;font-weight:700;margin-bottom:1rem;font-family:system-ui,-apple-system,sans-serif}
.pg-side .abv{max-width:100%;aspect-ratio:3/4}

/* ── process / steps ── */
.pr{background:var(--c2);padding:3rem 0}
.prg{display:grid;grid-template-columns:1fr;gap:1.5rem;counter-reset:pr}
.pri{
  display:grid;grid-template-columns:2.5rem 1fr;gap:1rem;
  padding:1.25rem;background:var(--c1);border-radius:6px;
}
.prn{
  font-size:1.4rem;font-weight:700;color:var(--c5);
  font-variant-numeric:tabular-nums;line-height:1;
}
.pri h3{font-size:1rem;font-weight:700;margin-bottom:.35rem;font-family:system-ui,-apple-system,sans-serif}
.pri p{font-size:.9rem;color:var(--c7);line-height:1.55}

/* ── forms ── */
.fm{background:var(--c1);padding:3rem 0}
.fmw{max-width:540px;margin-inline:auto}
.fmg{display:flex;flex-direction:column;gap:1.25rem}
.fml{font-weight:600;font-size:.9rem;color:var(--c4);display:block;margin-bottom:.35rem}
.fmi,.fma{
  width:100%;padding:.7rem .9rem;
  border:1.5px solid var(--c8);border-radius:8px;
  background:var(--c6);color:var(--c3);font-size:.97rem;
}
.fmi:focus,.fma:focus{outline:none;border-color:var(--c5)}
.fma{resize:vertical;min-height:110px}
.fme{color:#c0392b;font-size:.82rem;margin-top:.3rem;display:none}
.fme.show{display:block}
.ch{display:flex;align-items:flex-start;gap:.6rem;font-size:.88rem;color:var(--c7)}
.ch input{margin-top:.2rem;flex-shrink:0}
.ch a{color:var(--c5)}

/* ── about page ── */
.abt-body{max-width:700px;margin-inline:auto;padding:3rem 0}
.abt-body h2{font-size:1.25rem;font-weight:700;margin:2rem 0 .6rem;font-family:system-ui,-apple-system,sans-serif}
.abt-body p{line-height:1.75;color:var(--c7);margin-bottom:1rem}
.crd{background:var(--c2);border-radius:6px;padding:1.25rem;margin:2rem 0}
.crd h3{font-size:1rem;font-weight:700;margin-bottom:.75rem;font-family:system-ui,-apple-system,sans-serif}
.crd ul{list-style:none;padding:0}
.crd ul li{padding:.4rem 0;border-bottom:1px solid var(--c8);font-size:.92rem;color:var(--c7)}
.crd ul li:last-child{border-bottom:none}

/* ── legal pages ── */
.lp{max-width:720px;margin-inline:auto;padding:3rem 1.25rem}
.lp h1{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700;margin-bottom:1.5rem;font-family:system-ui,-apple-system,sans-serif}
.lp h2{font-size:1.2rem;font-weight:700;margin:2rem 0 .6rem;font-family:system-ui,-apple-system,sans-serif}
.lp p{line-height:1.75;color:var(--c7);margin-bottom:1rem}
.lp ul{margin-bottom:1rem;color:var(--c7);line-height:1.75;padding-left:1.5em}
.lp li{margin-bottom:.4rem}
.lp table{width:100%;border-collapse:collapse;margin-bottom:1.5rem;font-size:.9rem}
.lp th{text-align:left;padding:.5rem;border-bottom:2px solid var(--c8);font-weight:700;color:var(--c4)}
.lp td{padding:.5rem;border-bottom:1px solid var(--c8);color:var(--c7)}

/* ── 404 page ── */
.e4{min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:3rem 0}
.e4 h1{font-size:clamp(2rem,5vw,3.5rem);font-weight:700;color:var(--c5);margin-bottom:.5rem}
.e4 h2{font-size:clamp(1.2rem,2.5vw,1.7rem);font-weight:700;margin-bottom:1rem}
.e4 p{color:var(--c7);margin-bottom:1.5rem;max-width:480px;margin-inline:auto}

/* ── thank-you ── */
.ty{min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:3rem 0}
.ty svg{width:56px;height:56px;margin:0 auto 1rem;fill:var(--c5)}
.ty h1{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700;margin-bottom:.75rem}
.ty p{color:var(--c7);max-width:480px;margin-inline:auto;margin-bottom:1.25rem}

/* ── cookie banner ── */
.ck{
  position:fixed;bottom:0;left:0;right:0;z-index:9000;
  background:var(--c4);color:var(--c6);
  padding:1.2rem;display:none;
}
.ck.show{display:block}
.cki{display:flex;flex-direction:column;gap:.75rem;max-width:760px;margin-inline:auto}
.ckp{font-size:.87rem;line-height:1.55;color:rgba(255,255,255,.85)}
.ckp a{color:var(--c5)}
.ckb{display:flex;flex-wrap:wrap;gap:.6rem}
.ckb button{
  padding:.45rem 1.1rem;border-radius:9999px;font-size:.83rem;font-weight:700;
  cursor:pointer;border:1.5px solid rgba(255,255,255,.45);background:transparent;color:var(--c6);
  transition:background .15s,border-color .15s;
}
.ckb button:hover{background:rgba(255,255,255,.12)}
.ckb .cka{background:var(--c5);border-color:var(--c5)}
.ckb .cka:hover{background:#8f5e2f;border-color:#8f5e2f}

/* ── cookie modal ── */
.mo{
  position:fixed;inset:0;z-index:9100;
  display:none;align-items:center;justify-content:center;
  background:rgba(26,24,20,.55);
}
.mo.show{display:flex}
.mow{
  background:var(--c1);border-radius:8px;max-width:480px;width:90%;
  padding:1.75rem;max-height:90vh;overflow-y:auto;
  box-shadow:0 8px 32px rgba(0,0,0,.22);
}
.mow h2{font-size:1.15rem;font-weight:700;margin-bottom:.5rem;font-family:system-ui,-apple-system,sans-serif}
.mow p{font-size:.87rem;color:var(--c7);margin-bottom:1.25rem;line-height:1.55}
.mc{display:flex;flex-direction:column;gap:.85rem;margin-bottom:1.25rem}
.mt{display:flex;justify-content:space-between;align-items:center}
.mt label{font-weight:600;font-size:.9rem}
.mt span{font-size:.78rem;color:var(--c7);display:block}
/* toggle switch */
.sw{position:relative;width:40px;height:22px;flex-shrink:0}
.sw input{opacity:0;width:0;height:0}
.sl{
  position:absolute;inset:0;background:var(--c8);border-radius:22px;cursor:pointer;
  transition:background .18s;
}
.sl::before{
  content:'';position:absolute;height:16px;width:16px;
  left:3px;top:3px;background:var(--c6);border-radius:50%;
  transition:transform .18s;
}
.sw input:checked+.sl{background:var(--c5)}
.sw input:checked+.sl::before{transform:translateX(18px)}
.sw input:disabled+.sl{opacity:.5;cursor:default}
.mb{display:flex;gap:.6rem;flex-wrap:wrap}
.mb button{
  flex:1;min-width:120px;padding:.55rem 1rem;
  border-radius:9999px;font-size:.85rem;font-weight:700;cursor:pointer;
  border:1.5px solid var(--c4);
}
.mb .mbs{background:transparent;color:var(--c4)}
.mb .mbp{background:var(--c5);color:var(--c6);border-color:var(--c5)}
.mb .mbp:hover{background:var(--c4);border-color:var(--c4)}

/* ── skip link ── */
.sk-link{
  position:absolute;top:-100px;left:1rem;z-index:9999;
  background:var(--c5);color:var(--c6);padding:.5rem 1rem;
  border-radius:0 0 6px 6px;font-weight:700;text-decoration:none;
  transition:top .1s;
}
.sk-link:focus{top:0}

/* ── utility ── */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ── responsive ── */
@media(min-width:640px){
  .tg{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
  .prg{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
  .pg-body{grid-template-columns:1fr 300px}
  .abg{grid-template-columns:1fr 1fr}
  .cki{flex-direction:row;align-items:center}
  .ckb{margin-top:0}
}
@media(min-width:900px){
  .sg{gap:0}
  .abg{grid-template-columns:380px 1fr}
  .abt-body{padding:3.5rem 0}
}

/* ── geo meta placeholder (not visual) ── */
meta[name="geo.region"]{display:none}
