:root{--bg:#faf6f1;--card:#fffdf9;--ink:#2c2a26;--muted:#6b6560;--line:#e8ddd2;--brand:#2a9a8f;--brand-dark:#1f7a72;--brand-soft:#e8f5f3;--accent:#e86a45;--accent-dark:#c24a28;--accent-soft:#fff1ec;--dark:#0F0805;--cream:#FDFBF7;--gold:#C19A6B;--shadow:0 10px 32px rgba(44,42,38,.07)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;background:var(--bg);background-image:radial-gradient(ellipse at top,#fffdf9 0%,var(--bg) 60%);color:var(--ink);line-height:1.55;padding-bottom:84px}
a{color:var(--brand-dark)}
img{max-width:100%;height:auto;display:block}
.topbar{background:#fffdfb;border-bottom:1px solid var(--line);padding:.7rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;position:sticky;top:0;z-index:20}
.tb-left{display:flex;align-items:center;gap:.75rem;min-width:0}
.logo{font-weight:800;font-size:1.08rem;letter-spacing:-.02em;color:var(--brand-dark);text-decoration:none;white-space:nowrap}
.logo span{color:var(--ink);font-weight:600}
.lang-switch{display:inline-flex;align-items:center;background:#f3eee8;border:1px solid var(--line);border-radius:999px;padding:.15rem;gap:.1rem;flex-shrink:0}
.lang-switch button{border:none;background:transparent;color:var(--muted);font-size:.74rem;font-weight:800;letter-spacing:.04em;padding:.5rem .65rem;border-radius:999px;cursor:pointer;line-height:1;min-height:32px}
.lang-switch button.active{background:#fff;color:var(--brand-dark);box-shadow:0 1px 3px rgba(44,42,38,.08)}
.tb-call{display:none;align-items:center;gap:.4rem;text-decoration:none;font-weight:800;font-size:.9rem;color:#fff;background:var(--brand);border-radius:999px;padding:.55rem 1rem;white-space:nowrap}
.wrap{max-width:1040px;margin:0 auto;padding:0 1rem}
.crumbs{font-size:.8rem;color:var(--muted);margin:1rem 0 .25rem}
.crumbs a{color:var(--muted)}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}
.crumbs li+li:before{content:"›";margin-right:.35rem}
.hero{padding:.75rem 0 1.25rem}
.eyebrow{display:inline-block;background:var(--brand-soft);color:var(--brand-dark);font-weight:700;font-size:.78rem;letter-spacing:.03em;border-radius:999px;padding:.3rem .7rem;margin-bottom:.7rem}
h1{font-size:1.85rem;line-height:1.18;letter-spacing:-.02em;margin:0 0 .7rem}
h2{font-size:1.3rem;line-height:1.25;letter-spacing:-.01em;margin:0 0 .65rem}
h3{font-size:1.02rem;margin:0 0 .35rem}
.lead{font-size:1.04rem;color:#4a4540;margin:0 0 1.1rem;max-width:44rem}
.cta-row{display:flex;flex-wrap:wrap;gap:.6rem;margin:0 0 .9rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;text-decoration:none;font-weight:800;font-size:.98rem;border-radius:999px;padding:.85rem 1.25rem;min-height:48px;border:1.5px solid transparent;cursor:pointer}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{filter:brightness(.96)}
.btn-call{background:var(--brand);color:#fff}
.btn-sms{background:var(--brand-soft);color:var(--brand-dark);border-color:var(--brand)}
.btn-wa{background:#25D366;color:#073b1c}
.btn svg{width:18px;height:18px;flex-shrink:0}
.measure{display:flex;gap:.6rem;align-items:flex-start;background:var(--card);border:1.5px dashed var(--brand);border-radius:12px;padding:.75rem .9rem;font-size:.93rem;max-width:44rem}
.measure b{color:var(--brand-dark)}
.card{background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:1.4rem 1.2rem;margin:0 0 1rem}
.grid2{display:grid;gap:1rem}
ul.check{list-style:none;padding:0;margin:0}
ul.check li{position:relative;padding-left:1.6rem;margin:.45rem 0}
ul.check li:before{content:"";position:absolute;left:.15rem;top:.45rem;width:.75rem;height:.4rem;border-left:2.5px solid var(--brand);border-bottom:2.5px solid var(--brand);transform:rotate(-45deg)}
ol.steps{margin:0;padding-left:1.25rem}
ol.steps li{margin:.45rem 0}
.photos{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin:.25rem 0 .4rem}
.photos figure{margin:0;border-radius:12px;overflow:hidden;background:#eee6dc;aspect-ratio:4/5}
.photos img{width:100%;height:100%;object-fit:cover}
.photos figure:nth-child(3){display:none}
.cap{font-size:.78rem;color:var(--muted);margin:.2rem 0 0}
.quiz-cta{display:flex;align-items:center;gap:.8rem;text-decoration:none;color:var(--ink);border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:.85rem .95rem}
.quiz-cta:hover{border-color:var(--accent)}
.quiz-cta .qi{width:42px;height:42px;border-radius:10px;background:var(--accent-soft);color:var(--accent-dark);display:grid;place-items:center;font-size:1.25rem;flex-shrink:0}
.quiz-cta b{display:block;font-size:.95rem}
.quiz-cta small{color:var(--muted);font-size:.83rem}
.faq details{border-top:1px solid var(--line);padding:.2rem 0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;font-weight:700;padding:.75rem 1.6rem .75rem 0;list-style:none;position:relative;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";position:absolute;right:.2rem;top:.6rem;font-size:1.3rem;color:var(--brand-dark)}
.faq details[open] summary:after{content:"–"}
.faq details p{margin:0 0 .8rem;color:#4a4540}
.related{display:grid;gap:.6rem}
.related a{display:block;text-decoration:none;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:.8rem .95rem;font-weight:700}
.related a small{display:block;font-weight:400;color:var(--muted);margin-top:.15rem}
.related a:hover{border-color:var(--brand)}
.areas{display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0 0;padding:0;list-style:none}
.areas li{background:#f3eee8;border-radius:999px;padding:.3rem .7rem;font-size:.85rem}
.nap{font-style:normal;line-height:1.6}
.hub-cards{display:grid;gap:1rem}
.hub-card{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);background:var(--card);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;border:1.5px solid transparent}
.hub-card:hover{border-color:var(--brand)}
.hub-card .ph{aspect-ratio:16/10;background:#eee6dc;overflow:hidden}
.hub-card .ph img{width:100%;height:100%;object-fit:cover}
.hub-card .tx{padding:1rem 1.1rem 1.15rem}
.hub-card .tx b{display:block;font-size:1.08rem;margin-bottom:.25rem}
.hub-card .tx span{color:var(--muted);font-size:.92rem}
.hub-card .go{display:inline-block;margin-top:.55rem;color:var(--brand-dark);font-weight:800;font-size:.9rem}
footer.sf{background:var(--dark);color:var(--cream);margin-top:2rem;padding:2rem 0 1.5rem;font-size:.92rem}
footer.sf a{color:var(--cream)}
footer.sf .fb{font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin:0 0 .6rem}
footer.sf .fcols{display:grid;gap:1.25rem}
footer.sf ul{list-style:none;padding:0;margin:0}
footer.sf li{margin:.2rem 0}
footer.sf li a{display:inline-flex;align-items:center;min-height:36px}
footer.sf .copy{border-top:1px solid rgba(193,154,107,.3);margin-top:1.25rem;padding-top:1rem;color:#a9a39b;font-size:.82rem}
.callbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;gap:.45rem;padding:.55rem .6rem calc(.55rem + env(safe-area-inset-bottom));background:#fffdfb;border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(44,42,38,.08)}
.callbar a{flex:1;display:flex;align-items:center;justify-content:center;gap:.35rem;text-decoration:none;font-weight:800;font-size:.9rem;border-radius:999px;padding:.75rem .35rem;min-height:48px}
.callbar .cb-call{background:var(--brand);color:#fff}
.callbar .cb-sms{background:var(--brand-soft);color:var(--brand-dark);border:1.5px solid var(--brand)}
.callbar .cb-wa{background:#25D366;color:#073b1c}
.callbar svg{width:17px;height:17px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (min-width:720px){
 h1{font-size:2.35rem}
 .tb-call{display:inline-flex}
 .grid2{grid-template-columns:1fr 1fr}
 .photos{grid-template-columns:repeat(3,1fr)}
 .photos figure:nth-child(3){display:block}
 .related{grid-template-columns:repeat(3,1fr)}
 .hub-cards{grid-template-columns:1fr 1fr}
 footer.sf .fcols{grid-template-columns:1.2fr 1fr 1fr}
 .card{padding:1.6rem 1.6rem}
}
@media (min-width:900px){
 .topbar{padding-left:max(1rem,calc((100vw - 1040px)/2 + 1rem));padding-right:max(1rem,calc((100vw - 1040px)/2 + 1rem))}
 body{padding-bottom:0}
 .callbar{display:none}
 .hero{padding:1.25rem 0 1.75rem}
}
/* review page */
.rv{max-width:560px;margin:0 auto;padding:1.25rem 1rem 2rem}
.rv .card{text-align:center;padding:1.9rem 1.3rem}
.stars{font-size:1.9rem;letter-spacing:.2rem;color:#f4b400;margin:0 0 .4rem}
.btn-google{display:flex;width:100%;max-width:420px;margin:1.1rem auto .55rem;background:#1a73e8;color:#fff;font-size:1.12rem;padding:1.05rem 1.25rem;min-height:60px;box-shadow:0 6px 18px rgba(26,115,232,.28)}
.btn-google:hover{filter:brightness(1.05)}
.btn-google .g{background:#fff;border-radius:50%;width:30px;height:30px;display:grid;place-items:center}
.btn-google .g svg{width:18px;height:18px}
.note{font-size:.82rem;color:var(--muted);margin:.2rem 0 0}
.rv ol.steps{text-align:left;display:inline-block;margin:.4rem auto 0}
.thanks{display:none;background:var(--brand-soft);border:1.5px solid var(--brand);border-radius:12px;padding:.9rem 1rem;margin:1rem 0 0;color:var(--brand-dark);font-weight:600}
.thanks.show{display:block}
.sign{font-style:italic;color:#4a4540;margin:1.2rem 0 0}
/* our work gallery + photo strips (v20261026a) */
.work-strip .ws-note{color:var(--muted);margin:-.3rem 0 .7rem;font-size:.92rem}
.ws-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
.ws-grid a{display:block;border-radius:12px;overflow:hidden;background:#eee6dc;aspect-ratio:4/3}
.ws-grid img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.ws-grid a:hover img{transform:scale(1.03)}
.ws-more{margin:.8rem 0 0;font-weight:800}
.wfilter{display:flex;flex-wrap:wrap;gap:.45rem;margin:0 0 1rem}
.wfilter button{border:1.5px solid var(--line);background:#fff;color:var(--ink);font:inherit;font-weight:700;font-size:.9rem;border-radius:999px;padding:.55rem .95rem;min-height:44px;cursor:pointer}
.wfilter button .n{color:var(--muted);font-weight:600;font-size:.8rem}
.wfilter button.active{background:var(--brand);border-color:var(--brand);color:#fff}
.wfilter button.active .n{color:#e8f5f3}
.proj[hidden]{display:none}
.proj .ph-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem .7rem;margin-bottom:.35rem}
.proj .ph-head h2{margin:0}
.proj .tag{background:var(--brand-soft);color:var(--brand-dark);font-weight:700;font-size:.75rem;border-radius:999px;padding:.2rem .6rem;white-space:nowrap}
.proj .sum{color:#4a4540;margin:0 0 .8rem}
.proj .ba{margin:0 0 .6rem}
.proj .ba a{display:block;border-radius:12px;overflow:hidden;background:#eee6dc}
.proj .ba img{width:100%}
.proj .ba figcaption{font-size:.78rem;color:var(--muted);margin:.3rem 0 0}
.alb{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
.alb a{position:relative;display:block;border-radius:10px;overflow:hidden;background:#eee6dc;aspect-ratio:1/1}
.alb img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.alb a:hover img{transform:scale(1.03)}
.alb .stage{position:absolute;left:.4rem;top:.4rem;background:rgba(15,8,5,.72);color:#fff;font-size:.7rem;font-weight:700;border-radius:999px;padding:.15rem .5rem}
.wempty{color:var(--muted);text-align:center}
.lbox{position:fixed;inset:0;z-index:100;background:rgba(15,8,5,.97);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3.2rem .5rem 1rem}
.lbox[hidden]{display:none}
.lbox img{max-width:100%;max-height:calc(100vh - 8rem);width:auto;height:auto;object-fit:contain;border-radius:6px}
.lbox p{color:#f3eee8;font-size:.9rem;text-align:center;max-width:44rem;margin:.7rem 1rem 0}
.lbox p small{display:block;color:#a9a39b;margin-top:.2rem}
.lbox button{position:absolute;z-index:2;border:0;background:rgba(40,36,32,.75);color:#fff;width:48px;height:48px;border-radius:50%;font-size:1.6rem;line-height:1;cursor:pointer;display:grid;place-items:center}
.lbox button:hover,.lbox button:focus-visible{background:rgba(255,255,255,.28)}
.lbox .lb-x{top:.6rem;right:.6rem}
.lbox .lb-p{left:.5rem;top:50%;transform:translateY(-50%)}
.lbox .lb-n{right:.5rem;top:50%;transform:translateY(-50%)}
.lbox button[hidden]{display:none}
body.lb-open{overflow:hidden}
@media (min-width:720px){
 .ws-grid{grid-template-columns:repeat(4,1fr)}
 .alb{grid-template-columns:repeat(4,1fr)}
 .lbox .lb-p{left:1.2rem}.lbox .lb-n{right:1.2rem}
}
