:root { --ink:#183438; --evergreen:#173a3a; --spruce:#234a48; --mist:#e7ebe6; --paper:#f7f6f1; --sand:#d9d3c5; --clay:#b96c4a; --line:rgba(24,52,56,.16); --serif: Georgia, 'Times New Roman', serif; --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.6; }
a { color:inherit; }
a:focus-visible { outline:3px solid var(--clay); outline-offset:4px; }
.shell { width:min(100% - 2.5rem, 1170px); margin-inline:auto; }
.skip-link { position:absolute; top:-5rem; left:1rem; z-index:10; padding:.7rem 1rem; background:var(--paper); color:var(--ink); }
.skip-link:focus { top:1rem; }
.site-header { position:absolute; inset:0 0 auto; z-index:2; color:#fff; padding:1.35rem 0; }
.nav-wrap,.footer-wrap { display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.wordmark { font-size:.86rem; font-weight:700; letter-spacing:.045em; text-decoration:none; text-transform:uppercase; line-height:1.2; }
.wordmark span { display:block; font-weight:400; }
nav { display:flex; align-items:center; gap:1.15rem; font-size:.84rem; }
nav a { color:rgba(255,255,255,.88); text-decoration:none; }
nav a:hover { color:#fff; }
.hero { overflow:hidden; min-height:695px; position:relative; color:#fff; background:var(--evergreen); }
.hero-grid { min-height:695px; display:grid; grid-template-columns:minmax(0,1fr); align-items:end; padding:8rem 0 4.5rem; }
.hero-copy { position:relative; z-index:1; max-width:650px; }
.eyebrow { margin:0 0 1.1rem; color:var(--clay); font-size:.72rem; font-weight:750; letter-spacing:.15em; text-transform:uppercase; }
.hero .eyebrow { color:#e5b69c; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:var(--serif); font-weight:400; line-height:1.04; letter-spacing:-.035em; }
h1 { max-width:620px; margin-bottom:1.5rem; font-size:clamp(3.25rem,8vw,6.7rem); }
h2 { margin-bottom:1.25rem; font-size:clamp(2.25rem,4.5vw,4.25rem); }
h3 { margin-bottom:.55rem; font-size:1.12rem; line-height:1.25; }
.lede { max-width:510px; margin-bottom:2rem; color:rgba(255,255,255,.82); font-size:1.08rem; }
.actions { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem 1.35rem; }
.button { display:inline-flex; align-items:center; gap:.8rem; min-height:48px; padding:.75rem 1.1rem; font-size:.88rem; font-weight:700; text-decoration:none; transition:transform .18s ease, background .18s ease; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:#f3f0e9; color:var(--ink); }
.button-quiet { color:#fff; }
.hero-landscape { position:absolute; inset:0; overflow:hidden; opacity:.85; background:radial-gradient(ellipse 60% 45% at 75% 18%,#315557 0%,transparent 70%),linear-gradient(155deg,#1d4242 0%,#173a3a 62%,#112d30 100%); }
.moon { position:absolute; top:17%; right:15%; width:58px; height:58px; border-radius:50%; background:#ece8d6; box-shadow:0 0 80px 20px rgba(239,231,193,.18); }
.aurora { position:absolute; width:75%; height:30%; border-radius:50%; filter:blur(22px); opacity:.34; transform:rotate(-19deg); background:linear-gradient(90deg,transparent 3%,#7eae8a 30%,#b1bb79 48%,#59878a 75%,transparent 98%); }
.aurora-one { top:8%; left:27%; }.aurora-two { top:18%; left:-18%; opacity:.18; transform:rotate(-13deg); }
.ridge { position:absolute; left:-8%; width:116%; clip-path:polygon(0 61%,12% 45%,22% 52%,33% 25%,44% 49%,55% 26%,66% 52%,75% 39%,86% 57%,100% 31%,100% 100%,0 100%); }
.ridge-back { bottom:10%; height:41%; background:#234a49; opacity:.8; }.ridge-front { bottom:-5%; height:38%; background:#102e31; }
.water { position:absolute; right:0; bottom:0; width:100%; height:20%; background:linear-gradient(170deg,rgba(79,129,125,.35),rgba(9,33,38,.83)); }
.cabin { position:absolute; bottom:13%; right:18%; width:105px; height:58px; background:#1b2928; box-shadow:0 7px 18px rgba(0,0,0,.2); }.cabin::before { content:""; position:absolute; left:-10px; top:-29px; border-left:62px solid transparent; border-right:62px solid transparent; border-bottom:31px solid #152322; }.cabin span { position:absolute; right:16px; bottom:11px; width:16px; height:25px; background:#d9a865; }
.section { padding:5.5rem 0; }
.split-heading { display:grid; gap:1.35rem; grid-template-columns:1fr; }.split-heading > .eyebrow { margin:0; }.split-heading > div { max-width:760px; }.split-heading p:not(.eyebrow) { max-width:680px; font-size:1.05rem; }
.solution { background:var(--mist); }.section-heading { max-width:760px; margin-bottom:2.5rem; }.section-heading.compact { max-width:680px; }
.journey { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:0; padding:0; list-style:none; border-top:1px solid var(--line); border-left:1px solid var(--line); }.journey li { min-height:185px; padding:1.25rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column; }.journey span,.feature-number { display:block; margin-bottom:auto; color:var(--clay); font-size:.72rem; font-weight:750; letter-spacing:.1em; }.journey strong { display:block; margin-bottom:.35rem; font-family:var(--serif); font-size:1.22rem; font-weight:400; line-height:1.2; }.journey small { color:#496064; font-size:.82rem; line-height:1.45; }
.feature-grid { display:grid; grid-template-columns:repeat(1,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); }.feature-grid article { min-height:195px; padding:1.5rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }.feature-grid p { margin:0; color:#526568; font-size:.91rem; line-height:1.55; }
.commission { background:#d8dbd4; }.commission-heading { max-width:740px; }.commission-heading > p:not(.eyebrow) { max-width:680px; font-size:1.05rem; }.commission-statement { max-width:900px; margin:2.75rem 0; padding:1.3rem 0 1.3rem 1.5rem; border-left:2px solid var(--clay); font-family:var(--serif); font-size:clamp(1.55rem,3vw,2.45rem); line-height:1.2; letter-spacing:-.02em; }.booking-comparison { border-top:1px solid var(--line); border-left:1px solid var(--line); }.booking-comparison table { width:100%; border-collapse:collapse; }.booking-comparison caption,.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; }.booking-comparison th,.booking-comparison td { padding:1.1rem 1.25rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }.booking-comparison thead th { color:var(--clay); font-size:.72rem; font-weight:750; letter-spacing:.1em; text-transform:uppercase; }.booking-comparison tbody th { width:24%; font-family:var(--serif); font-size:1.06rem; font-weight:400; line-height:1.3; }.booking-comparison td { width:38%; color:#496064; font-size:.88rem; line-height:1.5; }.commission-note { max-width:700px; margin:1.25rem 0 0; color:#496064; font-size:.82rem; line-height:1.5; }.savings-calculator { display:grid; gap:1.75rem; margin-top:3rem; padding:1.5rem; border:1px solid var(--line); background:var(--paper); }.savings-calculator .eyebrow { margin-bottom:.8rem; }.savings-calculator h3,.calculator-results h4 { margin-bottom:.55rem; font-family:var(--serif); font-weight:400; letter-spacing:-.02em; }.savings-calculator h3 { font-size:1.6rem; }.savings-calculator p:not(.eyebrow) { max-width:500px; margin-bottom:0; color:#526568; font-size:.9rem; }.calculator-form { border-top:1px solid var(--line); padding-top:1.5rem; }.calculator-fields { display:grid; gap:1.2rem; }.calculator-field { min-width:0; padding:0; border:0; margin:0; }.calculator-field label,.calculator-field legend { display:block; margin-bottom:.45rem; color:var(--ink); font-size:.82rem; font-weight:700; line-height:1.35; }.calculator-field input,.calculator-field select { width:100%; min-height:46px; padding:.6rem .7rem; border:1px solid var(--line); border-radius:0; background:#fffefa; color:var(--ink); font:inherit; font-size:.95rem; }.calculator-field input:focus-visible,.calculator-field select:focus-visible,.scenario-presets button:focus-visible,.operating-cost summary:focus-visible { outline:3px solid var(--clay); outline-offset:3px; }.calculator-percentage .range-control { display:grid; grid-template-columns:minmax(0,1fr) 76px; align-items:center; gap:.8rem; }.range-control input[type="range"] { min-height:auto; padding:0; accent-color:var(--clay); }.percentage-input { position:relative; display:block; }.percentage-input input { padding-right:1.7rem; }.percentage-input span { position:absolute; top:50%; right:.7rem; color:#496064; font-size:.86rem; pointer-events:none; transform:translateY(-50%); }.calculator-helper { max-width:none!important; margin:0 0 .9rem!important; color:#496064!important; font-size:.78rem!important; line-height:1.45; }.scenario-presets { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.45rem; margin:0 0 .85rem; }.scenario-presets button { min-height:42px; padding:.5rem .35rem; border:1px solid var(--line); border-radius:0; background:transparent; color:var(--ink); font:inherit; font-size:.72rem; font-weight:700; line-height:1.1; white-space:nowrap; cursor:pointer; }.scenario-presets button:hover,.scenario-presets button[aria-pressed="true"] { border-color:var(--clay); background:var(--clay); color:#fff; }.calculator-scenario-note { max-width:none!important; margin:.85rem 0 0!important; color:#496064!important; font-size:.78rem!important; line-height:1.45; }.calculator-assumption { padding:1rem; border-left:2px solid var(--clay); background:var(--mist); }.assumption-label { display:flex; justify-content:space-between; gap:1rem; margin:0 0 .5rem!important; color:var(--ink)!important; font-size:.84rem!important; font-weight:700; line-height:1.35; }.assumption-label strong { white-space:nowrap; }.calculator-assumption .calculator-helper { margin-bottom:0!important; }.operating-cost { margin-top:1.35rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.operating-cost summary { padding:1rem 0; cursor:pointer; color:var(--ink); font-size:.84rem; font-weight:700; }.operating-cost summary span { color:#496064; font-weight:400; }.operating-cost .calculator-field { padding:0 0 1.2rem; }.calculator-results { padding:1.5rem; background:var(--mist); border-left:2px solid var(--clay); }.calculator-results .eyebrow { margin-bottom:.55rem; }.calculator-results h4 { font-size:1.3rem; }.calculator-total { display:block; margin:.2rem 0 .15rem; color:var(--ink); font-family:var(--serif); font-size:clamp(2.75rem,7vw,4.6rem); line-height:1; letter-spacing:-.045em; }.calculator-result-basis { margin-bottom:1.25rem!important; font-size:.8rem!important; }.calculator-summary { margin-bottom:1.5rem!important; color:var(--ink)!important; font-size:.96rem!important; line-height:1.55; }.calculator-breakdown { display:grid; grid-template-columns:1fr; margin:0; border-top:1px solid var(--line); border-left:1px solid var(--line); }.calculator-breakdown div { display:flex; justify-content:space-between; gap:1rem; padding:.75rem .85rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }.calculator-breakdown dt,.calculator-breakdown dd { margin:0; font-size:.78rem; line-height:1.35; }.calculator-breakdown dt { color:#496064; }.calculator-breakdown dd { color:var(--ink); font-weight:700; text-align:right; }.calculator-disclaimer { margin-top:1.2rem!important; color:#496064!important; font-size:.76rem!important; line-height:1.45; }
.example { background:var(--spruce); color:#fff; }.example-card { display:grid; grid-template-columns:1fr; gap:2rem; }.example .eyebrow { color:#e5b69c; }.location { margin:0; color:rgba(255,255,255,.65); font-size:.92rem; }.example h2 { font-size:clamp(3.1rem,7vw,6rem); }.example p:not(.eyebrow):not(.location) { max-width:610px; color:rgba(255,255,255,.8); font-size:1.05rem; }.text-link { display:inline-flex; gap:.5rem; margin-top:.5rem; color:#fff; font-weight:700; text-decoration-color:#e5b69c; text-decoration-thickness:1px; text-underline-offset:5px; }
.audiences { border-bottom:1px solid var(--line); }.audience-list { display:grid; grid-template-columns:1fr 1fr; gap:0; padding:0; margin:2rem 0 0; list-style:none; }.audience-list li { padding:.9rem 0; border-bottom:1px solid var(--line); font-family:var(--serif); font-size:1.13rem; }.audience-list li:nth-last-child(-n+2) { border-bottom:0; }
.approach { background:#d8dbd4; }.approach-inner { max-width:830px; }.approach h2 { font-size:clamp(3.25rem,7vw,6.4rem); }.approach p:not(.eyebrow) { max-width:620px; font-size:1.1rem; }
.contact { background:var(--ink); color:#fff; }.contact-inner { max-width:780px; }.contact .eyebrow { color:#e5b69c; }.contact h2 { font-size:clamp(3rem,6vw,5.2rem); }.contact p:not(.eyebrow) { max-width:570px; color:rgba(255,255,255,.78); font-size:1.05rem; }.contact .button { margin-top:.8rem; }
.site-footer { padding:2.4rem 0; background:#102a2d; color:#fff; }.site-footer p { margin:.5rem 0 0; color:rgba(255,255,255,.55); font-size:.76rem; }.footer-links { display:flex; gap:1.2rem; }.footer-links a { color:rgba(255,255,255,.65); font-size:.78rem; text-decoration:none; }.footer-links a:hover { color:#fff; }
@media (max-width:699px) { .booking-comparison,.booking-comparison table,.booking-comparison tbody,.booking-comparison tr,.booking-comparison th,.booking-comparison td { display:block; }.booking-comparison thead { display:none; }.booking-comparison tr { border-right:1px solid var(--line); border-bottom:1px solid var(--line); }.booking-comparison tbody th,.booking-comparison td { width:auto; border:0; }.booking-comparison tbody th { padding-bottom:.25rem; }.booking-comparison td { padding-top:.45rem; }.booking-comparison td::before { display:block; margin-bottom:.2rem; color:var(--clay); content:attr(data-label); font-size:.68rem; font-weight:750; letter-spacing:.1em; text-transform:uppercase; } }
@media (max-width:480px) { nav a:not(:last-child) { display:none; }.nav-wrap { align-items:flex-start; }.site-header { padding-top:1rem; }.hero,.hero-grid { min-height:640px; }.hero-grid { padding-bottom:3.5rem; }.hero-landscape { opacity:.61; }.moon { right:11%; }.cabin { right:12%; transform:scale(.8); transform-origin:bottom right; }.journey li { min-height:165px; padding:1rem; }.footer-wrap { align-items:flex-start; }.footer-links { padding-top:.25rem; } }
@media (min-width:700px) { .shell { width:min(100% - 5rem,1170px); }.hero-grid { grid-template-columns:58% 42%; align-items:center; padding:7rem 0 2rem; }.hero-landscape { left:38%; }.hero-copy { padding-bottom:1.5rem; }.section { padding:7.5rem 0; }.split-heading { grid-template-columns:25% 1fr; gap:3rem; }.journey { grid-template-columns:repeat(3,minmax(0,1fr)); }.journey li { min-height:205px; padding:1.5rem; }.feature-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.feature-grid article { min-height:225px; padding:1.75rem; }.savings-calculator { grid-template-columns:minmax(0,1fr) minmax(280px,.8fr); align-items:start; padding:1.75rem; }.calculator-form { grid-column:1; }.calculator-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }.calculator-results { grid-column:2; grid-row:1 / span 2; }.example-card { grid-template-columns:26% 1fr; gap:4rem; }.audience-list { grid-template-columns:repeat(3,1fr); column-gap:2rem; }.audience-list li:nth-last-child(-n+2) { border-bottom:1px solid var(--line); }.audience-list li:nth-last-child(-n+3) { border-bottom:0; } }
@media (min-width:1000px) { .journey { grid-template-columns:repeat(6,minmax(0,1fr)); }.journey li { min-height:235px; }.feature-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }.feature-grid article { min-height:230px; }.example { padding:8.5rem 0; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.button { transition:none; } }
