:root{
  --navy:#0B2240; --navy-dark:#06162B; --brass:#B08A4D;
  --bg:#FFFFFF; --text:#0F1115; --muted:#5B6776;
  --hairline:#D9D9D6; --wash:#F4F2EE;
  --serif: "Times New Roman","Times",Georgia,serif;
  --sans: -apple-system,"Segoe UI","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--sans); color:var(--text); background:var(--bg);
  font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased;
}
a{color:var(--navy); text-decoration:none}
a:hover{color:var(--brass); text-decoration:underline; text-decoration-color:var(--brass); text-underline-offset:3px}
img{max-width:100%; height:auto; display:block}

.brass-bar{height:3px; background:var(--brass)}

/* nav */
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:1rem 1.5rem; border-bottom:1px solid var(--hairline);
  position:sticky; top:0; background:rgba(255,255,255,0.96); backdrop-filter:saturate(140%) blur(6px); z-index:20;
}
.nav .brand{font-family:var(--serif); font-size:1.15rem; letter-spacing:0.02em; color:var(--navy)}
.nav nav{display:flex; gap:1.25rem; font-size:.85rem}
.nav nav a{color:var(--muted); text-transform:uppercase; letter-spacing:.14em}
.nav nav a:hover{color:var(--navy); text-decoration:none}
@media (max-width:640px){ .nav nav{display:none} }

/* shared */
.eyebrow, .section-eyebrow{
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--brass); margin:0 0 .9rem 0; font-weight:600;
}
.section-eyebrow{color:var(--muted)}
.section{padding:5rem 1.5rem; max-width:1100px; margin:0 auto; border-top:1px solid var(--hairline)}
.section-title{font-family:var(--serif); font-weight:400; font-size:clamp(1.6rem,3vw,2.25rem); color:var(--navy); margin:0 0 1.75rem 0; letter-spacing:.005em}
.prose{max-width:760px}
.prose p{margin:0 0 1rem 0}
.prose-narrow{max-width:680px; color:var(--text)}

/* hero — slideshow */
.hero{padding:0; margin:0; background:var(--navy-dark)}
.slideshow{
  position:relative; width:100%;
  height:clamp(560px, 78vh, 820px);
  overflow:hidden;
  background:var(--navy-dark);
  color:#fff;
}
.slides{position:absolute; inset:0}
.slide{position:absolute; inset:0; margin:0; opacity:0; transition:opacity 1100ms ease-in-out; pointer-events:none}
.slide.is-active{opacity:1; pointer-events:auto}
.slide-bg{
  position:absolute; inset:-6%;
  background-size:cover; background-position:center;
  filter:blur(36px) brightness(.5) saturate(1.15);
  transform:scale(1.18);
}
.slide-bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(6,22,43,.35) 0%, rgba(6,22,43,.15) 35%, rgba(6,22,43,.55) 75%, rgba(6,22,43,.92) 100%);
}
.slide-img{
  position:absolute; left:50%; top:50%; transform:translate(-50%, calc(-50% - 1.25rem));
  max-width:min(820px, 86vw);
  width:auto; height:auto;
  max-height:62%;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.65), 0 6px 24px -8px rgba(0,0,0,.5);
  outline:1px solid rgba(176,138,77,.45);
  outline-offset:-1px;
  background:#0b1626;
}
@media (max-width:760px){
  .slideshow{ height:clamp(520px, 92vh, 760px) }
  .slide-img{ max-width:94vw; max-height:46% }
}

/* hero overlay */
.hero-overlay{
  position:absolute; left:0; right:0; bottom:0; z-index:3;
  display:grid; grid-template-columns:1.5fr 1fr; gap:2rem;
  align-items:end;
  padding:2rem clamp(1.5rem, 5vw, 4rem) 3.25rem;
  pointer-events:none;
}
.hero-overlay > * { pointer-events:auto }
@media (max-width:760px){
  .hero-overlay{ grid-template-columns:1fr; gap:1.25rem; padding:1.5rem 1.25rem 2.5rem }
}
.hero-copy{ position:relative; padding-left:1.25rem }
.hero-copy::before{
  content:""; position:absolute; left:0; top:.4rem; bottom:.4rem; width:2px; background:var(--brass);
}
.eyebrow-light{ color:var(--brass) }
.hero h1{
  font-family:var(--serif); font-weight:400; color:#fff;
  font-size:clamp(2.6rem, 7vw, 5rem); line-height:.98; letter-spacing:-.01em;
  margin:.4rem 0 .8rem;
  text-shadow:0 2px 18px rgba(0,0,0,.45);
}
.sub{ color:rgba(255,255,255,.82); margin:0 0 1.4rem; font-size:clamp(.95rem,1.4vw,1.05rem) }
.cta-row{display:flex; gap:.7rem; flex-wrap:wrap}

.btn{
  display:inline-block; padding:.85rem 1.4rem; font-size:.85rem;
  letter-spacing:.12em; text-transform:uppercase; border:1.5px solid var(--navy);
  border-radius:0; font-weight:600; transition:all .18s ease;
  cursor:pointer; font-family:inherit;
}
.btn.primary{ background:var(--brass); border-color:var(--brass); color:#0B2240 }
.btn.primary:hover{ background:#c69e5e; border-color:#c69e5e; color:#06162B; text-decoration:none }
.btn.ghost{ background:transparent; border-color:rgba(255,255,255,.7); color:#fff }
.btn.ghost:hover{ background:#fff; color:var(--navy); text-decoration:none }
.btn.outline{ background:transparent; color:var(--navy); border-color:var(--navy) }
.btn.outline:hover{ background:var(--navy); color:#fff; text-decoration:none }

.hero-price{
  text-align:right; align-self:end;
  padding:1rem 0 .25rem 1.25rem;
  border-left:1px solid rgba(255,255,255,.18);
}
@media (max-width:760px){ .hero-price{ text-align:left; border-left:0; border-top:1px solid rgba(255,255,255,.18); padding:1rem 0 0 } }
.hero-price .eyebrow-light{ margin-bottom:.5rem }
.price{
  font-family:var(--serif); font-weight:400; color:#fff;
  font-size:clamp(2.2rem,5.5vw,3.6rem); margin:0; line-height:1;
  text-shadow:0 2px 18px rgba(0,0,0,.45);
}
.price-sub{ color:rgba(255,255,255,.78); margin:.45rem 0 0; font-size:.88rem }

/* slideshow controls */
.slide-nav{
  position:absolute; top:46%; transform:translateY(-50%);
  width:48px; height:48px; border-radius:50%;
  background:rgba(11,34,64,.45); color:#fff; border:1px solid rgba(255,255,255,.25);
  font-size:1.6rem; line-height:1; cursor:pointer; z-index:4;
  display:flex; align-items:center; justify-content:center;
  backdrop-filter:blur(6px) saturate(140%);
  transition:background .18s ease, border-color .18s ease;
}
.slide-nav:hover{ background:var(--brass); border-color:var(--brass); color:#06162B }
.slide-nav.prev{ left:1.25rem }
.slide-nav.next{ right:1.25rem }
@media (max-width:520px){ .slide-nav{ width:40px; height:40px; font-size:1.3rem } .slide-nav.prev{left:.5rem} .slide-nav.next{right:.5rem} }

.slide-dots{
  position:absolute; left:50%; transform:translateX(-50%);
  bottom:1rem; display:flex; gap:.5rem; z-index:4;
}
.slide-dots .dot{
  width:32px; height:2px; padding:0; border:0; cursor:pointer;
  background:rgba(255,255,255,.35); transition:background .25s ease, height .25s ease;
}
.slide-dots .dot.is-active{ background:var(--brass); height:3px }
.slide-dots .dot:hover{ background:rgba(255,255,255,.7) }
@media (max-width:520px){ .slide-dots .dot{ width:22px } }

/* stats */
.stats{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:2.5rem; max-width:1100px; margin:0 auto;
  padding:2.5rem 1.5rem 3.5rem;
  border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline);
}
@media (max-width:640px){ .stats{grid-template-columns:repeat(2,1fr); gap:1.75rem} }
.stat .rule{display:block; width:14px; height:1.2px; background:var(--brass); margin-bottom:.85rem}
.stat .label{font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin:0 0 .35rem 0}
.stat .value{font-family:var(--serif); font-weight:400; font-size:2.25rem; color:var(--navy); margin:0; line-height:1}
.stat .unit{font-size:1rem; color:var(--muted)}

/* features */
.features{padding-left:1.1rem; margin:1.25rem 0 0 0; columns:2; column-gap:2rem}
.features li{margin-bottom:.4rem; break-inside:avoid}
@media (max-width:640px){ .features{columns:1} }

/* terms */
.terms-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline)}
@media (max-width:640px){ .terms-grid{grid-template-columns:repeat(2,1fr)} }
.term{padding:1.75rem 1.25rem; border-right:1px solid var(--hairline)}
.term:last-child{border-right:0}
@media (max-width:640px){
  .term:nth-child(2){border-right:0}
  .term:nth-child(1), .term:nth-child(2){border-bottom:1px solid var(--hairline)}
}
.term-label{font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin:0 0 .5rem 0}
.term-value{font-family:var(--serif); font-size:1.6rem; color:var(--navy); margin:0; line-height:1.1}
.fine-print{list-style:none; padding:0; margin:1.75rem 0 0 0; color:var(--muted); font-size:.95rem}
.fine-print li{margin-bottom:.45rem; padding-left:1rem; position:relative}
.fine-print li::before{content:""; position:absolute; left:0; top:.7em; width:8px; height:1px; background:var(--brass)}

/* map */
.map{margin-top:1.75rem; max-width:900px}
.map img{border:1px solid var(--hairline)}
.map-caption{font-size:.85rem; margin-top:.5rem; color:var(--muted)}

/* contact form */
.contact form{display:grid; gap:1.1rem; max-width:540px; margin-top:1.5rem}
.contact label{display:block}
.contact label span{display:block; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:.4rem}
.contact label em{font-style:normal; text-transform:none; letter-spacing:0; color:var(--muted); font-size:.78rem}
.contact input, .contact textarea{
  width:100%; padding:.7rem .85rem; font-family:inherit; font-size:1rem;
  border:1px solid var(--hairline); border-radius:0; background:#fff; color:var(--text);
}
.contact input:focus, .contact textarea:focus{outline:2px solid var(--navy); outline-offset:1px; border-color:var(--navy)}
.hp{position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; opacity:0 !important}
.contact button{justify-self:start; cursor:pointer}
.form-status{margin:.5rem 0 0; font-size:.92rem; color:var(--muted); min-height:1.2em}
.form-status.ok{color:#1a6b3f}
.form-status.err{color:#a13b2c}
.fallback{margin-top:1.25rem; color:var(--muted); font-size:.92rem}

/* footer */
footer{
  background:var(--navy-dark); color:#cfd6df;
  padding:2.5rem 1.5rem; text-align:center; font-size:.88rem; margin-top:3rem;
  border-top:3px solid var(--brass);
}
footer p{margin:.25rem 0}
.addr{color:#fff; letter-spacing:.04em}
.ehl{color:var(--brass); letter-spacing:.18em; text-transform:uppercase; font-size:.7rem}
.copy{color:#8a96a3}
