:root{
  --navy:#0F2D2E;
  --navy-light:#1B4B4D;
  --gold:#A87C3F;
  --cream:#FAF8F4;
  --paper:#FFFFFF;
  --ink:#1C1B19;
  --gray:#6B6862;
  --line:#E2DED4;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{font-family:'Source Sans 3','Inter',sans-serif; background:var(--cream); color:var(--ink); line-height:1.7;}
h1,h2,h3{font-family:'Playfair Display',Georgia,serif; color:var(--navy); line-height:1.2; font-weight:700;}
a{color:inherit;}
img{max-width:100%; display:block;}
.wrap{max-width:1140px; margin:0 auto; padding:0 28px;}

header.site{background:var(--paper); border-bottom:3px solid var(--navy);}
.topbar{background:var(--navy); color:#fff; font-size:0.78rem; padding:7px 0;}
.topbar .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:6px;}
.topbar a{text-decoration:none; opacity:0.85;}
nav.main{display:flex; align-items:center; justify-content:space-between; padding:20px 0;}
.brand{display:flex; align-items:center; gap:14px;}
.brand-mark{width:54px; height:46px; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Playfair Display',serif; font-weight:700; font-size:1.1rem;}
.brand-text .name{font-family:"Playfair Display",serif; font-weight:700; font-size:1.25rem; color:var(--navy);}
.brand-text .tag{font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--gray);}
.menu{display:none; list-style:none; gap:30px; font-size:0.92rem; font-weight:600;}
.menu a{text-decoration:none; padding-bottom:4px; border-bottom:2px solid transparent; transition:border-color .2s, color .2s;}
.menu a:hover, .menu a.active{border-color:var(--gold); color:var(--navy-light);}
@media(min-width:880px){.menu{display:flex;}}

.banner{background:linear-gradient(180deg, var(--navy) 0%, var(--navy-light) 100%); color:#fff; padding:64px 0 56px; text-align:left;}
.banner .eyebrow{font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold); margin-bottom:12px;}
.banner h1{color:#fff; font-size:clamp(2rem,5vw,3rem); margin-bottom:14px;}
.banner p{max-width:600px; color:rgba(255,255,255,0.82); font-size:1.02rem;}
.crumb{font-size:0.82rem; color:rgba(255,255,255,0.6); margin-bottom:18px;}
.crumb a{text-decoration:none; color:rgba(255,255,255,0.85);}

main{padding:64px 0;}
section + section{margin-top:54px;}
.section-title{display:flex; align-items:center; gap:14px; margin-bottom:22px;}
.section-title .bar{width:34px; height:3px; background:var(--gold);}
.section-title h2{font-size:1.7rem;}
p.body-text{color:#3a3733; max-width:760px; margin-bottom:14px;}

.card-grid{display:grid; grid-template-columns:1fr; gap:24px;}
@media(min-width:760px){.card-grid{grid-template-columns:repeat(3,1fr);}}
.info-card{background:var(--paper); border:1px solid var(--line); padding:26px; border-top:3px solid var(--gold);}
.info-card .num{font-family:'Playfair Display',serif; font-size:2rem; color:var(--navy); font-weight:700;}
.info-card h3{font-size:1.05rem; margin:10px 0 8px;}
.info-card p{font-size:0.9rem; color:var(--gray);}

table.spec{width:100%; border-collapse:collapse; background:var(--paper); border:1px solid var(--line); font-size:0.92rem;}
table.spec caption{text-align:left; font-family:'Playfair Display',serif; font-size:1.25rem; color:var(--navy); padding:14px 0 16px; caption-side:top;}
table.spec th{background:var(--navy); color:#fff; text-align:left; padding:12px 16px; font-weight:600; font-size:0.82rem; text-transform:uppercase; letter-spacing:0.03em;}
table.spec td{padding:12px 16px; border-bottom:1px solid var(--line);}
table.spec tr:last-child td{border-bottom:none;}
table.spec tr:nth-child(even) td{background:var(--cream);}
.product-block{margin-bottom:48px;}
.product-block p.desc{color:#3a3733; max-width:760px; margin-bottom:16px;}

.about-grid{display:grid; grid-template-columns:1fr; gap:36px;}
@media(min-width:860px){.about-grid{grid-template-columns:1.2fr 0.8fr;}}
.side-panel{background:var(--paper); border:1px solid var(--line); padding:26px;}
.side-panel h3{font-size:1.05rem; margin-bottom:14px; border-bottom:2px solid var(--gold); padding-bottom:10px;}
.side-panel dl{display:grid; grid-template-columns:auto 1fr; gap:10px 14px; font-size:0.9rem;}
.side-panel dt{color:var(--gray); font-weight:600;}

.cta-strip{background:var(--gold); color:#1f1707; padding:40px 0; text-align:center;}
.cta-strip h2{color:#1f1707; font-size:1.5rem; margin-bottom:10px;}
.btn{display:inline-block; padding:13px 28px; font-weight:700; text-decoration:none; font-size:0.9rem; letter-spacing:0.02em; margin-top:10px;}
.btn-navy{background:var(--navy); color:#fff;}
.btn-navy:hover{background:var(--navy-light);}

.contact-grid{display:grid; grid-template-columns:1fr; gap:36px;}
@media(min-width:860px){.contact-grid{grid-template-columns:1fr 1fr;}}
.contact-card{background:var(--paper); border:1px solid var(--line); padding:30px;}
.contact-card .row{display:flex; justify-content:space-between; gap:14px; padding:14px 0; border-bottom:1px solid var(--line); font-size:0.92rem;}
.contact-card .row:last-child{border-bottom:none;}
.contact-card .row span:first-child{color:var(--gray); font-weight:600; min-width:130px;}
.map-box{background:var(--paper); border:1px solid var(--line); padding:0; min-height:280px; display:flex; align-items:center; justify-content:center; color:var(--gray); font-size:0.85rem;}

footer.site{background:var(--navy); color:rgba(255,255,255,0.75); padding:36px 0; margin-top:60px;}
footer.site .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; font-size:0.85rem;}
footer.site a{text-decoration:none; color:rgba(255,255,255,0.75);}
