:root{--ink:#2a1c35;--ink2:#1d1226;--ivory:#f6f1e7;--sage:#a8b894;--sage-d:#4f6140}
img{max-width:100%;height:auto}
html{scroll-behavior:smooth}
section[id],header[id]{scroll-margin-top:96px}
body{font-family:'Hanken Grotesk',sans-serif;font-weight:300;font-size:1.04rem;line-height:1.75;color:var(--ink);background:var(--ivory)}
h1,h2,h3,h4,.serif{font-family:'Bodoni Moda',serif;font-weight:400;line-height:1.12;color:inherit}
h1{font-size:clamp(2.6rem,5.4vw,4.4rem)}
h2{font-size:clamp(2rem,4vw,3rem);margin-bottom:1.1rem}
h3{font-size:1.45rem}
a{color:var(--ink)}
.tc{font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;font-weight:500;font-family:'Hanken Grotesk',sans-serif}
.sub{font-family:'Bodoni Moda',serif;font-style:italic;font-size:1.25rem;opacity:.85}
.sec{padding:96px 0}
.dark{background:var(--ink);color:var(--ivory)}
.dark a{color:var(--ivory)}
.eyebrow{color:var(--sage-d);margin-bottom:1rem;display:block}
.dark .eyebrow{color:var(--sage)}
.lead-w{max-width:780px}

/* nav (c): centered name stacked above link row */
.navbar{background:rgba(29,18,38,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:14px 0 0;border-bottom:1px solid rgba(168,184,148,.2)}
.navbar-brand{display:block;margin:0 auto;text-align:center;color:var(--ivory)!important;font-family:'Bodoni Moda',serif;font-size:1.35rem;letter-spacing:.2em;text-transform:uppercase;padding:0 0 12px}
.navbar-brand small{display:block;font-family:'Hanken Grotesk',sans-serif;font-size:.6rem;letter-spacing:.34em;color:var(--sage);margin-top:2px}
.navbar.navbar-expand-lg .navbar-collapse{justify-content:center;border-top:1px solid rgba(168,184,148,.15)}
.navbar .nav-link{color:rgba(246,241,231,.8)!important;font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;padding:14px 16px!important;transition:color .3s,opacity .3s}
.navbar .nav-link:hover{color:var(--sage)!important}
.navbar-toggler{border:1px solid rgba(246,241,231,.35);border-radius:0;position:absolute;right:12px;top:14px;padding:6px 10px}
.navbar-toggler-icon{filter:invert(1)}
.navbar .container{position:relative;flex-direction:column}
@media(max-width:991px){.navbar .container{align-items:stretch}.navbar-brand{font-size:1.05rem;text-align:left;margin:0;padding-right:60px}.navbar.navbar-expand-lg .navbar-collapse{justify-content:flex-start}.navbar .nav-link{padding:12px 4px!important}}

/* buttons */
.btn-w{display:inline-block;font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;font-weight:500;padding:15px 36px;border-radius:0;text-decoration:none;transition:opacity .3s,background .3s,color .3s;border:1px solid transparent}
.btn-solid{background:var(--sage);color:var(--ink2)!important}
.btn-solid:hover{opacity:.85}
.btn-ghost{border-color:rgba(246,241,231,.4);color:var(--ivory)!important}
.btn-ghost:hover{background:rgba(246,241,231,.1)}
.btn-ghost-d{border-color:rgba(42,28,53,.4);color:var(--ink)!important}
.btn-ghost-d:hover{background:rgba(42,28,53,.06)}

/* hero */
.hero{background:linear-gradient(160deg,var(--ink) 0%,var(--ink2) 100%);color:var(--ivory);padding:72px 0 0;position:relative;overflow:hidden}
.hero .eyebrow{color:var(--sage)}
.hero h1{color:var(--ivory)}
.hero-photo{position:relative}
.hero-photo img{display:block;width:100%;max-width:440px;max-height:min(66vh,480px);aspect-ratio:1/1;object-fit:cover;object-position:50% 18%;border-radius:2px;margin-left:auto;border:1px solid rgba(168,184,148,.45);padding:8px;background:transparent}
.hero-photo figcaption{text-align:right;max-width:440px;margin-left:auto;margin-top:10px;color:rgba(246,241,231,.75)}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:2rem}
.roofline{display:block;width:100%;height:60px;color:var(--sage);opacity:.45;margin-top:56px}
.roofline-d{color:var(--ink);opacity:.22;height:46px;margin:0 0 40px}
@media(max-width:991px){.hero{padding-top:44px}.hero-photo img,.hero-photo figcaption{margin:2rem auto 0;display:block}.hero-photo figcaption{text-align:center;margin-top:10px}.hero-photo img{max-width:340px}}

/* index lists */
.idx{list-style:none;padding:0;margin:0}
.idx li{padding:13px 0;border-bottom:1px solid rgba(42,28,53,.18);font-family:'Bodoni Moda',serif;font-size:1.2rem}
.dark .idx li{border-color:rgba(168,184,148,.25)}
.col-h{border-top:1px solid var(--sage-d);padding-top:18px;margin-bottom:8px}

/* why */
.reason{border-top:1px solid rgba(168,184,148,.3);padding-top:20px;height:100%}
.reason h3{font-size:1.35rem;margin-bottom:.5rem;color:var(--ivory)}
.reason p{opacity:.8;margin:0}
.quote{font-family:'Bodoni Moda',serif;font-style:italic;font-size:clamp(1.5rem,2.8vw,2.2rem);line-height:1.4;max-width:900px;margin:0 auto;text-align:center}
.quote-band{background:var(--ivory);padding:88px 0}
.quote-band .tc{display:block;text-align:center;margin-top:22px;color:var(--sage-d)}

/* team */
.team-card img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:50% 20%;display:block;border:1px solid rgba(42,28,53,.2);padding:6px}
.team-card h3{font-size:1.2rem;margin:14px 0 2px}
.team-card .tc{color:var(--sage-d);font-size:.6rem}
.team-text{border-top:1px solid rgba(42,28,53,.18);padding:14px 0}
.team-text h3{font-size:1.15rem;margin:0}

/* carriers */
.carrier{border:1px solid rgba(168,184,148,.28);padding:20px 22px;height:100%}
.carrier h3{font-size:1.2rem;margin-bottom:12px;color:var(--ivory)}
.carrier a{display:block;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sage)!important;text-decoration:none;padding:3px 0}
.carrier a:hover{opacity:.7}
.carrier .none{font-size:.78rem;opacity:.6}

/* blog */
.post{border-top:1px solid rgba(42,28,53,.25);padding-top:18px;height:100%}
.post h3{font-size:1.25rem;margin-bottom:.6rem}
.post p{opacity:.85;margin:0}

/* contact */
.map{border:1px solid rgba(42,28,53,.25);width:100%;height:380px;display:block}
.big-phone{font-family:'Bodoni Moda',serif;font-size:clamp(2rem,4vw,3rem);text-decoration:none}
footer{background:var(--ink2);color:rgba(246,241,231,.8);padding:48px 0 28px;font-size:.9rem}
footer a{color:var(--sage)}
footer .brand{font-family:'Bodoni Moda',serif;letter-spacing:.2em;text-transform:uppercase;color:var(--ivory);font-size:1.1rem}
.powered{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase}
@media(max-width:767px){.sec{padding:64px 0}}
