:root{--ink:#0f2d29;--teal:#1b6b60;--mint:#d5ebe2;--cream:#f7f2e8;--coral:#e8553a;--paper:#fff;--muted:#53655f;--line:#ddd5c4;--r:10px;
--serif:Georgia,"Times New Roman",serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.6;padding-bottom:64px}
a{color:inherit}
img,svg{max-width:100%}
.wrap{max-width:1160px;margin:0 auto;padding:0 20px}
.narrow{max-width:760px}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;background:#fff;padding:8px;z-index:99}
:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
h1,h2,h3{font-family:var(--serif);font-weight:700;line-height:1.15}
h1{font-size:clamp(2.4rem,8vw,4.4rem);letter-spacing:-.02em}
h1 em{color:var(--teal);font-style:italic}
h2{font-size:clamp(1.8rem,4.5vw,2.8rem);margin-bottom:16px;max-width:620px}
h3{font-size:1.25rem}
.eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-bottom:12px}
.lead{color:var(--muted);max-width:560px;margin-bottom:28px}
.note{font-size:.78rem;color:var(--muted);margin-top:10px}
.sec{padding:72px 0}.alt{background:#efe8d8}
.dark{background:var(--ink);color:#eaf3ef}.dark .eyebrow{color:#8fd5c3}.dark .lead,.dark .note{color:#a9c4bc}
.i{width:1.3em;height:1.3em;vertical-align:-.25em}.xl{width:56px;height:56px}
.btn{display:inline-block;padding:14px 26px;border-radius:6px;font-weight:700;text-decoration:none;border:2px solid transparent;cursor:pointer;font-size:1rem;font-family:inherit;transition:transform .2s,background .2s}
.btn:hover{transform:translateY(-2px)}
.btn-c{background:var(--coral);color:#fff}.btn-c:hover{background:#cf4329}
.btn-o{border-color:var(--ink);color:var(--ink)}.btn-o.light{border-color:#eaf3ef;color:#eaf3ef}
.cta{display:flex;gap:12px;flex-wrap:wrap;margin:26px 0 8px}
/* header */
.hdr{position:sticky;top:0;z-index:40;background:rgba(247,242,232,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px}
.logo{font-family:var(--serif);font-weight:700;font-size:1.35rem;text-decoration:none;display:flex;align-items:center;gap:6px}.logo span{color:var(--teal)}
.burger{display:flex;flex-direction:column;gap:6px;background:none;border:0;padding:10px;cursor:pointer}
.burger span{width:26px;height:2px;background:var(--ink);transition:.25s}
.burger[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}
.burger[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}
.menu{position:absolute;top:68px;left:0;right:0;background:var(--cream);padding:12px 20px 24px;display:none;flex-direction:column;gap:4px;border-bottom:1px solid var(--line)}
.menu.open{display:flex}
.menu>a:not(.btn),.dd-b{padding:12px 0;text-decoration:none;font-weight:600;background:none;border:0;font:inherit;font-weight:600;text-align:left;cursor:pointer;color:inherit}
.dd-l{list-style:none;display:none;padding-left:14px}.dd-l.open{display:block}.dd-l a{display:block;padding:8px 0;text-decoration:none;color:var(--muted)}
/* hero */
.hero{padding:44px 0 56px}
.hero-g{display:grid;gap:44px}
.sub{font-size:1.1rem;color:var(--muted);margin-top:18px;max-width:520px}
.ticks{display:flex;flex-wrap:wrap;gap:8px 22px;list-style:none;margin-top:20px;font-weight:600;font-size:.92rem}
.ticks li::before{content:"✓ ";color:var(--teal)}
.hero-v{position:relative;padding:0 16px 24px 0}
.arch{height:380px;border-radius:200px 200px 12px 12px;display:grid;place-items:center;color:#fff;position:relative}
.big{width:110px;height:110px;color:rgba(255,255,255,.85)}
.ph{position:relative;display:grid;place-items:center;color:rgba(255,255,255,.9)}
.ph.a{background:linear-gradient(160deg,#1b6b60,#0f2d29)}
.ph.b{background:linear-gradient(160deg,#3d9a88,#1b6b60)}
.ph.c{background:linear-gradient(160deg,#5b8f9a,#244b5a)}
.phl{position:absolute;bottom:10px;left:12px;font-size:.72rem;opacity:.8}
.float{position:absolute;background:#fff;border-radius:var(--r);padding:12px 16px;box-shadow:0 14px 34px rgba(15,45,41,.18);display:flex;gap:10px;align-items:center;font-size:.82rem;line-height:1.3}
.float b{display:block;font-size:1rem}
.f1{right:0;top:50px;flex-direction:column;align-items:flex-start;gap:0}
.f2{left:-8px;bottom:0}
/* trust */
.trust{background:var(--paper);border-block:1px solid var(--line)}
.trust-g{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-block:32px;text-align:center}
.trust b{display:block;font-family:var(--serif);font-size:2.1rem;color:var(--teal)}
.trust span{font-size:.85rem;color:var(--muted)}
/* bento */
.bento{display:grid;gap:18px;margin-top:34px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}
.card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(15,45,41,.12)}
.card .ph{height:150px}
.cb{padding:22px;display:flex;flex-direction:column;gap:10px;flex:1}
.cb p{color:var(--muted);font-size:.95rem}
.cb ul{list-style:none;font-size:.88rem;font-weight:600}.cb li::before{content:"✓ ";color:var(--teal)}
.lm{margin-top:auto;font-weight:700;color:var(--coral);text-decoration:none}.lm:hover{text-decoration:underline}
/* why */
.why-g{display:grid;gap:36px}
.why{list-style:none;counter-reset:w;display:grid;gap:4px}
.why li{counter-increment:w;padding:20px 0 20px 56px;border-top:1px solid rgba(255,255,255,.18);position:relative;color:#b9d0c9}
.why li::before{content:"0" counter(w);position:absolute;left:0;top:20px;font-family:var(--serif);font-size:1.5rem;color:#8fd5c3}
.why b{display:block;color:#fff;font-size:1.1rem;margin-bottom:4px}
/* locations */
.locs{display:grid;gap:14px;margin-top:10px}
.loc{background:var(--paper);border-left:4px solid var(--teal);padding:20px 22px;border-radius:0 var(--r) var(--r) 0}
.loc p{color:var(--muted);font-size:.92rem;margin:6px 0 10px}
.loc a{font-weight:700;color:var(--coral);text-decoration:none;font-size:.9rem}
/* work */
.work{display:grid;gap:18px;margin-top:30px}
.proj{text-align:left;background:none;border:0;cursor:pointer;font:inherit;color:inherit;display:flex;flex-direction:column;gap:4px}
.proj .ph{height:220px;border-radius:var(--r);margin-bottom:8px;transition:transform .3s}
.proj:hover .ph{transform:scale(1.02)}
.proj b{font-family:var(--serif);font-size:1.15rem}.proj span{font-size:.85rem;color:var(--muted)}
/* steps */
.steps{list-style:none;counter-reset:s;display:grid;gap:0;margin-top:30px;border-left:2px solid var(--teal);padding-left:26px}
.steps li{counter-increment:s;position:relative;padding:0 0 26px;color:var(--muted)}
.steps li::before{content:counter(s);position:absolute;left:-44px;top:0;width:32px;height:32px;border-radius:50%;background:var(--teal);color:#fff;font-weight:700;display:grid;place-items:center;font-size:.9rem}
.steps b{display:block;color:var(--ink);font-size:1.05rem}
/* reviews */
.revs{display:grid;gap:18px}
.revs figure{background:var(--paper);padding:26px;border-radius:var(--r);border:1px solid var(--line)}
.revs blockquote{font-family:var(--serif);font-size:1.15rem;margin-bottom:14px}
.revs figcaption{font-size:.82rem;color:var(--muted)}
/* faq */
details{border-bottom:1px solid var(--line);padding:18px 0}
summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:12px}
summary::after{content:"+";font-size:1.4rem;color:var(--teal)}
details[open] summary::after{content:"–"}
details p{margin-top:10px;color:var(--muted)}
/* contact */
.contact-g{display:grid;gap:36px}
.form{background:var(--paper);color:var(--ink);padding:26px;border-radius:var(--r);display:grid;gap:14px}
.row{display:grid;gap:14px}
.fld label{display:block;font-weight:600;font-size:.85rem;margin-bottom:5px}
input,select,textarea{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:6px;font:inherit;background:#fff;color:var(--ink)}
input[aria-invalid=true]{border-color:#c0392b}
.err{color:#c0392b;font-size:.8rem;display:block;min-height:1em;margin-top:3px}
.ok{background:var(--mint);padding:12px;border-radius:6px;font-weight:600}
/* footer */
.ftr{background:#0a1f1c;color:#a9c4bc;padding:52px 0 24px}
.ftr-g{display:grid;gap:28px}
.ftr .logo{color:#fff;margin-bottom:10px}
.ftr h3{font-family:var(--sans);color:#fff;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px}
.ftr a,.ftr span{display:block;text-decoration:none;font-size:.92rem;margin-bottom:6px}
.ftr span a{display:inline}
.ftr a:hover{color:#fff}
.legal{margin-top:30px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);font-size:.8rem}
.legal a{display:inline;margin:0}
.sticky{position:fixed;bottom:0;left:0;right:0;z-index:45;display:grid;grid-template-columns:1fr 1fr 1.3fr;background:var(--ink)}
.sticky a{padding:16px 6px;text-align:center;color:#fff;text-decoration:none;font-weight:700;font-size:.9rem}
.sticky .q{background:var(--coral)}
/* dialog */
dialog{border:0;border-radius:var(--r);padding:26px;max-width:560px;width:calc(100% - 32px);margin:auto}
dialog::backdrop{background:rgba(10,31,28,.7)}
.x{float:right;background:none;border:0;font-size:2rem;line-height:1;cursor:pointer}
.cmp{position:relative;height:240px;margin:14px 0 8px;border-radius:var(--r);overflow:hidden;color:#fff;font-weight:700}
.cmp div{position:absolute;inset:0;display:grid;place-items:center;text-align:center}
.aft{background:linear-gradient(160deg,#3d9a88,#1b6b60)}
.bef{background:linear-gradient(160deg,#8a8577,#5d584b);clip-path:inset(0 50% 0 0)}
#rng{padding:0;border:0;accent-color:var(--coral)}
#d-d{margin-top:12px;color:var(--muted)}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s,transform .6s}.reveal.in{opacity:1;transform:none}
@media(min-width:760px){
.bento{grid-template-columns:repeat(2,1fr)}.big-c{grid-row:span 2}.big-c .ph{height:260px}.wide{grid-column:span 2;flex-direction:row}.wide .ph{width:40%;height:auto}
.locs,.work,.revs{grid-template-columns:repeat(3,1fr)}
.steps{grid-template-columns:repeat(5,1fr);border-left:0;padding:0;border-top:2px solid var(--teal);gap:18px}
.steps li{padding:30px 0 0}.steps li::before{left:0;top:-17px}
.trust-g{grid-template-columns:repeat(4,1fr)}
.row{grid-template-columns:1fr 1fr}
.ftr-g{grid-template-columns:1.4fr 1fr 1fr 1fr}
}
@media(min-width:960px){
body{padding-bottom:0}.sticky{display:none}
.burger{display:none}
.menu{position:static;display:flex;flex-direction:row;align-items:center;gap:22px;padding:0;border:0;background:none}
.dd{position:relative}.dd-l{position:absolute;top:100%;left:-14px;background:#fff;padding:10px 18px;border-radius:var(--r);box-shadow:0 14px 34px rgba(15,45,41,.15);min-width:210px}
.dd:hover .dd-l{display:block}
.hero-g{grid-template-columns:1.1fr .9fr;align-items:center}
.why-g,.contact-g{grid-template-columns:1fr 1.1fr}
.hero{padding:76px 0}
.arch{height:480px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
