
:root {
  --dsv3-primary-50: 240 253 249;
  --dsv3-primary-100: 205 250 239;
  --dsv3-primary-200: 155 244 223;
  --dsv3-primary-300: 96 232 204;
  --dsv3-primary-500: 23 181 157;
  --dsv3-primary-700: 13 133 116;
  --dsv3-primary-800: 18 93 85;
  --dsv3-primary-900: 10 67 62;
  --dsv3-primary-950: 5 46 43;
  --dsv3-gray-50: 248 247 247;
  --dsv3-gray-100: 239 239 239;
  --dsv3-gray-200: 220 219 219;
  --dsv3-gray-300: 190 187 187;
  --dsv3-gray-500: 120 115 115;
  --dsv3-gray-600: 103 98 98;
  --dsv3-gray-800: 72 68 68;
  --dsv3-gray-950: 41 40 40;
  --dsv3-canvas: rgb(var(--dsv3-gray-50));
  --dsv3-surface: #fff;
  --dsv3-ink: rgb(var(--dsv3-gray-950));
  --dsv3-muted: rgb(var(--dsv3-gray-600));
  --dsv3-line: rgb(var(--dsv3-gray-200));
  --dsv3-accent: rgb(var(--dsv3-primary-700));
  --dsv3-accent-strong: rgb(var(--dsv3-primary-900));
  --dsv3-soft: rgb(var(--dsv3-primary-50));
  --dsv3-button: linear-gradient(135deg, rgb(45 199 166), rgb(13 148 136));
  --dsv3-shadow-xs: 0 1px 2px rgb(0 0 0 / .05);
  --dsv3-shadow-md: 0 14px 42px -20px rgb(5 46 43 / .3);
  --dsv3-shadow-lg: 0 30px 80px -30px rgb(5 46 43 / .45);
  --dsv3-pill: 999px;
  --dsv3-r-md: 12px;
  --dsv3-r-lg: 18px;
  --dsv3-r-xl: 26px;
  --dsv3-font: "FT Kunst Grotesk", "Fellix", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bg: rgb(var(--dsv3-gray-50));
  --surface: #fff;
  --line: rgb(var(--dsv3-gray-200));
  --line-strong: rgb(var(--dsv3-gray-300));
  --ink: rgb(var(--dsv3-gray-950));
  --ink-soft: rgb(var(--dsv3-gray-600));
  --accent: rgb(var(--dsv3-primary-700));
  --accent-soft: rgb(var(--dsv3-primary-50));
  --on-accent: #fff;
  --danger: rgb(181 55 46);
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --radius-xl: 26px;
  --radius-pill: 999px;
  --shadow-lg: var(--dsv3-shadow-lg);
  --weight-medium: 600;
  --weight-bold: 750;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html.dsv3-menu-open { overflow: hidden; }
body { min-width: 320px; margin: 0; color: var(--dsv3-ink); background: rgb(var(--dsv3-primary-800)); font-family: var(--dsv3-font); }
button, input, select, textarea { font: inherit; }
button, summary { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.dsv3-root { overflow-x: clip; background: var(--dsv3-canvas); }
.dsv3-shell { width: min(calc(100% - 48px), 1240px); margin-inline: auto; }
.dsv3-sr, .sr-only { position: absolute!important; width: 1px!important; height: 1px!important; overflow: hidden!important; clip: rect(0 0 0 0)!important; clip-path: inset(50%)!important; white-space: nowrap!important; }
.dsv3-btn { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; gap: 9px; padding: 0 19px; border: 0; border-radius: var(--dsv3-pill); font-weight: 650; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.dsv3-btn:hover { transform: translateY(-1px); }
.dsv3-btn--primary { color: #fff; background: var(--dsv3-button); box-shadow: 0 10px 28px -13px rgb(var(--dsv3-primary-950)); }
.dsv3-btn--light { color: var(--dsv3-accent-strong); background: #fff; }
.dsv3-btn--ghost { color: var(--dsv3-ink); background: rgb(255 255 255 / .72); }
.dsv3-iconbtn { width: 46px; padding: 0; }
.dsv3-kicker { display: block; color: var(--dsv3-accent); font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.dsv3-arrow--back { transform: rotate(180deg); }
.dsv3-section { padding-block: clamp(58px, 7vw, 96px); }
.dsv3-sectionhead { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 28px; }
.dsv3-sectionhead h2 { max-width: 16ch; margin: 7px 0 0; font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 500; line-height: 1.02; letter-spacing: -.045em; }
.dsv3-sectionhead p { max-width: 55ch; margin: 0; color: var(--dsv3-muted); font-size: 1rem; line-height: 1.65; }

.dsv3-header { position: sticky; z-index: 70; top: 0; }
.dsv3-utility { max-height: 44px; overflow: visible; color: #fff; background: rgb(var(--dsv3-primary-700)); transition: max-height .26s ease, opacity .26s ease; }
.dsv3-utility__inner { display: flex; min-height: 44px; align-items: center; gap: 16px; }
.dsv3-regions { display: flex; min-width: 0; flex: 1; align-self: stretch; align-items: center; gap: 3px; }
.dsv3-region { position: relative; align-self: stretch; }
.dsv3-region__trigger, .dsv3-utilitylink { display: inline-flex; min-height: 44px; height: 100%; align-items: center; gap: 5px; padding: 0 9px; border: 0; color: inherit; background: transparent; font-size: .76rem; font-weight: 550; white-space: nowrap; }
.dsv3-region__trigger svg { transition: transform .25s ease; }
.dsv3-region__trigger[aria-expanded="true"] svg { transform: rotate(180deg); }
.dsv3-holidaytypes { position: relative; align-self: stretch; }
.dsv3-holidaytypes__trigger { display: inline-flex; min-height: 44px; height: 100%; align-items: center; justify-content: center; gap: 6px; padding-inline: 10px; border: 0; border-radius: 9px; color: #fff; background: rgb(255 255 255 / .1); font-size: .76rem; font-weight: 600; white-space: nowrap; }
.dsv3-holidaytypes__trigger svg { transition: transform .25s ease; }
.dsv3-holidaytypes__trigger[aria-expanded="true"] { background: transparent; font-weight: 700; }
.dsv3-holidaytypes__trigger[aria-expanded="true"] svg { transform: rotate(180deg); }
.dsv3-holidaytypes__panel { position: fixed; z-index: 96; top: 50px; right: max(16px, calc((100vw - 1240px) / 2 + 24px)); width: min(458px, calc(100vw - 32px)); padding: 20px; border-radius: 16px; color: var(--dsv3-ink); background: #fff; box-shadow: 0 24px 70px rgb(5 46 43 / .2); transform-origin: 80% 0; animation: dsv3-search-open .24s cubic-bezier(.22,.78,.2,1) both; }
.dsv3-holidaytypes__head { display: flex; min-height: 42px; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 10px; }
.dsv3-holidaytypes__head > strong { font-size: 1rem; font-weight: 500; }
.dsv3-holidaytypes__head > a { display: inline-flex; align-items: center; gap: 7px; color: var(--dsv3-accent-strong); font-size: .76rem; }
.dsv3-holidaytypes__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 14px; }
.dsv3-holidaytypes__link { display: grid; min-height: 52px; grid-template-columns: 22px minmax(0,1fr) 16px; align-items: center; gap: 8px; padding: 7px 8px; border-radius: 10px; font-size: .78rem; line-height: 1.35; transition: color .18s ease, background .18s ease, transform .18s ease; }
.dsv3-holidaytypes__link strong { font-weight: 500; }
.dsv3-holidaytypes__icon { display: grid; color: var(--dsv3-muted); place-items: center; }
.dsv3-holidaytypes__link > svg { color: var(--dsv3-muted); }
.dsv3-holidaytypes__link:hover { color: var(--dsv3-accent-strong); background: var(--dsv3-soft); transform: translateX(2px); }
.dsv3-header[data-shrunk="true"] .dsv3-holidaytypes__panel { display: none; }
.dsv3-meta { display: flex; align-items: center; gap: 13px; font-size: .74rem; white-space: nowrap; }
.dsv3-meta > a, .dsv3-traveltips { display: inline-flex; min-height: 44px; align-items: center; }
.dsv3-locale { position: relative; }
.dsv3-locale summary { display: inline-flex; min-height: 44px; align-items: center; gap: 5px; padding: 0 7px; border-radius: 9px; color: inherit; list-style: none; cursor: pointer; }
.dsv3-locale summary::-webkit-details-marker { display: none; }
.dsv3-locale summary svg { transition: transform .2s ease; }
.dsv3-locale[open] summary { background: rgb(255 255 255 / .12); }
.dsv3-locale[open] summary svg { transform: rotate(180deg); }
.dsv3-locale form { position: absolute; z-index: 98; top: calc(100% + 9px); right: 0; width: 286px; padding: 17px; border-radius: 16px; color: var(--dsv3-ink); background: #fff; box-shadow: 0 24px 70px rgb(5 46 43 / .2); animation: dsv3-search-open .24s cubic-bezier(.22,.78,.2,1) both; }
.dsv3-locale fieldset { margin: 0; padding: 0; border: 0; }
.dsv3-locale fieldset + fieldset { margin-top: 15px; }
.dsv3-locale legend { margin-bottom: 8px; color: var(--dsv3-muted); font-size: .66rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.dsv3-locale fieldset > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
.dsv3-locale fieldset:first-of-type > div { grid-template-columns: 1fr 1fr; }
.dsv3-locale label { position: relative; cursor: pointer; }
.dsv3-locale label input { position: absolute; opacity: 0; pointer-events: none; }
.dsv3-locale label span { display: grid; min-height: 38px; place-items: center; padding-inline: 9px; border-radius: 10px; background: var(--dsv3-gray-50); font-weight: 650; }
.dsv3-locale label input:checked + span { color: var(--dsv3-accent-strong); background: var(--dsv3-soft); box-shadow: inset 0 0 0 1px rgb(var(--dsv3-primary-300)); }
.dsv3-locale label input:focus-visible + span { outline: 2px solid rgb(var(--dsv3-primary-500)); outline-offset: 2px; }
.dsv3-locale .dsv3-btn { width: 100%; min-height: 40px; margin-top: 15px; }
.dsv3-traveltips { display: inline-flex; align-items: center; gap: 7px; font-weight: 650; }
.dsv3-mainhead { position: relative; background: #fff; box-shadow: 0 1px 0 rgb(0 0 0 / .06); }
.dsv3-mainhead__inner { display: grid; min-height: 81px; grid-template-columns: 128px minmax(280px, 1fr) auto auto; align-items: center; gap: 22px; transition: min-height .26s cubic-bezier(.22,.78,.2,1); }
.dsv3-logo { display: block; width: 118px; transition: width .26s cubic-bezier(.22,.78,.2,1); }
.dsv3-logo img { width: 100%; height: auto; }
.dsv3-headsearch { position: relative; min-width: 0; }
.dsv3-headsearch__form { display: grid; height: 48px; grid-template-columns: 22px minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 0 5px 0 15px; border: 1px solid var(--dsv3-line); border-radius: var(--dsv3-pill); background: var(--dsv3-gray-50); }
.dsv3-headsearch__form:focus-within { border-color: rgb(var(--dsv3-primary-500)); box-shadow: 0 0 0 4px rgb(var(--dsv3-primary-100) / .72); }
.dsv3-headsearch input { min-width: 0; height: 100%; padding: 0; border: 0; outline: 0; background: transparent; }
.dsv3-headsearch .dsv3-btn { min-height: 38px; padding-inline: 17px; }
.dsv3-searchpanel { position: absolute; z-index: 9; top: calc(100% + 10px); left: 0; width: 100%; padding: 22px; border-radius: 18px; background: #fff; box-shadow: var(--dsv3-shadow-lg); transform-origin: 50% 0; animation: dsv3-search-open .3s cubic-bezier(.22,.78,.2,1) both; }
.dsv3-searchpanel[hidden] { display: none; }
@keyframes dsv3-search-open { from { opacity: 0; transform: translateY(-8px) scale(.985); } to { opacity: 1; transform: none; } }
.dsv3-searchpanel__group + .dsv3-searchpanel__group { margin-top: 18px; }
.dsv3-searchpanel h3 { margin: 0 0 9px; color: var(--dsv3-muted); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.dsv3-searchchips { display: flex; flex-wrap: wrap; gap: 7px; }
.dsv3-searchchips a { padding: 8px 11px; border-radius: var(--dsv3-pill); background: var(--dsv3-soft); font-size: .78rem; }
.dsv3-searchproducts { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.dsv3-searchlist { display: grid; gap: 8px; }
.dsv3-searchcard { display: grid; min-width: 0; min-height: 58px; grid-template-columns: 58px minmax(0,1fr) 17px; align-items: center; gap: 10px; color: var(--dsv3-ink); }
.dsv3-searchcard img, .dsv3-searchcard__media { display: block; width: 58px; height: 58px; border-radius: 11px; background: var(--dsv3-soft); object-fit: cover; }
.dsv3-searchcard__copy { min-width: 0; }
.dsv3-searchcard strong { display: -webkit-box; overflow: hidden; font-size: .76rem; font-weight: 720; line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.dsv3-searchcard small { display: block; margin-top: 3px; overflow: hidden; color: var(--dsv3-muted); font-size: .67rem; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-searchcard > svg { justify-self: end; }
.dsv3-livesuggest[hidden] { display: none!important; }
.dsv3-livesuggest { display: grid; gap: 17px; }
.dsv3-livesuggest > section + section { padding-top: 15px; box-shadow: 0 -1px 0 var(--dsv3-line); }
.dsv3-livesuggest h3 { margin: 0 0 8px; color: var(--dsv3-muted); font-size: .68rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.dsv3-livesuggest__list { display: grid; gap: 2px; }
.dsv3-livesuggest__list a { display: grid; min-width: 0; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 10px 7px; border-radius: 10px; }
.dsv3-livesuggest__list a:hover, .dsv3-livesuggest__list a:focus-visible { outline: 0; background: var(--dsv3-soft); }
.dsv3-livesuggest__list a > span:first-child, .dsv3-livesuggest__list strong, .dsv3-livesuggest__list small { display: block; min-width: 0; }
.dsv3-livesuggest__list strong { overflow: hidden; font-size: .79rem; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-livesuggest__list small { margin-top: 3px; overflow: hidden; color: var(--dsv3-muted); font-size: .64rem; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-livesuggest__list a > span:last-child { color: var(--dsv3-accent-strong); font-size: 1rem; }
.dsv3-livesuggest__empty { margin: 0; padding: 10px 7px; color: var(--dsv3-muted); font-size: .76rem; }
.dsv3-headsearch[data-suggesting="true"] .dsv3-searchpanel > :not(.dsv3-livesuggest) { display: none; }
.dsv3-mainnav, .dsv3-account { display: flex; align-items: center; gap: 16px; }
.dsv3-mainnav a { font-size: .82rem; font-weight: 600; white-space: nowrap; }
.dsv3-account { gap: 7px; }
.dsv3-account .dsv3-btn { min-height: 42px; padding-inline: 15px; font-size: .78rem; }
.dsv3-header--home .dsv3-headsearch .dsv3-btn,
.dsv3-header--home .dsv3-account .dsv3-btn--primary,
.dsv3-header--overlay:not([data-shrunk="true"]) .dsv3-headsearch .dsv3-btn,
.dsv3-header--overlay:not([data-shrunk="true"]) .dsv3-account .dsv3-btn--primary { color: #fff; }
.dsv3-header[data-shrunk="true"] .dsv3-utility { max-height: 0; opacity: 0; overflow: hidden; }
.dsv3-header[data-shrunk="true"] .dsv3-mainhead__inner { min-height: 68px; }
.dsv3-header[data-shrunk="true"] .dsv3-logo { width: 104px; }
.dsv3-header[data-shrunk="true"] .dsv3-account .dsv3-btn { min-height: 38px; }
.dsv3-mega { position: fixed; z-index: 65; top: 125px; left: 50%; width: min(calc(100% - 48px), 1180px); max-height: min(560px, calc(100vh - 147px)); overflow: hidden; padding: 0; border-radius: 0 0 22px 22px; color: var(--dsv3-ink); background: #fff; box-shadow: var(--dsv3-shadow-lg); transform: translateX(-50%); animation: dsv3-mega-in .3s cubic-bezier(.22,.78,.2,1) both; transition: top .26s cubic-bezier(.22,.78,.2,1); }
.dsv3-header[data-shrunk="true"] .dsv3-mega { top: 68px; }
.dsv3-mega__grid { display: grid; grid-template-columns: 190px minmax(0,1fr) minmax(320px,390px); }
.dsv3-mega__grid--no-experiences .dsv3-mega__feature { grid-column: 2 / 4; }
.dsv3-mega__grid--no-feature .dsv3-mega__experiencecol { grid-column: 2 / 4; padding-left: 18px; }
.dsv3-mega__countries { grid-row: 1 / span 2; padding: 17px; background: var(--dsv3-gray-50); }
.dsv3-mega__regionlink { display: flex; min-height: 34px; align-items: center; justify-content: space-between; gap: 9px; color: var(--dsv3-ink); }
.dsv3-mega__regionlink strong { font-size: .82rem; }
.dsv3-mega__regionlink svg { color: var(--dsv3-accent-strong); }
.dsv3-mega__countrylist { display: grid; gap: 2px; margin-top: 7px; }
.dsv3-mega__country { display: grid; min-height: 35px; grid-template-columns: minmax(0,1fr) auto 15px; align-items: center; gap: 7px; padding: 0 8px; border-radius: 9px; color: var(--dsv3-muted); font-size: .73rem; }
.dsv3-mega__country small { font-size: .61rem; }
.dsv3-mega__country > svg { color: var(--dsv3-accent-strong); opacity: 0; transform: translateX(-4px); transition: opacity .18s ease,transform .18s ease; }
.dsv3-mega__country:hover, .dsv3-mega__country[data-selected="true"] { color: var(--dsv3-ink); background: #fff; }
.dsv3-mega__country:hover > svg, .dsv3-mega__country[data-selected="true"] > svg { opacity: 1; transform: none; }
.dsv3-mega__more { margin-top: 11px; padding: 10px 8px 0; box-shadow: 0 -1px 0 var(--dsv3-line); }
.dsv3-mega__more > strong { display: block; color: var(--dsv3-muted); font-size: .63rem; letter-spacing: .08em; text-transform: uppercase; }
.dsv3-mega__more > div { display: grid; grid-template-columns: minmax(0,1fr); gap: 4px; margin-top: 7px; }
.dsv3-mega__more a { color: var(--dsv3-muted); font-size: .66rem; line-height: 1.35; }
.dsv3-mega__othercountry { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-mega__othercountry[data-selected="true"] { color: var(--dsv3-accent-strong); font-weight: 700; }
.dsv3-mega__more a:hover { color: var(--dsv3-accent-strong); text-decoration: underline; text-underline-offset: 3px; }
.dsv3-mega__more .dsv3-mega__morelink { display: flex; min-height: 32px; align-items: center; justify-content: space-between; gap: 6px; margin-top: 8px; color: var(--dsv3-accent-strong); font-weight: 760; box-shadow: 0 -1px 0 var(--dsv3-line); }
.dsv3-mega__more .dsv3-mega__morelink:hover { text-decoration: none; }.dsv3-mega__morelink svg { flex: none; }
.dsv3-mega__heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.dsv3-mega__heading strong { font-size: .82rem; }
.dsv3-mega__heading a { color: var(--dsv3-accent); font-size: .72rem; font-weight: 650; }
.dsv3-mega__heading span > small { display: block; margin-top: 3px; color: var(--dsv3-muted); font-size: .65rem; font-weight: 450; }
.dsv3-mega__heading > b { padding: 5px 8px; border-radius: var(--dsv3-pill); color: var(--dsv3-accent-strong); background: var(--dsv3-soft); font-size: .62rem; font-weight: 650; white-space: nowrap; }
.dsv3-mega__feature { min-width: 0; padding: 17px 18px; }
.dsv3-mega__visual { position: relative; display: block; height: 184px; overflow: hidden; border-radius: 15px; color: #fff; background: linear-gradient(145deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-700))); }
.dsv3-mega__visual img { width: 100%; height: 100%; object-fit: cover; }
.dsv3-mega__visual::after { position: absolute; inset: 0; background: linear-gradient(0deg,rgb(4 31 29 / .9),transparent 72%); content: ""; }
.dsv3-mega__visualcopy { position: absolute; z-index: 1; right: 15px; bottom: 13px; left: 15px; }
.dsv3-mega__visualcopy strong, .dsv3-mega__visualcopy small { display: block; }
.dsv3-mega__visualcopy strong { font-size: 1rem; line-height: 1.25; }
.dsv3-mega__visualcopy small { margin-top: 4px; color: rgb(255 255 255 / .7); font-size: .68rem; }
.dsv3-mega__experiencecol { min-width: 0; padding: 17px 17px 13px 0; }
.dsv3-mega__experiences { display: grid; gap: 4px; }
.dsv3-mega__experiences a { display: grid; min-height: 49px; grid-template-columns: 58px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 5px 9px 5px 5px; border-radius: 10px; background: var(--dsv3-soft); }
.dsv3-mega__experiences a.dsv3-mega__experience--text { grid-template-columns: minmax(0,1fr) auto; padding-left: 9px; }
.dsv3-mega__experiences strong { display: block; overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-mega__experiences small { display: block; margin-top: 3px; color: var(--dsv3-muted); font-size: .64rem; }
.dsv3-mega__thumb { display: block; width: 58px; height: 39px; overflow: hidden; border-radius: 8px; background: var(--dsv3-gray-100); }
.dsv3-mega__thumb img { width: 100%; height: 100%; object-fit: cover; }
.dsv3-mega__hotelstrip { grid-column: 2 / 4; display: grid; grid-template-columns: 120px minmax(0,1fr); align-items: center; gap: 13px; padding: 10px 16px 14px 18px; background: var(--dsv3-surface); }
.dsv3-mega__hotelhead { display: grid; gap: 6px; }
.dsv3-mega__hotelhead strong { font-size: .76rem; }
.dsv3-mega__hotelhead a { display: inline-flex; align-items: center; gap: 5px; color: var(--dsv3-accent); font-size: .65rem; }
.dsv3-mega__hotels { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.dsv3-mega__hotel { display: grid; min-width: 0; min-height: 68px; grid-template-columns: 72px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 6px 9px 6px 6px; border-radius: 11px; background: var(--dsv3-soft); transition: transform .18s ease, background .18s ease; }
.dsv3-mega__hotel.dsv3-mega__hotel--text { grid-template-columns: minmax(0,1fr) auto; padding-left: 11px; }
.dsv3-mega__thumb--hotel { width: 72px; height: 52px; }
.dsv3-mega__hotel:hover { transform: translateY(-2px); background: var(--dsv3-gray-50); }
.dsv3-mega__hotel strong { display: -webkit-box; overflow: hidden; font-size: .72rem; line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.dsv3-mega__hotel small { display: block; overflow: hidden; margin-top: 4px; color: var(--dsv3-muted); font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
@keyframes dsv3-mega-in { from { opacity: 0; transform: translate(-50%,-9px) scale(.988); } to { opacity: 1; transform: translate(-50%,0) scale(1); } }
.dsv3-mobilebar, .dsv3-mobilemenu { display: none; }

.dsv3-hero { position: relative; min-height: 680px; overflow: hidden; color: #fff; background: rgb(var(--dsv3-primary-950)); }
.dsv3-hero__backgrounds, .dsv3-hero__bg, .dsv3-hero__wash { position: absolute; inset: 0; }
.dsv3-hero__bg { opacity: 0; transform: translateX(5%); transition: opacity .55s ease, transform .62s cubic-bezier(.22,.78,.2,1); }
.dsv3-hero__bg[data-active="true"] { opacity: 1; transform: none; }
.dsv3-hero__bg img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.88) contrast(1.04); }
.dsv3-hero__wash { background: linear-gradient(90deg,rgb(5 36 33 / .96),rgb(5 46 43 / .74) 47%,rgb(5 46 43 / .24)), linear-gradient(0deg,rgb(5 46 43 / .55),transparent 45%); }
.dsv3-hero__inner { position: relative; z-index: 2; display: grid; min-height: 680px; grid-template-columns: minmax(0,1fr) minmax(350px,440px); align-items: center; gap: clamp(40px,7vw,100px); padding-block: 74px 82px; }
.dsv3-hero__copy { max-width: 660px; }
.dsv3-hero__mode { display: inline-flex; align-items: center; gap: 7px; color: rgb(var(--dsv3-primary-100)); font-size: .72rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.dsv3-hero h1 { max-width: 10ch; margin: 13px 0 0; font-size: clamp(3.6rem,6.3vw,5.3rem); font-weight: 500; line-height: .96; letter-spacing: -.058em; }
.dsv3-hero__lede { max-width: 54ch; margin: 22px 0 0; color: rgb(255 255 255 / .77); font-size: 1.05rem; line-height: 1.65; }
.dsv3-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.dsv3-hero__stage { position: relative; height: 430px; }
.dsv3-hero__card { position: absolute; inset: 0; overflow: hidden; border-radius: 24px; opacity: 0; pointer-events: none; transform: translateX(24px) scale(.98); box-shadow: var(--dsv3-shadow-lg); transition: opacity .5s ease, transform .58s cubic-bezier(.22,.78,.2,1); }
.dsv3-hero__card[data-active="true"] { z-index: 2; opacity: 1; pointer-events: auto; transform: none; }
.dsv3-hero__card img, .dsv3-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dsv3-hero__video { z-index: 0; background: rgb(var(--dsv3-primary-950)); }
.dsv3-hero__card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg,rgb(3 28 26 / .94),transparent 68%); }
.dsv3-hero__cardcopy { position: absolute; z-index: 1; right: 24px; bottom: 22px; left: 24px; }
.dsv3-hero__cardcopy small { color: rgb(255 255 255 / .74); font-size: .74rem; }
.dsv3-hero__cardcopy h2 { display: flex; align-items: end; justify-content: space-between; gap: 15px; margin: 7px 0 0; font-size: 1.65rem; font-weight: 500; line-height: 1.08; letter-spacing: -.035em; }
.dsv3-hero__nextstage { position: relative; min-height: 82px; margin-top: 12px; }
.dsv3-hero__next { position: absolute; inset: 0; display: grid; min-height: 82px; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; overflow: hidden; padding: 13px 16px; border-radius: 14px; background: rgb(var(--dsv3-primary-900)); box-shadow: var(--dsv3-shadow-md); opacity: 0; pointer-events: none; transform: translateX(12px); transition: opacity .38s ease, transform .48s cubic-bezier(.22,.78,.2,1); }
.dsv3-hero__next[data-active="true"] { z-index: 1; opacity: 1; pointer-events: auto; transform: none; }
.dsv3-hero__next img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .32; }
.dsv3-hero__next::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,rgb(5 46 43 / .95),rgb(5 46 43 / .42)); }
.dsv3-hero__next span, .dsv3-hero__next svg { position: relative; z-index: 1; }
.dsv3-hero__next small, .dsv3-hero__next strong { display: block; }
.dsv3-hero__next small { color: rgb(var(--dsv3-primary-100)); font-size: .63rem; letter-spacing: .08em; text-transform: uppercase; }
.dsv3-hero__next strong { margin-top: 4px; font-size: .83rem; }
.dsv3-hero__controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 13px; }
.dsv3-dots { display: flex; gap: 7px; }
.dsv3-dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: var(--dsv3-pill); background: rgb(255 255 255 / .32); transition: width .25s ease; }
.dsv3-dot[aria-current="true"] { width: 26px; background: rgb(var(--dsv3-primary-200)); }
.dsv3-arrows { display: flex; gap: 7px; }
.dsv3-heroarrow { display: grid; width: 44px; height: 44px; padding: 0; place-items: center; border: 1px solid rgb(255 255 255 / .26); border-radius: 50%; color: #fff; background: rgb(5 46 43 / .38); }

.dsv3-holiday { padding-block: 34px 24px; }
.dsv3-holiday__card { display: grid; grid-template-columns: minmax(220px,.72fr) minmax(0,1.45fr); gap: 28px; padding: 28px; border-radius: var(--dsv3-r-xl); background: #fff; box-shadow: var(--dsv3-shadow-md); }
.dsv3-holiday__intro { align-self: center; }
.dsv3-holiday__intro h2 { margin: 8px 0 0; font-size: clamp(1.9rem,3vw,2.7rem); font-weight: 500; line-height: 1.03; letter-spacing: -.04em; }
.dsv3-holiday__intro p { margin: 13px 0 0; color: var(--dsv3-muted); line-height: 1.6; }
.dsv3-holiday__visual { position: relative; min-height: 292px; overflow: hidden; border-radius: 18px; background: rgb(var(--dsv3-primary-950)); }
.dsv3-holiday__panel { position: absolute; inset: 0; display: grid; align-content: end; padding: 24px; color: #fff; opacity: 0; pointer-events: none; transform: translateX(100%); transition: opacity .42s ease, transform .5s cubic-bezier(.22,.78,.2,1); background: radial-gradient(circle at 82% 18%,rgb(var(--holiday-tone) / .72),transparent 34%), linear-gradient(145deg,rgb(var(--holiday-tone) / .38),rgb(5 46 43) 64%); }
.dsv3-holiday__panel::before { content: ""; position: absolute; width: 240px; height: 240px; top: -88px; right: -56px; border: 1px solid rgb(255 255 255 / .22); border-radius: 50%; box-shadow: 0 0 0 38px rgb(255 255 255 / .04),0 0 0 76px rgb(255 255 255 / .025); }
.dsv3-holiday__panelmedia,.dsv3-holiday__panelmedia::after { position: absolute; inset: 0; }
.dsv3-holiday__panelmedia picture,.dsv3-holiday__panelmedia img { width: 100%; height: 100%; }
.dsv3-holiday__panelmedia img { object-fit: cover; }
.dsv3-holiday__panelmedia::after { content: ""; background: linear-gradient(90deg,rgb(3 29 27 / .9) 0%,rgb(3 29 27 / .58) 55%,rgb(3 29 27 / .2) 100%),linear-gradient(0deg,rgb(3 29 27 / .78),transparent 65%); }
.dsv3-holiday__panelcontent { position: relative; z-index: 2; display: grid; min-height: 244px; align-content: end; text-shadow: 0 1px 12px rgb(0 0 0 / .24); }
.dsv3-holiday__panel[data-active="true"] { opacity: 1; pointer-events: auto; transform: none; }
.dsv3-holiday__symbol { position: absolute; top: 22px; left: 22px; display: grid; width: 58px; height: 58px; place-items: center; border-radius: 17px; color: #fff; background: rgb(255 255 255 / .14); backdrop-filter: blur(10px); }
.dsv3-holiday__flag { width: 72px; height: 48px; border-radius: 0; }
.dsv3-holiday__panel small { color: rgb(255 255 255 / .7); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.dsv3-holiday__panel h3 { max-width: 22ch; margin: 7px 0 0; font-size: 1.65rem; font-weight: 500; line-height: 1.08; }
.dsv3-holiday__panelcontent > p { max-width: 42ch; margin: 8px 0 0; color: rgb(255 255 255 / .76); font-size: .72rem; }
.dsv3-holiday__bottom { display: flex; align-items: end; justify-content: space-between; gap: 15px; margin-top: 18px; }
.dsv3-holiday__date { color: rgb(255 255 255 / .76); font-size: .82rem; }
.dsv3-holiday__cta { display: inline-flex; min-height: 40px; align-items: center; gap: 7px; padding: 0 14px; border-radius: var(--dsv3-pill); color: var(--dsv3-accent-strong); background: #fff; font-size: .75rem; font-weight: 650; }
.dsv3-holiday__tabs { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 7px; overflow-x: auto; }
.dsv3-holiday__tab { display: grid; min-width: 0; grid-template-columns: 38px minmax(0,1fr); align-items: center; gap: 9px; padding: 9px; border: 0; border-radius: 13px; color: var(--dsv3-ink); background: var(--dsv3-gray-50); text-align: left; }
.dsv3-holiday__tab[aria-current="true"] { color: #fff; background: rgb(var(--holiday-tone)); }
.dsv3-holiday__tabicon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 11px; color: rgb(var(--holiday-tone)); background: rgb(var(--holiday-tone) / .13); }
.dsv3-holiday__tab[aria-current="true"] .dsv3-holiday__tabicon { color: #fff; background: rgb(255 255 255 / .15); }
.dsv3-holiday__tab strong, .dsv3-holiday__tab small { display: block; }
.dsv3-holiday__tab strong { overflow: visible; font-size: clamp(.62rem,.73vw,.72rem); line-height: 1.15; white-space: nowrap; }
.dsv3-holiday__tab small { overflow: hidden; margin-top: 3px; color: var(--dsv3-muted); font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-holiday__tab[aria-current="true"] small { color: rgb(255 255 255 / .72); }
.dsv3-holiday__mobilecontrols { position: absolute; z-index: 4; top: 18px; right: 18px; display: flex; align-items: center; justify-content: center; gap: 7px; }
.dsv3-holiday__mobilecontrols button { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid rgb(255 255 255 / .22); border-radius: 50%; color: #fff; background: rgb(5 46 43 / .34); backdrop-filter: blur(10px); }
.dsv3-holiday__mobilecontrols > span { display: inline-flex; min-width: 48px; min-height: 30px; align-items: center; justify-content: center; padding: 0 9px; border-radius: var(--dsv3-pill); color: #fff; background: rgb(5 46 43 / .34); text-align: center; font-size: .68rem; font-weight: 700; letter-spacing: .06em; backdrop-filter: blur(10px); }

.dsv3-rail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(250px,1fr); gap: 16px; overflow-x: auto; padding: 4px 0 18px; scroll-snap-type: x proximity; scrollbar-width: thin; }
.dsv3-product { position: relative; min-height: 380px; overflow: hidden; border-radius: 20px; color: #fff; background: rgb(var(--dsv3-primary-900)); scroll-snap-align: start; box-shadow: var(--dsv3-shadow-md); }
.dsv3-product img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.8,.2,1); }
.dsv3-product:hover img { transform: scale(1.035); }
.dsv3-product::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg,rgb(4 31 29 / .94),transparent 66%); }
.dsv3-product__copy { position: absolute; z-index: 1; right: 18px; bottom: 18px; left: 18px; }
.dsv3-product__meta { color: rgb(255 255 255 / .68); font-size: .7rem; }
.dsv3-product h3 { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin: 6px 0 0; font-size: 1.2rem; font-weight: 500; line-height: 1.14; letter-spacing: -.025em; }
.dsv3-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.dsv3-grid2 .dsv3-product { min-height: 330px; }
.dsv3-sectionlink { display: inline-flex; align-items: center; gap: 7px; color: var(--dsv3-accent-strong); font-size: .82rem; font-weight: 700; white-space: nowrap; }
.dsv3-home-hotels, .dsv3-home-destinations { background: rgb(255 255 255 / .55); }
.dsv3-editorial { display: grid; min-height: 520px; grid-template-columns: 1.12fr .88fr; overflow: hidden; border-radius: 28px; background: #fff; box-shadow: var(--dsv3-shadow-md); }
.dsv3-editorial__visual { position: relative; min-height: 420px; overflow: hidden; background: rgb(var(--dsv3-primary-900)); }
.dsv3-editorial__visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dsv3-editorial__visual--default { display: grid; place-items: center; color: rgb(var(--dsv3-primary-200)); background: radial-gradient(circle at 72% 20%,rgb(var(--dsv3-primary-300) / .34),transparent 25%),linear-gradient(145deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-700))); }
.dsv3-editorial__copy { display: grid; align-content: center; justify-items: start; padding: clamp(30px,5vw,66px); }
.dsv3-editorial__copy h2 { max-width: 11ch; margin: 10px 0 18px; font-size: clamp(2.6rem,4.6vw,4.4rem); font-weight: 500; line-height: .96; letter-spacing: -.055em; }
.dsv3-editorial__copy p { max-width: 46ch; margin: 0 0 25px; color: var(--dsv3-muted); font-size: .9rem; line-height: 1.7; }
.dsv3-home-events { color: #fff; background: rgb(var(--dsv3-primary-950)); }
.dsv3-home-events .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }
.dsv3-home-events .dsv3-sectionhead p { color: rgb(255 255 255 / .67); }
.dsv3-eventgrid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.dsv3-home-eventcard { position: relative; min-height: 390px; overflow: hidden; border-radius: 22px; color: #fff; background: rgb(var(--dsv3-primary-900)); box-shadow: 0 18px 44px -28px rgb(0 0 0 / .78); }
.dsv3-home-eventcard .dsv3-destinationmedia, .dsv3-home-eventcard .dsv3-destinationmedia img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.22,.78,.2,1); }
.dsv3-home-eventcard:hover .dsv3-destinationmedia { transform: scale(1.035); }
.dsv3-home-eventcard:nth-child(3n + 2) .dsv3-destinationmedia--default { background: radial-gradient(circle at 70% 22%,rgb(165 231 214 / .28),transparent 23%),linear-gradient(145deg,rgb(8 54 51),rgb(24 107 93)); }
.dsv3-home-eventcard:nth-child(3n + 3) .dsv3-destinationmedia--default { background: radial-gradient(circle at 22% 75%,rgb(225 211 174 / .18),transparent 27%),linear-gradient(140deg,rgb(3 37 36),rgb(19 78 70)); }
.dsv3-home-eventcard__wash { position: absolute; inset: 0; background: linear-gradient(0deg,rgb(3 28 26 / .94),rgb(3 28 26 / .1) 72%); }
.dsv3-home-eventcard__body { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; padding: 24px; }
.dsv3-home-eventcard__body small { display: block; margin-bottom: 9px; color: rgb(255 255 255 / .68); font-size: .66rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.dsv3-home-eventcard__body strong { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 14px; font-size: clamp(1.25rem,2.15vw,1.85rem); font-weight: 620; line-height: 1.02; letter-spacing: -.04em; }

.dsv3-newsletter { padding-block: clamp(58px,7vw,96px); color: #fff; background: rgb(var(--dsv3-primary-950)); }
.dsv3-newsletter__panel { display: grid; grid-template-columns: minmax(0,.85fr) minmax(460px,1.15fr); align-items: center; gap: clamp(38px,7vw,96px); padding: clamp(30px,5vw,64px); border: 1px solid rgb(255 255 255 / .1); border-radius: 30px; background: radial-gradient(circle at 10% 10%,rgb(var(--dsv3-primary-300) / .18),transparent 28%),rgb(255 255 255 / .06); box-shadow: var(--dsv3-shadow-lg); }
.dsv3-newsletter .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }
.dsv3-newsletter__copy h2 { max-width: 10ch; margin: 11px 0 16px; font-size: clamp(2.5rem,4.7vw,4.5rem); font-weight: 520; line-height: .94; letter-spacing: -.055em; }
.dsv3-newsletter__copy > p { max-width: 48ch; margin: 0; color: rgb(255 255 255 / .68); font-size: .87rem; line-height: 1.65; }
.dsv3-newsletter__copy ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 0; padding: 0; list-style: none; }
.dsv3-newsletter__copy li { display: inline-flex; min-height: 34px; align-items: center; gap: 7px; padding: 0 11px; border-radius: var(--dsv3-pill); color: rgb(255 255 255 / .8); background: rgb(255 255 255 / .08); font-size: .68rem; }
.dsv3-newsletter__copy li svg { color: rgb(var(--dsv3-primary-200)); }
.dsv3-newsletter__form { position: relative; padding: 24px; border-radius: 22px; background: #fff; box-shadow: var(--dsv3-shadow-md); }
.dsv3-newsletter__control { display: grid; min-height: 58px; grid-template-columns: 22px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 5px 5px 5px 16px; border: 1px solid var(--dsv3-line); border-radius: var(--dsv3-pill); color: var(--dsv3-accent); background: var(--dsv3-gray-50); }
.dsv3-newsletter__control:focus-within { border-color: rgb(var(--dsv3-primary-500)); box-shadow: 0 0 0 3px rgb(var(--dsv3-primary-100)); }
.dsv3-newsletter__control input { min-width: 0; height: 100%; padding: 0; border: 0; outline: 0; color: var(--dsv3-ink); background: transparent; }
.dsv3-newsletter__control .dsv3-btn { min-height: 46px; }
.dsv3-newsletter__consent { margin: 13px 3px 0; color: var(--dsv3-muted); font-size: .65rem; line-height: 1.5; }
.dsv3-newsletter__outcome { margin: 13px 0 0; padding: 12px 14px; border-radius: 13px; color: rgb(var(--dsv3-primary-900)); background: var(--dsv3-soft); font-size: .72rem; line-height: 1.5; }

.dsv3-dream { position: relative; overflow: hidden; padding-block: clamp(70px,8vw,110px); color: #fff; background: linear-gradient(135deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-800))); }
.dsv3-dream::before { content: ""; position: absolute; inset: 0; opacity: .45; background-image: radial-gradient(circle at 18% 24%,rgb(var(--dsv3-primary-300) / .35),transparent 22%),radial-gradient(circle at 78% 72%,rgb(var(--dsv3-primary-200) / .18),transparent 24%),radial-gradient(rgb(255 255 255 / .15) 1px,transparent 1px); background-size: auto,auto,22px 22px; }
.dsv3-dream__route { position: absolute; inset: 8% -10% auto; height: 70%; opacity: .42; }
.dsv3-dream__route svg { width: 100%; height: 100%; fill: none; stroke: rgb(var(--dsv3-primary-200)); stroke-width: 2; stroke-dasharray: 5 10; }
.dsv3-dream__route circle { fill: rgb(var(--dsv3-primary-200)); stroke: none; filter: drop-shadow(0 0 8px rgb(var(--dsv3-primary-200) / .75)); }
.dsv3-dream__coordinate { position: absolute; z-index: 1; display: flex; align-items: center; gap: 7px; color: rgb(255 255 255 / .55); font-size: .55rem; letter-spacing: .12em; text-transform: uppercase; pointer-events: none; }
.dsv3-dream__coordinate::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: rgb(var(--dsv3-primary-200)); box-shadow: 0 0 0 5px rgb(var(--dsv3-primary-200) / .12); }
.dsv3-dream__coordinate--one { top: 28px; left: 42%; }
.dsv3-dream__coordinate--two { right: 34px; bottom: 24px; }
.dsv3-dream__dreams { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 22px; }
.dsv3-dream__dreams span { display: inline-flex; min-height: 30px; align-items: center; gap: 7px; padding: 0 10px; border-radius: 999px; color: rgb(255 255 255 / .74); background: rgb(255 255 255 / .08); font-size: .62rem; backdrop-filter: blur(8px); }
.dsv3-dream__dreams span:first-child { color: rgb(var(--dsv3-primary-950)); background: rgb(var(--dsv3-primary-200)); }
.dsv3-dream__inner { position: relative; display: grid; grid-template-columns: minmax(0,.8fr) minmax(460px,1.2fr); align-items: center; gap: clamp(40px,8vw,110px); }
.dsv3-dream .dsv3-kicker { text-transform: none; }
.dsv3-dream h2 { max-width: 10ch; margin: 10px 0 0; font-size: clamp(2.8rem,5.5vw,4.8rem); font-weight: 500; line-height: .98; letter-spacing: -.055em; }
.dsv3-dream h2 em { color: rgb(var(--dsv3-primary-200)); font-style: normal; }
.dsv3-dream__copy p { max-width: 46ch; margin: 20px 0 0; color: rgb(255 255 255 / .72); line-height: 1.65; }
.dsv3-dream__form { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 24px; border-radius: 22px; color: var(--dsv3-ink); background: rgb(255 255 255 / .96); box-shadow: var(--dsv3-shadow-lg); backdrop-filter: blur(14px); }
.dsv3-dream__form[data-ajax-state="leaving"] { pointer-events: none; animation: dsv3-dream-leave .18s ease both; }
.dsv3-dream__form[data-ajax-state="entering"] { animation: dsv3-dream-enter .34s cubic-bezier(.22,.78,.2,1) both; }
@keyframes dsv3-dream-leave { to { opacity: 0; transform: translateX(-18px) scale(.985); } }
@keyframes dsv3-dream-enter { from { opacity: 0; transform: translateX(22px) scale(.985); } to { opacity: 1; transform: none; } }
.dsv3-field { display: grid; gap: 7px; }
.dsv3-field--wide { grid-column: 1 / -1; }
.dsv3-field label, .dsv3-field > span { font-size: .75rem; font-weight: 650; }
.dsv3-field input, .dsv3-field select, .dsv3-field textarea { width: 100%; min-height: 48px; padding: 12px 13px; border: 1px solid var(--dsv3-line); border-radius: 12px; color: var(--dsv3-ink); background: #fff; }
.dsv3-field textarea { min-height: 108px; resize: vertical; }
.dsv3-field input:focus, .dsv3-field select:focus, .dsv3-field textarea:focus { border-color: rgb(var(--dsv3-primary-500)); outline: 3px solid rgb(var(--dsv3-primary-100)); }
.dsv3-formnote, .dsv3-formerror { grid-column: 1 / -1; margin: 0; font-size: .72rem; line-height: 1.45; }
.dsv3-formnote { color: var(--dsv3-muted); }
.dsv3-formerror { color: #9f1d1d; }
.dsv3-consent { grid-column: 1 / -1; display: grid; grid-template-columns: 18px minmax(0,1fr); gap: 9px; color: var(--dsv3-muted); font-size: .72rem; line-height: 1.5; }
.dsv3-dream__submit { grid-column: 1 / -1; width: 100%; }
.dsv3-hp { position: absolute; left: -9999px; }

.dsv3-spot { padding-block: clamp(60px,7vw,92px); }
.dsv3-spot--safari { color: #fff; background: linear-gradient(115deg,rgb(38 31 24),rgb(113 72 37)); }
.dsv3-spot__inner { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(30px,7vw,90px); }
.dsv3-spot h2 { max-width: 12ch; margin: 8px 0 0; font-size: clamp(2.4rem,5vw,4.2rem); font-weight: 500; line-height: 1; letter-spacing: -.05em; }
.dsv3-spot p { margin: 0; line-height: 1.7; }
.dsv3-spot__price { display: block; margin-top: 22px!important; color: rgb(var(--dsv3-primary-200)); font-size: clamp(1.45rem,2.5vw,2.1rem); font-weight: 700; }
.dsv3-owned-safari { padding-block: clamp(58px,7vw,86px); color: #fff; background: rgb(var(--dsv3-primary-950)); }
.dsv3-owned-safari__grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: clamp(38px,6vw,78px); }
.dsv3-owned-safari__media { height: 500px; overflow: hidden; border-radius: 18px; }
.dsv3-owned-safari__media picture, .dsv3-owned-safari__media img { display: block; width: 100%; height: 100%; }
.dsv3-owned-safari__media img { object-fit: cover; }
.dsv3-owned-safari .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }
.dsv3-owned-safari h2 { margin: 10px 0 0; font-size: clamp(2.35rem,4vw,3.8rem); font-weight: 500; line-height: 1.02; letter-spacing: -.045em; }
.dsv3-owned-safari__copy > p { margin: 16px 0 0; color: rgb(255 255 255 / .76); font-size: .97rem; line-height: 1.7; }
.dsv3-owned-safari__price { display: block; margin-top: 17px; color: rgb(255 255 255 / .68); font-size: .78rem; }
.dsv3-owned-safari__price strong { color: rgb(var(--dsv3-primary-200)); font-size: 1.08rem; }
.dsv3-safari-tiers { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 24px; }
.dsv3-safari-tier { display: block; padding: 18px; border-radius: 13px; color: inherit; background: rgb(255 255 255 / .09); text-align: left; transition: transform .28s ease,background .28s ease; }
.dsv3-safari-tier:hover { color: inherit; background: rgb(255 255 255 / .14); transform: translateY(-3px); }
.dsv3-safari-tier--gold { background: rgb(202 164 76 / .18); }
.dsv3-safari-tier--gold:hover { background: rgb(202 164 76 / .25); }
.dsv3-safari-tier span { font-size: .76rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.dsv3-safari-tier strong { display: block; margin-top: 8px; font-size: 1.04rem; font-weight: 600; }
.dsv3-safari-tier p { margin: 8px 0 0; color: rgb(255 255 255 / .7); font-size: .82rem; line-height: 1.5; }
.dsv3-safari-tier b { display: inline-flex; align-items: center; gap: 7px; margin-top: 14px; font-size: .84rem; font-weight: 600; }
.dsv3-home-regiongrid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 10px; }
.dsv3-home-regioncard { position: relative; min-width: 0; min-height: 235px; overflow: hidden; border-radius: 20px; color: #fff; background: rgb(var(--dsv3-primary-900)); }
.dsv3-home-regioncard > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.8,.2,1); }
.dsv3-home-regioncard:hover > img { transform: scale(1.04); }
.dsv3-home-regioncard__wash { position: absolute; inset: 28% 0 0; background: linear-gradient(transparent,rgb(0 0 0 / .78)); }
.dsv3-home-regioncard__copy { position: absolute; z-index: 1; right: 14px; bottom: 13px; left: 14px; }
.dsv3-home-regioncard__copy strong { display: block; font-weight: 600; }
.dsv3-home-regioncard__copy small { display: block; margin-top: 4px; color: rgb(255 255 255 / .82); font-size: .68rem; }
.dsv3-visa-home { padding-block: clamp(58px,7vw,84px); background: var(--dsv3-canvas); }
.dsv3-visa-home__grid { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: clamp(34px,6vw,78px); }
.dsv3-visa-home h2 { margin: 9px 0 0; font-size: clamp(2.25rem,3.8vw,3.45rem); font-weight: 500; line-height: 1.04; letter-spacing: -.045em; }
.dsv3-visa-home p { max-width: 62ch; margin: 16px 0 0; color: var(--dsv3-muted); font-size: 1rem; line-height: 1.7; }
.dsv3-visa-home__intro { position: relative; padding-left: 72px; }
.dsv3-visa-home__intro > .dsv3-btn { margin-top: 22px; }
.dsv3-visa-home__mark { position: absolute; top: 0; left: 0; display: grid; width: 52px; height: 64px; place-items: center; border-radius: 8px 8px 12px 12px; color: #fff; background: rgb(var(--dsv3-primary-800)); box-shadow: 0 12px 28px rgb(5 46 43 / .18); }
.dsv3-visa-home__destinations { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dsv3-visa-home__destinations a { display: flex; min-height: 76px; align-items: center; justify-content: space-between; gap: 12px; padding: 16px; border-radius: 12px; background: #fff; box-shadow: 0 8px 28px rgb(5 46 43 / .06); font-size: .93rem; font-weight: 600; }
.dsv3-values { padding-block: 72px; background: #fff; }
.dsv3-values__grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; margin: 0; padding: 0; list-style: none; text-align: center; }
.dsv3-values__grid li { display: grid; min-height: 170px; align-content: center; gap: 9px; padding: 22px; border-radius: 18px; background: var(--dsv3-gray-50); }
.dsv3-values__grid svg { margin-inline: auto; color: var(--dsv3-accent); }
.dsv3-values__grid strong { font-size: .9rem; }
.dsv3-values__grid p { margin: 0; color: var(--dsv3-muted); font-size: .7rem; line-height: 1.5; }
.dsv3-reviews { overflow: hidden; padding-block: 78px; background: var(--dsv3-canvas); }
.dsv3-reviews__head { display: grid; grid-template-columns: minmax(280px,.72fr) minmax(560px,1.28fr); align-items: end; gap: clamp(30px,5vw,72px); }
.dsv3-reviews__head h2 { max-width: 12ch; margin: 10px 0 0; font-size: clamp(2.5rem,4.4vw,4.35rem); font-weight: 500; line-height: .96; letter-spacing: -.055em; }
.dsv3-reviews__head p { max-width: 56ch; margin: 17px 0 0; color: var(--dsv3-muted); font-size: .84rem; line-height: 1.65; }
.dsv3-reviews__sources { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.dsv3-reviews__source { display: grid; min-width: 0; min-height: 146px; align-content: space-between; gap: 7px; padding: 18px; border-radius: 18px; color: var(--dsv3-ink); background: #fff; box-shadow: 0 12px 36px rgb(5 46 43 / .07); transition: transform .2s ease,box-shadow .2s ease; }
a.dsv3-reviews__source:hover { transform: translateY(-2px); box-shadow: 0 18px 42px rgb(5 46 43 / .11); }
.dsv3-reviews__brand { display: flex; min-width: 0; align-items: center; gap: 8px; }
.dsv3-reviews__brand svg { flex: 0 0 auto; }
.dsv3-reviews__brand strong { overflow: hidden; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-reviews__score { display: flex; align-items: baseline; gap: 4px; margin-top: 9px; }
.dsv3-reviews__score strong { font-size: 2.35rem; font-weight: 550; line-height: .9; letter-spacing: -.06em; }
.dsv3-reviews__score small,.dsv3-reviews__count,.dsv3-reviews__source time,.dsv3-reviews__source-note { display: block; color: var(--dsv3-muted); font-size: .61rem; line-height: 1.4; }
.dsv3-reviews__source-note { margin-top: 21px; }
.dsv3-reviews__source time { opacity: .72; }
.dsv3-reviews__railhead { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 42px; }
.dsv3-reviews__railhead h3 { margin: 0; font-size: 1.35rem; font-weight: 600; letter-spacing: -.025em; }
.dsv3-reviews__railhead > div { display: flex; gap: 6px; }
.dsv3-reviews__railhead button { display: grid; width: 42px; height: 42px; padding: 0; place-items: center; border: 0; border-radius: 50%; color: rgb(var(--dsv3-primary-900)); background: #fff; box-shadow: var(--dsv3-shadow-xs); }
.dsv3-reviews__rail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(310px,31%); gap: 13px; overflow-x: auto; margin-top: 15px; padding: 2px 1px 20px; scroll-snap-type: x mandatory; scrollbar-color: rgb(var(--dsv3-primary-300)) transparent; }
.dsv3-reviewcard { display: grid; min-height: 310px; align-content: start; padding: 22px; border-radius: 20px; background: #fff; box-shadow: 0 12px 36px rgb(5 46 43 / .07); scroll-snap-align: start; }
.dsv3-reviewcard > header { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 10px; }
.dsv3-reviewcard__avatar { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; color: #fff; background: rgb(var(--dsv3-primary-800)); font-size: .82rem; font-weight: 700; }
.dsv3-reviewcard > header strong,.dsv3-reviewcard > header small { display: block; }
.dsv3-reviewcard > header strong { overflow: hidden; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-reviewcard > header small { margin-top: 2px; color: var(--dsv3-muted); font-size: .6rem; }
.dsv3-reviewcard__stars { display: flex; gap: 2px; margin-top: 18px; color: rgb(248 193 55); }
.dsv3-reviewcard__stars span { display: inline-flex; }
.dsv3-reviewcard__stars span[data-filled="true"] svg { fill: currentColor; }
.dsv3-reviewcard__stars span[data-filled="false"] { color: rgb(var(--dsv3-gray-300)); }
.dsv3-reviewcard h3 { margin: 12px 0 0; font-size: .88rem; }
.dsv3-reviewcard blockquote { display: -webkit-box; overflow: hidden; margin: 12px 0 0; color: var(--dsv3-muted); font-size: .72rem; line-height: 1.65; -webkit-box-orient: vertical; -webkit-line-clamp: 6; line-clamp: 6; }
.dsv3-reviewcard footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 17px; color: var(--dsv3-muted); font-size: .61rem; }
.dsv3-reviewcard footer a { display: inline-flex; align-items: center; gap: 5px; color: var(--dsv3-accent-strong); font-weight: 700; }
.dsv3-reviews__actions { display: flex; justify-content: center; gap: 9px; margin-top: 18px; }
.dsv3-reviews__actions .dsv3-btn { gap: 8px; }
.dsv3-club { padding-block: 76px; background: var(--dsv3-canvas); }
.dsv3-club__panel { position: relative; overflow: hidden; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 40px; padding: clamp(28px,5vw,62px); border-radius: 28px; color: #fff; background: linear-gradient(135deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-800))); box-shadow: var(--dsv3-shadow-lg); }
.dsv3-club__panel::after { content: ""; position: absolute; width: 460px; height: 460px; top: -280px; right: -130px; border-radius: 50%; background: radial-gradient(circle,rgb(var(--dsv3-primary-300) / .42),transparent 67%); }
.dsv3-club__logo { width: min(220px,70%); height: auto; }
.dsv3-club h2 { margin: 22px 0 0; font-size: clamp(2.2rem,4.5vw,3.8rem); font-weight: 500; line-height: 1; letter-spacing: -.045em; }
.dsv3-club p { max-width: 52ch; margin: 16px 0 0; color: rgb(255 255 255 / .72); line-height: 1.65; }
.dsv3-club__launch { display: grid; gap: 4px; margin-top: 16px!important; padding: 14px 16px; border-radius: 15px; background: rgb(255 255 255 / .09); }
.dsv3-club__launch strong, .dsv3-club__launch span { display: block; }
.dsv3-club__launch strong { color: rgb(var(--dsv3-primary-200)); font-size: .82rem; }
.dsv3-club__launch span { color: rgb(255 255 255 / .64); font-size: .7rem; }
.dsv3-club__points { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dsv3-club__points div { padding: 20px; border-radius: 17px; background: rgb(255 255 255 / .1); }
.dsv3-club__points small, .dsv3-club__points strong { display: block; }
.dsv3-club__points small { color: rgb(255 255 255 / .62); }
.dsv3-club__points strong { margin-top: 8px; color: rgb(var(--dsv3-primary-200)); font-size: 1.7rem; }
.dsv3-clubintro-open { overflow: hidden; }
.dsv3-clubintro { position: fixed; z-index: 90; inset: 0; display: grid; place-items: center; padding: 18px; background: rgb(3 29 27 / .14); backdrop-filter: blur(2px); }
.dsv3-clubintro[hidden] { display: none; }
.dsv3-clubintro > section { position: relative; width: min(540px,100%); padding: 30px; overflow: hidden; border-radius: 28px; color: #fff; background: radial-gradient(circle at 92% 0,rgb(var(--dsv3-primary-300) / .36),transparent 34%),linear-gradient(145deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-800))); box-shadow: 0 28px 90px rgb(3 29 27 / .3); animation: dsv3-clubintro-in .38s cubic-bezier(.22,.78,.2,1) both; }
.dsv3-clubintro > section > button { position: absolute; z-index: 2; top: 15px; right: 15px; display: grid; width: 44px; height: 44px; padding: 0; place-items: center; border: 0; border-radius: 50%; color: #fff; background: rgb(255 255 255 / .1); }
.dsv3-clubintro > section > img { width: 190px; max-width: 58%; height: 64px; object-fit: contain; object-position: left center; }
.dsv3-clubintro h2 { margin: 22px 0 0; font-size: clamp(2.3rem,6vw,3.6rem); font-weight: 600; line-height: .94; letter-spacing: -.055em; }
.dsv3-clubintro__offer { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 18px; margin: 12px 0 24px; }
.dsv3-clubintro__offer p { max-width: 34ch; margin: 0; color: rgb(255 255 255 / .68); font-size: .86rem; line-height: 1.5; }
.dsv3-clubintro__offer strong { color: rgb(var(--dsv3-primary-200)); font-size: 3.25rem; line-height: .9; letter-spacing: -.05em; }
.dsv3-clubintro .dsv3-btn { width: 100%; min-height: 58px; font-size: 1rem; }
@keyframes dsv3-clubintro-in { from { opacity: 0; transform: translateY(20px) scale(.98); } to { opacity: 1; transform: none; } }

.dsv3-destinationmedia { position: absolute; inset: 0; display: block; overflow: hidden; background: rgb(var(--dsv3-primary-900)); }
.dsv3-destinationmedia img { position: relative; z-index: 1; display: block; width: 100%; height: 100%; object-fit: cover; }
.dsv3-destinationmedia[data-media-state="loading"] { background: linear-gradient(135deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-800))); }
.dsv3-destinationmedia[data-media-state="loading"]::after { position: absolute; z-index: 0; inset: -35% -65%; background: linear-gradient(105deg,transparent 36%,rgb(var(--dsv3-primary-300) / .08) 44%,rgb(var(--dsv3-primary-200) / .3) 51%,rgb(255 255 255 / .12) 56%,transparent 65%); content: ""; pointer-events: none; transform: translateX(-42%); animation: dsv3-media-shimmer 1.15s ease-in-out 6; }
.dsv3-destinationmedia[data-media-state="error"] { background: radial-gradient(circle at 78% 18%,rgb(var(--dsv3-primary-300) / .36),transparent 22%),linear-gradient(145deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-700))); }
.dsv3-destinationmedia[data-media-state="error"] > img { visibility: hidden; }
@keyframes dsv3-media-shimmer { to { transform: translateX(42%); } }
.dsv3-destinationmedia--default { background: radial-gradient(circle at 78% 18%,rgb(var(--dsv3-primary-300) / .5),transparent 22%),linear-gradient(145deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-700))); }
.dsv3-destinationmedia--default::before, .dsv3-destinationmedia--default::after, .dsv3-destinationmedia--default > span { content: ""; position: absolute; border-radius: 50%; }
.dsv3-destinationmedia--default::before { width: 64%; aspect-ratio: 1; top: -31%; right: -18%; border: 1px solid rgb(255 255 255 / .18); }
.dsv3-destinationmedia--default::after { width: 46%; aspect-ratio: 1; right: 8%; bottom: -28%; background: rgb(var(--dsv3-primary-300) / .13); }
.dsv3-destinationmedia--default > span { width: 7px; height: 7px; top: 22%; left: 19%; background: rgb(var(--dsv3-primary-200)); box-shadow: 41px 25px 0 -2px rgb(255 255 255 / .42),86px -14px 0 -1px rgb(255 255 255 / .35),132px 32px 0 -2px rgb(255 255 255 / .32); }
.dsv3-destinationcard { position: relative; min-width: 0; min-height: 340px; overflow: hidden; border-radius: 22px; color: #fff; background: rgb(var(--dsv3-primary-900)); box-shadow: var(--dsv3-shadow-md); scroll-snap-align: start; }
.dsv3-destinationcard .dsv3-destinationmedia img { transition: transform .65s cubic-bezier(.2,.8,.2,1); }
.dsv3-destinationcard:hover .dsv3-destinationmedia img { transform: scale(1.04); }
.dsv3-destinationcard__wash { position: absolute; z-index: 1; inset: 0; background: linear-gradient(0deg,rgb(3 29 27 / .96),rgb(3 29 27 / .05) 72%); }
.dsv3-destinationcard__copy { position: absolute; z-index: 2; right: 18px; bottom: 18px; left: 18px; min-width: 0; }
.dsv3-destinationcard__eyebrow { display: block; margin-bottom: 7px; color: rgb(255 255 255 / .66); font-size: .72rem; }
.dsv3-destinationcard__copy strong { display: grid; min-width: 0; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 12px; font-size: 1.18rem; font-weight: 600; line-height: 1.16; letter-spacing: -.025em; }
.dsv3-destinationcard__copy strong span { min-width: 0; }
.dsv3-destinationcard__copy small { display: block; margin-top: 8px; color: rgb(255 255 255 / .64); font-size: .72rem; line-height: 1.35; }
.dsv3-destinationcard[data-disabled="true"] { box-shadow: none; }
.dsv3-destinationcard[data-disabled="true"] .dsv3-destinationcard__copy { opacity: .78; }
.dsv3-destinationcard--compact { min-height: 238px; border-radius: 18px; }
.dsv3-destinationsection:nth-of-type(even) { background: rgb(255 255 255 / .55); }
.dsv3-destinationsection__head h2 { max-width: 18ch; }
.dsv3-destinationsection__aside { display: grid; justify-items: end; gap: 15px; }
.dsv3-sectionaction { display: inline-flex; min-height: 42px; align-items: center; gap: 8px; color: var(--dsv3-accent-strong); font-size: .82rem; font-weight: 700; }
.dsv3-destinationrail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px,31%); gap: 13px; overflow-x: auto; padding: 3px 1px 21px; scroll-snap-type: x mandatory; scrollbar-color: rgb(var(--dsv3-primary-300)) transparent; }
.dsv3-destinationgrid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 13px; }

.dsv3-destindexhero { position: relative; min-height: 560px; overflow: hidden; color: #fff; background: rgb(var(--dsv3-primary-950)); }
.dsv3-destindexhero__wash { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg,rgb(5 31 29 / .92),rgb(5 31 29 / .42)); }
.dsv3-destindexhero__inner { position: relative; z-index: 2; display: grid; min-height: 560px; align-content: end; padding-block: 80px 58px; }
.dsv3-destindexcrumbs { margin: 0; }.dsv3-destindexcrumbs a,.dsv3-destindexcrumbs span { color: rgb(255 255 255 / .74); }
.dsv3-destindexhero h1 { max-width: 12ch; margin: 22px 0 0; font-size: clamp(3rem,6vw,5.5rem); line-height: .96; }
.dsv3-destindexhero p { max-width: 60ch; margin: 15px 0 0; color: rgb(255 255 255 / .76); }
.dsv3-destindexsearch { display: flex; width: min(100%,720px); gap: 8px; margin-top: 26px; padding: 7px; border-radius: 16px; background: #fff; }
.dsv3-destindexsearch input { min-width: 0; width: 100%; padding: 0 13px; border: 0; outline: 0; color: rgb(var(--dsv3-gray-950)); background: transparent; }
.dsv3-directoryfeatured { display: grid; grid-template-columns: 1.35fr .65fr .65fr; grid-template-rows: 270px 270px; grid-auto-rows: 270px; gap: 18px; }
.dsv3-directoryregion { position: relative; min-height: 0; height: 100%; overflow: hidden; border-radius: 20px; color: #fff; background: rgb(var(--dsv3-primary-900)); }
.dsv3-directoryregion:first-child { grid-row: span 2; }.dsv3-directoryregion:nth-child(4) { grid-column: span 2; }
.dsv3-directoryregion .dsv3-destinationmedia img { transition: transform .6s cubic-bezier(.2,.8,.2,1); }.dsv3-directoryregion:hover .dsv3-destinationmedia img { transform: scale(1.04); }
.dsv3-directoryregion__wash { position: absolute; inset: 28% 0 0; background: linear-gradient(transparent,rgb(0 0 0 / .78)); }
.dsv3-directoryregion__copy { position: absolute; z-index: 1; right: 14px; bottom: 13px; left: 14px; }
.dsv3-directoryregion__copy strong,.dsv3-directoryregion__copy small { display: block; }.dsv3-directoryregion__copy strong { font-weight: 600; }.dsv3-directoryregion__copy small { margin-top: 4px; color: rgb(255 255 255 / .82); font-size: .68rem; }
.dsv3-destinationstars { background: var(--dsv3-gray-50); }
.dsv3-directorycities { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.dsv3-directorycity { position: relative; min-height: 310px; overflow: hidden; border-radius: 16px; color: #fff; background: rgb(var(--dsv3-primary-950)); }
.dsv3-directorycity .dsv3-destinationmedia img { transition: transform .55s cubic-bezier(.2,.8,.2,1); }.dsv3-directorycity:hover .dsv3-destinationmedia img { transform: scale(1.04); }
.dsv3-directorycity__wash { position: absolute; inset: 35% 0 0; background: linear-gradient(transparent,rgb(0 0 0 / .8)); }
.dsv3-directorycity__copy { position: absolute; z-index: 1; right: 16px; bottom: 15px; left: 16px; display: grid; grid-template-columns: minmax(0,1fr) 30px; align-items: end; gap: 10px; }
.dsv3-directorycity__copy strong,.dsv3-directorycity__copy small { display: block; }.dsv3-directorycity__copy strong { font-size: 1.08rem; }.dsv3-directorycity__copy small { margin-top: 3px; color: rgb(255 255 255 / .76); font-size: .72rem; }.dsv3-directorycity__copy > svg { grid-column: 2; grid-row: 1; align-self: center; }
.dsv3-directorycity[data-disabled="true"] { opacity: .62; }
.dsv3-az { padding: clamp(24px,4vw,42px); border-radius: 27px; background: #fff; box-shadow: var(--dsv3-shadow-md); }
.dsv3-az__jump { position: sticky; z-index: 2; top: 80px; display: flex; flex-wrap: wrap; gap: 5px; margin: 0 0 30px; padding: 10px; border-radius: 16px; background: rgb(255 255 255 / .92); backdrop-filter: blur(12px); }
.dsv3-az__jump a { display: grid; min-width: 38px; height: 38px; place-items: center; border-radius: 50%; color: var(--dsv3-accent-strong); background: var(--dsv3-soft); font-size: .78rem; font-weight: 700; }
.dsv3-az__groups { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 38px 25px; }
.dsv3-az__group { min-width: 0; scroll-margin-top: 158px; }
.dsv3-az__group h3 { margin: 0 0 12px; color: var(--dsv3-accent); font-size: 1.8rem; font-weight: 500; }
.dsv3-az__group > div { display: grid; gap: 3px; }
.dsv3-az__group a, .dsv3-az__disabled { display: grid; min-width: 0; min-height: 48px; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 7px 4px; }
.dsv3-az__group a span, .dsv3-az__disabled span { overflow: hidden; font-size: .86rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-az__group small { grid-column: 1; color: var(--dsv3-muted); font-size: .66rem; }
.dsv3-az__disabled { opacity: .48; }
.dsv3-countryexplorer { overflow: hidden; border-radius: 22px; background: var(--dsv3-surface); box-shadow: 0 24px 70px rgb(5 46 43 / .1); }
.dsv3-countryexplorer__top { display: grid; grid-template-columns: minmax(0,1fr) minmax(300px,430px); align-items: end; gap: 34px; padding: 28px; color: white; background: rgb(var(--dsv3-primary-950)); }
.dsv3-countryexplorer__top h3 { margin: 0; font-size: clamp(1.55rem,2.6vw,2.35rem); }.dsv3-countryexplorer__top p { max-width: 58ch; margin: 8px 0 0; color: rgb(255 255 255 / .64); font-size: .73rem; line-height: 1.55; }
.dsv3-countrysearch { display: grid; min-height: 52px; grid-template-columns: 20px minmax(0,1fr); align-items: center; gap: 9px; padding: 0 15px; border-radius: 14px; color: rgb(var(--dsv3-primary-950)); background: white; }
.dsv3-countrysearch input { width: 100%; border: 0; outline: 0; color: inherit; background: transparent; font-size: .8rem; }
.dsv3-countryregions { display: flex; gap: 7px; overflow-x: auto; padding: 16px 28px; background: rgb(var(--dsv3-gray-50)); scrollbar-width: none; }.dsv3-countryregions::-webkit-scrollbar { display: none; }
.dsv3-countryregions button { min-height: 36px; flex: 0 0 auto; padding: 0 13px; border: 0; border-radius: var(--dsv3-pill); color: var(--dsv3-muted); background: white; font-size: .68rem; }.dsv3-countryregions button[aria-pressed="true"] { color: white; background: rgb(var(--dsv3-primary-800)); }
.dsv3-countryletters { display: flex; flex-wrap: wrap; gap: 6px; padding: 18px 28px 8px; }.dsv3-countryletters a { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; color: rgb(var(--dsv3-primary-800)); background: rgb(var(--dsv3-primary-50)); font-size: .69rem; font-weight: 700; }.dsv3-countryletters a[hidden] { display: none; }
.dsv3-countryaz { display: grid; gap: 0; padding: 10px 28px 30px; }.dsv3-countryletter { display: grid; grid-template-columns: 72px minmax(0,1fr); gap: 18px; padding: 20px 0; box-shadow: inset 0 1px rgb(var(--dsv3-gray-200)); scroll-margin-top: 154px; }.dsv3-countryletter[hidden] { display: none; }.dsv3-countryletter h3 { margin: 0; color: rgb(var(--dsv3-primary-800)); font-size: 1.6rem; }
.dsv3-countryletter__links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 4px 22px; }.dsv3-countrylink { display: grid; min-width: 0; min-height: 46px; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 0 5px; color: var(--dsv3-ink); }.dsv3-countrylink[hidden] { display: none; }.dsv3-countrylink strong { display: block; font-size: .78rem; font-weight: 500; }.dsv3-countrylink small { display: block; margin-top: 2px; color: var(--dsv3-muted); font-size: .59rem; }.dsv3-countrylink svg { color: var(--dsv3-muted); transition: transform .18s ease; }.dsv3-countrylink:hover { color: rgb(var(--dsv3-primary-800)); }.dsv3-countrylink:hover svg { transform: translateX(3px); }.dsv3-countrylink--disabled { opacity: .48; }
.dsv3-countryempty { padding: 34px 28px; color: var(--dsv3-muted); text-align: center; }.dsv3-countryempty[hidden] { display: none; }
.dsv3-continentlist { display: grid; gap: 10px; }
.dsv3-continent { overflow: hidden; border-radius: 21px; background: #fff; box-shadow: var(--dsv3-shadow-xs); }
.dsv3-continent summary { display: flex; min-height: 92px; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 24px; list-style: none; }
.dsv3-continent summary::-webkit-details-marker { display: none; }
.dsv3-continent summary > span { display: grid; gap: 4px; }
.dsv3-continent summary small { color: var(--dsv3-muted); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.dsv3-continent summary strong { font-size: 1.45rem; font-weight: 600; letter-spacing: -.03em; }
.dsv3-continent summary > span:last-child { display: flex; align-items: center; gap: 9px; color: var(--dsv3-muted); font-size: .78rem; }
.dsv3-continent summary svg { transition: transform .28s ease; }
.dsv3-continent[open] summary svg { transform: rotate(180deg); }
.dsv3-continent__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 11px; padding: 0 12px 12px; animation: dsv3-continent-in .3s cubic-bezier(.22,.78,.2,1) both; }
@keyframes dsv3-continent-in { from { opacity: 0; transform: translateY(-7px); } to { opacity: 1; transform: none; } }

.dsv3-desthero { position: relative; min-height: 680px; overflow: hidden; color: #fff; background: rgb(var(--dsv3-primary-950)); }
.dsv3-desthero__backgrounds, .dsv3-desthero__bg, .dsv3-desthero__wash { position: absolute; inset: 0; }
.dsv3-desthero__bg { opacity: 0; transform: translateX(5%); transition: opacity .55s ease,transform .62s cubic-bezier(.22,.78,.2,1); }
.dsv3-desthero__bg[data-active="true"] { opacity: 1; transform: none; }
.dsv3-desthero__wash { z-index: 1; background: linear-gradient(90deg,rgb(4 33 31 / .98),rgb(4 33 31 / .73) 53%,rgb(4 33 31 / .26)),linear-gradient(0deg,rgb(4 33 31 / .58),transparent 58%); }
.dsv3-desthero__inner { position: relative; z-index: 2; display: grid; min-height: 680px; grid-template-columns: minmax(0,1fr) minmax(350px,430px); align-items: center; gap: clamp(42px,7vw,96px); padding-block: 72px 78px; }
.dsv3-desthero__copy { min-width: 0; }
.dsv3-desthero__crumbs ol { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: 7px; margin: 0 0 34px; padding: 0; list-style: none; color: rgb(255 255 255 / .66); font-size: .72rem; }
.dsv3-desthero__crumbs li { display: flex; min-width: 0; align-items: center; gap: 7px; }
.dsv3-desthero__crumbs a:hover { color: #fff; }
.dsv3-desthero .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }
.dsv3-desthero__title { display: flex; min-width: 0; align-items: center; gap: 14px; margin-top: 10px; }
.dsv3-desthero__title img { flex: none; width: 54px; height: 36px; object-fit: cover; border-radius: 7px; box-shadow: 0 8px 20px rgb(0 0 0 / .2); }
.dsv3-desthero h1 { max-width: 12ch; margin: 0; font-size: clamp(3.7rem,7vw,6.5rem); font-weight: 500; line-height: .9; letter-spacing: -.065em; }
.dsv3-desthero__copy > p { max-width: 58ch; margin: 23px 0 0; color: rgb(255 255 255 / .76); font-size: 1.02rem; line-height: 1.65; }
.dsv3-desthero__credit { display: block; margin-top: 10px; color: rgb(255 255 255 / .58); font-size: .64rem; }
.dsv3-desthero__pills { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 27px; }
.dsv3-desthero__pills a { display: inline-flex; min-height: 39px; align-items: center; padding: 0 13px; border-radius: var(--dsv3-pill); background: rgb(255 255 255 / .13); font-size: .73rem; font-weight: 650; backdrop-filter: blur(10px); }
.dsv3-desthero__slider { min-width: 0; }
.dsv3-desthero__stage { position: relative; height: 410px; }
.dsv3-desthero__story { position: absolute; inset: 0; overflow: hidden; border-radius: 24px; color: #fff; opacity: 0; pointer-events: none; transform: translateX(9%); box-shadow: var(--dsv3-shadow-lg); transition: opacity .42s ease,transform .55s cubic-bezier(.22,.78,.2,1); }
.dsv3-desthero__story[data-active="true"] { opacity: 1; pointer-events: auto; transform: none; }
.dsv3-desthero[data-direction="prev"] .dsv3-desthero__story:not([data-active="true"]) { transform: translateX(-9%); }
.dsv3-desthero__storywash { position: absolute; z-index: 1; inset: 0; background: linear-gradient(0deg,rgb(3 26 24 / .96),transparent 70%); }
.dsv3-desthero__storycopy { position: absolute; z-index: 2; right: 19px; bottom: 20px; left: 19px; }
.dsv3-desthero__storycopy small { color: rgb(255 255 255 / .68); font-size: .72rem; }
.dsv3-desthero__storycopy strong { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 12px; margin-top: 7px; font-size: 1.35rem; line-height: 1.15; }
.dsv3-desthero__previewstage { position: relative; height: 82px; margin-top: 10px; }
.dsv3-desthero__preview { position: absolute; inset: 0; display: grid; min-width: 0; overflow: hidden; grid-template-columns: 105px minmax(0,1fr) auto; align-items: center; gap: 12px; padding-right: 15px; border-radius: 18px; color: var(--dsv3-ink); background: rgb(255 255 255 / .94); opacity: 0; pointer-events: none; transform: translateX(7%); transition: opacity .35s ease,transform .48s ease; }
.dsv3-desthero__preview[data-active="true"] { opacity: 1; pointer-events: auto; transform: none; }
.dsv3-desthero__preview .dsv3-destinationmedia { position: relative; height: 100%; }
.dsv3-desthero__preview span { min-width: 0; }
.dsv3-desthero__preview small, .dsv3-desthero__preview strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-desthero__preview small { color: var(--dsv3-muted); font-size: .65rem; }
.dsv3-desthero__preview strong { margin-top: 5px; font-size: .82rem; }
.dsv3-desthero__controls { display: flex; align-items: center; justify-content: end; gap: 7px; margin-top: 12px; }
.dsv3-desthero__controls > div { display: flex; margin-right: auto; gap: 5px; }
.dsv3-desthero__controls button { display: grid; width: 42px; height: 42px; padding: 0; place-items: center; border: 0; border-radius: 50%; color: #fff; background: rgb(255 255 255 / .14); }
.dsv3-desthero__controls [data-dsv3-hero-dot] { width: 24px; height: 4px; border-radius: 99px; background: rgb(255 255 255 / .32); }
.dsv3-desthero__controls [data-dsv3-hero-dot][aria-current="true"] { background: rgb(var(--dsv3-primary-200)); }
.dsv3-pagecrumbbar { position: relative; z-index: 4; color: var(--dsv3-muted); background: #fff; box-shadow: 0 1px 0 var(--dsv3-line); }
.dsv3-pagecrumbbar__inner { display: flex; min-height: 52px; align-items: center; justify-content: space-between; gap: 16px; }
.dsv3-pagecrumbs { min-width: 0; flex: 1; overflow-x: auto; scrollbar-width: none; }
.dsv3-pagecrumbs::-webkit-scrollbar { display: none; }
.dsv3-pagecrumbs ol { display: flex; min-height: 52px; min-width: max-content; align-items: center; gap: 8px; margin: 0; padding: 0; list-style: none; font-size: .72rem; }
.dsv3-pagecrumbs li { display: inline-flex; align-items: center; gap: 8px; }
.dsv3-pagecrumbs a { color: var(--dsv3-accent-strong); font-weight: 650; }
.dsv3-pagecrumbs [aria-current="page"] { color: var(--dsv3-ink); }
.dsv3-pagecrumbbar__inner > .dsv3-detailactions { flex: 0 0 auto; }
.dsv3-subnav { position: sticky; z-index: 58; top: 123px; overflow-x: auto; background: rgb(255 255 255 / .94); box-shadow: 0 10px 28px -25px rgb(5 46 43 / .45); backdrop-filter: blur(14px); transition: top .26s ease; }
.dsv3-root:has(.dsv3-header[data-shrunk="true"]) .dsv3-subnav { top: 68px; }
.dsv3-subnav .dsv3-shell { display: flex; gap: 25px; overflow-x: auto; scrollbar-width: none; }
.dsv3-subnav a { display: inline-flex; min-height: 51px; flex: none; align-items: center; color: var(--dsv3-muted); font-size: .76rem; font-weight: 650; }
.dsv3-subnav a:hover { color: var(--dsv3-accent-strong); }
.dsv3-destinationeditorial { padding-block: clamp(62px,8vw,108px); color: #fff; background: rgb(var(--dsv3-primary-950)); }
.dsv3-destinationeditorial__grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(300px,.65fr); align-items: start; gap: clamp(45px,8vw,100px); }
.dsv3-destinationeditorial .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }
.dsv3-destinationeditorial h2 { max-width: 15ch; margin: 11px 0 0; font-size: clamp(2.8rem,5vw,4.8rem); font-weight: 500; line-height: .98; letter-spacing: -.055em; }
.dsv3-prose { margin-top: 27px; color: rgb(255 255 255 / .73); font-size: 1rem; line-height: 1.75; }
.dsv3-prose h2, .dsv3-prose h3 { color: #fff; font-weight: 600; }
.dsv3-prose a { color: rgb(var(--dsv3-primary-200)); text-decoration: underline; text-underline-offset: 3px; }
.dsv3-guide { position: relative; overflow: hidden; padding: 31px; border-radius: 27px; color: var(--dsv3-ink); background: linear-gradient(145deg,#fff,rgb(var(--dsv3-primary-50))); box-shadow: var(--dsv3-shadow-lg); }
.dsv3-guide::after { content: ""; position: absolute; width: 230px; height: 230px; top: -150px; right: -100px; border-radius: 50%; background: rgb(var(--dsv3-primary-200) / .38); }
.dsv3-guide__icon { position: relative; z-index: 1; display: grid; width: 56px; height: 56px; place-items: center; border-radius: 17px; color: rgb(var(--dsv3-primary-950)); background: rgb(var(--dsv3-primary-200)); }
.dsv3-guide small { display: block; margin-top: 25px; color: var(--dsv3-accent); font-size: .69rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.dsv3-guide h3 { margin: 9px 0 0; font-size: 1.7rem; font-weight: 600; line-height: 1.1; letter-spacing: -.035em; }
.dsv3-guide p { margin: 15px 0 24px; color: var(--dsv3-muted); line-height: 1.6; }
.dsv3-guide__status { display: inline-flex; min-height: 44px; align-items: center; padding: 0 14px; border-radius: var(--dsv3-pill); color: var(--dsv3-accent-strong); background: rgb(var(--dsv3-primary-100)); font-size: .76rem; font-weight: 650; }
.dsv3-catalogue { --catalogue-glow: 126 225 202; position: relative; overflow: clip; }
.dsv3-catalogue::before { position: absolute; width: 460px; aspect-ratio: 1; top: -280px; right: -140px; border-radius: 50%; background: rgb(var(--catalogue-glow) / .12); content: ""; filter: blur(1px); }
.dsv3-catalogue--2 { --catalogue-glow: 227 177 110; }.dsv3-catalogue--3 { --catalogue-glow: 146 185 226; }.dsv3-catalogue--4 { --catalogue-glow: 222 148 156; }.dsv3-catalogue--5 { --catalogue-glow: 197 181 235; }.dsv3-catalogue--6 { --catalogue-glow: 174 213 143; }.dsv3-catalogue--7 { --catalogue-glow: 239 202 121; }.dsv3-catalogue--8 { --catalogue-glow: 113 205 204; }.dsv3-catalogue--9 { --catalogue-glow: 204 160 121; }.dsv3-catalogue--10 { --catalogue-glow: 178 196 229; }
.dsv3-catalogue__grid { position: relative; display: grid; grid-template-columns: minmax(240px,1fr) minmax(0,2fr) minmax(240px,1fr); grid-template-areas: "cover copy download"; align-items: center; gap: clamp(24px,3vw,40px); }
.dsv3-catalogue__cover { position: relative; grid-area: cover; min-height: 520px; overflow: hidden; border-radius: 18px; box-shadow: 0 25px 65px rgb(0 0 0 / .34); transform: rotate(-1.25deg); }
.dsv3-catalogue__cover .dsv3-destinationmedia { position: absolute; inset: 0; height: 100%; }.dsv3-catalogue__cover .dsv3-destinationmedia img { width: 100%; height: 100%; object-fit: cover; }
.dsv3-catalogue__coverwash { position: absolute; inset: 0; background: linear-gradient(0deg,rgb(2 24 24 / .94),transparent 68%),linear-gradient(120deg,rgb(var(--catalogue-glow) / .12),transparent 50%); }
.dsv3-catalogue__edition { position: absolute; top: 15px; right: 15px; left: 15px; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: rgb(255 255 255 / .76); font-size: .57rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.dsv3-catalogue__edition b { padding: 7px 9px; border-radius: var(--dsv3-pill); color: rgb(var(--dsv3-primary-950)); background: #fff; letter-spacing: .04em; }
.dsv3-catalogue__covercopy { position: absolute; right: 20px; bottom: 22px; left: 20px; }.dsv3-catalogue__covercopy small { color: rgb(var(--catalogue-glow)); font-size: .6rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }.dsv3-catalogue__covercopy strong { display: block; max-width: 12ch; margin-top: 8px; color: #fff; font-size: 1.65rem; line-height: .98; letter-spacing: -.045em; }
.dsv3-catalogue__copy { grid-area: copy; min-width: 0; }.dsv3-catalogue__copy h2 { max-width: 14ch; margin-top: 0; font-size: clamp(2.5rem,3.4vw,3.7rem); }.dsv3-catalogue__copy > p { max-width: 60ch; margin: 20px 0 0; color: rgb(255 255 255 / .7); font-size: .85rem; line-height: 1.7; }
.dsv3-catalogue__topics { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 17px; margin-top: 25px; }.dsv3-catalogue__topics span { display: flex; align-items: center; gap: 7px; color: rgb(255 255 255 / .82); font-size: .7rem; }.dsv3-catalogue__topics svg { flex: 0 0 auto; color: rgb(var(--catalogue-glow)); }
.dsv3-catalogue__download { display: grid; grid-area: download; min-width: 0; grid-template-columns: 52px minmax(0,1fr); align-content: start; align-items: center; gap: 14px 17px; padding: 25px; border-radius: 20px; background: rgb(255 255 255 / .09); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .08); backdrop-filter: blur(14px); }.dsv3-catalogue__downloadicon { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 50%; color: rgb(var(--dsv3-primary-950)); background: #fff; box-shadow: 0 12px 28px rgb(0 0 0 / .2); }.dsv3-catalogue__download small,.dsv3-catalogue__download strong,.dsv3-catalogue__download em { display: block; }.dsv3-catalogue__download small { color: rgb(255 255 255 / .52); font-size: .59rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }.dsv3-catalogue__download strong { margin-top: 6px; font-size: .86rem; line-height: 1.4; }.dsv3-catalogue__download em { margin-top: 6px; color: rgb(255 255 255 / .48); font-size: .59rem; font-style: normal; }.dsv3-catalogue__download > p,.dsv3-catalogue__download .dsv3-btn,.dsv3-catalogue__download .dsv3-guide__status { grid-column: 1 / -1; }.dsv3-catalogue__download > p { color: rgb(255 255 255 / .66); font-size: .71rem; line-height: 1.6; }.dsv3-catalogue__download .dsv3-btn { width: 100%; justify-content: space-between; color: rgb(var(--dsv3-primary-950)); background: #fff; }
.dsv3-guidedialog { position: fixed; z-index: 180; inset: 0; display: none; width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 20px; border: 0; place-items: center; color: var(--dsv3-ink); background: rgb(2 28 26 / .72); backdrop-filter: blur(9px); }.dsv3-guidedialog[open] { display: grid; }.dsv3-guidedialog::backdrop { background: transparent; }.dsv3-guidedialog [hidden] { display: none; }.dsv3-guidedialog > section { width: min(100%,540px); max-height: calc(100dvh - 40px); overflow-y: auto; padding: 28px; border-radius: 25px; background: #fff; box-shadow: 0 35px 100px rgb(0 0 0 / .35); animation: dsv3-guide-enter .32s cubic-bezier(.2,.8,.2,1) both; }.dsv3-guidedialog header { display: flex; align-items: start; justify-content: space-between; gap: 18px; }.dsv3-guidedialog header .dsv3-kicker { color: rgb(var(--dsv3-primary-800)); font-weight: 800; }.dsv3-guidedialog header h2 { margin: 7px 0 0; font-size: 1.8rem; }.dsv3-guidedialog header p { margin: 8px 0 0; color: var(--dsv3-muted); line-height: 1.5; }.dsv3-guidedialog header > button { display: grid; width: 42px; height: 42px; flex: 0 0 auto; padding: 0; place-items: center; border: 0; border-radius: 50%; background: var(--dsv3-soft); }.dsv3-guidedialog form { display: grid; gap: 14px; margin-top: 24px; }.dsv3-guidedialog form > div { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }.dsv3-guidedialog label { display: grid; gap: 7px; color: var(--dsv3-muted); font-size: .7rem; }.dsv3-guidedialog input:not([type="checkbox"]) { width: 100%; min-height: 49px; padding: 0 14px; border: 0; border-radius: 14px; color: var(--dsv3-ink); background: var(--dsv3-soft); }.dsv3-guidedialog__consent { display: grid!important; grid-template-columns: 18px 1fr; align-items: start; }.dsv3-guidedialog__consent input { margin-top: 2px; }.dsv3-guidedialog [data-dsv3-guide-error] { color: #9e2d2d; font-size: .72rem; }.dsv3-guidedialog__success { min-height: 300px; place-items: center; align-content: center; gap: 12px; text-align: center; }.dsv3-guidedialog__success > svg { color: var(--dsv3-accent); }.dsv3-guidedialog__success h3 { font-size: 1.55rem; }.dsv3-guidedialog__success p { color: var(--dsv3-muted); }@keyframes dsv3-guide-enter { from { opacity:0; transform:translateY(18px) scale(.98) } to { opacity:1; transform:none } }
.dsv3-gatewaygrid { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,220px)); align-items: start; justify-content: start; gap: 8px; }
.dsv3-gatewaygrid a { display: grid; min-width: 0; min-height: 92px; grid-template-columns: minmax(0,1fr) auto; align-content: end; gap: 5px; padding: 14px; border-radius: 14px; background: #fff; box-shadow: var(--dsv3-shadow-xs); }
.dsv3-gatewaygrid a span, .dsv3-gatewaygrid a strong { grid-column: 1; }
.dsv3-gatewaygrid a span { color: var(--dsv3-muted); font-size: .72rem; }
.dsv3-gatewaygrid a strong { overflow-wrap: anywhere; font-size: .9rem; line-height: 1.3; }
.dsv3-gatewaygrid a svg { grid-column: 2; grid-row: 1 / 3; align-self: end; }

/* Tours and cruises: the catalogue and sales flow use the same borderless, image-led system. */
.dsv3-tourlisthead { position: relative; min-height: 390px; overflow: hidden; color: #fff; background: rgb(var(--dsv3-primary-950)); }
.dsv3-tourlisthead > .dsv3-destinationmedia { position: absolute; inset: 0; }
.dsv3-tourlisthead > .dsv3-destinationmedia img { width: 100%; height: 100%; object-fit: cover; }
.dsv3-tourlisthead:has(.dsv3-tourmonth[open]) { z-index: 5; overflow: visible; }
.dsv3-listinghero__wash { position: absolute; inset: 0; background: linear-gradient(90deg,rgb(3 28 26 / .9),rgb(3 28 26 / .53) 52%,rgb(3 28 26 / .2)),linear-gradient(0deg,rgb(3 28 26 / .78),transparent 58%); }
.dsv3-tourlisthead__inner { position: relative; z-index: 2; display: grid; min-height: 390px; align-content: start; padding-block: 46px 38px; }
.dsv3-tourcrumbbar { padding: 13px 0; background: #fff; box-shadow: 0 1px 0 var(--dsv3-line); }
.dsv3-tourcrumbbar .dsv3-tourcrumbs a,.dsv3-tourcrumbbar .dsv3-tourcrumbs span { color: var(--dsv3-muted); }
.dsv3-listinghero__copy h1 { margin: 0; font-size: clamp(3.35rem,6vw,5.2rem); font-weight: 500; line-height: .9; letter-spacing: -.065em; }
.dsv3-listinghero__copy p { max-width: 60ch; margin: 11px 0 0; color: rgb(255 255 255 / .76); font-size: .9rem; line-height: 1.5; }
.dsv3-listingsearch { display: grid; min-height: 78px; grid-template-columns: 1.15fr .9fr .75fr .9fr auto; align-items: stretch; margin-top: 27px; padding: 9px; border-radius: 19px; color: var(--dsv3-ink); background: #fff; box-shadow: 0 24px 64px rgb(2 24 22 / .28); }
.dsv3-listingfield { display: grid; min-width: 0; align-content: center; gap: 6px; padding: 6px 17px; box-shadow: -1px 0 0 var(--dsv3-line); }
.dsv3-listingfield:first-of-type { box-shadow: none; }
.dsv3-listingfield > span { color: var(--dsv3-muted); font-size: .63rem; font-weight: 700; letter-spacing: .04em; }
.dsv3-listingfield input, .dsv3-listingfield select { min-width: 0; width: 100%; padding: 0; border: 0; outline: 0; color: var(--dsv3-ink); background: transparent; font-size: .78rem; font-weight: 700; }
.dsv3-tourmonth { position: relative; min-width: 0; box-shadow: -1px 0 0 var(--dsv3-line); }
.dsv3-tourmonth > summary { display: flex; min-height: 60px; height: 100%; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 15px; list-style: none; cursor: pointer; }
.dsv3-tourmonth > summary::-webkit-details-marker { display: none; }
.dsv3-tourmonth > summary > span { min-width: 0; }
.dsv3-tourmonth > summary small,.dsv3-tourmonth > summary strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-tourmonth > summary small { color: var(--dsv3-muted); font-size: .63rem; font-weight: 700; letter-spacing: .04em; }
.dsv3-tourmonth > summary strong { margin-top: 6px; font-size: .75rem; }
.dsv3-tourmonth > summary > svg { flex: none; color: var(--dsv3-accent-strong); transition: transform .2s ease; transform: rotate(90deg); }
.dsv3-tourmonth[open] > summary > svg { transform: rotate(-90deg); }
.dsv3-tourmonth__panel { position: absolute; z-index: 25; top: calc(100% + 12px); left: 0; width: min(480px,calc(100vw - 32px)); padding: 16px; border: 1px solid var(--dsv3-line); border-radius: 18px; background: #fff; box-shadow: 0 24px 65px rgb(2 24 22 / .24); }
.dsv3-tourmonth__panel header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 2px 2px 12px; }
.dsv3-tourmonth__panel header strong { font-size: .8rem; }
.dsv3-tourmonth__panel header a { color: var(--dsv3-accent-strong); font-size: .68rem; font-weight: 750; }
.dsv3-tourmonth__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.dsv3-tourmonth__option { display: flex; min-height: 44px; min-width: 0; align-items: center; justify-content: space-between; gap: 8px; padding: 0 11px; border-radius: 12px; color: var(--dsv3-ink); background: var(--dsv3-soft); font-size: .68rem; font-weight: 700; }
.dsv3-tourmonth__option > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-tourmonth__option small { display: grid; min-width: 21px; height: 21px; flex: none; place-items: center; border-radius: 50%; color: var(--dsv3-muted); background: #fff; font-size: .6rem; }
.dsv3-tourmonth__option:hover,.dsv3-tourmonth__option:focus-visible,.dsv3-tourmonth__option[aria-current="page"] { outline: 0; color: rgb(var(--dsv3-primary-950)); background: rgb(var(--dsv3-primary-100)); box-shadow: inset 0 0 0 1px rgb(var(--dsv3-primary-200)); }
.dsv3-tourmonth__option[aria-disabled="true"] { color: rgb(var(--dsv3-gray-500)); opacity: .52; cursor: not-allowed; }
.dsv3-listingsearch > .dsv3-btn { align-self: stretch; min-height: 60px; padding-inline: 24px; border-radius: 14px; }
.dsv3-tourcontrols { position: relative; z-index: 4; display: grid; grid-template-columns: minmax(0,1fr) auto; margin-top: 20px; color: var(--dsv3-ink); border-radius: 19px 19px 0 0; background: #fff; box-shadow: 0 24px 64px rgb(2 24 22 / .28); }
.dsv3-tourcontrols > .dsv3-listingsearch { grid-column: 1; grid-row: 1; margin-top: 0; border-radius: 19px 0 0 0; box-shadow: none; }
.dsv3-tourcontrols > .dsv3-tourfilter { display: contents; }
.dsv3-tourcontrols > .dsv3-tourfilter > summary { grid-column: 2; grid-row: 1; min-width: 196px; min-height: 78px; grid-template-columns: 1fr; padding: 10px 18px; border-radius: 0 19px 0 0; color: rgb(var(--dsv3-primary-800)); background: rgb(var(--dsv3-primary-100)); }
.dsv3-tourcontrols > .dsv3-tourfilter > summary > span { justify-content: center; white-space: nowrap; }
.dsv3-tourfilter__count { display: grid; min-width: 20px; height: 20px; place-items: center; border-radius: 50%; color: rgb(var(--dsv3-primary-900)); background: #fff; font-size: .62rem; }
.dsv3-tourcontrols > .dsv3-tourfilter[open] > summary { color: #fff; background: rgb(var(--dsv3-primary-800)); }
.dsv3-tourcontrols > .dsv3-tourfilter > .dsv3-filter__reveal { grid-column: 1 / -1; grid-row: 2; border-radius: 0 0 19px 19px; background: #fff; }
.dsv3-listingfilterstage { padding: 1px 0 8px; background: var(--dsv3-canvas); }
.dsv3-listingfilterstage .dsv3-filter { margin-top: 14px; }
.dsv3-tourlisthead .dsv3-kicker, .dsv3-cruisehero .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }
.dsv3-cruisehero h1 { max-width: 10ch; margin: 12px 0 0; font-size: clamp(3.7rem,7vw,6.6rem); font-weight: 500; line-height: .92; letter-spacing: -.065em; }
.dsv3-cruisehero__inner > p { max-width: 58ch; margin: 22px 0 0; color: rgb(255 255 255 / .72); line-height: 1.65; }
.dsv3-monthrail { display: flex; gap: 8px; overflow-x: auto; margin-top: 22px; padding-bottom: 8px; scrollbar-width: thin; }
.dsv3-monthrail a { display: flex; min-height: 42px; flex: none; align-items: center; gap: 9px; padding: 0 14px; border-radius: var(--dsv3-pill); color: rgb(255 255 255 / .76); background: rgb(255 255 255 / .1); font-size: .76rem; font-weight: 650; }
.dsv3-monthrail a[aria-current="page"] { color: rgb(var(--dsv3-primary-950)); background: rgb(var(--dsv3-primary-200)); }
.dsv3-monthrail small { display: grid; min-width: 21px; height: 21px; place-items: center; border-radius: 50%; background: rgb(255 255 255 / .14); font-size: .62rem; }
.dsv3-filter { margin-top: 16px; color: var(--dsv3-ink); background: #fff; border-radius: 21px; box-shadow: var(--dsv3-shadow-md); }
.dsv3-filter > summary { display: grid; min-height: 62px; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 13px; padding: 0 20px; list-style: none; }
.dsv3-filter > summary::-webkit-details-marker { display: none; }
.dsv3-filter > summary > span { display: inline-flex; align-items: center; gap: 9px; font-weight: 700; }
.dsv3-filter__hidelabel { display: none; }
.dsv3-filter[open] .dsv3-filter__showlabel { display: none; }
.dsv3-filter[open] .dsv3-filter__hidelabel { display: inline; }
.dsv3-filter > summary > small { color: var(--dsv3-muted); font-size: .72rem; }
.dsv3-filter > summary > svg { transition: transform .3s cubic-bezier(.22,.78,.2,1); }
.dsv3-filter[open] > summary > svg { transform: rotate(180deg); }
.dsv3-filter__reveal { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .48s cubic-bezier(.4,0,.2,1),opacity .28s ease; }
.dsv3-filter[open]:not([data-opening="true"]):not([data-closing="true"]) .dsv3-filter__reveal { grid-template-rows: 1fr; opacity: 1; }
.dsv3-filter__form { min-height: 0; overflow: hidden; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 13px; padding: 0 20px 20px; }
.dsv3-filter__form label { display: grid; min-width: 0; gap: 7px; }
.dsv3-filter__form label > span { color: var(--dsv3-muted); font-size: .68rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.dsv3-filter__form select, .dsv3-filter__form input { width: 100%; min-height: 48px; padding: 0 13px; border: 0; border-radius: 13px; outline: 0; color: var(--dsv3-ink); background: var(--dsv3-gray-50); }
.dsv3-filter__form select:focus, .dsv3-filter__form input:focus { box-shadow: 0 0 0 3px rgb(var(--dsv3-primary-100)); }
.dsv3-filter__actions { grid-column: 1 / -1; display: flex; justify-content: end; gap: 8px; padding-top: 4px; }
.dsv3-filter__form--cruise { grid-template-columns: repeat(4,minmax(0,1fr)); }
.dsv3-tourresults { background: var(--dsv3-canvas); transition: opacity .22s ease,filter .22s ease; }
[data-dsv3-tour-index][data-busy="true"] .dsv3-tourresults { opacity: .55; filter: saturate(.72); pointer-events: none; }
.dsv3-tourresults__head { display: flex; align-items: end; justify-content: space-between; margin-bottom: 28px; }
.dsv3-tourresults__head h2 { max-width: 16ch; margin: 8px 0 0; font-size: clamp(2.3rem,4vw,3.8rem); font-weight: 500; line-height: .98; letter-spacing: -.05em; }
.dsv3-tourtools { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; margin: -10px 0 24px; }
.dsv3-toursort { display: flex; min-width: 0; align-items: center; gap: 6px; overflow-x: auto; margin: 0; padding: 8px; border: 1px solid var(--dsv3-line); border-radius: var(--dsv3-pill); background: #fff; scrollbar-width: thin; }
.dsv3-toursort__item { display: inline-flex; min-height: 42px; flex: 0 0 auto; align-items: center; gap: 7px; padding: 0 13px; border-radius: var(--dsv3-pill); color: var(--dsv3-muted); font-size: .68rem; font-weight: 720; }
.dsv3-toursort__item:hover,.dsv3-toursort__item:focus-visible { outline: 0; color: var(--dsv3-accent-strong); background: var(--dsv3-soft); }
.dsv3-toursort__item[aria-current="page"] { color: var(--dsv3-accent-strong); background: var(--dsv3-soft); box-shadow: inset 0 0 0 1px rgb(var(--dsv3-primary-100)); }
.dsv3-toursort__item--price-desc svg { transform: rotate(180deg); }
.dsv3-tourquickfilters { display: flex; align-items: center; gap: 7px; }
.dsv3-tourquickfilters label { display: grid; min-width: 150px; min-height: 58px; align-content: center; gap: 4px; padding: 7px 13px; border: 1px solid var(--dsv3-line); border-radius: 15px; background: #fff; }
.dsv3-tourquickfilters label > span { color: var(--dsv3-muted); font-size: .58rem; font-weight: 740; letter-spacing: .04em; text-transform: uppercase; }
.dsv3-tourquickfilters select { min-width: 0; width: 100%; padding: 0 20px 0 0; border: 0; outline: 0; color: var(--dsv3-ink); background: transparent; font-size: .7rem; font-weight: 700; }
.dsv3-tourquickfilters label:focus-within { border-color: rgb(var(--dsv3-primary-300)); box-shadow: 0 0 0 3px rgb(var(--dsv3-primary-100)); }
.dsv3-tourgrid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.dsv3-tourcard { min-width: 0; overflow: hidden; border-radius: 21px; background: #fff; box-shadow: var(--dsv3-shadow-md); }
.dsv3-tourcard__media { position: relative; display: block; height: auto; overflow: hidden; aspect-ratio: 3 / 2; background: rgb(var(--dsv3-primary-900)); }
.dsv3-tourcard__media .dsv3-destinationmedia, .dsv3-tourcard__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.8,.2,1); }
.dsv3-tourcard--cruise .dsv3-tourcard__media img { object-position: center 26%; }
.dsv3-cruiseflight { position: absolute; z-index: 2; right: 14px; top: 14px; display: inline-flex; min-height: 31px; align-items: center; gap: 6px; padding: 0 11px; border-radius: var(--dsv3-pill); color: rgb(var(--dsv3-primary-950)); background: rgb(255 255 255 / .92); font-size: .64rem; font-weight: 750; backdrop-filter: blur(9px); }
.dsv3-tourcard__media .dsv3-occasion + .dsv3-cruiseflight { top: 52px; }
.dsv3-tourcard:hover .dsv3-tourcard__media img { transform: scale(1.035); }
.dsv3-tourcard__wash { position: absolute; inset: 0; background: linear-gradient(0deg,rgb(4 31 29 / .7),transparent 58%); }
.dsv3-occasion { position: absolute; z-index: 2; top: 14px; left: 14px; display: inline-flex; min-height: 31px; align-items: center; padding: 0 11px; border-radius: var(--dsv3-pill); color: #fff; background: rgb(147 96 23 / .9); font-size: .66rem; font-weight: 750; backdrop-filter: blur(9px); }
.dsv3-occasion--national { background: rgb(181 30 43 / .92); }
.dsv3-occasion--religious { background: rgb(var(--dsv3-primary-800) / .94); }
.dsv3-tourcard__mediafacts { position: absolute; z-index: 2; right: 12px; bottom: 12px; left: 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.dsv3-tourcard__mediafact,.dsv3-tourairline { display: inline-flex; min-height: 32px; max-width: 100%; align-items: center; gap: 7px; padding: 6px 10px; border-radius: var(--dsv3-pill); color: rgb(var(--dsv3-primary-950)); background: rgb(255 255 255 / .94); font-size: .62rem; font-weight: 760; line-height: 1.15; box-shadow: var(--dsv3-shadow-xs); backdrop-filter: blur(9px); }
.dsv3-tourairline { position: static; }
.dsv3-tourairline img { position: static!important; width: auto!important; max-width: 88px!important; height: 21px!important; object-fit: contain!important; transform: none!important; }
.dsv3-tourairline--fallback span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-tourcard__copy { padding: 16px; }
.dsv3-tourcard__labels,.dsv3-tourtitle__labels { display: flex; flex-wrap: wrap; gap: 6px; }
.dsv3-tourcard__labels { margin: 9px 0 2px; }
.dsv3-tourcard__labels span,.dsv3-tourtitle__labels span { display: inline-flex; min-height: 26px; align-items: center; padding: 5px 9px; border-radius: var(--dsv3-pill); color: rgb(var(--dsv3-primary-900)); background: rgb(var(--dsv3-primary-100)); font-size: .61rem; font-weight: 720; line-height: 1.2; }
.dsv3-tourtitle__labels { margin-top: 14px; }
.dsv3-tourtitle__labels span { min-height: 30px; padding-inline: 11px; font-size: .66rem; }
.dsv3-tourcard__brands { display: flex; min-width: 0; min-height: 25px; align-items: center; justify-content: space-between; gap: 14px; margin-top: 14px; padding-top: 12px; border-top: 1px solid rgb(var(--dsv3-gray-100)); }
.dsv3-tourcard__brand { display: inline-flex; max-width: 100%; align-items: center; gap: 7px; color: var(--dsv3-muted); font-size: .65rem; }
.dsv3-tourcard__brand--fallback { padding: 4px 0; }
.dsv3-tourcard__brand--cruise { justify-content: flex-end; margin-left: auto; text-align: right; }
.dsv3-tourcard__brand img { width: auto; max-width: 82px; height: 20px; object-fit: contain; }
.dsv3-tourcard__brand span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-tourcard__title { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 12px; margin-top: 14px; }
.dsv3-tourcard__title h2 { margin: 0; font-size: .94rem; font-weight: 650; line-height: 1.3; letter-spacing: -.02em; }
.dsv3-tourcard__title svg { margin-bottom: 2px; color: var(--dsv3-accent); }
.dsv3-tourcard__variants { margin-top: 12px; color: var(--dsv3-accent-strong); font-size: .64rem; font-weight: 720; line-height: 1.25; }
.dsv3-tourcard__variants > summary,.dsv3-tourcard__variants--static { display: flex; width: 100%; min-height: 44px; align-items: center; gap: 7px; padding: 7px 10px; border-radius: 13px; color: var(--dsv3-accent-strong); background: var(--dsv3-soft); cursor: pointer; }
.dsv3-tourcard__variants > summary { list-style: none; }
.dsv3-tourcard__variants > summary::-webkit-details-marker { display: none; }
.dsv3-tourcard__variants > summary span { min-width: 0; flex: 1; }
.dsv3-tourcard__variants > summary svg:last-child { flex: 0 0 auto; transition: transform .2s ease; }
.dsv3-tourcard__variants[open] > summary svg:last-child { transform: rotate(180deg); }
.dsv3-tourcard__variants > summary:hover,.dsv3-tourcard__variants > summary:focus-visible { outline: 0; box-shadow: inset 0 0 0 1px rgb(var(--dsv3-primary-300)),0 0 0 3px rgb(var(--dsv3-primary-100)); }
.dsv3-tourcard__variants--static { display: inline-flex; width: auto; max-width: 100%; cursor: default; }
.dsv3-tourcard__variantlist { display: grid; max-height: 272px; overflow-y: auto; gap: 5px; margin-top: 7px; padding: 5px; border: 1px solid rgb(var(--dsv3-primary-100)); border-radius: 13px; background: #fff; box-shadow: var(--dsv3-shadow-xs); }
.dsv3-tourcard__variant { display: grid; min-height: 48px; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 8px; padding: 7px 8px; border-radius: 9px; color: var(--dsv3-ink); }
.dsv3-tourcard__variant:hover,.dsv3-tourcard__variant:focus-visible { outline: 0; color: var(--dsv3-accent-strong); background: var(--dsv3-soft); }
.dsv3-tourcard__variant > span { display: grid; min-width: 0; gap: 3px; }
.dsv3-tourcard__variant strong { font-size: .7rem; line-height: 1.25; }
.dsv3-tourcard__variant small { overflow: hidden; color: var(--dsv3-muted); font-size: .58rem; font-weight: 620; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-tourcard__variant .dsv3-tourcard__variantstatus { padding: 4px 6px; border-radius: var(--dsv3-pill); color: var(--dsv3-accent-strong); background: var(--dsv3-soft); white-space: nowrap; }
.dsv3-tourcard__variant > svg { color: var(--dsv3-accent); }
.dsv3-tourcard__facts { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 15px; color: var(--dsv3-muted); font-size: .7rem; }
.dsv3-pagination { display: flex; justify-content: center; gap: 6px; margin-top: 36px; }
.dsv3-pagination a, .dsv3-pagination span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; background: #fff; font-size: .76rem; }
.dsv3-pagination a[aria-current="page"] { color: #fff; background: rgb(var(--dsv3-primary-800)); }
.dsv3-empty { padding: 58px 24px; border-radius: 25px; text-align: center; background: #fff; box-shadow: var(--dsv3-shadow-md); }
.dsv3-empty h2 { margin: 0; font-size: 2rem; font-weight: 550; }
.dsv3-empty p { color: var(--dsv3-muted); }
.checkout-release__empty { display: grid; justify-items: center; gap: 12px; text-align: center; }
.checkout-release__empty .empty__icon { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 50%; color: var(--dsv3-accent-strong); background: var(--dsv3-soft); }
.checkout-release__empty .empty__title { margin: 0; color: var(--dsv3-ink); font-size: clamp(1.6rem, 3vw, 2.35rem); font-weight: 560; line-height: 1.05; }
.checkout-release__empty .empty__body { max-width: 52ch; margin: 0; color: var(--dsv3-muted); line-height: 1.65; }
.checkout-release__empty .empty__actions { display: flex; flex-wrap: wrap; justify-content: center; margin-top: 8px; }
.dsv3-root main > .checkout-release__empty { width: min(calc(100% - 32px), 720px); margin: clamp(48px, 8vw, 96px) auto; }
.dsv3-cruisehero { position: relative; min-height: 455px; overflow: hidden; color: #fff; background: rgb(var(--dsv3-primary-950)); }
.dsv3-cruisehero > .dsv3-destinationmedia { position: absolute; inset: 0; }
.dsv3-cruisehero > .dsv3-destinationmedia img { width: 100%; height: 100%; object-fit: cover; object-position: center 28%; }
.dsv3-cruisehero__wash { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg,rgb(3 31 28 / .95),rgb(3 31 28 / .7) 48%,rgb(3 31 28 / .18)); }
.dsv3-cruisehero__inner { position: relative; z-index: 2; display: grid; min-height: 455px; align-content: center; padding-block: 54px 112px; }
.dsv3-cruisehero .dsv3-tourcrumbs { margin-bottom: 18px; color: rgb(255 255 255 / .7); }
.dsv3-cruisehero h1 { max-width: 10ch; margin-top: 18px; font-size: clamp(3.4rem,6vw,6rem); line-height: .94; letter-spacing: -.06em; }
.dsv3-cruisehero__inner > p { max-width: 58ch; margin-top: 18px; color: rgb(255 255 255 / .76); font-size: .9rem; line-height: 1.65; }
.dsv3-cruisefilter { position: relative; z-index: 4; margin-top: -59px; }
.dsv3-cruisefilters { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)) auto; gap: 6px; padding: 7px; border-radius: 18px; background: #fff; box-shadow: 0 18px 48px rgb(5 46 43 / .16); }
.dsv3-cruisefilters label { display: grid; min-width: 0; min-height: 60px; align-content: center; gap: 6px; padding: 0 14px; border-radius: 13px; background: var(--dsv3-gray-50); }
.dsv3-cruisefilters label > span { color: var(--dsv3-muted); font-size: .59rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.dsv3-cruisefilters select { min-width: 0; width: 100%; padding: 0; border: 0; outline: 0; color: var(--dsv3-ink); background: transparent; font-size: .73rem; font-weight: 700; }
.dsv3-cruisefilters > .dsv3-btn { min-height: 60px; padding-inline: 23px; border-radius: 13px; }
.dsv3-cruisestatus { width: fit-content; margin: -10px 0 22px; padding: 8px 12px; border-radius: var(--dsv3-pill); color: rgb(var(--dsv3-primary-800)); background: rgb(var(--dsv3-primary-50)); font-size: .66rem; font-weight: 720; }
.dsv3-cruisestatus:focus-visible { outline: 3px solid rgb(var(--dsv3-primary-200)); outline-offset: 3px; }
.dsv3-cruisestatus[data-state="loading"] { cursor: progress; }
.dsv3-cruisestatus[data-state="error"] { color: rgb(132 36 29); background: rgb(255 237 235); }
[data-dsv3-cruise-index] .dsv3-cruisefilters, [data-dsv3-cruise-index] .dsv3-tourresults { transition: opacity .2s ease,filter .2s ease; }
[data-dsv3-cruise-index][data-busy="true"] .dsv3-cruisefilters, [data-dsv3-cruise-index][data-busy="true"] .dsv3-tourresults { opacity: .55; filter: saturate(.72); pointer-events: none; }
.dsv3-includedgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.dsv3-includedgrid > span { display: grid; min-height: 60px; grid-template-columns: 28px minmax(0,1fr); align-items: center; gap: 9px; padding: 11px 13px; border-radius: 13px; color: var(--dsv3-muted); background: var(--dsv3-gray-50); font-size: .69rem; line-height: 1.45; }
.dsv3-includedgrid svg { color: rgb(var(--dsv3-primary-700)); }
.dsv3-includedgrid strong { font-weight: 600; }
.dsv3-cruiseshipfacts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.dsv3-cruiseshipfacts article { min-height: 116px; padding: 17px; border-radius: 14px; background: var(--dsv3-gray-50); }
.dsv3-cruiseshipfacts span,.dsv3-cruiseshipfacts strong { display: block; }.dsv3-cruiseshipfacts span { color: var(--dsv3-muted); font-size: .62rem; }.dsv3-cruiseshipfacts strong { margin-top: 8px; font-size: .84rem; line-height: 1.35; }
.dsv3-cruiseflightpanel { display: grid; grid-template-columns: 155px minmax(0,1fr); align-items: center; gap: 22px; margin-top: 18px; padding: 20px; border-radius: 16px; background: rgb(var(--dsv3-primary-50)); }
.dsv3-cruiseflightpanel > img { width: auto; max-width: 120px; max-height: 34px; object-fit: contain; }.dsv3-cruiseflightpanel > svg { color: rgb(var(--dsv3-primary-700)); }
.dsv3-cruiseflightpanel strong,.dsv3-cruiseflightpanel span { display: block; }.dsv3-cruiseflightpanel strong { font-size: .86rem; }.dsv3-cruiseflightpanel span { margin-top: 5px; color: var(--dsv3-muted); font-size: .68rem; line-height: 1.55; }
.dsv3-cruisedate { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 10px; margin-bottom: 18px; padding: 15px; border-radius: 16px; background: rgb(var(--dsv3-primary-50)); }
.dsv3-cruisedate label { display: grid; gap: 7px; min-width: 0; }.dsv3-cruisedate label > span { color: rgb(var(--dsv3-primary-800)); font-size: .65rem; font-weight: 780; letter-spacing: .055em; text-transform: uppercase; }
.dsv3-cruisedate select { width: 100%; min-height: 48px; padding: 0 42px 0 14px; border: 1px solid rgb(var(--dsv3-primary-200)); border-radius: 12px; color: var(--dsv3-ink); background: #fff; font: inherit; font-size: .78rem; font-weight: 720; }
.dsv3-cruisedate > .dsv3-btn { min-height: 48px; border-radius: 12px; }.dsv3-cruisedate > p { grid-column: 1 / -1; margin: 0; color: var(--dsv3-muted); font-size: .65rem; line-height: 1.45; }

.dsv3-tourgallery { padding-block: 24px; background: var(--dsv3-canvas); }
.dsv3-tourgallery > .dsv3-shell { position: relative; display: grid; height: 480px; grid-template-columns: 1.6fr 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 8px; overflow: hidden; border-radius: 24px; }
.dsv3-tourgallery__cell { position: relative; min-width: 0; overflow: hidden; background: rgb(var(--dsv3-primary-900)); }
.dsv3-tourgallery__cell--1 { grid-row: 1 / 3; }
.dsv3-tourgallery__cell .dsv3-destinationmedia, .dsv3-tourgallery__cell img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dsv3-tourgallery__count { position: absolute; z-index: 2; bottom: 15px; left: 15px; padding: 9px 12px; border-radius: var(--dsv3-pill); color: #fff; background: rgb(5 46 43 / .72); font-size: .7rem; font-weight: 650; backdrop-filter: blur(10px); }
.dsv3-tourtitle { padding-block: 32px 45px; background: #fff; }
.dsv3-tourcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin: 0; padding: 0; list-style: none; color: var(--dsv3-muted); font-size: .7rem; }
.dsv3-tourcrumbs li { display: inline-flex; align-items: center; gap: 4px; }
.dsv3-tourtitle__grid { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: start; gap: 34px; margin-top: 27px; }
.dsv3-tourtitle h1 { max-width: 17ch; margin: 9px 0 0; font-size: clamp(2.8rem,5vw,5rem); font-weight: 500; line-height: .96; letter-spacing: -.058em; }
.dsv3-tourtitle__grid > div:first-child > p { max-width: 70ch; margin: 19px 0 0; color: var(--dsv3-muted); line-height: 1.65; }
.dsv3-tourtitle__facts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.dsv3-tourtitle__facts > span { display: inline-flex; min-height: 39px; align-items: center; gap: 7px; padding: 0 12px; border-radius: var(--dsv3-pill); color: var(--dsv3-accent-strong); background: var(--dsv3-soft); font-size: .73rem; font-weight: 650; }
.dsv3-tourtitle__marks { display: flex; align-items: center; gap: 10px; }
.dsv3-tourtitle__marks > img { width: auto; max-width: 100px; height: 30px; object-fit: contain; }
.dsv3-tourdetail { display: grid; grid-template-columns: minmax(0,1fr) 330px; align-items: start; gap: 42px; padding-block: 56px 92px; }
.dsv3-tourdetail__main { min-width: 0; }
.dsv3-detailsection + .dsv3-detailsection { margin-top: 68px; }
.dsv3-detailsection { scroll-margin-top: 142px; }
.dsv3-detailsection h2 { max-width: 18ch; margin: 8px 0 0; font-size: clamp(2rem,3.5vw,3.2rem); font-weight: 500; line-height: 1; letter-spacing: -.045em; }
.dsv3-detailsection__lede { max-width: 55ch; margin: 13px 0 0; color: var(--dsv3-muted); line-height: 1.6; }
.dsv3-prose { min-width: 0; max-width: 100%; margin-top: 24px; overflow-wrap: anywhere; padding: clamp(23px,4vw,38px); border-radius: 23px; background: #fff; box-shadow: var(--dsv3-shadow-md); }
.dsv3-prose p { margin: 0; color: var(--dsv3-muted); font-size: .97rem; line-height: 1.78; }
.dsv3-prose p + p { margin-top: 16px; }
.dsv3-tourbooking { position: sticky; top: 92px; padding: 24px; border-radius: 24px; background: #fff; box-shadow: var(--dsv3-shadow-lg); }
.dsv3-tourbooking h2 { margin: 9px 0 0; font-size: 1.18rem; line-height: 1.3; }
.dsv3-tourbooking__price small, .dsv3-tourbooking__price strong { display: block; }
.dsv3-tourbooking__price { margin: 25px 0 18px; }
.dsv3-tourbooking__price small { color: var(--dsv3-muted); font-size: .7rem; }
.dsv3-tourbooking__price strong { margin-top: 5px; font-size: 1.8rem; letter-spacing: -.04em; }
.dsv3-tourbooking__pending { margin: 23px 0 17px; color: var(--dsv3-muted); font-size: .82rem; line-height: 1.5; }
.dsv3-tourbooking > .dsv3-btn { width: 100%; }
.dsv3-tourbooking__support { display: flex; align-items: center; gap: 10px; margin-top: 16px; padding: 15px; border-radius: 15px; color: #fff; background: rgb(var(--dsv3-primary-800)); }
.dsv3-tourbooking__support span, .dsv3-tourbooking__support strong, .dsv3-tourbooking__support small { display: block; }
.dsv3-tourbooking__support strong { font-size: .78rem; }
.dsv3-tourbooking__support small { margin-top: 3px; color: rgb(255 255 255 / .67); font-size: .65rem; }
.dsv3-variants { display: grid; gap: 18px; margin-top: 24px; padding: 25px; border-radius: 22px; background: #fff; box-shadow: var(--dsv3-shadow-md); }
.dsv3-variants__axis { min-width: 0; }
.dsv3-variants__label { margin: 0 0 9px; color: var(--dsv3-muted); font-size: .7rem; font-weight: 700; text-transform: uppercase; }
.dsv3-variants__options { display: flex; flex-wrap: wrap; gap: 7px; }
.dsv3-variants a, .dsv3-variants span { display: inline-flex; min-height: 39px; align-items: center; padding: 0 12px; border-radius: var(--dsv3-pill); background: var(--dsv3-gray-50); font-size: .73rem; }
.dsv3-variants span[aria-current="true"] { gap: 6px; }
.dsv3-variants span[aria-current="true"] { color: #fff; background: rgb(var(--dsv3-primary-800)); }
.dsv3-detailrail, .dsv3-tourrail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(245px,1fr); gap: 12px; overflow-x: auto; margin-top: 24px; padding-bottom: 13px; scroll-snap-type: x proximity; }
.dsv3-detailmedia { position: relative; min-height: 315px; overflow: hidden; border-radius: 20px; color: #fff; background: rgb(var(--dsv3-primary-900)); scroll-snap-align: start; }
.dsv3-detailmedia .dsv3-destinationmedia, .dsv3-detailmedia img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dsv3-detailmedia__wash { position: absolute; inset: 0; background: linear-gradient(0deg,rgb(4 31 29 / .95),transparent 70%); }
.dsv3-detailmedia__copy { position: absolute; z-index: 2; right: 17px; bottom: 17px; left: 17px; }
.dsv3-detailmedia__copy small { color: rgb(255 255 255 / .69); font-size: .68rem; }
.dsv3-detailmedia__copy strong { display: flex; align-items: end; justify-content: space-between; gap: 10px; margin-top: 6px; font-size: 1rem; line-height: 1.28; }
.dsv3-detailsection__action { margin: 13px 0 0; }
.dsv3-detailsection__action a { display: inline-flex; align-items: center; gap: 8px; color: var(--dsv3-accent); font-size: .76rem; font-weight: 700; }
.dsv3-itinerary { display: grid; gap: 8px; margin-top: 25px; }
.dsv3-itinerary details { border-radius: 17px; background: #fff; box-shadow: var(--dsv3-shadow-xs); }
.dsv3-itinerary summary { display: grid; min-height: 66px; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 0 18px; list-style: none; }
.dsv3-itinerary summary::-webkit-details-marker { display: none; }
.dsv3-itinerary summary > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 12px; color: var(--dsv3-accent-strong); background: var(--dsv3-soft); font-size: .68rem; font-weight: 750; }
.dsv3-itinerary summary > strong { font-size: .88rem; }
.dsv3-itinerary summary > svg { transition: transform .25s ease; }
.dsv3-itinerary details[open] summary > svg { transform: rotate(180deg); }
.dsv3-itinerary details > div { padding: 0 18px 20px 72px; }
.dsv3-itinerary details p { margin: 0; color: var(--dsv3-muted); font-size: .86rem; line-height: 1.7; }
.dsv3-itinerary details small { display: inline-flex; align-items: center; gap: 6px; margin-top: 13px; color: var(--dsv3-accent); }
.dsv3-stays { display: grid; gap: 8px; margin-top: 24px; }
.dsv3-stays article { display: grid; min-height: 78px; grid-template-columns: 42px minmax(0,1fr); align-items: center; gap: 13px; padding: 15px 18px; border-radius: 17px; background: #fff; }
.dsv3-stays article > svg { color: var(--dsv3-accent); }
.dsv3-stays strong, .dsv3-stays span { display: block; }
.dsv3-stays strong { font-size: .88rem; }
.dsv3-stays span { margin-top: 5px; color: var(--dsv3-muted); font-size: .7rem; }
.dsv3-placechips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.dsv3-placechips > a, .dsv3-placechips > span { display: inline-flex; min-height: 43px; align-items: center; gap: 8px; padding: 0 13px; border-radius: var(--dsv3-pill); background: #fff; font-size: .76rem; }
.dsv3-placechips small { color: var(--dsv3-muted); font-size: .62rem; }
.dsv3-placechips a svg { color: var(--dsv3-accent); }
.dsv3-reviewgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 24px; }
.dsv3-reviewgrid article { padding: 22px; border-radius: 19px; background: #fff; box-shadow: var(--dsv3-shadow-xs); }
.dsv3-reviewgrid__stars { display: flex; gap: 3px; color: rgb(202 145 31); }
.dsv3-reviewgrid p { color: var(--dsv3-muted); font-size: .84rem; line-height: 1.65; }
.dsv3-reviewgrid footer { display: flex; justify-content: space-between; gap: 10px; font-size: .68rem; }
.dsv3-reviewgrid time { color: var(--dsv3-muted); }
.dsv3-related { background: rgb(255 255 255 / .55); }
.dsv3-tourrail { grid-auto-columns: minmax(280px,370px); }
.dsv3-prerequest { padding: clamp(22px,3vw,34px); border-radius: 22px; background: #fff; box-shadow: var(--dsv3-shadow-md); }
.dsv3-prerequest h3 { margin: 0; font-size: clamp(1.35rem,2vw,1.75rem); letter-spacing: -.035em; }
.dsv3-prerequest > p { max-width: 66ch; margin: 8px 0 0; color: var(--dsv3-muted); font-size: .8rem; line-height: 1.6; }
.dsv3-prerequest .prerequest { display: grid; gap: 16px; margin-top: 22px; }
.dsv3-prerequest .prerequest > .bookingcard__note { margin: 0; color: var(--dsv3-muted); font-size: .76rem; line-height: 1.55; }
.dsv3-prerequest .prerequest__fields { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(120px,.55fr) minmax(190px,.8fr); gap: 12px; }
.dsv3-prerequest .field { display: grid; min-width: 0; align-content: start; gap: 7px; }
.dsv3-prerequest .field__label { display: block; margin: 0; padding: 0 2px; color: var(--dsv3-muted); font-size: .67rem; font-weight: 720; letter-spacing: .025em; text-transform: none; }
.dsv3-prerequest .field--icon { position: relative; min-width: 0; }
.dsv3-prerequest .field__icon { position: absolute; z-index: 1; top: 50%; left: 15px; display: flex; align-items: center; color: var(--dsv3-accent); pointer-events: none; transform: translateY(-50%); }
.dsv3-prerequest .input { width: 100%; height: 54px; min-height: 54px; padding: 0 15px 0 46px; border: 1px solid rgb(var(--dsv3-gray-200)); border-radius: 14px; outline: 0; color: var(--dsv3-ink); background: rgb(var(--dsv3-gray-50)); box-shadow: none; font-size: .82rem; font-weight: 620; transition: border-color .18s ease,box-shadow .18s ease,background-color .18s ease; }
.dsv3-prerequest .input:hover { border-color: rgb(var(--dsv3-gray-300)); background: #fff; }
.dsv3-prerequest .input:focus-visible { border-color: rgb(var(--dsv3-primary-500)); background: #fff; box-shadow: 0 0 0 3px rgb(var(--dsv3-primary-500) / .16); }
.dsv3-prerequest .input[aria-invalid="true"] { border-color: rgb(181 55 46); box-shadow: 0 0 0 3px rgb(181 55 46 / .12); }
.dsv3-prerequest .notice { margin: 0; font-size: .67rem; line-height: 1.45; }
.dsv3-prerequest .notice--error,.dsv3-prerequest .notice--warn { color: rgb(155 48 42); }
.dsv3-prerequest .notice--success { color: rgb(var(--dsv3-primary-800)); }
.dsv3-prerequest .prerequest__actions { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 14px; }
.dsv3-prerequest .prerequest__actions .btn { display: inline-flex; width: auto; min-width: 190px; min-height: 52px; align-items: center; justify-content: center; gap: 8px; margin: 0; padding: 0 22px; border: 0; border-radius: var(--dsv3-pill); color: #fff; background: var(--dsv3-button); box-shadow: var(--dsv3-shadow-sm); font-weight: 750; }
.dsv3-prerequest .prerequest__fineprint { display: grid; gap: 3px; }
.dsv3-prerequest .prerequest__fineprint .bookingcard__note { margin: 0; color: var(--dsv3-muted); font-size: .64rem; line-height: 1.5; }
.dsv3-prerequest .hp { position: absolute!important; left: -10000px!important; width: 1px!important; height: 1px!important; overflow: hidden!important; }
.dsv3-mobilebooking { display: none; }

/* Existing, proven occupancy island inside the new visual language. */
.dsv3-detailsection .tourpick { margin-top: 25px; }
.dsv3-detailsection .tourpick__step--dates > .tourpick__step-title { display: none; }
.dsv3-detailsection .departures { display: grid; gap: 9px; }
.dsv3-detailsection .departure { overflow: hidden; border-radius: 18px; background: #fff; box-shadow: var(--dsv3-shadow-xs); }
.dsv3-detailsection .departure__head { display: grid; min-height: 68px; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 12px; padding: 0 18px; list-style: none; }
.dsv3-detailsection .departure__head::-webkit-details-marker { display: none; }
.dsv3-detailsection .departure__when { display: flex; align-items: center; gap: 8px; font-size: .83rem; font-weight: 650; }
.dsv3-detailsection .departure__note { color: var(--dsv3-muted); font-size: .68rem; font-weight: 400; }
.dsv3-detailsection .departure__price { text-align: right; }
.dsv3-detailsection .departure__price span { display: block; }
.dsv3-detailsection .departure__price .price { font-size: .9rem; font-weight: 750; }
.dsv3-detailsection .departure__price-label { color: var(--dsv3-muted); font-size: .62rem; }
.dsv3-detailsection .departure__chevron { transition: transform .25s ease; }
.dsv3-detailsection .departure[open] .departure__chevron { transform: rotate(180deg); }
.dsv3-detailsection .departure__form { padding: 4px 18px 19px; }
.dsv3-detailsection .tourpick__steps { display: grid; gap: 13px; margin: 0; padding: 0; list-style: none; }
.dsv3-detailsection .tourpick__step { min-width: 0; }
.dsv3-detailsection .tourpick__step-title { display: flex; align-items: center; gap: 8px; margin: 12px 0 9px; font-size: .78rem; }
.dsv3-detailsection .tourpick__step-no { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 9px; color: var(--dsv3-accent-strong); background: var(--dsv3-soft); font-size: .62rem; }
.dsv3-detailsection .tourpick__stays { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.dsv3-detailsection .tourpick__stay { padding: 12px; border-radius: 12px; background: var(--dsv3-gray-50); }
.dsv3-detailsection .tourpick__stay-hotel, .dsv3-detailsection .tourpick__stay-meta { display: block; }
.dsv3-detailsection .tourpick__stay-hotel { font-size: .76rem; font-weight: 650; }
.dsv3-detailsection .tourpick__stay-meta, .dsv3-detailsection .tourpick__note { margin-top: 4px; color: var(--dsv3-muted); font-size: .65rem; }
.dsv3-detailsection .btn { display: inline-flex; min-height: 47px; align-items: center; justify-content: center; gap: 8px; padding: 0 17px; border: 0; border-radius: var(--dsv3-pill); font-weight: 700; }
.dsv3-detailsection .btn--primary { color: #fff; background: var(--dsv3-button); }
.dsv3-detailsection .btn--block { width: 100%; margin-top: 15px; }
.dsv3-detailsection .occupancy, .dsv3-detailsection [class*="occupancy"] { max-width: 100%; }
.dsv3-detailsection .occupancy { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); align-items: start; gap: 13px; }
.dsv3-detailsection .occupancy__trigger { display: grid; width: 100%; min-height: 58px; grid-template-columns: 24px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 8px 12px; border: 0; border-radius: 14px; color: var(--dsv3-ink); background: var(--dsv3-gray-50); text-align: left; }
.dsv3-detailsection .occupancy__trigger-text, .dsv3-detailsection .occupancy__trigger-label, .dsv3-detailsection .occupancy__trigger-value { display: block; }
.dsv3-detailsection .occupancy__trigger-label { color: var(--dsv3-muted); font-size: .63rem; }
.dsv3-detailsection .occupancy__trigger-value { margin-top: 2px; font-size: .78rem; font-weight: 700; }
.dsv3-detailsection .occupancy__cost { padding: 13px 15px; border-radius: 14px; background: var(--dsv3-soft); }
.dsv3-detailsection .occupancy__lines { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.dsv3-detailsection .occupancy__line { display: flex; justify-content: space-between; gap: 12px; font-size: .72rem; }
.dsv3-detailsection .occupancy__line-name { color: var(--dsv3-muted); }
.dsv3-detailsection .occupancy__line-count { margin-left: 4px; }
.dsv3-detailsection .occupancy__line-price { font-weight: 700; white-space: nowrap; }
.dsv3-detailsection .occupancy__total { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin: 12px 0 0; padding-top: 11px; box-shadow: 0 -1px 0 rgb(var(--dsv3-primary-200)); }
.dsv3-detailsection .occupancy__total-label { font-size: .73rem; font-weight: 650; }
.dsv3-detailsection .occupancy__total-value { font-size: 1rem; font-weight: 800; }
.dsv3-detailsection .occupancy__total-note { margin: 8px 0 0; color: var(--dsv3-muted); font-size: .62rem; line-height: 1.45; }
.dsv3-detailsection .occupancy__panel { width: min(calc(100vw - 28px),430px); max-height: min(680px,calc(100vh - 36px)); overflow: auto; margin: auto; padding: 0; border: 0; border-radius: 21px; color: var(--dsv3-ink); background: #fff; box-shadow: var(--dsv3-shadow-lg); }
.dsv3-detailsection .occupancy__panel::backdrop { background: rgb(5 46 43 / .48); backdrop-filter: blur(3px); }
.dsv3-detailsection .panel__head { display: flex; min-height: 62px; align-items: center; justify-content: space-between; gap: 12px; padding: 0 18px; box-shadow: 0 1px 0 var(--dsv3-line); }
.dsv3-detailsection .panel__title { margin: 0; font-size: 1rem; }
.dsv3-detailsection .panel__close { display: grid; width: 40px; height: 40px; padding: 0; place-items: center; border: 0; border-radius: 50%; background: var(--dsv3-gray-50); }
.dsv3-detailsection .occupancy__body { padding: 8px 18px 18px; }
.dsv3-detailsection .occupancy__row { display: grid; min-height: 74px; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 14px; padding-block: 10px; box-shadow: 0 1px 0 var(--dsv3-line); }
.dsv3-detailsection .occupancy__row-title, .dsv3-detailsection .occupancy__row-note { display: block; }
.dsv3-detailsection .occupancy__row-title { font-size: .83rem; font-weight: 700; }
.dsv3-detailsection .occupancy__row-note { margin-top: 3px; color: var(--dsv3-muted); font-size: .67rem; }
.dsv3-detailsection .occupancy__stepper { display: grid; grid-template-columns: 38px 38px 38px; align-items: center; }
.dsv3-detailsection .occupancy__step { width: 38px; height: 38px; padding: 0; border: 0; border-radius: 50%; color: var(--dsv3-accent-strong); background: var(--dsv3-soft); font-size: 1.15rem; }
.dsv3-detailsection .occupancy__step:disabled { opacity: .35; }
.dsv3-detailsection .occupancy__count { width: 38px; min-height: 38px; padding: 0; border: 0; outline: 0; background: transparent; text-align: center; -moz-appearance: textfield; }
.dsv3-detailsection .occupancy__count::-webkit-inner-spin-button { appearance: none; }
.dsv3-detailsection .occupancy__reason { grid-column: 1 / -1; margin: 0; color: rgb(185 55 46); font-size: .68rem; }
.dsv3-detailsection .occupancy__agent { margin-top: 14px; padding: 15px; border-radius: 14px; background: var(--dsv3-soft); }
.dsv3-detailsection .occupancy__agent-title { margin: 0; font-weight: 750; }
.dsv3-detailsection .occupancy__agent-body { color: var(--dsv3-muted); font-size: .72rem; line-height: 1.5; }
.dsv3-detailsection .occupancy__agent-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.dsv3-detailsection .occupancy__done { margin-top: 15px; }
.dsv3-detailsection .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.dsv3-detailsection input, .dsv3-detailsection select, .dsv3-detailsection button { font: inherit; }

.dsv3-vibes { padding-block: clamp(54px,7vw,92px); background: var(--dsv3-canvas); }
.dsv3-vibes__layout { display: grid; grid-template-columns: minmax(250px,.58fr) minmax(0,1.42fr); align-items: start; gap: clamp(34px,6vw,76px); }
.dsv3-vibes__intro { position: sticky; top: 96px; }
.dsv3-vibes__intro h1 { max-width: 8ch; margin: 10px 0 0; font-size: clamp(3rem,5vw,4.9rem); font-weight: 500; line-height: .95; letter-spacing: -.055em; }
.dsv3-vibes__intro > p { max-width: 38ch; margin: 20px 0 0; color: var(--dsv3-muted); line-height: 1.65; }
.dsv3-vibes__status { padding: 12px 14px; border-radius: 13px; color: var(--dsv3-accent-strong)!important; background: var(--dsv3-soft); font-size: .82rem; }
.dsv3-vibes__form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.dsv3-vibes__cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; }
.dsv3-vibecard { position: relative; min-width: 0; overflow: hidden; border-radius: 19px; color: #fff; background: rgb(var(--dsv3-primary-900)); aspect-ratio: 4 / 3; box-shadow: var(--dsv3-shadow-sm); }
.dsv3-vibecard input { position: absolute; z-index: 3; top: 12px; right: 12px; width: 20px; height: 20px; margin: 0; accent-color: rgb(var(--dsv3-primary-300)); }
.dsv3-vibecard__media, .dsv3-vibecard__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dsv3-vibecard__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg,rgb(3 28 26 / .92),transparent 72%); }
.dsv3-vibecard strong { position: absolute; z-index: 2; right: 14px; bottom: 13px; left: 14px; font-size: 1.04rem; }
.dsv3-vibecard:has(input:checked) { box-shadow: inset 0 0 0 4px rgb(var(--dsv3-primary-300)),var(--dsv3-shadow-md); }
.dsv3-vibes__foot { position: sticky; z-index: 5; bottom: 0; display: flex; align-items: center; justify-content: end; gap: 9px; margin-top: 14px; padding: 12px; border-radius: 18px; background: rgb(255 255 255 / .94); box-shadow: var(--dsv3-shadow-md); backdrop-filter: blur(14px); }
.dsv3-vibes__foot output { margin-right: auto; padding-left: 8px; color: var(--dsv3-muted); font-size: .78rem; white-space: nowrap; }
.dsv3-vibeready { min-height: 66vh; display: grid; place-items: center; padding-block: 72px; background: radial-gradient(circle at 50% 0,rgb(var(--dsv3-primary-100)),transparent 48%),var(--dsv3-canvas); }
.dsv3-vibeready__card { max-width: 820px; padding: clamp(34px,7vw,76px); border-radius: 30px; text-align: center; background: #fff; box-shadow: var(--dsv3-shadow-lg); }
.dsv3-vibeready__mark { display: grid; width: 62px; height: 62px; margin: 0 auto 22px; place-items: center; border-radius: 50%; color: rgb(var(--dsv3-primary-950)); background: rgb(var(--dsv3-primary-200)); }
.dsv3-vibeready h1 { max-width: 13ch; margin: 12px auto 0; font-size: clamp(2.6rem,5vw,4.6rem); font-weight: 500; line-height: .98; letter-spacing: -.055em; }
.dsv3-vibeready p { max-width: 58ch; margin: 18px auto 0; color: var(--dsv3-muted); line-height: 1.65; }
.dsv3-vibeready__chosen { color: var(--dsv3-accent-strong)!important; font-size: 1.16rem; font-weight: 700; }
.dsv3-vibeready__trim { padding: 10px 12px; border-radius: 12px; background: var(--dsv3-soft); font-size: .82rem; }
.dsv3-vibeready__progress { height: 7px; max-width: 520px; overflow: hidden; margin: 27px auto 0; border-radius: var(--dsv3-pill); background: rgb(var(--dsv3-gray-200)); }
.dsv3-vibeready__progress span { display: block; width: 100%; height: 100%; border-radius: inherit; background: linear-gradient(90deg,rgb(var(--dsv3-primary-400)),rgb(var(--dsv3-primary-700))); transform: scaleX(0); transform-origin: left; animation: dsv3-vibeready-load 3s linear forwards; }
.dsv3-vibeready__wait { margin-top: 12px!important; font-size: .72rem; }
.dsv3-vibeready__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; margin-top: 27px; }
@keyframes dsv3-vibeready-load { to { transform: scaleX(1); } }

.dsv3-assist { color: #fff; background: rgb(var(--dsv3-primary-700)); }
.dsv3-assist__inner { display: grid; min-height: 142px; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 16px; }
.dsv3-assist h2 { margin: 0; font-size: clamp(1.7rem,3vw,2.5rem); font-weight: 500; letter-spacing: -.035em; }
.dsv3-assist p { margin: 9px 0 0; color: rgb(255 255 255 / .72); }
.dsv3-footer { color: #fff; background: rgb(var(--dsv3-primary-950)); }
.dsv3-footer__main { display: grid; grid-template-columns: 1.25fr repeat(4,1fr); gap: 34px; padding-block: 62px; }
.dsv3-footer__brand img { width: 145px; height: auto; filter: brightness(0) invert(1); }
.dsv3-footer__brand p { max-width: none; margin: 18px 0 0; color: rgb(255 255 255 / .62); font-size: clamp(.62rem,.72vw,.72rem); line-height: 1.4; white-space: nowrap; }
.dsv3-footer__col { display: grid; align-content: start; gap: 10px; }
.dsv3-footer__col h3 { margin: 0 0 6px; color: rgb(var(--dsv3-primary-200)); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.dsv3-footer__col a { color: rgb(255 255 255 / .7); font-size: .82rem; }
.dsv3-footer__legal { background: rgb(var(--dsv3-primary-800)); }
.dsv3-footer__legalinner { display: flex; min-height: 116px; align-items: center; justify-content: space-between; gap: 30px; padding-block: 22px; }
.dsv3-footer__legal p { max-width: 900px; margin: 0; color: rgb(255 255 255 / .72); font-size: .72rem; line-height: 1.55; }
.dsv3-footer__credits { display: flex; gap: 16px; margin-top: 8px; color: rgb(255 255 255 / .58); font-size: .67rem; }
.dsv3-social { display: flex; gap: 7px; }
.dsv3-social a { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; background: rgb(255 255 255 / .1); }
.dsv3-floats { position: fixed; z-index: 60; right: max(16px,env(safe-area-inset-right)); bottom: max(16px,env(safe-area-inset-bottom)); display: grid; gap: 9px; }
.dsv3-floats a, .dsv3-floats button { display: grid; width: 50px; height: 50px; padding: 0; place-items: center; border: 0; border-radius: 50%; color: #fff; box-shadow: var(--dsv3-shadow-md); }
.dsv3-floats button { opacity: 0; pointer-events: none; background: rgb(var(--dsv3-primary-900)); transform: translateY(8px); transition: .25s ease; }
.dsv3-floats button[data-visible="true"] { opacity: 1; pointer-events: auto; transform: none; }
.dsv3-floats a { background: #25d366; }
.dsv3-corporatelegacy { min-height: 60vh; padding-block: 24px 90px; color: var(--dsv3-ink); background: var(--dsv3-gray-50); font-family: var(--dsv3-font); }
.dsv3-corporatelegacy :where(button,input,select,textarea) { font-family: inherit; }
.dsv3-corporatelegacy .container { width: 100%; max-width: none; margin: 0; padding: 0; }
.dsv3-corporatelegacy .supportform__field { min-width: 0; }
.dsv3-corporatelegacy .supportform .input { width: 100%; min-width: 0; max-width: 100%; }
/* Native okun 3rem'lik alanı ve tam konu metni aynı kutuya sığsın: kurumsal form geniş ekranda
   kendi içinde iki kolona bölünüyor ve üçüncü alan 247px'e düşüyordu. Konuyu küçültmek ya da
   üç noktayla kesmek yerine native select iki kolonu kaplar; 40rem altında form zaten tek kolon. */
.dsv3-corporatelegacy .supportform__field:has(> select.input) { grid-column: 1 / -1; }
.dsv3-corporatelegacy .supportform select.input { appearance: auto; width: 100%; min-width: 0; max-width: 100%; padding: 0 3rem 0 1rem; font-size: .875rem; }
@media (min-width:64rem) {
  .dsv3-corporatelegacy .corporate > aside { position: sticky; top: 94px; align-self: start; max-height: calc(100vh - 112px); overflow: auto; }
  .dsv3-corporatelegacy .cnav { position: static; }
}

/* Hotels: live catalogue and detail family. */
.dsv3-hotellisthead { padding: 68px 0 34px; color: #fff; background: radial-gradient(circle at 86% 12%,rgb(var(--dsv3-primary-500) / .26),transparent 29%),linear-gradient(145deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-800))); }
.dsv3-hotellisthead .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }
.dsv3-hotellisthead h1 { max-width: 13ch; margin: 10px 0 0; font-size: clamp(3.4rem,6.2vw,5.35rem); font-weight: 500; line-height: .95; letter-spacing: -.058em; }
.dsv3-hotellisthead > .dsv3-shell > p { max-width: 54ch; margin: 20px 0 28px; color: rgb(255 255 255 / .72); font-size: 1.03rem; line-height: 1.62; }
.dsv3-hotellisthead--catalogue { position: relative; min-height: 510px; overflow: visible; padding: 0; background: rgb(var(--dsv3-primary-950)); }
.dsv3-hotellisthead--catalogue > .dsv3-destinationmedia { position: absolute; inset: 0; }
.dsv3-hotellisthead--catalogue > .dsv3-destinationmedia img { width: 100%; height: 100%; object-fit: cover; }
.dsv3-hotellisthead__inner { position: relative; z-index: 2; display: grid; min-height: 510px; align-content: start; padding-block: 76px 42px; }
.dsv3-hotellisthead--catalogue .dsv3-listinghero__copy h1 { max-width: none; margin: 0; }
.dsv3-hotellisthead--catalogue .dsv3-listinghero__copy p { margin-bottom: 0; }
.dsv3-hotelcontrols { position: relative; z-index: 4; display: grid; grid-template-columns: minmax(0,1fr) auto; margin-top: 24px; color: var(--dsv3-ink); background: #fff; border-radius: 18px; box-shadow: var(--dsv3-shadow-lg); }
.dsv3-hotelcontrols > .dsv3-hotelfilter { display: contents; }
.dsv3-hotelsearch { position: relative; z-index: 4; display: grid; min-height: 78px; grid-template-columns: minmax(230px,1.3fr) minmax(220px,1fr) minmax(190px,.85fr) auto; align-items: stretch; gap: 8px; padding: 10px 0 10px 10px; border-radius: 18px 0 0 0; color: var(--dsv3-ink); background: #fff; box-shadow: none; }
.dsv3-hotelsearch__where { position: relative; display: grid; min-width: 0; min-height: 58px; grid-template-columns: 22px minmax(0,1fr); align-items: center; gap: 9px; padding: 8px 12px; border-radius: 12px; background: var(--dsv3-gray-50); }
.dsv3-hotelsearch__where > label { position: absolute; top: 10px; left: 43px; color: var(--dsv3-muted); font-size: .63rem; }
.dsv3-hotelsearch__where svg { margin-top: 10px; color: var(--dsv3-accent-strong); }
.dsv3-hotelsearch__where input, .dsv3-hotelsearch__where select { min-width: 0; width: 100%; height: 38px; margin-top: 12px; padding: 0; border: 0; outline: 0; background: transparent; color: var(--dsv3-ink); font-size: .79rem; font-weight: 550; }
.dsv3-hotelsearch__dates, .dsv3-hotelsearch__guests { min-width: 0; min-height: 58px; border-radius: 12px; background: var(--dsv3-gray-50); box-shadow: none; }
.dsv3-hotelsearch > .dsv3-btn { align-self: stretch; min-height: 58px; padding-inline: 24px; border-radius: 14px; white-space: nowrap; }
.dsv3-hotelsearch__error { grid-column: 1 / -1; margin: 0 4px; padding: 10px 13px; border-radius: 11px; color: rgb(139 43 37); background: rgb(255 237 235); font-size: .7rem; line-height: 1.4; }
.dsv3-hotelsearch__error[hidden] { display: none; }
.dsv3-hotelsearch .range[aria-invalid="true"] { box-shadow: inset 0 0 0 2px rgb(181 55 46 / .58); }
.dsv3-hotelsearch__hint { margin: 13px 4px 0!important; color: rgb(255 255 255 / .62)!important; font-size: .74rem!important; }
.dsv3-hotelsearch .range, .dsv3-hotelsearch .range__controls { height: 100%; margin: 0; border: 0; }
.dsv3-hotelsearch .range--summary > .range__summary-label, .dsv3-hotelsearch .traveller__label { top: 10px; left: 43px; padding: 0; background: transparent; font-size: .63rem; }
.dsv3-hotelsearch .range--summary > .range__summary-icon { left: 13px; color: var(--dsv3-accent-strong); }
.dsv3-hotelsearch .range--summary .range__controls { min-height: 58px; padding: 15px 10px 0 43px; }
.dsv3-hotelsearch__dates[data-empty="true"] .range__separator,
.dsv3-hotelsearch__dates[data-empty="true"] .range__part:last-child { display: none; }
.dsv3-hotelsearch .traveller { height: 100%; }
.dsv3-hotelsearch .traveller__trigger { height: 100%; min-height: 58px; padding: 14px 12px 0; }
.dsv3-hotelsearch .traveller__trigger > svg { color: var(--dsv3-accent-strong); }
.dsv3-hotelcontrols > .dsv3-hotelfilter > summary { grid-column: 2; grid-row: 1; width: 78px; min-width: 78px; min-height: 78px; grid-template-columns: 1fr; padding: 10px; border-radius: 0 18px 18px 0; color: rgb(var(--dsv3-primary-800)); background: rgb(var(--dsv3-primary-100)); cursor: pointer; }
.dsv3-hotelcontrols > .dsv3-hotelfilter > summary > span { justify-content: center; white-space: nowrap; }
.dsv3-hotelfilter__count { display: grid; min-width: 20px; height: 20px; place-items: center; border-radius: 50%; color: rgb(var(--dsv3-primary-900)); background: #fff; font-size: .62rem; }
.dsv3-hotelcontrols > .dsv3-hotelfilter[open] > summary { color: #fff; background: rgb(var(--dsv3-primary-800)); }
.dsv3-hotelcontrols > .dsv3-hotelfilter > .dsv3-filter__reveal { grid-column: 1 / -1; grid-row: 2; border-radius: 0 0 18px 18px; background: #fff; }
.dsv3-livesuggest--hotel { position: absolute; z-index: 18; top: calc(100% + 9px); left: 0; width: min(650px,calc(100vw - 32px)); max-height: min(570px,72vh); overflow: auto; padding: 20px; border: 1px solid rgb(var(--dsv3-primary-100)); border-radius: 19px; color: var(--dsv3-ink); background: rgb(255 255 255 / .985); box-shadow: 0 28px 70px -24px rgb(5 46 43 / .46); backdrop-filter: blur(18px); }
.dsv3-hotelsuggest__default { display: grid; gap: 19px; }
.dsv3-hotelsuggest__default > section + section { padding-top: 17px; box-shadow: 0 -1px 0 var(--dsv3-line); }
.dsv3-hotelsuggest__default h3 { margin: 0 0 11px; color: var(--dsv3-muted); font-size: .67rem; font-weight: 780; letter-spacing: .09em; text-transform: uppercase; }
.dsv3-hotelsuggest__popular > div { display: flex; flex-wrap: wrap; gap: 7px; }
.dsv3-hotelsuggest__popular a { display: inline-flex; min-height: 38px; align-items: center; padding: 0 13px; border-radius: var(--dsv3-pill); color: var(--dsv3-accent-strong); background: var(--dsv3-soft); font-size: .7rem; font-weight: 720; }
.dsv3-hotelsuggest__popular a:hover,.dsv3-hotelsuggest__popular a:focus-visible { outline: 2px solid rgb(var(--dsv3-primary-300)); outline-offset: 1px; }
.dsv3-hotelsuggest__destinations > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.dsv3-hotelsuggest__destinations a { display: grid; min-width: 0; gap: 3px; padding: 10px 11px; border-radius: 12px; background: var(--dsv3-gray-50); }
.dsv3-hotelsuggest__destinations a:hover,.dsv3-hotelsuggest__destinations a:focus-visible,.dsv3-hotelsuggest__hotels a:hover,.dsv3-hotelsuggest__hotels a:focus-visible { outline: 0; background: var(--dsv3-soft); box-shadow: inset 0 0 0 1px rgb(var(--dsv3-primary-100)); }
.dsv3-hotelsuggest__destinations a > span { display: flex; min-width: 0; align-items: center; gap: 7px; color: var(--dsv3-accent-strong); }
.dsv3-hotelsuggest__destinations strong { overflow: hidden; color: var(--dsv3-ink); font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-hotelsuggest__destinations small { overflow: hidden; color: var(--dsv3-muted); font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-hotelsuggest__hotels > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.dsv3-hotelsuggest__hotels a { display: grid; min-width: 0; min-height: 64px; grid-template-columns: 52px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 6px; border-radius: 13px; background: var(--dsv3-gray-50); }
.dsv3-hotelsuggest__hotels img,.dsv3-hotelsuggest__placeholder { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 10px; color: var(--dsv3-accent-strong); background: rgb(var(--dsv3-primary-100)); object-fit: cover; }
.dsv3-hotelsuggest__hotels a > span:nth-child(2) { min-width: 0; }
.dsv3-hotelsuggest__hotels strong,.dsv3-hotelsuggest__hotels small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-hotelsuggest__hotels strong { font-size: .71rem; }.dsv3-hotelsuggest__hotels small { margin-top: 4px; color: var(--dsv3-muted); font-size: .61rem; }
.dsv3-hotelsuggest__hotels a > svg { color: var(--dsv3-accent-strong); }
.dsv3-hotelfilter { margin-top: 0; border-radius: 0 0 18px 18px; color: var(--dsv3-ink); background: #fff; }
.dsv3-hotelfilter__form { min-height: 0; overflow: hidden; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 22px; padding: 22px; }
.dsv3-hotelfilter fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.dsv3-hotelfilter legend { display: block; margin-bottom: 11px; color: var(--dsv3-muted); font-size: .68rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.dsv3-hotelfilter__checks { display: grid; align-content: start; gap: 5px; }
.dsv3-hotelfilter__amenities .dsv3-hotelfilter__checks { grid-template-columns: repeat(3,minmax(0,1fr)); }
.dsv3-hotelfilter__checks label { display: grid; min-height: 39px; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 7px 9px; border-radius: 10px; background: var(--dsv3-gray-50); font-size: .74rem; }
.dsv3-hotelfilter__checks label[data-disabled="true"] { opacity: .42; }
.dsv3-hotelfilter__checks input { accent-color: var(--dsv3-accent); }
.dsv3-hotelfilter__checks small { color: var(--dsv3-muted); }
.dsv3-hotelfilter .dsv3-filter__actions { grid-column: auto; padding: 0; white-space: nowrap; }
.dsv3-hotelresults { background: var(--dsv3-canvas); }
.dsv3-hotelgrid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.dsv3-hotelcard { min-width: 0; overflow: hidden; border-radius: 21px; background: #fff; box-shadow: var(--dsv3-shadow-md); }
.dsv3-hotelcard__media { position: relative; display: block; height: 235px; overflow: hidden; background: rgb(var(--dsv3-primary-900)); }
.dsv3-hotelcard__media .dsv3-destinationmedia, .dsv3-hotelcard__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.8,.2,1); }
.dsv3-hotelcard:hover .dsv3-hotelcard__media img { transform: scale(1.035); }
.dsv3-hotelcard__wash { position: absolute; inset: 0; background: linear-gradient(0deg,rgb(4 31 29 / .48),transparent 58%); }
.dsv3-hotelcard__class { position: absolute; z-index: 2; top: 14px; left: 14px; display: inline-flex; min-height: 30px; align-items: center; padding: 0 10px; border-radius: var(--dsv3-pill); color: #fff; background: rgb(5 46 43 / .68); font-size: .65rem; font-weight: 700; backdrop-filter: blur(10px); }
.dsv3-hotelcard__copy { position: relative; min-height: 132px; padding: 17px; }
.dsv3-hotelcard__place { display: flex; min-width: 0; align-items: center; gap: 6px; color: var(--dsv3-muted); font-size: .68rem; }
.dsv3-hotelcard__title { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: start; gap: 11px; margin-top: 11px; }
.dsv3-hotelcard__title h3 { min-width: 0; margin: 0; font-size: 1.16rem; font-weight: 650; line-height: 1.18; letter-spacing: -.025em; }
.dsv3-hotelcard__arrow { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; color: var(--dsv3-accent-strong); background: var(--dsv3-soft); }
.dsv3-hotelcard__chain { width: auto; max-width: 92px; height: 22px; margin-top: 13px; object-fit: contain; object-position: left center; }
.dsv3-hotelcard__copy > p { margin: 14px 0 0; color: var(--dsv3-muted); font-size: .72rem; line-height: 1.45; }
.dsv3-hotelcard__offer { display: grid; gap: 3px; margin-top: 14px; padding-top: 13px; border-top: 1px solid rgb(var(--dsv3-gray-200)); }
.dsv3-hotelcard__offer strong { color: rgb(var(--dsv3-primary-900)); font-size: 1rem; line-height: 1.15; }
.dsv3-hotelcard__offer span, .dsv3-hotelcard__offer small { color: var(--dsv3-muted); font-size: .69rem; line-height: 1.4; }
.dsv3-hotelcard__offer[data-state="available"] { border-color: rgb(var(--dsv3-primary-200)); }
.dsv3-hotelcard__offer[data-state="unavailable"] { padding: 10px 11px; border: 0; border-radius: 11px; background: var(--dsv3-gray-50); }

.dsv3-staysearch__form { margin-top: 26px; }
.dsv3-staysearch__nationality { display: flex; grid-column: 1 / -1; align-items: center; justify-content: flex-end; gap: 9px; padding: 10px 8px 0; color: var(--dsv3-muted); font-size: .7rem; }
.dsv3-staysearch__nationality select { min-height: 36px; padding: 0 32px 0 11px; border: 0; border-radius: var(--dsv3-pill); color: var(--dsv3-ink); background: var(--dsv3-gray-50); font-weight: 650; }
.dsv3-staysearch__errors { grid-column: 1 / -1; margin-top: 5px; padding: 14px 16px; border-radius: 14px; color: #7a271a; background: #fff2ef; }
.dsv3-staysearch__errors strong { display: block; font-size: .78rem; }
.dsv3-staysearch__errors ul { display: grid; gap: 4px; margin: 7px 0 0; padding-left: 18px; font-size: .72rem; line-height: 1.45; }
.dsv3-staysearch__prompt { background: #fff; }
.dsv3-staysearch__grid { display: grid; gap: 16px; }
.dsv3-staysearchcard { display: grid; min-height: 305px; grid-template-columns: minmax(280px,.72fr) minmax(0,1.28fr); overflow: hidden; border-radius: 23px; background: #fff; box-shadow: var(--dsv3-shadow-md); }
.dsv3-staysearchcard__media { position: relative; display: block; min-height: 305px; overflow: hidden; background: rgb(var(--dsv3-primary-900)); }
.dsv3-staysearchcard__media .dsv3-destinationmedia, .dsv3-staysearchcard__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dsv3-staysearchcard__copy { display: flex; min-width: 0; justify-content: center; flex-direction: column; padding: 24px; }
.dsv3-staysearchcard__copy .dsv3-hotelcard__chain { margin-top: 14px; }
.dsv3-staysearchcard__segment { align-self: flex-start; margin-top: 12px; padding: 6px 9px; border-radius: var(--dsv3-pill); color: var(--dsv3-accent-strong); background: var(--dsv3-soft); font-size: .63rem; font-weight: 700; }
.dsv3-staysearchcard__quote { min-height: 136px; margin-top: 18px; overflow: hidden; border-radius: 16px; background: var(--dsv3-gray-50); }
.dsv3-staysearchcard__quote .quote { display: flex; justify-content: center; flex-direction: column; background: var(--dsv3-gray-50); }
.dsv3-staysearchcard__quote .quote--slot { position: relative; width: 100%; min-height: 136px; overflow: hidden; }
.dsv3-staysearchcard__quote .quote__frame { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: transparent; }
.dsv3-staysearchcard__quote .quote__wait { margin: 0; padding: 18px; color: var(--dsv3-muted); font-size: .78rem; }

.dsv3-hotelbrandhero { position: relative; min-height: 600px; overflow: hidden; color: #fff; background: rgb(var(--dsv3-primary-950)); }
.dsv3-hotelbrandhero > .dsv3-destinationmedia { position: absolute; inset: 0; }
.dsv3-hotelbrandhero > .dsv3-destinationmedia img { width: 100%; height: 100%; object-fit: cover; }
.dsv3-hotelbrandhero__wash { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg,rgb(4 33 31 / .98),rgb(4 33 31 / .74) 58%,rgb(4 33 31 / .3)),linear-gradient(0deg,rgb(4 33 31 / .6),transparent 54%); }
.dsv3-hotelbrandhero__inner { position: relative; z-index: 2; display: grid; min-height: 600px; grid-template-columns: minmax(0,1fr) 330px; align-items: end; gap: 70px; padding-block: 74px; }
.dsv3-hotelbrandhero .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }
.dsv3-hotelbrandhero__inner > div:first-child > img { width: auto; max-width: 180px; height: 54px; margin-top: 31px; object-fit: contain; object-position: left center; filter: brightness(0) invert(1); }
.dsv3-hotelbrandhero h1 { max-width: 11ch; margin: 16px 0 0; font-size: clamp(4.1rem,8vw,7.5rem); font-weight: 500; line-height: .86; letter-spacing: -.07em; }
.dsv3-hotelbrandhero__inner > div:first-child > p { margin: 20px 0 26px; color: rgb(255 255 255 / .7); }
.dsv3-hotelbrandhero__mark { display: grid; align-content: end; min-height: 250px; padding: 27px; border-radius: 24px; background: rgb(255 255 255 / .11); backdrop-filter: blur(14px); }
.dsv3-hotelbrandhero__mark span { color: rgb(var(--dsv3-primary-200)); font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; }
.dsv3-hotelbrandhero__mark strong { margin-top: 10px; font-size: 2rem; line-height: .96; letter-spacing: -.045em; }
.dsv3-hotelbrandhero__mark small { margin-top: 45px; color: rgb(255 255 255 / .64); font-size: .7rem; }
.dsv3-hotelbrandabout { color: #fff; background: rgb(var(--dsv3-primary-900)); }
.dsv3-hotelbrandabout .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }
.dsv3-hotelbrandabout__grid { display: grid; grid-template-columns: minmax(240px,.65fr) minmax(0,1.35fr); gap: clamp(45px,9vw,130px); }
.dsv3-hotelbrandabout h2 { max-width: 10ch; margin: 10px 0 0; font-size: clamp(3.2rem,6vw,6rem); font-weight: 500; line-height: .88; letter-spacing: -.06em; }
.dsv3-hotelbrandabout__grid > div:last-child p { max-width: 68ch; margin: 0 0 18px; color: rgb(255 255 255 / .7); font-size: .95rem; line-height: 1.75; }
.dsv3-hotelbrandabout__grid > div:last-child a { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; color: rgb(var(--dsv3-primary-200)); font-size: .78rem; font-weight: 750; }

.dsv3-stayhandover { min-height: 72vh; padding-block: 38px 88px; background: radial-gradient(circle at 80% 8%,rgb(var(--dsv3-primary-300) / .12),transparent 24%),var(--dsv3-gray-50); }
.dsv3-stayhandover > .dsv3-shell > .dsv3-iconicdetail__back { color: var(--dsv3-accent-strong); }
.dsv3-stayhandover__card { display: grid; min-height: 590px; grid-template-columns: minmax(0,1fr) minmax(340px,.82fr); gap: 48px; margin-top: 28px; padding: clamp(31px,5vw,66px); border-radius: 31px; color: #fff; background: radial-gradient(circle at 13% 12%,rgb(var(--dsv3-primary-300) / .2),transparent 25%),linear-gradient(145deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-800))); box-shadow: var(--dsv3-shadow-lg); }
.dsv3-stayhandover__copy { display: flex; align-items: start; justify-content: center; flex-direction: column; }
.dsv3-stayhandover__copy .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }
.dsv3-stayhandover h1 { max-width: 10ch; margin: 14px 0 0; font-size: clamp(3.6rem,6.5vw,6.6rem); font-weight: 500; line-height: .87; letter-spacing: -.068em; }
.dsv3-stayhandover__copy > p { max-width: 52ch; margin: 23px 0 0; color: rgb(255 255 255 / .7); line-height: 1.65; }
.dsv3-stayhandover__copy > small { max-width: 58ch; margin-top: 19px; color: rgb(255 255 255 / .5); font-size: .65rem; line-height: 1.55; }
.dsv3-stayhandover__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.dsv3-stayhandover__facts { display: grid; align-content: center; gap: 7px; }
.dsv3-stayhandover__facts article { display: grid; min-height: 82px; grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: 12px; padding: 14px 16px; border-radius: 17px; background: rgb(255 255 255 / .1); }
.dsv3-stayhandover__facts article > svg { color: rgb(var(--dsv3-primary-200)); }
.dsv3-stayhandover__facts span, .dsv3-stayhandover__facts strong { display: block; }
.dsv3-stayhandover__facts span { color: rgb(255 255 255 / .5); font-size: .6rem; letter-spacing: .07em; text-transform: uppercase; }
.dsv3-stayhandover__facts strong { margin-top: 5px; font-size: .78rem; line-height: 1.35; }

.dsv3-systemnotice { min-height: 70vh; padding: 64px 0 96px; background: radial-gradient(circle at 78% 12%,rgb(var(--dsv3-primary-300) / .12),transparent 23%),var(--dsv3-gray-50); }
.dsv3-systemnotice__card { display: flex; min-height: 520px; align-items: center; justify-content: center; flex-direction: column; padding: clamp(34px,7vw,82px); border-radius: 30px; text-align: center; background: #fff; box-shadow: var(--dsv3-shadow-lg); }
.dsv3-systemnotice__icon { display: grid; width: 76px; height: 76px; margin-bottom: 24px; place-items: center; border-radius: 50%; color: var(--dsv3-accent-strong); background: var(--dsv3-soft); }
.dsv3-systemnotice__card[data-tone="attention"] .dsv3-systemnotice__icon { color: #9c3327; background: #fff0ed; }
.dsv3-systemnotice h1 { max-width: 13ch; margin: 12px 0 0; font-size: clamp(3.2rem,6vw,6.4rem); font-weight: 500; line-height: .9; letter-spacing: -.065em; }
.dsv3-systemnotice p { max-width: 54ch; margin: 24px 0 28px; color: var(--dsv3-muted); font-size: .95rem; line-height: 1.65; }

.dsv3-notfound { background: var(--dsv3-canvas); }
.dsv3-notfound__hero { padding: 66px 0 78px; color: #fff; background: radial-gradient(circle at 82% 18%,rgb(var(--dsv3-primary-400) / .26),transparent 26%),linear-gradient(145deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-800))); }
.dsv3-notfound__grid { display: grid; grid-template-columns: minmax(0,1fr) 330px; align-items: end; gap: clamp(45px,9vw,130px); }
.dsv3-notfound__code { display: block; color: rgb(var(--dsv3-primary-200) / .58); font-size: .72rem; font-weight: 800; letter-spacing: .22em; }
.dsv3-notfound .dsv3-kicker { margin-top: 9px; color: rgb(var(--dsv3-primary-200)); }
.dsv3-notfound h1 { max-width: 11ch; margin: 13px 0 0; font-size: clamp(4rem,8vw,7.6rem); font-weight: 500; line-height: .85; letter-spacing: -.07em; }
.dsv3-notfound__hero p { max-width: 54ch; margin: 24px 0 0; color: rgb(255 255 255 / .68); line-height: 1.65; }
.dsv3-notfound__search { display: grid; max-width: 650px; min-height: 62px; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 10px; margin-top: 28px; padding: 7px 7px 7px 18px; border-radius: 20px; color: var(--dsv3-ink); background: #fff; }
.dsv3-notfound__search > svg { color: var(--dsv3-muted); }
.dsv3-notfound__search input { min-width: 0; height: 46px; border: 0; outline: 0; background: transparent; font-size: .86rem; }
.dsv3-notfound__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 17px; }
.dsv3-notfound__actions .dsv3-btn--ghost { color: #fff; background: rgb(255 255 255 / .09); }
.dsv3-notfound__grid aside { display: grid; min-height: 260px; align-content: end; padding: 28px; border-radius: 25px; background: rgb(255 255 255 / .1); backdrop-filter: blur(12px); }
.dsv3-notfound__grid aside span { color: rgb(var(--dsv3-primary-200)); font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; }
.dsv3-notfound__grid aside strong { max-width: 10ch; margin-top: 12px; font-size: 2rem; line-height: .96; letter-spacing: -.045em; }
.dsv3-notfound__cities { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.dsv3-notfound__city { min-width: 0; overflow: hidden; border-radius: 19px; background: rgb(var(--dsv3-primary-900)); }
.dsv3-notfound__city > a { position: relative; display: block; height: 270px; overflow: hidden; color: #fff; }
.dsv3-notfound__city .dsv3-destinationmedia, .dsv3-notfound__city img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dsv3-notfound__city > a > span { position: absolute; inset: 0; background: linear-gradient(0deg,rgb(3 31 29 / .84),transparent 65%); }
.dsv3-notfound__city > a > div { position: absolute; z-index: 2; right: 17px; bottom: 17px; left: 17px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 5px 8px; }
.dsv3-notfound__city small { grid-column: 1 / -1; color: rgb(255 255 255 / .62); font-size: .62rem; }
.dsv3-notfound__city strong { font-size: 1.22rem; line-height: 1.05; }

.dsv3-hotelgallery { padding-top: 24px; background: #fff; }
.dsv3-hotelgallery > .dsv3-shell { position: relative; display: grid; height: 500px; grid-template-columns: 1.45fr .72fr .72fr; grid-template-rows: 1fr 1fr; gap: 7px; overflow: hidden; border-radius: 24px; }
.dsv3-hotelgallery__cell { position: relative; overflow: hidden; background: rgb(var(--dsv3-primary-900)); }
.dsv3-hotelgallery__cell--1 { grid-row: 1 / 3; }
.dsv3-hotelgallery__cell .dsv3-destinationmedia, .dsv3-hotelgallery__cell img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dsv3-hotelgallery__count { position: absolute; z-index: 2; right: 16px; bottom: 16px; padding: 9px 12px; border-radius: var(--dsv3-pill); color: #fff; background: rgb(5 46 43 / .72); font-size: .7rem; font-weight: 700; backdrop-filter: blur(10px); }
.dsv3-hoteltitle { padding: 28px 0 34px; background: #fff; }
.dsv3-hotelcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; padding: 0; list-style: none; color: var(--dsv3-muted); font-size: .7rem; }
.dsv3-hotelcrumbs li { display: inline-flex; align-items: center; gap: 5px; }
.dsv3-hotelcrumbs li:last-child { max-width: 46ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-hoteltitle__grid { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: start; gap: 30px; margin-top: 26px; }
.dsv3-hoteltitle__name { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.dsv3-hoteltitle__name h1 { max-width: 18ch; margin: 8px 0 0; font-size: clamp(3rem,5.2vw,4.8rem); font-weight: 500; line-height: .96; letter-spacing: -.055em; }
.dsv3-hoteltitle__name img { width: auto; max-width: 150px; height: 42px; object-fit: contain; }
.dsv3-hoteltitle__grid > div > p { margin: 17px 0 0; color: var(--dsv3-muted); }
.dsv3-hoteltitle__actions, .dsv3-hoteltitle__actions .pageactions { display: flex; align-items: center; gap: 8px; }
.dsv3-hoteltitle__actions .pageactions__form { display: contents; }
.dsv3-hoteltitle__actions .pageaction { display: inline-flex; min-height: 43px; align-items: center; gap: 7px; padding: 0 14px; border: 0; border-radius: var(--dsv3-pill); color: var(--dsv3-ink); background: var(--dsv3-gray-50); font-size: .72rem; font-weight: 650; }
.dsv3-hoteltitle__actions .sharepanel { width: min(390px,calc(100vw - 24px)); padding: 17px; border: 0; border-radius: 18px; background: #fff; box-shadow: var(--dsv3-shadow-lg); }
.dsv3-hoteltitle__actions .sharepanel__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.dsv3-hoteltitle__actions .sharepanel__title { margin: 0; font-weight: 700; }
.dsv3-hoteltitle__actions .sharepanel__close { display: grid; width: 38px; height: 38px; padding: 0; place-items: center; border: 0; border-radius: 50%; background: var(--dsv3-gray-50); }
.dsv3-hoteltitle__actions .sharepanel__targets { display: grid; gap: 6px; margin-top: 12px; }
.dsv3-hoteltitle__actions .sharepanel__target { display: flex; min-height: 46px; align-items: center; gap: 10px; padding: 0 12px; border: 0; border-radius: 11px; background: var(--dsv3-gray-50); }
.dsv3-detailactions, .dsv3-detailactions .pageactions { display: flex; align-items: center; gap: 8px; }
.dsv3-detailactions .pageactions__form { display: contents; }
.dsv3-detailactions .pageaction { display: inline-flex; min-height: 43px; align-items: center; gap: 7px; padding: 0 14px; border: 0; border-radius: var(--dsv3-pill); color: var(--dsv3-ink); background: var(--dsv3-gray-50); font-size: .72rem; font-weight: 650; }
.dsv3-detailactions .sharepanel { width: min(390px,calc(100vw - 24px)); padding: 17px; border: 0; border-radius: 18px; background: #fff; box-shadow: var(--dsv3-shadow-lg); }
.dsv3-detailactions .sharepanel__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.dsv3-detailactions .sharepanel__title { margin: 0; font-weight: 700; }
.dsv3-detailactions .sharepanel__close { display: grid; width: 38px; height: 38px; padding: 0; place-items: center; border: 0; border-radius: 50%; background: var(--dsv3-gray-50); }
.dsv3-detailactions .sharepanel__targets { display: grid; gap: 6px; margin-top: 12px; }
.dsv3-detailactions .sharepanel__target { display: flex; min-height: 46px; align-items: center; gap: 10px; padding: 0 12px; border: 0; border-radius: 11px; background: var(--dsv3-gray-50); }
.dsv3-activityhero__actions { margin-top: 18px; }
.dsv3-hoteltrip { display: inline-flex; align-items: center; gap: 9px; margin-top: 16px; padding: 9px 12px; border-radius: 13px; background: var(--dsv3-soft); }
.dsv3-hoteltrip span, .dsv3-hoteltrip strong, .dsv3-hoteltrip small { display: block; }
.dsv3-hoteltrip strong { font-size: .92rem; }
.dsv3-hoteltrip small { margin-top: 2px; color: var(--dsv3-muted); font-size: .62rem; }
.dsv3-hotelstay { margin-top: 32px; }
.dsv3-hotelstay .filters { margin: 0; }
.dsv3-hotelstay .hotel-searchbar { display: grid; min-height: 84px; grid-template-columns: .8fr 1.1fr .85fr auto; align-items: stretch; gap: 0; padding: 12px; border-radius: 22px; background: var(--dsv3-gray-50); }
.dsv3-hotelstay .hotel-searchbar__cell { min-width: 0; background: #fff; box-shadow: -1px 0 0 var(--dsv3-line); }
.dsv3-hotelstay .hotel-searchbar__cell:first-child { box-shadow: none; }
.dsv3-hotelstay .hotel-searchbar__submit, .dsv3-hotelstay .btn { align-self: center; min-height: 56px; padding-inline: 24px; border: 0; border-radius: var(--dsv3-pill); color: #fff; background: var(--dsv3-button); font-weight: 700; }
.dsv3-hotelstay .hotel-destination { position: relative; height: 100%; }
.dsv3-hotelstay .hotel-destination > .field__label { position: absolute; z-index: 1; top: 8px; left: 48px; color: var(--dsv3-muted); font-size: .64rem; }
.dsv3-hotelstay .hotel-destination .field--icon { position: relative; height: 100%; }
.dsv3-hotelstay .hotel-destination .field__icon { position: absolute; top: 50%; left: 17px; display: flex; color: var(--dsv3-muted); transform: translateY(-50%); }
.dsv3-hotelstay .hotel-destination .input { width: 100%; height: 100%; min-height: 60px; padding: 15px 12px 0 48px; border: 0; outline: 0; background: transparent; font-weight: 650; }
.dsv3-hotelstay .stayform__errors { margin: 0 0 10px; padding: 11px 14px 11px 32px; border-radius: 12px; color: rgb(181 55 46); background: rgb(255 238 235); font-size: .74rem; }
.dsv3-hotelstay .stayform__note { margin: 9px 2px 0; color: var(--dsv3-muted); font-size: .72rem; }
.dsv3-hoteldetail { padding-bottom: 90px; }
.dsv3-hotelbooking { position: sticky; top: 138px; padding: 24px; border-radius: 22px; background: #fff; box-shadow: var(--dsv3-shadow-lg); }
.dsv3-hotelbooking h2 { margin: 9px 0 0; font-size: 1.25rem; line-height: 1.15; }
.dsv3-hotelbooking dl { display: grid; gap: 0; margin: 20px 0; }
.dsv3-hotelbooking dl div { padding: 12px 0; box-shadow: 0 1px 0 var(--dsv3-line); }
.dsv3-hotelbooking dt { color: var(--dsv3-muted); font-size: .65rem; }
.dsv3-hotelbooking dd { margin: 4px 0 0; font-size: .78rem; font-weight: 700; }
.dsv3-hotelbooking > .dsv3-btn { width: 100%; }
.dsv3-hotelbooking__price { display: block; width: 100%; height: 124px; margin: 0 0 14px; border: 0; }
.dsv3-hotelsection header > p { max-width: 55ch; }
.dsv3-hotelrooms { overflow: hidden; border-radius: 20px; background: #fff; box-shadow: var(--dsv3-shadow-md); }
.dsv3-hotelrooms iframe { display: block; width: 100%; min-height: 720px; border: 0; }
.dsv3-hotelrooms__empty { display: grid; min-height: 280px; place-items: center; padding: 34px; border-radius: 20px; text-align: center; background: #fff; box-shadow: var(--dsv3-shadow-md); }
.dsv3-hotelrooms__empty svg { color: var(--dsv3-accent); }
.dsv3-hotelrooms__empty h3 { max-width: 18ch; margin: 8px 0 0; font-size: 1.5rem; }
.dsv3-hotelrooms__empty p { max-width: 46ch; margin: 3px 0 16px; color: var(--dsv3-muted); line-height: 1.55; }
.dsv3-facilities { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.dsv3-facilities span { display: flex; min-height: 52px; align-items: center; gap: 9px; padding: 12px 14px; border-radius: 13px; background: #fff; font-size: .74rem; box-shadow: var(--dsv3-shadow-xs); }
.dsv3-facilities svg { flex: 0 0 auto; color: var(--dsv3-accent); }
.dsv3-hotelmap { overflow: hidden; margin: 0; border-radius: 20px; background: #fff; box-shadow: var(--dsv3-shadow-md); }
.dsv3-hotelmap iframe, .dsv3-hotelmap > img { display: block; width: 100%; height: 440px; border: 0; object-fit: cover; }
.dsv3-hotelmap figcaption { padding: 9px 12px; color: var(--dsv3-muted); font-size: .58rem; }
.dsv3-hotelmap__address { display: flex; min-height: 140px; align-items: center; gap: 14px; padding: 24px; border-radius: 18px; background: #fff; box-shadow: var(--dsv3-shadow-md); }
.dsv3-hotelmap__address p { margin: 0; }
.dsv3-transfergrid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dsv3-transfergrid article { display: flex; align-items: center; gap: 13px; min-height: 92px; padding: 18px; border-radius: 15px; background: #fff; }
.dsv3-transfergrid svg { flex: 0 0 auto; color: var(--dsv3-accent); }
.dsv3-transfergrid p { margin: 0; font-size: .78rem; line-height: 1.48; }
.dsv3-climatestrip { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(78px,1fr); gap: 7px; overflow-x: auto; padding-bottom: 7px; scrollbar-width: thin; }
.dsv3-climatestrip article { display: grid; min-height: 112px; place-items: center; padding: 13px 8px; border-radius: 14px; background: #fff; box-shadow: var(--dsv3-shadow-xs); }
.dsv3-climatestrip span { color: var(--dsv3-muted); font-size: .65rem; }
.dsv3-climatestrip strong { font-size: 1.35rem; }
.dsv3-climatestrip small { color: var(--dsv3-muted); }
.dsv3-cityguide { display: grid; grid-template-columns: minmax(220px,.7fr) minmax(0,1.3fr); gap: 27px; }
.dsv3-cityguide > .dsv3-destinationmedia { min-height: 420px; overflow: hidden; border-radius: 20px; }
.dsv3-cityguide > .dsv3-destinationmedia img { width: 100%; height: 100%; object-fit: cover; }
.dsv3-cityguide > div { min-width: 0; }
.dsv3-cityguide .dsv3-prose { margin-top: 0; overflow-wrap: anywhere; }
.dsv3-cityguide--text { grid-template-columns: minmax(0,1fr); }
.dsv3-cityguide--text > div { width: 100%; }
.dsv3-cityguide--text .dsv3-prose { max-width: none; }
.dsv3-cityguide--text ul { grid-template-columns: repeat(2,minmax(0,1fr)); }
.dsv3-cityguide ul { display: grid; gap: 7px; margin: 22px 0 0; padding: 0; list-style: none; }
.dsv3-cityguide li { padding: 13px 15px; border-radius: 12px; background: #fff; }
.dsv3-cityguide li strong, .dsv3-cityguide li span { display: block; }
.dsv3-cityguide li span { margin-top: 5px; color: var(--dsv3-muted); font-size: .74rem; line-height: 1.5; }
.dsv3-hotelreviews { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.dsv3-hotelreviews__sources { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 13px; }
.dsv3-hotelreviewsource { display: inline-flex; min-height: 58px; align-items: center; gap: 10px; padding: 10px 13px; border-radius: 14px; background: #fff; box-shadow: var(--dsv3-shadow-xs); }
.dsv3-hotelreviewsource > svg { flex: 0 0 auto; }
.dsv3-hotelreviewsource span, .dsv3-hotelreviewsource strong, .dsv3-hotelreviewsource small { display: block; }
.dsv3-hotelreviewsource span { min-width: 145px; }
.dsv3-hotelreviewsource small { margin-top: 2px; color: var(--dsv3-muted); font-size: .61rem; }
.dsv3-hotelreviews article { overflow: hidden; border-radius: 16px; background: #fff; }
.dsv3-hotelreview__card { display: flex; min-height: 100%; flex-direction: column; padding: 19px; }
.dsv3-hotelreview__stars { display: flex; gap: 2px; color: rgb(177 124 27); }
.dsv3-hotelreviews h3 { margin: 12px 0 0; font-size: .8rem; }
.dsv3-hotelreviews p { margin: 14px 0; color: var(--dsv3-muted); font-size: .78rem; line-height: 1.55; }
.dsv3-hotelreviews footer { display: flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 8px; }
.dsv3-hotelreviews footer > svg { flex: 0 0 auto; }
.dsv3-hotelreviews footer span, .dsv3-hotelreviews footer strong, .dsv3-hotelreviews footer small { display: block; }
.dsv3-hotelreviews footer span { min-width: 0; margin-right: auto; }
.dsv3-hotelreviews footer strong { overflow: hidden; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-hotelreviews footer small { margin-top: 2px; color: var(--dsv3-muted); font-size: .59rem; }
.dsv3-hotelneighbours { background: #fff; }
.dsv3-hotelrail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(270px,1fr); gap: 12px; overflow-x: auto; padding-bottom: 10px; scroll-snap-type: x mandatory; }
.dsv3-hotelrail__card { position: relative; min-height: 270px; overflow: hidden; border-radius: 19px; color: #fff; background: rgb(var(--dsv3-primary-900)); scroll-snap-align: start; }
.dsv3-hotelrail__card > .dsv3-destinationmedia, .dsv3-hotelrail__card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dsv3-hotelrail__card > span:last-child { position: absolute; z-index: 2; right: 17px; bottom: 16px; left: 17px; }
.dsv3-hotelrail__card small { color: rgb(255 255 255 / .72); }
.dsv3-hotelrail__card strong { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 10px; margin-top: 6px; font-size: 1.12rem; line-height: 1.15; }

/* Existing live date-range and traveller islands, rethemed for Design V3. */
.dsv3-root .range { min-inline-size: 0; margin: 0; padding: 0; border: 0; }
.dsv3-root .range__controls { position: relative; display: flex; align-items: center; }
.dsv3-root .range__separator { flex: 0 0 auto; color: var(--dsv3-muted); }
.dsv3-hotelstay .range--summary .range__part { flex: 1 1 0; }
.dsv3-hotelstay .range--summary .range__display { font-weight: 700; }
.range .range__controls{overflow:visible;padding:.375rem;gap:.375rem;background:var(--bg);border-color:var(--line)}.range .range__part{position:relative;display:block;flex:1 1 0;min-width:0}.range .range__part>.field__label{display:block;margin:0 0 .125rem .625rem}.range__box{position:relative;display:block}.range .range__input,.range__display{box-sizing:border-box;width:100%;min-height:2.75rem;padding:.625rem 2.5rem .625rem .625rem;border:0;border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font:inherit;font-size:.875rem;font-weight:var(--weight-medium);text-align:left}.range .range__input{position:relative}.range__input::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer}.range__display{cursor:pointer}.range__display[hidden],.range__panel[hidden]{display:none}.range .range__icon{position:absolute;inset:0 .75rem 0 auto;height:100%;display:flex;align-items:center;color:var(--ink-soft);pointer-events:none}.range__display:focus-visible,.range__link:focus-visible,.range__done:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.range__panel{position:fixed;top:0;left:0;right:auto;bottom:auto;margin:0;padding:0;z-index:550;box-sizing:border-box;width:max-content;max-width:calc(100vw - 1rem);max-height:calc(100dvh - 2rem);overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-lg)}@media (max-width:40rem){.range__panel{top:auto;bottom:0;left:0;transform:none;width:100%;max-width:100%;max-height:85dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0}}.range__scrim{position:fixed;inset:0;width:100%;height:100%;margin:0;padding:0;z-index:540;background:color-mix(in srgb,var(--ink) 55%,transparent);border:0}.range__scrim[hidden]{display:none}.range__footer{display:flex;align-items:center;gap:1.25rem;padding:.25rem 1.25rem 1rem}.range__link{padding:.25rem 0;border:0;background:transparent;color:var(--accent);font:inherit;font-size:.9375rem;font-weight:var(--weight-medium);cursor:pointer}.range__link:hover{text-decoration:underline}.range__done{margin-left:auto;min-height:2.5rem;padding:.5rem 1.25rem;border:0;border-radius:var(--radius-md);background:var(--accent);color:var(--on-accent);font:inherit;font-size:.9375rem;font-weight:var(--weight-medium);cursor:pointer}.range__done:hover{filter:brightness(.95)}.range__calendar-body{padding:.75rem 1.25rem .25rem}calendar-range{display:block;--color-accent:var(--accent);--color-text-on-accent:var(--on-accent)}calendar-range::part(months){display:grid;grid-template-columns:minmax(0,1fr)}calendar-range::part(previous),calendar-range::part(next){display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--accent);cursor:pointer}calendar-range::part(previous):hover,calendar-range::part(next):hover{background:var(--accent-soft)}calendar-range::part(disabled){color:var(--ink-soft);opacity:.45;cursor:default}calendar-range::part(previous):focus-visible,calendar-range::part(next):focus-visible,calendar-month::part(day):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.range__navicon{display:inline-flex}.range__navicon--prev svg{transform:rotate(180deg)}calendar-month{width:100%}calendar-month::part(table){width:100%}calendar-month::part(heading){display:block;margin:-2.35rem auto .9rem;text-align:center;font-size:1rem;font-weight:var(--weight-bold)}calendar-month::part(weekday){color:var(--ink-soft);font-size:.6875rem;font-weight:var(--weight-bold)}calendar-month::part(day){min-width:2.75rem;height:2.75rem;border-radius:var(--radius-sm);color:var(--ink);font-size:.8125rem}calendar-month::part(day):hover{background:var(--accent-soft);color:var(--accent)}calendar-month::part(disallowed){opacity:.35;cursor:not-allowed}calendar-month::part(outside){color:var(--ink-soft);opacity:.5}calendar-month::part(today){font-weight:var(--weight-bold)}calendar-month::part(range-inner){border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent)}calendar-month::part(range-start),calendar-month::part(range-end){border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent)}.range--summary{position:relative}.range--summary>.range__summary-icon{position:absolute;left:1rem;top:50%;z-index:1;display:flex;transform:translateY(-50%);color:var(--ink-soft);pointer-events:none}.range--summary>.range__summary-label{position:absolute;left:.875rem;top:-.4375rem;z-index:1;padding:0 .375rem;background:var(--surface);color:var(--ink-soft);font-size:.6875rem;font-weight:var(--weight-medium);line-height:1}.range--summary .range__controls{min-height:3.375rem;padding:0 .75rem 0 3rem;align-items:center;flex-wrap:nowrap;border:0;background:transparent}.range--summary .range__part{display:block;flex:0 1 auto}.range--summary .range__part>.field__label,.range--summary .range__icon{display:none}.range--summary .range__input,.range--summary .range__display{min-height:2.75rem;padding:.5rem 0;background:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.range--summary .range__separator{display:block}.filters .range:not(.range--summary) .range__controls{flex-wrap:wrap}.filters .range:not(.range--summary) .range__part{flex:1 1 100%}.filters .range:not(.range--summary) .range__separator{display:none}@media (max-width:30rem){.range .range__controls{flex-wrap:wrap}.range .range__part{flex:1 1 100%}.range .range__separator{display:none}.range__panel{position:fixed;inset:auto 0 0;width:100%;max-width:none;max-height:calc(100dvh - 1rem);overflow:auto;border-radius:var(--radius-xl) var(--radius-xl) 0 0;transform:none}.range__calendar-body{padding-inline:max(.75rem,env(safe-area-inset-left))}.range__footer{padding-right:max(1.25rem,env(safe-area-inset-right));padding-bottom:max(1rem,env(safe-area-inset-bottom));padding-left:max(1.25rem,env(safe-area-inset-left))}}@media (prefers-reduced-motion:no-preference){.range__panel{animation:range-panel-in .14s ease-out}@keyframes range-panel-in{from{opacity:0;transform:translateY(.25rem)}to{opacity:1;transform:none}}@media (max-width:30rem){.range__panel{animation-name:range-sheet-in}@keyframes range-sheet-in{from{opacity:0;transform:translateY(.25rem)}to{opacity:1;transform:none}}}}
.traveller{position:relative;height:100%}
.traveller__trigger{anchor-name:--hotel-traveller;display:flex;align-items:center;gap:.75rem;width:100%;height:100%;min-height:3.375rem;padding:0 1rem;border:0;background:transparent;color:var(--dsv3-ink);text-align:left}
.traveller__icon{display:inline-flex;color:var(--dsv3-muted)}
.traveller__label{position:absolute;z-index:1;left:.875rem;top:-.4375rem;padding:0 .375rem;background:#fff;color:var(--dsv3-muted);font-size:.6875rem;line-height:1;font-weight:600}
.traveller__trigger strong{display:block;max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem}
.traveller__panel{position:absolute;position-anchor:--hotel-traveller;inset:auto;top:anchor(bottom);left:anchor(left);right:anchor(right);z-index:560;width:auto;max-height:calc(100dvh - 2rem);margin:.5rem 0 0;padding:1rem 1.25rem 1.25rem;border:0;border-radius:18px;background:#fff;color:var(--dsv3-ink);box-shadow:var(--dsv3-shadow-lg);overflow:auto}
.traveller__panel::backdrop{background:transparent}
.traveller__panel .counter{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:2.75rem}
.traveller__panel .counter .field__label{margin:0;padding:0;color:var(--dsv3-ink);font-size:.9375rem;font-weight:600}
.traveller__panel .counter__control{flex:0 0 auto}
.traveller__panel .counter--stepper .counter__control{display:grid;grid-template-columns:2rem 2.5rem 2rem;align-items:center;gap:.25rem}
.traveller__panel .counter--stepper .input{width:2.5rem;height:2rem;min-height:0;padding:0;border:0;background:transparent;text-align:center;font-size:.9375rem}
.traveller__panel .counter__step[hidden]{display:none}
.traveller__panel .counter__step:not([hidden]){display:grid;width:2rem;height:2rem;padding:0;place-items:center;border:0;border-radius:50%;color:var(--dsv3-accent);background:var(--dsv3-soft);font-size:1rem}
.traveller__rooms{padding:.25rem 0}.traveller__panel .party{margin-top:0;border:0;padding:0}.traveller__panel .party__layout{display:block}
.traveller__panel .party__adult,.traveller__panel .party__children{display:block;padding:.25rem 0}.traveller__panel .party__note{margin-top:.125rem;color:var(--dsv3-muted);font-size:.75rem}.traveller__panel .party__ages{display:grid;gap:7px;margin-top:.75rem}
.traveller__panel .party__ages .field{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}.traveller__panel .party__ages select{min-height:38px;padding:0 9px;border:0;border-radius:10px;background:var(--dsv3-gray-50)}
.traveller__add-room{display:block;margin:.25rem 0 .5rem auto;padding:.5rem 0;border:0;background:transparent;color:var(--dsv3-accent);font-weight:750}
.traveller__actions{display:flex;padding-top:.75rem}.traveller__actions .btn{flex:1 1 auto;min-height:44px;border:0;border-radius:var(--dsv3-pill);color:#fff;background:var(--dsv3-button);font-weight:700}

/* Experience atlas and detail — taxonomy becomes a visual discovery surface, not a text index. */
.dsv3-experienceindex__hero { padding: 78px 0 56px; color: #fff; background: radial-gradient(circle at 82% 20%,rgb(109 214 190 / .22),transparent 28%),linear-gradient(130deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-800))); }
.dsv3-experienceindex__hero h1 { max-width: 790px; margin: 11px 0 15px; font-size: clamp(3.6rem,7.2vw,7.8rem); line-height: .86; letter-spacing: -.07em; }
.dsv3-experienceindex__hero > .dsv3-shell > p { max-width: 650px; color: rgb(255 255 255 / .72); font-size: 1rem; line-height: 1.7; }
.dsv3-experiencefilters { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 36px; }
.dsv3-experiencefilter { position: relative; color: var(--dsv3-ink); }
.dsv3-experiencefilter summary { display: grid; min-height: 64px; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 10px; padding: 0 17px; border-radius: 16px; background: #fff; box-shadow: var(--dsv3-shadow-sm); list-style: none; cursor: pointer; }
.dsv3-experiencefilter summary::-webkit-details-marker { display: none; }
.dsv3-experiencefilter summary > span { font-weight: 780; }
.dsv3-experiencefilter summary > small { max-width: 150px; overflow: hidden; color: var(--dsv3-muted); text-overflow: ellipsis; white-space: nowrap; }
.dsv3-experiencefilter[open] summary svg { transform: rotate(180deg); }
.dsv3-experiencefilter > div { position: absolute; z-index: 20; top: calc(100% + 7px); right: 0; left: 0; max-height: 360px; overflow-y: auto; padding: 8px; border-radius: 16px; background: #fff; box-shadow: var(--dsv3-shadow-lg); animation: dsv3-reveal .22s ease both; }
.dsv3-experiencefilter > div a { display: grid; min-height: 43px; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 0 10px; border-radius: 11px; color: var(--dsv3-ink); font-size: .79rem; }
.dsv3-experiencefilter > div a:hover, .dsv3-experiencefilter > div a[aria-current="page"], .dsv3-experiencefilter > div a[aria-pressed="true"] { color: var(--dsv3-accent-strong); background: var(--dsv3-soft); }
.dsv3-experiencefilter > div a small { color: var(--dsv3-muted); }
.dsv3-experiencefilters__active { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 13px; }
.dsv3-experiencefilters__active a { display: inline-flex; min-height: 36px; align-items: center; gap: 7px; padding: 0 12px; border-radius: var(--dsv3-pill); color: #fff; background: rgb(255 255 255 / .11); font-size: .72rem; }
.dsv3-experienceindex__results { background: var(--dsv3-gray-50); }
[data-dsv3-experience-index] .dsv3-experienceindex__hero,
[data-dsv3-experience-index] .dsv3-experienceindex__results { transition: opacity .2s ease,filter .2s ease; }
[data-dsv3-experience-index][data-busy="true"] .dsv3-experienceindex__hero,
[data-dsv3-experience-index][data-busy="true"] .dsv3-experienceindex__results { opacity: .58; filter: saturate(.72); pointer-events: none; }
.dsv3-experiencegrid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.dsv3-experiencegrid .dsv3-destinationcard:nth-child(7n + 1), .dsv3-experiencegrid .dsv3-destinationcard:nth-child(7n + 6) { grid-column: span 2; }
.dsv3-experiencegrid .dsv3-destinationcard:nth-child(4n + 2) .dsv3-destinationmedia--default { background: radial-gradient(circle at 22% 24%,rgb(198 226 210 / .32),transparent 24%),linear-gradient(145deg,rgb(20 77 71),rgb(9 42 40)); }
.dsv3-experiencegrid .dsv3-destinationcard:nth-child(4n + 3) .dsv3-destinationmedia--default { background: radial-gradient(circle at 76% 72%,rgb(170 205 196 / .25),transparent 28%),linear-gradient(155deg,rgb(8 49 48),rgb(40 93 84)); }
.dsv3-experiencegrid .dsv3-destinationcard:nth-child(4n + 4) .dsv3-destinationmedia--default { background: radial-gradient(circle at 34% 78%,rgb(226 211 177 / .2),transparent 26%),linear-gradient(145deg,rgb(24 62 59),rgb(6 33 32)); }

.dsv3-experiencehero { position: relative; min-height: 690px; overflow: hidden; color: #fff; background: rgb(var(--dsv3-primary-950)); }
.dsv3-experiencehero > .dsv3-destinationmedia, .dsv3-experiencehero > .dsv3-destinationmedia img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dsv3-experiencehero__wash { position: absolute; inset: 0; background: linear-gradient(90deg,rgb(2 27 25 / .92) 0%,rgb(2 27 25 / .72) 46%,rgb(2 27 25 / .26) 75%),linear-gradient(0deg,rgb(2 27 25 / .68),transparent 54%); }
.dsv3-experiencehero .dsv3-destinationmedia--default { background: radial-gradient(circle at 82% 20%,rgb(123 225 201 / .24),transparent 21%),radial-gradient(circle at 72% 92%,rgb(221 205 164 / .14),transparent 24%),linear-gradient(125deg,rgb(2 31 30),rgb(15 94 83)); }
.dsv3-experiencehero__top { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 16px; }
.dsv3-experiencehero__top .dsv3-experiencecrumbs { min-width: 0; }
.dsv3-experiencehero__top .dsv3-detailactions { flex: 0 0 auto; }
.dsv3-experiencecrumbs a, .dsv3-experiencecrumbs span { color: rgb(255 255 255 / .7); }
.dsv3-experiencecrumbs li:last-child span { color: rgb(255 255 255 / .88); }
.dsv3-experiencehero__inner { position: relative; z-index: 2; display: grid; min-height: 690px; grid-template-columns: minmax(0,1fr) minmax(290px,.42fr); align-items: end; gap: 62px; padding-block: 94px 70px; }
.dsv3-experiencehero__inner > div:first-child { max-width: 820px; }
.dsv3-experiencehero h1 { max-width: 850px; margin: 17px 0 19px; font-size: clamp(4rem,7.4vw,8.6rem); line-height: .82; letter-spacing: -.075em; }
.dsv3-experiencehero__inner > div:first-child > p { max-width: 660px; color: rgb(255 255 255 / .78); font-size: 1.02rem; line-height: 1.65; }
.dsv3-experiencefacts { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 26px; }
.dsv3-experiencefacts > span { display: grid; min-height: 58px; grid-template-columns: auto auto; grid-template-rows: auto auto; align-items: center; column-gap: 8px; padding: 9px 13px; border-radius: 14px; background: rgb(255 255 255 / .1); backdrop-filter: blur(12px); }
.dsv3-experiencefacts svg { grid-row: 1 / 3; color: var(--dsv3-mint); }
.dsv3-experiencefacts small { color: rgb(255 255 255 / .58); font-size: .58rem; text-transform: uppercase; letter-spacing: .1em; }
.dsv3-experiencefacts strong { max-width: 190px; font-size: .71rem; line-height: 1.25; }
.dsv3-experiencehero__card { padding: 25px; border-radius: 22px; color: var(--dsv3-ink); background: rgb(255 255 255 / .94); box-shadow: var(--dsv3-shadow-lg); backdrop-filter: blur(16px); }
.dsv3-experiencehero__card > span { display: grid; width: 45px; height: 45px; place-items: center; border-radius: 50%; color: var(--dsv3-accent-strong); background: var(--dsv3-soft); }
.dsv3-experiencehero__card h2 { margin: 18px 0 9px; font-size: 1.65rem; line-height: 1; letter-spacing: -.035em; }
.dsv3-experiencehero__card p { margin: 0 0 18px; color: var(--dsv3-muted); font-size: .78rem; line-height: 1.55; }
.dsv3-experiencehero__card .dsv3-btn { width: 100%; }
.dsv3-experiencehero__whatsapp { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: 7px; width: 100%; margin-top: 7px; color: var(--dsv3-accent-strong); font-size: .76rem; font-weight: 750; }
.dsv3-experienceabout { background: #fff; }
.dsv3-experienceabout > .dsv3-shell { display: grid; grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr); gap: 70px; align-items: start; }
.dsv3-experienceabout h2 { max-width: 540px; margin-top: 9px; font-size: clamp(2.5rem,4.3vw,5rem); line-height: .94; letter-spacing: -.055em; }
.dsv3-experienceabout p { margin: 5px 0 0; color: var(--dsv3-muted); font-size: 1.02rem; line-height: 1.9; }
.dsv3-experiencephotos { background: var(--dsv3-gray-50); }
.dsv3-experienceposts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; }
.dsv3-experiencepost { overflow: hidden; border-radius: 20px; background: #fff; box-shadow: var(--dsv3-shadow-sm); }
.dsv3-experiencepost header { display: grid; min-height: 62px; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 10px 13px; }
.dsv3-experiencepost__avatar { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; color: #fff; background: rgb(var(--dsv3-primary-800)); font-size: .72rem; font-weight: 800; }
.dsv3-experiencepost header strong, .dsv3-experiencepost header small { display: block; }
.dsv3-experiencepost header strong { font-size: .74rem; }.dsv3-experiencepost header small { margin-top: 2px; color: var(--dsv3-muted); font-size: .61rem; }
.dsv3-experiencepost__media { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: rgb(var(--dsv3-primary-900)); }
.dsv3-experiencepost__media .dsv3-destinationmedia, .dsv3-experiencepost__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dsv3-experiencepost:nth-child(2) .dsv3-destinationmedia--default { background: radial-gradient(circle at 30% 30%,rgb(135 218 200 / .32),transparent 22%),linear-gradient(155deg,rgb(7 46 44),rgb(35 105 91)); }
.dsv3-experiencepost:nth-child(3) .dsv3-destinationmedia--default { background: radial-gradient(circle at 70% 24%,rgb(228 213 181 / .2),transparent 24%),linear-gradient(145deg,rgb(25 67 62),rgb(3 35 34)); }
.dsv3-experiencepost footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px; }
.dsv3-experiencepost footer strong { font-size: .78rem; }.dsv3-experiencepost footer span { color: var(--dsv3-muted); font-size: .64rem; }
.dsv3-experiencerailgroup { min-width: 0; }
.dsv3-experiencerailhead { display: flex; min-height: 44px; align-items: center; gap: 16px; margin-bottom: 14px; }
.dsv3-experiencerailhead h3 { margin: 0; font-size: 1.2rem; }
.dsv3-experiencerailcontrols { display: flex; align-items: center; gap: 7px; margin-left: auto; }
.dsv3-experiencerailcontrols button { display: grid; width: 44px; height: 44px; flex: none; place-items: center; padding: 0; border: 1px solid var(--dsv3-line); border-radius: 50%; color: rgb(var(--dsv3-primary-800)); background: #fff; box-shadow: var(--dsv3-shadow-sm); cursor: pointer; transition: color .2s ease,background .2s ease,border-color .2s ease,opacity .2s ease,transform .2s ease; }
.dsv3-experiencerailcontrols button:first-child svg { transform: rotate(180deg); }
.dsv3-experiencerailcontrols button:hover:not(:disabled) { border-color: rgb(var(--dsv3-primary-300)); color: rgb(var(--dsv3-primary-950)); background: var(--dsv3-soft); transform: translateY(-1px); }
.dsv3-experiencerailcontrols button:focus-visible { outline: 2px solid rgb(var(--dsv3-primary-400)); outline-offset: 3px; }
.dsv3-experiencerailcontrols button:disabled { opacity: .34; box-shadow: none; cursor: not-allowed; }
.dsv3-experiencerail { display: grid; width: 100%; min-width: 0; max-width: 100%; grid-auto-flow: column; grid-auto-columns: 360px; gap: 11px; overflow-x: auto; padding: 0 0 12px; scroll-behavior: smooth; scroll-snap-type: x mandatory; overscroll-behavior-inline: contain; touch-action: pan-x pinch-zoom; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: rgb(var(--dsv3-primary-300)) transparent; cursor: grab; }
.dsv3-experiencerail:active { cursor: grabbing; }
.dsv3-experiencerail::-webkit-scrollbar { height: 5px; }
.dsv3-experiencerail::-webkit-scrollbar-thumb { border-radius: 999px; background: rgb(var(--dsv3-primary-300)); }
.dsv3-experiencerail:focus-visible { outline: 2px solid rgb(var(--dsv3-primary-400)); outline-offset: 5px; }
.dsv3-experiencerail .dsv3-destinationcard { scroll-snap-align: start; }
.dsv3-experiencecity { display: grid; min-width: 0; gap: 42px; }.dsv3-experiencecity > div { min-width: 0; }
.dsv3-experiencegateway { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; }
.dsv3-experiencegateway a { display: grid; min-height: 170px; grid-template-columns: auto minmax(0,1fr) auto; align-content: space-between; gap: 10px; padding: 18px; border-radius: 17px; color: var(--dsv3-ink); background: var(--dsv3-gray-50); }
.dsv3-experiencegateway a > svg:first-child { color: var(--dsv3-accent-strong); }.dsv3-experiencegateway a > svg:last-child { align-self: end; }
.dsv3-experiencegateway a span { align-self: end; }.dsv3-experiencegateway a strong, .dsv3-experiencegateway a small { display: block; }
.dsv3-experiencegateway a small { margin-top: 5px; color: var(--dsv3-muted); font-size: .64rem; line-height: 1.4; }

/* Search page mirrors the header disclosure: one input, one answer surface, no modal. */
.dsv3-searchpage { min-height: 70vh; padding-block: 70px 90px; background: var(--dsv3-gray-50); }
.dsv3-searchpage__inner { max-width: 980px; }
.dsv3-searchpage__form { display: grid; min-height: 70px; grid-template-columns: 24px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 8px 8px 8px 20px; border-radius: 999px; background: #fff; box-shadow: var(--dsv3-shadow-md); }
.dsv3-searchpage__form > svg { color: var(--dsv3-muted); }.dsv3-searchpage__form label { height: 100%; }
.dsv3-searchpage__form input { width: 100%; height: 100%; padding: 0; border: 0; outline: 0; background: transparent; font-size: 1rem; }
.dsv3-searchpage__form .dsv3-btn { min-height: 54px; border-radius: 999px; }
.dsv3-searchdiscovery { display: grid; gap: 30px; margin-top: 26px; padding: 27px; border-radius: 24px; background: #fff; box-shadow: var(--dsv3-shadow-sm); }
.dsv3-searchdiscovery__group h2, .dsv3-searchdiscovery__products h2 { margin: 0 0 12px; color: var(--dsv3-muted); font-size: .68rem; letter-spacing: .09em; text-transform: uppercase; }
.dsv3-searchdiscovery__group > p { margin: 0; color: var(--dsv3-muted); font-size: .78rem; }
.dsv3-searchchips { display: flex; flex-wrap: wrap; gap: 7px; }
.dsv3-searchchips a { display: inline-flex; min-height: 39px; align-items: center; gap: 8px; padding: 0 13px; border-radius: var(--dsv3-pill); background: var(--dsv3-soft); font-size: .76rem; }
.dsv3-searchdiscovery__destinations { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.dsv3-searchdiscovery__destinations .dsv3-destinationcard { min-height: 190px; }
.dsv3-searchdiscovery__products { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.dsv3-searchdiscovery__products section > div { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.dsv3-searchdiscovery__products .dsv3-destinationcard { min-height: 210px; }
.dsv3-searchpage--results > .dsv3-shell > h1 { margin: 10px 0 25px; font-size: clamp(3rem,6vw,6rem); line-height: .9; letter-spacing: -.06em; }
.dsv3-searchresults { display: grid; gap: 60px; margin-top: 60px; }
.dsv3-searchresults--empty { display: block; }
.dsv3-searchresults--empty .dsv3-empty { width: 100%; max-width: none; margin: 0; }
.dsv3-searchresults__section > header { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 19px; }
.dsv3-searchresults__section h2 { margin-top: 7px; font-size: 2.4rem; line-height: .95; letter-spacing: -.045em; }
.dsv3-searchresults__section > header > a { display: inline-flex; flex: none; align-items: center; gap: 7px; color: var(--dsv3-accent-strong); font-size: .74rem; font-weight: 750; }
.dsv3-searchresults__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; }
.dsv3-searchresults__grid .dsv3-destinationcard { min-height: 240px; }

.dsv3-activityindex { background: var(--dsv3-gray-50); }
.dsv3-activityindex__hero { padding-block: 76px 72px; color: #fff; background: radial-gradient(circle at 84% 24%,rgb(var(--dsv3-primary-300) / .2),transparent 27%),linear-gradient(135deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-800))); }
.dsv3-activityindex__hero .dsv3-tourcrumbs { margin-bottom: 54px; }.dsv3-activityindex__hero .dsv3-tourcrumbs a, .dsv3-activityindex__hero .dsv3-tourcrumbs span { color: rgb(255 255 255 / .66); }
.dsv3-activityindex__hero .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }
.dsv3-activityindex__hero h1 { max-width: 12ch; margin: 14px 0 17px; font-size: clamp(4rem,8vw,8.3rem); font-weight: 560; line-height: .84; letter-spacing: -.07em; }
.dsv3-activityindex__hero p { max-width: 55ch; margin: 0; color: rgb(255 255 255 / .7); font-size: .98rem; line-height: 1.65; }
.dsv3-activitygrid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; }
.dsv3-activitycard { position: relative; min-height: 390px; overflow: hidden; border-radius: 21px; color: #fff; background: rgb(var(--dsv3-primary-900)); box-shadow: var(--dsv3-shadow-sm); }
.dsv3-activitycard:nth-child(7n + 1), .dsv3-activitycard:nth-child(7n + 5) { grid-column: span 2; }
.dsv3-activitycard .dsv3-destinationmedia, .dsv3-activitycard img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.22,.78,.2,1); }
.dsv3-activitycard:hover .dsv3-destinationmedia, .dsv3-activitycard:hover img { transform: scale(1.025); }
.dsv3-activitycard:nth-child(4n + 2) .dsv3-destinationmedia--default { background: radial-gradient(circle at 70% 22%,rgb(165 231 214 / .28),transparent 23%),linear-gradient(145deg,rgb(8 54 51),rgb(24 107 93)); }
.dsv3-activitycard:nth-child(4n + 3) .dsv3-destinationmedia--default { background: radial-gradient(circle at 22% 75%,rgb(225 211 174 / .18),transparent 27%),linear-gradient(140deg,rgb(3 37 36),rgb(19 78 70)); }
.dsv3-activitycard__wash { position: absolute; inset: 0; background: linear-gradient(0deg,rgb(3 31 29 / .92),transparent 68%); }
.dsv3-activitycard__body { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; padding: 24px; }
.dsv3-activitycard__body > small { display: block; margin-bottom: 8px; color: rgb(255 255 255 / .62); font-size: .63rem; letter-spacing: .08em; text-transform: uppercase; }
.dsv3-activitycard__body > strong { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 12px; font-size: clamp(1.2rem,2vw,1.75rem); font-weight: 630; line-height: 1.02; letter-spacing: -.035em; }
.dsv3-activitycard__body > span { display: -webkit-box; overflow: hidden; margin-top: 11px; color: rgb(255 255 255 / .65); font-size: .67rem; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }

.dsv3-activityhero { position: relative; min-height: 690px; overflow: hidden; color: #fff; background: rgb(var(--dsv3-primary-950)); }
.dsv3-activityhero > .dsv3-destinationmedia, .dsv3-activityhero > .dsv3-destinationmedia img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dsv3-activityhero .dsv3-destinationmedia--default { background: radial-gradient(circle at 78% 18%,rgb(105 220 192 / .24),transparent 23%),radial-gradient(circle at 22% 88%,rgb(218 203 166 / .12),transparent 28%),linear-gradient(135deg,rgb(3 34 32),rgb(13 94 82)); }
.dsv3-activityhero__wash { position: absolute; inset: 0; background: linear-gradient(90deg,rgb(2 27 25 / .94) 0%,rgb(2 27 25 / .73) 52%,rgb(2 27 25 / .26) 80%),linear-gradient(0deg,rgb(2 27 25 / .67),transparent 55%); }
.dsv3-activityhero__inner { position: relative; z-index: 2; display: grid; min-height: 690px; grid-template-columns: minmax(0,1fr) minmax(290px,.4fr); align-items: end; gap: 60px; padding-block: 82px 64px; }
.dsv3-activityhero__inner > div { min-width: 0; }.dsv3-activityhero .dsv3-activitycrumbs { margin-bottom: 27px; }
.dsv3-activityhero .dsv3-activitycrumbs a, .dsv3-activityhero .dsv3-activitycrumbs span { color: rgb(255 255 255 / .66); }
.dsv3-activityhero .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }
.dsv3-activityhero h1 { max-width: 12ch; margin: 14px 0 18px; font-size: clamp(3.7rem,6.6vw,7.8rem); font-weight: 570; line-height: .84; letter-spacing: -.07em; }
.dsv3-activityhero__inner > div > p { max-width: 60ch; margin: 0; color: rgb(255 255 255 / .72); font-size: .92rem; line-height: 1.65; }
.dsv3-activityfacts { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 26px; }
.dsv3-activityfacts > span { display: grid; min-height: 58px; grid-template-columns: auto auto; grid-template-rows: auto auto; align-items: center; column-gap: 8px; padding: 9px 13px; border-radius: 14px; background: rgb(255 255 255 / .1); backdrop-filter: blur(12px); }
.dsv3-activityfacts svg { grid-row: 1 / 3; color: rgb(var(--dsv3-primary-200)); }.dsv3-activityfacts small { color: rgb(255 255 255 / .56); font-size: .58rem; text-transform: uppercase; letter-spacing: .09em; }.dsv3-activityfacts strong { max-width: 220px; font-size: .7rem; line-height: 1.3; }
.dsv3-activitybooking { align-self: end; padding: 25px; border-radius: 22px; color: var(--dsv3-ink); background: rgb(255 255 255 / .95); box-shadow: var(--dsv3-shadow-lg); backdrop-filter: blur(16px); }
.dsv3-activitybooking h2 { margin: 16px 0 20px; font-size: 1.7rem; line-height: .98; letter-spacing: -.04em; }.dsv3-activitybooking .dsv3-kicker { color: var(--dsv3-accent); }
.dsv3-activitybooking__price { margin-bottom: 17px; }.dsv3-activitybooking__price small, .dsv3-activitybooking__price strong { display: block; }.dsv3-activitybooking__price small { color: var(--dsv3-muted); font-size: .63rem; }.dsv3-activitybooking__price strong { margin-top: 4px; font-size: 1.75rem; }
.dsv3-activitybooking .dsv3-btn { width: 100%; }.dsv3-activitybooking__support { display: inline-flex; width: 100%; min-height: 42px; align-items: center; justify-content: center; gap: 7px; margin-top: 7px; color: var(--dsv3-accent-strong); font-size: .73rem; font-weight: 750; }
.dsv3-activitydetail__content { background: var(--dsv3-gray-50); }.dsv3-activitydetail__grid { display: grid; grid-template-columns: minmax(0,860px); justify-content: center; }
.dsv3-activityprose { margin-top: 23px; color: var(--dsv3-muted); font-size: .93rem; line-height: 1.85; }.dsv3-activityprose h3 { margin: 34px 0 10px; color: var(--dsv3-ink); font-size: 1.35rem; line-height: 1.1; }.dsv3-activityprose p, .dsv3-activityprose ul, .dsv3-activityprose ol { margin-block: 11px; }
.dsv3-activityphotos { display: grid; height: 540px; grid-template-columns: 1.2fr .8fr .8fr; grid-template-rows: 1fr 1fr; gap: 7px; margin-top: 24px; }
.dsv3-activityphotos figure { position: relative; min-width: 0; min-height: 0; overflow: hidden; margin: 0; border-radius: 15px; background: rgb(var(--dsv3-primary-900)); }.dsv3-activityphotos figure:first-child { grid-row: 1 / 3; }.dsv3-activityphotos .dsv3-destinationmedia, .dsv3-activityphotos img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dsv3-activitysessions { display: grid; gap: 7px; margin-top: 23px; }.dsv3-activitysessions > div { display: flex; min-height: 64px; align-items: center; justify-content: space-between; gap: 18px; padding: 10px 15px; border-radius: 15px; background: #fff; box-shadow: var(--dsv3-shadow-xs); }.dsv3-activitysessions span { display: grid; grid-template-columns: auto auto; grid-template-rows: auto auto; align-items: center; gap: 2px 9px; }.dsv3-activitysessions svg { grid-row: 1 / 3; color: var(--dsv3-accent); }.dsv3-activitysessions strong { font-size: .78rem; }.dsv3-activitysessions small { color: var(--dsv3-muted); font-size: .65rem; }.dsv3-activitysessions b { font-size: .78rem; white-space: nowrap; }
.dsv3-activitysessions__more { margin: 12px 3px 0; color: var(--dsv3-muted); font-size: .69rem; }
.dsv3-activitydate, .dsv3-activityorder { display: grid; align-items: end; gap: 10px; margin-top: 23px; padding: 18px; border-radius: 20px; background: #fff; box-shadow: var(--dsv3-shadow-xs); }.dsv3-activitydate { grid-template-columns: minmax(0,1fr) auto; }.dsv3-activityorder { grid-template-columns: repeat(3,minmax(0,1fr)) auto; }
.dsv3-activitydate label, .dsv3-activityorder label { display: grid; gap: 7px; }.dsv3-activitydate label span, .dsv3-activityorder label span { color: var(--dsv3-muted); font-size: .64rem; font-weight: 700; }.dsv3-activitydate input, .dsv3-activityorder input, .dsv3-activityorder select { width: 100%; min-height: 52px; padding: 0 14px; border: 0; border-radius: 14px; outline: 0; background: rgb(var(--dsv3-gray-50)); }
.dsv3-activityquote { width: 100%; min-height: 155px; margin-top: 10px; border: 0; border-radius: 18px; background: #fff; }.dsv3-inlineaction { display: inline-flex; align-items: center; gap: 7px; margin-top: 13px; color: var(--dsv3-accent-strong); font-size: .74rem; font-weight: 750; }
.dsv3-activitypurchase { --activity-surface: #fff; }.dsv3-activitypurchase > h2 { max-width: 15ch; }.dsv3-activitypurchase[aria-busy="true"] { cursor: progress; }
.dsv3-activitysteps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; margin: 24px 0 0; padding: 0; list-style: none; }.dsv3-activitysteps li { position: relative; display: grid; min-width: 0; grid-template-columns: 31px minmax(0,1fr); align-items: center; gap: 9px; color: var(--dsv3-muted); font-size: .68rem; }.dsv3-activitysteps li:not(:last-child)::after { position: absolute; z-index: 0; top: 15px; right: -4px; width: calc(100% - 38px); height: 2px; background: rgb(var(--dsv3-primary-200)); content: ''; transform: translateX(100%); }.dsv3-activitysteps li > span { position: relative; z-index: 1; display: grid; width: 31px; height: 31px; place-items: center; border-radius: 50%; background: rgb(var(--dsv3-gray-50)); font-size: .65rem; font-weight: 800; }.dsv3-activitysteps li strong { min-width: 0; font-weight: 700; line-height: 1.2; }.dsv3-activitysteps li[data-state="current"], .dsv3-activitysteps li[data-state="complete"] { color: var(--dsv3-accent-strong); }.dsv3-activitysteps li[data-state="current"] > span { color: #fff; background: var(--dsv3-button); box-shadow: 0 7px 20px rgb(var(--dsv3-primary-700) / .2); }.dsv3-activitysteps li[data-state="complete"] > span { background: var(--dsv3-soft); }
.dsv3-activitypurchase__status { min-height: 0; margin-top: 12px; color: var(--dsv3-muted); font-size: .72rem; }.dsv3-activitypurchase__status:empty { display: none; }.dsv3-activitypurchase__status[data-state="loading"]::before { display: inline-block; width: 12px; height: 12px; margin-right: 7px; border-radius: 50%; background: var(--dsv3-accent); content: ''; vertical-align: -2px; animation: dsv3-activity-pulse .9s ease-in-out infinite alternate; }.dsv3-activitypurchase__status[data-state="error"] { color: #9d332d; }
.dsv3-activitypurchase__panel { margin-top: 13px; }.dsv3-activitypurchase__panel[data-state="leaving"] { opacity: 0; transform: translateY(-8px); transition: opacity .14s ease,transform .14s ease; }.dsv3-activitypurchase__panel[data-state="entering"] { animation: dsv3-activity-enter .34s cubic-bezier(.2,.8,.2,1) both; }
.dsv3-activitypurchase__step { padding: 22px; border-radius: 24px; background: var(--activity-surface); box-shadow: var(--dsv3-shadow-md); }.dsv3-activitypurchase__step > header { margin-top: 24px; }.dsv3-activitypurchase__step > header h3 { max-width: 18ch; margin: 7px 0 0; outline: 0; font-size: clamp(1.65rem,3vw,2.35rem); font-weight: 550; line-height: 1; letter-spacing: -.04em; }
.dsv3-activityslots { margin-top: 20px; }.dsv3-activityslots fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }.dsv3-activityslots legend { margin-bottom: 12px; color: var(--dsv3-muted); font-size: .68rem; font-weight: 700; }.dsv3-activityslots__group + .dsv3-activityslots__group { margin-top: 16px; }.dsv3-activityslots__group h4 { margin: 0 0 8px; font-size: .85rem; }.dsv3-activityslots__group > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.dsv3-activitytimes { display: flex; gap: 7px; overflow-x: auto; margin: 0 -4px 18px; padding: 4px 4px 8px; scrollbar-width: thin; scroll-snap-type: x proximity; }.dsv3-activitytimes button { flex: 0 0 auto; min-width: 72px; min-height: 43px; padding: 0 14px; border: 0; border-radius: var(--dsv3-pill); color: var(--dsv3-ink); background: rgb(var(--dsv3-gray-50)); font-size: .7rem; font-weight: 750; cursor: pointer; scroll-snap-align: start; }.dsv3-activitytimes button[aria-selected="true"] { color: #fff; background: var(--dsv3-button); box-shadow: 0 8px 22px -12px rgb(var(--dsv3-primary-950)); }.dsv3-activitytimes button:focus-visible { outline: 3px solid rgb(var(--dsv3-primary-300)); outline-offset: 2px; }
.dsv3-activityslot { position: relative; display: grid; min-height: 76px; grid-template-columns: 20px minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 16px; background: rgb(var(--dsv3-gray-50)); cursor: pointer; transition: color .2s ease,background .2s ease,box-shadow .2s ease,transform .2s ease; }.dsv3-activityslot:hover { transform: translateY(-2px); box-shadow: var(--dsv3-shadow-xs); }.dsv3-activityslot:has(input:checked) { color: var(--dsv3-accent-strong); background: var(--dsv3-soft); box-shadow: inset 0 0 0 2px rgb(var(--dsv3-primary-500)); }.dsv3-activityslot input { width: 18px; height: 18px; margin: 0; accent-color: rgb(var(--dsv3-primary-700)); }.dsv3-activityslot span, .dsv3-activityslot strong, .dsv3-activityslot small { display: block; min-width: 0; }.dsv3-activityslot strong { font-size: .75rem; line-height: 1.25; }.dsv3-activityslot small { margin-top: 4px; color: var(--dsv3-muted); font-size: .62rem; }.dsv3-activityslot b { font-size: .73rem; white-space: nowrap; }
.dsv3-activityslots__footer { display: flex; align-items: end; justify-content: space-between; gap: 14px; margin-top: 18px; padding-top: 18px; box-shadow: 0 -1px 0 var(--dsv3-line); }.dsv3-activityslots__footer label { display: grid; gap: 6px; }.dsv3-activityslots__footer label span { color: var(--dsv3-muted); font-size: .64rem; font-weight: 700; }.dsv3-activityslots__footer input { width: 112px; min-height: 50px; padding: 0 14px; border: 0; border-radius: 14px; outline: 0; background: rgb(var(--dsv3-gray-50)); }
.dsv3-activitypurchase__back { display: inline-flex; min-height: 42px; align-items: center; gap: 6px; margin-top: 12px; padding: 0 4px; border: 0; color: var(--dsv3-accent-strong); background: transparent; font-size: .7rem; font-weight: 750; cursor: pointer; }.dsv3-activitypurchase__back svg { transform: rotate(90deg); }.dsv3-activitypurchase__empty { margin-top: 18px; padding: 20px; border-radius: 18px; background: var(--dsv3-soft); }.dsv3-activitypurchase__empty strong { font-size: 1rem; }.dsv3-activitypurchase__empty p { color: var(--dsv3-muted); font-size: .75rem; line-height: 1.5; }
.dsv3-activitycheckout { margin-top: 20px; }.dsv3-activitycheckout__grid { display: grid; grid-template-columns: minmax(250px,.75fr) minmax(0,1.25fr); gap: 12px; }.dsv3-activitycheckout__summary, .dsv3-activitycheckout__contact { padding: 20px; border-radius: 18px; }.dsv3-activitycheckout__summary { align-self: start; background: rgb(var(--dsv3-primary-950)); color: #fff; }.dsv3-activitycheckout__summary .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }.dsv3-activitycheckout__summary h4 { margin: 9px 0 7px; font-size: 1.25rem; line-height: 1.1; }.dsv3-activitycheckout__summary > p { margin: 0; color: rgb(255 255 255 / .7); font-size: .7rem; }.dsv3-activitycheckout__summary > label { display: grid; gap: 6px; margin-top: 18px; }.dsv3-activitycheckout__summary > label span { color: rgb(255 255 255 / .7); font-size: .63rem; }.dsv3-activitycheckout__summary input { width: 100%; min-height: 48px; padding: 0 13px; border: 0; border-radius: 13px; outline: 0; background: rgb(255 255 255 / .12); color: #fff; }.dsv3-activitycheckout__summary dl { margin: 18px 0 0; }.dsv3-activitycheckout__summary dl > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; box-shadow: 0 1px 0 rgb(255 255 255 / .14); }.dsv3-activitycheckout__summary dt { color: rgb(255 255 255 / .67); font-size: .65rem; }.dsv3-activitycheckout__summary dd { margin: 0; font-size: .76rem; font-weight: 750; }.dsv3-activitycheckout__summary .dsv3-activitycheckout__total dd { color: rgb(var(--dsv3-primary-200)); font-size: 1.08rem; }.dsv3-activitycheckout__summary > small { display: block; margin-top: 14px; color: rgb(255 255 255 / .6); font-size: .6rem; line-height: 1.45; }
.dsv3-activitycheckout__contact { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-content: start; gap: 12px; background: rgb(var(--dsv3-gray-50)); }.dsv3-activitycheckout__contact .dsv3-field { display: grid; gap: 6px; }.dsv3-activitycheckout__contact .dsv3-field--wide, .dsv3-activitycheckout__error, .dsv3-activitycheckout__privacy, .dsv3-activitycheckout__contact > .dsv3-btn { grid-column: 1 / -1; }.dsv3-activitycheckout__contact .dsv3-field > span { color: var(--dsv3-muted); font-size: .63rem; font-weight: 700; }.dsv3-activitycheckout__contact input, .dsv3-activitycheckout__contact textarea { width: 100%; min-height: 50px; padding: 11px 13px; border: 0; border-radius: 13px; outline: 0; background: #fff; box-shadow: var(--dsv3-shadow-xs); resize: vertical; }.dsv3-activitycheckout__contact input:focus, .dsv3-activitycheckout__contact textarea:focus { box-shadow: 0 0 0 3px rgb(var(--dsv3-primary-300)); }.dsv3-activitycheckout__phone { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(90px,.35fr) minmax(0,1fr); gap: 8px; }.dsv3-activitycheckout__error { padding: 12px 14px; border-radius: 12px; color: #8e2c27; background: #fff0ef; font-size: .7rem; line-height: 1.45; }.dsv3-activitycheckout__privacy { margin: -2px 0 0; color: var(--dsv3-muted); font-size: .62rem; }.dsv3-activitycheckout__contact > .dsv3-btn { width: 100%; }
@keyframes dsv3-activity-enter { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes dsv3-activity-pulse { from { opacity: .35; transform: scale(.7); } to { opacity: 1; transform: scale(1); } }
.dsv3-activityrequest { padding: 28px; border-radius: 22px; background: #fff; box-shadow: var(--dsv3-shadow-sm); }.dsv3-activityempty { color: var(--dsv3-muted); }
.dsv3-activitybar { display: none; }

.dsv3-iconicindex__intro { padding: clamp(82px,10vw,145px) 0 clamp(72px,9vw,125px); color: #fff; background: radial-gradient(circle at 78% 18%,rgb(var(--dsv3-primary-300) / .35),transparent 23%),radial-gradient(circle at 18% 88%,rgb(255 255 255 / .08),transparent 30%),linear-gradient(138deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-700))); }
.dsv3-iconicindex__intro h1 { max-width: 11ch; margin: 18px 0 20px; font-size: clamp(4.4rem,8vw,8.3rem); font-weight: 520; line-height: .84; letter-spacing: -.07em; }
.dsv3-iconicindex__intro p { max-width: 58ch; margin: 0 0 27px; color: rgb(255 255 255 / .72); line-height: 1.7; }
.dsv3-iconicindex__anchors { background: var(--dsv3-canvas); }
.dsv3-iconicgrid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.dsv3-iconicgrid .dsv3-destinationcard { min-height: 340px; }
.dsv3-iconicatlas { background: #fff; }
.dsv3-iconicatlas__rails { display: grid; gap: 46px; }
.dsv3-iconicrail > header { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 15px; }
.dsv3-iconicrail > header h3 { margin: 0; font-size: 1.45rem; font-weight: 620; letter-spacing: -.03em; }.dsv3-iconicrail > header span { color: var(--dsv3-muted); font-size: .7rem; }
.dsv3-iconicrail__track { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.dsv3-iconicdetail__hero { padding: 24px 0 54px; background: #fff; }
.dsv3-iconicdetail__back { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 21px; color: var(--dsv3-muted); font-size: .72rem; font-weight: 650; }.dsv3-iconicdetail__backicon { transform: rotate(180deg); }
.dsv3-iconicdetail__hero-grid { display: grid; min-height: 580px; grid-template-columns: minmax(0,1.08fr) minmax(380px,.92fr); overflow: hidden; border-radius: 30px; background: rgb(var(--dsv3-primary-950)); box-shadow: var(--dsv3-shadow-lg); }
.dsv3-iconicdetail__media { position: relative; min-height: 580px; }.dsv3-iconicdetail__media .dsv3-destinationmedia, .dsv3-iconicdetail__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dsv3-iconicdetail__heading { display: flex; align-items: flex-start; justify-content: center; flex-direction: column; padding: clamp(38px,5vw,76px); color: #fff; }
.dsv3-iconicdetail__heading .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }.dsv3-iconicdetail__heading h1 { max-width: 12ch; margin: 18px 0 20px; font-size: clamp(3.2rem,5.7vw,6rem); font-weight: 520; line-height: .88; letter-spacing: -.06em; }
.dsv3-iconicdetail__heading > p { max-width: 40ch; margin: 0; color: rgb(255 255 255 / .7); line-height: 1.65; }.dsv3-iconicdetail__heading > .dsv3-btn { margin-top: 27px; }
.dsv3-iconicdetail__place { display: inline-flex; align-items: center; gap: 7px; margin-top: 19px; color: rgb(255 255 255 / .78); font-size: .76rem; }
.dsv3-iconicdetail__story { background: var(--dsv3-canvas); }.dsv3-iconicdetail__story-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(360px,.85fr); align-items: start; gap: clamp(32px,6vw,85px); }
.dsv3-iconicdetail__story article > h2 { max-width: 13ch; margin: 15px 0 27px; font-size: clamp(2.6rem,4.8vw,5rem); font-weight: 520; line-height: .94; letter-spacing: -.055em; }
.dsv3-iconicrequest { position: sticky; top: 138px; padding: 28px; border-radius: 25px; background: #fff; box-shadow: var(--dsv3-shadow-lg); }.dsv3-iconicrequest > h2 { margin: 10px 0 8px; font-size: 1.75rem; letter-spacing: -.04em; }.dsv3-iconicrequest > p { margin: 0 0 20px; color: var(--dsv3-muted); font-size: .78rem; line-height: 1.55; }
.dsv3-iconicrequest .prerequest { display: grid; gap: 12px; }.dsv3-iconicrequest .bookingcard__note { margin: 0; color: var(--dsv3-muted); font-size: .68rem; line-height: 1.5; }.dsv3-iconicrequest .prerequest__fields { display: grid; gap: 11px; }.dsv3-iconicrequest .field { display: grid; gap: 7px; }.dsv3-iconicrequest .field__label { margin: 0; padding: 0 2px; color: var(--dsv3-muted); font-size: .67rem; font-weight: 700; letter-spacing: .02em; text-transform: none; }.dsv3-iconicrequest .field--icon { position: relative; }.dsv3-iconicrequest .field__icon { position: absolute; z-index: 1; top: 50%; left: 14px; display: flex; align-items: center; color: var(--dsv3-accent); pointer-events: none; transform: translateY(-50%); }.dsv3-iconicrequest .input { width: 100%; height: 52px; min-height: 52px; padding: 0 14px 0 44px; border: 1px solid rgb(var(--dsv3-gray-200)); border-radius: 13px; outline: 0; background: rgb(var(--dsv3-gray-50)); }.dsv3-iconicrequest .input:focus-visible { border-color: rgb(var(--dsv3-primary-500)); background: #fff; box-shadow: 0 0 0 3px rgb(var(--dsv3-primary-500) / .16); }.dsv3-iconicrequest .field__error, .dsv3-iconicrequest .notice { margin: 0; color: rgb(155 48 42); font-size: .68rem; }.dsv3-iconicrequest .notice--success { color: rgb(var(--dsv3-primary-800)); }.dsv3-iconicrequest .prerequest__actions { display: grid; gap: 9px; }.dsv3-iconicrequest .prerequest__fineprint { display: grid; gap: 3px; }.dsv3-iconicrequest .btn { display: inline-flex; width: 100%; min-height: 52px; align-items: center; justify-content: center; gap: 8px; margin: 0; padding: 0 20px; border: 0; border-radius: var(--dsv3-pill); color: #fff; background: var(--dsv3-button); box-shadow: var(--dsv3-shadow-sm); font-weight: 720; }.dsv3-iconicrequest .hp { position: absolute!important; left: -10000px!important; width: 1px!important; height: 1px!important; overflow: hidden!important; }
.dsv3-iconicrelated { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; }.dsv3-iconicgateway { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }.dsv3-iconicgateway__card { display: grid; min-height: 160px; grid-template-columns: 42px minmax(0,1fr); align-items: start; gap: 12px; padding: 22px; border-radius: 20px; background: #fff; box-shadow: var(--dsv3-shadow-sm); }.dsv3-iconicgateway__card > span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 13px; color: var(--dsv3-accent-strong); background: var(--dsv3-soft); }.dsv3-iconicgateway__card h3 { margin: 2px 0 8px; font-size: .94rem; }.dsv3-iconicgateway__card p { margin: 0; color: var(--dsv3-muted); font-size: .71rem; line-height: 1.5; }.dsv3-iconicgateway__card strong { display: inline-flex; align-items: center; gap: 6px; margin-top: 17px; color: var(--dsv3-accent-strong); font-size: .7rem; }

.dsv3-auth { position: relative; display: grid; min-height: 100svh; grid-template-columns: minmax(360px,.86fr) minmax(520px,1.14fr); background: #fff; }
.dsv3-auth__story { position: relative; display: grid; min-height: 100svh; align-content: space-between; overflow: hidden; padding: clamp(34px,5vw,72px); color: #fff; background: radial-gradient(circle at 88% 10%,rgb(116 224 200 / .28),transparent 25%),radial-gradient(circle at 12% 92%,rgb(189 231 218 / .14),transparent 28%),linear-gradient(145deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-800))); }
.dsv3-auth__story::after { position: absolute; right: -14%; bottom: -19%; width: min(52vw,680px); aspect-ratio: 1; border-radius: 50%; background: repeating-radial-gradient(circle,rgb(255 255 255 / .055) 0 2px,transparent 2px 25px); content: ""; }
.dsv3-auth__story > * { position: relative; z-index: 1; }
.dsv3-auth__brand { position: absolute; z-index: 3; top: clamp(28px,4vw,58px); left: clamp(28px,4vw,58px); display: block; width: min(260px,20vw); }
.dsv3-auth__brand img { display: block; width: 100%; height: auto; }
.dsv3-auth__story > div { max-width: 570px; align-self: end; }
.dsv3-auth__story .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }
.dsv3-auth__story h2 { max-width: 9ch; margin: 18px 0 23px; font-size: clamp(3rem,5.7vw,6.8rem); font-weight: 560; line-height: .87; letter-spacing: -.065em; }
.dsv3-auth__story h2 em { color: rgb(var(--dsv3-primary-200)); font-style: normal; }
.dsv3-auth__story > div > p { max-width: 45ch; margin: 0; color: rgb(255 255 255 / .7); font-size: .94rem; line-height: 1.7; }
.dsv3-auth__story ul { display: grid; gap: 7px; max-width: 520px; margin: 31px 0 0; padding: 0; list-style: none; }
.dsv3-auth__story li { display: grid; min-height: 66px; grid-template-columns: 42px minmax(0,1fr); align-items: center; gap: 10px; padding: 10px 13px; border-radius: 17px; background: rgb(255 255 255 / .08); backdrop-filter: blur(12px); }
.dsv3-auth__story li > svg { margin-inline: auto; color: rgb(var(--dsv3-primary-200)); }
.dsv3-auth__story li strong, .dsv3-auth__story li small { display: block; }
.dsv3-auth__story li strong { font-size: .8rem; }.dsv3-auth__story li small { margin-top: 3px; color: rgb(255 255 255 / .58); font-size: .66rem; line-height: 1.45; }
.dsv3-auth__panel { display: grid; min-height: 100svh; place-items: center; padding: clamp(28px,5vw,72px); background: radial-gradient(circle at 82% 20%,rgb(var(--dsv3-primary-50)),transparent 32%),#fff; }
.dsv3-auth__card { width: min(100%,470px); }
.dsv3-auth__tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin-bottom: 38px; padding: 5px; border-radius: var(--dsv3-pill); background: rgb(var(--dsv3-gray-100)); }
.dsv3-auth__tabs a { display: grid; min-height: 42px; place-items: center; border-radius: var(--dsv3-pill); color: var(--dsv3-muted); font-size: .75rem; font-weight: 700; }
.dsv3-auth__tabs a[aria-current="page"] { color: var(--dsv3-accent-strong); background: #fff; box-shadow: var(--dsv3-shadow-xs); }
.dsv3-auth__card header h1 { margin: 0; font-size: clamp(2.6rem,4vw,4.35rem); font-weight: 570; line-height: .91; letter-spacing: -.06em; }
.dsv3-auth__card header p { max-width: 42ch; margin: 14px 0 31px; color: var(--dsv3-muted); font-size: .86rem; line-height: 1.65; }
.dsv3-auth__form { display: grid; gap: 12px; }
.dsv3-auth__field { display: grid; gap: 7px; }
.dsv3-auth__field span { padding-left: 4px; color: var(--dsv3-muted); font-size: .67rem; font-weight: 680; letter-spacing: .03em; }
.dsv3-auth__field input { width: 100%; min-height: 54px; padding: 0 17px; border: 0; border-radius: 15px; outline: 0; color: var(--dsv3-ink); background: rgb(var(--dsv3-gray-50)); box-shadow: inset 0 0 0 1px transparent; }
.dsv3-auth__field input:focus { background: var(--dsv3-soft); box-shadow: inset 0 0 0 2px rgb(var(--dsv3-primary-300)); }
.dsv3-auth__options { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin: 2px 1px 8px; font-size: .7rem; }
.dsv3-auth__options > a { color: var(--dsv3-accent-strong); font-weight: 700; }
.dsv3-auth__check { display: inline-flex; align-items: flex-start; gap: 8px; color: var(--dsv3-muted); font-size: .7rem; line-height: 1.45; }
.dsv3-auth__check input { width: 17px; height: 17px; flex: none; margin: 1px 0 0; accent-color: rgb(var(--dsv3-primary-700)); }
.dsv3-auth__form > .dsv3-btn { width: 100%; min-height: 54px; margin-top: 3px; }
.dsv3-auth__passwordnote { margin: -3px 3px 0; color: var(--dsv3-muted); font-size: .65rem; line-height: 1.45; }
.dsv3-auth__error { margin: 0 0 16px; padding: 12px 14px; border-radius: 13px; color: rgb(139 43 37); background: rgb(255 237 235); font-size: .74rem; }
.dsv3-auth__social { margin-top: 25px; }
.dsv3-auth__social > p { display: flex; align-items: center; gap: 12px; margin: 0 0 13px; color: var(--dsv3-muted); font-size: .65rem; }
.dsv3-auth__social > p::before, .dsv3-auth__social > p::after { height: 1px; flex: 1; background: rgb(var(--dsv3-gray-200)); content: ""; }
.dsv3-auth__social > div { display: grid; gap: 7px; }
.dsv3-auth__sociallink { display: grid; min-height: 50px; grid-template-columns: 23px minmax(0,1fr) 23px; align-items: center; gap: 8px; padding: 0 15px; border-radius: 14px; background: rgb(var(--dsv3-gray-50)); font-size: .75rem; font-weight: 700; text-align: center; }
.dsv3-auth__sociallink > span { grid-column: 2; }.dsv3-auth__sociallink > svg { grid-column: 1; grid-row: 1; }
.dsv3-auth__guest, .dsv3-auth__switch { color: var(--dsv3-muted); font-size: .67rem; line-height: 1.5; text-align: center; }
.dsv3-auth__guest { margin: 19px 0 0; }.dsv3-auth__switch { margin: 9px 0 0; }.dsv3-auth__switch a { color: var(--dsv3-accent-strong); font-weight: 750; }

.dsv3-checkout { min-height: 72vh; padding-block: 42px 90px; background: var(--dsv3-gray-50); }
.dsv3-journey { position: relative; margin-bottom: 46px; padding: 18px 22px; overflow: hidden; border-radius: 22px; background: #fff; box-shadow: var(--dsv3-shadow-xs); }
.dsv3-journey ol { position: relative; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); margin: 0; padding: 0; list-style: none; }
.dsv3-journey ol::before { position: absolute; top: 17px; right: 9%; left: 9%; height: 2px; background: rgb(var(--dsv3-gray-200)); content: ""; }
.dsv3-journey li { position: relative; z-index: 1; display: grid; justify-items: center; gap: 8px; color: var(--dsv3-muted); text-align: center; }
.dsv3-journey li > span { display: grid; width: 35px; height: 35px; place-items: center; border-radius: 50%; background: rgb(var(--dsv3-gray-100)); box-shadow: 0 0 0 7px #fff; font-size: .69rem; font-weight: 800; }
.dsv3-journey li > strong { font-size: .66rem; font-weight: 720; }
.dsv3-journey li[data-state="complete"] > span, .dsv3-journey li[data-state="current"] > span { color: #fff; background: rgb(var(--dsv3-primary-700)); }
.dsv3-journey li[data-state="current"] > strong, .dsv3-journey li[data-state="complete"] > strong { color: var(--dsv3-ink); }
.dsv3-journey li[data-state="error"] > span { color: #fff; background: rgb(174 57 49); }
.dsv3-journey li[data-state="error"] > strong { color: rgb(139 43 37); }
.dsv3-checkout__head { max-width: 860px; margin-bottom: 31px; }
.dsv3-checkout__head h1 { margin: 10px 0 15px; font-size: clamp(3.4rem,6vw,6.4rem); font-weight: 560; line-height: .87; letter-spacing: -.065em; }
.dsv3-checkout__head > p { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 24px; margin: 0; color: var(--dsv3-muted); font-size: .77rem; }
.dsv3-checkout__head > p a { display: inline-flex; align-items: center; gap: 7px; color: var(--dsv3-accent-strong); font-weight: 750; }
.dsv3-checkout__layout, .dsv3-cart__layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,360px); align-items: start; gap: 22px; }
.dsv3-checkoutform { display: grid; gap: 13px; }
.dsv3-checkoutcard, .dsv3-checkoutaside, .dsv3-checkoutextra, .dsv3-cartitem, .dsv3-paymentresult__card { border-radius: 24px; background: #fff; box-shadow: var(--dsv3-shadow-sm); }
.dsv3-checkoutcard { padding: 28px; }
.dsv3-checkoutcard h2, .dsv3-checkoutaside h2 { margin: 8px 0 10px; font-size: 1.65rem; line-height: 1; letter-spacing: -.04em; }
.dsv3-checkoutcard > p, .dsv3-checkoutaside p, .dsv3-checkoutcard > small { color: var(--dsv3-muted); font-size: .72rem; line-height: 1.6; }
.dsv3-checkoutfields { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; margin: 22px 0 13px; }
.dsv3-checkoutfield { display: grid; gap: 7px; }.dsv3-checkoutfield > span { padding-left: 3px; color: var(--dsv3-muted); font-size: .64rem; font-weight: 700; }
.dsv3-checkoutfield input { width: 100%; min-height: 54px; padding: 0 15px; border: 0; border-radius: 14px; outline: 0; color: var(--dsv3-ink); background: rgb(var(--dsv3-gray-100)); box-shadow: inset 0 0 0 1px transparent; }
.dsv3-checkoutfield input:focus { background: var(--dsv3-soft); box-shadow: inset 0 0 0 2px rgb(var(--dsv3-primary-300)); }
.dsv3-checkoutfield small { color: rgb(139 43 37); font-size: .62rem; }
.dsv3-checkoutphone { display: grid; grid-template-columns: minmax(105px,.34fr) minmax(0,1fr); gap: 9px; }
.dsv3-checkoutdiscount { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 20px; }
.dsv3-checkoutbalance { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 18px; }
.dsv3-checkoutbalance > span { padding: 14px; border-radius: 15px; background: var(--dsv3-soft); }.dsv3-checkoutbalance small, .dsv3-checkoutbalance strong { display: block; }.dsv3-checkoutbalance small { color: var(--dsv3-muted); font-size: .61rem; }.dsv3-checkoutbalance strong { margin-top: 4px; font-size: 1.1rem; }
.dsv3-checkouterror { margin-bottom: 2px; padding: 17px 19px; border-radius: 17px; color: rgb(112 32 26); background: rgb(255 237 235); font-size: .72rem; }.dsv3-checkouterror ul { margin: 9px 0 0; padding-left: 18px; }
.dsv3-checkoutpolicy { display: grid; grid-template-columns: 28px minmax(0,1fr); align-items: start; gap: 10px; margin: 18px 0; padding: 14px; border-radius: 15px; color: var(--dsv3-muted); background: var(--dsv3-soft); }.dsv3-checkoutpolicy svg { color: var(--dsv3-accent); }.dsv3-checkoutpolicy p { margin: 0; font-size: .7rem; line-height: 1.55; }
.dsv3-checkoutcard--pay .dsv3-btn { width: 100%; }
.dsv3-checkoutaside { position: sticky; top: 156px; display: grid; gap: 19px; padding: 23px; }
.dsv3-checkoutaside > .dsv3-btn { width: 100%; }
.dsv3-checkouttotal { display: grid; gap: 5px; padding: 19px; border-radius: 18px; color: #fff; background: linear-gradient(135deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-700))); }
.dsv3-checkouttotal span, .dsv3-checkouttotal small { color: rgb(255 255 255 / .63); font-size: .62rem; }.dsv3-checkouttotal strong { font-size: 2rem; line-height: 1; letter-spacing: -.04em; }
.dsv3-checkoutaside > div:last-child > .dsv3-btn { width: 100%; margin-top: 12px; }
.dsv3-checkoutextra { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-bottom: 13px; padding: 17px 20px; }.dsv3-checkoutextra p { flex: 1; margin: 0; color: var(--dsv3-muted); font-size: .7rem; }.dsv3-checkoutextra a { display: inline-flex; flex: none; align-items: center; gap: 7px; color: var(--dsv3-accent-strong); font-size: .69rem; font-weight: 750; }
.dsv3-cart__layout > div:first-child { display: grid; gap: 9px; }
.dsv3-cartitem { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 18px; padding: 20px 22px; }.dsv3-cartitem > div { min-width: 0; }.dsv3-cartitem a { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 10px; font-size: 1rem; font-weight: 750; }.dsv3-cartitem span { display: block; margin-top: 7px; color: var(--dsv3-muted); font-size: .68rem; }.dsv3-cartitem > strong { white-space: nowrap; }
.dsv3-empty { max-width: 720px; padding: 44px; border-radius: 25px; background: #fff; box-shadow: var(--dsv3-shadow-sm); }.dsv3-empty h2 { margin: 0 0 12px; font-size: 2.5rem; line-height: .95; }.dsv3-empty p { margin: 0 0 23px; color: var(--dsv3-muted); }
.dsv3-paymentresult { min-height: 72vh; padding-block: 42px 90px; background: var(--dsv3-gray-50); }
.dsv3-paymentresult__card { max-width: 760px; margin-inline: auto; padding: clamp(32px,6vw,72px); text-align: center; }
.dsv3-paymentresult__icon { display: grid; width: 70px; height: 70px; place-items: center; margin: 0 auto 22px; border-radius: 50%; color: #fff; background: rgb(var(--dsv3-primary-700)); }.dsv3-paymentresult__card[data-outcome="failure"] .dsv3-paymentresult__icon { background: rgb(174 57 49); }
.dsv3-paymentresult__card h1 { margin: 12px 0 16px; font-size: clamp(3rem,6vw,5.8rem); font-weight: 560; line-height: .88; letter-spacing: -.06em; }.dsv3-paymentresult__card > p { max-width: 52ch; margin: 0 auto; color: var(--dsv3-muted); line-height: 1.65; }
.dsv3-paymentresult__reference { display: inline-grid; gap: 3px; margin-top: 24px; padding: 12px 18px; border-radius: 14px; background: var(--dsv3-soft); }.dsv3-paymentresult__reference small { color: var(--dsv3-muted); font-size: .62rem; }.dsv3-paymentresult__reference strong { letter-spacing: .06em; }
.dsv3-paymentresult__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 28px; }

.dsv3-journey--hotel ol { grid-template-columns: repeat(3,minmax(0,1fr)); }
.dsv3-journey--hotel ol::before { right: 16%; left: 16%; }
.dsv3-hotelcheckout .dsv3-checkoutcard > .dsv3-btn { width: 100%; min-height: 56px; }
.dsv3-hotelcheckout__repriced { margin-bottom: 14px; padding: 17px 20px; border-radius: 18px; color: rgb(112 73 17); background: rgb(255 246 219); }
.dsv3-hotelcheckout__repriced strong { font-size: .78rem; }.dsv3-hotelcheckout__repriced p { margin: 5px 0 0; font-size: .7rem; line-height: 1.5; }
.dsv3-hotelcheckout__summary > div:first-child p { margin: 6px 0 0; }
.dsv3-hotelcheckout__summary dl { display: grid; gap: 0; margin: 0; }
.dsv3-hotelcheckout__summary dl > div { padding: 12px 0; box-shadow: 0 1px 0 rgb(var(--dsv3-gray-200)); }
.dsv3-hotelcheckout__summary dt { color: var(--dsv3-muted); font-size: .61rem; }
.dsv3-hotelcheckout__summary dd { display: flex; align-items: flex-start; gap: 8px; margin: 5px 0 0; font-size: .7rem; font-weight: 700; line-height: 1.45; }
.dsv3-hotelcheckout__summary dd svg { flex: none; color: var(--dsv3-accent); }
.dsv3-hotelcheckout__summary > a { display: inline-flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--dsv3-accent-strong); font-size: .7rem; font-weight: 750; }
.dsv3-hotelcheckout__validity { display: flex; align-items: flex-start; gap: 8px; padding: 12px 13px; border-radius: 14px; color: var(--dsv3-accent-strong); background: var(--dsv3-soft); font-size: .65rem; line-height: 1.45; }
.dsv3-hotelcheckout__validity svg { flex: none; }
.dsv3-hotelcheckout__help { grid-column: 1; padding: 21px 24px; border-radius: 21px; background: #fff; box-shadow: var(--dsv3-shadow-sm); }
.dsv3-hotelcheckout__help p { margin: 8px 0 15px; color: var(--dsv3-muted); font-size: .7rem; line-height: 1.55; }

.dsv3-portal { min-height: 78vh; background: var(--dsv3-gray-50); }
.dsv3-portalhero { color: #fff; background: radial-gradient(circle at 84% 10%,rgb(var(--dsv3-primary-300) / .22),transparent 24%),linear-gradient(140deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-800))); }
.dsv3-portalhero > .dsv3-shell { min-height: 360px; padding-block: 78px 58px; }
.dsv3-portalhero .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }
.dsv3-portalhero h1 { max-width: 15ch; margin: 14px 0 18px; font-size: clamp(3.7rem,7vw,7rem); font-weight: 550; line-height: .87; letter-spacing: -.065em; }
.dsv3-portalhero p { max-width: 54ch; margin: 0; color: rgb(255 255 255 / .66); font-size: .82rem; line-height: 1.65; }
.dsv3-portalbar { position: sticky; z-index: 58; top: 123px; overflow-x: auto; background: rgb(255 255 255 / .95); box-shadow: 0 12px 28px -26px rgb(5 46 43 / .5); backdrop-filter: blur(15px); transition: top .26s ease; }
body:has(.dsv3-header[data-shrunk="true"]) .dsv3-portalbar { top: 82px; }
.dsv3-portalnav { display: grid; grid-template-columns: repeat(6,minmax(max-content,1fr)); gap: 3px; min-width: 700px; padding-block: 8px; }
.dsv3-portalnav a { display: flex; min-height: 48px; align-items: center; justify-content: center; gap: 7px; padding: 0 13px; border-radius: var(--dsv3-pill); color: var(--dsv3-muted); font-size: .68rem; font-weight: 700; }
.dsv3-portalnav a[aria-current="page"] { color: var(--dsv3-accent-strong); background: var(--dsv3-soft); }
.dsv3-portalbody { display: grid; gap: 16px; padding-block: 35px 90px; }
.dsv3-portaloverview, .dsv3-portalsupport { display: grid; gap: 16px; }
.dsv3-portaloverview__top { display: grid; grid-template-columns: 1.1fr .9fr; gap: 13px; }
.dsv3-portalpoint, .dsv3-portaltier { min-height: 265px; padding: 29px; border-radius: 25px; box-shadow: var(--dsv3-shadow-sm); }
.dsv3-portalpoint { color: #fff; background: radial-gradient(circle at 90% 8%,rgb(var(--dsv3-primary-300) / .25),transparent 29%),linear-gradient(145deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-700))); }
.dsv3-portalpoint .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }.dsv3-portalpoint h2, .dsv3-portaltier h2 { margin: 10px 0 25px; font-size: 1.55rem; line-height: .95; letter-spacing: -.04em; }
.dsv3-portalpoint > div { display: grid; gap: 5px; }.dsv3-portalpoint > div > strong { color: rgb(var(--dsv3-primary-200)); font-size: clamp(3.4rem,7vw,6rem); line-height: .8; letter-spacing: -.06em; }.dsv3-portalpoint > div > span, .dsv3-portalpoint > div > small { color: rgb(255 255 255 / .65); font-size: .68rem; }.dsv3-portalpoint > div > small { margin-top: 8px; }
.dsv3-portalpoint footer { display: flex; align-items: center; gap: 8px; margin-top: 28px; color: rgb(255 255 255 / .58); font-size: .63rem; }
.dsv3-portaltier { background: #fff; }.dsv3-portaltier h2 { font-size: 3rem; }.dsv3-portaltier > strong { display: inline-block; padding: 8px 11px; border-radius: var(--dsv3-pill); color: var(--dsv3-accent-strong); background: var(--dsv3-soft); font-size: .68rem; }.dsv3-portaltier p, .dsv3-portaltier small { color: var(--dsv3-muted); font-size: .68rem; line-height: 1.55; }.dsv3-portaltier small { display: block; margin-top: 18px; }
.dsv3-portalsection, .dsv3-portalsupport > .supportform { padding: 28px; border-radius: 25px; background: #fff; box-shadow: var(--dsv3-shadow-sm); }
.dsv3-portalsection > header { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 20px; }.dsv3-portalsection > header h2 { margin: 0; font-size: 2.25rem; line-height: .94; letter-spacing: -.045em; }.dsv3-portalsection > header p { max-width: 54ch; margin: 0; color: var(--dsv3-muted); font-size: .68rem; line-height: 1.55; }
.dsv3-portalorders { display: grid; gap: 7px; }.dsv3-portalorder { display: grid; min-height: 105px; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 20px; padding: 17px 19px; border-radius: 17px; background: rgb(var(--dsv3-gray-50)); }.dsv3-portalorder > div:first-child { min-width: 0; }.dsv3-portalorder small, .dsv3-portalorder span { color: var(--dsv3-muted); font-size: .63rem; }.dsv3-portalorder > div:first-child > strong, .dsv3-portalorder > div:first-child > span { display: block; }.dsv3-portalorder > div:first-child > strong { margin: 5px 0; font-size: .92rem; }.dsv3-portalorder p { margin: 7px 0 0; color: var(--dsv3-muted); font-size: .63rem; line-height: 1.45; }.dsv3-portalorder > div:last-child { display: grid; justify-items: end; gap: 7px; }.dsv3-portalorder > div:last-child > strong { font-size: .82rem; }
.dsv3-portalstatus { padding: 6px 9px; border-radius: var(--dsv3-pill); background: rgb(var(--dsv3-gray-100)); }.dsv3-portalstatus[data-state="paid"] { color: rgb(16 104 70); background: rgb(225 249 237); }.dsv3-portalstatus[data-state="closed"] { color: rgb(139 43 37); background: rgb(255 237 235); }
.dsv3-portalproducts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }.dsv3-portalproduct { display: grid; min-height: 170px; align-content: end; gap: 8px; padding: 20px; border-radius: 19px; color: #fff; background: linear-gradient(150deg,rgb(var(--dsv3-primary-900)),rgb(var(--dsv3-primary-600))); }.dsv3-portalproduct > span { color: rgb(255 255 255 / .58); font-size: .62rem; }.dsv3-portalproduct > strong { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 9px; font-size: 1.05rem; line-height: 1.1; }
.dsv3-portalempty { display: grid; justify-items: start; gap: 9px; padding: 26px; border-radius: 19px; background: rgb(var(--dsv3-gray-50)); }.dsv3-portalempty svg { color: var(--dsv3-accent); }.dsv3-portalempty h3, .dsv3-portalempty p { margin: 0; }.dsv3-portalempty h3 { font-size: 1.35rem; }.dsv3-portalempty p { max-width: 55ch; color: var(--dsv3-muted); font-size: .7rem; line-height: 1.55; }.dsv3-portalempty .dsv3-btn { margin-top: 5px; }
.dsv3-portalladder { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }.dsv3-portalladder li { display: grid; min-height: 78px; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 12px 15px; border-radius: 16px; background: rgb(var(--dsv3-gray-50)); }.dsv3-portalladder li > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: rgb(var(--dsv3-gray-100)); font-size: .65rem; font-weight: 800; }.dsv3-portalladder li[data-state="complete"] > span, .dsv3-portalladder li[data-state="current"] > span { color: #fff; background: rgb(var(--dsv3-primary-700)); }.dsv3-portalladder strong, .dsv3-portalladder small { display: block; }.dsv3-portalladder small { margin-top: 4px; color: var(--dsv3-muted); font-size: .62rem; }.dsv3-portalladder em { color: var(--dsv3-accent-strong); font-size: .78rem; font-style: normal; font-weight: 800; }
.dsv3-portalrules { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }.dsv3-portalrules li { padding: 13px 15px; border-radius: 15px; color: var(--dsv3-muted); background: rgb(var(--dsv3-gray-50)); font-size: .7rem; line-height: 1.55; }
.dsv3-portalclaim { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 9px; }.dsv3-portalclaim label, .dsv3-portalreview label { display: grid; gap: 7px; }.dsv3-portalclaim label span, .dsv3-portalreview label span { color: var(--dsv3-muted); font-size: .63rem; font-weight: 700; }.dsv3-portalclaim input, .dsv3-portalreview input, .dsv3-portalreview select, .dsv3-portalreview textarea, .dsv3-portalnotify input, .dsv3-portal .supportform .input { width: 100%; min-height: 52px; padding: 0 14px; border: 0; border-radius: 14px; outline: 0; background: rgb(var(--dsv3-gray-100)); }.dsv3-portalreview textarea, .dsv3-portal .supportform textarea.input { padding-block: 13px; resize: vertical; }
.dsv3-portalreviews { display: grid; gap: 9px; }.dsv3-portalreview { padding: 19px; border-radius: 17px; background: rgb(var(--dsv3-gray-50)); }.dsv3-portalreview h3 { margin: 0 0 13px; }.dsv3-portalreview > p { color: var(--dsv3-muted); font-size: .68rem; }.dsv3-portalreview form { display: grid; gap: 10px; }.dsv3-portalreview__requests { display: grid; gap: 6px; margin-top: 15px; }.dsv3-portalreview details { padding: 11px 13px; border-radius: 13px; background: #fff; }.dsv3-portalreview summary { cursor: pointer; font-size: .68rem; font-weight: 700; }.dsv3-portalreview details form { margin-top: 12px; }
.dsv3-portalfavorites, .dsv3-portalrequests { display: grid; gap: 7px; }.dsv3-portalfavorites > a { display: grid; min-height: 67px; grid-template-columns: 26px minmax(0,1fr) 20px; align-items: center; gap: 10px; padding: 11px 14px; border-radius: 15px; background: rgb(var(--dsv3-gray-50)); }.dsv3-portalfavorites > a > svg:first-child { color: var(--dsv3-accent); }.dsv3-portalfavorites strong, .dsv3-portalfavorites small { display: block; }.dsv3-portalfavorites small { margin-top: 4px; color: var(--dsv3-muted); font-size: .6rem; }
.dsv3-portalrequests article { display: grid; grid-template-columns: minmax(145px,.5fr) minmax(0,1fr) auto; gap: 12px; padding: 14px 16px; border-radius: 15px; background: rgb(var(--dsv3-gray-50)); font-size: .7rem; }.dsv3-portalrequests small { color: var(--dsv3-muted); }
.dsv3-portalprofile { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 20px; }.dsv3-portalprofile dl { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0; }.dsv3-portalprofile dl div { padding: 15px; border-radius: 15px; background: rgb(var(--dsv3-gray-50)); }.dsv3-portalprofile dt { color: var(--dsv3-muted); font-size: .61rem; }.dsv3-portalprofile dd { margin: 5px 0 0; font-size: .78rem; font-weight: 700; }
.dsv3-portalnotify label { display: flex; align-items: flex-start; gap: 11px; }.dsv3-portalnotify input { width: 20px; height: 20px; flex: none; padding: 0; accent-color: rgb(var(--dsv3-primary-700)); }.dsv3-portalnotify strong, .dsv3-portalnotify small { display: block; }.dsv3-portalnotify small { max-width: 65ch; margin-top: 5px; color: var(--dsv3-muted); font-size: .66rem; line-height: 1.5; }.dsv3-portalnotify .dsv3-btn { margin-top: 17px; }.dsv3-portalnotify > p { color: rgb(16 104 70); font-size: .68rem; }
.dsv3-portalsupport > .supportform .supportform__lead h2 { margin: 0; font-size: 2.25rem; letter-spacing: -.04em; }.dsv3-portalsupport > .supportform .supportform__lead p { max-width: 58ch; color: var(--dsv3-muted); font-size: .7rem; line-height: 1.55; }
.dsv3-portal .supportform__form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 22px; }.dsv3-portal .supportform__field { display: grid; gap: 7px; margin: 0; }.dsv3-portal .supportform__field > label { color: var(--dsv3-muted); font-size: .63rem; font-weight: 700; }.dsv3-portal .supportform__field--wide, .dsv3-portal .supportform__actions, .dsv3-portal .supportform__outcome { grid-column: 1 / -1; }.dsv3-portal .supportform__actions { display: flex; align-items: center; gap: 13px; }.dsv3-portal .supportform__actions .btn { min-height: 52px; padding: 0 21px; border: 0; border-radius: var(--dsv3-pill); color: #fff; background: var(--dsv3-button); font-weight: 750; }.dsv3-portal .supportform__note { color: var(--dsv3-muted); font-size: .63rem; }.dsv3-portal .supportform__outcome { margin: 0; padding: 13px 15px; border-radius: 14px; color: rgb(16 104 70); background: rgb(225 249 237); font-size: .7rem; }.dsv3-portal .supportform__outcome--error, .dsv3-portal .supportform__error { color: rgb(139 43 37); }.dsv3-portal .supportform__error { font-size: .61rem; }.dsv3-portal .hp { position: absolute; left: -9999px; }
.dsv3-portalnote { margin: 0; color: var(--dsv3-muted); font-size: .7rem; }

.dsv3-safarihero { position: relative; min-height: 660px; overflow: hidden; color: #fff; background: radial-gradient(circle at 76% 25%,rgb(237 188 104 / .23),transparent 18%),linear-gradient(148deg,rgb(3 35 33),rgb(12 91 78) 58%,rgb(111 79 48)); }
.dsv3-safarihero__sun { position: absolute; top: 15%; right: 16%; width: 150px; aspect-ratio: 1; border-radius: 50%; background: rgb(239 197 123 / .88); box-shadow: 0 0 90px 30px rgb(239 197 123 / .17); }
.dsv3-safarihero__dunes, .dsv3-safarihero__dunes::before, .dsv3-safarihero__dunes::after { position: absolute; right: -8%; bottom: -27%; width: 75%; height: 62%; border-radius: 50% 50% 0 0; content: ""; transform: rotate(-8deg); }
.dsv3-safarihero__dunes { background: linear-gradient(160deg,rgb(227 178 110 / .45),rgb(44 67 55)); }.dsv3-safarihero__dunes::before { right: 48%; bottom: -14%; width: 96%; height: 92%; background: linear-gradient(165deg,rgb(22 101 86),rgb(5 46 43)); }.dsv3-safarihero__dunes::after { right: -42%; bottom: -5%; width: 87%; height: 78%; background: linear-gradient(150deg,rgb(189 137 78 / .55),rgb(20 70 60)); }
.dsv3-safarihero__inner { position: relative; z-index: 2; display: grid; min-height: 660px; grid-template-columns: minmax(0,1fr) 340px; align-items: end; gap: 70px; padding-block: 65px; }
.dsv3-safarihero .dsv3-tourcrumbs { margin-bottom: 45px; }.dsv3-safarihero .dsv3-tourcrumbs a, .dsv3-safarihero .dsv3-tourcrumbs span { color: rgb(255 255 255 / .68); }.dsv3-safarihero .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }
.dsv3-safarihero h1 { max-width: 9ch; margin: 14px 0 18px; font-size: clamp(4.6rem,8.5vw,9.3rem); font-weight: 550; line-height: .82; letter-spacing: -.075em; }
.dsv3-safarihero p { max-width: 56ch; margin: 0 0 27px; color: rgb(255 255 255 / .74); font-size: 1rem; line-height: 1.65; }.dsv3-safarihero p strong { color: rgb(var(--dsv3-primary-200)); font-size: 1.12em; }
.dsv3-safarihero__promise { display: block; margin-top: 8px; color: #fff; font-weight: 650; }
.dsv3-safarihero__facts { display: grid; gap: 8px; align-self: end; }
.dsv3-safarihero__facts > span { display: grid; min-height: 76px; grid-template-columns: 42px minmax(0,1fr); grid-template-rows: auto auto; align-items: center; column-gap: 10px; padding: 13px 15px; border-radius: 18px; background: rgb(255 255 255 / .1); backdrop-filter: blur(14px); }
.dsv3-safarihero__facts svg { grid-row: 1 / 3; color: rgb(var(--dsv3-primary-200)); }.dsv3-safarihero__facts small { align-self: end; color: rgb(255 255 255 / .54); font-size: .59rem; letter-spacing: .09em; text-transform: uppercase; }.dsv3-safarihero__facts strong { align-self: start; font-size: .77rem; }
.dsv3-safariwork { background: var(--dsv3-gray-50); }
.dsv3-safarierror { margin-bottom: 17px; padding: 18px 21px; border-radius: 18px; color: rgb(112 32 26); background: rgb(255 237 235); }.dsv3-safarierror p { margin: 6px 0 0; font-size: .74rem; }
.dsv3-safariform { display: grid; grid-template-columns: minmax(0,1fr) 350px; align-items: start; gap: 22px; }
.dsv3-safariform__main { display: grid; gap: 11px; }.dsv3-safariform__aside { position: sticky; top: 158px; }
.dsv3-safaristep { min-width: 0; margin: 0; padding: 27px; border: 0; border-radius: 23px; background: #fff; box-shadow: var(--dsv3-shadow-xs); }
.dsv3-safaristep legend { display: flex; align-items: center; gap: 10px; margin-bottom: 21px; padding: 0; font-size: 1.28rem; font-weight: 740; letter-spacing: -.035em; }.dsv3-safaristep legend > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; color: var(--dsv3-accent-strong); background: var(--dsv3-soft); font-size: .64rem; letter-spacing: 0; }
.dsv3-safaristep > p { margin: 11px 0 0; color: var(--dsv3-muted); font-size: .68rem; line-height: 1.55; }
.dsv3-safariguests, .dsv3-safaricontact { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }.dsv3-safaricontact { margin-top: 6px; }.dsv3-safaricontact > .dsv3-safarifield:last-child { grid-column: 1 / -1; }
.dsv3-safariphone { display: grid; grid-template-columns: minmax(110px,.35fr) minmax(0,1fr); gap: 8px; }
.dsv3-safarifield, .dsv3-safariselect { display: grid; gap: 7px; }.dsv3-safarifield > span, .dsv3-safariselect > span { padding-left: 3px; color: var(--dsv3-muted); font-size: .63rem; font-weight: 700; }
.dsv3-safarifield input, .dsv3-safariselect select { width: 100%; min-height: 54px; padding: 0 15px; border: 0; border-radius: 14px; outline: 0; color: var(--dsv3-ink); background: rgb(var(--dsv3-gray-100)); }.dsv3-safarifield input:focus, .dsv3-safariselect select:focus { background: var(--dsv3-soft); box-shadow: inset 0 0 0 2px rgb(var(--dsv3-primary-300)); }
.dsv3-safaricamps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.dsv3-safaricamp { position: relative; display: grid; min-height: 160px; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 10px; overflow: hidden; padding: 17px; border-radius: 17px; background: linear-gradient(150deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-800))); color: #fff; cursor: pointer; }.dsv3-safaricamp::before { position: absolute; top: -40px; right: -40px; width: 110px; height: 110px; border-radius: 50%; background: rgb(var(--dsv3-primary-200) / .13); content: ""; }
.dsv3-safaricamp input, .dsv3-safarimode input { position: absolute; opacity: 0; pointer-events: none; }.dsv3-safaricamp span, .dsv3-safaricamp > svg { position: relative; z-index: 1; }.dsv3-safaricamp small, .dsv3-safaricamp strong, .dsv3-safaricamp em { display: block; }.dsv3-safaricamp small { color: rgb(var(--dsv3-primary-200)); font-size: .58rem; letter-spacing: .11em; }.dsv3-safaricamp strong { margin-top: 6px; font-size: 1rem; line-height: 1.05; }.dsv3-safaricamp em { margin-top: 9px; color: rgb(255 255 255 / .58); font-size: .61rem; font-style: normal; line-height: 1.35; }
.dsv3-safaricamp[data-selected="true"] { background: linear-gradient(145deg,rgb(var(--dsv3-primary-700)),rgb(var(--dsv3-primary-500))); box-shadow: 0 14px 30px -22px rgb(var(--dsv3-primary-950)); }.dsv3-safaricamp[data-disabled="true"] { color: var(--dsv3-muted); background: rgb(var(--dsv3-gray-100)); cursor: not-allowed; }.dsv3-safaricamp[data-disabled="true"] small, .dsv3-safaricamp[data-disabled="true"] em { color: var(--dsv3-muted); }
.dsv3-safarimodes { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }.dsv3-safarimode { position: relative; display: grid; min-height: 88px; align-items: center; padding: 15px 17px; border-radius: 16px; background: var(--dsv3-soft); cursor: pointer; }.dsv3-safarimode:has(input:checked) { color: #fff; background: rgb(var(--dsv3-primary-800)); }.dsv3-safarimode strong, .dsv3-safarimode small { display: block; }.dsv3-safarimode strong { font-size: .84rem; }.dsv3-safarimode small { margin-top: 5px; color: var(--dsv3-muted); font-size: .63rem; line-height: 1.4; }.dsv3-safarimode:has(input:checked) small { color: rgb(255 255 255 / .65); }.dsv3-safarimode[data-disabled="true"] { opacity: .48; cursor: not-allowed; }
.dsv3-safariempty { margin: 0!important; padding: 18px; border-radius: 15px; background: rgb(var(--dsv3-gray-100)); }
.dsv3-safarirefresh { justify-self: start; }.dsv3-safaripurchase { display: grid; gap: 11px; margin-top: 34px; padding-top: 34px; box-shadow: 0 -1px 0 rgb(var(--dsv3-gray-200)); }
.dsv3-safaribuy { width: 100%; min-height: 58px; }.dsv3-safaribuy:disabled { opacity: .5; cursor: not-allowed; transform: none; box-shadow: none; }
.dsv3-safariquote { display: grid; gap: 13px; padding: 25px; border-radius: 23px; color: #fff; background: radial-gradient(circle at 90% 5%,rgb(var(--dsv3-primary-300) / .21),transparent 25%),linear-gradient(145deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-800))); box-shadow: var(--dsv3-shadow-md); }.dsv3-safariquote .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }.dsv3-safariquote h2 { margin: 1px 0 0; color: rgb(var(--dsv3-primary-200)); font-size: 2.8rem; line-height: .88; letter-spacing: -.055em; }.dsv3-safariquote > p { margin: 0 0 6px; color: rgb(255 255 255 / .65); font-size: .7rem; line-height: 1.55; }
.dsv3-safariquote > div:not(.dsv3-safariquote__line):not(.dsv3-safariquote__total) { display: grid; grid-template-columns: 31px minmax(0,1fr); align-items: center; gap: 8px; padding: 11px; border-radius: 14px; background: rgb(255 255 255 / .08); }.dsv3-safariquote > div svg { grid-row: 1 / 3; color: rgb(var(--dsv3-primary-200)); }.dsv3-safariquote small, .dsv3-safariquote strong { display: block; }.dsv3-safariquote > div small { color: rgb(255 255 255 / .52); font-size: .58rem; }.dsv3-safariquote > div strong { margin-top: 2px; font-size: .72rem; }
.dsv3-safariquote__line { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 12px; box-shadow: 0 1px 0 rgb(255 255 255 / .11); }.dsv3-safariquote__line span { min-width: 0; }.dsv3-safariquote__line b { flex: none; font-size: .75rem; }.dsv3-safariquote__total { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding-top: 11px; }.dsv3-safariquote__total span { color: rgb(255 255 255 / .58); font-size: .65rem; }.dsv3-safariquote__total strong { color: rgb(var(--dsv3-primary-200)); font-size: 1.6rem; }

.dsv3-visahero { position: relative; overflow: hidden; color: #fff; background: radial-gradient(circle at 84% 13%,rgb(var(--dsv3-primary-300) / .19),transparent 24%),linear-gradient(140deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-800))); }
.dsv3-visahero::after { position: absolute; right: -8%; bottom: -53%; width: min(61vw,760px); aspect-ratio: 1; border-radius: 50%; background: repeating-radial-gradient(circle,rgb(255 255 255 / .045) 0 2px,transparent 2px 23px); content: ""; }
.dsv3-visahero__inner { position: relative; z-index: 1; display: grid; min-height: 570px; grid-template-columns: minmax(0,1fr) minmax(300px,.43fr); align-items: end; gap: 70px; padding-block: 70px; }
.dsv3-visahero .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }
.dsv3-visahero h1 { max-width: 11ch; margin: 15px 0 20px; font-size: clamp(4.2rem,7.5vw,8.4rem); font-weight: 550; line-height: .84; letter-spacing: -.07em; }.dsv3-visahero__inner > div:first-child > p { max-width: 58ch; margin: 0; color: rgb(255 255 255 / .68); font-size: .92rem; line-height: 1.7; }
.dsv3-visahero__card { display: grid; align-self: end; padding: 28px; border-radius: 24px; background: rgb(255 255 255 / .1); box-shadow: var(--dsv3-shadow-md); backdrop-filter: blur(14px); }.dsv3-visahero__card > svg { color: rgb(var(--dsv3-primary-200)); }.dsv3-visahero__card span { margin-top: 39px; color: rgb(var(--dsv3-primary-200)); font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; }.dsv3-visahero__card strong { max-width: 11ch; margin-top: 9px; font-size: 2.05rem; line-height: .94; letter-spacing: -.045em; }.dsv3-visahero__card small { margin-top: 17px; color: rgb(255 255 255 / .57); font-size: .68rem; }
.dsv3-visahero__prices { display: grid; align-self: end; gap: 17px; padding: 25px; border-radius: 24px; background: rgb(255 255 255 / .1); box-shadow: var(--dsv3-shadow-md); backdrop-filter: blur(14px); }.dsv3-visahero__prices ul { display: grid; margin: 0; padding: 0; list-style: none; }.dsv3-visahero__prices li { display: grid; min-width: 0; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 12px; padding: 12px 0; box-shadow: 0 1px 0 rgb(255 255 255 / .12); }.dsv3-visahero__prices li:last-child { box-shadow: none; }.dsv3-visahero__prices li > strong { min-width: 0; font-size: .7rem; line-height: 1.35; }.dsv3-visahero__prices li > span { display: grid; min-width: 68px; gap: 2px; color: rgb(var(--dsv3-primary-100)); font-size: .72rem; font-weight: 800; text-align: right; }.dsv3-visahero__prices li small { color: rgb(255 255 255 / .52); font-size: .52rem; font-weight: 650; text-transform: uppercase; }.dsv3-visahero__prices > small { color: rgb(255 255 255 / .55); font-size: .61rem; }
.dsv3-root .dsv3-visacrumbbar .dsv3-tourcrumbs { margin: 0; }
.dsv3-visawork, .dsv3-visastatus { min-height: 70vh; padding-block: 46px 88px; background: var(--dsv3-gray-50); }
.dsv3-visajourney { margin-bottom: 46px; padding: 17px 23px; border-radius: 22px; background: #fff; box-shadow: var(--dsv3-shadow-xs); }.dsv3-visajourney ol { position: relative; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 0; padding: 0; list-style: none; }.dsv3-visajourney ol::before { position: absolute; top: 17px; right: 16%; left: 16%; height: 2px; background: rgb(var(--dsv3-gray-200)); content: ""; }.dsv3-visajourney li { position: relative; z-index: 1; display: grid; justify-items: center; gap: 8px; color: var(--dsv3-muted); text-align: center; }.dsv3-visajourney li > span { display: grid; width: 35px; height: 35px; place-items: center; border-radius: 50%; background: rgb(var(--dsv3-gray-100)); box-shadow: 0 0 0 7px #fff; font-size: .68rem; font-weight: 800; }.dsv3-visajourney li > strong { font-size: .65rem; }.dsv3-visajourney li[data-state="current"] > span, .dsv3-visajourney li[data-state="complete"] > span { color: #fff; background: rgb(var(--dsv3-primary-700)); }.dsv3-visajourney li[data-state="current"] > strong, .dsv3-visajourney li[data-state="complete"] > strong { color: var(--dsv3-ink); }
.dsv3-visasetup { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(110px,.42fr) minmax(110px,.42fr) auto; align-items: end; gap: 9px; margin-bottom: 19px; padding: 15px; border-radius: 21px; background: #fff; box-shadow: var(--dsv3-shadow-sm); }.dsv3-visasetup .dsv3-btn { min-height: 54px; }.dsv3-visasetup > p { grid-column: 1 / -1; margin: 3px 3px 0; color: var(--dsv3-muted); font-size: .64rem; line-height: 1.5; }
.dsv3-visaerror { margin: 0 0 16px; padding: 17px 20px; border-radius: 17px; color: rgb(112 32 26); background: rgb(255 237 235); font-size: .75rem; line-height: 1.55; }
.dsv3-visaform { display: grid; grid-template-columns: minmax(0,1fr) 350px; align-items: start; gap: 22px; }.dsv3-visaform__main { display: grid; gap: 12px; }.dsv3-visaform__aside { position: sticky; top: 158px; }
.dsv3-visaapplicant, .dsv3-visaconsents, .dsv3-visastatuscard, .dsv3-visastatussearch { margin: 0; padding: 28px; border: 0; border-radius: 23px; background: #fff; box-shadow: var(--dsv3-shadow-xs); }.dsv3-visaapplicant--error { box-shadow: inset 0 0 0 2px rgb(181 55 46 / .45),var(--dsv3-shadow-xs); }
.dsv3-visaapplicant legend { display: flex; align-items: center; gap: 10px; margin-bottom: 22px; padding: 0; font-size: 1.35rem; font-weight: 740; letter-spacing: -.035em; }.dsv3-visaapplicant legend span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; color: var(--dsv3-accent-strong); background: var(--dsv3-soft); font-size: .62rem; }.dsv3-visaapplicant__rule { margin: -9px 0 18px; color: var(--dsv3-muted); font-size: .66rem; line-height: 1.5; }
.dsv3-visafields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }.dsv3-visafield { display: grid; min-width: 0; gap: 7px; }.dsv3-visafield > span { padding-left: 3px; color: var(--dsv3-muted); font-size: .63rem; font-weight: 700; }.dsv3-visafield input, .dsv3-visafield select { width: 100%; min-height: 54px; padding: 0 14px; border: 0; border-radius: 14px; outline: 0; color: var(--dsv3-ink); background: rgb(var(--dsv3-gray-100)); }.dsv3-visafield input:focus, .dsv3-visafield select:focus { background: var(--dsv3-soft); box-shadow: inset 0 0 0 2px rgb(var(--dsv3-primary-300)); }
.dsv3-visaphone { display: grid; grid-template-columns: 110px minmax(0,1fr); gap: 8px; }
.dsv3-visaguardian, .dsv3-visaapplicant__contact { margin-top: 18px; padding: 19px; border-radius: 18px; background: var(--dsv3-soft); }.dsv3-visaguardian[hidden] { display: none; }.dsv3-visaguardian > p, .dsv3-visaapplicant__contact > p { margin: 10px 0 0; color: var(--dsv3-muted); font-size: .65rem; line-height: 1.5; }
.dsv3-visacheck, .dsv3-visaconsent { display: flex; min-height: 54px; align-items: flex-start; gap: 10px; cursor: pointer; }.dsv3-visacheck { margin-top: 16px; padding: 12px 14px; border-radius: 15px; background: rgb(var(--dsv3-gray-100)); }.dsv3-visacheck input, .dsv3-visaconsent input { width: 19px; height: 19px; flex: none; margin: 1px 0 0; accent-color: rgb(var(--dsv3-primary-700)); }.dsv3-visacheck strong, .dsv3-visacheck small { display: block; }.dsv3-visacheck strong { font-size: .72rem; }.dsv3-visacheck small { margin-top: 3px; color: var(--dsv3-muted); font-size: .63rem; }
.dsv3-visaconsents legend { margin-bottom: 20px; padding: 0; font-size: 1.25rem; font-weight: 740; letter-spacing: -.03em; }.dsv3-visaconsent { min-height: 62px; padding: 11px 0; color: var(--dsv3-muted); font-size: .7rem; line-height: 1.5; box-shadow: 0 1px 0 rgb(var(--dsv3-gray-200)); }.dsv3-visaconsents > p { margin: 17px 0 0; color: var(--dsv3-muted); font-size: .66rem; }.dsv3-visaconsents a { display: inline-flex; align-items: center; gap: 5px; color: var(--dsv3-accent-strong); font-weight: 750; }
.dsv3-visasubmit { width: 100%; min-height: 58px; }
.dsv3-visaprice { display: grid; gap: 12px; padding: 25px; border-radius: 23px; color: #fff; background: radial-gradient(circle at 90% 6%,rgb(var(--dsv3-primary-300) / .22),transparent 28%),linear-gradient(145deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-800))); box-shadow: var(--dsv3-shadow-md); }.dsv3-visaprice .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }.dsv3-visaprice h2 { margin: 2px 0 6px; font-size: 1.7rem; line-height: .95; letter-spacing: -.04em; }.dsv3-visaprice > p { min-height: 18px; margin: 0; color: rgb(255 255 255 / .56); font-size: .65rem; }.dsv3-visaprice > div { display: grid; gap: 5px; margin-top: 7px; padding: 17px; border-radius: 16px; background: rgb(255 255 255 / .09); }.dsv3-visaprice > div span { color: rgb(255 255 255 / .55); font-size: .62rem; }.dsv3-visaprice > div strong { color: rgb(var(--dsv3-primary-200)); font-size: 2rem; line-height: 1; }.dsv3-visaprice > small { color: rgb(255 255 255 / .55); font-size: .63rem; line-height: 1.5; }
.dsv3-visaempty { min-height: 60vh; padding-block: 80px; background: var(--dsv3-gray-50); }.dsv3-visaempty h1 { max-width: 12ch; font-size: clamp(3.5rem,7vw,7rem); line-height: .87; letter-spacing: -.06em; }
.dsv3-visastatus .dsv3-checkout__head > p { display: block; max-width: 62ch; line-height: 1.6; }.dsv3-visastatussearch { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 9px; max-width: 820px; margin-bottom: 20px; }.dsv3-visastatussearch .dsv3-btn { min-height: 54px; }
.dsv3-visastatusgrid { display: grid; gap: 12px; }.dsv3-visastatuscard header { display: flex; align-items: start; justify-content: space-between; gap: 20px; }.dsv3-visastatuscard h2 { margin: 7px 0 0; font-size: 1.85rem; line-height: .96; letter-spacing: -.04em; }.dsv3-visastatusbadge { padding: 8px 12px; border-radius: var(--dsv3-pill); color: var(--dsv3-accent-strong); background: var(--dsv3-soft); font-size: .63rem; font-weight: 750; }.dsv3-visastatusbadge[data-status="APPROVED"] { color: rgb(16 104 70); background: rgb(225 249 237); }.dsv3-visastatusbadge[data-status="REJECTED"] { color: rgb(139 43 37); background: rgb(255 237 235); }
.dsv3-visatracking { display: inline-grid; gap: 3px; margin-top: 20px; padding: 11px 14px; border-radius: 13px; background: rgb(var(--dsv3-gray-100)); }.dsv3-visatracking small { color: var(--dsv3-muted); font-size: .6rem; }.dsv3-visatracking strong { letter-spacing: .07em; }.dsv3-visastatusnote { padding: 13px 15px; border-radius: 14px; color: var(--dsv3-muted); background: var(--dsv3-soft); font-size: .68rem; }
.dsv3-visastatuscard ul { display: grid; gap: 7px; margin: 22px 0 0; padding: 0; list-style: none; }.dsv3-visadocument { display: grid; min-height: 70px; grid-template-columns: minmax(0,1fr) minmax(190px,.7fr) auto; align-items: center; gap: 10px; padding: 10px 13px; border-radius: 15px; background: rgb(var(--dsv3-gray-50)); }.dsv3-visadocument strong, .dsv3-visadocument small { display: block; }.dsv3-visadocument strong { font-size: .74rem; }.dsv3-visadocument small { margin-top: 3px; color: var(--dsv3-muted); font-size: .62rem; }.dsv3-visadocument input { min-width: 0; font-size: .65rem; }.dsv3-visadocument .visa-document__message { grid-column: 1 / -1; color: var(--dsv3-muted); font-size: .64rem; }

/* Region and holiday-type discovery pages. */
.dsv3-regionhero { position: relative; min-height: 590px; overflow: hidden; color: #fff; background: rgb(var(--dsv3-primary-950)); }
.dsv3-regionhero > .dsv3-destinationmedia { position: absolute; inset: 0; }
.dsv3-regionhero > .dsv3-destinationmedia img { width: 100%; height: 100%; object-fit: cover; }
.dsv3-regionhero__wash { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg,rgb(4 33 31 / .97),rgb(4 33 31 / .73) 54%,rgb(4 33 31 / .3)),linear-gradient(0deg,rgb(4 33 31 / .62),transparent 55%); }
.dsv3-regionhero__inner { position: relative; z-index: 2; display: grid; min-height: 590px; grid-template-columns: minmax(0,1fr) minmax(330px,410px); align-items: end; gap: clamp(45px,8vw,105px); padding-block: 75px; }
.dsv3-regionhero__crumbs ol { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: 7px; margin: 0 0 48px; padding: 0; list-style: none; color: rgb(255 255 255 / .62); font-size: .7rem; }
.dsv3-regionhero__crumbs li { display: inline-flex; min-width: 0; align-items: center; gap: 7px; }
.dsv3-regionhero__crumbs a:hover { color: #fff; }
.dsv3-regionhero .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); }
.dsv3-regionhero h1 { max-width: 11ch; margin: 12px 0 0; font-size: clamp(4rem,7.7vw,7.3rem); font-weight: 500; line-height: .87; letter-spacing: -.068em; }
.dsv3-regionhero__inner > div:first-child > p { max-width: 58ch; margin: 23px 0 0; color: rgb(255 255 255 / .73); font-size: 1rem; line-height: 1.65; }
.dsv3-regionhero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 28px; }
.dsv3-regionhero__quiet { color: rgb(255 255 255 / .72); font-size: .76rem; font-weight: 700; }
.dsv3-regionhero__side { display: grid; align-self: end; gap: 8px; }
.dsv3-regionhero__experience { position: relative; min-height: 285px; overflow: hidden; border-radius: 23px; color: #fff; box-shadow: var(--dsv3-shadow-lg); }
.dsv3-regionhero__experience > .dsv3-destinationmedia, .dsv3-regionhero__experience > span { position: absolute; inset: 0; }
.dsv3-regionhero__experience > span { background: linear-gradient(0deg,rgb(3 27 25 / .96),transparent 72%); }
.dsv3-regionhero__experience > div { position: absolute; z-index: 2; right: 18px; bottom: 18px; left: 18px; }
.dsv3-regionhero__experience small, .dsv3-regionhero__experience strong, .dsv3-regionhero__experience em { display: block; }
.dsv3-regionhero__experience small { color: rgb(255 255 255 / .68); font-size: .68rem; }
.dsv3-regionhero__experience strong { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 12px; margin-top: 7px; font-size: 1.2rem; line-height: 1.15; }
.dsv3-regionhero__experience em { margin-top: 7px; color: rgb(255 255 255 / .64); font-size: .65rem; font-style: normal; }
.dsv3-regionhero__stats { display: grid; align-self: end; gap: 7px; }
.dsv3-regionhero__stats[data-with-experience="true"] { grid-template-columns: repeat(3,minmax(0,1fr)); }
.dsv3-regionhero__stats[data-with-experience="true"] .dsv3-regionhero__stat { min-height: 86px; grid-template-columns: 1fr; align-content: center; justify-items: start; gap: 4px; padding: 12px; }
.dsv3-regionhero__stats[data-with-experience="true"] .dsv3-regionhero__stat strong { font-size: 1.85rem; }
.dsv3-regionhero__stats[data-with-experience="true"] .dsv3-regionhero__stat span { font-size: .58rem; }
.dsv3-regionhero__stats[data-with-experience="true"] .dsv3-regionhero__stat svg { display: none; }
.dsv3-regionhero__stat { display: grid; min-height: 94px; grid-template-columns: 88px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 15px 18px; border-radius: 19px; background: rgb(255 255 255 / .11); backdrop-filter: blur(13px); }
.dsv3-regionhero__stat strong { color: rgb(var(--dsv3-primary-200)); font-size: 2.35rem; font-weight: 500; line-height: 1; letter-spacing: -.06em; }
.dsv3-regionhero__stat span { color: rgb(255 255 255 / .72); font-size: .73rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.dsv3-regionhero__stat svg { color: rgb(var(--dsv3-primary-200)); }
.dsv3-regiongrid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 13px; }
.dsv3-regiongrid .dsv3-destinationcard { min-height: 300px; }
.dsv3-regionrail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(270px,31%); gap: 13px; overflow-x: auto; padding: 2px 1px 20px; scroll-snap-type: x mandatory; }
.dsv3-regionpage .dsv3-destinationsection:nth-of-type(even) { background: rgb(255 255 255 / .52); }
.dsv3-holidaytypepage .dsv3-regionhero__stats { align-self: end; }
.dsv3-holidaytypepage .dsv3-regionhero__stat { min-height: 142px; grid-template-columns: 112px minmax(0,1fr) auto; }
.dsv3-holidaytypepage .dsv3-regionhero__stat strong { font-size: 3.4rem; }

@media (max-width: 1080px) {
  .dsv3-mainhead__inner { grid-template-columns: 112px minmax(230px,1fr) auto; }
  .dsv3-mainnav { display: none; }
  .dsv3-regions { overflow-x: auto; scrollbar-width: none; }
  .dsv3-hero__inner { grid-template-columns: 1fr .8fr; gap: 38px; }
  .dsv3-holiday__tabs { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 172px; }
  .dsv3-vibes__cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dsv3-destinationgrid, .dsv3-continent__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dsv3-az__groups { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .dsv3-desthero__inner { grid-template-columns: minmax(0,1fr) minmax(320px,.72fr); gap: 38px; }
  .dsv3-catalogue__grid { grid-template-columns: 240px minmax(0,1fr); grid-template-areas: "cover copy" "download download"; gap: 24px 36px; }.dsv3-catalogue__cover { min-height: 460px; }.dsv3-catalogue__download { grid-template-columns: 52px minmax(0,1fr); }.dsv3-catalogue__download > p,.dsv3-catalogue__download .dsv3-btn,.dsv3-catalogue__download .dsv3-guide__status { grid-column: 1 / -1; grid-row: auto; }
  .dsv3-gatewaygrid { grid-template-columns: repeat(auto-fit,minmax(180px,220px)); }
  .dsv3-home-regiongrid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .dsv3-listingsearch { grid-template-columns: repeat(2,minmax(0,1fr)) auto; }
  .dsv3-listingsearch > .dsv3-btn { grid-column: 3; grid-row: 1 / 3; }
  .dsv3-tourgrid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dsv3-cruisefilters { grid-template-columns: 1fr 1fr; }
  .dsv3-cruisefilters > .dsv3-btn { grid-column: 1 / -1; }
  .dsv3-regiongrid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .dsv3-regionhero__inner { grid-template-columns: minmax(0,1fr) minmax(290px,.65fr); gap: 34px; }
  .dsv3-filter__form { grid-template-columns: repeat(3,minmax(0,1fr)); }
  /* 820px kabulünde dört alanlı arama ile 78px detay düğmesi aynı satıra sıkışıp Ara'nın üstüne
     biniyordu. Tablet, alanları iki sütuna indirir; detay düğmesi ve açılan panel ayrı akış
     satırlarına geçer. Böylece görünür ürün sırası değişmeden her hedef tek başına kalır. */
  .dsv3-hotelcontrols { grid-template-columns: 1fr; }
  .dsv3-hotelcontrols > .dsv3-hotelsearch { grid-column: 1; grid-row: 1; border-radius: 18px 18px 0 0; }
  .dsv3-hotelsearch { grid-template-columns: 1fr 1fr; gap: 1px; padding: 10px; }
  .dsv3-hotelcontrols > .dsv3-hotelfilter > summary { grid-column: 1; grid-row: 2; width: 58px; min-width: 58px; min-height: 58px; justify-self: end; border-radius: 0 0 18px 18px; }
  .dsv3-hotelcontrols > .dsv3-hotelfilter > .dsv3-filter__reveal { grid-column: 1; grid-row: 3; }
  .dsv3-tourdetail { grid-template-columns: minmax(0,1fr) 300px; gap: 25px; }
  .dsv3-activitygrid { grid-template-columns: repeat(2,minmax(0,1fr)); }.dsv3-activitycard:nth-child(7n + 1), .dsv3-activitycard:nth-child(7n + 5) { grid-column: auto; }
  .dsv3-activityhero__inner { grid-template-columns: minmax(0,1fr) 300px; gap: 30px; }.dsv3-activityorder { grid-template-columns: 1fr 1fr; }
  .dsv3-auth { grid-template-columns: minmax(330px,.8fr) minmax(470px,1.2fr); }
  .dsv3-auth__story { padding: 36px; }
  .dsv3-checkout__layout, .dsv3-cart__layout { grid-template-columns: minmax(0,1fr) 300px; }
  .dsv3-safarihero__inner { grid-template-columns: minmax(0,1fr) 300px; gap: 35px; }.dsv3-safariform { grid-template-columns: minmax(0,1fr) 300px; }.dsv3-safaricamps { grid-template-columns: 1fr; }.dsv3-safaricamp { min-height: 105px; }
  .dsv3-visahero__inner { grid-template-columns: minmax(0,1fr) 300px; gap: 35px; }.dsv3-visaform { grid-template-columns: minmax(0,1fr) 300px; }
}

/* 14 inç dizüstü görünümünde kimlik akışı tek ekranlık bir ürün yüzeyidir. */
@media (min-width: 781px) and (max-height: 960px) {
  html.dsv3-auth-page, body.dsv3-auth-page { height: 100%; overflow: hidden; }
  .dsv3-auth, .dsv3-auth__story { height: 100%; min-height: 0; overflow: hidden; }
  .dsv3-auth__story { align-content: end; padding: clamp(24px,3.5vw,42px); }
  .dsv3-auth__brand { top: 24px; left: clamp(24px,3.5vw,42px); width: min(220px,19vw); }
  .dsv3-auth__story h2 { margin: 10px 0 13px; font-size: clamp(2.55rem,4.4vw,3.9rem); }
  .dsv3-auth__story > div > p { font-size: .78rem; line-height: 1.45; }
  .dsv3-auth__story ul { gap: 5px; margin-top: 15px; }
  .dsv3-auth__story li { min-height: 51px; grid-template-columns: 34px minmax(0,1fr); padding: 7px 10px; border-radius: 14px; }
  .dsv3-auth__story li strong { font-size: .72rem; }
  .dsv3-auth__story li small { margin-top: 1px; font-size: .59rem; line-height: 1.3; }
  .dsv3-auth__panel { height: 100%; min-height: 0; align-items: safe center; justify-items: center; overflow-x: hidden; overflow-y: auto; padding: 14px clamp(24px,4vw,52px); overscroll-behavior: contain; }
  .dsv3-auth__card { width: min(100%,440px); }
  .dsv3-auth__tabs { margin-bottom: 14px; padding: 4px; }
  .dsv3-auth__tabs a { min-height: 36px; }
  .dsv3-auth__card header h1 { font-size: clamp(2.35rem,3.5vw,3.4rem); }
  .dsv3-auth__card header p { margin: 7px 0 13px; font-size: .73rem; line-height: 1.4; }
  .dsv3-auth__form { gap: 7px; }
  .dsv3-auth__field { gap: 4px; }
  .dsv3-auth__field input { min-height: 43px; border-radius: 12px; }
  .dsv3-auth__options { margin: 0 1px 2px; }
  .dsv3-auth__form > .dsv3-btn { min-height: 44px; margin-top: 0; }
  .dsv3-auth__passwordnote { margin-top: -2px; font-size: .59rem; }
  .dsv3-auth__social { margin-top: 11px; }
  .dsv3-auth__social > p { margin-bottom: 7px; }
  .dsv3-auth__social > div { gap: 5px; }
  .dsv3-auth__sociallink { min-height: 40px; border-radius: 12px; }
  .dsv3-auth__guest { margin-top: 8px; }
  .dsv3-auth__switch { margin-top: 4px; }
}

@media (max-width: 780px) {
  .dsv3-prerequest .prerequest__fields { grid-template-columns: 1fr 1fr; }
  .dsv3-prerequest .prerequest__fields > .field:first-child { grid-column: 1 / -1; }
  .dsv3-prerequest .prerequest__actions { grid-template-columns: 1fr; align-items: stretch; }
  .dsv3-prerequest .prerequest__actions .btn { width: 100%; }
  .dsv3-countryexplorer__top { grid-template-columns: 1fr; gap: 20px; padding: 23px 18px; }
  .dsv3-countryregions, .dsv3-countryletters, .dsv3-countryaz { padding-inline: 18px; }
  .dsv3-countryletter { grid-template-columns: 42px minmax(0,1fr); gap: 10px; }
  .dsv3-countryletter__links { grid-template-columns: 1fr; }
  .dsv3-directoryfeatured { grid-template-columns: 1fr 1fr; grid-template-rows: 300px 220px 220px; grid-auto-rows: 220px; }
  .dsv3-directoryregion:first-child { grid-column: span 2; grid-row: auto; }
  .dsv3-directoryregion:nth-child(4) { grid-column: span 2; }
  .dsv3-shell { width: min(calc(100% - 28px),1240px); }
  .dsv3-utility, .dsv3-mainhead { display: none; }
  .dsv3-mobilebar { display: grid; min-height: 62px; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 14px; background: #fff; box-shadow: 0 1px 0 rgb(0 0 0 / .06); }
  .dsv3-mobilebar .dsv3-logo { grid-column: 2; width: 108px; }
  .dsv3-mobilebar__actions { grid-column: 3; display: flex; justify-content: end; gap: 4px; }
  .dsv3-mobilebar .dsv3-iconbtn { min-height: 44px; width: 44px; background: transparent; }
  .dsv3-mobilemenu { position: fixed; z-index: 100; inset: 0; display: block; overflow: auto; color: var(--dsv3-ink); background: #fff; animation: dsv3-drawer-in .3s cubic-bezier(.22,.78,.2,1) both; }
  .dsv3-mobilemenu[hidden] { display: none; }
  .dsv3-mobilemenu__head { position: sticky; z-index: 2; top: 0; display: grid; min-height: 66px; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 14px; background: rgb(255 255 255 / .94); backdrop-filter: blur(14px); }
  .dsv3-mobilemenu__head .dsv3-logo { grid-column: 2; width: 106px; }
  .dsv3-mobilemenu__close { grid-column: 3; justify-self: end; }
  .dsv3-mobilemenu__style { grid-column: 1; grid-row: 1; display: inline-flex; width: max-content; min-height: 45px; align-items: center; gap: 5px; padding: 0 8px 0 0; border: 0; color: inherit; background: transparent; font-size: .78rem; font-weight: 650; }
  .dsv3-mobilemenu__style svg { transition: transform .28s cubic-bezier(.22,.78,.2,1); }
  .dsv3-mobilemenu__style[aria-expanded="true"] svg { transform: rotate(180deg); }
  .dsv3-mobilemenu__panel[hidden] { display: none; }
  .dsv3-mobilemenu__body { padding: 22px 14px max(32px,env(safe-area-inset-bottom)); }
  .dsv3-mobilemenu__search { display: flex; width: 100%; min-height: 52px; align-items: center; gap: 10px; padding: 0 15px; border: 0; border-radius: var(--dsv3-pill); color: inherit; background: var(--dsv3-gray-50); font-size: .84rem; text-align: left; }
  .dsv3-mobilemenu__primary { display: grid; margin-top: 16px; }
  .dsv3-mobilemenu__primary a { display: flex; min-height: 50px; align-items: center; justify-content: space-between; font-size: 1rem; font-weight: 600; }
  .dsv3-mobilemenu__regions { margin-top: 24px; }
  .dsv3-mobilemenu__region { border-top: 1px solid var(--dsv3-line); }
  .dsv3-mobilemenu__region > button { display: flex; width: 100%; min-height: 54px; align-items: center; justify-content: space-between; padding: 0; border: 0; color: var(--dsv3-ink); background: transparent; appearance: none; font-weight: 650; text-align: left; }
  .dsv3-mobilemenu__region > button svg { transition: transform .28s ease; }
  .dsv3-mobilemenu__region > button[aria-expanded="true"] svg { transform: rotate(180deg); }
  .dsv3-mobilemenu__regioncontent { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .3s cubic-bezier(.22,.78,.2,1); }
  .dsv3-mobilemenu__region > button[aria-expanded="true"] + .dsv3-mobilemenu__regioncontent { grid-template-rows: 1fr; }
  .dsv3-mobilemenu__regioninner { min-height: 0; overflow: hidden; }
  .dsv3-mobilemenu__countries { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 12px; }
  .dsv3-mobilemenu__country { position: relative; isolation: isolate; display: flex; flex: 0 0 148px; min-height: 112px; align-items: end; overflow: hidden; padding: 12px; border-radius: 14px; color: #fff; background: rgb(var(--dsv3-primary-900)); }
  .dsv3-mobilemenu__countrymedia, .dsv3-mobilemenu__countrymedia img { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .dsv3-mobilemenu__country::after { position: absolute; z-index: 1; inset: 0; background: linear-gradient(0deg,rgb(3 28 26 / .9),rgb(3 28 26 / .08) 75%); content: ""; }
  .dsv3-mobilemenu__country strong { position: relative; z-index: 2; min-width: 0; font-size: .84rem; line-height: 1.2; }
  .dsv3-mobilemenu__country--text { min-height: 52px; align-items: center; color: var(--dsv3-ink); background: var(--dsv3-soft); }
  .dsv3-mobilemenu__country--text::after { display: none; }
  .dsv3-mobilemenu__experiences { display: grid; gap: 2px; padding: 5px 0 14px; }
  .dsv3-mobilemenu__experiences a { display: flex; min-height: 42px; align-items: center; justify-content: space-between; gap: 8px; font-size: .78rem; }
  .dsv3-mobilemenu__club { margin-top: 24px; padding: 21px; border-radius: 20px; color: #fff; background: linear-gradient(135deg,rgb(var(--dsv3-primary-950)),rgb(var(--dsv3-primary-800))); }
  .dsv3-mobilemenu__club img { width: 142px; height: auto; object-fit: contain; object-position: left center; }
  .dsv3-mobilemenu__club strong { display: block; margin-top: 18px; font-size: 1.45rem; }
  .dsv3-mobilemenu__club p { margin: 7px 0 15px; color: rgb(255 255 255 / .7); font-size: .75rem; line-height: 1.45; }
  .dsv3-mobilemenu__footer { margin-top: 18px; }
  .dsv3-mobilemenu__footer .dsv3-social { margin-top: 16px; }
  .dsv3-mobilemenu__panel--style { padding: 20px 14px 0; }
  .dsv3-stylepicker fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
  .dsv3-stylepicker legend { padding: 0; font-size: 1.55rem; font-weight: 650; letter-spacing: -.035em; }
  .dsv3-stylepicker fieldset > p { margin: 7px 0 17px; color: var(--dsv3-muted); font-size: .84rem; }
  .dsv3-stylepicker__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; padding-bottom: 104px; }
  .dsv3-stylecard { position: relative; min-width: 0; overflow: hidden; border-radius: 16px; color: #fff; background: rgb(var(--dsv3-primary-900)); aspect-ratio: 4 / 3; }
  .dsv3-stylecard input { position: absolute; z-index: 3; top: 10px; right: 10px; width: 19px; height: 19px; margin: 0; accent-color: rgb(var(--dsv3-primary-300)); }
  .dsv3-stylecard__media, .dsv3-stylecard__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .dsv3-stylecard__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg,rgb(3 28 26 / .9),transparent 72%); }
  .dsv3-stylecard strong { position: absolute; z-index: 2; right: 10px; bottom: 10px; left: 10px; font-size: .9rem; }
  .dsv3-stylecard:has(input:checked) { box-shadow: inset 0 0 0 3px rgb(var(--dsv3-primary-300)); }
  .dsv3-stylepicker__foot { position: sticky; z-index: 4; right: -14px; bottom: 0; left: -14px; display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-inline: -14px; padding: 13px 14px max(13px,env(safe-area-inset-bottom)); background: rgb(255 255 255 / .96); box-shadow: 0 -12px 30px rgb(5 46 43 / .09); backdrop-filter: blur(14px); }
  .dsv3-stylepicker__foot output { color: var(--dsv3-muted); font-size: .75rem; white-space: nowrap; }
  .dsv3-stylepicker__foot .dsv3-btn { min-height: 44px; padding-inline: 15px; font-size: .76rem; }
  .dsv3-mobilesearch { position: fixed; z-index: 110; inset: 0; overflow: auto; color: var(--dsv3-ink); background: #fff; animation: dsv3-drawer-in .28s cubic-bezier(.22,.78,.2,1) both; }
  .dsv3-mobilesearch[hidden] { display: none; }
  .dsv3-mobilesearch__head { position: sticky; z-index: 3; top: 0; display: grid; min-height: 66px; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 14px; background: rgb(255 255 255 / .95); box-shadow: 0 1px 0 var(--dsv3-line); backdrop-filter: blur(14px); }
  .dsv3-mobilesearch__head .dsv3-logo { grid-column: 2; width: 106px; }
  .dsv3-mobilesearch__head button { grid-column: 3; justify-self: end; }
  .dsv3-mobilesearch__body { padding: 18px 14px max(38px,env(safe-area-inset-bottom)); }
  .dsv3-mobilesearch__form { display: grid; min-height: 54px; grid-template-columns: 22px minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 0 5px 0 15px; border-radius: var(--dsv3-pill); background: var(--dsv3-gray-50); }
  .dsv3-mobilesearch__form:focus-within { box-shadow: 0 0 0 3px rgb(var(--dsv3-primary-100)); }
  .dsv3-mobilesearch__form input { min-width: 0; height: 100%; padding: 0; border: 0; outline: 0; background: transparent; }
  .dsv3-mobilesearch__form .dsv3-btn { min-height: 44px; }
  .dsv3-mobilesearch__group { margin-top: 27px; }
  .dsv3-mobilesearch__group h2 { margin: 0 0 11px; color: var(--dsv3-muted); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
  .dsv3-mobilesearch__chips { display: flex; flex-wrap: wrap; gap: 7px; }
  .dsv3-mobilesearch__chips a { padding: 9px 12px; border-radius: var(--dsv3-pill); background: var(--dsv3-soft); font-size: .79rem; }
  .dsv3-mobilesearch__products { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  .dsv3-mobilesearch__list { display: grid; }
  .dsv3-mobilesearch__list a { display: grid; min-width: 0; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 7px; padding: 9px 0; font-size: .78rem; line-height: 1.3; }
  .dsv3-mobilesearch__body[data-suggesting="true"] > :not(.dsv3-mobilesearch__form):not(.dsv3-livesuggest) { display: none; }
  .dsv3-mobilesearch__body > .dsv3-livesuggest { margin-top: 18px; padding: 4px; }
  @keyframes dsv3-drawer-in { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }
  .dsv3-hero, .dsv3-hero__inner { min-height: auto; }
  .dsv3-hero__inner { grid-template-columns: 1fr; gap: 34px; padding-block: 54px 62px; }
  .dsv3-hero h1 { font-size: clamp(2.8rem,12vw,4.2rem); }
  .dsv3-hero__stage { height: 390px; }
  .dsv3-hero__nextstage, .dsv3-hero__next { min-height: 74px; }
  .dsv3-holiday__card { grid-template-columns: 1fr; gap: 19px; padding: 20px; }
  .dsv3-holiday__visual { min-height: 330px; }
  .dsv3-holiday__tabs { grid-column: auto; grid-auto-columns: calc((100% - 8px)/2); scrollbar-width: none; }
  .dsv3-holiday__tabs::-webkit-scrollbar { display: none; }
  .dsv3-holiday__mobilecontrols { top: 12px; right: 12px; gap: 6px; }
  .dsv3-holiday__mobilecontrols button { width: 38px; height: 38px; padding: 0; }
  .dsv3-holiday__mobilecontrols button:disabled { opacity: .35; }
  .dsv3-holiday__mobilecontrols span { min-width: 48px; color: #fff; font-size: .68rem; font-variant-numeric: tabular-nums; }
  .dsv3-holiday--hint .dsv3-holiday__tabs { animation: dsv3-holiday-hint .82s cubic-bezier(.22,.78,.2,1); }
  @keyframes dsv3-holiday-hint { 0%,100% { transform: translateX(0); } 32% { transform: translateX(-18px); } 62% { transform: translateX(8px); } }
  .dsv3-sectionhead { align-items: start; flex-direction: column; gap: 13px; }
  .dsv3-sectionhead .dsv3-sectionlink { margin-top: 3px; }
  .dsv3-owned-safari__grid { grid-template-columns: 1fr; gap: 28px; }
  .dsv3-owned-safari__media { height: 390px; }
  .dsv3-safari-tiers { grid-template-columns: 1fr 1fr; }
  .dsv3-editorial { min-height: auto; grid-template-columns: 1fr; }
  .dsv3-editorial__visual { min-height: 360px; }
  .dsv3-editorial__copy { padding: 28px 22px 32px; }
  .dsv3-editorial__copy h2 { font-size: 2.65rem; }
  .dsv3-eventgrid { grid-template-columns: 1fr; }
  .dsv3-home-eventcard { min-height: 340px; }
  .dsv3-newsletter__panel { grid-template-columns: 1fr; gap: 30px; padding: 28px 22px; }
  .dsv3-newsletter__copy h2 { font-size: 3.25rem; }
  .dsv3-grid2 { gap: 10px; }
  .dsv3-grid2 .dsv3-product { min-height: 280px; }
  .dsv3-product h3 { font-size: 1rem; }
  .dsv3-dream__inner { grid-template-columns: 1fr; gap: 34px; }
  .dsv3-home-regiongrid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dsv3-home-regioncard { min-height: 240px; }
  .dsv3-visa-home__grid { grid-template-columns: 1fr; }
  .dsv3-visa-home__intro { padding-top: 78px; padding-left: 0; }
  .dsv3-dream h2 { font-size: 3.4rem; }
  .dsv3-spot__inner, .dsv3-club__panel { grid-template-columns: 1fr; }
  .dsv3-vibes__layout { grid-template-columns: 1fr; gap: 24px; }
  .dsv3-destinationrail { grid-auto-columns: 72%; }
  .dsv3-destinationgrid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dsv3-destinationcard { min-height: 285px; }
  .dsv3-destinationcard--compact { min-height: 220px; }
  .dsv3-az { padding: 20px 16px; }
  .dsv3-az__jump { top: 71px; overflow-x: auto; flex-wrap: nowrap; margin-inline: -5px; padding-inline: 5px; scrollbar-width: none; }
  .dsv3-az__groups { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dsv3-continent summary { min-height: 78px; padding: 16px; }
  .dsv3-continent__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dsv3-desthero, .dsv3-desthero__inner { min-height: auto; }
  .dsv3-desthero__inner { grid-template-columns: 1fr; gap: 35px; padding-block: 48px 58px; }
  .dsv3-desthero__crumbs ol { margin-bottom: 25px; }
  .dsv3-desthero h1 { font-size: clamp(3.2rem,14vw,5rem); }
  .dsv3-desthero__stage { height: 390px; }
  .dsv3-subnav, .dsv3-root:has(.dsv3-header[data-shrunk="true"]) .dsv3-subnav { top: 62px; }
  .dsv3-destinationeditorial__grid { grid-template-columns: 1fr; gap: 38px; }
  .dsv3-catalogue__grid { grid-template-columns: 1fr; grid-template-areas: "cover" "copy" "download"; gap: 28px; }.dsv3-catalogue__cover { width: min(100%,340px); min-height: 420px; justify-self: center; transform: none; }.dsv3-catalogue__copy h2 { font-size: 3rem; }.dsv3-catalogue__download { grid-template-columns: 52px minmax(0,1fr); }.dsv3-catalogue__download > p,.dsv3-catalogue__download .dsv3-btn,.dsv3-catalogue__download .dsv3-guide__status { grid-column: 1 / -1; grid-row: auto; }.dsv3-guidedialog { align-items: end; padding: 0; }.dsv3-guidedialog > section { padding: 25px 18px max(25px,env(safe-area-inset-bottom)); border-radius: 25px 25px 0 0; }.dsv3-guidedialog form > div { grid-template-columns: 1fr; }
  .dsv3-gatewaygrid { grid-template-columns: repeat(auto-fit,minmax(180px,220px)); }
  .dsv3-tourlisthead { min-height: auto; }
  .dsv3-tourlisthead__inner { min-height: 0; padding-block: 34px 26px; }
  .dsv3-tourlisthead h1, .dsv3-cruisehero h1 { font-size: clamp(3.1rem,13vw,5rem); }
  .dsv3-tourcontrols { grid-template-columns: 1fr; }
  .dsv3-tourcontrols > .dsv3-listingsearch { grid-column: 1; grid-row: 1; border-radius: 19px 19px 0 0; }
  .dsv3-tourcontrols > .dsv3-tourfilter > summary { grid-column: 1; grid-row: 2; min-height: 58px; border-radius: 0; }
  .dsv3-tourcontrols > .dsv3-tourfilter > .dsv3-filter__reveal { grid-column: 1; grid-row: 3; }
  .dsv3-listingsearch { grid-template-columns: 1fr 1fr; }
  .dsv3-listingsearch > .dsv3-btn { grid-column: 1 / -1; grid-row: auto; width: 100%; }
  .dsv3-listingfield:nth-of-type(odd) { box-shadow: none; }
  .dsv3-tourmonth__panel { left: 0; }
  .dsv3-tourtools { grid-template-columns: 1fr; align-items: stretch; }
  .dsv3-tourquickfilters { display: grid; grid-template-columns: 1fr 1fr; }
  .dsv3-tourquickfilters label { min-width: 0; }
  .dsv3-filter__form, .dsv3-filter__form--cruise { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dsv3-tourgrid { grid-template-columns: 1fr; gap: 13px; }
  .dsv3-tourcard { display: grid; grid-template-columns: minmax(150px,.85fr) minmax(0,1.15fr); }
  .dsv3-tourcard__media { align-self: start; width: 100%; height: auto; min-height: 0; aspect-ratio: 3 / 2; }
  .dsv3-cruisehero, .dsv3-cruisehero__inner { min-height: 540px; }
  .dsv3-cruisehero__inner { padding-block: 54px 76px; }
  .dsv3-cruisehero > .dsv3-destinationmedia img { object-position: 62% 24%; }
  .dsv3-cruisefilter { margin-top: -74px; }
  .dsv3-cruisefilters { grid-template-columns: 1fr; }
  .dsv3-cruisefilters > .dsv3-btn { grid-column: auto; width: 100%; }
  .dsv3-includedgrid,.dsv3-cruiseshipfacts { grid-template-columns: 1fr; }
  .dsv3-cruiseflightpanel { grid-template-columns: 1fr; gap: 12px; }
  .dsv3-cruisedate { grid-template-columns: 1fr; }.dsv3-cruisedate > .dsv3-btn { width: 100%; }.dsv3-cruisedate > p { grid-column: auto; }
  .dsv3-tourgallery > .dsv3-shell { height: 390px; grid-template-columns: 1.45fr 1fr; }
  .dsv3-tourgallery__cell--5 { display: none; }
  .dsv3-tourtitle__grid { grid-template-columns: 1fr; }
  .dsv3-tourtitle__marks { grid-row: 1; justify-content: end; }
  .dsv3-tourdetail { grid-template-columns: 1fr; padding-bottom: 118px; }
  .dsv3-tourbooking { display: none; }
  .dsv3-hotelsearch { grid-template-columns: 1fr 1fr; gap: 1px; }
  .dsv3-hotelsearch__where, .dsv3-hotelsearch__dates, .dsv3-hotelsearch__guests { min-height: 68px; box-shadow: 0 0 0 1px var(--dsv3-line); }
  .dsv3-hotelsearch > .dsv3-btn { min-height: 68px; border-radius: 0 13px 13px 0; }
  .dsv3-hotelfilter__form { grid-template-columns: 1fr; }
  .dsv3-hotelfilter .dsv3-filter__actions { grid-column: 1 / -1; }
  .dsv3-hotelgrid { grid-template-columns: 1fr 1fr; }
  .dsv3-staysearchcard { grid-template-columns: minmax(240px,.72fr) minmax(0,1.28fr); }
  .dsv3-hotelbrandhero__inner { grid-template-columns: minmax(0,1fr) 290px; gap: 35px; }
  .dsv3-stayhandover__card { grid-template-columns: minmax(0,1fr) 320px; gap: 30px; }
  .dsv3-hotelgallery > .dsv3-shell { height: 410px; grid-template-columns: 1.45fr 1fr; }
  .dsv3-hotelgallery__cell--5 { display: none; }
  .dsv3-hoteltitle__grid { grid-template-columns: 1fr; }
  .dsv3-hoteltitle__actions { grid-row: 1; justify-content: end; }
  .dsv3-hotelstay .hotel-searchbar { grid-template-columns: 1fr 1fr; gap: 1px; }
  .dsv3-hotelstay .hotel-searchbar__submit { min-height: 64px; }
  .dsv3-hotelbooking { display: none; }
  .dsv3-cityguide { grid-template-columns: 1fr; }
  .dsv3-cityguide > .dsv3-destinationmedia { min-height: 340px; }
  .dsv3-hotelbrandhero, .dsv3-hotelbrandhero__inner { min-height: 650px; }
  .dsv3-hotelbrandhero__inner { grid-template-columns: 1fr; align-content: end; gap: 25px; padding-block: 58px 34px; }
  .dsv3-hotelbrandhero__mark { min-height: 105px; grid-template-columns: minmax(0,1fr) auto; align-items: end; padding: 19px; }
  .dsv3-hotelbrandhero__mark span { grid-column: 1 / -1; }
  .dsv3-hotelbrandhero__mark strong { font-size: 1.45rem; }
  .dsv3-hotelbrandhero__mark small { margin-top: 0; }
  .dsv3-hotelbrandabout__grid { grid-template-columns: 1fr; gap: 28px; }
  .dsv3-stayhandover__card { min-height: 0; grid-template-columns: 1fr; }
  .dsv3-mobilebooking { position: fixed; z-index: 59; right: 0; bottom: 0; left: 0; display: grid; min-height: 76px; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 10px max(14px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left)); background: rgb(255 255 255 / .96); box-shadow: 0 -14px 32px rgb(5 46 43 / .13); backdrop-filter: blur(14px); }
  body:has(.dsv3-mobilebooking) .dsv3-floats { bottom: max(94px,calc(84px + env(safe-area-inset-bottom))); }
  .dsv3-mobilebooking small, .dsv3-mobilebooking strong { display: block; }
  .dsv3-mobilebooking small { color: var(--dsv3-muted); font-size: .65rem; }
  .dsv3-mobilebooking strong { margin-top: 3px; font-size: .9rem; }
  .dsv3-detailsection { scroll-margin-top: 124px; }
  .dsv3-vibes__intro { z-index: 6; top: 62px; margin-inline: -14px; padding: 20px 14px 15px; background: rgb(247 249 248 / .94); backdrop-filter: blur(14px); }
  .dsv3-vibes__intro h1 { max-width: none; font-size: 2.65rem; }
  .dsv3-vibes__intro > p { margin-top: 10px; font-size: .82rem; }
  .dsv3-values__grid { grid-template-columns: 1fr 1fr; }
  .dsv3-experiencegrid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .dsv3-experiencegrid .dsv3-destinationcard:nth-child(7n + 1), .dsv3-experiencegrid .dsv3-destinationcard:nth-child(7n + 6) { grid-column: auto; }
  .dsv3-experiencehero__inner { grid-template-columns: minmax(0,1fr) 300px; gap: 28px; }
  .dsv3-experiencegateway { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .dsv3-searchresults__grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .dsv3-regionhero, .dsv3-regionhero__inner { min-height: 680px; }
  .dsv3-regionhero__inner { grid-template-columns: 1fr; align-content: end; gap: 27px; padding-block: 62px 34px; }
  .dsv3-regionhero__crumbs ol { margin-bottom: 32px; }
  .dsv3-regionhero__stats { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
  .dsv3-regionhero__stat, .dsv3-holidaytypepage .dsv3-regionhero__stat { min-height: 92px; grid-template-columns: 1fr; align-content: center; justify-items: start; gap: 5px; padding: 13px; }
  .dsv3-regionhero__stat strong, .dsv3-holidaytypepage .dsv3-regionhero__stat strong { font-size: 2.25rem; }
  .dsv3-regionhero__stat span { font-size: .6rem; }
  .dsv3-regionhero__stat svg { display: none; }
  .dsv3-holidaytypepage .dsv3-regionhero__stats { grid-template-columns: minmax(0,1fr); }
  .dsv3-regiongrid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .dsv3-regionrail { grid-auto-columns: 72%; }
  .dsv3-notfound__grid { grid-template-columns: 1fr; }
  .dsv3-notfound__grid aside { display: none; }
  .dsv3-notfound__cities { grid-template-columns: 1fr 1fr; }
  .dsv3-assist__inner { grid-template-columns: 1fr 1fr; padding-block: 30px; }
  .dsv3-assist__copy { grid-column: 1 / -1; }
  .dsv3-footer__main { grid-template-columns: 1fr 1fr; gap: 30px 18px; }
  .dsv3-footer__brand { grid-column: 1 / -1; }
  .dsv3-footer__legalinner { align-items: start; flex-direction: column; }
}

@media (max-width: 520px) {
  .dsv3-prerequest { padding: 20px 16px; }
  .dsv3-prerequest .prerequest__fields { grid-template-columns: 1fr; }
  .dsv3-prerequest .prerequest__fields > .field:first-child { grid-column: auto; }
  .dsv3-activitysteps { gap: 3px; }.dsv3-activitysteps li { grid-template-columns: 27px minmax(0,1fr); gap: 5px; font-size: .56rem; }.dsv3-activitysteps li > span { width: 27px; height: 27px; }.dsv3-activitysteps li:not(:last-child)::after { top: 13px; }.dsv3-activitypurchase__step { margin-inline: -5px; padding: 17px 13px; border-radius: 20px; }.dsv3-activityslots__footer { align-items: stretch; flex-direction: column; }.dsv3-activityslots__footer input { width: 100%; }.dsv3-activityslots__footer .dsv3-btn { width: 100%; }.dsv3-activitycheckout__summary, .dsv3-activitycheckout__contact { padding: 16px 13px; }.dsv3-activitycheckout__contact { grid-template-columns: 1fr; }.dsv3-activitycheckout__contact .dsv3-field--wide, .dsv3-activitycheckout__error, .dsv3-activitycheckout__privacy, .dsv3-activitycheckout__contact > .dsv3-btn { grid-column: auto; }.dsv3-activitycheckout__phone { grid-column: auto; grid-template-columns: 95px minmax(0,1fr); }
  .dsv3-safari-tiers { grid-template-columns: 1fr; }
  .dsv3-shell { width: min(calc(100% - 22px),1240px); }
  .dsv3-section { padding-block: 58px; }
  .dsv3-notfound__hero { padding-block: 48px 58px; }
  .dsv3-notfound h1 { font-size: 3.65rem; }
  .dsv3-notfound__search { grid-template-columns: auto minmax(0,1fr); padding: 10px 12px; border-radius: 18px; }
  .dsv3-notfound__search .dsv3-btn { grid-column: 1 / -1; width: 100%; }
  .dsv3-notfound__actions { display: grid; grid-template-columns: 1fr; }
  .dsv3-notfound__actions .dsv3-btn { width: 100%; }
  .dsv3-notfound__cities { grid-template-columns: 1fr; }
  .dsv3-regionhero, .dsv3-regionhero__inner { min-height: 650px; }
  .dsv3-regionhero h1 { font-size: 3.7rem; }
  .dsv3-regionhero__inner > div:first-child > p { font-size: .83rem; }
  .dsv3-regionhero__actions { gap: 12px; }
  .dsv3-regionhero__actions .dsv3-btn { width: 100%; }
  .dsv3-regionhero__quiet { width: 100%; text-align: center; }
  .dsv3-regiongrid { gap: 7px; }
  .dsv3-regiongrid .dsv3-destinationcard { min-height: 230px; }
  .dsv3-regionrail { grid-auto-columns: 82%; }
  .dsv3-hero__inner { padding-block: 46px 56px; }
  .dsv3-hero__actions { display: grid; grid-template-columns: 1fr; }
  .dsv3-hero__actions .dsv3-btn { width: 100%; }
  .dsv3-hero__stage { height: 338px; }
  .dsv3-hero__cardcopy { right: 17px; bottom: 17px; left: 17px; }
  .dsv3-hero__cardcopy h2 { font-size: 1.34rem; }
  .dsv3-holiday__panel { padding: 19px; }
  .dsv3-holiday__panel h3 { font-size: 1.22rem; }
  .dsv3-holiday__bottom { align-items: start; flex-direction: column; }
  .dsv3-holiday__cta { max-width: 100%; white-space: normal; }
  .dsv3-holiday__flag { width: 66px; height: 44px; }
  .dsv3-rail { grid-auto-columns: 79%; }
  .dsv3-grid2 .dsv3-product { min-height: 245px; }
  .dsv3-newsletter__panel { padding: 23px 17px; border-radius: 22px; }
  .dsv3-newsletter__copy h2 { font-size: 2.75rem; }
  .dsv3-newsletter__form { padding: 15px; }
  .dsv3-newsletter__control { grid-template-columns: 20px minmax(0,1fr); padding: 10px 12px; border-radius: 17px; }
  .dsv3-newsletter__control .dsv3-btn { grid-column: 1 / -1; width: 100%; }
  .dsv3-product__copy { right: 13px; bottom: 14px; left: 13px; }
  .dsv3-dream h2 { font-size: 2.9rem; }
  .dsv3-dream__coordinate { display: none; }
  .dsv3-dream__form { grid-template-columns: 1fr; padding: 18px; }
  .dsv3-field--wide, .dsv3-formnote, .dsv3-formerror, .dsv3-consent, .dsv3-dream__submit { grid-column: auto; }
  .dsv3-visa-home__destinations { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .dsv3-visa-home__destinations a { min-height: 68px; gap: 7px; padding: 11px; font-size: .76rem; }
  .dsv3-club { padding-block: 58px; }
  .dsv3-club__panel { padding: 24px 20px; }
  .dsv3-clubintro { align-items: start; padding: 78px 12px 18px; }
  .dsv3-clubintro > section { padding: 24px 20px 22px; border-radius: 24px; }
  .dsv3-clubintro > section > img { width: 168px; height: 55px; }
  .dsv3-clubintro h2 { margin-top: 18px; font-size: 2.35rem; }
  .dsv3-clubintro__offer { gap: 10px; margin-bottom: 20px; }
  .dsv3-clubintro__offer p { font-size: .78rem; }
  .dsv3-clubintro__offer strong { font-size: 2.8rem; }
  .dsv3-destinationsection__aside { justify-items: start; }
  .dsv3-destinationrail { grid-auto-columns: 82%; }
  .dsv3-destinationgrid { grid-template-columns: 1fr 1fr; gap: 9px; }
  .dsv3-destinationcard { min-height: 245px; border-radius: 17px; }
  .dsv3-destinationcard--compact { min-height: 190px; }
  .dsv3-destinationcard__copy { right: 13px; bottom: 14px; left: 13px; }
  .dsv3-destinationcard__copy strong { font-size: .94rem; }
  .dsv3-destinationcard__copy small { font-size: .65rem; }
  .dsv3-az__groups { grid-template-columns: 1fr 1fr; gap: 28px 14px; }
  .dsv3-az__group a, .dsv3-az__disabled { min-height: 44px; }
  .dsv3-continent summary > span:last-child { font-size: .68rem; }
  .dsv3-continent__grid { grid-template-columns: 1fr 1fr; gap: 7px; padding: 0 7px 7px; }
  .dsv3-desthero__title { align-items: flex-start; flex-direction: column; }
  .dsv3-desthero__title img { width: 48px; height: 32px; }
  .dsv3-desthero h1 { font-size: 3.5rem; }
  .dsv3-desthero__stage { height: 350px; }
  .dsv3-desthero__preview { grid-template-columns: 88px minmax(0,1fr) auto; }
  .dsv3-desthero__storycopy strong { font-size: 1.16rem; }
  .dsv3-destinationeditorial h2 { font-size: 3rem; }
  .dsv3-guide { padding: 24px 20px; }
  .dsv3-gatewaygrid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .dsv3-gatewaygrid a { min-height: 96px; padding: 13px; }
  .dsv3-tourlisthead h1, .dsv3-cruisehero h1 { font-size: 3.35rem; }
  .dsv3-hotellisthead:not(.dsv3-hotellisthead--catalogue) { padding-top: 48px; }
  .dsv3-hotellisthead--catalogue, .dsv3-hotellisthead__inner { min-height: 650px; }
  .dsv3-hotellisthead__inner { padding-block: 48px 30px; }
  .dsv3-hotellisthead h1 { font-size: 3.25rem; }
  .dsv3-hotelbrandhero h1 { font-size: 4rem; }
  .dsv3-hotelbrandhero__inner > div:first-child > img { max-width: 145px; height: 44px; margin-top: 22px; }
  .dsv3-hotelbrandabout h2 { font-size: 3.5rem; }
  .dsv3-stayhandover { padding-block: 24px 62px; }
  .dsv3-stayhandover__card { margin-top: 20px; padding: 30px 18px; border-radius: 22px; }
  .dsv3-stayhandover h1 { font-size: 3.7rem; }
  .dsv3-stayhandover__actions { display: grid; width: 100%; grid-template-columns: 1fr; }
  .dsv3-stayhandover__actions .dsv3-btn { width: 100%; }
  .dsv3-hotelsearch { grid-template-columns: 1fr; gap: 1px; padding: 10px; }
  .dsv3-hotelcontrols { grid-template-columns: 1fr; }
  .dsv3-hotelcontrols > .dsv3-hotelsearch { grid-column: 1; grid-row: 1; border-radius: 18px 18px 0 0; }
  .dsv3-hotelcontrols > .dsv3-hotelfilter > summary { grid-column: 1; grid-row: 2; width: 58px; min-width: 58px; min-height: 58px; justify-self: end; border-radius: 0 0 18px 18px; }
  .dsv3-hotelcontrols > .dsv3-hotelfilter > .dsv3-filter__reveal { grid-column: 1; grid-row: 3; }
  .dsv3-hotelsearch > .dsv3-btn { width: 100%; min-height: 54px; border-radius: var(--dsv3-pill); }
  .dsv3-hotelsearch .range--summary .range__controls { min-height: 66px; }
  .dsv3-livesuggest--hotel { top: calc(100% + 6px); left: -10px; width: calc(100% + 20px); max-height: 58vh; }
  .dsv3-hotelsuggest__destinations > div,.dsv3-hotelsuggest__hotels > div { grid-template-columns: 1fr; }
  .dsv3-hotelfilter__form { grid-template-columns: 1fr; padding-inline: 15px; }
  .dsv3-hotelfilter__amenities .dsv3-hotelfilter__checks { grid-template-columns: 1fr; }
  .dsv3-hotelfilter .dsv3-filter__actions { display: grid; grid-template-columns: 1fr; }
  .dsv3-hotelgrid { grid-template-columns: 1fr; }
  .dsv3-staysearch__nationality { justify-content: space-between; padding-inline: 3px; }
  .dsv3-staysearchcard { grid-template-columns: 1fr; }
  .dsv3-staysearchcard__media { min-height: 245px; }
  .dsv3-staysearchcard__copy { padding: 19px; }
  .dsv3-hotelcard__media { height: 245px; }
  .dsv3-hotelgallery > .dsv3-shell { height: 330px; grid-template-columns: 1fr 1fr; grid-template-rows: 1.45fr .8fr; border-radius: 18px; }
  .dsv3-hotelgallery__cell--1 { grid-column: 1 / 3; grid-row: 1; }
  .dsv3-hotelgallery__cell--4, .dsv3-hotelgallery__cell--5 { display: none; }
  .dsv3-hoteltitle { padding-top: 20px; }
  .dsv3-hoteltitle__grid { margin-top: 20px; }
  .dsv3-hoteltitle__name { align-items: flex-start; flex-direction: column-reverse; gap: 10px; }
  .dsv3-hoteltitle__name h1 { font-size: 2.7rem; }
  .dsv3-hoteltitle__name img { max-width: 105px; height: 30px; }
  .dsv3-hoteltitle__actions { justify-content: start; }
  .dsv3-hoteltitle__actions .pageaction span, .dsv3-detailactions .pageaction span { display: none; }
  .dsv3-hoteltitle__actions .pageaction, .dsv3-detailactions .pageaction { width: 43px; padding: 0; justify-content: center; }
  .dsv3-hotelstay .hotel-searchbar { grid-template-columns: 1fr; padding: 10px; }
  .dsv3-hotelstay .hotel-searchbar__cell { min-height: 66px; box-shadow: 0 -1px 0 var(--dsv3-line); }
  .dsv3-hotelstay .hotel-searchbar__cell:first-child { box-shadow: none; }
  .dsv3-hotelstay .hotel-searchbar__submit { width: 100%; min-height: 52px; }
  .dsv3-facilities { grid-template-columns: 1fr 1fr; gap: 7px; }
  .dsv3-transfergrid { grid-template-columns: 1fr; }
  .dsv3-hotelmap iframe, .dsv3-hotelmap > img { height: 330px; }
  .dsv3-cityguide > .dsv3-destinationmedia { min-height: 300px; }
  .dsv3-cityguide--text ul { grid-template-columns: 1fr; }
  .dsv3-hotelreviews { grid-template-columns: 1fr; }
  .dsv3-hotelrail { grid-auto-columns: 82%; }
  .dsv3-hotelrooms iframe { min-height: 660px; }
  .dsv3-experienceindex__hero { padding-top: 52px; }
  .dsv3-experienceindex__hero h1 { font-size: 3.35rem; }
  .dsv3-experiencefilters { grid-template-columns: 1fr; }
  .dsv3-experiencefilter > div { position: static; margin-top: 7px; }
  .dsv3-experiencegrid { grid-template-columns: 1fr 1fr; gap: 9px; }
  .dsv3-experiencehero { min-height: auto; }
  .dsv3-experiencehero__inner { min-height: 650px; grid-template-columns: 1fr; align-content: end; gap: 24px; padding-block: 74px 34px; }
  .dsv3-experiencecrumbs li:last-child { display: none; }
  .dsv3-experiencehero h1 { max-width: 12ch; font-size: clamp(2.65rem,11vw,3.2rem); line-height: .88; letter-spacing: -.06em; }
  .dsv3-experiencehero__card { max-width: 520px; }
  .dsv3-experienceabout > .dsv3-shell { grid-template-columns: 1fr; gap: 24px; }
  .dsv3-experienceposts { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 78%; overflow-x: auto; padding-bottom: 9px; scroll-snap-type: x mandatory; }
  .dsv3-experiencepost { scroll-snap-align: start; }
  .dsv3-experiencegateway { grid-template-columns: 1fr 1fr; }
  .dsv3-experiencerail { grid-auto-columns: 82%; }
  .dsv3-searchpage { padding-block: 38px 64px; }
  .dsv3-searchpage__form { min-height: 62px; padding-left: 15px; }
  .dsv3-searchpage__form .dsv3-btn { min-height: 48px; padding-inline: 16px; }
  .dsv3-searchdiscovery { padding: 18px; border-radius: 20px; }
  .dsv3-searchdiscovery__destinations { grid-template-columns: 1fr 1fr; }
  .dsv3-searchdiscovery__products { grid-template-columns: 1fr; }
  .dsv3-searchresults__grid { grid-template-columns: 1fr 1fr; }
  .dsv3-activityindex__hero { padding-block: 48px 52px; }.dsv3-activityindex__hero .dsv3-tourcrumbs { margin-bottom: 34px; }.dsv3-activityindex__hero h1 { font-size: 3.5rem; }
  .dsv3-activitygrid { grid-template-columns: 1fr 1fr; gap: 8px; }.dsv3-activitycard { min-height: 300px; border-radius: 16px; }.dsv3-activitycard__body { padding: 16px; }.dsv3-activitycard__body > strong { font-size: 1.08rem; }
  .dsv3-activityhero { min-height: auto; }.dsv3-activityhero__inner { min-height: 660px; grid-template-columns: 1fr; align-content: end; gap: 24px; padding-block: 72px 32px; }.dsv3-activityhero .dsv3-activitycrumbs li:last-child { display: none; }.dsv3-activityhero h1 { max-width: 13ch; font-size: clamp(2.65rem,11vw,3.2rem); line-height: .88; }.dsv3-activitybooking { max-width: 520px; }
  .dsv3-activityphotos { height: 430px; grid-template-columns: 1.2fr .8fr; }.dsv3-activityphotos figure:nth-child(n + 4) { display: none; }.dsv3-activitydate, .dsv3-activityorder { grid-template-columns: 1fr; }.dsv3-activitydate .dsv3-btn, .dsv3-activityorder .dsv3-btn { width: 100%; }.dsv3-activityslots__group > div, .dsv3-activitycheckout__grid { grid-template-columns: 1fr; }
  .dsv3-activitybar { position: fixed; z-index: 64; right: 0; bottom: 0; left: 0; display: grid; min-height: 76px; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 9px max(14px,env(safe-area-inset-right)) max(9px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left)); background: rgb(255 255 255 / .96); box-shadow: 0 -15px 35px -28px rgb(5 46 43 / .6); backdrop-filter: blur(15px); }.dsv3-activitybar > span { min-width: 0; overflow: hidden; color: var(--dsv3-muted); font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }.dsv3-activitybar small, .dsv3-activitybar strong { display: block; }.dsv3-activitybar strong { margin-top: 2px; color: var(--dsv3-ink); font-size: .9rem; }.dsv3-activitybar .dsv3-btn { min-height: 48px; padding-inline: 15px; font-size: .72rem; }
  body:has(.dsv3-activitybar) .dsv3-floats { bottom: max(94px,calc(84px + env(safe-area-inset-bottom))); }
  body:has(.dsv3-activitybar) .dsv3-footer { padding-bottom: 78px; }
  .dsv3-iconicindex__intro { padding-block: 62px 70px; }.dsv3-iconicindex__intro h1 { font-size: 4.3rem; }.dsv3-iconicindex__intro p { font-size: .82rem; }
  .dsv3-iconicgrid { grid-template-columns: 1fr 1fr; gap: 7px; }.dsv3-iconicgrid .dsv3-destinationcard { min-height: 250px; border-radius: 16px; }.dsv3-iconicgrid .dsv3-destinationcard__copy { padding: 14px; }.dsv3-iconicgrid .dsv3-destinationcard__copy strong { font-size: .93rem; }
  .dsv3-iconicrail__track { display: grid; grid-auto-flow: column; grid-auto-columns: 82%; grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }.dsv3-iconicrail__track > * { scroll-snap-align: start; }.dsv3-iconicrail__track::-webkit-scrollbar { display: none; }
  .dsv3-iconicdetail__hero { padding: 14px 0 30px; }.dsv3-iconicdetail__hero-grid { min-height: 0; grid-template-columns: 1fr; border-radius: 21px; }.dsv3-iconicdetail__media { min-height: 360px; }.dsv3-iconicdetail__heading { padding: 30px 20px 34px; }.dsv3-iconicdetail__heading h1 { font-size: 3.25rem; }.dsv3-iconicdetail__heading > .dsv3-btn { width: 100%; }.dsv3-iconicdetail__story-grid { grid-template-columns: 1fr; }.dsv3-iconicdetail__story article > h2 { font-size: 3rem; }.dsv3-iconicrequest { position: static; padding: 22px 17px; border-radius: 20px; }.dsv3-iconicrelated { display: grid; grid-auto-flow: column; grid-auto-columns: 82%; grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }.dsv3-iconicrelated > * { scroll-snap-align: start; }.dsv3-iconicgateway { grid-template-columns: 1fr; }
  .dsv3-auth { display: block; min-height: 100svh; background: #fff; }
  .dsv3-auth__story { display: none; }
  .dsv3-auth__panel { display: block; min-height: 100svh; padding: 126px 20px 42px; }
  .dsv3-auth__brand { position: absolute; top: 24px; left: 50%; width: min(250px,72vw); padding: 14px 18px; border-radius: 18px; background: rgb(var(--dsv3-primary-950)); transform: translateX(-50%); }
  .dsv3-auth__card { margin-inline: auto; }
  .dsv3-auth__tabs { margin-bottom: 31px; }
  .dsv3-auth__card header h1 { font-size: 3rem; }
  .dsv3-auth__card header p { margin-bottom: 26px; }
  .dsv3-checkout, .dsv3-paymentresult { padding-block: 25px 62px; }
  .dsv3-journey { margin-bottom: 32px; padding: 14px 9px; border-radius: 18px; }
  .dsv3-journey ol::before { top: 15px; right: 10%; left: 10%; }
  .dsv3-journey li { gap: 6px; }.dsv3-journey li > span { width: 31px; height: 31px; box-shadow: 0 0 0 5px #fff; }.dsv3-journey li > strong { font-size: .56rem; }
  .dsv3-checkout__head h1 { font-size: 3.25rem; }.dsv3-checkout__head > p { align-items: flex-start; flex-direction: column; gap: 9px; }
  .dsv3-checkout__layout, .dsv3-cart__layout { grid-template-columns: 1fr; }
  .dsv3-checkoutaside { position: static; grid-row: 1; }
  .dsv3-hotelcheckout__help { grid-row: auto; }
  .dsv3-portalhero > .dsv3-shell { min-height: 310px; padding-block: 55px 42px; }.dsv3-portalhero h1 { font-size: 3.25rem; }.dsv3-portalbar { top: 61px; }.dsv3-portalnav { justify-content: start; grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: max-content; min-width: 0; padding-inline: 10px; }.dsv3-portalnav a { min-height: 44px; padding-inline: 12px; }.dsv3-portalbody { padding-block: 22px 62px; }.dsv3-portaloverview__top { grid-template-columns: 1fr; }.dsv3-portalpoint, .dsv3-portaltier, .dsv3-portalsection, .dsv3-portalsupport > .supportform { padding: 21px 17px; border-radius: 20px; }.dsv3-portalsection > header { align-items: flex-start; flex-direction: column; gap: 8px; }.dsv3-portalsection > header h2, .dsv3-portalsupport > .supportform .supportform__lead h2 { font-size: 1.75rem; }.dsv3-portalproducts { grid-template-columns: 1fr; }.dsv3-portalorder { align-items: start; grid-template-columns: 1fr; }.dsv3-portalorder > div:last-child { grid-auto-flow: column; justify-content: start; justify-items: start; align-items: center; }.dsv3-portalclaim, .dsv3-portalprofile, .dsv3-portalprofile dl { grid-template-columns: 1fr; }.dsv3-portalclaim .dsv3-btn { width: 100%; }.dsv3-portalrequests article { grid-template-columns: 1fr; }.dsv3-portal .supportform__form { grid-template-columns: 1fr; }.dsv3-portal .supportform__field--wide, .dsv3-portal .supportform__actions, .dsv3-portal .supportform__outcome { grid-column: auto; }.dsv3-portal .supportform__actions { align-items: flex-start; flex-direction: column; }.dsv3-portal .supportform__actions .btn { width: 100%; }
  .dsv3-checkoutfields { grid-template-columns: 1fr; }.dsv3-checkoutdiscount { grid-template-columns: 1fr; }
  .dsv3-checkoutextra { align-items: flex-start; flex-direction: column; gap: 9px; }
  .dsv3-cartitem { align-items: start; grid-template-columns: 1fr; }.dsv3-cartitem > strong { justify-self: start; }
  .dsv3-paymentresult__card { padding: 38px 20px; }.dsv3-paymentresult__actions { display: grid; grid-template-columns: 1fr; }.dsv3-paymentresult__actions .dsv3-btn { width: 100%; }
  .dsv3-safarihero, .dsv3-safarihero__inner { min-height: 670px; }.dsv3-safarihero__inner { grid-template-columns: 1fr; align-content: end; gap: 26px; padding-block: 62px 34px; }.dsv3-safarihero__sun { top: 12%; right: 11%; width: 104px; }.dsv3-safarihero__dunes { right: -35%; bottom: -8%; width: 135%; height: 48%; }.dsv3-safarihero .dsv3-tourcrumbs { margin-bottom: 34px; }.dsv3-safarihero h1 { max-width: 8ch; font-size: 4.15rem; }.dsv3-safarihero__facts { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; }.dsv3-safarihero__facts > span { min-height: 92px; grid-template-columns: 1fr; grid-template-rows: 25px auto auto; align-content: center; padding: 10px; }.dsv3-safarihero__facts svg { grid-row: auto; }.dsv3-safarihero__facts small, .dsv3-safarihero__facts strong { font-size: .57rem; }
  .dsv3-safariform { grid-template-columns: 1fr; }.dsv3-safariform__aside { position: static; grid-row: 1; }.dsv3-safaristep { padding: 21px 17px; }.dsv3-safariguests, .dsv3-safaricontact { grid-template-columns: 1fr; }.dsv3-safaricontact > .dsv3-safarifield:last-child { grid-column: auto; }.dsv3-safaricamps { grid-template-columns: 1fr; }.dsv3-safaricamp { min-height: 112px; }.dsv3-safarimodes { grid-template-columns: 1fr 1fr; }.dsv3-safariphone { grid-template-columns: 105px minmax(0,1fr); }.dsv3-safarirefresh { width: 100%; }.dsv3-safaripurchase { margin-top: 22px; padding-top: 24px; }
  .dsv3-visahero__inner { min-height: 650px; grid-template-columns: 1fr; align-content: end; gap: 25px; padding-block: 64px 34px; }.dsv3-visahero h1 { font-size: 3.75rem; }.dsv3-visahero__prices { padding: 19px; }
  .dsv3-visawork, .dsv3-visastatus { padding-block: 28px 62px; }.dsv3-visajourney { margin-bottom: 31px; padding: 14px 8px; }.dsv3-visajourney ol::before { top: 15px; }.dsv3-visajourney li > span { width: 31px; height: 31px; box-shadow: 0 0 0 5px #fff; }.dsv3-visajourney li > strong { font-size: .56rem; }.dsv3-visasetup { grid-template-columns: 1fr; }.dsv3-visasetup .dsv3-btn { width: 100%; }.dsv3-visaform { grid-template-columns: 1fr; }.dsv3-visaform__aside { position: static; grid-row: 1; }.dsv3-visaapplicant, .dsv3-visaconsents, .dsv3-visastatuscard { padding: 21px 17px; }.dsv3-visafields { grid-template-columns: 1fr; }.dsv3-visaphone { grid-template-columns: 105px minmax(0,1fr); }.dsv3-visastatussearch { grid-template-columns: 1fr; padding: 17px; }.dsv3-visastatussearch .dsv3-btn { width: 100%; }.dsv3-visastatuscard header { align-items: flex-start; flex-direction: column; }.dsv3-visadocument { grid-template-columns: 1fr; }.dsv3-visadocument .dsv3-btn { width: 100%; }
  .dsv3-tourlisthead { min-height: auto; }
  .dsv3-tourlisthead__inner { min-height: 0; padding-block: 29px 22px; }
  .dsv3-listingsearch { grid-template-columns: 1fr; padding: 9px; }
  .dsv3-listingfield, .dsv3-listingfield:nth-of-type(odd) { min-height: 57px; box-shadow: 0 -1px 0 var(--dsv3-line); }
  .dsv3-listingfield:first-of-type { box-shadow: none; }
  .dsv3-listingsearch > .dsv3-btn { grid-column: auto; }
  .dsv3-tourmonth { min-height: 57px; box-shadow: 0 -1px 0 var(--dsv3-line); }
  .dsv3-tourmonth__panel { width: calc(100vw - 40px); }
  .dsv3-tourmonth__grid { grid-template-columns: 1fr 1fr; }
  .dsv3-filter > summary { padding-inline: 15px; }
  .dsv3-filter__form, .dsv3-filter__form--cruise { grid-template-columns: 1fr; padding-inline: 15px; }
  .dsv3-filter__actions { display: grid; grid-template-columns: 1fr 1fr; }
  .dsv3-filter__actions .dsv3-btn { min-width: 0; padding-inline: 10px; font-size: .72rem; }
  .dsv3-tourcard { display: block; }
  .dsv3-tourcard__media { height: auto; min-height: 0; aspect-ratio: 3 / 2; }
  .dsv3-tourgallery > .dsv3-shell { height: 330px; grid-template-columns: 1fr 1fr; grid-template-rows: 1.45fr .8fr; border-radius: 18px; }
  .dsv3-tourgallery__cell--1 { grid-column: 1 / 3; grid-row: 1; }
  .dsv3-tourgallery__cell--4, .dsv3-tourgallery__cell--5 { display: none; }
  .dsv3-tourtitle { padding-top: 20px; }
  .dsv3-tourtitle__grid { margin-top: 20px; }
  .dsv3-tourtitle h1 { font-size: 2.75rem; }
  .dsv3-tourtitle__marks { justify-content: start; }
  .dsv3-detailsection + .dsv3-detailsection { margin-top: 54px; }
  .dsv3-detailrail { grid-auto-columns: 82%; }
  .dsv3-itinerary summary { grid-template-columns: 38px minmax(0,1fr) auto; padding-inline: 12px; }
  .dsv3-itinerary details > div { padding: 0 13px 17px 62px; }
  .dsv3-reviewgrid { grid-template-columns: 1fr; }
  .dsv3-detailsection .departure__head { grid-template-columns: minmax(0,1fr) auto; padding-inline: 13px; }
  .dsv3-detailsection .departure__chevron { display: none; }
  .dsv3-detailsection .departure__form { padding-inline: 13px; }
  .dsv3-detailsection .occupancy { grid-template-columns: 1fr; }
  .dsv3-tourrail { grid-auto-columns: 82%; }
  .dsv3-vibes { padding-top: 0; }
  .dsv3-vibes__cards { gap: 8px; }
  .dsv3-vibecard { border-radius: 15px; }
  .dsv3-vibes__foot { margin-inline: -3px; padding: 10px; }
  .dsv3-vibes__foot .dsv3-btn--ghost { display: none; }
  .dsv3-vibes__foot .dsv3-btn { min-height: 44px; padding-inline: 14px; font-size: .76rem; }
  .dsv3-vibeready__card { width: min(calc(100% - 22px),820px); padding: 38px 21px; }
  .dsv3-vibeready__actions { display: grid; grid-template-columns: 1fr; }
  .dsv3-assist__inner { gap: 8px; }
  .dsv3-assist .dsv3-btn { min-width: 0; padding-inline: 11px; font-size: .75rem; }
  .dsv3-footer__main { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dsv3-footer__brand { grid-column: 1 / -1; }
  .dsv3-footer__credits { align-items: start; flex-direction: column; gap: 4px; }
}

/* Production acceptance floor: readable decision copy and finger-sized controls.
 * Decorative legal copy in the footer is intentionally excluded; all interactive metadata and
 * product helpers stay at least 13px, while icon-only actions expose a 44px hit area. */
.dsv3-root small,
.dsv3-root .dsv3-kicker,
.dsv3-root .dsv3-hero__mode,
.dsv3-root .dsv3-searchpanel h3,
.dsv3-root .dsv3-livesuggest h3,
.dsv3-root .dsv3-subnav a,
.dsv3-root .dsv3-desthero__crumbs ol,
.dsv3-root .dsv3-tourcrumbs ol,
.dsv3-root .dsv3-hotelcrumbs ol,
.dsv3-root .dsv3-regionhero__crumbs ol,
.dsv3-root .dsv3-filter__form label > span,
.dsv3-root .dsv3-hotelfilter legend,
.dsv3-root .dsv3-hotelfilter__sort > span,
.dsv3-root .dsv3-hotelfilter__checks label,
.dsv3-root .dsv3-hotelcard__place,
.dsv3-root .dsv3-hotelcard__copy > p,
.dsv3-root .dsv3-experiencefacts strong,
.dsv3-root .dsv3-experiencepost header strong,
.dsv3-root .dsv3-experiencepost footer strong,
.dsv3-root .dsv3-experiencegateway a small,
.dsv3-root .dsv3-activitybar > span,
.dsv3-root .dsv3-journey li > strong,
.dsv3-root .dsv3-visajourney li > strong,
.dsv3-root .dsv3-regionhero__stat span,
.dsv3-root .dsv3-detailsection .tourpick__step-title,
.dsv3-root .dsv3-detailsection .tourpick__stay-hotel,
.dsv3-root .dsv3-detailsection .tourpick__stay-meta,
.dsv3-root .dsv3-detailsection .tourpick__note,
.dsv3-root .dsv3-detailsection .occupancy__trigger-label,
.dsv3-root .dsv3-detailsection .occupancy__line,
.dsv3-root .dsv3-detailsection .occupancy__total-label,
.dsv3-root .dsv3-detailsection .occupancy__total-note,
.dsv3-root .dsv3-detailsection .occupancy__row-note,
.dsv3-root .dsv3-detailsection .occupancy__reason,
.dsv3-root .dsv3-detailsection .occupancy__agent-body,
.dsv3-root .dsv3-safarihero__facts strong,
.dsv3-root .dsv3-safarifield > span,
.dsv3-root .dsv3-safariselect > span,
.dsv3-root .dsv3-visafield > span,
.dsv3-root .dsv3-visaconsent,
.dsv3-root .dsv3-visastatusnote,
.dsv3-root .dsv3-visadocument input {
  font-size: .8125rem;
}
.dsv3-root .dsv3-formnote,
.dsv3-root .dsv3-formerror,
.dsv3-root .dsv3-consent,
.dsv3-root .dsv3-hotelsearch__hint,
.dsv3-root .dsv3-safaristep > p,
.dsv3-root .dsv3-safariquote > p,
.dsv3-root .dsv3-safaricamp em,
.dsv3-root .dsv3-visaguardian > p,
.dsv3-root .dsv3-visaapplicant__contact > p,
.dsv3-root .dsv3-visaconsents > p,
.dsv3-root .dsv3-visaerror {
  font-size: .8125rem!important;
}

/* Consent strip is injected after the Design V3 root, so it intentionally is not root-scoped. */
.consent-strip { position: sticky; z-index: 90; bottom: 0; color: var(--dsv3-ink); background: rgb(255 255 255 / .97); box-shadow: 0 -12px 38px rgb(5 46 43 / .13); backdrop-filter: blur(16px); }
.consent-strip__inner { display: grid; max-width: var(--dsv3-shell); min-height: 62px; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 22px; margin: 0 auto; padding: 8px var(--dsv3-gutter); }
.consent-strip__text { min-width: 0; }.consent-strip__summary { cursor: pointer; }.consent-strip__summary::marker { color: rgb(var(--dsv3-primary-600)); }.consent-strip__lead { display: block; overflow: hidden; color: var(--dsv3-muted); font-size: .68rem; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }.consent-strip__heading { color: var(--dsv3-ink); font-weight: 780; }
.consent-strip__detail { padding: 8px 0 3px; }.consent-strip__body,.consent-strip__note { margin: 0; color: var(--dsv3-muted); font-size: .64rem; line-height: 1.5; }.consent-strip__note { margin-top: 4px; }.consent-strip__link { color: var(--dsv3-accent-strong); font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }
.consent-strip__choices { display: flex; gap: 7px; }.consent-strip__choice { min-height: 44px; padding: 0 17px; border: 0; border-radius: var(--dsv3-pill); color: #fff; background: var(--dsv3-button); font: inherit; font-size: .68rem; font-weight: 760; cursor: pointer; box-shadow: var(--dsv3-shadow-xs); }.consent-strip__choice:hover { filter: brightness(.97); }.consent-strip__choice:focus-visible,.consent-strip__summary:focus-visible { outline: 3px solid rgb(var(--dsv3-primary-300)); outline-offset: 2px; }
@media (max-width:760px) { .consent-strip__inner { min-height: 0; grid-template-columns: 1fr; gap: 8px; padding-block: 10px max(10px,env(safe-area-inset-bottom)); }.consent-strip__lead { white-space: normal; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; }.consent-strip__choices { width: 100%; }.consent-strip__choice { flex: 1 1 0; } }
.dsv3-root .dsv3-experiencehero__card p,
.dsv3-root .dsv3-transfergrid p {
  font-size: .875rem;
}
.dsv3-root .dsv3-hotelmap figcaption { font-size: .8125rem; }

.dsv3-root .dsv3-portalsection > header p,
.dsv3-root .dsv3-portalorder small,
.dsv3-root .dsv3-portalorder span,
.dsv3-root .dsv3-portalorder p,
.dsv3-root .dsv3-portalempty p,
.dsv3-root .dsv3-portalladder small,
.dsv3-root .dsv3-portalladder em,
.dsv3-root .dsv3-portalrules li,
.dsv3-root .dsv3-portalclaim label span,
.dsv3-root .dsv3-portalreview label span,
.dsv3-root .dsv3-portalreview > p,
.dsv3-root .dsv3-portalreview summary,
.dsv3-root .dsv3-portalfavorites small,
.dsv3-root .dsv3-portalrequests article,
.dsv3-root .dsv3-portalrequests small,
.dsv3-root .dsv3-portalprofile dt,
.dsv3-root .dsv3-portalprofile dd,
.dsv3-root .dsv3-portalnotify small,
.dsv3-root .dsv3-portalnotify > p,
.dsv3-root .dsv3-portalsupport > .supportform .supportform__lead p,
.dsv3-root .dsv3-portal .supportform__field > label,
.dsv3-root .dsv3-portal .supportform__note,
.dsv3-root .dsv3-portal .supportform__outcome,
.dsv3-root .dsv3-portal .supportform__error,
.dsv3-root .dsv3-portalnote {
  font-size: .8125rem;
}

.dsv3-root .dsv3-dot {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border-radius: 0;
  background: transparent;
  transition: none;
}
.dsv3-root .dsv3-dot::after {
  width: 8px;
  height: 8px;
  border-radius: var(--dsv3-pill);
  background: rgb(255 255 255 / .32);
  transition: width .25s ease,background .25s ease;
  content: "";
}
.dsv3-root .dsv3-dot[aria-current="true"] { width: 44px; background: transparent; }
.dsv3-root .dsv3-dot[aria-current="true"]::after { width: 26px; background: rgb(var(--dsv3-primary-200)); }
.dsv3-root .dsv3-dots { gap: 0; }

.dsv3-root .dsv3-desthero__controls button { width: 44px; height: 44px; }
.dsv3-root .dsv3-desthero__controls [data-dsv3-hero-dot] {
  width: 44px;
  height: 44px;
  border-radius: 0;
  background: transparent;
}
.dsv3-root .dsv3-desthero__controls [data-dsv3-hero-dot]::after {
  width: 24px;
  height: 4px;
  border-radius: var(--dsv3-pill);
  background: rgb(255 255 255 / .32);
  content: "";
}
.dsv3-root .dsv3-desthero__controls [data-dsv3-hero-dot][aria-current="true"] { background: transparent; }
.dsv3-root .dsv3-desthero__controls [data-dsv3-hero-dot][aria-current="true"]::after { background: rgb(var(--dsv3-primary-200)); }
.dsv3-root .dsv3-desthero__controls > div { gap: 0; }

.dsv3-root .dsv3-social a,
.dsv3-root .dsv3-az__jump a,
.dsv3-root .dsv3-hotelcard__arrow,
.dsv3-root .dsv3-pagination a,
.dsv3-root .dsv3-pagination span,
.dsv3-root .dsv3-hoteltitle__actions .pageaction,
.dsv3-root .dsv3-hoteltitle__actions .sharepanel__close {
  min-width: 44px;
  width: 44px;
  min-height: 44px;
  height: 44px;
}
.dsv3-root .dsv3-holiday__cta,
.dsv3-root .dsv3-desthero__pills a,
.dsv3-root .dsv3-tourtitle__facts > span,
.dsv3-root .dsv3-variants a,
.dsv3-root .dsv3-variants span,
.dsv3-root .dsv3-experiencefilter > div a,
.dsv3-root .dsv3-experiencefilters__active a,
.dsv3-root .dsv3-experiencehero__whatsapp {
  min-height: 44px;
}
.dsv3-root .dsv3-detailsection .occupancy__stepper { grid-template-columns: 44px 44px 44px; }
.dsv3-root .dsv3-detailsection .occupancy__step { width: 44px; height: 44px; }
.dsv3-root .traveller__panel .counter--stepper .counter__control { grid-template-columns: 44px 40px 44px; }
.dsv3-root .traveller__panel .counter__step:not([hidden]) { width: 44px; height: 44px; }

/* Dubai Safari onaylı lab sözleşmesi: fotoğraflı kahraman, tarife kartı ve dört-adımlı akış. */
.dsv3-root .dsv3-safari-page { background: rgb(var(--dsv3-gray-50)); }
.dsv3-root .dsv3-safarihero { min-height: 590px; background: rgb(var(--dsv3-primary-950)); }
.dsv3-root .dsv3-safarihero__media, .dsv3-root .dsv3-safarihero__shade { position: absolute; inset: 0; }
.dsv3-root .dsv3-safarihero__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.02); }
.dsv3-root .dsv3-safarihero__shade { background: linear-gradient(90deg,rgb(5 35 32 / .93) 0%,rgb(5 35 32 / .69) 52%,rgb(5 35 32 / .26) 100%); }
.dsv3-root .dsv3-safarihero__inner { min-height: 590px; grid-template-columns: minmax(0,1fr) 310px; align-items: end; gap: 70px; padding-block: 82px 58px; }
.dsv3-root .dsv3-safarihero__copy { max-width: 790px; }
.dsv3-root .dsv3-safarihero h1 { max-width: 12ch; margin: 0; font-size: clamp(3.25rem,6vw,5.8rem); line-height: .94; letter-spacing: -.06em; }
.dsv3-root .dsv3-safarihero__copy > p { max-width: 64ch; margin: 18px 0 0; color: rgb(255 255 255 / .76); font-size: .96rem; line-height: 1.7; }
.dsv3-root .dsv3-safarihero__facts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.dsv3-root .dsv3-safarihero__facts > span { display: inline-flex; min-height: 34px; grid-template: none; align-items: center; gap: 7px; padding: 0 12px; border-radius: var(--dsv3-pill); background: rgb(255 255 255 / .12); font-size: .67rem; backdrop-filter: blur(8px); }
.dsv3-root .dsv3-safarihero__facts svg { grid-row: auto; color: rgb(var(--dsv3-primary-200)); }
.dsv3-root .dsv3-safarihero__tariff { padding: 22px; border-radius: 18px; background: rgb(5 46 43 / .74); box-shadow: 0 24px 60px rgb(0 0 0 / .22); backdrop-filter: blur(14px); }
.dsv3-root .dsv3-safarihero__tariff small { display: block; color: rgb(255 255 255 / .54); font-size: .62rem; letter-spacing: .07em; text-transform: uppercase; }
.dsv3-root .dsv3-safarihero__tariff > span { display: block; margin-top: 12px; color: rgb(var(--dsv3-primary-200)); font-size: .67rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.dsv3-root .dsv3-safarihero__tariff strong { display: block; max-width: 10ch; margin-top: 6px; font-size: 1.85rem; line-height: 1.02; letter-spacing: -.04em; text-wrap: balance; }
.dsv3-root .dsv3-safarihero__tariff strong b { display: block; color: rgb(var(--dsv3-primary-200)); font-weight: inherit; white-space: nowrap; }
.dsv3-root .dsv3-safarihero__tariff em { display: block; margin-top: 7px; color: white; font-size: .78rem; font-style: normal; font-weight: 600; }
.dsv3-root .dsv3-safarihero__tariff p { margin: 8px 0 0; color: rgb(255 255 255 / .68); font-size: .69rem; line-height: 1.55; }
.dsv3-root .dsv3-safaricrumbbar .dsv3-tourcrumbs { margin: 0; }
.dsv3-root .dsv3-safariwork { padding-block: 56px 82px; }
.dsv3-root .dsv3-safariwork__head { display: grid; grid-template-columns: minmax(0,1fr) 390px; align-items: end; gap: 40px; margin-bottom: 30px; }
.dsv3-root .dsv3-safariwork__head h2 { max-width: 15ch; margin: 8px 0 0; font-size: clamp(2.35rem,4vw,4rem); line-height: 1; }
.dsv3-root .dsv3-safariwork__head > p { margin: 0; color: var(--dsv3-muted); font-size: .82rem; line-height: 1.68; }
.dsv3-root .dsv3-safariprogress { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 8px; margin-bottom: 16px; }
.dsv3-root .dsv3-safariprogress__item { display: grid; min-width: 0; min-height: 58px; grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: 9px; padding: 9px 12px; border-radius: 13px; color: var(--dsv3-muted); background: white; box-shadow: 0 8px 26px rgb(5 46 43 / .04); }
.dsv3-root .dsv3-safariprogress__item > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; color: rgb(var(--dsv3-primary-800)); background: rgb(var(--dsv3-primary-50)); font-size: .68rem; font-weight: 700; }
.dsv3-root .dsv3-safariprogress__item small, .dsv3-root .dsv3-safariprogress__item strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-root .dsv3-safariprogress__item small { font-size: .58rem; line-height: 1.25; text-transform: uppercase; }
.dsv3-root .dsv3-safariprogress__item strong { margin-top: 3px; color: var(--dsv3-ink); font-size: .72rem; line-height: 1.3; }
.dsv3-root .dsv3-safariform { grid-template-columns: minmax(0,1fr) 342px; gap: 18px; }
.dsv3-root .dsv3-safariform__main { gap: 12px; }
.dsv3-root .dsv3-safariform__aside { top: 96px; }
.dsv3-root .dsv3-safaristep { padding: 26px; border-radius: 18px; box-shadow: 0 12px 38px rgb(5 46 43 / .055); }
.dsv3-root .dsv3-safaristep__head { display: grid; grid-template-columns: 38px minmax(0,1fr); align-items: start; gap: 13px; }
.dsv3-root .dsv3-safaristep__number { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; color: white; background: rgb(var(--dsv3-primary-800)); font-size: .72rem; font-weight: 700; }
.dsv3-root .dsv3-safaristep__head h3 { margin: 0; font-size: 1.28rem; }
.dsv3-root .dsv3-safaristep__head p { margin: 4px 0 0; color: var(--dsv3-muted); font-size: .7rem; line-height: 1.5; }
.dsv3-root .dsv3-safaricounters { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 20px; }
.dsv3-root .dsv3-safaricounter { display: flex; min-height: 72px; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; border-radius: 14px; background: rgb(var(--dsv3-gray-50)); }
.dsv3-root .dsv3-safaricounter strong, .dsv3-root .dsv3-safaricounter small { display: block; }
.dsv3-root .dsv3-safaricounter strong { font-size: .79rem; line-height: 1.3; }.dsv3-root .dsv3-safaricounter small { margin-top: 3px; color: var(--dsv3-muted); font-size: .61rem; line-height: 1.35; }
.dsv3-root .dsv3-safaricounter__control { display: grid; grid-template-columns: 30px 26px 30px; align-items: center; gap: 4px; }
.dsv3-root .dsv3-safaricounter__control button { display: grid; width: 30px; height: 30px; place-items: center; padding: 0; border: 0; border-radius: 50%; color: rgb(var(--dsv3-primary-900)); background: white; box-shadow: var(--dsv3-shadow-xs); }
.dsv3-root .dsv3-safaricounter__control output { text-align: center; font-size: .82rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.dsv3-root .dsv3-safarifield input, .dsv3-root .dsv3-safariselect select { min-height: 50px; border-radius: 14px; background: rgb(var(--dsv3-gray-50)); }
.dsv3-root .dsv3-safarisession { margin-top: 20px; }
.dsv3-root .dsv3-safaridatetime { display: grid; gap: 18px; }
.dsv3-root .dsv3-safaridatetime__label { display: block; color: var(--dsv3-muted); font-size: .7rem; }
.dsv3-root .dsv3-safaridatetime .dsv3-safarioptions { margin-top: 8px; }
.dsv3-root .dsv3-safaritime { min-height: 108px; }
.dsv3-root .dsv3-safarioptions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin-top: 20px; }
.dsv3-root .dsv3-safarioption { position: relative; display: block; min-width: 0; min-height: 116px; padding: 16px; border-radius: 15px; color: var(--dsv3-ink); background: rgb(var(--dsv3-gray-50)); cursor: pointer; transition: transform .2s ease,background .2s ease,box-shadow .2s ease,opacity .2s ease; }
.dsv3-root .dsv3-safarioption:hover:not([data-disabled="true"]) { transform: translateY(-2px); box-shadow: 0 12px 28px rgb(5 46 43 / .09); }
.dsv3-root .dsv3-safarioption::before { display: none; }
.dsv3-root .dsv3-safarioption input { position: absolute; opacity: 0; pointer-events: none; }
.dsv3-root .dsv3-safarioption__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.dsv3-root .dsv3-safarioption__top > span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; color: rgb(var(--dsv3-primary-800)); background: white; }
.dsv3-root .dsv3-safarioption__top small { color: var(--dsv3-muted); font-size: .59rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.dsv3-root .dsv3-safarioption > strong { display: block; margin-top: 12px; font-size: .92rem; line-height: 1.3; }
.dsv3-root .dsv3-safarioption > p { margin: 5px 0 0; color: var(--dsv3-muted); font-size: .64rem; line-height: 1.45; }
.dsv3-root .dsv3-safarioption__reason { display: block; margin-top: 8px; color: rgb(181 55 46); font-size: .6rem; font-style: normal; font-weight: 600; line-height: 1.4; }
.dsv3-root .dsv3-safarioption:is([data-selected="true"],:has(input:checked)) { color: rgb(var(--dsv3-primary-950)); background: rgb(var(--dsv3-primary-100)); box-shadow: inset 0 0 0 2px rgb(var(--dsv3-primary-500)); }
.dsv3-root .dsv3-safarioption[data-disabled="true"] { cursor: not-allowed; opacity: .58; }
.dsv3-root .dsv3-safariops { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 20px; }.dsv3-root .dsv3-safarifield--wide { grid-column: 1 / -1; }
.dsv3-root .dsv3-safariquote { gap: 0; overflow: hidden; padding: 0; border-radius: 20px; background: rgb(var(--dsv3-primary-950)); box-shadow: 0 24px 60px rgb(5 46 43 / .2); }
.dsv3-root .dsv3-safariquote > div.dsv3-safariquote__media { display: block; height: 145px; grid-template-columns: none; align-items: normal; gap: 0; padding: 0; border-radius: 0; background: transparent; }.dsv3-root .dsv3-safariquote__media img { width: 100%; height: 100%; object-fit: cover; }
.dsv3-root .dsv3-safariquote > div.dsv3-safariquote__body { display: block; grid-template-columns: none; align-items: normal; gap: 0; padding: 22px; border-radius: 0; background: transparent; }.dsv3-root .dsv3-safariquote__body > .dsv3-kicker { color: rgb(var(--dsv3-primary-200)); font-size: .61rem; }
.dsv3-root .dsv3-safariquote h2 { margin-top: 6px; color: white; font-size: 1.25rem; line-height: 1.1; }
.dsv3-root .dsv3-safariquote__selection { display: grid; gap: 6px; margin-top: 17px; padding: 13px; border-radius: 12px; background: rgb(255 255 255 / .07); }
.dsv3-root .dsv3-safariquote__selection span { display: flex; justify-content: space-between; gap: 12px; color: rgb(255 255 255 / .62); font-size: .64rem; }.dsv3-root .dsv3-safariquote__selection strong { color: white; font-weight: 500; text-align: right; }
.dsv3-root .dsv3-safariquote__breakdown { display: grid; gap: 2px; margin-top: 20px; }.dsv3-root .dsv3-safariquote__breakdown > small { margin-bottom: 4px; color: rgb(255 255 255 / .48); font-size: .57rem; text-transform: uppercase; }
.dsv3-root .dsv3-safariquote__total { margin-top: 14px; padding-top: 18px; box-shadow: inset 0 1px rgb(255 255 255 / .11); }.dsv3-root .dsv3-safariquote__total strong { color: white; }
.dsv3-root .dsv3-safariquote__cta { width: 100%; margin-top: 18px; }.dsv3-root .dsv3-safariquote__note { display: flex; gap: 7px; margin: 12px 0 0; color: rgb(255 255 255 / .54); font-size: .58rem; line-height: 1.45; }
.dsv3-root .dsv3-safariform[data-enhanced="true"] .dsv3-safarirefresh { display: none; }
.dsv3-root .dsv3-safariform__main, .dsv3-root .dsv3-safariform__aside { transition: opacity .16s ease,filter .16s ease; }
.dsv3-root .dsv3-safariform[data-busy="true"] { cursor: progress; }
.dsv3-root .dsv3-safariform[data-busy="true"] .dsv3-safariform__main, .dsv3-root .dsv3-safariform[data-busy="true"] .dsv3-safariform__aside { opacity: .56; pointer-events: none; filter: saturate(.72); }

/* Üye portalı: onaylı labdaki iki kolon kahraman ve altı rotalı sekme şeridi. */
.dsv3-root .dsv3-portalhero { padding: 42px 0 34px; background: rgb(var(--dsv3-primary-950)); }
.dsv3-root .dsv3-portalhero > .dsv3-shell { min-height: 0; padding-block: 0; }
.dsv3-root .dsv3-portalhero__inner { display: grid; grid-template-columns: minmax(0,1fr) 330px; align-items: end; gap: 36px; }
.dsv3-root .dsv3-portalhero h1 { max-width: 13ch; margin: 9px 0 0; font-size: clamp(2.45rem,5vw,4.6rem); line-height: .98; letter-spacing: -.055em; }
.dsv3-root .dsv3-portalhero p { max-width: 58ch; margin-top: 13px; font-size: .8rem; }
.dsv3-root .dsv3-portalhero__points { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 9px; border-radius: 17px; background: rgb(255 255 255 / .08); }
.dsv3-root .dsv3-portalhero__points > div { min-width: 0; padding: 15px; border-radius: 12px; background: rgb(255 255 255 / .07); }
.dsv3-root .dsv3-portalhero__points small { display: block; min-height: 2.4em; color: rgb(255 255 255 / .52); font-size: .59rem; line-height: 1.25; }
.dsv3-root .dsv3-portalhero__points strong { display: block; overflow: hidden; margin-top: 6px; font-size: 1.22rem; text-overflow: ellipsis; white-space: nowrap; }
.dsv3-root .dsv3-portalhero__points span { display: block; margin-top: 3px; color: rgb(var(--dsv3-primary-200)); font-size: .57rem; }
.dsv3-root .dsv3-portalbar { box-shadow: 0 10px 28px rgb(5 46 43 / .07); }
.dsv3-root .dsv3-portalnav { display: flex; min-width: max-content; gap: 28px; padding: 0; }
.dsv3-root .dsv3-portalnav a { position: relative; min-height: 55px; justify-content: flex-start; padding: 0; border-radius: 0; background: transparent; font-size: .72rem; }
.dsv3-root .dsv3-portalnav a svg { display: none; }
.dsv3-root .dsv3-portalnav a[aria-current="page"] { color: var(--dsv3-ink); background: transparent; font-weight: 650; }
.dsv3-root .dsv3-portalnav a[aria-current="page"]::after { position: absolute; right: 0; bottom: 0; left: 0; height: 2px; border-radius: 2px; background: rgb(var(--dsv3-primary-600)); content: ""; }
.dsv3-root .dsv3-portalbody { padding-block: 34px 72px; }
.dsv3-root .dsv3-portalsection, .dsv3-root .dsv3-portalsupport > .supportform { border-radius: 19px; }

@media (max-width: 1080px) and (min-width: 781px) {
  .dsv3-reviews__head { grid-template-columns: 1fr; }
  .dsv3-reviews__head h2 { max-width: 15ch; }
  .dsv3-reviews__rail { grid-auto-columns: minmax(310px,44%); }
  .dsv3-root .dsv3-safarihero__inner { grid-template-columns: minmax(0,1fr) 280px; gap: 38px; }
  .dsv3-root .dsv3-safariprogress { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .dsv3-root .dsv3-safariform { grid-template-columns: minmax(0,1fr) 310px; }
}
@media (max-width: 780px) {
  .dsv3-reviews { padding-block: 58px; }
  .dsv3-reviews__head { grid-template-columns: 1fr; gap: 27px; }
  .dsv3-reviews__head h2 { font-size: 2.75rem; }
  .dsv3-reviews__sources { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: minmax(210px,76%); overflow-x: auto; padding: 2px 1px 14px; scroll-snap-type: x proximity; }
  .dsv3-reviews__source { scroll-snap-align: start; }
  .dsv3-reviews__rail { grid-auto-columns: 86%; }
  .dsv3-reviews__actions { align-items: stretch; flex-direction: column; }
  .dsv3-reviews__actions .dsv3-btn { width: 100%; }
  .dsv3-root .dsv3-safarihero, .dsv3-root .dsv3-safarihero__inner { min-height: 650px; }
  .dsv3-root .dsv3-safarihero__inner { grid-template-columns: minmax(0,1fr); align-content: end; gap: 20px; padding-block: 58px 28px; }
  .dsv3-root .dsv3-safarihero__copy, .dsv3-root .dsv3-safarihero__tariff { min-width: 0; }
  .dsv3-root .dsv3-safarihero__eyebrow { margin-top: 34px; }
  .dsv3-root .dsv3-safarihero h1 { max-width: 11ch; font-size: clamp(3rem,13vw,4.15rem); }
  .dsv3-root .dsv3-safarihero__facts { display: flex; gap: 6px; overflow-x: auto; flex-wrap: nowrap; padding-bottom: 2px; }
  .dsv3-root .dsv3-safarihero__facts > span { min-width: max-content; min-height: 34px; padding-inline: 10px; }
  .dsv3-root .dsv3-safarihero__tariff { padding: 17px; }
  .dsv3-root .dsv3-safarihero__tariff strong { max-width: none; font-size: 1.55rem; }
  .dsv3-root .dsv3-safariwork { padding-block: 38px 65px; }
  .dsv3-root .dsv3-safariwork__head { grid-template-columns: 1fr; gap: 12px; }
  .dsv3-root .dsv3-safariprogress { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: minmax(160px,72%); overflow-x: auto; padding-bottom: 5px; scroll-snap-type: x proximity; }
  .dsv3-root .dsv3-safariprogress__item { scroll-snap-align: start; }
  .dsv3-root .dsv3-safariform { grid-template-columns: 1fr; }
  .dsv3-root .dsv3-safariform__aside { position: static; grid-row: 1; }
  .dsv3-root .dsv3-safaristep { padding: 21px 17px; }
  .dsv3-root .dsv3-safaricounters, .dsv3-root .dsv3-safarioptions, .dsv3-root .dsv3-safariops { grid-template-columns: 1fr; }
  .dsv3-root .dsv3-safariform__aside { grid-row: auto; }
  .dsv3-root .dsv3-portalhero { padding-block: 28px 24px; }
  .dsv3-root .dsv3-portalhero__inner { grid-template-columns: 1fr; gap: 20px; }
  .dsv3-root .dsv3-portalhero h1 { font-size: 2.55rem; }
  .dsv3-root .dsv3-portalhero__points { max-width: 520px; }
  .dsv3-root .dsv3-portalnav { gap: 22px; }
  .dsv3-root .dsv3-portalbody { padding-block: 25px 54px; }
}

@media (prefers-reduced-motion: reduce) {
  .dsv3-destinationmedia[data-media-state="loading"]::after { animation: none!important; transform: none; }
  *, *::before, *::after { scroll-behavior: auto!important; animation-duration: .01ms!important; animation-iteration-count: 1!important; transition-duration: .01ms!important; }
}
