:root{--navy:#0d2a5c;--navy2:#091d42;--red:#c8202f;--paper:#fff;--sand:#f1ede4;--ink:#16202e}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{font-family:'Figtree',system-ui,sans-serif;color:var(--ink);background:var(--paper);font-size:1.05rem;line-height:1.7}
h1,h2,h3,.navbar-brand{font-family:'Bricolage Grotesque',system-ui,sans-serif;line-height:1.05}
a{color:var(--navy)}
.nav-b21{background:var(--navy2);border-bottom:3px solid var(--red)}
.navbar-brand{font-weight:800;font-size:1.45rem;letter-spacing:-.01em;color:#fff!important;margin:0}
.navbar-brand small{font-family:'Figtree',sans-serif;font-weight:500;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:#b9c7e2;margin-left:.4rem}
.nav-link{color:#e4ebf8!important;font-weight:500}
.nav-link:hover{color:#fff!important}
.btn-b21{background:var(--red);color:#fff;border:2px solid var(--red);font-weight:600;border-radius:4px}
.btn-b21:hover{background:#a81926;border-color:#a81926;color:#fff}
.btn-ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.55);border-radius:4px;font-weight:600}
.btn-ghost:hover{background:#fff;color:var(--navy)}
.hero{background:var(--navy);color:#fff;padding:3.2rem 0 3.6rem}
.hero h1{font-weight:800;font-size:clamp(2.3rem,5vw,3.8rem);margin-bottom:1rem;color:#fff}
.hero .lead{color:#dbe4f5;font-size:1.12rem;margin-bottom:1.6rem}
.eyebrow{font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;color:#ffb3ba;margin-bottom:.9rem}
.hero-photo{margin:0}
.hero-photo img{display:block;width:100%;height:auto;max-height:min(66vh,480px);object-fit:cover;border-radius:4px}
/* signature: canvas seam stitching */
.stitch{padding:10px;border:2px dashed rgba(255,255,255,.7);border-radius:6px;outline:0}
.season{background:var(--red);color:#fff;padding:.8rem 0;text-align:center;font-size:1rem}
.py-section{padding:4.5rem 0}
.alt{background:var(--sand)}
h2.sec{font-weight:800;font-size:clamp(1.8rem,3.4vw,2.6rem);color:var(--navy);padding-bottom:.7rem;margin-bottom:1rem;border-bottom:3px dashed var(--red);display:inline-block}
.sec-sub{max-width:40rem}
.svc{list-style:none;padding:0;margin:1.8rem 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.7rem}
.svc li{border:2px dashed #aab6cf;border-radius:4px;padding:.9rem 1rem;font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:1.15rem;color:var(--navy);background:#fff}
.more{font-weight:500}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;display:block}
.gal img.wide{aspect-ratio:8/3}
.addr{font-style:normal;font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:1.35rem;line-height:1.3;color:var(--navy)}
.map{width:100%;height:100%;min-height:340px;border:0;border-radius:4px}
.contact{background:var(--navy2);color:#dbe4f5}
.contact h3{color:#ffb3ba;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;font-family:'Figtree',sans-serif;font-weight:600}
.contact .big{display:block;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:clamp(1.3rem,2.4vw,1.7rem);color:#fff;text-decoration:none;overflow-wrap:anywhere;margin-bottom:.4rem}
.contact a.big:hover{text-decoration:underline}
footer{background:#050f24;color:#9fb0cf;padding:1.2rem 0;font-size:.9rem}
footer a{color:#fff}
@media(max-width:575px){.py-section{padding:3rem 0}.hero{padding:2rem 0 2.4rem}.navbar-brand small{display:block;margin:0}}
