:root{
  --navy:#14233C; --navy-deep:#0C1729; --gold:#B8913A; --gold-soft:#E7D7AE;
  --ink:#1B2433; --muted:#556178; --paper:#FFFFFF; --wash:#F2F4F8; --rule:#D8DEE8;
  --serif:"Libre Caslon Text", Georgia, "Times New Roman", serif;
  --display:"Libre Caslon Display", "Libre Caslon Text", Georgia, serif;
  --sans:"Source Sans 3", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){ --ink:#E8ECF3; --muted:#A9B3C6; --paper:#0F1A2C; --wash:#15233A; --rule:#2A3A55; }
}
:root[data-theme="dark"]{ --ink:#E8ECF3; --muted:#A9B3C6; --paper:#0F1A2C; --wash:#15233A; --rule:#2A3A55; }
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth; scroll-padding-top:env(safe-area-inset-top,0px)}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} }
body{margin:0; background:var(--paper); color:var(--ink); font:400 1.0625rem/1.65 var(--sans);}
img{max-width:100%}
a{color:inherit}
a:focus-visible, button:focus-visible, summary:focus-visible{outline:3px solid var(--gold); outline-offset:3px; border-radius:2px}
.wrap{max-width:72rem; margin:0 auto; padding:0 1.5rem}

/* Header */
.top{background:var(--navy); color:#fff}
.top .wrap{display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top:1rem; padding-bottom:1rem; flex-wrap:wrap}
.brand{font-family:var(--serif); font-size:1.15rem; text-decoration:none}
.brand small{display:block; font-family:var(--sans); font-size:.82rem; color:var(--gold-soft); letter-spacing:.02em}
.top nav{display:flex; gap:1.25rem; flex-wrap:wrap; font-size:.95rem}
.top nav a{text-decoration:none; color:#DCE3EE}
.top nav a:hover{color:#fff; text-decoration:underline; text-decoration-color:var(--gold)}

/* Hero */
.hero{background:var(--navy); color:#fff; padding:3.5rem 0 4.5rem; border-bottom:6px solid var(--gold)}
.hero .wrap{display:grid; grid-template-columns:1.25fr 1fr; gap:3.5rem; align-items:end}
.hero h1{font-family:var(--display); font-weight:400; font-size:clamp(3rem, 8vw, 6.2rem); line-height:.95; margin:0 0 1.5rem; letter-spacing:-.01em}
.hero h1 span{display:block; font-family:var(--serif); font-size:clamp(1rem, 2vw, 1.3rem); color:var(--gold-soft); letter-spacing:.04em; margin-top:.9rem}
.lede{font-size:1.25rem; line-height:1.55; color:#DCE3EE; max-width:36rem; margin:0 0 2rem}
.btn{display:inline-block; background:var(--gold); color:var(--navy-deep); font-weight:700; text-decoration:none; padding:.95rem 1.5rem; border-radius:3px; border:2px solid var(--gold)}
.btn:hover{background:#CBA24A}
.btn.ghost{background:transparent; color:#fff; border-color:#5D6E8C; margin-left:.6rem}
.btn.ghost:hover{border-color:var(--gold)}
.asks{border-left:2px solid var(--gold); padding-left:1.75rem}
.asks h2{font-family:var(--serif); font-weight:400; font-style:italic; font-size:1.2rem; color:var(--gold-soft); margin:0 0 1rem}
.asks ul{list-style:none; margin:0; padding:0}
.asks li{border-bottom:1px solid #2C3D5C}
.asks a{display:block; padding:.8rem 0; text-decoration:none; font-family:var(--serif); font-size:1.08rem; line-height:1.4}
.asks a:hover{color:var(--gold-soft)}

/* Sections */
section{padding:5rem 0}
h2.sec{font-family:var(--serif); font-weight:400; font-size:clamp(1.8rem,3.5vw,2.5rem); line-height:1.15; margin:0 0 1rem; max-width:40rem}
.intro{color:var(--muted); max-width:42rem; margin:0 0 3rem; font-size:1.12rem}
.niches{display:grid; grid-template-columns:repeat(3,1fr); gap:0}
.niche{padding:0 2.25rem}
.niche:first-child{padding-left:0}
.niche:last-child{padding-right:0}
.niche + .niche{border-left:1px solid var(--rule)}
.niche h3{font-family:var(--serif); font-weight:400; font-size:1.6rem; margin:0 0 .5rem}
.niche p{color:var(--muted); margin:0 0 1.25rem}
.niche ul{margin:0; padding-left:1.1rem}
.niche li{margin:.45rem 0}
.niche li::marker{color:var(--gold)}

.steps-band{background:var(--wash)}
.steps{list-style:none; counter-reset:s; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:2.5rem}
.steps li{counter-increment:s; border-top:2px solid var(--navy); padding-top:1.25rem}
:root[data-theme="dark"] .steps li{border-top-color:var(--gold)}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .steps li{border-top-color:var(--gold)} }
.steps li::before{content:counter(s); font-family:var(--display); font-size:2.6rem; color:var(--gold); line-height:1; display:block; margin-bottom:.6rem}
.steps h3{font-family:var(--serif); font-weight:400; font-size:1.3rem; margin:0 0 .4rem}
.steps p{margin:0; color:var(--muted)}

.about .wrap{display:grid; grid-template-columns:18rem 1fr; gap:3.5rem; align-items:start}
.portrait{display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; background:var(--navy); border-bottom:6px solid var(--gold)}
.about p{max-width:40rem; font-family:var(--serif); font-size:1.08rem; line-height:1.8}
.creds{font-family:var(--sans) !important; font-size:.95rem !important; color:var(--muted)}

.faq details{border-bottom:1px solid var(--rule); max-width:48rem}
.faq summary{cursor:pointer; list-style:none; padding:1.25rem 2.5rem 1.25rem 0; font-family:var(--serif); font-size:1.2rem; position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; position:absolute; right:.25rem; top:1.05rem; font-size:1.5rem; color:var(--gold)}
.faq details[open] summary::after{content:"\2013"}
.faq details p{margin:0 0 1.4rem; color:var(--muted); max-width:44rem}

.contact{background:var(--navy); color:#fff}
.contact .wrap{display:grid; grid-template-columns:1.3fr 1fr; gap:3rem; align-items:center}
.contact h2.sec{color:#fff}
.contact .intro{color:#C5CFDF; margin-bottom:2rem}
.card{border:1px solid #33456A; padding:2rem; font-size:1.05rem}
.card dt{color:var(--gold-soft); font-size:.9rem; margin-top:1rem}
.card dt:first-child{margin-top:0}
.card dd{margin:.15rem 0 0}
.card a{text-decoration-color:var(--gold)}

footer{background:var(--navy-deep); color:#9DA9BE; font-size:.85rem; line-height:1.6; padding:2.5rem 0}
footer p{max-width:60rem; margin:0 0 .9rem}
footer a{color:#C8D1E0}

@media (max-width: 820px){
  .hero .wrap, .about .wrap, .contact .wrap{grid-template-columns:1fr; gap:2.5rem}
  .niches, .steps{grid-template-columns:1fr}
  .niche, .niche + .niche, .niche:first-child, .niche:last-child{padding:0; border-left:0}
  .niche + .niche{border-top:1px solid var(--rule); padding-top:2.5rem; margin-top:2.5rem}
  .portrait{max-width:14rem}
  .btn.ghost{margin:.75rem 0 0}
  section{padding:3.5rem 0}
}

.crumbs{font-size:.9rem;color:#C5CFDF;margin:0 0 1.25rem}
.crumbs a{color:#C5CFDF}
.page-hero{background:var(--navy);color:#fff;padding:3rem 0 3.5rem;border-bottom:6px solid var(--gold)}
.page-hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.1rem,5vw,3.4rem);line-height:1.1;margin:0 0 1rem;max-width:48rem}
.page-hero .lede{margin-bottom:1.75rem}
.prose{max-width:46rem}
.prose h2{font-family:var(--serif);font-weight:400;font-size:1.7rem;margin:2.5rem 0 .75rem}
.prose p{margin:0 0 1.1rem}
.prose ul{padding-left:1.1rem}
.prose li{margin:.45rem 0}
.prose li::marker{color:var(--gold)}
.byline{font-size:.92rem;color:var(--muted);border-top:1px solid var(--rule);padding-top:1rem;margin-top:2.5rem}
.more{display:inline-block;margin-top:1.25rem;font-weight:600;text-decoration-color:var(--gold);text-underline-offset:3px}

.trust{background:var(--navy-deep);color:#C8D1E0;font-size:.92rem}
.trust .wrap{display:flex;flex-wrap:wrap;gap:.5rem 2rem;padding-top:.9rem;padding-bottom:.9rem}
.trust span::before{content:"";display:inline-block;width:.45rem;height:.45rem;background:var(--gold);margin-right:.55rem;vertical-align:middle}
.trust a{color:var(--gold-soft);text-underline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.guides{background:var(--wash)}
.lead fieldset{border:0;padding:0;margin:0 0 1.25rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.pick{display:block;cursor:pointer}
.pick input{position:absolute;opacity:0}
.pick span{display:block;height:100%;padding:1.1rem 1.2rem;border:1px solid var(--rule);background:var(--paper);color:var(--muted);font-size:.95rem}
.pick b{display:block;font-family:var(--serif);font-weight:400;font-size:1.12rem;color:var(--ink);margin-bottom:.3rem}
.pick input:checked+span{border:2px solid var(--gold);padding:calc(1.1rem - 1px) calc(1.2rem - 1px)}
.pick input:focus-visible+span{outline:3px solid var(--gold);outline-offset:2px}
.lead-row{display:flex;flex-wrap:wrap;gap:.75rem}
.lead-row input{flex:1 1 12rem;font:inherit;padding:.85rem 1rem;border:1px solid var(--rule);border-radius:3px;background:var(--paper);color:var(--ink)}
.lead-row .btn{cursor:pointer;font:inherit;font-weight:700}
.calc{border:1px solid var(--rule);border-bottom:6px solid var(--gold);padding:1.75rem;margin:0 0 1.5rem;background:var(--wash)}
.calc label{display:block;font-weight:600;margin-bottom:1rem}
.calc input{display:block;margin-top:.35rem;width:100%;max-width:18rem;font:inherit;padding:.7rem .9rem;border:1px solid var(--rule);border-radius:3px;background:var(--paper);color:var(--ink)}
.calc-out div{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--rule)}
.calc-out b{font-variant-numeric:tabular-nums}
.calc-out .total{border-bottom:0;font-size:1.2rem}
.calc-out .total b{font-family:var(--serif);font-weight:400;font-size:1.6rem;color:var(--gold)}
@media (max-width:820px){.lead fieldset{grid-template-columns:1fr}}

.pull{margin:1.75rem 0;padding:.25rem 0 .25rem 1.5rem;border-left:3px solid var(--gold);font-family:var(--serif);font-style:italic;font-size:1.35rem;line-height:1.5;color:var(--ink)}
.about-h3{font-family:var(--serif);font-weight:400;font-size:1.4rem;margin:2.25rem 0 .6rem}
