:root {
  --ink: #123c50;
  --ink-soft: #315869;
  --teal: #2f98a3;
  --teal-dark: #176978;
  --teal-pale: #e9f5f6;
  --sage: #a7bd85;
  --sage-pale: #f1f5e9;
  --gold: #b5955a;
  --ivory: #fbfaf6;
  --paper: #ffffff;
  --line: #d7e5e7;
  --shadow: 0 20px 55px rgba(18, 60, 80, .10);
  --serif: "Libre Baskerville", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --radius: 32px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--ivory); font-family: var(--sans); line-height: 1.65; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea { font: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 1rem; top: -6rem; z-index: 999; padding: .8rem 1rem; background: var(--ink); color: #fff; border-radius: 999px; }
.skip-link:focus { top: 1rem; }

.site-header { position: fixed; inset: 0 0 auto; z-index: 100; transition: .35s ease; }
.header-inner { width: min(1180px, calc(100% - 36px)); margin: 14px auto; padding: 10px 14px; display: flex; align-items: center; justify-content: space-between; border-radius: 22px; transition: .35s ease; }
.site-header.is-scrolled .header-inner { background: rgba(255,255,255,.88); box-shadow: 0 10px 35px rgba(18,60,80,.13); backdrop-filter: blur(18px); padding-block: 5px; }
.brand img { width: 180px; height: auto; mix-blend-mode: multiply; transition: .35s ease; }
.site-header.is-scrolled .brand img { width: 135px; }
.primary-nav { display: flex; align-items: center; gap: clamp(1rem,2vw,2rem); font-size: .82rem; font-weight: 700; }
.primary-nav a { text-decoration: none; position: relative; }
.primary-nav a:not(.nav-cta)::after { content: ""; position: absolute; left: 0; bottom: -.35rem; width: 0; height: 2px; background: var(--teal); transition: width .25s; }
.primary-nav a:hover::after { width: 100%; }
.nav-cta, .button { display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; text-decoration: none; font-weight: 700; border: 1px solid transparent; transition: .25s ease; }
.nav-cta { padding: .8rem 1.15rem; background: var(--teal-dark); color: #fff; }
.nav-cta:hover, .button-primary:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(23,105,120,.23); }
.menu-toggle { display: none; background: none; border: 0; width: 42px; height: 42px; }
.menu-toggle span:not(.sr-only) { display: block; height: 2px; width: 24px; margin: 5px auto; background: var(--ink); }

h1,h2,h3 { font-family: var(--serif); line-height: 1.15; font-weight: 400; margin: 0 0 1rem; }
h1 { font-size: clamp(2.2rem,4vw,4.6rem); letter-spacing: -.04em; }
h2 { font-size: clamp(2rem,4vw,4rem); letter-spacing: -.035em; }
h3 { font-size: clamp(1.2rem,2vw,1.75rem); }
p { margin: 0 0 1rem; }
.eyebrow { margin: 0 0 .65rem; color: var(--teal-dark); font-size: .76rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 800; }
.button { padding: 1rem 1.35rem; }
.button-primary { color: #fff; background: linear-gradient(135deg,var(--teal),var(--teal-dark)); }
.button-secondary { color: var(--teal-dark); border-color: var(--teal); background: #fff; }
.text-link { font-weight: 700; text-underline-offset: .35rem; }

.hero { min-height: 620px; display: grid; grid-template-columns: 1.06fr .94fr; align-items: stretch; background: radial-gradient(circle at 18% 35%, rgba(47,152,163,.12), transparent 31%), linear-gradient(125deg,#f8fcfd 0%,#fff 52%,#eef7f5 100%); overflow: hidden; }
.hero-copy { padding: 170px clamp(2rem,6vw,7rem) 80px; display: flex; flex-direction: column; justify-content: center; position: relative; z-index: 2; }
.hero-copy::after { content:""; position:absolute; width:420px; height:420px; border:1px solid rgba(47,152,163,.12); border-radius:50%; left:-170px; bottom:-100px; box-shadow:0 0 0 60px rgba(47,152,163,.035),0 0 0 120px rgba(47,152,163,.02); }
.hero-lead { font-size: clamp(1.1rem,1.6vw,1.38rem); color: var(--ink-soft); max-width: 42rem; }
.hero-actions { display:flex; gap:1.25rem; align-items:center; flex-wrap:wrap; margin-top:1.15rem; }
.hero-image { position: relative; min-height: 640px; overflow: hidden; border-radius: 0 0 0 80px; }
.hero-image img { width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.88) contrast(.98); }
.hero-image::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(255,255,255,.75),transparent 33%),linear-gradient(0deg,rgba(18,60,80,.08),transparent 45%); }
.focus-rings { position:absolute; width:360px; height:360px; right:-100px; bottom:-95px; border:1px solid rgba(255,255,255,.5); border-radius:50%; box-shadow:0 0 0 45px rgba(255,255,255,.12),0 0 0 90px rgba(255,255,255,.07); }

.realities { display:grid; grid-template-columns:1.1fr .9fr; align-items:stretch; background:#fff; }
.realities-image img { width:100%; height:100%; min-height:480px; object-fit:cover; }
.realities-copy { padding: clamp(3rem,7vw,7rem); display:flex; flex-direction:column; justify-content:center; position:relative; }
.realities-copy::before { content:""; position:absolute; left:-55px; top:42%; width:110px; height:110px; background:#fff; border-radius:50%; }
.realities-copy p { max-width:42rem; color:var(--ink-soft); }

.journey { position:relative; padding: 110px max(28px,6vw); background:linear-gradient(180deg,#f8fcfc 0%,#fff 55%,#f4faf9 100%); overflow:hidden; }
.section-intro { max-width:760px; margin-bottom:70px; }
.section-intro.centered { text-align:center; margin-inline:auto; }
.journey-line { position:absolute; left:50%; top:340px; bottom:120px; width:2px; background:linear-gradient(var(--teal),var(--sage),var(--teal)); opacity:.34; }
.journey-step { width:min(1120px,100%); margin:0 auto 70px; display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(2rem,6vw,6rem); align-items:center; position:relative; }
.journey-step::after { content:""; position:absolute; left:50%; top:50%; width:22px; height:22px; border-radius:50%; background:#fff; border:5px solid var(--teal-pale); box-shadow:0 0 0 2px var(--teal); transform:translate(-50%,-50%); }
.step-copy { padding: 1rem 2rem; }
.step-copy p:last-child { color:var(--ink-soft); }
.step-number { display:inline-grid; place-items:center; width:42px; height:42px; border-radius:50%; border:1px solid var(--gold); color:var(--gold); font-weight:800; margin-bottom:1rem; }
.step-image { border-radius: 34px; overflow:hidden; box-shadow:var(--shadow); min-height:260px; }
.step-image img { width:100%; height:100%; min-height:260px; object-fit:cover; }

.helps { padding: 90px max(24px,5vw); background:linear-gradient(130deg,#dff1f3,#f6fbfb 45%,#eef5e9); }
.role-grid { width:min(1180px,100%); margin:40px auto 0; display:grid; grid-template-columns:repeat(6,1fr); background:rgba(255,255,255,.78); border:1px solid rgba(47,152,163,.15); border-radius:28px; overflow:hidden; box-shadow:var(--shadow); }
.role { padding:28px 20px; text-align:center; border-right:1px solid var(--line); }
.role:last-child { border:0; }
.role span { display:inline-grid; place-items:center; width:52px; height:52px; border-radius:50%; background:var(--sage-pale); color:var(--teal-dark); font-size:1.5rem; margin-bottom:1rem; }
.role h3 { font-size:1rem; font-family:var(--sans); font-weight:800; }
.role p { color:var(--ink-soft); font-size:.88rem; }

.perspective-check { margin:90px auto; width:min(1180px,calc(100% - 40px)); display:grid; grid-template-columns:.9fr 1.25fr .5fr; align-items:center; gap:2.5rem; padding:30px; border-radius:var(--radius); background:linear-gradient(110deg,#eff8f9,#fff 60%,#f1f5e9); box-shadow:var(--shadow); }
.check-image { border-radius:24px; overflow:hidden; }
.check-image img { width:100%; min-height:280px; object-fit:cover; }
.check-copy ul { padding-left:1.2rem; }
.check-copy li::marker { color:var(--teal); }
.check-compass { width:170px; aspect-ratio:1; border-radius:50%; border:1px solid rgba(47,152,163,.4); display:grid; place-items:center; text-align:center; text-transform:uppercase; letter-spacing:.14em; font-size:.72rem; color:var(--teal-dark); background:radial-gradient(circle,#fff 0 26%,transparent 27%),conic-gradient(from 45deg,transparent 0 12%,rgba(47,152,163,.18) 13% 25%,transparent 26% 38%,rgba(167,189,133,.24) 39% 51%,transparent 52% 64%,rgba(47,152,163,.18) 65% 77%,transparent 78%); }

.faq { padding:90px max(24px,6vw); display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(3rem,7vw,8rem); background:#fff; }
.faq-list details { border-bottom:1px solid var(--line); padding:1rem 0; }
.faq-list summary { cursor:pointer; list-style:none; font-weight:800; padding-right:2rem; position:relative; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:"+"; position:absolute; right:0; top:0; font-size:1.35rem; color:var(--teal); }
.faq-list details[open] summary::after { content:"–"; }
.faq-list details p { color:var(--ink-soft); padding-top:.85rem; }

.booking { display:grid; grid-template-columns:1fr 1.05fr 1fr; align-items:stretch; background:linear-gradient(120deg,#eaf6f7,#fff 50%,#f5eee4); }
.booking-image img { width:100%; height:100%; min-height:360px; object-fit:cover; }
.booking-copy { padding:55px clamp(2rem,5vw,5rem); display:flex; flex-direction:column; justify-content:center; text-align:center; }
.booking-copy .button { align-self:center; }

.site-footer { padding:34px max(24px,5vw); background:var(--ink); color:#dcecee; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:2rem; }
.footer-brand img { width:150px; filter:brightness(0) invert(1); opacity:.9; }
.site-footer nav { display:flex; gap:1.5rem; flex-wrap:wrap; }
.site-footer a { text-decoration:none; }
.copyright { grid-column:1/-1; margin:0; font-size:.78rem; opacity:.65; text-align:center; }

.reveal { opacity:0; transform:translateY(24px); transition:opacity .8s ease,transform .8s ease; }
.reveal.is-visible { opacity:1; transform:none; }

@media (max-width: 980px) {
  .menu-toggle { display:block; z-index:102; }
  .primary-nav { position:fixed; top:78px; right:18px; width:min(340px,calc(100% - 36px)); display:flex; flex-direction:column; align-items:stretch; gap:0; padding:18px; border-radius:24px; background:rgba(255,255,255,.96); box-shadow:var(--shadow); transform:translateY(-18px); opacity:0; pointer-events:none; transition:.25s ease; }
  .primary-nav.is-open { transform:none; opacity:1; pointer-events:auto; }
  .primary-nav a { padding:13px 10px; }
  .hero { grid-template-columns:1fr; }
  .hero-copy { padding-top:145px; }
  .hero-image { min-height:520px; border-radius:0; }
  .realities { grid-template-columns:1fr; }
  .realities-copy::before { display:none; }
  .journey-line,.journey-step::after { display:none; }
  .journey-step { grid-template-columns:1fr; gap:1.4rem; margin-bottom:55px; }
  .journey-step-right .step-image { order:2; }
  .role-grid { grid-template-columns:repeat(3,1fr); }
  .role:nth-child(3) { border-right:0; }
  .perspective-check { grid-template-columns:1fr 1fr; }
  .check-compass { display:none; }
  .faq { grid-template-columns:1fr; }
  .booking { grid-template-columns:1fr 1fr; }
  .booking-copy { grid-column:1/-1; grid-row:1; }
  .site-footer { grid-template-columns:1fr; text-align:center; }
  .footer-brand img { margin:auto; }
  .site-footer nav { justify-content:center; }
}
@media (max-width: 640px) {
  h1 { font-size:2.55rem; }
  h2 { font-size:2.15rem; }
  .header-inner { width:calc(100% - 20px); margin:8px auto; }
  .brand img { width:145px; }
  .hero { min-height:auto; }
  .hero-copy { padding:125px 24px 50px; }
  .hero-image { min-height:430px; }
  .hero-actions { align-items:flex-start; flex-direction:column; }
  .realities-copy,.journey,.helps,.faq { padding-inline:24px; }
  .journey { padding-top:75px; }
  .step-copy { padding:0; }
  .step-image,.step-image img { min-height:210px; }
  .role-grid { grid-template-columns:1fr 1fr; }
  .role { border-bottom:1px solid var(--line); }
  .role:nth-child(even) { border-right:0; }
  .perspective-check { grid-template-columns:1fr; margin-block:55px; padding:20px; }
  .booking { grid-template-columns:1fr; }
  .booking-image-right { display:none; }
  .booking-image img { min-height:280px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
  .reveal { opacity:1; transform:none; }
}
