:root {
  --paper: #f6f3ec;
  --surface: #fffdf9;
  --ink: #17221e;
  --muted: #6e756f;
  --line: #deded4;
  --green: #1d684b;
  --green-dark: #124331;
  --green-soft: #dce9df;
  --red: #d72929;
  --gold: #c99b31;
  --cream: #ede7db;
  --shadow: 0 18px 50px rgba(25, 37, 31, .13);
  --nav-h: 78px;
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}

* { box-sizing: border-box; }
html { scroll-behavior: auto; }
body {
  margin: 0;
  background: #e6e4de;
  color: var(--ink);
  font-family: "DM Sans", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}
button, input { font: inherit; }
button { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, input:focus-visible { outline: 3px solid rgba(29, 104, 75, .35); outline-offset: 2px; }
.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.splash-screen, .auth-gate { position: fixed; z-index: 200; inset: 0; display: grid; place-items: center; background: #103f2e; }
.splash-screen { overflow: hidden; color: white; transition: opacity .2s ease, visibility 0s .2s; }
.splash-screen.is-hidden { opacity: 0; visibility: hidden; }
.splash-orbit { position: absolute; border: 1px solid rgba(218, 232, 219, .15); border-radius: 50%; }
.splash-orbit-one { width: min(125vw, 710px); height: min(125vw, 710px); animation: orbitPulse 2.5s ease-in-out infinite; }
.splash-orbit-two { width: min(92vw, 500px); height: min(92vw, 500px); }
@keyframes orbitPulse { 50% { transform: scale(1.055); opacity: .45; } }
.splash-card { position: relative; z-index: 1; width: min(78%, 330px); text-align: center; }
.splash-card img { display: block; width: 100%; height: auto; padding: 17px; border-radius: 18px; background: white; box-shadow: 0 18px 42px rgba(0,0,0,.17); }
.splash-line { display: block; width: 37px; height: 2px; margin: 23px auto 12px; background: #e3c56f; }
.splash-card p { margin: 0; color: #c9ded0; font-size: 10px; font-weight: 700; letter-spacing: .17em; }
.splash-footer { position: absolute; bottom: max(34px, env(safe-area-inset-bottom)); z-index: 1; display: grid; gap: 9px; text-align: center; color: #c6d9cc; font-size: 10px; font-weight: 700; letter-spacing: .08em; }
.splash-footer i { display: block; width: 136px; height: 3px; overflow: hidden; border-radius: 9px; background: rgba(255,255,255,.18); }
.splash-footer i::after { content: ""; display: block; width: 44%; height: 100%; border-radius: inherit; background: #e2c56f; animation: loadingLine 1.35s ease-in-out infinite; }
@keyframes loadingLine { from { transform: translateX(-115%); } to { transform: translateX(300%); } }
.auth-gate { overflow-y: auto; align-items: start; padding: max(25px, env(safe-area-inset-top)) 20px max(26px, env(safe-area-inset-bottom)); background: linear-gradient(145deg, #f7f4ed 0%, #e8f0e9 100%); transition: opacity .35s ease, visibility 0s .35s; }
.auth-gate.is-hidden { opacity: 0; visibility: hidden; }
.auth-shell { width: min(100%, 430px); margin: auto; padding: 24px; border: 1px solid rgba(218, 224, 216, .9); border-radius: 25px; background: rgba(255,253,249,.93); box-shadow: 0 22px 55px rgba(25, 55, 40, .13); }
.auth-brand img { display: block; width: 150px; height: 58px; object-fit: contain; object-position: left center; mix-blend-mode: multiply; }
.auth-kicker { margin: 21px 0 8px; color: var(--green); font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.auth-shell h1 { margin: 0; font-size: clamp(28px, 7.8vw, 38px); line-height: 1.07; letter-spacing: -.05em; }
.auth-intro { margin: 11px 0 19px; color: var(--muted); font-size: 13px; line-height: 1.48; }
.auth-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; padding: 4px; border-radius: 13px; background: #edf0ea; }
.auth-tabs button { min-height: 39px; border: 0; border-radius: 10px; background: transparent; color: var(--muted); font-size: 11px; font-weight: 800; cursor: pointer; }
.auth-tabs button.active { background: white; color: var(--green-dark); box-shadow: 0 2px 8px rgba(24,42,31,.09); }
.auth-form { display: grid; gap: 13px; margin-top: 19px; }
.auth-form > label:not(.consent-check) { display: grid; gap: 6px; color: var(--ink); font-size: 11px; font-weight: 800; }
.auth-form input[type="text"], .auth-form input[type="tel"], .auth-form input[type="email"] { width: 100%; min-height: 49px; padding: 0 13px; border: 1px solid #d9ded8; border-radius: 12px; background: #fff; color: var(--ink); font-size: 13px; }
.phone-field { width: 100%; min-height: 52px; display: flex !important; flex-flow: row nowrap; align-items: center; overflow: hidden; border: 1px solid #d9ded8; border-radius: 13px; background: #fff; }
.phone-field:focus-within { border-color: var(--green); box-shadow: 0 0 0 3px rgba(29, 104, 75, .12); }
.phone-field input[type="tel"] { width: 0 !important; min-width: 0; height: 52px; min-height: 52px; flex: 1 1 auto; margin: 0; padding: 0 14px; border: 0 !important; border-radius: 0 !important; outline: 0; }
.auth-form input::placeholder { color: #989e99; }
.consent-check { position: relative; display: grid; grid-template-columns: 20px 1fr; gap: 9px; align-items: start; color: #536057; font-size: 11px; line-height: 1.42; cursor: pointer; }
.consent-check input { position: absolute; opacity: 0; pointer-events: none; }
.consent-box { width: 20px; height: 20px; display: grid; place-items: center; border: 1px solid #cbd3ca; border-radius: 6px; color: transparent; background: white; font-size: 13px; font-weight: 800; transition: .18s ease; }
.consent-check input:checked + .consent-box { border-color: var(--green); color: white; background: var(--green); }
.consent-check input:focus-visible + .consent-box { outline: 3px solid rgba(29,104,75,.35); outline-offset: 2px; }
.auth-error { min-height: 1em; margin: -2px 0 0; color: #b32727; font-size: 11px; font-weight: 700; }
.auth-submit { width: 100%; min-height: 53px; padding: 0 18px; border: 0; border-radius: 999px; display: flex; align-items: center; justify-content: space-between; background: var(--green); color: white; font-size: 13px; font-weight: 800; cursor: pointer; }
.auth-submit:hover { background: var(--green-dark); }
.auth-submit svg { width: 18px; }
.auth-note { margin: 14px 0 0; color: var(--muted); font-size: 10px; line-height: 1.4; text-align: center; }

.app-shell {
  width: min(100%, 520px);
  min-height: 100dvh;
  margin: 0 auto;
  background: var(--paper);
  position: relative;
  overflow-x: hidden;
  box-shadow: 0 0 70px rgba(25, 37, 31, .12);
}
.app-status {
  height: 28px;
  padding: 8px 22px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .02em;
}
.status-icons { display: flex; align-items: center; gap: 7px; font-size: 6px; }
.status-icons > span:nth-child(2) { font-size: 13px; transform: rotate(-20deg); }
.battery { width: 20px; height: 9px; border: 1.4px solid var(--ink); border-radius: 2px; position: relative; display: block; }
.battery::before { content: ""; position: absolute; inset: 1.5px; right: 3px; background: var(--ink); border-radius: 1px; }
.battery::after { content: ""; position: absolute; right: -3px; top: 2px; width: 2px; height: 4px; background: var(--ink); border-radius: 0 1px 1px 0; }

.topbar {
  height: 82px;
  padding: 8px 20px 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(246, 243, 236, .9);
  backdrop-filter: blur(18px);
}
.brand { border: 0; background: none; display: flex; align-items: center; padding: 1px 0; cursor: pointer; }
.brand img { width: 150px; height: 62px; object-fit: contain; object-position: left center; mix-blend-mode: multiply; }
.topbar-actions { display: flex; align-items: center; gap: 9px; }
.language-pill { min-height: 40px; padding: 0 12px; display: flex; align-items: center; gap: 7px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.7); font-size: 12px; font-weight: 700; cursor: pointer; }
.language-pill svg { width: 17px; height: 17px; }
.avatar { width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--green-dark); color: white; font-size: 10px; font-weight: 800; letter-spacing: .04em; cursor: pointer; }

main { padding-bottom: calc(var(--nav-h) + var(--safe-bottom) + 20px); }
.screen { display: none; animation: screenIn .32s ease; }
.screen.active { display: block; }
@keyframes screenIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.section-pad { padding-left: 20px; padding-right: 20px; }
.home-intro { padding-top: 14px; padding-bottom: 19px; }
.eyebrow { margin: 0 0 9px; font-family: Manrope, sans-serif; color: var(--green); font-size: 10px; font-weight: 800; letter-spacing: .14em; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: Manrope, sans-serif; }
h1 { margin-bottom: 0; font-size: clamp(30px, 8.5vw, 42px); line-height: 1.08; letter-spacing: -.045em; }
h2 { letter-spacing: -.035em; }

.hero-card { margin: 0 12px; height: 395px; border-radius: 26px; overflow: hidden; position: relative; background: var(--green-dark); }
.hero-card > img { width: 100%; height: 100%; object-fit: cover; object-position: 52% center; transform: scale(1.01); }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,17,12,.03) 16%, rgba(7,21,14,.14) 43%, rgba(5,15,10,.87) 100%); }
.hero-copy { position: absolute; inset: auto 24px 24px; color: white; }
.hero-kicker { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; font-size: 9px; letter-spacing: .14em; font-weight: 700; }
.hero-kicker > span:first-child { width: 22px; height: 1px; background: #f5c85a; }
.hero-copy h2 { margin: 0 0 18px; font-size: 34px; line-height: 1.02; letter-spacing: -.045em; }
.hero-cta { min-height: 49px; border: 0; border-radius: 999px; padding: 0 18px 0 21px; display: inline-flex; align-items: center; gap: 24px; background: white; color: var(--ink); font-weight: 700; font-size: 13px; cursor: pointer; }
.hero-cta svg { width: 18px; color: var(--green); transition: transform .2s ease; }
.hero-cta:hover svg { transform: translateX(4px); }

.search-wrap { padding-top: 18px; position: relative; z-index: 8; }
.search-box { min-height: 56px; border: 1px solid var(--line); border-radius: 17px; display: flex; align-items: center; gap: 12px; padding: 0 14px; background: var(--surface); box-shadow: 0 8px 30px rgba(35,45,38,.05); }
.search-box svg { width: 20px; color: var(--green); flex: 0 0 auto; }
.search-box input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; font-size: 13px; color: var(--ink); }
.search-box input::placeholder { color: #8e938f; }
.search-box kbd { padding: 4px 6px; border: 1px solid var(--line); border-radius: 6px; font-size: 9px; color: var(--muted); background: #faf9f5; }
.search-results { display: none; position: absolute; left: 20px; right: 20px; top: 78px; padding: 8px; border: 1px solid var(--line); border-radius: 16px; background: white; box-shadow: var(--shadow); }
.search-results.open { display: block; }
.search-result { width: 100%; min-height: 50px; border: 0; background: none; border-radius: 10px; display: flex; align-items: center; gap: 10px; padding: 7px; text-align: left; cursor: pointer; }
.search-result:hover { background: var(--paper); }
.search-result img { width: 40px; height: 40px; object-fit: cover; border-radius: 9px; }
.search-result span { display: block; font-size: 11px; color: var(--muted); margin-top: 2px; }
.search-empty { padding: 14px; text-align: center; color: var(--muted); font-size: 13px; }

.section-block { padding-top: 34px; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 16px; margin-bottom: 16px; }
.section-heading h2 { margin: 0; font-size: 24px; line-height: 1.1; }
.text-link { border: 0; background: none; color: var(--green); display: flex; align-items: center; gap: 2px; padding: 8px 0; font-size: 12px; font-weight: 700; cursor: pointer; }
.text-link svg { width: 16px; }
.journey-scroll { display: flex; gap: 14px; overflow-x: auto; padding: 0 20px 12px; scroll-snap-type: x mandatory; scrollbar-width: none; }
.journey-scroll::-webkit-scrollbar, .filter-row::-webkit-scrollbar { display: none; }
.journey-card { flex: 0 0 86%; max-width: 370px; scroll-snap-align: start; border: 0; padding: 0; text-align: left; background: transparent; cursor: pointer; }
.journey-image { height: 330px; border-radius: 24px; overflow: hidden; position: relative; background: var(--green-soft); box-shadow: 0 15px 34px rgba(25, 47, 36, .12); }
.journey-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.journey-card:hover .journey-image img { transform: scale(1.04); }
.journey-fade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,18,13,.04) 30%, rgba(5,16,11,.18) 52%, rgba(5,17,11,.82) 100%); pointer-events: none; }
.journey-topline { position: absolute; z-index: 2; top: 13px; left: 13px; right: 13px; display: flex; justify-content: space-between; align-items: center; }
.category-pill { background: rgba(255,255,255,.84); backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,.55); border-radius: 999px; padding: 7px 10px; font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.heart-button { width: 40px; height: 40px; border-radius: 50%; border: 0; display: grid; place-items: center; background: rgba(255,255,255,.9); cursor: pointer; }
.journey-topline .heart-button { background: rgba(255,255,255,.84); backdrop-filter: blur(14px); }
.heart-button svg { width: 18px; }
.heart-button.saved { background: var(--red); color: white; }
.heart-button.saved svg { fill: currentColor; }
.journey-glass { position: absolute; left: 12px; right: 12px; bottom: 12px; padding: 14px 15px 13px; border: 1px solid rgba(255,255,255,.28); border-radius: 17px; background: rgba(14, 30, 22, .54); backdrop-filter: blur(16px); color: white; }
.location { margin: 0 0 6px; display: flex; align-items: center; gap: 4px; color: var(--green); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; }
.journey-glass .location { color: #bfe1cc; }
.location svg { width: 13px; height: 13px; }
.journey-glass h3 { margin: 0 0 9px; font-size: 20px; line-height: 1.1; }
.card-title-button { max-width: 100%; border: 0; padding: 0; background: none; color: inherit; font: inherit; font-weight: inherit; text-align: left; white-space: inherit; overflow: inherit; text-overflow: inherit; cursor: pointer; }
.meta-bottom { display: flex; justify-content: space-between; align-items: center; color: var(--muted); font-size: 11px; }
.journey-glass .meta-bottom { color: #e9f0eb; }
.rating { color: var(--ink); font-weight: 700; }
.journey-glass .rating { color: white; }
.rating svg { width: 12px; height: 12px; fill: var(--gold); stroke: var(--gold); vertical-align: -1px; }
.price { display: flex; align-items: baseline; gap: 4px; }
.price small { font-size: 9px; opacity: .75; }
.price strong { color: var(--ink); font-size: 15px; }
.journey-glass .price strong { color: white; font-size: 18px; }

.region-block { padding-bottom: 10px; }
.tool-grid { display: grid; gap: 11px; }
.tool-card { width: 100%; min-height: 80px; border: 1px solid var(--line); border-radius: 18px; padding: 12px; background: var(--surface); display: grid; grid-template-columns: 48px minmax(0, 1fr) 22px; gap: 12px; align-items: center; text-align: left; cursor: pointer; }
.tool-card-link { position: relative; overflow: hidden; color: var(--ink); text-decoration: none; box-shadow: 0 5px 17px rgba(27, 50, 37, .035); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.tool-card-link::after { content: ""; position: absolute; inset: auto 13px 0; height: 2px; border-radius: 4px; background: var(--green); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.tool-card-link:hover { border-color: #bed4c6; box-shadow: 0 10px 22px rgba(27, 50, 37, .09); transform: translateY(-1px); }
.tool-card-link:hover::after, .tool-card-link:focus-visible::after { transform: scaleX(1); }
.tool-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 14px; background: var(--green-soft); color: var(--green); }
.tool-icon.guide { background: #f4e7d0; color: #9b6b1d; }
.tool-icon.transfer { background: #e2edf5; color: #376c91; }
.tool-card strong, .tool-card span { display: block; }
.tool-card strong { font-family: Manrope, sans-serif; font-size: 14px; line-height: 1.15; margin-bottom: 5px; letter-spacing: -.02em; }
.tool-card span { color: var(--muted); font-family: "DM Sans", system-ui, sans-serif; font-size: 11px; line-height: 1.25; }
.country-boxes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.country-box { position: relative; min-height: 148px; overflow: hidden; border: 0; border-radius: 18px; padding: 16px; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; text-align: left; color: white; cursor: pointer; background: var(--green-dark); isolation: isolate; }
.country-box img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.country-box::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgba(7, 20, 14, .08) 18%, rgba(7, 20, 14, .84) 100%); }
.country-box span { margin-bottom: 5px; color: #e8d18b; font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.country-box strong { max-width: 150px; font-family: Manrope, sans-serif; font-size: 17px; line-height: 1.08; letter-spacing: -.035em; }
.country-box small { margin-top: 6px; max-width: 150px; color: rgba(255,255,255,.87); font-size: 10px; line-height: 1.25; }
.country-box:active { transform: scale(.98); }
.tool-chevron { width: 17px; color: var(--muted); }

.page-head { padding-top: 22px; }
.page-head h1 { margin-bottom: 22px; }
.explore-landing { padding-top: 24px; padding-bottom: 30px; }
.explore-landing h1 { margin: 7px 0 22px; font-size: 32px; line-height: 1.08; }
.collection-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.collection-card { min-height: 224px; overflow: hidden; position: relative; border: 0; border-radius: 20px; padding: 14px; display: flex; flex-direction: column; justify-content: flex-end; color: white; text-align: left; cursor: pointer; background: var(--green); box-shadow: 0 11px 24px rgba(18,31,24,.12); }
.collection-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.collection-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,12,9,.06), rgba(5,12,9,.83)); }
.collection-card > *:not(img) { position: relative; z-index: 1; }
.collection-card span { font-size: 7px; font-weight: 800; letter-spacing: .12em; opacity: .85; }
.collection-card strong { margin-top: 6px; font-size: 19px; line-height: 1.05; }
.collection-card small { margin-top: 7px; font-size: 9px; line-height: 1.3; opacity: .88; }
.package-grid { display: grid; gap: 14px; }
.package-card { position: relative; min-height: 178px; overflow: hidden; border: 0; border-radius: 20px; padding: 18px; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; text-align: left; color: white; cursor: pointer; isolation: isolate; background: var(--green-dark); box-shadow: 0 11px 24px rgba(18,31,24,.12); }
.package-card img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.package-card::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(5,12,9,.84), rgba(5,12,9,.16)); }
.package-card div { max-width: 235px; }
.package-card span, .package-card strong, .package-card small { display: block; }
.package-card span { color: #ecd689; font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.package-card strong { margin: 7px 0 5px; font-family: Manrope, sans-serif; font-size: 22px; line-height: 1.05; letter-spacing: -.035em; }
.package-card small { font-size: 11px; line-height: 1.35; opacity: .92; }
.package-card b { display: flex; align-items: center; gap: 7px; font-size: 11px; }
.package-card b svg { width: 16px; height: 16px; }
.catalog-back { margin-bottom: 15px; border: 0; padding: 0; background: none; display: inline-flex; align-items: center; gap: 4px; color: var(--green); font-size: 10px; font-weight: 800; cursor: pointer; }
.catalog-back svg { width: 15px; transform: rotate(180deg); }
.page-sub { margin: -10px 0 4px; max-width: 390px; color: var(--muted); font-size: 14px; line-height: 1.55; }
.search-box.compact { min-height: 52px; box-shadow: none; }
.filter-row { padding: 16px 20px 8px; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.filter-chip { min-height: 39px; border: 1px solid var(--line); border-radius: 999px; padding: 0 16px; background: var(--surface); font-size: 11px; font-weight: 700; white-space: nowrap; cursor: pointer; }
.filter-chip.active { border-color: var(--green); background: var(--green); color: white; }
.results-line { padding-top: 12px; padding-bottom: 13px; display: flex; justify-content: space-between; color: var(--muted); font-size: 11px; }
.results-line button { border: 0; background: none; font-size: 11px; font-weight: 700; cursor: pointer; }
.explore-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 12px; }
.explore-card { min-width: 0; border: 0; padding: 0; background: none; text-align: left; cursor: pointer; }
.explore-image { aspect-ratio: 1 / 1.08; overflow: hidden; position: relative; border-radius: 17px; background: var(--green-soft); }
.explore-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.explore-card:hover img { transform: scale(1.04); }
.explore-image .heart-button { position: absolute; right: 8px; top: 8px; width: 36px; height: 36px; }
.explore-copy { padding: 9px 2px 0; }
.explore-copy .location { margin-bottom: 4px; font-size: 8px; }
.explore-copy h3 { margin: 0 0 7px; font-size: 14px; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.explore-copy .card-title-button { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.explore-copy .meta-bottom { font-size: 9px; }
.explore-copy .price strong { font-size: 12px; }
.empty-results { grid-column: 1/-1; padding: 60px 20px; text-align: center; }
.empty-results svg { width: 36px; height: 36px; color: var(--green); }
.empty-results h3 { margin: 14px 0 6px; }
.empty-results p { color: var(--muted); font-size: 13px; }

.map-heading { padding-bottom: 18px; }
.map-heading h1 { margin-bottom: 18px; }
.map-panel { height: 390px; margin: 0 12px; border-radius: 24px; overflow: hidden; position: relative; background: #e6eee4; border: 1px solid #d4dfd3; }
.map-panel::before, .map-panel::after { content: ""; position: absolute; border-radius: 50%; border: 1px solid rgba(29,104,75,.13); }
.map-panel::before { width: 280px; height: 280px; left: -120px; top: 130px; }
.map-panel::after { width: 180px; height: 180px; right: -70px; top: -50px; }
.map-topline { position: absolute; z-index: 4; left: 15px; right: 15px; top: 15px; display: flex; justify-content: space-between; align-items: center; }
.live-pill { min-height: 33px; padding: 0 11px; display: inline-flex; align-items: center; gap: 7px; border-radius: 999px; background: rgba(255,255,255,.88); backdrop-filter: blur(8px); font-size: 8px; font-weight: 800; letter-spacing: .1em; }
.live-pill > span:first-child { width: 7px; height: 7px; border-radius: 50%; background: #3bab69; box-shadow: 0 0 0 4px rgba(59,171,105,.15); }
.round-btn { width: 38px; height: 38px; border: 0; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.9); box-shadow: 0 4px 20px rgba(27,51,39,.1); cursor: pointer; }
.round-btn svg { width: 17px; }
.azerbaijan-map { width: 100%; height: 290px; position: relative; top: 35px; }
.map-country { stroke: rgba(29,104,75,.45); stroke-width: 2; filter: drop-shadow(0 8px 10px rgba(40,80,57,.12)); }
.map-lines { fill: none; stroke: rgba(255,255,255,.7); stroke-width: 2; stroke-dasharray: 5 6; }
.map-pin { cursor: pointer; }
.map-pin > circle:first-child { fill: rgba(255,255,255,.9); stroke: none; }
.map-pin path { fill: var(--green); stroke: var(--green); }
.map-pin circle:nth-of-type(2) { fill: white; stroke: none; }
.map-pin text { text-anchor: middle; font-family: "DM Sans"; font-size: 12px; font-weight: 700; fill: var(--ink); stroke: none; }
.map-pin.selected > circle:first-child { fill: var(--green); transform: scale(1.18); }
.map-pin.selected path { fill: white; stroke: white; }
.map-pin.selected circle:nth-of-type(2) { fill: var(--green); }
.map-place-card { position: absolute; left: 14px; right: 14px; bottom: 14px; min-height: 72px; display: grid; grid-template-columns: 52px 1fr 18px; gap: 11px; align-items: center; padding: 9px; border-radius: 17px; background: rgba(255,255,255,.92); backdrop-filter: blur(14px); box-shadow: 0 8px 30px rgba(25,40,32,.12); }
.map-place-card img { width: 52px; height: 52px; border-radius: 12px; object-fit: cover; }
.map-place-card strong, .map-place-card span { display: block; }
.map-place-card strong { font-family: Manrope, sans-serif; font-size: 14px; margin-bottom: 4px; }
.map-place-card span { color: var(--muted); font-size: 10px; }
.map-place-card > svg { width: 17px; color: var(--muted); }
.download-section { padding-top: 30px; }
.storage { font-size: 10px; color: var(--muted); }
.download-list { border-top: 1px solid var(--line); }
.download-item { min-height: 80px; display: grid; grid-template-columns: 44px 1fr 38px; gap: 11px; align-items: center; border-bottom: 1px solid var(--line); }
.download-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 13px; color: var(--red); background: #f8dede; }
.download-icon.green { color: var(--green); background: var(--green-soft); }
.download-icon.gold { color: #916817; background: #f2e6c9; }
.download-icon svg { width: 19px; }
.download-meta strong, .download-meta span { display: block; }
.download-meta strong { font-size: 12px; margin-bottom: 4px; }
.download-meta span { font-size: 9px; color: var(--muted); }
.download-button { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--surface); cursor: pointer; }
.download-button svg { width: 16px; }
.download-item.downloading .download-button { color: var(--green); }
.download-item.downloaded .download-button { background: var(--green); border-color: var(--green); color: white; }
.progress-track { display: none; height: 3px; border-radius: 2px; margin-top: 7px; background: #e3e5e1; overflow: hidden; }
.progress-track span { width: 0; height: 100%; display: block; background: var(--green); transition: width .25s linear; }
.download-item.downloading .progress-track { display: block; }

.trip-tabs { display: flex; border-bottom: 1px solid var(--line); }
.trip-tabs button { flex: 1; min-height: 44px; border: 0; border-bottom: 2px solid transparent; background: none; color: var(--muted); font-size: 11px; font-weight: 700; cursor: pointer; }
.trip-tabs button.active { color: var(--green); border-bottom-color: var(--green); }
.trips-content { padding-top: 24px; }
.empty-trips { padding: 70px 28px 50px; text-align: center; }
.empty-illustration { width: 104px; height: 104px; margin: 0 auto 22px; border-radius: 50%; display: grid; place-items: center; background: var(--green-soft); color: var(--green); position: relative; }
.empty-illustration::before { content: ""; position: absolute; width: 35px; height: 35px; right: 0; bottom: 5px; border-radius: 50%; background: #f1dfb9; }
.empty-illustration svg { width: 42px; height: 42px; }
.empty-trips h2 { margin-bottom: 9px; font-size: 21px; }
.empty-trips p { color: var(--muted); font-size: 13px; line-height: 1.5; }
.empty-trips button { min-height: 48px; margin-top: 10px; padding: 0 20px; border: 0; border-radius: 999px; background: var(--green); color: white; font-weight: 700; font-size: 12px; cursor: pointer; }
.trip-card { overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); box-shadow: 0 10px 30px rgba(31,46,37,.06); }
.trip-card + .trip-card { margin-top: 14px; }
.trip-image { height: 165px; position: relative; }
.trip-image img { width: 100%; height: 100%; object-fit: cover; }
.trip-date { position: absolute; left: 14px; top: 14px; padding: 8px 11px; border-radius: 10px; background: white; text-align: center; }
.trip-date strong, .trip-date span { display: block; }
.trip-date strong { font-size: 18px; line-height: 1; }
.trip-date span { margin-top: 3px; font-size: 8px; color: var(--red); font-weight: 800; letter-spacing: .1em; }
.trip-copy { padding: 15px; }
.trip-copy h3 { margin: 0 0 10px; }
.trip-details { display: flex; gap: 14px; color: var(--muted); font-size: 10px; }
.trip-details span { display: flex; align-items: center; gap: 4px; }
.trip-details svg { width: 13px; height: 13px; }
.trip-status { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; }
.confirmed { color: var(--green); font-size: 9px; font-weight: 800; letter-spacing: .08em; }
.trip-status button { border: 0; background: none; color: var(--green); font-size: 10px; font-weight: 700; cursor: pointer; }

.bottom-nav { position: fixed; z-index: 30; left: 50%; bottom: 0; width: min(100%, 520px); height: calc(var(--nav-h) + var(--safe-bottom)); transform: translateX(-50%); display: grid; grid-template-columns: repeat(4, 1fr); padding: 9px 8px var(--safe-bottom); border-top: 1px solid rgba(213,214,206,.9); background: rgba(255,253,249,.92); backdrop-filter: blur(20px); }
.nav-item { min-width: 0; border: 0; background: transparent; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; color: #858a86; font-size: 9px; font-weight: 700; position: relative; cursor: pointer; }
.nav-item svg { width: 22px; height: 22px; }
.nav-item.active { color: var(--green); }
.nav-item.active svg { stroke-width: 2.3; }
.nav-item:focus-visible { outline-offset: -3px; border-radius: 14px; }
.nav-badge { display: none; position: absolute; top: 5px; left: calc(50% + 7px); min-width: 15px; height: 15px; padding: 0 4px; border-radius: 8px; background: var(--red); color: white; font-size: 8px; line-height: 15px; border: 2px solid white; }
.nav-badge.visible { display: block; }

.overlay { position: fixed; z-index: 60; inset: 0; background: rgba(10,18,14,.45); backdrop-filter: blur(3px); opacity: 0; pointer-events: none; transition: opacity .25s ease; }
.overlay.open { opacity: 1; pointer-events: auto; }
.bottom-sheet, .booking-sheet { position: fixed; z-index: 70; left: 50%; bottom: 0; width: min(100%, 520px); visibility: hidden; transform: translate(-50%, 105%); background: var(--surface); border-radius: 26px 26px 0 0; box-shadow: 0 -20px 60px rgba(18,31,24,.2); transition: transform .16s ease-out, visibility 0s .16s; }
.bottom-sheet.open, .booking-sheet.open { visibility: visible; transform: translate(-50%, 0); transition-delay: 0s; }
.bottom-sheet { padding: 9px 20px calc(28px + var(--safe-bottom)); }
.sheet-handle { width: 38px; height: 4px; margin: 0 auto 18px; border-radius: 4px; background: #d7d7d0; }
.sheet-head { display: flex; justify-content: space-between; align-items: start; }
.sheet-head h2 { margin-bottom: 15px; }
.icon-button { width: 40px; height: 40px; border: 0; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.9); cursor: pointer; }
.icon-button svg { width: 18px; }
.language-options { display: grid; gap: 8px; }
.language-options button { min-height: 65px; border: 1px solid var(--line); border-radius: 16px; padding: 9px; background: white; display: grid; grid-template-columns: 44px 1fr 22px; align-items: center; gap: 10px; text-align: left; cursor: pointer; }
.language-options button.selected { border-color: var(--green); background: #f7fbf8; }
.language-options button > svg { opacity: 0; width: 18px; color: var(--green); }
.language-options button.selected > svg { opacity: 1; }
.flag { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; color: white; background: #334c75; font-size: 10px; font-weight: 800; }
.flag.az { background: linear-gradient(#00a4dc 0 33%, #ed2939 33% 66%, #3f9c35 66%); text-shadow: 0 1px 3px rgba(0,0,0,.5); }
.flag.ru { background: linear-gradient(#fff 0 33%, #1c57a7 33% 66%, #d52b1e 66%); color: var(--ink); }
.flag.ur { background: #176b3a; font-size: 8px; }
.language-options strong, .language-options small { display: block; }
.language-options strong { font-size: 13px; margin-bottom: 3px; }
.language-options small { color: var(--muted); font-size: 10px; }

.transfer-sheet { max-height: 91dvh; overflow-y: auto; padding-bottom: calc(20px + var(--safe-bottom)); }
.sheet-sub { margin: -8px 0 15px; color: var(--muted); font-size: 11px; line-height: 1.4; }
.vehicle-tabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin: 2px 0 12px; }
.vehicle-tabs button { min-height: 48px; border: 1px solid var(--line); border-radius: 13px; padding: 6px 3px; background: white; font-size: 10px; font-weight: 800; cursor: pointer; }
.vehicle-tabs button small { display: block; margin-top: 3px; color: var(--muted); font-size: 8px; font-weight: 600; }
.vehicle-tabs button.active { border-color: var(--green); background: var(--green); color: white; }
.vehicle-tabs button.active small { color: #c6decf; }
.vehicle-showcase { min-height: 130px; overflow: hidden; display: grid; grid-template-columns: 1.25fr .75fr; align-items: stretch; border-radius: 17px; background: var(--green-dark); color: white; }
.vehicle-showcase img { width: 100%; height: 130px; object-fit: cover; }
.vehicle-showcase div { display: flex; flex-direction: column; justify-content: center; padding: 13px; }
.vehicle-showcase strong { font-family: Manrope, sans-serif; font-size: 18px; line-height: 1.05; }
.vehicle-showcase span { margin-top: 6px; color: #c6decf; font-size: 10px; font-weight: 700; letter-spacing: .07em; }
.transfer-list { margin: 14px 0 8px; border-top: 1px solid var(--line); }
.transfer-rate { min-height: 47px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); }
.transfer-rate > span { font-size: 11px; line-height: 1.25; }
.transfer-rate small { display: block; margin-top: 2px; color: var(--muted); font-size: 8px; }
.transfer-rate strong { flex: 0 0 auto; color: var(--green); font-family: Manrope, sans-serif; font-size: 14px; }
.transfer-request { width: 100%; min-height: 51px; margin-top: 8px; padding: 0 19px; border: 0; border-radius: 999px; display: flex; align-items: center; justify-content: space-between; background: var(--green); color: white; font-size: 12px; font-weight: 700; cursor: pointer; text-decoration: none; }
.transfer-request svg { width: 18px; }
.hotel-tool .tool-icon { background: #eee5d2; color: #9e6c20; }
.visa-tool .tool-icon { background: #e5e2f5; color: #6355a6; }
.ticket-tool .tool-icon { background: #e0f0ef; color: #23746f; }
.visa-sheet, .ticket-sheet { max-height: 82dvh; overflow-y: auto; }
.visa-list { display: grid; gap: 9px; margin-top: 12px; }
.visa-list article, .flight-note { padding: 13px; border: 1px solid var(--line); border-radius: 15px; display: flex; align-items: center; gap: 11px; background: white; }
.visa-flag { width: 39px; height: 39px; flex: 0 0 auto; display: grid; place-items: center; overflow: hidden; border-radius: 12px; background: #d8efe5; }
.visa-flag img { display: block; width: 25px; height: 18px; border-radius: 3px; object-fit: cover; box-shadow: 0 1px 3px rgba(18, 31, 24, .22); }
.visa-flag.dubai { background: #fae7d8; color: #af6327; }
.visa-flag.umrah { background: #e7edd4; color: #5e7425; }
.visa-flag.thailand { background: #ffe5df; color: #b34b35; }
.visa-flag.malaysia { background: #e4edff; color: #3565a6; }
.visa-flag.sri-lanka { background: #f9ecd2; color: #9b691c; }
.visa-flag.singapore { background: #f3e2e9; color: #a74068; }
.visa-list h3, .flight-note strong { margin: 0 0 3px; font-size: 12px; }
.visa-list p, .flight-note span { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.35; }
.flight-note { margin-top: 14px; }
.flight-note > svg { width: 26px; color: var(--green); }
.airline-list { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 13px; }
.airline-card { min-height: 59px; padding: 9px; border: 1px solid var(--line); border-radius: 13px; display: flex; align-items: center; gap: 9px; background: white; box-shadow: 0 5px 14px rgba(22, 36, 30, .035); }
.airline-logo { width: 29px; height: 29px; flex: 0 0 auto; padding: 4px; border: 1px solid #edf0ec; border-radius: 9px; background: #fff; object-fit: contain; }
.airline-card span { color: var(--ink); font-size: 9px; font-weight: 700; line-height: 1.25; }
.service-request { width: 100%; min-height: 51px; margin-top: 15px; padding: 0 19px; border: 0; border-radius: 999px; display: flex; align-items: center; justify-content: space-between; background: var(--green); color: white; font-size: 12px; font-weight: 700; cursor: pointer; }
.service-request svg { width: 18px; }
.contact-request { text-decoration: none; }
.hotels-sheet { max-height: 91dvh; overflow-y: auto; }
.hotels-cover { width: 100%; height: 155px; display: block; object-fit: cover; border-radius: 16px; }
.hotel-list { display: grid; gap: 14px; margin-top: 13px; padding-bottom: 8px; }
.hotel-card { overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: white; box-shadow: 0 7px 19px rgba(22, 36, 30, .05); }
.hotel-card > img { display: block; width: 100%; height: 142px; object-fit: cover; }
.hotel-copy { padding: 13px 14px 8px; }
.hotel-card span { color: var(--green); font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.hotel-card h3 { margin: 6px 0 5px; font-size: 16px; line-height: 1.25; }
.hotel-card p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.hotel-whatsapp { display: flex; align-items: center; justify-content: space-between; min-height: 42px; margin: 3px 12px 12px; padding: 0 13px; border-radius: 12px; background: #147a54; color: white; font-size: 11px; font-weight: 800; text-decoration: none; }
.hotel-whatsapp svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.hotel-whatsapp:hover { background: #0d6544; }

.side-panel { position: fixed; z-index: 70; top: 0; bottom: 0; left: 50%; width: min(88%, 445px); max-height: 100dvh; overflow-y: auto; visibility: hidden; transform: translate(60%, 0); background: var(--surface); box-shadow: -20px 0 60px rgba(18,31,24,.2); transition: transform .16s ease-out, visibility 0s .16s; }
.side-panel.open { visibility: visible; transform: translate(calc(-50% + min(6%, 30px)), 0); transition-delay: 0s; }
.profile-hero { padding: 56px 25px 24px; color: white; background: var(--green-dark); position: relative; }
.profile-hero .panel-close { position: absolute; right: 18px; top: 18px; background: rgba(255,255,255,.12); color: white; }
.profile-avatar { width: 66px; height: 66px; margin-bottom: 18px; border-radius: 50%; display: grid; place-items: center; color: var(--green-dark); background: #e2c77f; font-family: Manrope, sans-serif; font-size: 15px; font-weight: 800; letter-spacing: .03em; }
.profile-hero .eyebrow { color: #bcd8c7; }
.profile-hero h2 { margin: 0 0 5px; max-width: none; font-size: 15px; line-height: 1.15; letter-spacing: -.055em; white-space: nowrap; overflow: hidden; text-overflow: clip; }
.profile-hero > span { display: block; max-width: 260px; color: #bcd0c5; font-size: 11px; line-height: 1.45; }
.profile-stats { display: grid; grid-template-columns: repeat(3,1fr); padding: 18px 10px; border-bottom: 1px solid var(--line); }
.profile-stats div { text-align: center; border-right: 1px solid var(--line); }
.profile-stats div:last-child { border: 0; }
.profile-stats strong, .profile-stats span { display: block; }
.profile-stats strong { font-family: Manrope, sans-serif; font-size: 19px; }
.profile-stats span { margin-top: 2px; color: var(--muted); font-size: 9px; }
.profile-menu { padding: 15px; }
.profile-menu button { width: 100%; min-height: 56px; border: 0; border-bottom: 1px solid var(--line); background: transparent; display: grid; grid-template-columns: 37px 1fr auto 17px; gap: 9px; align-items: center; text-align: left; font-size: 12px; cursor: pointer; }
.profile-menu button > svg { width: 15px; color: var(--muted); }
.profile-menu button > small { color: var(--muted); font-size: 9px; }
.menu-icon { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; color: var(--green); background: var(--green-soft); }
.menu-icon svg { width: 16px; }
.contact-card { margin: 2px 15px 0; padding: 14px; border: 1px solid #dbe5dd; border-radius: 16px; background: #f4f8f4; }
.contact-card p { margin: 0 0 8px; color: var(--green); font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.contact-card a { display: block; width: max-content; max-width: 100%; color: var(--ink); font-size: 12px; font-weight: 700; line-height: 1.85; text-decoration: none; overflow-wrap: anywhere; }
.contact-card .whatsapp-link { margin-top: 4px; color: var(--green); }
.gbn-signature { padding: 14px 25px 32px; text-align: center; }
.gbn-signature img { display: block; width: 210px; max-width: 100%; height: auto; margin: 0 auto; mix-blend-mode: multiply; }

.booking-sheet { max-height: 94dvh; overflow-y: auto; padding-bottom: 0; }
.booking-visual { height: 225px; position: relative; }
.booking-visual img { width: 100%; height: 100%; object-fit: cover; border-radius: 26px 26px 0 0; }
.booking-visual::after { content: ""; position: absolute; inset: 0; border-radius: 26px 26px 0 0; background: linear-gradient(180deg, rgba(0,0,0,.26), transparent 45%); pointer-events: none; }
.booking-close { position: absolute; z-index: 2; right: 15px; top: 15px; }
.booking-category { position: absolute; z-index: 2; left: 17px; bottom: 15px; padding: 7px 10px; border-radius: 999px; background: rgba(255,255,255,.92); font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.booking-content { padding: 20px 20px 18px; }
.booking-title-row { display: flex; justify-content: space-between; align-items: start; gap: 12px; }
.booking-title-row h2 { margin: 0; font-size: 25px; }
.booking-title-row .heart-button { border: 1px solid var(--line); flex: 0 0 auto; }
.rating-row { display: flex; gap: 7px; align-items: center; margin-top: 10px; color: var(--muted); font-size: 10px; }
.rating-row svg { width: 12px; fill: var(--gold); stroke: var(--gold); vertical-align: -2px; }
.booking-divider { height: 1px; margin: 18px 0; background: var(--line); }
.booking-section-title { display: flex; align-items: center; justify-content: space-between; }
.booking-section-title h3 { margin: 0; font-size: 14px; }
.calendar-range { color: var(--green); font-size: 9px; font-weight: 700; }
.calendar-head { min-height: 42px; margin-top: 10px; display: flex; align-items: center; justify-content: space-between; }
.calendar-head strong { font-size: 12px; }
.calendar-head button { width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 10px; display: grid; place-items: center; background: white; color: var(--ink); cursor: pointer; }
.calendar-head button:first-child svg { transform: rotate(180deg); }
.calendar-head button:disabled { opacity: .35; cursor: not-allowed; }
.calendar-head svg { width: 15px; }
.calendar-weekdays, .booking-calendar { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.calendar-weekdays { margin: 6px 0; }
.calendar-weekdays span { color: var(--muted); font-size: 8px; font-weight: 700; text-align: center; }
.date-choice { min-height: 36px; border: 0; border-radius: 10px; background: transparent; color: var(--ink); font-size: 10px; font-weight: 700; cursor: pointer; }
.date-choice:hover { background: var(--green-soft); }
.date-choice.selected { background: var(--green); color: white; }
.date-choice:disabled { color: #c8c9c4; cursor: not-allowed; }
.calendar-empty { min-height: 36px; }
.booking-options { margin-top: 20px; border-top: 1px solid var(--line); }
.booking-options > div, .booking-options > button { width: 100%; min-height: 64px; border: 0; border-bottom: 1px solid var(--line); padding: 0; background: transparent; display: grid; grid-template-columns: 39px 1fr auto; gap: 10px; align-items: center; text-align: left; }
.option-icon { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; background: var(--green-soft); color: var(--green); }
.option-icon svg { width: 17px; }
.booking-options strong, .booking-options small { display: block; }
.booking-options strong { font-size: 12px; margin-bottom: 3px; }
.booking-options small { color: var(--muted); font-size: 9px; }
.stepper { display: flex; align-items: center; gap: 12px; }
.stepper button { width: 31px; height: 31px; border: 1px solid var(--line); border-radius: 50%; display: grid; place-items: center; background: white; cursor: pointer; }
.stepper button svg { width: 13px; }
.stepper span { min-width: 12px; text-align: center; font-size: 12px; font-weight: 700; }
.chevron { width: 16px; color: var(--muted); }
.secure-note { margin-top: 15px; border-radius: 13px; padding: 11px; background: #f2f7f3; color: var(--green); display: flex; gap: 10px; align-items: center; }
.secure-note svg { width: 19px; flex: 0 0 auto; }
.secure-note strong, .secure-note small { display: block; }
.secure-note strong { font-size: 10px; }
.secure-note small { margin-top: 2px; color: var(--muted); font-size: 8px; }
.booking-footer { position: sticky; z-index: 3; bottom: 0; min-height: calc(78px + var(--safe-bottom)); padding: 11px 18px calc(11px + var(--safe-bottom)); border-top: 1px solid var(--line); background: rgba(255,253,249,.96); backdrop-filter: blur(15px); display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.booking-footer > div { min-width: 75px; }
.booking-footer small, .booking-footer strong, .booking-footer div > span { display: block; }
.booking-footer small, .booking-footer div > span { color: var(--muted); font-size: 8px; }
.booking-footer strong { margin: 1px 0; font-family: Manrope, sans-serif; font-size: 19px; }
.booking-footer > button { flex: 1; min-height: 50px; border: 0; border-radius: 999px; padding: 0 18px 0 20px; display: flex; align-items: center; justify-content: space-between; background: var(--green); color: white; font-size: 11px; font-weight: 700; cursor: pointer; }
.booking-footer > button svg { width: 17px; }

.toast { position: fixed; z-index: 100; left: 50%; bottom: calc(var(--nav-h) + 18px); min-width: 180px; min-height: 48px; padding: 0 16px; transform: translate(-50%, 25px); display: flex; align-items: center; justify-content: center; gap: 9px; border-radius: 999px; background: var(--ink); color: white; box-shadow: 0 14px 40px rgba(0,0,0,.22); opacity: 0; pointer-events: none; transition: .25s ease; font-size: 11px; font-weight: 700; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.toast svg { width: 17px; color: #75c99b; }
body.modal-open { overflow: hidden; }

@media (min-width: 700px) {
  body { padding: 24px 0; }
  .app-shell { min-height: calc(100dvh - 48px); border-radius: 28px; }
  .bottom-nav { bottom: 24px; border-radius: 0 0 28px 28px; }
  .app-status { display: none; }
  .topbar { top: 0; border-radius: 28px 28px 0 0; }
  .side-panel { top: 24px; bottom: 24px; max-height: calc(100dvh - 48px); }
  .bottom-sheet, .booking-sheet { bottom: 24px; border-radius: 26px; }
  .booking-visual img, .booking-visual::after { border-radius: 26px 26px 0 0; }
  .booking-footer { border-radius: 0 0 26px 26px; }
  .journey-scroll { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; overflow: visible; padding-bottom: 20px; scroll-snap-type: none; }
  .journey-card { min-width: 0; max-width: none; }
  .journey-image { height: 274px; border-radius: 20px; }
  .journey-topline { top: 10px; left: 10px; right: 10px; }
  .journey-glass { left: 9px; right: 9px; bottom: 9px; padding: 11px; border-radius: 15px; }
  .journey-glass h3 { min-height: 36px; margin: 6px 0 7px; font-size: 16px; line-height: 1.1; }
  .journey-glass .location { font-size: 9px; }
  .journey-glass .price strong { font-size: 17px; }
}

@media (max-width: 360px) {
  .hero-card { height: 360px; }
  .hero-copy h2 { font-size: 30px; }
  .journey-card { flex-basis: 84%; }
  .explore-grid { grid-template-columns: 1fr; }
  .explore-image { aspect-ratio: 1.5 / 1; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
