@charset "UTF-8";
:root {
  --ink:#22292d; --graphite:#353e43; --paper:#f6f7f3; --ground:#e9edeb;
  --white:#fff; --copper:#a65230; --copper-light:#efb68e; --muted:#586268;
  --line:#22292d28; --metal:linear-gradient(115deg,#b96a41,#f0b990 40%,#c77b51 70%,#e9aa7f);
  --pad:clamp(22px,5vw,84px); --header:92px; --radius:3px;
  color-scheme:light;
}
* { box-sizing:border-box }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--header) + 24px) }
body { margin:0; background:var(--ground); color:var(--ink); font:16px/1.6 "Helvetica Neue",Arial,sans-serif; -webkit-font-smoothing:antialiased }
body.dialog-open,body.menu-open { overflow:hidden }
main,section,article,div { min-width:0 }
h1,h2,h3,h4,p,figure { margin:0 }
h1,h2,h3,h4 { line-height:1.08; letter-spacing:-.045em; font-weight:750 }
h1 { font-size:clamp(48px,7.1vw,112px) }
h2 { font-size:clamp(36px,4.5vw,72px) }
h3 { font-size:27px }
em { font-family:Georgia,"Times New Roman",serif; font-weight:400 }
a { color:inherit; text-decoration:none }
button,input,select,textarea { font:inherit }
button,a,summary { -webkit-tap-highlight-color:transparent; touch-action:manipulation }
button { cursor:pointer }
button:disabled { cursor:default; opacity:.65 }
img { display:block; max-width:100%; height:auto }
button,fieldset { border:0 }
fieldset { margin:0; padding:0 }
[hidden] { display:none!important }
:focus-visible { outline:3px solid var(--copper); outline-offset:5px }
.wrap { width:100%; max-width:1560px; padding-inline:var(--pad); margin-inline:auto }
.section { padding-block:104px }
.eyebrow { font-size:12px; line-height:1.5; font-weight:700; text-transform:uppercase; letter-spacing:.16em; color:var(--copper) }
.micro { font-size:13px; line-height:1.65; color:var(--muted) }
.skip { position:fixed; z-index:120; top:8px; left:12px; padding:12px 20px; background:white; transform:translateY(-160%) }
.skip:focus { transform:none }
.button { display:inline-flex; align-items:center; justify-content:center; gap:18px; min-height:54px; padding:14px 25px; border:1px solid transparent; border-radius:var(--radius); background:var(--ink); color:white; font-size:14px; font-weight:700; line-height:1.5; transition:background .2s,transform .2s }
.button:hover { background:#45525a; transform:translateY(-2px) }
.button .arrow { font-size:22px; font-weight:400; line-height:1 }
.button-copper { background:var(--metal); color:var(--ink) }
.button-copper:hover { background:#efb68e }
.button-outline { background:transparent; border-color:var(--line); color:var(--ink) }
.button-outline:hover { background:white }
.button-light { background:var(--paper); color:var(--ink) }
.button-light:hover { background:white }
.text-link { display:inline-flex; align-items:center; gap:15px; padding-block:10px; border-bottom:1px solid currentColor; font-size:14px; font-weight:700 }
.text-link:hover { color:var(--copper) }
.site-header { position:sticky; top:0; z-index:80; background:#fafbf8f5; backdrop-filter:blur(14px); border-bottom:1px solid var(--line) }
.head-inner { display:flex; align-items:center; justify-content:space-between; gap:25px; min-height:var(--header) }
.brand { width:230px; height:76px; overflow:hidden; display:flex; align-items:center; justify-content:center; flex-shrink:0; background:#fff }
.brand img { width:238px; height:auto; max-width:none }
.desktop-nav { display:flex; align-items:center; gap:clamp(18px,2.2vw,34px); font-size:13px; font-weight:600 }
.desktop-nav a { padding:12px 0; border-bottom:1px solid transparent; white-space:nowrap }
.desktop-nav a:hover { border-color:var(--copper); color:var(--copper) }
.header-actions { display:flex; align-items:center; gap:18px }
.header-cta { font-size:13px; min-height:48px; padding:12px 21px }
.menu-toggle { display:none; width:48px; height:48px; padding:12px; background:transparent; color:var(--ink) }
.menu-toggle span { display:block; height:2px; margin:6px 0; background:currentColor; transition:transform .2s }
.menu-toggle[aria-expanded=true] span:first-child { transform:translateY(4px) rotate(45deg) }
.menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-4px) rotate(-45deg) }
.mobile-nav { position:absolute; top:100%; left:0; right:0; background:var(--paper); padding:25px var(--pad) 35px; box-shadow:0 20px 30px #0002; max-height:calc(100dvh - var(--header)); overflow:auto }
.mobile-nav a { display:block; padding:16px 0; border-bottom:1px solid var(--line); font-size:20px; font-weight:650 }
.scroll-line { height:2px; position:absolute; bottom:-1px; inset-inline:0; pointer-events:none }
.scroll-line span { display:block; height:100%; transform:scaleX(0); transform-origin:left; background:var(--metal) }
.hero { position:relative; isolation:isolate; color:white; background:var(--ink); overflow:hidden }
.hero-image { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:65% center }
.hero::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#10222ce6 0%,#12283280 51%,#10232b05 85%),linear-gradient(0deg,#0b222b55,transparent 45%) }
.hero-inner { min-height:650px; min-height:clamp(570px,70svh,840px); display:grid; grid-template-columns:1.45fr 1fr; align-items:center; gap:45px; padding-block:85px 105px }
.hero .eyebrow { color:#ffcfab; margin-bottom:30px }
.hero h1 { line-height:.99; letter-spacing:-.06em; text-wrap:balance }
.hero h1 em { display:block; color:#ffd0ad; margin-top:9px }
.hero-copy { max-width:465px; font-size:18px; line-height:1.65; color:#f1f5f4; margin-top:30px }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:18px 27px; margin-top:32px }
.hero-actions .text-link { color:white; font-size:14px }
.hero-stamp { justify-self:end; align-self:end; color:white; border:1px solid #ffffff80; padding:18px 22px; backdrop-filter:blur(7px); background:#102c3440; margin-bottom:14px; transform:rotate(-5deg) }
.hero-stamp small { display:block; text-transform:uppercase; font-size:10px; letter-spacing:.18em }
.hero-stamp strong { display:block; font-size:26px; font-family:Georgia,serif; font-weight:400; line-height:1.18; margin-top:10px }
.hero-credit { position:absolute; right:var(--pad); bottom:20px; font-size:11px; color:#fff; text-shadow:0 1px 5px #000 }
.planner-shell { position:relative; z-index:2; margin-top:-43px }
.quick-planner { display:grid; grid-template-columns:1.25fr 1fr 1fr .75fr auto; background:var(--white); border:1px solid var(--line); box-shadow:0 16px 36px #22292d12; padding:24px; gap:0 }
.quick-planner label { min-width:0; display:block; padding:0 20px; border-right:1px solid var(--line); font-size:11px; font-weight:700; color:var(--copper); letter-spacing:.1em; text-transform:uppercase }
.quick-planner label:first-child { padding-left:0 }
.quick-planner input,.quick-planner select { width:100%; display:block; color:var(--ink); background:white; border:0; padding:8px 0 0; min-height:34px; font-size:15px; font-weight:600; letter-spacing:0; text-transform:none; border-radius:0 }
.quick-planner .button { margin-left:24px; align-self:center }
.planner-note { margin-top:12px; display:flex; justify-content:space-between; gap:20px; font-size:12px; color:var(--muted) }
.planner-note a { text-decoration:underline; text-underline-offset:4px }
.intro { display:grid; grid-template-columns:1.2fr 1fr; gap:9vw; padding-block:92px 72px; align-items:end }
.intro h2 { margin-top:23px; font-size:clamp(36px,4.7vw,72px) }
.intro h2 em { color:var(--copper) }
.intro-copy p { font-size:18px; line-height:1.75; max-width:490px }
.intro-copy>p+p { margin-top:18px; font-size:14px; color:var(--muted) }
.benefit-strip { display:grid; grid-template-columns:repeat(4,1fr); padding-block:22px; border-block:1px solid var(--line); gap:25px }
.benefit-strip>div { display:flex; align-items:center; gap:13px; font-size:14px; font-weight:600 }
.icon { width:27px; height:27px; flex-shrink:0; stroke:currentColor; fill:none; stroke-width:1.45; stroke-linecap:round; stroke-linejoin:round; color:var(--copper) }
.section-heading { display:grid; grid-template-columns:1.1fr 1fr; gap:70px; align-items:end; margin-bottom:38px }
.section-heading h2 { margin-top:20px }
.section-heading h2 em { color:var(--copper) }
.section-heading>p { max-width:400px; justify-self:end; font-size:16px; color:var(--muted) }
.fleet-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; padding-bottom:26px }
.filters { display:flex; gap:7px; flex-wrap:wrap }
.filter { color:var(--muted); border:1px solid var(--line); background:transparent; padding:9px 17px; min-height:43px; font-size:13px; font-weight:600; border-radius:2px }
.filter:hover { border-color:var(--ink) }
.filter.active { background:var(--ink); color:white; border-color:var(--ink) }
.compare-button { display:flex; align-items:center; gap:10px; color:var(--ink); background:none; border-bottom:1px solid var(--line); padding:10px 0; min-height:43px; font-size:13px; font-weight:600 }
.compare-button .icon { width:19px; height:19px }
.fleet-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:45px 32px }
.camper-card { border:1px solid var(--line); background:var(--paper); overflow:hidden; transition:border-color .25s }
.camper-card:hover { border-color:#9caaa9 }
.card-image { display:block; position:relative; overflow:hidden }
.card-image img { width:100%; aspect-ratio:1.65; object-fit:cover; transition:transform .7s; object-position:center 53% }
.camper-card:hover .card-image img { transform:scale(1.025) }
.card-type { position:absolute; top:17px; left:17px; background:#f6f7f3f2; color:var(--ink); padding:6px 11px; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.1em }
.card-number { position:absolute; top:17px; right:18px; color:#fff; text-shadow:0 1px 7px #000; font-size:13px; letter-spacing:.1em }
.card-body { padding:26px 28px 24px }
.card-heading { display:flex; justify-content:space-between; gap:20px; align-items:start }
.card-heading h3 { font-size:42px; font-weight:700 }
.card-heading p { margin-top:7px; font-size:13px; color:var(--muted) }
.card-price { font-size:29px; line-height:1.1; font-weight:700; text-align:right; white-space:nowrap }
.card-price>span { font-size:12px; font-weight:400 }
.card-price small { display:block; margin-top:7px; font-size:11px; font-weight:400; color:var(--muted) }
.card-tagline { font-size:15px; margin-top:18px; font-family:Georgia,serif; color:var(--copper) }
.card-spec { display:flex; flex-wrap:wrap; gap:10px 17px; margin-top:20px; font-size:12px; color:var(--muted) }
.card-spec span+span { border-left:1px solid var(--line); padding-left:17px }
.card-bottom { display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid var(--line); padding-top:18px; margin-top:20px }
.card-bottom>a { font-size:13px; font-weight:700; min-height:30px; display:inline-flex; align-items:center }
.card-bottom>a:hover { color:var(--copper) }
.card-bottom>a:first-child { gap:20px }
.card-bottom>a:last-child { font-size:12px; color:var(--copper) }
.fleet-note { display:flex; justify-content:space-between; gap:25px; margin-top:24px }
.fleet-count { font-size:12px; color:var(--muted); margin-bottom:0 }
.included { background:var(--paper); border-block:1px solid var(--line) }
.included-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); margin-top:48px }
.included-item { padding:30px 25px 0; border-right:1px solid var(--line) }
.included-item:first-child { padding-left:0 }
.included-item:last-child { border:0 }
.included-item .icon { width:31px; height:31px; margin-bottom:25px }
.included-item h3 { font-size:22px; letter-spacing:-.03em }
.included-item p { margin-top:14px; font-size:14px; line-height:1.7; color:var(--muted) }
.included-item strong { color:var(--ink) }
.inside { display:grid; grid-template-columns:1fr 1fr; gap:9vw; align-items:center }
.inside-photos { display:grid; grid-template-columns:1fr .68fr; align-items:center; gap:18px }
.inside-photos figure { position:relative }
.inside-crop { overflow:hidden; background:var(--graphite); aspect-ratio:3/4 }
.inside-crop img { width:100%; height:100%; object-fit:cover; object-position:center top }
.inside-crop.poster img { width:100%; height:auto; min-height:125%; object-fit:cover }
.inside-photos>figure:last-child { margin-top:78px }
.inside-photos figcaption { margin-top:10px; color:var(--muted); font-size:11px }
.inside-copy h2 { margin-top:24px }
.inside-copy h2 em { color:var(--copper) }
.inside-copy>p:not(.eyebrow) { margin-top:27px; font-size:16px; color:var(--muted) }
.inside-copy .text-link { margin-top:25px }
.shorttrip { background:var(--ink); color:var(--paper); position:relative; overflow:hidden }
.shorttrip-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:8vw; padding-block:83px; align-items:center }
.shorttrip .eyebrow { color:var(--copper-light) }
.shorttrip h2 { margin-top:26px; font-size:clamp(46px,5.5vw,86px) }
.shorttrip h2 em { color:var(--copper-light) }
.shorttrip-copy>p:last-child { max-width:410px; margin-top:28px; color:#d6dddd; font-size:17px }
.shorttrip-prices { border-top:1px solid #ffffff35; padding-top:25px }
.shorttrip-prices>div { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:22px 0; border-bottom:1px solid #ffffff35 }
.shorttrip-prices span { font-size:15px }
.shorttrip-prices strong { font-size:36px; letter-spacing:-.04em; white-space:nowrap }
.shorttrip-prices strong small { font-size:15px; font-weight:400 }
.shorttrip-prices .button { margin-top:26px }
.shorttrip-prices .micro { color:#c3cecf; margin-top:17px; max-width:390px }
.travel-tabs { display:flex; gap:20px; border-bottom:1px solid var(--line); margin-bottom:35px }
.travel-tabs button { background:none; color:var(--muted); border-bottom:3px solid transparent; padding:14px 3px; font-size:14px; font-weight:600; min-height:48px }
.travel-tabs button[aria-selected=true] { border-color:var(--copper); color:var(--ink) }
.travel-panel { display:grid; grid-template-columns:1.15fr .85fr; min-height:420px; background:var(--graphite); color:white }
.travel-photo { position:relative; overflow:hidden }
.travel-photo>img { width:100%; height:100%; min-height:420px; object-fit:cover }
.travel-photo>span { position:absolute; bottom:15px; left:20px; color:white; font-size:11px; text-shadow:0 1px 5px #000 }
.travel-copy { padding:48px; display:flex; flex-direction:column; align-items:start; justify-content:center }
.travel-copy .eyebrow { color:var(--copper-light) }
.travel-copy h3 { font-size:clamp(34px,3.6vw,53px); margin-top:23px }
.travel-copy>p:not(.eyebrow) { color:#d4dfe1; font-size:15px; margin-top:22px }
.travel-copy .text-link { margin-top:28px; color:var(--copper-light) }
.process { background:var(--paper); border-top:1px solid var(--line) }
.process-steps { display:grid; grid-template-columns:repeat(4,1fr); list-style:none; padding:0; margin:52px 0 0; border-top:1px solid var(--line) }
.process-steps li { padding:28px 23px 0; border-right:1px solid var(--line) }
.process-steps li:first-child { padding-left:0 }
.process-steps li:last-child { border:0 }
.process-steps li>span { color:var(--copper); font-size:13px; font-weight:700 }
.process-steps h3 { margin-top:27px; font-size:22px }
.process-steps p { margin-top:17px; color:var(--muted); font-size:14px }
.location { display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:center }
.location-copy h2 { margin-top:23px }
.location-copy h2 em { color:var(--copper) }
.location-copy>p:not(.eyebrow) { margin-top:26px; color:var(--muted); font-size:16px; max-width:460px }
.location-copy>.text-link { margin-top:23px }
.location-panel { position:relative; min-height:345px; background:#d9dfdb; padding:42px; border:1px solid #b0bdb8; display:flex; flex-direction:column; align-items:start; justify-content:center; overflow:hidden }
.location-panel::before { content:""; position:absolute; width:360px; height:360px; border-radius:50%; border:1px solid #a6b3ab; right:-160px; top:-70px; box-shadow:0 0 0 50px #c5d0c880,0 0 0 100px #c5d0c840; pointer-events:none }
.location-panel>* { position:relative }
.location-panel .icon { width:38px; height:38px; margin-bottom:24px }
.location-panel h3 { font-size:31px; max-width:340px }
.location-panel p { max-width:325px; margin-top:17px; font-size:14px }
.location-panel>span { font-size:10px; text-transform:uppercase; letter-spacing:.12em; margin-top:30px; color:#45564e }
.future { background:#dce1df; padding-block:46px; border-block:1px solid var(--line) }
.future-inner { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:30px }
.future-mark { width:65px; height:65px; border:1px solid #8c9993; display:grid; place-items:center; border-radius:50%; color:var(--copper) }
.future-mark .icon { width:30px; height:30px }
.future h2 { font-size:27px; margin-top:10px; letter-spacing:-.025em; line-height:1.25 }
.future .eyebrow { font-size:10px }
.faq { display:grid; grid-template-columns:.85fr 1.15fr; gap:9vw }
.faq-intro h2 { margin-top:24px }
.faq-intro h2 em { color:var(--copper) }
.faq-intro>p:last-child { margin-top:25px; color:var(--muted); max-width:320px }
.faq-list { border-top:1px solid var(--line) }
.faq-list details { border-bottom:1px solid var(--line) }
.faq-list summary { list-style:none; padding:24px 0; display:flex; justify-content:space-between; align-items:start; gap:28px; font-size:17px; font-weight:600; line-height:1.45; cursor:pointer }
.faq-list summary::-webkit-details-marker { display:none }
.faq-list summary::after { content:"+"; font-weight:400; color:var(--copper); font-size:25px; line-height:1; flex-shrink:0 }
.faq-list details[open] summary::after { content:"−" }
.faq-list details>p { margin:0 35px 25px 0; color:var(--muted); font-size:14px; line-height:1.8 }
.inquiry { background:var(--graphite); color:white; padding-block:92px }
.inquiry-grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:8vw; align-items:start }
.inquiry .eyebrow { color:var(--copper-light) }
.inquiry h2 { margin-top:25px; font-size:clamp(42px,4.5vw,70px) }
.inquiry h2 em { color:var(--copper-light) }
.inquiry-intro>p:not(.eyebrow) { color:#d5dee1; font-size:16px; margin-top:25px; max-width:335px }
.contact-links { display:grid; gap:10px; margin-top:38px; justify-items:start }
.contact-links>a:first-child { font-size:30px; font-weight:650; letter-spacing:-.025em; line-height:1.4 }
.contact-links>a:nth-child(2) { font-size:13px; color:#e0e7e8; border-bottom:1px solid #ffffff50 }
.contact-links>span { color:#c5d0d3; font-size:12px }
.form-fields { display:grid; grid-template-columns:1fr 1fr; gap:21px 20px }
.form-fields label { display:block; font-size:11px; font-weight:650; text-transform:uppercase; letter-spacing:.08em; color:#fff }
.form-fields label>input,.form-fields label>select,.form-fields label>textarea { display:block; margin-top:8px; width:100%; min-height:52px; padding:13px 14px; border:1px solid #9daaaf; border-radius:2px; background:#f9faf7; color:var(--ink); font-size:15px; font-weight:400; letter-spacing:0; text-transform:none; color-scheme:light }
.form-fields label>textarea { min-height:94px; resize:vertical }
.form-fields .full { grid-column:1/-1 }
.form-fields input:focus,.form-fields select:focus,.form-fields textarea:focus { outline:2px solid var(--copper-light); outline-offset:2px }
.form-fields input::placeholder,.form-fields textarea::placeholder { color:#596368; opacity:1 }
.form-note { margin-top:17px; font-size:12px; color:#d4dee0 }
.form-note a { text-decoration:underline; text-underline-offset:3px }
.form-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:24px }
.form-actions .button-outline { color:white; border-color:#b7c4c8 }
.form-actions .button-outline:hover { background:#ffffff15 }
.form-status { font-size:12px; color:#e0e7e9; margin-top:19px; min-height:20px; line-height:1.65 }
.message-preview { margin-top:23px; font-size:12px; color:#dbe4e6 }
.message-preview summary { cursor:pointer; padding:5px 0 }
.message-preview pre { white-space:pre-wrap; overflow-wrap:anywhere; margin:13px 0 0; padding:17px; background:#20292d; border:1px solid #68757c; font:13px/1.75 inherit }
.site-footer { background:var(--paper); border-top:1px solid var(--line); padding-top:56px }
.footer-grid { display:grid; grid-template-columns:1.35fr 1fr .75fr; gap:55px; padding-bottom:48px }
.footer-logo { width:250px; height:110px; object-fit:cover; object-position:center; background:white }
.footer-tagline { margin-top:16px; color:var(--muted); font-size:13px }
.footer-heading { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.13em; color:var(--copper); margin-bottom:21px }
.footer-nav { display:flex; flex-direction:column; gap:10px; font-size:13px; align-items:start }
.footer-nav a:hover { color:var(--copper) }
.footer-group { margin-top:22px; font-size:12px; color:var(--muted); border-bottom:1px solid var(--line); padding:4px 0; display:inline-block }
.footer-bottom { border-top:1px solid var(--line); padding-block:19px; display:flex; justify-content:space-between; gap:24px; font-size:11px; color:var(--muted) }
.footer-bottom>div { display:flex; gap:24px }
.mobile-booking { display:none }
.modal { border:1px solid #8f9d9d; background:var(--paper); color:var(--ink); width:min(1040px,calc(100% - 32px)); max-height:90dvh; padding:34px; margin:auto; overflow:auto; border-radius:3px }
.modal::backdrop { background:#142028c7; backdrop-filter:blur(7px) }
.modal-header { display:flex; align-items:start; justify-content:space-between; gap:25px; margin-bottom:27px }
.modal-header h2 { font-size:35px; margin-top:13px }
.modal-close { background:var(--ink); color:white; width:42px; height:42px; font-size:25px; line-height:1; flex-shrink:0; border-radius:50% }
.compare-scroll { overflow:auto; -webkit-overflow-scrolling:touch }
.price-table { border-collapse:collapse; width:100%; min-width:650px; font-size:13px }
.price-table th,.price-table td { padding:19px 14px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top }
.price-table th { font-size:11px; text-transform:uppercase; letter-spacing:.06em; background:#dfe5e2; font-weight:650 }
.price-table tbody th { text-transform:none; letter-spacing:0; font-size:14px; background:transparent; font-weight:700 }
.price-table td strong { font-size:18px }
.price-table td small { display:block; color:var(--muted); margin-top:4px }
.compare-scroll+.micro { margin-top:18px }
.compare-scroll .text-link { font-size:12px }
.lightbox { width:min(1200px,calc(100% - 24px)); background:#1a2226; color:white; border:0; padding:18px; max-height:94dvh; overflow:auto; border-radius:3px }
.lightbox::backdrop { background:#0a151bdf }
.lightbox-head { display:flex; justify-content:space-between; gap:20px; align-items:center; margin-bottom:14px; font-size:12px }
.lightbox-head .modal-close { background:#414d53 }
.lightbox-stage { position:relative; min-height:200px; display:flex; align-items:center; justify-content:center }
.lightbox-stage>img { max-height:72dvh; width:100%; object-fit:contain }
.lightbox-nav { position:absolute; top:45%; width:44px; height:44px; border-radius:50%; background:#f6f7f3e8; color:var(--ink); border:1px solid #bdc7c6; font-size:24px }
.lightbox-prev { left:8px }
.lightbox-next { right:8px }
.lightbox-caption { font-size:12px; color:#d3dde0; margin-top:14px; text-align:center }
.breadcrumb { padding-block:27px; display:flex; gap:14px; font-size:12px; color:var(--muted) }
.breadcrumb a { border-bottom:1px solid var(--line) }
.detail-hero { display:grid; grid-template-columns:1.2fr 1fr; gap:6vw; padding-bottom:65px; align-items:center }
.detail-photo { position:relative; display:block }
.detail-photo img { width:100%; aspect-ratio:1.25; object-fit:cover }
.detail-photo>span { display:block; margin-top:10px; font-size:11px; color:var(--muted) }
.detail-photo .photo-enlarge { position:absolute; bottom:42px; right:15px; width:38px; height:38px; background:var(--paper); color:var(--ink); display:grid; place-items:center; border-radius:50%; font-size:20px }
.detail-intro h1 { margin-top:20px; font-size:clamp(55px,6vw,95px) }
.detail-intro h1 em { display:block; font-size:clamp(24px,2.5vw,36px); letter-spacing:-.04em; color:var(--copper); line-height:1.3; margin-top:17px }
.detail-model { margin-top:22px; font-size:13px; font-weight:700 }
.detail-description { margin-top:22px; font-size:16px; color:var(--muted) }
.detail-intro .button { margin-top:25px }
.price-panel { display:grid; grid-template-columns:repeat(4,1fr); background:var(--paper); border:1px solid var(--line); padding:32px; gap:30px }
.price-panel>div { border-right:1px solid var(--line); padding-right:20px }
.price-panel>div:nth-child(4) { border:0 }
.price-panel span { display:block; font-size:11px; color:var(--muted); margin-bottom:10px }
.price-panel strong { font-size:31px; letter-spacing:-.035em; line-height:1.2 }
.price-panel strong small { font-size:13px; font-weight:400; letter-spacing:0 }
.price-panel .micro { grid-column:1/-1; border-top:1px solid var(--line); padding-top:18px }
.detail-gallery-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px 18px }
.gallery-item { display:block; position:relative }
.gallery-item:first-child,.gallery-item:nth-child(2) { grid-column:span 2 }
.gallery-item .gallery-image { overflow:hidden; aspect-ratio:4/3; background:#dce1dc }
.gallery-image img { height:100%; width:100%; object-fit:cover; object-position:top center; transition:transform .35s }
.gallery-item:hover img { transform:scale(1.025) }
.gallery-item.plan .gallery-image { background:white; padding:12px }
.gallery-item.plan img { object-fit:contain; object-position:center }
.gallery-item strong { display:block; font-size:13px; margin-top:11px; letter-spacing:0 }
.gallery-item small { display:block; font-size:11px; color:var(--muted); margin-top:3px }
.gallery-help { margin-top:25px }
.related-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:35px }
.related-item { border-bottom:1px solid var(--line); padding-bottom:18px }
.related-item img { width:100%; aspect-ratio:1.7; object-fit:cover }
.related-item>div { display:flex; justify-content:space-between; gap:20px; margin-top:19px; align-items:center }
.related-item h3 { font-size:29px }
.related-item p { font-size:12px; color:var(--muted); margin-top:5px }
.related-item>div>span { font-size:13px; white-space:nowrap }
.page-intro { padding-block:60px 50px; max-width:950px }
.page-intro h1 { font-size:clamp(45px,6vw,90px); margin-top:25px }
.page-intro h1 em { color:var(--copper) }
.page-intro>p:not(.eyebrow) { max-width:650px; margin-top:28px; font-size:18px; color:var(--muted) }
.price-page-table { padding-block:0 85px }
.price-page-table .compare-scroll { background:var(--paper); padding:12px 24px; border:1px solid var(--line) }
.price-page-table>.micro { margin-top:22px; max-width:900px }
.price-notes { display:grid; grid-template-columns:1fr 1fr; gap:70px; padding-block:0 90px }
.price-notes>article { border-top:1px solid var(--line); padding-top:27px }
.price-notes h2 { font-size:29px; margin-bottom:20px }
.price-notes p { font-size:15px; color:var(--muted); margin-bottom:14px }
.price-notes .text-link { margin-top:12px }
.future-page { padding-block:75px 90px; max-width:980px; text-align:center }
.future-page .future-mark { margin:0 auto 38px }
.future-page h1 { margin-top:25px; font-size:clamp(37px,5vw,68px); line-height:1.14 }
.future-page>p:not(.eyebrow) { color:var(--muted); max-width:530px; margin:27px auto 0; font-size:17px }
.future-page .button { margin-top:35px }
.legal { max-width:1030px; padding-block:70px 95px }
.legal h1 { font-size:clamp(45px,6vw,80px); margin-top:20px; margin-bottom:35px }
.legal h2 { font-size:25px; margin:35px 0 15px; letter-spacing:-.03em }
.legal p { margin-top:18px; font-size:15px; line-height:1.8 }
.legal a { text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere }
.legal-note { background:#f3e6d5; border-left:3px solid var(--copper); padding:17px 22px; font-size:13px!important }
.reveal-ready { opacity:0; transform:translateY(18px); transition:opacity .65s,transform .65s }
.reveal-ready.is-visible { opacity:1; transform:none }
@media (min-width:1700px) { .hero-credit { right:max(var(--pad),calc((100vw - 1392px)/2)) } }
@media (max-width:1200px) {
  .desktop-nav { gap:17px; font-size:12px }
  .brand { width:195px }
  .brand img { width:221px }
  .head-inner { gap:20px }
  .header-cta { padding-inline:16px }
  .hero-inner { grid-template-columns:1.5fr .7fr }
  .quick-planner { padding:20px }
  .quick-planner label { padding-inline:13px }
  .quick-planner .button { margin-left:18px; padding-inline:20px }
  .travel-copy { padding:35px }
  .card-price { font-size:26px }
}
@media (max-width:1000px) {
  .desktop-nav { display:none }
  .menu-toggle { display:block }
  .hero-inner { min-height:620px; grid-template-columns:1.4fr .6fr }
  .quick-planner { grid-template-columns:1.1fr 1fr 1fr; gap:20px 0 }
  .quick-planner label:nth-child(3) { border:0 }
  .quick-planner label:nth-child(4) { padding-left:0 }
  .quick-planner .button { grid-column:2/4; margin-left:20px }
  .intro { gap:6vw }
  .benefit-strip { grid-template-columns:1fr 1fr; gap:20px }
  .section-heading { gap:45px }
  .included-grid { grid-template-columns:1fr 1fr; gap:35px 30px }
  .included-item,.included-item:first-child { padding:0; border:0 }
  .inside { gap:6vw }
  .future-inner { grid-template-columns:auto 1fr; gap:25px }
  .future-inner .button { grid-column:2; justify-self:start }
  .detail-gallery-grid { grid-template-columns:repeat(3,1fr) }
  .gallery-item:first-child,.gallery-item:nth-child(2) { grid-column:span 1 }
  .detail-hero { gap:35px }
  .price-panel { gap:25px; padding:26px }
  .price-panel strong { font-size:27px }
}
@media (max-width:760px) {
  :root { --header:76px; --pad:24px }
  .section { padding-block:70px }
  .brand { width:192px; height:64px }
  .brand img { width:222px }
  .header-actions { gap:12px }
  .header-cta { min-height:44px; font-size:12px; padding:10px 14px }
  .hero-inner { min-height:590px; padding-block:65px 100px; display:block }
  .hero-image { object-position:65% center }
  .hero::after { background:linear-gradient(90deg,#0f2534d9,#10283245),linear-gradient(0deg,#0c222aaa,transparent 65%) }
  .hero h1 { font-size:clamp(54px,9.5vw,76px); max-width:600px }
  .hero .eyebrow { margin-bottom:25px; font-size:11px }
  .hero-copy { max-width:410px; font-size:17px; margin-top:25px }
  .hero-stamp { display:none }
  .hero-credit { font-size:10px; bottom:16px }
  .planner-shell { margin-top:-35px }
  .quick-planner { grid-template-columns:1fr 1fr; gap:18px 0; padding:22px }
  .quick-planner label,.quick-planner label:first-child { padding:0 13px }
  .quick-planner label:nth-child(odd) { padding-left:0; border-right:1px solid var(--line) }
  .quick-planner label:nth-child(even) { border:0; padding-right:0 }
  .quick-planner .button { grid-column:1/-1; margin:3px 0 0; width:100% }
  .planner-note { display:block; font-size:11px }
  .planner-note>a { display:inline-block; margin-top:8px }
  .intro { grid-template-columns:1fr; gap:30px; padding-block:60px 40px }
  .intro h2 { font-size:clamp(36px,7.5vw,55px) }
  .intro-copy p { font-size:16px; max-width:570px }
  .benefit-strip { gap:19px 23px }
  .benefit-strip>div { font-size:12px; gap:10px; align-items:start }
  .benefit-strip .icon { width:23px; height:23px }
  .section-heading { grid-template-columns:1fr; gap:25px; margin-bottom:30px }
  .section-heading>p { justify-self:start; max-width:500px; font-size:15px }
  h2 { font-size:clamp(35px,7.5vw,53px) }
  .fleet-grid { gap:27px 20px }
  .card-heading { display:block }
  .card-heading h3 { font-size:35px }
  .card-price { text-align:left; margin-top:16px; font-size:27px }
  .card-body { padding:23px 22px }
  .card-spec { gap:8px 12px; font-size:11px }
  .card-spec span+span { padding-left:12px }
  .card-bottom { display:block }
  .card-bottom>a { display:flex; justify-content:space-between }
  .card-bottom>a:last-child { margin-top:9px }
  .fleet-note { display:block }
  .fleet-note .micro { font-size:11px }
  .fleet-note>a { margin-top:16px }
  .inside { grid-template-columns:1fr; gap:45px }
  .inside-photos { order:2; max-width:550px }
  .inside-photos>figure:last-child { margin-top:45px }
  .inside-copy h2 { max-width:450px }
  .shorttrip-grid { grid-template-columns:1fr; gap:40px; padding-block:64px }
  .shorttrip h2 { font-size:clamp(45px,9vw,67px) }
  .shorttrip-copy>p:last-child { font-size:16px }
  .shorttrip-prices>div { padding:19px 0 }
  .shorttrip-prices strong { font-size:33px }
  .travel-panel { grid-template-columns:1fr }
  .travel-photo>img { min-height:0; height:auto; aspect-ratio:1.6 }
  .travel-copy { padding:33px }
  .travel-copy h3 { font-size:38px }
  .travel-tabs { gap:22px; flex-wrap:wrap }
  .travel-tabs button { font-size:13px }
  .process-steps { grid-template-columns:1fr 1fr; gap:35px 30px; margin-top:35px }
  .process-steps li,.process-steps li:first-child { border:0; padding:24px 0 0 }
  .process-steps h3 { margin-top:20px }
  .location { grid-template-columns:1fr; gap:35px }
  .location-panel { min-height:310px; padding:35px }
  .future { padding-block:36px }
  .future-inner { grid-template-columns:1fr; gap:23px }
  .future-inner .button { grid-column:1 }
  .future-mark { width:50px; height:50px }
  .future h2 { font-size:26px; max-width:560px }
  .faq { grid-template-columns:1fr; gap:37px }
  .faq-list summary { font-size:16px; padding-block:21px }
  .inquiry { padding-block:67px }
  .inquiry-grid { grid-template-columns:1fr; gap:38px }
  .inquiry h2 { font-size:clamp(43px,9vw,62px) }
  .inquiry-intro>p:not(.eyebrow) { max-width:500px }
  .contact-links { margin-top:25px }
  .contact-links>a:first-child { font-size:26px }
  .footer-grid { grid-template-columns:1fr 1fr; gap:35px }
  .footer-brand { grid-column:1/-1 }
  .footer-logo { width:270px; height:110px }
  .footer-bottom { flex-wrap:wrap; gap:12px }
  .modal { padding:25px; width:calc(100% - 24px) }
  .modal-header h2 { font-size:27px }
  .detail-hero { grid-template-columns:1fr; gap:35px; padding-bottom:40px }
  .detail-photo img { aspect-ratio:1.5 }
  .detail-intro h1 { font-size:64px }
  .detail-intro h1 em { font-size:30px }
  .price-panel { grid-template-columns:1fr 1fr; gap:25px }
  .price-panel>div { padding:0; border:0 }
  .detail-gallery-grid { grid-template-columns:1fr 1fr; gap:24px 15px }
  .gallery-item:first-child,.gallery-item:nth-child(2) { grid-column:span 1 }
  .related-grid { grid-template-columns:1fr; gap:30px }
  .related-item { display:grid; grid-template-columns:1fr 1fr; gap:25px; align-items:center }
  .related-item>div { display:block; margin:0 }
  .related-item>div>span { display:block; margin-top:12px }
  .page-intro { padding-block:43px }
  .page-intro>p:not(.eyebrow) { font-size:16px }
  .price-page-table { padding-bottom:55px }
  .price-page-table .compare-scroll { padding:5px }
  .price-notes { grid-template-columns:1fr; gap:35px; padding-bottom:65px }
  .future-page { padding-block:55px 70px }
  .legal { padding-block:45px 65px }
}
@media (max-width:520px) {
  :root { --header:70px; --pad:22px }
  .head-inner { gap:8px }
  .brand { width:171px; height:60px }
  .brand img { width:204px }
  .header-cta { display:none }
  .header-actions { gap:0 }
  .menu-toggle { width:45px; height:45px }
  .hero-inner { min-height:572px; padding-block:58px 95px }
  .hero h1 { font-size:clamp(43px,11.7vw,60px); line-height:1.06 }
  .hero .eyebrow { max-width:270px; font-size:10px }
  .hero-copy { font-size:15px; max-width:350px }
  .hero-actions { gap:12px 23px; align-items:start }
  .hero-actions .button { padding:14px 20px; min-height:52px; font-size:13px }
  .hero-actions .text-link { font-size:12px }
  .quick-planner { padding:20px; gap:16px 0 }
  .quick-planner input,.quick-planner select { font-size:13px; min-height:38px }
  .quick-planner label { font-size:10px; letter-spacing:.035em }
  .benefit-strip { gap:20px 16px }
  .benefit-strip>div { font-size:11px }
  .fleet-grid { grid-template-columns:1fr; gap:28px }
  .fleet-toolbar { gap:15px; padding-bottom:20px }
  .filter { padding:8px 12px; font-size:11px; min-height:41px }
  .compare-button { margin-top:2px }
  .card-heading { display:flex }
  .card-heading h3 { font-size:35px }
  .card-price { margin-top:0; text-align:right; font-size:27px }
  .card-heading p { max-width:180px; font-size:12px }
  .card-price small { font-size:10px; max-width:115px; white-space:normal; line-height:1.5 }
  .card-body { padding:23px }
  .card-bottom { display:flex; gap:10px }
  .card-bottom>a { font-size:12px; gap:10px; min-height:38px }
  .card-bottom>a:last-child { margin:0; font-size:11px }
  .included-grid { gap:35px 24px }
  .included-item h3 { font-size:20px }
  .included-item p { font-size:12px }
  .included-item .icon { margin-bottom:20px }
  .travel-tabs { gap:15px }
  .travel-tabs button { font-size:11px }
  .travel-copy { padding:29px }
  .travel-copy h3 { font-size:34px }
  .process-steps { grid-template-columns:1fr; gap:0; margin-top:27px }
  .process-steps li,.process-steps li:first-child { border-bottom:1px solid var(--line); padding:25px 0 }
  .process-steps h3 { font-size:23px; margin-top:15px }
  .process-steps li:last-child { padding-bottom:0 }
  .process-steps p { margin-top:12px }
  .form-fields { gap:18px 14px }
  .form-fields label { font-size:10px; letter-spacing:.045em }
  .form-fields label>input,.form-fields label>select,.form-fields label>textarea { font-size:16px; padding:12px 10px; min-height:51px }
  .form-actions { display:grid; grid-template-columns:1fr }
  .footer-grid { gap:29px 24px }
  .footer-logo { width:245px }
  .footer-nav { font-size:12px }
  .footer-bottom { padding-bottom:100px }
  .mobile-booking { display:flex; position:fixed; z-index:60; inset:auto 0 0; background:#f6f7f3f5; backdrop-filter:blur(10px); border-top:1px solid #9baba760; padding:11px 20px calc(11px + env(safe-area-inset-bottom)); align-items:center; justify-content:space-between; gap:16px; box-shadow:0 -8px 25px #22292d0d }
  .mobile-booking>span { font-size:11px; color:var(--muted); line-height:1.4 }
  .mobile-booking strong { font-size:19px; color:var(--ink); letter-spacing:-.025em }
  .mobile-booking .button { min-height:44px; padding:11px 18px; font-size:12px }
  body.dialog-open .mobile-booking,body.menu-open .mobile-booking { display:none }
  .modal { padding:20px; max-height:92dvh }
  .detail-intro h1 { font-size:58px }
  .detail-intro h1 em { font-size:27px }
  .price-panel { padding:23px }
  .price-panel strong { font-size:29px }
  .detail-gallery-grid { gap:22px 13px }
  .gallery-item:first-child { grid-column:1/-1 }
  .gallery-item strong { font-size:12px }
  .gallery-item small { font-size:10px }
  .related-item { gap:20px }
  .related-item h3 { font-size:26px }
  .related-item p { font-size:11px }
  .legal h1 { font-size:42px }
}
@media (max-width:350px) {
  :root { --pad:18px }
  .quick-planner { padding:17px }
  .quick-planner label { padding-inline:9px }
  .quick-planner input,.quick-planner select { font-size:12px }
  .hero h1 { font-size:39px }
  .card-heading { flex-direction:column }
  .card-price { text-align:left; margin-top:12px }
  .card-price small { max-width:none }
  .form-fields { grid-template-columns:1fr }
  .included-grid { grid-template-columns:1fr }
  .card-bottom { flex-wrap:wrap }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto }
  *,*::before,*::after { transition:none!important; animation:none!important }
  .reveal-ready { opacity:1; transform:none }
  .button:hover,.camper-card:hover img { transform:none }
}
@media(max-width:760px){.quick-planner input,.quick-planner select{font-size:16px}}
/* Original photography: an editorial opening with room for the full vehicle. */
.hero { background:#29343c }
.hero-image { width:54%; inset:0 0 0 auto; object-position:center 73% }
.hero::after { background:linear-gradient(90deg,#29343c 0%,#29343c 44%,#29343c10 65%),linear-gradient(0deg,#15242c60,transparent 50%) }
.hero-inner { grid-template-columns:1.08fr 1fr; min-height:650px }
.hero h1 { font-size:clamp(63px,6.7vw,103px) }
.hero-stamp { align-self:start; margin-top:12px; padding:16px 20px }
.card-image img { aspect-ratio:1.25; object-position:center 77% }
.detail-photo img { aspect-ratio:1.05; object-position:center 77% }
.gallery-image img { object-position:center }
.gallery-item .gallery-image { aspect-ratio:3/4 }
.gallery-item:first-child .gallery-image,.gallery-item:nth-child(2) .gallery-image { aspect-ratio:1.35 }
.copy-button { background:none; color:inherit; border-inline:0; border-top:0 }
.address-card { margin-top:28px; padding-top:25px; border-top:1px solid var(--line) }
.address-card h3 { margin-top:13px; font-size:29px }
.address-card p { color:var(--muted); font-size:13px; margin-top:12px }
.address-card .text-link { font-size:12px; margin-top:9px }
.location-map { border:1px solid #acbbb5; background:#d9e2dc; padding:0; align-self:stretch; display:flex; flex-direction:column }
.map-preview { padding:40px; min-height:490px; display:flex; flex-direction:column; align-items:start; justify-content:center; position:relative; overflow:hidden }
.map-preview::before { content:""; position:absolute; width:360px; height:360px; border-radius:50%; border:1px solid #a6b3ab; right:-210px; top:-50px; box-shadow:0 0 0 50px #c5d0c880,0 0 0 100px #c5d0c840; pointer-events:none }
.map-preview>* { position:relative }
.map-preview>.icon { width:41px; height:41px; margin-bottom:24px }
.map-preview h3 { font-size:35px; margin-top:19px; max-width:350px; line-height:1.13 }
.map-preview>p:not(.eyebrow) { margin-top:20px; font-size:14px; max-width:335px }
.map-preview>p.micro { font-size:11px }
.map-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px }
.map-actions .button { font-size:12px; padding:12px 18px; min-height:47px }
#map-canvas { flex:1; min-height:490px }
#map-canvas iframe { display:block; width:100%; height:100%; min-height:490px; border:0 }
.location-map>#map-caption { padding:18px 22px; border-top:1px solid #acbbb5; font-size:11px; background:#e4ebe6 }
.map-switch { display:flex; flex-wrap:wrap; gap:8px; padding:14px 20px; background:#e4ebe6 }
.map-switch button { background:var(--paper); border:1px solid var(--line); padding:8px 12px; font-size:11px; color:var(--ink) }
.map-switch button[aria-pressed=true] { background:var(--ink); color:white }
.price-table th small { display:block; font-size:10px; font-weight:400; color:var(--muted); margin-top:6px; line-height:1.5 }
@media(max-width:1000px) { .hero h1 { font-size:clamp(56px,7.1vw,77px) }.hero-inner { min-height:610px }.hero-stamp { font-size:22px } }
@media(max-width:760px) {
 .hero { display:flex; flex-direction:column; background:#29343c }
 .hero::after { display:none }
 .hero-inner { min-height:0; display:block; padding-block:45px 40px; order:1 }
 .hero-image { position:relative; inset:auto; order:2; z-index:0; width:100%; height:360px; object-position:center 75% }
 .hero h1 { font-size:clamp(50px,9.5vw,70px) }
 .hero-credit { z-index:1; bottom:16px }
 .hero-stamp { display:none }
 .hero-copy { margin-top:22px }
 .hero-actions { margin-top:25px }
 .map-preview { min-height:360px; padding:32px }
 #map-canvas,#map-canvas iframe { min-height:390px }
 .map-preview h3 { font-size:30px }
 .detail-photo img { aspect-ratio:1.1 }
 .travel-photo>img { max-height:440px; aspect-ratio:1.25; object-position:center 70% }
 .related-item img { aspect-ratio:1.2; object-position:center 75% }
}
@media(max-width:520px) {
 .hero h1 { font-size:clamp(43px,11.7vw,60px) }
 .hero-inner { padding-block:38px 35px }
 .hero-image { height:305px; object-position:center 76% }
 .hero-copy { font-size:15px }
 .map-preview { padding:27px }
 .gallery-item:first-child .gallery-image { aspect-ratio:1.2 }
 .gallery-item:nth-child(2) .gallery-image { aspect-ratio:3/4 }
 .address-card h3 { font-size:27px }
}
@media print {
  .site-header,.quick-planner,.mobile-booking,.modal,.inquiry,.hero-actions { display:none }
  body { background:white; color:black }
  .reveal-ready { opacity:1; transform:none }
  .hero { color:black; background:white }
  .hero-image,.hero::after { display:none }
  .hero-inner { min-height:0; padding-block:35px }
  .hero h1 em { color:var(--copper) }
  .hero-copy { color:black }
  section,article { break-inside:avoid }
  .footer-bottom { padding-bottom:20px }
}
