:root {
  --ink: #263b3d;
  --deep: #435b5b;
  --deep-2: #324948;
  --teal: #677d78;
  --teal-2: #526b68;
  --gold: #b7a184;
  --cream: #fbfaf4;
  --warm: #f0eadf;
  --mint: #e6eee9;
  --line: #d9e1dc;
  --muted: #5c6f70;
  --soft: #f7f5ee;
  --white: #fff;
  --shadow: 0 18px 52px rgba(16,42,50,.10);
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --serif: Georgia, "Times New Roman", serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--sans); color: var(--ink); background: var(--cream); line-height: 1.58; letter-spacing: 0; }
a { color: var(--teal-2); text-decoration-thickness: 1px; text-underline-offset: 3px; }
img { max-width: 100%; height: auto; }
.skip-link { position:absolute; left:-999px; top:8px; background:var(--deep); color:#fff; padding:8px 12px; z-index:999; }
.skip-link:focus { left:8px; }
.site-header { position: sticky; top: 0; z-index: 100; background: rgba(251,250,245,.96); backdrop-filter: blur(14px); border-bottom: 1px solid var(--line); }
.utility { display:none; max-width: 1220px; margin: 0 auto; padding: 8px 24px; font-size: 13px; color: var(--muted); align-items:center; gap:18px; justify-content:flex-end; border-bottom:1px solid rgba(216,229,225,.6); }
.utility span { margin-right:auto; color:var(--deep); font-weight:700; }
.nav { max-width: 1220px; margin: 0 auto; min-height: 76px; padding: 12px 18px; display:flex; align-items:center; gap:14px; }
.brand { display:flex; align-items:center; gap:12px; color:var(--deep); text-decoration:none; min-width:0; }
.brand-mark { width:68px; height:68px; flex:0 0 auto; display:block; }
.brand span { display:flex; flex-direction:column; line-height:1.05; min-width:0; }
.brand strong { font-family:var(--serif); font-size:25px; line-height:.9; white-space:nowrap; }
.brand small { color:var(--teal); text-transform:uppercase; letter-spacing:.16em; font-weight:850; font-size:10px; margin-top:7px; }
.desktop-links { display:none; margin-left:auto; align-items:center; gap:18px; }
.desktop-links a { color:var(--deep); font-weight:750; text-decoration:none; font-size:14px; white-space:nowrap; }
.desktop-links a.active, .desktop-links a:hover { color:var(--teal-2); }
.nav-call { display:none; color:#fff; background:var(--deep); padding:11px 14px; border-radius:8px; font-weight:850; text-decoration:none; white-space:nowrap; }
.menu-button { margin-left:auto; width:44px; height:44px; border:1px solid var(--line); border-radius:999px; background:#fff; display:grid; place-content:center; gap:4px; }
.menu-button span { display:block; width:18px; height:2px; background:var(--deep); border-radius:999px; }
.mobile-menu { display:none; padding: 0 18px 18px; border-top:1px solid var(--line); }
.mobile-menu.open { display:grid; gap:8px; }
.mobile-menu a { padding:12px 10px; color:var(--deep); font-weight:800; text-decoration:none; border-bottom:1px solid rgba(216,229,225,.7); }
.mobile-menu .mobile-cta { background:var(--deep); color:#fff; text-align:center; border-radius:8px; border-bottom:0; margin-top:6px; }
.hero { max-width: 1220px; margin: 0 auto; padding: 34px 18px 48px; display:grid; gap:22px; }
.hero-copy { padding-top: 6px; }
.eyebrow { margin:0 0 12px; color:var(--gold); text-transform:uppercase; letter-spacing:.18em; font-weight:900; font-size:11px; }
.eyebrow.dark { color:var(--teal-2); }
h1, h2, h3 { margin:0; letter-spacing:0; }
h1 { font-family:var(--serif); font-size: clamp(42px, 10vw, 78px); line-height:.98; color:var(--deep-2); max-width:900px; }
.hero-text { font-size: clamp(18px, 3.7vw, 25px); color:var(--muted); max-width:760px; margin:20px 0 0; }
.hero-actions { display:flex; flex-direction:column; gap:10px; margin-top:24px; }
.hero-actions.centered { justify-content:center; }
.btn { display:inline-flex; align-items:center; justify-content:center; border-radius:8px; padding:15px 18px; min-height:54px; text-decoration:none; font-weight:900; border:2px solid transparent; text-align:center; }
.btn-primary { background:var(--deep); color:#fff; }
.btn-primary:hover { background:var(--deep-2); }
.btn-secondary { background:#fff; color:var(--deep); border-color:var(--line); }
.hero-panel { background:#fff; border:1px solid var(--line); border-radius:10px; padding:24px; box-shadow:var(--shadow); }
.panel-wordmark { display:flex; align-items:center; gap:14px; margin-bottom:18px; padding-bottom:13px; border-bottom:3px solid var(--gold); }
.panel-wordmark img { width:86px; height:86px; flex:0 0 auto; }
.panel-wordmark span { display:flex; flex-direction:column; line-height:1; }
.panel-wordmark strong { font-family:var(--serif); color:var(--deep-2); font-size:38px; line-height:.95; }
.panel-wordmark small { color:var(--teal); text-transform:uppercase; letter-spacing:.18em; font-weight:900; font-size:11px; margin-top:7px; }
.hero-panel h2 { font-family:var(--serif); color:var(--deep); font-size:30px; line-height:1.05; }
.hero-panel p { color:var(--muted); font-size:16px; margin:14px 0 0; }
.hero-cards { grid-template-columns:1fr !important; margin-top:20px; gap:10px !important; }
.hero-cards .card { padding:16px; box-shadow:none; background:var(--soft); }
.band { padding:56px 18px; background:var(--cream); }
.band.soft { background:var(--warm); }
.band > *, .feature-split > *, .cta > *, .notice > * { max-width:1120px; margin-left:auto; margin-right:auto; }
.section-head { text-align:left; margin-bottom:26px; }
.section-head h2, .feature-split h2, .cta h2, .notice h2 { font-family:var(--serif); color:var(--deep-2); font-size:clamp(32px, 6.8vw, 54px); line-height:1.02; max-width:900px; }
.section-head p { color:var(--muted); font-size:18px; max-width:830px; margin-top:14px; }
.card-grid { display:grid; grid-template-columns:1fr; gap:16px; }
.card { background:#fff; border:1px solid var(--line); border-radius:8px; padding:24px; box-shadow:0 6px 24px rgba(16,42,50,.06); min-width:0; display:flex; flex-direction:column; min-height:100%; }
.card h3 { color:var(--deep); font-size:22px; line-height:1.14; }
.card p { color:var(--muted); margin:12px 0 0; }
.card a { display:inline-block; margin-top:auto; padding-top:16px; font-weight:900; }
.map-layout { max-width:1120px; display:grid; gap:22px; align-items:start; }
.map-frame { position:relative; background:#fff; border:1px solid var(--line); border-radius:10px; overflow:hidden; box-shadow:0 12px 30px rgba(16,42,50,.08); display:block; }
.map-label { position:absolute; left:14px; top:14px; z-index:2; background:rgba(255,255,255,.94); color:var(--deep); border:1px solid var(--line); border-radius:999px; padding:7px 11px; font-size:12px; font-weight:900; box-shadow:0 8px 18px rgba(16,42,50,.08); }
.map-frame iframe { display:block; width:100%; height:340px; border:0; filter:saturate(.82) contrast(.95); }
.map-frame a { display:block; padding:12px 16px; background:var(--soft); color:var(--deep); font-weight:900; }
.map-copy { min-width:0; }
.map-copy h3 { font-family:var(--serif); color:var(--deep-2); font-size:clamp(28px, 5.6vw, 42px); line-height:1.02; }
.map-copy p:not(.eyebrow) { color:var(--muted); font-size:17px; }
.map-cards { margin-top:18px; }
.map-cards .card { padding:18px; box-shadow:none; }
.map-location-cloud { margin-top:24px; }
.location-cloud { display:flex; flex-wrap:wrap; gap:10px; max-width:1120px; }
.location-cloud a { background:#fff; border:1px solid var(--line); border-radius:999px; padding:10px 14px; color:var(--deep); font-weight:850; text-decoration:none; }
.location-cloud.large a { font-size:16px; padding:12px 16px; }
.feature-split { padding:62px 18px; display:grid; gap:24px; background:#fff; }
.feature-split h2 { margin-bottom:16px; }
.feature-split p { color:var(--muted); font-size:18px; }
.feature-split aside { background:var(--deep); color:#fff; border-radius:8px; padding:28px; }
.feature-split aside h3 { font-size:25px; margin-bottom:14px; color:#fff; }
.check-list { list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.check-list li { position:relative; padding-left:24px; color:rgba(255,255,255,.86); }
.check-list li::before { content:""; position:absolute; left:0; top:.65em; width:9px; height:9px; border-radius:50%; background:var(--gold); }
.notice { padding:34px 18px; background:var(--mint); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.notice h2 { font-size:34px; margin-bottom:10px; }
.notice p { color:var(--muted); font-size:17px; }
.cta { margin:0; padding:68px 18px; background:var(--deep); color:#fff; text-align:center; }
.cta h2 { color:#fff; }
.cta p:not(.eyebrow) { color:rgba(255,255,255,.78); font-size:18px; max-width:760px; }
.cta .btn-secondary { background:transparent; color:#fff; border-color:rgba(255,255,255,.35); }
.faq details { background:#fff; border:1px solid var(--line); border-radius:10px; padding:18px 20px; margin-bottom:12px; max-width:900px; }
.faq summary { cursor:pointer; color:var(--deep); font-weight:900; }
.faq details p { color:var(--muted); }
.article { max-width:900px; }
.article p { font-size:18px; color:var(--muted); }
.footer { background:var(--deep-2); color:rgba(255,255,255,.72); padding:46px 18px 96px; }
.footer-grid { max-width:1120px; margin:0 auto; display:grid; grid-template-columns:1fr; gap:26px; }
.footer h3, .footer h4 { color:#fff; }
.footer h3 { margin-top:0; font-size:24px; }
.footer-wordmark { font-family:var(--serif); font-size:30px !important; line-height:1; }
.footer h4 { text-transform:uppercase; letter-spacing:.14em; font-size:12px; margin-bottom:12px; }
.footer a, .footer span { display:block; color:rgba(255,255,255,.78); margin:7px 0; }
.footer-area-grid { display:grid; grid-template-columns:1fr; gap:14px; }
.footer-area-grid strong { display:block; color:#fff; font-size:13px; margin-bottom:5px; }
.footer p { color:rgba(255,255,255,.7); }
.fine { font-size:12px; color:rgba(255,255,255,.48) !important; }
.footer-bottom { max-width:1120px; margin:32px auto 0; padding-top:22px; border-top:1px solid rgba(255,255,255,.1); display:grid; gap:8px; font-size:12px; color:rgba(255,255,255,.48); }
.footer-bottom a { color:rgba(255,255,255,.68); }
.sticky-actions { position:fixed; bottom:0; left:0; right:0; background:#fff; border-top:1px solid var(--line); padding:10px; display:grid; grid-template-columns:1fr 1fr; gap:10px; z-index:120; box-shadow:0 -6px 28px rgba(16,42,50,.13); }
.sticky-actions a { min-height:48px; display:grid; place-items:center; border-radius:8px; font-weight:950; text-decoration:none; }
.sticky-actions a:first-child { background:var(--deep); color:#fff; }
.sticky-actions a:last-child { border:1px solid var(--line); color:var(--deep); }
@media (min-width:720px) {
  .utility { display:flex; }
  .hero-actions { flex-direction:row; }
  .hero-actions.centered { align-items:center; }
  .card-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .card-grid.three { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .card-grid.four { grid-template-columns:repeat(4, minmax(0, 1fr)); }
  .map-layout { grid-template-columns:minmax(0, .95fr) minmax(0, 1.05fr); }
  .map-frame iframe { height:420px; }
  .feature-split { grid-template-columns:minmax(0, 1.35fr) minmax(290px, .65fr); padding-left:32px; padding-right:32px; }
  .footer-grid { grid-template-columns:1.25fr .75fr 1fr 1fr; }
  .footer-area-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .footer-bottom { grid-template-columns:1fr 1fr; }
}
@media (min-width:1050px) {
  .nav { padding:12px 24px; }
  .desktop-links { display:flex; }
  .nav-call { display:inline-flex; }
  .menu-button { display:none; }
  .hero { grid-template-columns:minmax(0, 1.15fr) minmax(380px, .85fr); padding:64px 24px 78px; align-items:center; }
  .band { padding-left:24px; padding-right:24px; }
  .sticky-actions { display:none; }
  .footer { padding-bottom:48px; }
}
@media (max-width:420px) {
  .brand strong { font-size:23px; }
  .brand small { font-size:8px; }
  .brand-mark { width:54px; height:54px; }
  .panel-wordmark img { width:72px; height:72px; }
  .hero-panel { padding:20px; }
  .card { padding:20px; }
}