:root{--slate:#2b4350;--slate-d:#1d2f39;--cedar:#b27a3a;--cedar-d:#8f5f27;--cream:#f5f1e8;--ink:#1e2a30;--line:rgba(30,42,48,.18)}
img{max-width:100%;height:auto}
html{scroll-behavior:smooth;scroll-padding-top:74px}
body{font-family:'Source Serif 4',Georgia,serif;color:var(--ink);background:var(--cream);font-size:1.05rem;line-height:1.65}
h1,h2,h3,h4,.sans{font-family:'Bricolage Grotesque',sans-serif;line-height:1.08;color:var(--slate-d);letter-spacing:-.01em}
h2{font-size:clamp(2rem,4.2vw,3rem);font-weight:700;margin-bottom:1rem}
a{color:var(--cedar-d)}
.eyebrow{font-family:'Bricolage Grotesque',sans-serif;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--cedar-d)}
.navbar{background:var(--slate-d);padding:.55rem 0}
.navbar-brand{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;color:#fff;font-size:1.25rem;line-height:1}
.navbar-brand small{display:block;font-weight:500;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:#e0b273;margin-top:.2rem}
.navbar-brand:hover{color:#fff}
.nav-link{color:#e8e4da;font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:.9rem}
.nav-link:hover{color:#e0b273}
.navbar-toggler{border-color:rgba(255,255,255,.4)}
.navbar-toggler-icon{filter:invert(1)}
.btn{border-radius:3px;font-family:'Bricolage Grotesque',sans-serif;font-weight:700;padding:.75rem 1.5rem}
.btn-cedar{background:var(--cedar);color:#fff;border:2px solid var(--cedar)}
.btn-cedar:hover{background:var(--cedar-d);border-color:var(--cedar-d);color:#fff}
.btn-out{border:2px solid var(--slate-d);color:var(--slate-d)}
.btn-out:hover{background:var(--slate-d);color:#fff}
.btn-out-l{border:2px solid #fff;color:#fff}
.btn-out-l:hover{background:#fff;color:var(--slate-d)}
/* signature: tape-measure ruler */
.ruler{height:22px;background:#e9c46a;background-image:repeating-linear-gradient(90deg,#222 0 1px,transparent 1px 12px),repeating-linear-gradient(90deg,#222 0 2px,transparent 2px 60px);background-size:12px 9px,60px 16px;background-repeat:repeat-x;background-position:0 0;border-bottom:2px solid #222}
.hero{padding:2.5rem 0 3.2rem}
.hero h1{font-size:clamp(2.4rem,5.4vw,4.2rem);font-weight:800;margin:.6rem 0 1rem}
.hero h1 em{font-style:normal;color:var(--cedar-d)}
.hero .lead{max-width:33rem;font-size:1.15rem}
.hero-photo{width:100%;aspect-ratio:4/3;max-height:min(66vh,480px);object-fit:cover;object-position:50% 60%;border-radius:4px;display:block}
.badges{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;margin:1.2rem 0 0;padding:0;list-style:none;font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:.92rem}
.badges li:before{content:"✓ ";color:var(--cedar-d)}
section{padding:4.5rem 0}
.band{background:var(--slate);color:#eee}
.band h2,.band h3{color:#fff}
.svc{border-top:3px solid var(--cedar);padding:1rem 0 .4rem;height:100%}
.svc h3{font-size:1.25rem;font-weight:700;margin-bottom:.3rem}
.svc p{margin:0;font-size:.97rem}
.gal{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;display:block}
.gal-cap{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:.9rem;margin-top:.4rem}
.about p{max-width:38rem}
.estimate{background:#fff;border:2px dashed var(--slate);padding:1.6rem;border-radius:4px}
.estimate h3{font-size:1.5rem}
.t{background:#fff;padding:1.5rem;border-left:4px solid var(--cedar);height:100%;border-radius:0 4px 4px 0}
.t cite{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-style:normal;display:block;margin-top:.6rem}
.t small{color:#667}
.beach{background:linear-gradient(rgba(29,47,57,.72),rgba(29,47,57,.72)),url(img/beach.webp) center/cover;color:#fff;padding:5rem 0;text-align:center}
.beach h2{color:#fff}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1.2rem}
.chips span{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.4);padding:.3rem .9rem;border-radius:99px;font-family:'Bricolage Grotesque',sans-serif;font-size:.9rem}
.map{width:100%;height:340px;border:0;border-radius:4px}
.ci{list-style:none;padding:0;margin:0}
.ci li{margin-bottom:.7rem}
.ci i{color:var(--cedar-d);margin-right:.5rem}
footer{background:var(--slate-d);color:#cfd6d9;padding:2rem 0;font-size:.92rem}
footer a{color:#e0b273}
@media(max-width:767px){section{padding:3rem 0}.hero{padding:1.5rem 0 2rem}}
