:root {
  --navy-deep: #0f1c28;
  --navy: #1a2b3c;
  --gold: #c4a962;
  --gold-soft: #d8c389;
  --cream: #f7f4ef;
  --warm-white: #faf8f5;
  --ink: #1a1a1a;
  --muted: #6b6560;
  --line: rgba(15, 28, 40, 0.14);
  --serif-display: "Abril Fatface", Georgia, serif;
  --serif-body: "Noto Serif", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --signature: "Old Standard TT", Georgia, serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--warm-white);
  font-family: var(--serif-body);
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.container { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 1000; background: var(--gold); padding: 12px 16px; font-family: var(--sans); }
.skip-link:focus { top: 16px; }

.site-header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 10;
  color: var(--warm-white);
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.site-header.is-scrolled { position: fixed; background: rgba(15,28,40,.96); backdrop-filter: blur(14px); }
.header-inner { height: 92px; display: flex; align-items: center; justify-content: space-between; }
.brand { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; }
.brand-mark { font: 400 36px/1 var(--serif-display); color: var(--gold); padding-right: 14px; border-right: 1px solid var(--gold); }
.brand-copy { display: grid; gap: 4px; font-family: var(--signature); text-transform: uppercase; letter-spacing: .16em; }
.brand-copy span { font-size: 9px; }
.brand-copy strong { font-size: 12px; font-weight: 400; }
.main-nav { display: flex; align-items: center; gap: 32px; font: 500 12px/1 var(--sans); text-transform: uppercase; letter-spacing: .13em; }
.main-nav a { text-decoration: none; position: relative; }
.main-nav a:not(.nav-cta)::after { content:""; position:absolute; left:0; bottom:-8px; width:100%; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:right; transition:transform .3s ease; }
.main-nav a:hover::after { transform:scaleX(1); transform-origin:left; }
.nav-cta { padding: 15px 18px; border: 1px solid var(--gold); transition: .25s ease; }
.nav-cta:hover { background: var(--gold); color: var(--navy-deep); }
.menu-toggle { display:none; background:none; border:0; padding:10px; }

.hero { min-height: 780px; position: relative; overflow: hidden; display: flex; align-items: center; color: var(--warm-white); background: var(--navy-deep); }
.hero::before { content:""; position:absolute; width:650px; height:650px; right:-180px; top:-190px; border:1px solid rgba(196,169,98,.14); transform:rotate(45deg); }
.hero-grid { position:absolute; inset:0; opacity:.24; background-image: linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size:80px 80px; mask-image: linear-gradient(to right, black, transparent 78%); }
.hero-layout { padding-top: 118px; display:grid; grid-template-columns: 1.2fr .8fr; gap: 110px; align-items:center; position:relative; z-index:1; }
.eyebrow { margin:0 0 28px; color:var(--gold); font:500 11px/1 var(--sans); letter-spacing:.28em; text-transform:uppercase; }
.eyebrow::before { content:""; display:inline-block; vertical-align:middle; width:34px; height:1px; background:currentColor; margin-right:14px; }
.eyebrow-dark { color: var(--muted); }
.hero h1 { margin:0; max-width:750px; font:400 clamp(58px,7vw,104px)/.93 var(--serif-display); letter-spacing:-.025em; }
.hero h1 em, .section-heading h2 em { font-style:italic; color:var(--gold); font-family:var(--serif-display); }
.hero-lead { max-width:650px; margin:34px 0; color:rgba(250,248,245,.78); font-size:18px; line-height:1.75; }
.hero-actions { display:flex; align-items:center; gap:30px; flex-wrap:wrap; }
.button { min-height:54px; padding:0 25px; border:1px solid transparent; display:inline-flex; align-items:center; justify-content:center; text-decoration:none; cursor:pointer; font:600 11px/1 var(--sans); text-transform:uppercase; letter-spacing:.17em; transition:all .25s ease; }
.button-gold { background:var(--gold); color:var(--navy-deep); }
.button-gold:hover { background:var(--gold-soft); transform:translateY(-2px); }
.text-link { color:var(--warm-white); font:500 13px/1 var(--sans); text-decoration:none; border-bottom:1px solid rgba(255,255,255,.25); padding-bottom:7px; }
.text-link span { color:var(--gold); margin-left:7px; }
.hero-panel { position:relative; min-height:520px; border:1px solid rgba(255,255,255,.13); background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012)); padding:28px; }
.hero-panel-top { position:relative; z-index:3; display:flex; justify-content:space-between; color:rgba(250,248,245,.42); font:500 8px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase; }
.hero-portrait { isolation:isolate; overflow:hidden; background:linear-gradient(145deg,#182a3a 0%,#0f1c28 72%); }
.hero-portrait::before { content:""; position:absolute; z-index:-1; inset:78px 36px 55px; border:1px solid rgba(196,169,98,.2); }
.portrait-halo { position:absolute; z-index:-1; width:390px; height:390px; top:70px; right:-50px; border-radius:50%; background:radial-gradient(circle,rgba(196,169,98,.22),rgba(196,169,98,0) 68%); }
.portrait-image { position:absolute; z-index:1; height:490px; width:auto; right:-28px; bottom:0; object-fit:contain; filter:drop-shadow(-18px 18px 28px rgba(0,0,0,.28)); }
.portrait-caption { position:absolute; z-index:2; left:28px; bottom:54px; max-width:190px; padding:18px 20px; color:var(--navy-deep); background:rgba(247,244,239,.96); box-shadow:0 16px 35px rgba(0,0,0,.18); }
.portrait-caption span { display:block; color:var(--gold); font:500 9px/1 var(--sans); letter-spacing:.2em; text-transform:uppercase; }
.portrait-caption strong { display:block; margin:7px 0 9px; font:400 27px/1 var(--serif-display); }
.portrait-caption small { display:block; color:var(--muted); font:500 8px/1.45 var(--sans); letter-spacing:.12em; text-transform:uppercase; }
.gold-rule { position:absolute; height:6px; background:var(--gold); left:28px; right:28px; bottom:28px; }

.ticker { overflow:hidden; background:var(--gold); color:var(--navy-deep); border-bottom:1px solid rgba(15,28,40,.22); }
.ticker-track { width:max-content; display:flex; align-items:center; gap:34px; padding:15px 0; animation:ticker 32s linear infinite; font:600 10px/1 var(--sans); letter-spacing:.2em; text-transform:uppercase; }
.ticker-track i { font-style:normal; }
@keyframes ticker { to { transform:translateX(-50%); } }

.section { padding:130px 0; }
.section-heading { max-width:900px; }
.section-heading h2, .method-title h2, .booking-copy h2 { margin:0; color:var(--navy-deep); font:400 clamp(42px,5.2vw,72px)/1.06 var(--serif-display); letter-spacing:-.015em; }
.intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:start; margin-top:75px; padding-top:42px; border-top:1px solid var(--line); }
.intro-copy { margin:0; font-size:18px; line-height:1.85; color:var(--muted); }
.facts { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.facts div { min-height:145px; padding:22px; border:1px solid var(--line); display:flex; flex-direction:column; justify-content:space-between; }
.facts strong { color:var(--gold); font:400 30px/1 var(--serif-display); }
.facts span { font:500 11px/1.4 var(--sans); letter-spacing:.08em; text-transform:uppercase; }

.section-dark { padding:125px 0; color:var(--warm-white); background:var(--navy-deep); }
.services-header { display:grid; grid-template-columns:.65fr 1.35fr; gap:80px; align-items:end; margin-bottom:65px; }
.services-header .eyebrow { align-self:start; }
.services-header h2 { margin:0; max-width:760px; font:400 clamp(40px,5vw,68px)/1.05 var(--serif-display); }
.service-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid rgba(255,255,255,.15); border-left:1px solid rgba(255,255,255,.15); }
.service-card { min-height:390px; padding:45px; border-right:1px solid rgba(255,255,255,.15); border-bottom:1px solid rgba(255,255,255,.15); transition:background .25s ease; }
.service-card:hover, .service-card.featured { background:var(--navy); }
.service-index { color:var(--gold); font:500 11px/1 var(--sans); letter-spacing:.15em; }
.service-card h3 { margin:60px 0 18px; font:400 31px/1.1 var(--serif-display); }
.service-card p { max-width:490px; color:rgba(250,248,245,.67); line-height:1.7; }
.service-card ul { list-style:none; margin:28px 0 0; padding:22px 0 0; border-top:1px solid rgba(255,255,255,.12); display:flex; gap:14px 24px; flex-wrap:wrap; color:rgba(250,248,245,.52); font:500 10px/1 var(--sans); letter-spacing:.09em; text-transform:uppercase; }
.service-card li::before { content:"—"; color:var(--gold); margin-right:7px; }

.method { background:var(--cream); }
.method-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:130px; }
.method-title { position:sticky; top:140px; align-self:start; }
.method-title > p:last-child { color:var(--muted); font-size:17px; line-height:1.8; margin:30px 0 0; max-width:500px; }
.steps { margin:0; padding:0; list-style:none; counter-reset:step; border-top:1px solid var(--line); }
.steps li { display:grid; grid-template-columns:80px 1fr; gap:35px; padding:42px 0; border-bottom:1px solid var(--line); }
.steps > li > span { color:var(--gold); font:400 36px/1 var(--serif-display); }
.steps h3 { margin:0 0 12px; color:var(--navy-deep); font:400 27px/1.15 var(--serif-display); }
.steps p { color:var(--muted); margin:0; line-height:1.7; }

.booking { color:var(--warm-white); background:var(--navy); }
.booking-layout { display:grid; grid-template-columns:.78fr 1.22fr; gap:90px; }
.booking-copy { align-self:start; position:sticky; top:130px; }
.booking-copy h2 { color:var(--warm-white); }
.booking-copy > p:nth-of-type(2) { color:rgba(250,248,245,.68); line-height:1.8; margin:28px 0; }
.platforms { display:flex; flex-wrap:wrap; gap:8px; }
.platforms span { padding:10px 12px; border:1px solid rgba(255,255,255,.15); color:rgba(250,248,245,.66); font:500 9px/1 var(--sans); text-transform:uppercase; letter-spacing:.12em; }
.booking-note { margin-top:55px; padding-top:28px; border-top:1px solid rgba(255,255,255,.14); display:flex; gap:17px; }
.booking-note > span { color:var(--gold); font-size:22px; }
.booking-note p { margin:0; color:rgba(250,248,245,.64); line-height:1.7; }
.booking-note strong { color:var(--warm-white); }
.booking-note a { color:var(--gold-soft); text-underline-offset:4px; }
.booking-form { background:var(--warm-white); color:var(--ink); padding:48px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.booking-form label { display:grid; gap:10px; margin-bottom:24px; }
.booking-form label > span, .booking-form legend { color:var(--muted); font:600 10px/1 var(--sans); text-transform:uppercase; letter-spacing:.12em; }
.booking-form input, .booking-form textarea, .booking-form select { width:100%; border:0; border-bottom:1px solid rgba(15,28,40,.28); border-radius:0; color:var(--ink); background:transparent; padding:12px 2px; outline:none; transition:border-color .2s ease; }
.booking-form textarea { resize:vertical; min-height:95px; }
.booking-form input:focus, .booking-form textarea:focus, .booking-form select:focus { border-color:var(--gold); }
.booking-form fieldset { margin:4px 0 29px; padding:0; border:0; }
.booking-form legend { margin-bottom:14px; }
.choice-grid { display:flex; gap:8px; flex-wrap:wrap; }
.choice-grid label { display:block; margin:0; cursor:pointer; }
.choice-grid input { position:absolute; opacity:0; width:1px; }
.choice-grid label span { display:block; padding:11px 12px; border:1px solid var(--line); font:500 10px/1 var(--sans); letter-spacing:.05em; text-transform:none; color:var(--ink); transition:.2s ease; }
.choice-grid input:checked + span { color:var(--warm-white); background:var(--navy-deep); border-color:var(--navy-deep); }
.choice-grid input:focus-visible + span { outline:2px solid var(--gold); outline-offset:2px; }
.privacy-check { display:grid !important; grid-template-columns:18px 1fr; align-items:start; gap:10px !important; }
.privacy-check input { margin-top:2px; accent-color:var(--navy-deep); }
.privacy-check span { font:400 11px/1.5 var(--sans) !important; text-transform:none !important; letter-spacing:0 !important; }
.privacy-check button { border:0; padding:0; color:inherit; background:none; text-decoration:underline; cursor:pointer; }
.submit-button { width:100%; justify-content:space-between; border:0; }
.submit-button:disabled { opacity:.65; cursor:wait; }
.form-footnote { margin:15px 0 0; color:var(--muted); font:400 10px/1.5 var(--sans); }
.honeypot { display:none !important; }

.contact-strip { padding:100px 0; color:var(--navy-deep); background:var(--gold); }
.contact-grid { display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:55px; align-items:end; }
.contact-grid .eyebrow { color:var(--navy-deep); margin-bottom:18px; }
.contact-grid h2 { margin:0; font:400 32px/1.1 var(--serif-display); }
.contact-grid > a { display:grid; gap:12px; min-height:82px; align-content:end; text-decoration:none; border-bottom:1px solid rgba(15,28,40,.35); padding-bottom:14px; }
.contact-grid small { font:600 9px/1 var(--sans); letter-spacing:.15em; text-transform:uppercase; opacity:.64; }
.contact-grid span { font-size:14px; line-height:1.45; overflow-wrap:anywhere; }
.site-footer { padding:35px 0; color:rgba(250,248,245,.55); background:var(--navy-deep); }
.footer-inner { display:flex; justify-content:space-between; align-items:center; gap:25px; }
.footer-inner p, .footer-inner button { font:400 10px/1 var(--sans); letter-spacing:.08em; }
.footer-policies { display:flex; align-items:center; gap:16px; }
.footer-inner button { background:none; border:0; color:inherit; text-decoration:underline; cursor:pointer; }
.brand-light { color:var(--warm-white); }
.brand-light .brand-mark { font-size:28px; }
.mobile-call { display:none; }

.privacy-dialog { width:min(680px,calc(100% - 32px)); padding:0; color:var(--ink); background:var(--warm-white); border:0; box-shadow:0 30px 90px rgba(0,0,0,.35); }
.privacy-dialog::backdrop { background:rgba(15,28,40,.78); backdrop-filter:blur(5px); }
.dialog-header { display:flex; align-items:center; justify-content:space-between; padding:25px 30px; color:var(--warm-white); background:var(--navy-deep); }
.dialog-header h2 { margin:0; font:400 27px/1 var(--serif-display); }
.dialog-header button { border:0; color:var(--gold); background:none; font:300 32px/1 var(--sans); cursor:pointer; }
.dialog-body { max-height:70vh; overflow:auto; padding:30px; font-size:13px; line-height:1.7; }
.dialog-body a { color:inherit; text-underline-offset:3px; }
.dialog-note { padding:14px; background:var(--cream); border-left:3px solid var(--gold); }

.reveal { opacity:0; transform:translateY(24px); transition:opacity .75s ease,transform .75s ease; }
.reveal-delay { transition-delay:.15s; }
.reveal.is-visible { opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .ticker-track { animation:none; }
  .reveal { opacity:1; transform:none; transition:none; }
}

@media (max-width: 980px) {
  .container { width:min(100% - 36px,760px); }
  .header-inner { height:78px; }
  .menu-toggle { display:grid; gap:7px; position:relative; z-index:12; }
  .menu-toggle span:not(.sr-only) { display:block; width:26px; height:1px; background:var(--warm-white); transition:.25s; }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { transform:translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-4px) rotate(-45deg); }
  .main-nav { position:fixed; inset:0; z-index:11; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:28px; padding:90px 11vw; background:var(--navy-deep); transform:translateX(100%); transition:transform .35s ease; font-size:16px; }
  .main-nav.is-open { transform:none; }
  .nav-cta { margin-top:10px; }
  .hero { min-height:auto; padding:108px 0 80px; }
  .hero-layout, .intro-grid, .services-header, .method-layout, .booking-layout { grid-template-columns:1fr; gap:60px; }
  .hero-layout { padding-top:0; }
  .hero-panel { min-height:460px; width:min(560px,100%); margin:0 auto; }
  .portrait-image { height:440px; right:2%; }
  .section, .section-dark { padding:95px 0; }
  .intro-grid { margin-top:55px; }
  .services-header { gap:20px; }
  .method-title, .booking-copy { position:static; }
  .contact-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 640px) {
  .container { width:calc(100% - 32px); }
  .brand-mark { font-size:29px; }
  .brand-copy span { font-size:8px; }
  .brand-copy strong { font-size:10px; }
  .hero { padding-top:104px; }
  .hero h1 { font-size:54px; }
  .hero-lead { font-size:16px; }
  .hero-actions { align-items:flex-start; flex-direction:column; }
  .hero-panel { min-height:390px; padding:18px; }
  .hero-portrait::before { inset:58px 18px 38px; }
  .portrait-halo { width:300px; height:300px; top:60px; right:-65px; }
  .portrait-image { height:360px; right:-22px; }
  .portrait-caption { left:18px; bottom:45px; max-width:160px; padding:14px 15px; }
  .portrait-caption strong { font-size:23px; }
  .gold-rule { left:18px; right:18px; bottom:18px; }
  .section, .section-dark { padding:78px 0; }
  .section-heading h2, .method-title h2, .booking-copy h2 { font-size:43px; }
  .intro-grid { margin-top:40px; padding-top:30px; gap:40px; }
  .facts { grid-template-columns:1fr; }
  .facts div { min-height:105px; }
  .service-grid { grid-template-columns:1fr; }
  .service-card { min-height:340px; padding:32px; }
  .service-card h3 { margin-top:42px; }
  .steps li { grid-template-columns:50px 1fr; gap:18px; }
  .booking-layout { gap:45px; }
  .booking-form { padding:27px 22px; margin:0 -4px; }
  .form-row { grid-template-columns:1fr; gap:0; }
  .contact-grid { grid-template-columns:1fr; gap:38px; }
  .contact-grid > a { min-height:auto; }
  .footer-inner { flex-direction:column; text-align:center; }
  .footer-policies { flex-wrap:wrap; justify-content:center; }
  .mobile-call { position:fixed; z-index:8; left:14px; right:14px; bottom:14px; min-height:52px; display:flex; align-items:center; justify-content:space-between; padding:0 20px; color:var(--navy-deep); background:var(--gold); box-shadow:0 8px 30px rgba(0,0,0,.22); text-decoration:none; font:600 11px/1 var(--sans); letter-spacing:.13em; text-transform:uppercase; transform:translateY(90px); transition:transform .3s ease; }
  .mobile-call.is-visible { transform:none; }
  .site-footer { padding-bottom:90px; }
}
