/*
  Design tokens follow production marketplace conventions (Airbnb / Booking / Uber web):
  neutral palette with one accent reserved for the primary action, system type, 8pt spacing,
  Material 3 motion (standard + emphasized easing, 150–400ms).
*/
:root{
  --ink:#222222; --ink-2:#6a6a6a; --ink-3:#929292;
  --line:#dddddd; --line-2:#ebebeb; --surface:#f7f7f7; --white:#ffffff;
  --accent:#d5460e; --accent-hover:#b93c0b;
  --star:#222222;
  --r-sm:8px; --r:12px; --r-lg:16px; --r-xl:24px; --pill:999px;
  --shadow-pill:0 3px 12px rgb(0 0 0/.1);
  --shadow-pop:0 8px 28px rgb(0 0 0/.18);
  --shadow-card:0 6px 20px rgb(0 0 0/.12);
  --ease:cubic-bezier(.2,0,0,1);
  --ease-in:cubic-bezier(.05,.7,.1,1);
  --ease-out:cubic-bezier(.3,0,.8,.15);
  --t-fast:150ms; --t:250ms; --t-slow:400ms;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI Variable Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --pad:24px; --header:80px;
}

@media (min-width:744px){:root{--pad:40px}}
@media (min-width:1128px){:root{--pad:80px}}

*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header) + 72px)}
body{font-family:var(--font);font-size:16px;line-height:1.5;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
button,input,select{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer;text-align:inherit}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none;padding:0}
h1,h2,h3{font-weight:600;letter-spacing:-.01em}
hr{border:0;border-top:1px solid var(--line-2);margin:8px 0}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:16px;top:-48px;z-index:100;background:var(--ink);color:#fff;padding:8px 16px;border-radius:var(--r-sm)}
.skip-link:focus{top:16px}
.icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;display:block}
.wrap{max-width:calc(1280px + var(--pad)*2);margin-inline:auto;padding-inline:var(--pad)}
.sub{color:var(--ink-2);font-size:14px}
.h2{font-size:22px;line-height:26px;margin-bottom:24px}
@media (min-width:950px){.h2{font-size:26px;line-height:30px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:1ms!important;animation-duration:1ms!important}}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 24px;border-radius:var(--r-sm);font-size:16px;font-weight:600;transition:background var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}
.btn:active{transform:scale(.96)}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-hover)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:#000}
.btn-outline{border:1px solid var(--ink);background:#fff}
.btn-outline:hover{background:var(--surface)}
.btn-sm{height:40px;padding:0 16px;font-size:14px}
.btn-block{width:100%}
.round-btn{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;transition:background var(--t-fast) var(--ease)}
.round-btn:hover{background:var(--surface)}
.round-btn:disabled{opacity:.25;cursor:not-allowed;background:none}
.text-btn{height:40px;padding:0 12px;border-radius:var(--pill);font-size:14px;font-weight:500;transition:background var(--t-fast) var(--ease)}
.text-btn:hover{background:var(--surface)}
.link-btn{font-weight:600;text-decoration:underline;text-underline-offset:2px;font-size:inherit}

/* Header */
.header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid transparent;transition:border-color var(--t) var(--ease)}
.header.compact{border-color:var(--line-2)}
.header-inner{position:relative;height:var(--header);display:flex;align-items:center;gap:24px}
.logo{font-size:24px;font-weight:700;letter-spacing:-.04em;color:var(--accent);line-height:1}
.nav{display:flex;gap:4px;margin-left:24px;transition:opacity var(--t) var(--ease),transform var(--t) var(--ease)}
.nav a{height:40px;display:flex;align-items:center;padding:0 12px;border-radius:var(--pill);font-size:14px;font-weight:500;color:var(--ink-2);transition:background var(--t-fast),color var(--t-fast)}
.nav a:hover{background:var(--surface);color:var(--ink)}
.header.compact .nav{opacity:0;transform:translateY(-8px);pointer-events:none}
.mini-search{position:absolute;left:50%;top:50%;display:flex;align-items:center;gap:12px;height:48px;padding:0 8px 0 24px;border:1px solid var(--line);border-radius:var(--pill);box-shadow:0 1px 2px rgb(0 0 0/.08),0 4px 12px rgb(0 0 0/.05);font-size:14px;font-weight:500;white-space:nowrap;opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.92) translateY(8px);transition:opacity var(--t) var(--ease),transform var(--t-slow) var(--ease-in),box-shadow var(--t-fast)}
.mini-search:hover{box-shadow:var(--shadow-pill)}
.header.compact .mini-search{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)}
.mini-sep{width:1px;height:24px;background:var(--line)}
.mini-go{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff}
.mini-go .icon{width:12px;height:12px;stroke-width:3}
.header-end{margin-left:auto;display:flex;align-items:center;gap:4px}
.menu-wrap{position:relative;margin-left:4px}
.account-btn{display:flex;align-items:center;gap:12px;height:42px;padding:0 6px 0 14px;border:1px solid var(--line);border-radius:var(--pill);transition:box-shadow var(--t-fast) var(--ease)}
.account-btn:hover,.account-btn[aria-expanded=true]{box-shadow:0 2px 4px rgb(0 0 0/.18)}
.account-avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#717171;color:#fff}
.account-avatar .icon{width:18px;height:18px;fill:currentColor;stroke:none}
.menu{position:absolute;right:0;top:calc(100% + 8px);width:240px;background:#fff;border-radius:var(--r);box-shadow:var(--shadow-pop);padding:8px 0;z-index:60;transform-origin:top right;animation:menu-in var(--t) var(--ease-in)}
@keyframes menu-in{from{opacity:0;transform:scale(.95) translateY(-4px)}to{opacity:1;transform:none}}
.menu [role=menuitem]{display:block;width:100%;padding:12px 16px;font-size:14px;text-align:left}
.menu [role=menuitem]:hover,.menu [role=menuitem]:focus-visible{background:var(--surface);outline:none}
.menu strong{font-weight:600}

/* Hero */
.hero{padding-top:8px}
.hero-media{position:relative;border-radius:var(--r-xl);overflow:hidden;height:clamp(360px,44vw,540px);background:#1b1b1b}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:70% 55%;animation:hero-in 1.2s var(--ease-in) both}
@keyframes hero-in{from{transform:scale(1.04);opacity:.6}to{transform:none;opacity:1}}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(20deg,rgb(0 0 0/.62) 0%,rgb(0 0 0/.25) 40%,rgb(0 0 0/0) 65%)}
.hero-text{position:absolute;left:0;bottom:0;z-index:1;padding:0 48px 96px;color:#fff;max-width:640px}
.hero-text h1{font-size:clamp(32px,4vw,48px);line-height:1.08;letter-spacing:-.02em}
.hero-text p{font-size:18px;line-height:1.45;margin-top:12px;color:rgb(255 255 255/.9)}

/* Search pill */
.search{position:relative;z-index:40;max-width:880px;margin:-40px auto 0}
.seg-wrap{display:grid;grid-template-columns:1.25fr auto 1fr auto 1fr auto;align-items:center;height:72px;background:#fff;border:1px solid var(--line);border-radius:var(--pill);box-shadow:var(--shadow-pill);transition:background var(--t) var(--ease)}
.search.active .seg-wrap{background:var(--surface);border-color:var(--line-2)}
.seg{height:100%;display:flex;flex-direction:column;justify-content:center;padding:0 32px;border-radius:var(--pill);min-width:0;transition:background var(--t-fast) var(--ease),box-shadow var(--t) var(--ease)}
.seg:hover{background:var(--line-2)}
.seg[aria-expanded=true]{background:#fff;box-shadow:var(--shadow-card)}
.seg-label{font-size:12px;font-weight:600;line-height:16px}
.seg-value{font-size:14px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}
.seg-value.set{color:var(--ink);font-weight:500}
.seg-div{width:1px;height:32px;background:var(--line);transition:opacity var(--t-fast)}
.seg:hover+.seg-div,.seg-div:has(+.seg:hover),.seg[aria-expanded=true]+.seg-div,.seg-div:has(+.seg[aria-expanded=true]){opacity:0}
.search-go{display:flex;align-items:center;gap:8px;height:56px;margin-right:8px;padding:0 24px 0 20px;border-radius:var(--pill);background:var(--accent);color:#fff;font-weight:600;transition:background var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}
.search-go:hover{background:var(--accent-hover)}
.search-go:active{transform:scale(.96)}
.search-go .icon{width:18px;height:18px;stroke-width:2.5}
.search-note{text-align:center;font-size:14px;color:var(--ink-2);margin-top:16px}

.pop{position:absolute;top:calc(100% + 12px);background:#fff;border-radius:var(--r-xl);box-shadow:var(--shadow-pop);padding:24px;animation:pop-in var(--t) var(--ease-in);transform-origin:top center}
@keyframes pop-in{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}
.pop-where{left:0;width:420px;padding:16px 8px}
.pop-title{font-size:12px;font-weight:600;color:var(--ink-2);padding:4px 16px 8px}
.airport-list li{display:flex;align-items:center;gap:16px;padding:10px 16px;border-radius:var(--r);cursor:pointer;transition:background var(--t-fast) var(--ease)}
.airport-list li:hover,.airport-list li.focus{background:var(--surface)}
.airport-list li[aria-selected=true] .ap-code{background:var(--ink);color:#fff}
.ap-code{display:grid;place-items:center;width:48px;height:48px;border-radius:var(--r);background:var(--line-2);font-size:13px;font-weight:600;letter-spacing:.02em;flex-shrink:0;transition:background var(--t-fast),color var(--t-fast)}
.airport-list b{display:block;font-size:15px;font-weight:500}
.airport-list small{display:block;font-size:13px;color:var(--ink-2)}
.pop-dates{left:0;right:0;padding:24px 32px 16px}
.cal-head{position:absolute;left:24px;right:24px;top:18px;display:flex;justify-content:space-between;pointer-events:none}
.cal-head button{pointer-events:auto}
.cal-head .icon{width:16px;height:16px}
.cal{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.month h3{text-align:center;font-size:16px;line-height:28px;margin-bottom:16px}
.dow,.days{display:grid;grid-template-columns:repeat(7,1fr)}
.dow span{text-align:center;font-size:12px;font-weight:600;color:var(--ink-2);padding-bottom:8px}
.day{position:relative;height:44px;display:grid;place-items:center;font-size:14px;font-weight:500}
.day button{position:relative;z-index:1;width:44px;height:44px;border-radius:50%;border:1.5px solid transparent;transition:border-color var(--t-fast),background var(--t-fast),color var(--t-fast)}
.day button:hover:not(:disabled){border-color:var(--ink)}
.day button:disabled{color:#c4c4c4;text-decoration:line-through;cursor:default}
.day.in::before,.day.start.has-end::before,.day.end::before{content:"";position:absolute;inset:0;background:var(--surface)}
.day.start.has-end::before{left:50%}
.day.end::before{right:50%}
.day.start button,.day.end button{background:var(--ink);color:#fff;border-color:var(--ink)}
.day.today button{font-weight:700}
.cal-foot{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line-2);font-size:14px}
.cal-foot label{display:flex;align-items:center;gap:8px;color:var(--ink-2)}
.cal-foot select{height:36px;border:1px solid var(--line);border-radius:var(--r-sm);padding:0 8px;background:#fff;color:var(--ink);font-weight:500}
.cal-sum{margin-left:auto;color:var(--ink-2)}

/* Results */
.results{padding-top:56px}
.results-top h2{font-size:22px;line-height:26px}
.results-top .sub{margin-top:4px}
.filterbar{position:sticky;top:var(--header);z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;margin:16px calc(var(--pad)*-1) 24px;padding:0 var(--pad);border-bottom:1px solid var(--line-2)}
.typetabs{position:relative;display:flex;gap:32px;overflow-x:auto;scrollbar-width:none}
.typetabs::-webkit-scrollbar{display:none}
.typetabs [role=tab]{height:56px;font-size:14px;font-weight:500;color:var(--ink-2);white-space:nowrap;transition:color var(--t-fast)}
.typetabs [role=tab]:hover{color:var(--ink)}
.typetabs [role=tab][aria-selected=true]{color:var(--ink);font-weight:600}
.tab-ink{position:absolute;bottom:0;left:0;height:2px;background:var(--ink);width:0;transition:transform var(--t) var(--ease),width var(--t) var(--ease)}
.filter-end{display:flex;gap:8px;flex-shrink:0}
.chip{display:inline-flex;align-items:center;height:36px;padding:0 16px;border:1px solid var(--line);border-radius:var(--pill);font-size:14px;white-space:nowrap;background:#fff;transition:border-color var(--t-fast),background var(--t-fast),transform var(--t-fast) var(--ease)}
.chip:hover{border-color:var(--ink)}
.chip:active{transform:scale(.96)}
.chip[aria-pressed=true]{border:2px solid var(--ink);background:var(--surface);padding:0 15px}
.chip-select{padding:0}
.chip-select select{height:100%;border:0;background:transparent;padding:0 32px 0 16px;appearance:none;cursor:pointer;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23222' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 12px center/12px no-repeat;border-radius:var(--pill)}

.grid{display:grid;grid-template-columns:1fr;gap:40px 24px}
@media (min-width:550px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:950px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1128px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.card{position:relative;cursor:pointer}
.card-img{position:relative;aspect-ratio:20/12;border-radius:var(--r);overflow:hidden;background:var(--surface)}
.card-img .reference-piece{width:100%;height:100%}
.card-tag{position:absolute;left:12px;top:12px;background:#fff;border-radius:var(--pill);padding:4px 10px;font-size:12px;font-weight:600;box-shadow:0 1px 3px rgb(0 0 0/.12)}
.heart{position:absolute;right:8px;top:8px;z-index:2;display:grid;place-items:center;width:40px;height:40px;transition:transform var(--t-fast) var(--ease)}
.heart:active{transform:scale(.85)}
.heart .icon{width:24px;height:24px;fill:rgb(0 0 0/.45);stroke:#fff;stroke-width:2}
.heart[aria-pressed=true] .icon{fill:var(--accent);animation:beat var(--t-slow) var(--ease-in)}
@keyframes beat{0%{transform:scale(.7)}60%{transform:scale(1.12)}100%{transform:scale(1)}}
.card-body{margin-top:12px;font-size:15px;line-height:20px}
.card-row{display:flex;justify-content:space-between;gap:8px}
.card-name{font-weight:600;text-align:left}
.card-name::after{content:"";position:absolute;inset:0;z-index:1}
.card-rate{display:flex;align-items:center;gap:4px;font-size:14px;white-space:nowrap}
.card-rate .icon{width:12px;height:12px;fill:currentColor;stroke:none}
.card-meta{color:var(--ink-2);font-size:15px}
.card-price{margin-top:6px}
.card-price b{font-weight:600}
.card-price u{color:var(--ink-2);text-underline-offset:2px}
.empty{padding:64px 0;text-align:center;display:grid;justify-items:center;gap:8px}
.empty h3{font-size:22px}
.empty .btn{margin-top:16px}

/* Blocks */
.block{padding-top:80px}
.types{display:grid;grid-template-columns:repeat(5,minmax(160px,1fr));gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:4px}
.types::-webkit-scrollbar{display:none}
.type{scroll-snap-align:start;text-align:left}
.type-img{border-radius:var(--r);background:#fff;border:1px solid var(--line-2);padding:8px;overflow:hidden;transition:border-color var(--t-fast)}
.type-img .reference-piece{aspect-ratio:225/132;width:100%;transition:transform var(--t-slow) var(--ease)}
.type:hover .type-img{border-color:var(--line)}
.type:hover .type-img .reference-piece{transform:scale(1.03)}
.type b{display:block;font-weight:600;font-size:15px;margin-top:12px}
.type small{font-size:14px;color:var(--ink-2)}

.how{display:grid;grid-template-columns:1fr;gap:40px;align-items:center}
@media (min-width:950px){.how{grid-template-columns:1fr 1fr;gap:80px}}
.how-img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:70% center;border-radius:var(--r-lg)}
.steps li{display:grid;grid-template-columns:32px 1fr;gap:16px;padding:24px 0;border-top:1px solid var(--line-2)}
.steps li:last-child{border-bottom:1px solid var(--line-2)}
.step-n{font-size:14px;font-weight:600;color:var(--ink-2);line-height:24px}
.steps h3{font-size:18px;line-height:24px}
.steps p{color:var(--ink-2);margin-top:4px}

.rating-h{display:flex;align-items:center;gap:8px}
.rating-h .icon{width:20px;height:20px;fill:currentColor;stroke:none}
.reviews{display:grid;grid-template-columns:1fr;gap:40px}
@media (min-width:744px){.reviews{grid-template-columns:1fr 1fr;gap:40px 96px}}
.review-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:600;font-size:18px}
.review-head b{display:block;font-weight:600}
.review-head small{font-size:14px;color:var(--ink-2)}
.review-stars{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;margin-bottom:6px}
.review-stars .stars{display:flex;gap:1px}
.review-stars .icon{width:10px;height:10px;fill:currentColor;stroke:none}
.review p{line-height:24px}

.xtabs{display:flex;gap:32px;border-bottom:1px solid var(--line);margin-bottom:32px;overflow-x:auto;scrollbar-width:none}
.xtabs [role=tab]{position:relative;padding:12px 0;font-size:14px;font-weight:500;color:var(--ink-2);white-space:nowrap;transition:color var(--t-fast)}
.xtabs [role=tab]:hover{color:var(--ink)}
.xtabs [role=tab][aria-selected=true]{color:var(--ink);font-weight:600}
.xtabs [role=tab][aria-selected=true]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--ink);animation:ink-in var(--t) var(--ease)}
@keyframes ink-in{from{transform:scaleX(.4);opacity:0}to{transform:none;opacity:1}}
.xpanel{animation:fade var(--t) var(--ease)}
@keyframes fade{from{opacity:0}to{opacity:1}}
.links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
@media (min-width:744px){.links{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1128px){.links{grid-template-columns:repeat(6,minmax(0,1fr))}}
.links button,.links li{display:block;text-align:left;font-size:14px;line-height:18px}
.links strong,.links b{display:block;font-weight:600;color:var(--ink)}
.links span{display:block;color:var(--ink-2);margin-top:2px}
.links button:hover strong{text-decoration:underline}

.faq{display:grid;grid-template-columns:1fr;gap:24px}
@media (min-width:950px){.faq{grid-template-columns:1fr 2fr;gap:80px}}
.faq .h2{margin-bottom:8px}
.faq-list details{border-bottom:1px solid var(--line-2)}
.faq-list details:first-child{border-top:1px solid var(--line-2)}
.faq-list summary{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px 0;font-weight:500;cursor:pointer;list-style:none}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary .icon{width:16px;height:16px;transition:transform var(--t) var(--ease)}
.faq-list details[open] summary .icon{transform:rotate(180deg)}
.faq-list .answer{overflow:hidden;color:var(--ink-2);padding-right:40px}
.faq-list .answer p{padding-bottom:20px}

.partner{display:grid;grid-template-columns:1fr;gap:32px;align-items:center;padding:40px;border-radius:var(--r-lg);background:var(--surface)}
@media (min-width:950px){.partner{grid-template-columns:1fr 1.2fr;padding:48px 56px;gap:56px}}
.partner .h2{margin-bottom:8px}
.partner .sub{font-size:16px;max-width:420px;margin-bottom:24px}
.partner-img{aspect-ratio:406/112;border-radius:var(--r)}

/* Footer */
.footer{margin-top:96px;background:var(--surface);border-top:1px solid var(--line);padding:48px 0 24px;font-size:14px}
.footer-cols{display:grid;grid-template-columns:1fr;gap:32px;padding-bottom:40px}
@media (min-width:744px){.footer-cols{grid-template-columns:repeat(3,1fr)}}
.footer h2{font-size:14px;font-weight:600;margin-bottom:12px}
.footer li+li{margin-top:12px}
.footer li a,.footer li button{color:var(--ink)}
.footer li a:hover,.footer li button:hover{text-decoration:underline}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:24px;border-top:1px solid var(--line)}
.footer-meta{display:flex;gap:24px;font-weight:600}
.footer-meta button{display:inline-flex;align-items:center;gap:8px}
.footer-meta button:hover{text-decoration:underline}

/* Dialogs */
dialog{border:0;padding:0;color:var(--ink);background:#fff}
dialog::backdrop{background:rgb(0 0 0/.5)}
dialog[open]::backdrop{animation:fade var(--t) var(--ease)}
.modal{width:min(568px,100% - 32px);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);margin:auto}
.modal[open]{animation:modal-in var(--t-slow) var(--ease-in)}
@keyframes modal-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.modal-head{display:flex;padding:12px 16px;border-bottom:1px solid var(--line-2)}
.modal-body{padding:24px}
.modal-body h2{font-size:22px;margin-bottom:8px}
.modal-body p{color:var(--ink-2)}

.sheet{width:min(1032px,100% - 48px);max-height:calc(100dvh - 80px);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);margin:auto;overflow:hidden}
.sheet[open]{animation:modal-in var(--t-slow) var(--ease-in)}
.sheet-inner{display:flex;flex-direction:column;max-height:calc(100dvh - 80px)}
.sheet-head{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line-2)}
.sheet-head b{font-size:16px;font-weight:600;margin-left:8px}
.sheet-scroll{overflow-y:auto;overscroll-behavior:contain}
.sheet-grid{display:grid;grid-template-columns:1fr;gap:32px;padding:24px}
@media (min-width:880px){.sheet-grid{grid-template-columns:1.4fr 1fr;gap:48px;padding:32px}}
.sheet-img{aspect-ratio:20/10;border-radius:var(--r);overflow:hidden;background:var(--surface)}
.sheet-img .reference-piece{width:100%;height:100%}
.sheet-title{font-size:26px;line-height:30px;margin-top:24px}
.sheet-sub{color:var(--ink-2);margin-top:4px}
.facts{display:flex;flex-wrap:wrap;gap:4px 8px;margin-top:4px;color:var(--ink)}
.facts span+span::before{content:"·";margin-right:8px}
.sheet-sec{padding:24px 0;border-top:1px solid var(--line-2)}
.sheet-sec:first-of-type{margin-top:24px}
.sheet-sec h3{font-size:18px;margin-bottom:16px}
.feature-list{display:grid;gap:16px}
.feature-list li{display:grid;grid-template-columns:24px 1fr;gap:16px}
.feature-list .icon{width:24px;height:24px;stroke-width:1.5}
.feature-list b{display:block;font-weight:500}
.feature-list small{font-size:14px;color:var(--ink-2)}
.book{position:sticky;top:0;border:1px solid var(--line);border-radius:var(--r);padding:24px;box-shadow:var(--shadow-card)}
.book-price{font-size:22px;font-weight:600}
.book-price small{font-size:16px;font-weight:400;color:var(--ink-2)}
.book-fields{display:grid;grid-template-columns:1fr 1fr;border:1px solid #b0b0b0;border-radius:var(--r-sm);margin:24px 0 16px;overflow:hidden}
.book-fields div{padding:10px 12px}
.book-fields div+div{border-left:1px solid #b0b0b0}
.book-fields .full{grid-column:1/-1;border-left:0;border-top:1px solid #b0b0b0}
.book-fields label,.book-fields span{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.book-fields strong,.book-fields input{display:block;font-size:14px;font-weight:400;border:0;padding:0;width:100%;outline:none;background:none}
.book-note{text-align:center;font-size:14px;color:var(--ink-2);margin:12px 0 20px}
.book-row{display:flex;justify-content:space-between;padding:4px 0;color:var(--ink)}
.book-row u{text-underline-offset:2px}
.book-total{display:flex;justify-content:space-between;font-weight:600;margin-top:16px;padding-top:20px;border-top:1px solid var(--line)}
.book-dep{display:flex;justify-content:space-between;font-size:14px;color:var(--ink-2);margin-top:8px}
.book-alt{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.book-alt .btn{height:44px;font-size:14px;gap:6px}

.toast{position:fixed;left:24px;bottom:24px;z-index:80;background:var(--ink);color:#fff;padding:14px 20px;border-radius:var(--r-sm);font-size:14px;font-weight:500;box-shadow:var(--shadow-pop);animation:toast-in var(--t-slow) var(--ease-in)}
@keyframes toast-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* Image window into a sprite */
.reference-piece{position:relative;overflow:hidden;display:block}
.reference-piece img{position:absolute;max-width:none;width:calc(100% * var(--sw) / var(--cw));height:calc(100% * var(--sh) / var(--ch));left:calc(-100% * var(--sx) / var(--cw));top:calc(-100% * var(--sy) / var(--ch));pointer-events:none;user-select:none}

/* Responsive */
@media (max-width:1127px){
  .hide-md{display:none}
  .nav{display:none}
}
@media (max-width:949px){
  .filterbar{flex-direction:column;align-items:stretch;gap:0}
  .filter-end{padding:12px 0;overflow-x:auto;scrollbar-width:none}
  .filter-end::-webkit-scrollbar{display:none}
  .cal{grid-template-columns:1fr}
  .cal .month:nth-child(2){display:none}
}
@media (max-width:743px){
  :root{--header:64px}
  .hide-sm{display:none}
  .logo{font-size:22px}
  .mini-search{padding-left:16px;gap:8px;height:44px;font-size:13px}
  .header.compact .logo{opacity:0;width:0;margin-right:-24px;overflow:hidden}
  .hero{padding-top:0;padding-inline:0}
  .hero-media{border-radius:0;height:420px}
  .hero-text{padding:0 24px 32px}
  .hero-text p{font-size:16px}
  .search{margin:-16px 16px 0;}
  .seg-wrap{grid-template-columns:1fr 1fr;height:auto;border-radius:var(--r-lg);padding:8px;gap:0;box-shadow:var(--shadow-card)}
  .seg{grid-column:span 1;height:60px;padding:0 16px;border-radius:var(--r)}
  #seg-where{grid-column:1/-1;border-bottom:1px solid var(--line-2);border-radius:var(--r) var(--r) 0 0}
  #seg-to{border-left:1px solid var(--line-2);border-radius:0}
  .seg-div{display:none}
  .search-go{grid-column:1/-1;margin:8px 0 0;height:48px;justify-content:center;border-radius:var(--r-sm)}
  .pop{position:fixed;left:0;right:0;top:auto;bottom:0;max-height:88dvh;overflow-y:auto;border-radius:var(--r-xl) var(--r-xl) 0 0;padding:24px 16px calc(16px + env(safe-area-inset-bottom));animation:sheet-up var(--t-slow) var(--ease-in);z-index:70;box-shadow:0 -8px 40px rgb(0 0 0/.25)}
  @keyframes sheet-up{from{transform:translateY(100%)}to{transform:none}}
  .search.active::before{content:"";position:fixed;inset:0;z-index:65;background:rgb(0 0 0/.4);animation:fade var(--t) var(--ease)}
  .pop-where{width:auto;padding:16px 8px}
  .cal-head{left:8px;right:8px}
  .cal-sum{margin-left:0;width:100%}
  .cal-foot .btn{margin-left:auto}
  .search-note{padding:0 24px;font-size:13px}
  .results{padding-top:40px}
  .types{grid-template-columns:repeat(5,minmax(200px,1fr));margin-inline:calc(var(--pad)*-1);padding-inline:var(--pad);scroll-padding-inline:var(--pad)}
  .block{padding-top:64px}
  .partner{padding:24px}
  .sheet{width:100%;max-width:100%;max-height:100dvh;height:100dvh;border-radius:0}
  .sheet-inner{max-height:100dvh;height:100%}
  .sheet-scroll{flex:1}
  .book{position:static;box-shadow:none;border:0;padding:0}
  .toast{left:16px;right:16px;bottom:16px}
}

/* ===== Real images (replace sprite windows) ===== */
.hero-media picture{display:block;height:100%}
.card-img{aspect-ratio:2/1}
.card-img img,.sheet-img img{width:100%;height:100%;object-fit:cover}
.sheet-img{aspect-ratio:2/1}
.type-img img{width:100%;height:auto;aspect-ratio:450/264;object-fit:contain;transition:transform var(--t-slow) var(--ease)}
.type:hover .type-img img{transform:scale(1.03)}
.type{display:block}
.type:hover b{text-decoration:underline}
.partner-img{width:100%;height:auto;object-fit:cover}
.how picture{display:block}
.links a{display:block;font-size:14px;line-height:18px}
.links a:hover strong{text-decoration:underline}

/* ===== Breadcrumbs ===== */
.crumbs ol{display:flex;flex-wrap:wrap;gap:4px;font-size:14px;color:var(--ink-2);padding:16px 0}
.crumbs li:not(:last-child)::after{content:"›";margin-left:6px;color:var(--ink-3)}
.crumbs a{text-decoration:underline;text-underline-offset:2px}
.crumbs a:hover{color:var(--ink)}

/* ===== Landing page hero ===== */
.page-hero{padding-bottom:8px}
.page-hero h1{font-size:clamp(30px,4vw,44px);line-height:1.1;letter-spacing:-.02em;max-width:760px}
.page-hero .lead{font-size:18px;line-height:1.55;color:var(--ink-2);max-width:720px;margin:12px 0 40px}
.page-hero .search{margin:0}
.page-hero .search-note{text-align:left}

/* ===== Long-form content ===== */
.guide{display:grid;grid-template-columns:1fr;gap:8px}
@media (min-width:950px){.guide{grid-template-columns:1fr 2fr;gap:80px}}
.guide-head .h2{margin-bottom:8px}
.prose{max-width:720px;font-size:16px;line-height:1.65;color:var(--ink)}
.prose>*+*{margin-top:16px}
.prose h2{font-size:22px;line-height:1.3;margin-top:40px}
.prose h3{font-size:18px;line-height:1.35;margin-top:32px}
.prose ul,.prose ol{padding-left:20px}
.prose ul{list-style:disc}
.prose ol{list-style:decimal}
.prose li+li{margin-top:8px}
.prose li::marker{color:var(--ink-3)}
.drive-table{width:100%;border-collapse:collapse;font-size:15px}
.drive-table th{text-align:left;font-size:13px;font-weight:600;color:var(--ink-2);padding:8px 0;border-bottom:1px solid var(--line)}
.drive-table td{padding:12px 0;border-bottom:1px solid var(--line-2)}
.drive-table td:last-child,.drive-table th:last-child{text-align:right}
.legal{padding-bottom:40px}
.legal h1{font-size:clamp(30px,4vw,40px);margin:8px 0 4px}
.legal .prose{margin-top:32px}

/* ===== Single-company fleet ===== */
@media (min-width:1128px){.results .grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.fleet-note{margin-top:40px;padding:20px 24px;border-radius:var(--r);background:var(--surface);font-size:15px;color:var(--ink-2)}
.fleet-note strong{color:var(--ink);font-weight:600}
.contact-actions{display:flex;flex-wrap:wrap;gap:8px}
.menu-only{padding:0 14px;gap:10px;font-size:14px;font-weight:500}
.wa-link{display:inline-flex;align-items:center;gap:8px}
.wa-fab{position:fixed;right:24px;bottom:24px;z-index:90;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#1f8f4e;color:#fff;box-shadow:0 6px 24px rgba(31,143,78,0.4), 0 2px 8px rgba(0,0,0,0.3);transition:transform var(--t-fast) var(--ease),background var(--t-fast),box-shadow var(--t-fast)}
.wa-fab:hover{background:#18763f;transform:scale(1.05);box-shadow:0 8px 28px rgba(31,143,78,0.5)}
.wa-fab:active{transform:scale(.92)}
.wa-fab .icon{width:26px;height:26px}
@media (max-width:743px){.wa-fab{right:16px;bottom:16px;width:52px;height:52px}}

/* ===== Checkout ===== */
.progress{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:16px 0 24px}
.progress li{font-size:12px;font-weight:500;color:var(--ink-3)}
.progress li::before{content:"";display:block;height:3px;border-radius:2px;background:var(--line-2);margin-bottom:8px;transition:background var(--t) var(--ease)}
.progress li.done::before,.progress li.now::before{background:var(--ink)}
.progress li.now{color:var(--ink);font-weight:600}
.back-btn{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:600;height:32px;margin:-4px 0 0 -4px;padding:0 4px;border-radius:var(--r-sm)}
.back-btn:hover{background:var(--surface)}
.fld{display:grid;gap:6px;margin-bottom:16px}
.fld label{font-size:13px;font-weight:600}
.fld .opt{font-weight:400;color:var(--ink-3)}
.fld input,.fld textarea{width:100%;border:1px solid #b0b0b0;border-radius:var(--r-sm);padding:12px 14px;font:inherit;font-size:16px;background:#fff;transition:border-color var(--t-fast),box-shadow var(--t-fast)}
.fld textarea{resize:vertical;min-height:64px}
.fld input:focus,.fld textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.fld input[aria-invalid=true]{border-color:#c13515;box-shadow:0 0 0 1px #c13515;background:#fff8f6}
.fld-err{font-size:13px;color:#c13515;font-weight:500}
.extras{border:0;padding:0;margin:0 0 16px}
.extras legend{font-size:13px;font-weight:600;margin-bottom:8px}
.check-row{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer;font-size:15px}
.check-row input{width:20px;height:20px;accent-color:var(--ink);flex-shrink:0}
.check-row small{margin-left:auto;color:var(--ink-2);font-size:14px}
.agree{margin-top:12px;font-size:14px}
.agree a{text-decoration:underline}
.pay{border:0;padding:0;margin:0 0 16px;display:grid;gap:8px}
.pay-opt{display:grid;grid-template-columns:20px 24px 1fr;align-items:start;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);cursor:pointer;transition:border-color var(--t-fast),box-shadow var(--t-fast),background var(--t-fast)}
.pay-opt:hover{border-color:var(--ink)}
.pay-opt:has(input:checked){border-color:var(--ink);box-shadow:0 0 0 1px var(--ink);background:var(--surface)}
.pay-opt input{width:18px;height:18px;margin-top:2px;accent-color:var(--ink)}
.pay-opt .icon{width:22px;height:22px;stroke-width:1.6}
.pay-opt b{display:block;font-size:15px;font-weight:600}
.pay-opt small{display:block;font-size:13px;color:var(--ink-2);line-height:1.4;margin-top:2px}
.book-summary{font-size:14px;color:var(--ink-2);margin-bottom:12px}
.breakdown{margin:8px 0 20px}
.book .btn .icon{width:16px;height:16px}
.book-alt-line{text-align:center;font-size:14px;color:var(--ink-2);margin-top:14px}
.book-done{text-align:center;display:grid;justify-items:center;gap:8px;padding:8px 0}
.done-mark{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#e8f5ec;color:#1f7a45;animation:pop-mark var(--t-slow) var(--ease-in)}
@keyframes pop-mark{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
.done-mark .icon{width:28px;height:28px;stroke-width:2.5}
.book-done h3{font-size:22px;margin-top:8px}
.book-done .btn{margin-top:16px}
.preview-flag{font-size:13px;color:#8a4b00;background:#fff6e5;border-radius:var(--r-sm);padding:8px 12px}
.sheet-sub{margin-top:8px}
.modal-body p{white-space:pre-line}
#flight{text-transform:uppercase}

/* =====================================================================
   Homepage sections — each with its own graphic and one purposeful motion.
   Motion: Material 3 emphasized-decelerate for entrances, run once, off under reduced motion.
   ===================================================================== */
.js [data-reveal]{opacity:0;transform:translateY(20px);transition:opacity 600ms var(--ease-in),transform 700ms var(--ease-in)}
.js [data-reveal].in{opacity:1;transform:none}
.section-head{max-width:640px;margin-bottom:48px}
.section-head .h2{margin-bottom:8px}
.section-head .sub{font-size:16px;line-height:1.5}
.block.band{margin-top:96px;padding:96px 0;background:var(--surface)}

/* ---- Our cars: fleet bar ---- */
.results-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.fleetbar{display:grid;justify-items:end;gap:8px}
.fleetbar p{font-size:13px;color:var(--ink-2)}
.fleetbar b{color:var(--ink);font-weight:600}
.fleet-slots{display:flex;gap:10px}
.slot-group{display:flex;gap:3px;padding:3px;border-radius:8px;transition:background var(--t) var(--ease)}
.slot-group i{width:14px;height:22px;border-radius:4px;background:var(--ink);transform-origin:bottom;transition:background var(--t) var(--ease)}
.js .fleetbar .slot-group i{background:var(--line)}
.js .fleetbar.in .slot-group i{background:var(--ink);animation:slot-in 500ms var(--ease-in) backwards}
.fleetbar.in .slot-group:nth-child(1) i:nth-child(1){animation-delay:100ms}.fleetbar.in .slot-group:nth-child(1) i:nth-child(2){animation-delay:160ms}.fleetbar.in .slot-group:nth-child(1) i:nth-child(3){animation-delay:220ms}
.fleetbar.in .slot-group:nth-child(2) i:nth-child(1){animation-delay:320ms}.fleetbar.in .slot-group:nth-child(2) i:nth-child(2){animation-delay:380ms}
.fleetbar.in .slot-group:nth-child(3) i:nth-child(1){animation-delay:480ms}.fleetbar.in .slot-group:nth-child(3) i:nth-child(2){animation-delay:540ms}
@keyframes slot-in{from{transform:scaleY(.2);background:var(--line)}}
.slot-group.hl{background:#fff1ea}
.js .fleetbar.in .slot-group.hl i,.slot-group.hl i{background:var(--accent)}
.card-img img{transition:transform 600ms var(--ease)}
.card:hover .card-img img{transform:scale(1.04)}
@media (max-width:743px){.fleetbar{justify-items:start}}

/* ---- Why: alternating feature rows ---- */
.why{padding-top:112px}
.feature{display:grid;grid-template-columns:1fr;gap:32px;align-items:center;padding:48px 0;border-top:1px solid var(--line-2)}
@media (min-width:950px){.feature{grid-template-columns:5fr 7fr;gap:80px;padding:72px 0}.feature-flip{grid-template-columns:7fr 5fr}.feature-flip .feature-copy{order:2}}
.feature-copy h3{font-size:clamp(22px,2.4vw,28px);line-height:1.2;letter-spacing:-.015em;margin-bottom:12px}
.feature-copy>p{color:var(--ink-2);font-size:17px;line-height:1.55;max-width:460px}
.feature-copy>p+p{margin-top:12px}
.feature-copy>p.sub{font-size:14px}
.feature-copy .btn{margin-top:24px}
.feature-copy .btn .icon{width:18px;height:18px}
.feature-art{margin:0;border-radius:var(--r-xl);background:var(--surface);padding:32px;position:relative;overflow:hidden}
.feature-art figcaption{font-size:12px;color:var(--ink-3);margin-top:12px}

/* map */
.ap-links{display:grid;grid-template-columns:1fr 1fr;gap:2px 16px;margin-top:24px}
.ap-links a{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:14px;font-weight:500;transition:color var(--t-fast)}
.ap-links a:hover,.ap-links a.hl{color:var(--accent)}
.ap-code-sm{display:inline-grid;place-items:center;width:40px;height:24px;flex-shrink:0;border-radius:6px;background:var(--surface);font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--ink-2);transition:background var(--t-fast),color var(--t-fast)}
.ap-links a:hover .ap-code-sm,.ap-links a.hl .ap-code-sm{background:var(--accent);color:#fff}
.map{width:100%;height:auto;display:block;overflow:visible}
.map .sea{font-size:15px;font-style:italic;fill:var(--ink-3);letter-spacing:.06em}
.route{fill:none;stroke:var(--ink-3);stroke-width:1.5;stroke-dasharray:1;stroke-dashoffset:0;stroke-linecap:round}
.js .route{stroke-dashoffset:1}
.map-art.in .route{animation:draw 1.1s var(--ease-in) forwards;animation-delay:calc(200ms + var(--i) * 120ms)}
@keyframes draw{to{stroke-dashoffset:0}}
.map-pt{cursor:pointer;outline:none}
.map-pt .pt{fill:#fff;stroke:var(--ink);stroke-width:2.5;transition:fill var(--t-fast),stroke var(--t-fast),r var(--t) var(--ease)}
.map-pt .pulse{fill:var(--accent);opacity:0;transform-box:fill-box;transform-origin:center}
.map-art.in .map-pt .pulse{animation:pulse 2.8s var(--ease) infinite;animation-delay:calc(1.2s + var(--i) * 300ms)}
@keyframes pulse{0%{opacity:.35;transform:scale(1)}70%,100%{opacity:0;transform:scale(3.2)}}
.map-pt text{font-size:17px;font-weight:600;fill:var(--ink);paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round;transition:fill var(--t-fast)}
.map-pt .code{font-weight:500;fill:var(--ink-3);font-size:13px}
.map-pt:hover .pt,.map-pt:focus-visible .pt,.map-pt.hl .pt{fill:var(--accent);stroke:var(--accent);r:9px}
.map-pt:hover text,.map-pt:focus-visible text,.map-pt.hl text{fill:var(--accent)}
.map-pt:focus-visible .pt{stroke-width:4}

/* chat */
.chat-art{background:#efeae2;padding:40px 24px;display:grid;place-items:center}
.chat{width:100%;max-width:380px;background:#fff;border-radius:20px;box-shadow:var(--shadow-card);overflow:hidden}
.chat-top{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line-2)}
.chat-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;padding-bottom:2px}
.chat-top b{display:block;font-size:15px}
.chat-top small{font-size:12px;color:var(--ink-3)}
.chat-body{display:flex;flex-direction:column;gap:8px;padding:16px;background:#f7f4ef;min-height:280px}
.msg{max-width:82%;padding:8px 12px 18px;border-radius:12px;font-size:14px;line-height:1.4;position:relative;box-shadow:0 1px 1px rgb(0 0 0/.06)}
.msg time{position:absolute;right:10px;bottom:4px;font-size:10px;color:var(--ink-3)}
.msg.in{align-self:flex-start;background:#fff;border-top-left-radius:4px}
.msg.out{align-self:flex-end;background:#d9fdd3;border-top-right-radius:4px}
.typing{align-self:flex-end;display:none;gap:4px;padding:12px 14px;border-radius:12px;background:#d9fdd3}
.typing span{width:6px;height:6px;border-radius:50%;background:#5c7a58;animation:dot 1s infinite}
.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}
@keyframes dot{0%,60%,100%{transform:none;opacity:.4}30%{transform:translateY(-3px);opacity:1}}
.js .chat-art .msg[data-step]{display:none}
.js .chat-art [data-step].show{display:block;animation:msg-in 400ms var(--ease-in)}
.js .chat-art .typing.show{display:flex}
@keyframes msg-in{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}

/* receipt */
.receipt-art{display:grid;place-items:center;padding:48px 24px;background:linear-gradient(160deg,var(--surface),#efefef)}
.receipt{position:relative;width:100%;max-width:380px;background:#fff;padding:24px 24px 32px;border-radius:4px 4px 0 0;box-shadow:var(--shadow-card);font-size:14px;
  -webkit-mask:radial-gradient(circle 6px at 50% 100%,#0000 98%,#000) bottom/16px 100% repeat-x;mask:radial-gradient(circle 6px at 50% 100%,#0000 98%,#000) bottom/16px 100% repeat-x}
.receipt-head{display:grid;gap:2px;padding-bottom:16px;margin-bottom:8px;border-bottom:1px dashed var(--line)}
.receipt-head b{font-size:16px}
.receipt-head span{color:var(--ink-2);font-size:13px}
.receipt-row,.receipt-total,.receipt-dep{display:flex;justify-content:space-between;gap:12px;padding:8px 0}
.receipt-row b,.receipt-dep b{font-weight:400}
.receipt b[data-count]{font-variant-numeric:tabular-nums}
.js .receipt-art .receipt-row,.js .receipt-art .receipt-total,.js .receipt-art .receipt-dep{opacity:0;transform:translateY(6px);transition:opacity 400ms var(--ease-in),transform 400ms var(--ease-in)}
.js .receipt-art.in .receipt-row,.js .receipt-art.in .receipt-total,.js .receipt-art.in .receipt-dep{opacity:1;transform:none}
.receipt-art.in .receipt-row:nth-child(3){transition-delay:120ms}.receipt-art.in .receipt-row:nth-child(4){transition-delay:240ms}.receipt-art.in .receipt-row:nth-child(5){transition-delay:360ms}
.receipt-art.in .receipt-total{transition-delay:520ms}.receipt-art.in .receipt-dep{transition-delay:640ms}
.receipt-total{border-top:1px solid var(--ink);margin-top:8px;padding-top:14px;font-size:18px;font-weight:600}
.receipt-dep{color:var(--ink-2);font-size:13px}
.receipt-stamp{position:absolute;right:18px;top:18px;border:2px solid #1f7a45;color:#1f7a45;border-radius:6px;padding:4px 8px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;transform:rotate(-8deg);opacity:.85}
.js .receipt-stamp{transform:rotate(-8deg) scale(1.6);opacity:0}
.js .receipt-art.in .receipt-stamp{animation:stamp 450ms var(--ease-in) 900ms forwards}
@keyframes stamp{to{opacity:.85;transform:rotate(-8deg) scale(1)}}

/* ---- How: timeline ---- */
.timeline{position:relative}
.tl-track{position:absolute;left:0;right:0;top:0;height:2px;display:none}
.tl-line{position:absolute;inset:0;background:var(--line);overflow:hidden}
.tl-line::after{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform 1.6s var(--ease-in)}
.tl-plane{position:absolute;top:-12px;left:0;width:24px;height:24px;color:var(--ink);opacity:0;transform:translateX(-12px);transition:left 1.6s var(--ease-in),opacity 200ms}
.tl-plane .icon{width:24px;height:24px;fill:var(--surface);transform:rotate(45deg)}
.timeline.in .tl-line::after{transform:scaleX(1)}
.timeline.in .tl-plane{left:calc(100% - 12px);opacity:1}
.tl-steps{display:grid;grid-template-columns:1fr;gap:48px}
.tl-step:nth-child(2){transition-delay:150ms}.tl-step:nth-child(3){transition-delay:300ms}
.tl-n{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--ink);color:#fff;font-size:13px;font-weight:600;margin:24px 0 12px}
.tl-step h3{font-size:20px;margin-bottom:6px}
.tl-step p{color:var(--ink-2);max-width:340px}
.tl-art{height:196px;border-radius:var(--r-lg);background:#fff;box-shadow:0 1px 2px rgb(0 0 0/.06),0 8px 24px rgb(0 0 0/.06);overflow:hidden}
.art-cal{padding:20px}
.mini-cal-head{font-size:13px;font-weight:600;margin-bottom:12px}
.mini-cal{display:grid;grid-template-columns:repeat(7,1fr);row-gap:6px;font-size:13px;text-align:center}
.mini-cal span{height:34px;display:grid;place-items:center;position:relative;z-index:0}
.mini-cal .r::before,.mini-cal .a::before,.mini-cal .b::before{content:"";position:absolute;inset:0;background:var(--surface);z-index:-1}
.mini-cal .a::before{left:50%}.mini-cal .b::before{right:50%}
.mini-cal .a::after,.mini-cal .b::after{content:"";position:absolute;width:34px;height:34px;border-radius:50%;background:var(--ink);z-index:-1}
.mini-cal .a,.mini-cal .b{color:#fff;font-weight:600}
.js .tl-step .mini-cal .r::before{transform:scaleX(0);transform-origin:left;transition:transform 500ms var(--ease-in)}
.js .tl-step.in .mini-cal .r::before{transform:none;transition-delay:600ms}
.art-flight{padding:24px;display:flex;flex-direction:column;justify-content:space-between}
.flight-row{display:flex;justify-content:space-between;align-items:center}
.flight-row b{font-size:18px;letter-spacing:.02em}
.flight-status{font-size:12px;font-weight:600;color:#9a5b00;background:#fff4e0;padding:4px 10px;border-radius:999px}
.flight-route{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--ink-2)}
.flight-route i{flex:1;height:2px;background:repeating-linear-gradient(90deg,var(--line) 0 6px,transparent 6px 12px);position:relative}
.flight-route i::after{content:"";position:absolute;top:-4px;left:0;width:10px;height:10px;border-radius:50%;background:var(--ink)}
.tl-step.in .flight-route i::after{animation:fly 3.2s var(--ease) infinite}
@keyframes fly{0%{left:0}70%,100%{left:calc(100% - 10px)}}
.flight-note{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#1f7a45}
.live-dot{width:8px;height:8px;border-radius:50%;background:#1f9d55;animation:live 1.8s infinite}
@keyframes live{0%{box-shadow:0 0 0 0 rgb(31 157 85/.5)}70%{box-shadow:0 0 0 8px rgb(31 157 85/0)}100%{box-shadow:0 0 0 0 rgb(31 157 85/0)}}
.art-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.js .tl-step .art-photo img{transform:scale(1.1)}
.js .tl-step.in .art-photo img{transform:none}
@media (min-width:950px){
  .timeline{padding-top:48px}
  .tl-track{display:block}
  .tl-steps{grid-template-columns:repeat(3,1fr);gap:32px}
}

/* ---- Guide: editorial + sticky TOC ---- */
.guide2{padding-top:112px}
.guide-grid{display:grid;grid-template-columns:1fr;gap:32px}
@media (min-width:950px){.guide-grid{grid-template-columns:4fr 7fr;gap:80px;align-items:start}.guide-aside{position:sticky;top:calc(var(--header) + 40px)}}
.toc{position:relative;display:none;margin-top:32px;padding-left:16px;border-left:2px solid var(--line-2)}
@media (min-width:950px){.toc{display:grid}}
.toc a{padding:8px 0;font-size:14px;color:var(--ink-2);transition:color var(--t-fast)}
.toc a:hover,.toc a.active{color:var(--ink)}
.toc a.active{font-weight:600}
.toc-ink{position:absolute;left:-2px;top:0;width:2px;height:37px;background:var(--ink);transition:transform var(--t-slow) var(--ease)}
.guide-body .lede{font-size:20px;line-height:1.5;color:var(--ink)}
.guide-body section{scroll-margin-top:calc(var(--header) + 24px)}
.guide-body h3{font-size:22px;margin-top:40px}
.speed{display:flex;gap:24px;margin:20px 0 24px}
.speed div{display:grid;justify-items:center;gap:8px}
.speed .sign{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;border:7px solid #d32f2f;background:#fff;font-size:20px;font-weight:700;letter-spacing:-.02em;color:#111}
.speed small{font-size:13px;color:var(--ink-2)}
.js .speed .sign{transform:scale(.6);opacity:0;transition:transform 500ms var(--ease-in),opacity 300ms}
.js .speed.in .sign{transform:none;opacity:1}
.speed.in div:nth-child(2) .sign{transition-delay:100ms}.speed.in div:nth-child(3) .sign{transition-delay:200ms}

@media (prefers-reduced-motion:reduce){
  .js [data-reveal],.js .receipt-art .receipt-row,.js .receipt-art .receipt-total,.js .receipt-art .receipt-dep,.js .speed .sign,.js .tl-step .art-photo img{opacity:1;transform:none}
  .js .route{stroke-dashoffset:0}.js .receipt-stamp{opacity:.85;transform:rotate(-8deg)}
  .js .chat-art .msg[data-step]{display:block}.js .tl-step .mini-cal .r::before{transform:none}
  .map-pt .pulse,.live-dot,.typing span,.flight-route i::after{animation:none!important}
}
@media (max-width:1127px){.header.compact .wa-link{display:none}}@media (max-width:743px){.wa-link{display:none}}

/* ---- Contact: dark closing band with direct channels ---- */
.contact{display:grid;grid-template-columns:1fr;gap:32px;padding:40px 24px;border-radius:var(--r-xl);background:#1c1c1c;color:#fff;position:relative;overflow:hidden;isolation:isolate}
.contact::before{content:"";position:absolute;inset:auto -10% -60% auto;width:520px;height:520px;border-radius:50%;background:radial-gradient(closest-side,rgb(213 70 14/.35),transparent);z-index:-1;pointer-events:none}
@media (min-width:950px){.contact{grid-template-columns:1fr 1fr;gap:80px;align-items:center;padding:64px}}
.contact-copy h2{font-size:clamp(26px,3.2vw,36px);line-height:1.15;letter-spacing:-.02em}
.contact-copy p{color:rgb(255 255 255/.72);font-size:17px;line-height:1.55;margin-top:12px;max-width:440px}
.contact-copy .contact-small{font-size:14px;color:rgb(255 255 255/.5);margin-top:24px}
.contact-list{display:grid;gap:8px}
.contact-row{width:100%;display:grid;grid-template-columns:44px 1fr 20px;align-items:center;gap:16px;padding:16px 18px;border-radius:var(--r-lg);background:rgb(255 255 255/.06);border:1px solid rgb(255 255 255/.08);color:#fff;text-align:left;transition:background var(--t) var(--ease),border-color var(--t) var(--ease),transform var(--t-fast) var(--ease)}
.contact-row:hover{background:rgb(255 255 255/.11);border-color:rgb(255 255 255/.18)}
.contact-row:active{transform:scale(.99)}
.contact-row:focus-visible{outline:2px solid #fff;outline-offset:2px}
.contact-row b{display:block;font-size:16px;font-weight:600}
.contact-row small{display:block;font-size:14px;color:rgb(255 255 255/.6);margin-top:2px}
.contact-row>.icon{width:18px;height:18px;color:rgb(255 255 255/.5);transition:transform var(--t) var(--ease),color var(--t)}
.contact-row:hover>.icon{transform:translateX(4px);color:#fff}
.c-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:rgb(255 255 255/.1)}
.c-ic .icon{width:20px;height:20px}
.c-wa{background:#1f8f4e}
.js .contact .contact-list li{opacity:0;transform:translateX(16px);transition:opacity 500ms var(--ease-in),transform 600ms var(--ease-in)}
.js .contact.in .contact-list li{opacity:1;transform:none}
.contact.in .contact-list li:nth-child(2){transition-delay:100ms}.contact.in .contact-list li:nth-child(3){transition-delay:200ms}
@media (prefers-reduced-motion:reduce){.js .contact .contact-list li{opacity:1;transform:none}}

/* ===== Car pages (listing-style detail) ===== */
.car-hero h1{font-size:clamp(28px,3.6vw,40px);line-height:1.1;letter-spacing:-.02em}
.car-sub-line{color:var(--ink-2);margin:8px 0 24px}
.car-photo{margin:0 0 32px;border-radius:var(--r-xl);overflow:hidden;background:var(--surface);position:relative}
.car-photo img{width:100%;aspect-ratio:21/9;object-fit:cover;display:block}
@media (max-width:743px){.car-photo{margin-inline:calc(var(--pad)*-1);border-radius:0}.car-photo img{aspect-ratio:2/1}}
.car-photo figcaption{position:absolute;left:16px;bottom:16px;background:rgb(255 255 255/.92);backdrop-filter:blur(6px);padding:6px 12px;border-radius:999px;font-size:13px;font-weight:500}
.car-hero .search{margin:0}
.car-hero .search-note{text-align:left}
.car-layout{display:grid;grid-template-columns:1fr;gap:40px;padding-top:40px}
@media (min-width:950px){.car-layout{grid-template-columns:minmax(0,1fr) 360px;gap:80px;align-items:start}.car-aside{position:sticky;top:calc(var(--header) + 24px)}}
@media (min-width:1128px){.car-layout{grid-template-columns:minmax(0,1fr) 380px;gap:96px}}
.car-sec{padding:40px 0;border-bottom:1px solid var(--line-2)}
.car-sec:first-child{padding-top:0}
.car-sec:last-child{border-bottom:0}
.car-sec h2{font-size:22px;line-height:1.25;margin-bottom:16px}
.car-sec h3{font-size:16px;margin:28px 0 12px}
.car-sec>p{color:var(--ink-2);max-width:620px;line-height:1.6}
.car-lede{font-size:18px;color:var(--ink)!important;font-weight:500;margin-bottom:8px}
.highlights{display:grid;gap:24px}
.highlights li{display:grid;grid-template-columns:28px 1fr;gap:16px;align-items:start}
.highlights .icon{width:26px;height:26px;stroke-width:1.5}
.highlights b{display:block;font-size:16px}
.highlights span{color:var(--ink-2);font-size:14px}
.good-for{display:grid;gap:10px}
.good-for li{display:flex;gap:10px;align-items:center}
.good-for .icon{width:18px;height:18px;color:#1f7a45}
.spec-table{display:grid;grid-template-columns:1fr;border-top:1px solid var(--line-2)}
@media (min-width:600px){.spec-table{grid-template-columns:1fr 1fr;column-gap:32px}}
.spec-table div{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line-2)}
.spec-table dt{color:var(--ink-2)}
.spec-table dd{margin:0;font-weight:600;text-align:right}
.car-sec .sub{margin-top:12px}
.incl-grid{display:grid;grid-template-columns:1fr;gap:24px}
@media (min-width:600px){.incl-grid{grid-template-columns:1fr 1fr}}
.incl-list{display:grid;gap:12px}
.incl-list li{display:grid;grid-template-columns:20px 1fr;gap:12px;align-items:start}
.incl-list .icon{width:18px;height:18px;margin-top:3px;color:#1f7a45}
.incl-list.not li{color:var(--ink-2)}
.incl-list.not .icon{color:var(--ink-3)}
.price-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pc{display:grid;gap:2px;padding:20px;border:1px solid var(--line);border-radius:var(--r-lg)}
.pc span{font-size:13px;color:var(--ink-2)}
.pc b{font-size:26px;font-weight:600;letter-spacing:-.02em}
.pc small{font-size:13px;color:var(--ink-3)}
.pay-ways{display:grid;grid-template-columns:1fr;gap:12px}
@media (min-width:600px){.pay-ways{grid-template-columns:repeat(3,1fr)}}
.pay-ways li{display:grid;grid-template-columns:24px 1fr;gap:12px;padding:16px;border-radius:var(--r);background:var(--surface)}
.pay-ways .icon{width:22px;height:22px;stroke-width:1.6}
.pay-ways b{display:block;font-size:15px}
.pay-ways span{font-size:13px;color:var(--ink-2)}
.req{display:grid;gap:16px}
.req li{display:grid;gap:2px;padding-left:16px;border-left:2px solid var(--ink)}
.req span{color:var(--ink-2);font-size:14px}
.car-book{position:relative}
.car-book .book-fields .full{border-left:0}
.car-book .book-alt-line{margin-top:20px}
.other-cars{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))!important;max-width:880px}
@media (min-width:1128px){.footer-cols{grid-template-columns:repeat(4,1fr)}}
@media (max-width:949px){.car-aside{order:-1}}
.car-top{display:grid;grid-template-columns:1fr;gap:24px;align-items:center;margin-bottom:32px}
@media (min-width:880px){.car-top{grid-template-columns:minmax(0,560px) 1fr;gap:56px}}
.car-top .car-photo{margin:0;background:#fff;border:1px solid var(--line-2)}
.car-top .car-photo img{aspect-ratio:436/206;object-fit:contain}
@media (max-width:743px){.car-top .car-photo{margin-inline:0;border-radius:var(--r-lg)}}
.car-top .car-photo figcaption{font-size:12px;padding:4px 10px}
.car-from{display:flex;align-items:baseline;gap:8px;color:var(--ink-2)}
.car-from b{font-size:clamp(32px,4vw,44px);font-weight:600;letter-spacing:-.03em;color:var(--ink)}
.fact-chips{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
.fact-chips li{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;font-size:14px;font-weight:500}
.fact-chips .icon{width:16px;height:16px;color:var(--ink-2)}
.car-fleet{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--ink-2)}
.fleet-dots{display:flex;gap:3px}
.fleet-dots i{width:10px;height:16px;border-radius:3px;background:var(--line)}
.fleet-dots i.on{background:var(--ink)}
.car-top .car-photo img{height:auto;object-fit:cover}

/* Odysser Modern Footer Import */
@import url('/footer-odysser.css');
