:root {
  --color-primary: #b5126b;
  --color-primary-strong: #820846;
  --color-primary-soft: #fceaf5;
  --color-secondary: #087f92;
  --color-secondary-soft: #ddf7f7;
  --color-accent: #f4b719;
  --color-accent-hover: #dfa300;
  --color-brand: #dc3495;
  --color-brand-soft: #fdebf6;
  --color-background: #fffaf5;
  --color-surface: #ffffff;
  --color-muted: #fff3e8;
  --color-text: #172333;
  --color-text-soft: #5f6877;
  --color-border: #eedce7;
  --color-danger: #b42318;
  --color-success: #047857;
  --color-ring: #b5126b;
  --shadow-sm: 0 6px 18px rgba(79, 20, 55, .07);
  --shadow-md: 0 18px 48px rgba(79, 20, 55, .11);
  --shadow-lg: 0 36px 96px rgba(79, 20, 55, .18);
  --radius-sm: 12px;
  --radius-md: 22px;
  --radius-lg: 32px;
  --container: 1200px;
  --font-display: 'Montserrat', 'Futura', 'Avenir Next', system-ui, sans-serif;
  --font-heading: 'Montserrat', 'Futura', 'Avenir Next', system-ui, sans-serif;
  --font-body: 'Montserrat', 'Futura', 'Avenir Next', system-ui, sans-serif;
  --z-header: 30;
  --z-drawer: 50;
  --transition: 240ms cubic-bezier(.2, .8, .2, 1);
  --hero-shift: 0px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 104px; }
body {
  margin: 0;
  background:
    radial-gradient(circle at 6% 2%, rgba(220,52,149,.08), transparent 27rem),
    radial-gradient(circle at 96% 8%, rgba(244,183,25,.10), transparent 24rem),
    var(--color-background);
  color: var(--color-text);
  font: 400 16px/1.6 var(--font-body);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, select { cursor: pointer; }
button { color: inherit; }
a, button, input, select, textarea, [role="button"] { touch-action: manipulation; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { font-family: var(--font-heading); letter-spacing: -.035em; line-height: 1.18; }
h1 { font-size: clamp(2.65rem, 6vw, 5.65rem); }
h2 { font-size: clamp(2rem, 4vw, 3.35rem); }
h3 { font-size: 1.25rem; }
::selection { background: var(--color-accent); color: var(--color-primary-strong); }
:focus-visible { outline: 3px solid var(--color-ring); outline-offset: 3px; }

.container { width: min(calc(100% - 32px), var(--container)); margin-inline: auto; }
.icon { width: 20px; height: 20px; flex: 0 0 auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 100; left: 16px; top: -80px; padding: 10px 16px; border-radius: 8px; background: var(--color-primary); color: #fff; transition: top var(--transition); }
.skip-link:focus { top: 16px; }

.eyebrow { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; color: var(--color-brand); font: 700 .76rem/1.2 var(--font-heading); letter-spacing: .16em; text-transform: uppercase; }
.eyebrow .icon { width: 17px; height: 17px; }
.eyebrow--light { color: #ffda6a; }

.button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 22px;
  border: 1px solid var(--color-accent);
  border-radius: 999px;
  background: var(--color-accent);
  color: var(--color-primary-strong);
  font: 700 .96rem/1 var(--font-heading);
  box-shadow: var(--shadow-sm);
  transition: background var(--transition), border-color var(--transition), box-shadow var(--transition), color var(--transition), transform var(--transition);
}
.button:hover { background: var(--color-accent-hover); border-color: var(--color-accent-hover); box-shadow: 0 8px 22px rgba(201, 145, 0, .24); transform: translateY(-1px); }
.button:active { transform: translateY(0); }
.button .icon { width: 18px; height: 18px; }
.button--small { min-height: 44px; padding: 10px 18px; font-size: .88rem; }
.button--ghost { border-color: rgba(255,255,255,.6); background: rgba(255,255,255,.09); color: #fff; box-shadow: none; backdrop-filter: blur(8px); }
.button--ghost:hover { border-color: #fff; background: #fff; color: var(--color-primary); box-shadow: none; }
.button--outline { border-color: var(--color-primary); background: transparent; color: var(--color-primary); box-shadow: none; }
.button--outline:hover { border-color: var(--color-primary); background: var(--color-primary); color: #fff; }
.button--dark { border-color: var(--color-primary); background: var(--color-primary); color: #fff; }
.button--dark:hover { border-color: var(--color-primary-strong); background: var(--color-primary-strong); }
.button--secondary { border-color: var(--color-border); background: var(--color-surface); color: var(--color-primary); box-shadow: none; }
.button--secondary:hover { border-color: var(--color-primary); background: var(--color-primary-soft); box-shadow: none; }
.button--full { width: 100%; }
.button[disabled] { cursor: wait; opacity: .7; transform: none; }

.text-link { min-height: 44px; display: inline-flex; align-items: center; gap: 8px; color: var(--color-primary); font: 700 .93rem/1.2 var(--font-heading); }
.text-link .icon { width: 17px; transition: transform var(--transition); }
.text-link:hover .icon { transform: translateX(4px); }
.text-link--light { color: #fff; text-decoration: underline; text-underline-offset: 4px; }

.topbar { min-height: 36px; background: linear-gradient(90deg, #0369a1, #0f9f91); color: rgba(255,255,255,.88); font-size: .82rem; }
.topbar__inner { min-height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.topbar__message { letter-spacing: .035em; }
.topbar__links { display: flex; align-items: center; gap: 22px; }
.topbar__links a { min-height: 36px; display: inline-flex; align-items: center; gap: 7px; transition: color var(--transition); }
.topbar__links a:hover { color: #fff; }
.topbar__links .icon { width: 15px; height: 15px; color: var(--color-accent); }

.site-header { position: sticky; z-index: var(--z-header); top: 0; background: rgba(255,255,255,.92); border-bottom: 1px solid rgba(3,105,161,.10); box-shadow: 0 5px 24px rgba(3,105,161,.06); backdrop-filter: blur(16px); }
.site-header__inner { min-height: 82px; display: flex; align-items: center; gap: clamp(18px, 2.2vw, 34px); }
.brand { display: inline-flex; align-items: center; flex: 0 0 auto; }
.brand img { width: 150px; height: 66px; object-fit: contain; object-position: left center; }
.primary-nav { min-width: 0; margin-left: auto; display: flex; flex-wrap: nowrap; align-items: center; gap: clamp(15px, 1.75vw, 26px); }
.primary-nav a, .primary-nav summary { min-height: 44px; display: inline-flex; align-items: center; position: relative; flex: 0 0 auto; color: #46657d; font: 600 .94rem/1 var(--font-heading); white-space: nowrap; transition: color var(--transition); }
.primary-nav > a::after, .primary-nav > details > summary::after { content: ''; position: absolute; left: 0; right: 100%; bottom: 7px; height: 2px; background: var(--color-brand); transition: right var(--transition); }
.primary-nav > a:hover, .primary-nav > a.is-active, .primary-nav summary:hover, .primary-nav summary.is-active { color: var(--color-primary); }
.primary-nav > a:hover::after, .primary-nav > a.is-active::after, .primary-nav > details > summary:hover::after, .primary-nav > details > summary.is-active::after { right: 0; }
.primary-nav__group { position: relative; flex: 0 0 auto; }
.primary-nav__group > summary { gap: 5px; cursor: pointer; list-style: none; }
.primary-nav__group > summary::-webkit-details-marker { display: none; }
.primary-nav__group > summary .icon { width: 15px; height: 15px; transition: transform var(--transition); }
.primary-nav__group[open] > summary .icon { transform: rotate(180deg); }
.primary-nav__submenu { width: min(340px, calc(100vw - 32px)); max-height: min(560px, calc(100dvh - 140px)); position: absolute; z-index: 30; left: -18px; top: calc(100% + 8px); display: grid; gap: 4px; padding: 10px; overflow-y: auto; overscroll-behavior: contain; border: 1px solid rgba(181,18,107,.13); border-radius: 18px; background: rgba(255,255,255,.98); box-shadow: 0 24px 65px rgba(62,17,45,.18); opacity: 0; visibility: hidden; transform: translateY(-7px); transition: opacity var(--transition), visibility var(--transition), transform var(--transition); backdrop-filter: blur(18px); }
.primary-nav__group[open] > .primary-nav__submenu, .primary-nav__group:hover > .primary-nav__submenu, .primary-nav__group:focus-within > .primary-nav__submenu { opacity: 1; visibility: visible; transform: translateY(0); }
.primary-nav__submenu a { min-height: 46px; display: grid; align-content: center; padding: 9px 12px; border-radius: 11px; white-space: normal; }
.primary-nav__submenu a::after { display: none; }
.primary-nav__submenu a:hover, .primary-nav__submenu a:focus-visible, .primary-nav__submenu a.is-active { background: linear-gradient(135deg, var(--color-primary-soft), #fff8dd); color: var(--color-primary); }
.primary-nav__submenu strong { display: block; }
.primary-nav__submenu strong { font: 700 .84rem/1.3 var(--font-heading); }
.header-cta { white-space: nowrap; }
.nav-toggle { width: 48px; height: 48px; margin-left: auto; display: none; place-items: center; border: 0; border-radius: 50%; background: var(--color-primary); color: #fff; }
.nav-toggle__close { display: none; }
.nav-toggle .icon { width: 23px; height: 23px; }
.nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__close { display: block; }

.flash-wrap { padding-top: 16px; }
.flash { min-height: 48px; display: flex; align-items: center; gap: 10px; padding: 12px 16px; border: 1px solid #a7e0c1; border-radius: var(--radius-sm); background: #ecfdf5; color: #046c4e; font-weight: 600; }
.flash--error { border-color: #f1b8b2; background: #fff0ee; color: var(--color-danger); }

.hero { min-height: 760px; position: relative; display: flex; align-items: center; color: #fff; isolation: isolate; }
.hero__slider { position: absolute; inset: 0; z-index: -2; }
.hero__slider { overflow: hidden; background: #44102f; }
.hero__slide { position: absolute; inset: 0; margin: 0; opacity: 0; visibility: hidden; transition: opacity 1100ms cubic-bezier(.22,.61,.36,1), visibility 1100ms; }
.hero__slide.is-active { z-index: 1; opacity: 1; visibility: visible; }
.hero__slide img { width: 100%; height: 100%; display: block; object-fit: cover; transform: translate3d(-1%, var(--hero-shift, 0), 0) scale(1.09); transform-origin: center; will-change: transform; }
.hero__slide.is-active img { animation: hero-kenburns var(--slide-duration, 7s) cubic-bezier(.2,.55,.3,1) both; }
.hero__content { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(330px, .7fr); align-items: center; gap: clamp(40px, 7vw, 100px); padding-top: 80px; padding-bottom: 150px; }
.hero__copy { max-width: 720px; }
.hero h1 { margin-bottom: 26px; max-width: 680px; color: #fff; }
.hero h1 em { color: #ffe071; font-style: italic; font-weight: 600; text-shadow: 0 4px 22px rgba(117,82,0,.22); }
.hero__lead { max-width: 610px; margin-bottom: 30px; color: rgba(255,255,255,.86); font-size: 1.18rem; line-height: 1.65; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }

.trip-search { padding: 28px; border: 1px solid rgba(255,255,255,.70); border-radius: var(--radius-lg); background: rgba(255,255,255,.96); color: var(--color-text); box-shadow: var(--shadow-lg); backdrop-filter: blur(16px); }
.trip-search__heading { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; }
.trip-search__heading > span { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: var(--color-brand-soft); color: var(--color-brand); }
.trip-search__heading strong, .trip-search__heading small { display: block; }
.trip-search__heading strong { font: 700 1rem/1.3 var(--font-heading); }
.trip-search__heading small { margin-top: 2px; color: var(--color-text-soft); }
.trip-search label, .field label, .filter-bar label { display: block; margin: 14px 0 6px; color: var(--color-text); font: 600 .88rem/1.3 var(--font-heading); }
input, select, textarea { width: 100%; min-height: 48px; padding: 11px 14px; border: 1px solid #cfd9d2; border-radius: var(--radius-sm); background: #fff; color: var(--color-text); transition: border-color var(--transition), box-shadow var(--transition); }
textarea { min-height: 100px; resize: vertical; }
input::placeholder, textarea::placeholder { color: #829089; opacity: 1; }
input:focus, select:focus, textarea:focus { border-color: var(--color-ring); outline: none; box-shadow: 0 0 0 3px rgba(185,31,107,.13); }
.search-control, .input-with-icon { position: relative; display: block; }
.search-control .icon, .input-with-icon .icon { position: absolute; z-index: 1; left: 14px; top: 50%; width: 18px; transform: translateY(-50%); color: var(--color-brand); pointer-events: none; }
.search-control input, .input-with-icon input { padding-left: 42px; }
.trip-search .button { margin-top: 20px; }

.trust-strip { position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); display: grid; grid-template-columns: repeat(4, 1fr); border-radius: var(--radius-md) var(--radius-md) 0 0; background: rgba(255,255,255,.97); color: var(--color-text); box-shadow: 0 -8px 36px rgba(3,105,161,.16); }
.trust-strip div { min-height: 104px; display: flex; flex-direction: column; justify-content: center; padding: 18px 26px; border-right: 1px solid var(--color-border); }
.trust-strip div:last-child { border-right: 0; }
.trust-strip strong { color: var(--color-brand); font: 700 1.8rem/1 var(--font-heading); }
.trust-strip span { margin-top: 7px; color: var(--color-text-soft); font-size: .88rem; }
.hero-slider-controls { position: absolute; z-index: 4; left: 50%; bottom: 122px; transform: translateX(-50%); display: flex; align-items: center; justify-content: space-between; gap: 18px; pointer-events: none; }
.hero-slider-story, .hero-slider-actions { min-height: 58px; display: flex; align-items: center; border: 1px solid rgba(255,255,255,.22); border-radius: 18px; background: rgba(40,7,29,.52); color: #fff; box-shadow: 0 16px 38px rgba(29,2,20,.18); backdrop-filter: blur(14px); pointer-events: auto; }
.hero-slider-story { min-width: 300px; gap: 11px; padding: 9px 13px; }
.hero-slider-story__mark { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 12px; background: linear-gradient(135deg, rgba(244,183,25,.28), rgba(220,52,149,.28)); color: #ffe071; }
.hero-slider-story__mark .icon { width: 18px; height: 18px; }
.hero-slider-story div { min-width: 0; flex: 1; }
.hero-slider-story small, .hero-slider-story strong { display: block; }
.hero-slider-story small { margin-bottom: 2px; color: rgba(255,255,255,.62); font: 600 .62rem/1.3 var(--font-heading); letter-spacing: .08em; text-transform: uppercase; }
.hero-slider-story strong { overflow: hidden; font: 700 .83rem/1.35 var(--font-heading); text-overflow: ellipsis; white-space: nowrap; }
.hero-slider-count { flex: 0 0 auto; color: rgba(255,255,255,.55); font: 600 .67rem/1 var(--font-heading); }
.hero-slider-count b { color: #ffe071; font-size: .88rem; }
.hero-slider-actions { gap: 3px; padding: 6px; }
.hero-slider-arrow, .hero-slider-pause { width: 44px; height: 44px; display: grid; place-items: center; flex: 0 0 auto; border: 0; border-radius: 13px; background: transparent; color: rgba(255,255,255,.82); transition: color var(--transition), background var(--transition), transform var(--transition); }
.hero-slider-arrow:hover, .hero-slider-pause:hover { background: rgba(255,255,255,.12); color: #ffe071; }
.hero-slider-arrow:active, .hero-slider-pause:active { transform: scale(.94); }
.hero-slider-arrow .icon, .hero-slider-pause .icon { width: 18px; height: 18px; }
.hero-slider-arrow--prev .icon { transform: rotate(180deg); }
.hero-slider-dots { max-width: 330px; display: flex; align-items: center; overflow-x: auto; scrollbar-width: none; }
.hero-slider-dots::-webkit-scrollbar { display: none; }
.hero-slider-dots button { width: 44px; height: 44px; display: grid; place-items: center; flex: 0 0 auto; padding: 0; border: 0; background: transparent; }
.hero-slider-dots button > span { width: 19px; height: 3px; position: relative; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.34); transition: width var(--transition), background var(--transition); }
.hero-slider-dots button[aria-current="true"] > span { width: 25px; background: rgba(255,255,255,.28); }
.hero-slider-dots button[aria-current="true"] > span::after { content: ''; position: absolute; inset: 0; transform-origin: left center; background: linear-gradient(90deg, #ffe071, var(--color-accent)); animation: hero-slide-progress var(--slide-duration, 7s) linear both; }
.hero-slider-controls.is-paused .hero-slider-dots button[aria-current="true"] > span::after { animation-play-state: paused; }
.hero-slider-pause__play { display: none; }
.hero-slider-controls.is-paused .hero-slider-pause__pause { display: none; }
.hero-slider-controls.is-paused .hero-slider-pause__play { display: grid; }

.section { padding: clamp(76px, 9vw, 124px) 0; }
.section--cream { background: linear-gradient(135deg, #eff9ff 0%, #ffffff 48%, #fdf2f8 100%); }
.section-heading { margin-bottom: 42px; }
.section-heading h2 { margin-bottom: 0; max-width: 720px; }
.section-heading--split { display: grid; grid-template-columns: 1.25fr .75fr; align-items: end; gap: 60px; }
.section-heading--split > p { margin: 0 0 7px; color: var(--color-text-soft); font-size: 1.05rem; }
.section-heading--center { max-width: 760px; margin-inline: auto; text-align: center; }
.section-heading--center .eyebrow { justify-content: center; }
.section-heading--center h2 { margin-inline: auto; }
.section-heading--center > p:last-child { margin: 18px auto 0; max-width: 640px; color: var(--color-text-soft); font-size: 1.06rem; }
.section-action { margin-top: 42px; text-align: center; }

.tour-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.tour-card { min-width: 0; overflow: hidden; border: 1px solid rgba(3,105,161,.12); border-radius: var(--radius-md); background: var(--color-surface); box-shadow: var(--shadow-sm); transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition); }
.tour-card:hover { transform: translateY(-4px); border-color: rgba(185,31,107,.25); box-shadow: var(--shadow-md); }
.tour-card__image { aspect-ratio: 1 / .82; position: relative; display: block; overflow: hidden; background: var(--color-primary-soft); }
.tour-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms cubic-bezier(.2,.8,.2,1); }
.tour-card:hover .tour-card__image img { transform: scale(1.035); }
.tour-card__tag, .tour-detail-hero__tag { position: absolute; top: 14px; left: 14px; padding: 7px 11px; border-radius: 999px; background: rgba(255,255,255,.94); color: var(--color-primary); font: 700 .72rem/1 var(--font-heading); letter-spacing: .04em; box-shadow: 0 6px 18px rgba(3,105,161,.12); }
.tour-card__body { padding: 20px; }
.tour-card__meta { display: flex; flex-wrap: wrap; gap: 10px 14px; margin-bottom: 12px; color: var(--color-text-soft); font-size: .78rem; }
.tour-card__meta span { display: inline-flex; align-items: center; gap: 5px; }
.tour-card__meta .icon { width: 15px; height: 15px; color: var(--color-brand); }
.tour-card h3 { min-height: 2.35em; margin-bottom: 10px; font-size: 1.12rem; }
.tour-card h3 a { transition: color var(--transition); }
.tour-card h3 a:hover { color: var(--color-brand); }
.tour-card__body > p { min-height: 4.65em; margin-bottom: 16px; color: var(--color-text-soft); font-size: .9rem; line-height: 1.55; }
.tour-card__departure { display: flex; align-items: center; gap: 7px; margin: -4px 0 16px; color: var(--color-text-soft); font-size: .83rem; }
.tour-card__departure .icon { width: 16px; color: var(--color-brand); }
.tour-card__footer { display: flex; align-items: center; justify-content: space-between; padding-top: 15px; border-top: 1px solid var(--color-border); }
.tour-card__footer small, .tour-card__footer strong { display: block; }
.tour-card__footer small { color: var(--color-text-soft); font-size: .75rem; }
.tour-card__footer strong { color: var(--color-brand); font: 700 1.1rem/1.4 var(--font-heading); }
.icon-button { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--color-border); border-radius: 50%; color: var(--color-primary); transition: background var(--transition), color var(--transition), border-color var(--transition); }
.icon-button:hover { border-color: var(--color-primary); background: var(--color-primary); color: #fff; }

.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.service-card { min-height: 330px; position: relative; display: flex; flex-direction: column; padding: 32px; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: linear-gradient(160deg, #fff 70%, #f0f9ff); transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition); }
.service-card:hover { transform: translateY(-3px); border-color: #8fd5f5; box-shadow: var(--shadow-md); }
.service-card--feature { background: linear-gradient(145deg, #0369a1, #0ea5a3); color: #fff; border-color: transparent; }
.service-card--feature p { color: rgba(255,255,255,.72) !important; }
.service-card--feature .text-link { color: #ffda6a; }
.service-card__number { position: absolute; right: 24px; top: 18px; color: rgba(3,105,161,.08); font: 700 4.7rem/1 var(--font-heading); }
.service-card--feature .service-card__number { color: rgba(255,255,255,.08); }
.service-card__icon { width: 54px; height: 54px; display: grid; place-items: center; margin-bottom: auto; border-radius: 16px; background: var(--color-primary-soft); color: var(--color-primary); box-shadow: inset 0 0 0 1px rgba(3,105,161,.08); }
.service-card--feature .service-card__icon { background: rgba(255,255,255,.11); color: #ffda6a; }
.service-card__icon .icon { width: 27px; height: 27px; }
.service-card:nth-child(3n+2) .service-card__icon { background: var(--color-secondary-soft); color: #08786d; }
.service-card:nth-child(3n) .service-card__icon { background: #fff4c7; color: #9a6b00; }
.service-card h3 { margin: 28px 0 10px; font-size: 1.35rem; }
.service-card p { margin-bottom: 22px; color: var(--color-text-soft); }

.section--story { position: relative; overflow: hidden; background: linear-gradient(180deg, #fff, #f7fcff); }
.section--story::before { content: ''; position: absolute; width: 460px; height: 460px; right: -220px; top: -220px; border-radius: 50%; background: radial-gradient(circle, rgba(244,180,0,.25), rgba(244,180,0,.04) 68%, transparent 70%); }
.story-grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: clamp(50px, 8vw, 110px); }
.story-media { position: relative; min-height: 600px; }
.story-media::before { content: ''; position: absolute; inset: 34px -22px -22px 34px; border-radius: var(--radius-lg); background: var(--color-accent); }
.story-media img { width: 100%; height: 600px; position: relative; z-index: 1; object-fit: cover; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.story-stamp { width: 132px; height: 132px; position: absolute; z-index: 2; right: -34px; bottom: 42px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 6px solid #fff; border-radius: 50%; background: var(--color-brand); color: #fff; text-align: center; box-shadow: var(--shadow-md); }
.story-stamp strong { font: 700 2rem/1 var(--font-heading); }
.story-stamp span { margin-top: 5px; font-size: .8rem; }
.story-copy { position: relative; z-index: 1; }
.story-copy h2 { margin-bottom: 10px; }
.story-lead { color: var(--color-brand); font: 600 1.3rem/1.45 var(--font-heading); }
.story-copy > p:not(.eyebrow):not(.story-lead) { color: var(--color-text-soft); font-size: 1.04rem; }
.check-list { display: grid; gap: 16px; margin: 28px 0 32px; padding: 0; list-style: none; }
.check-list li { display: flex; gap: 13px; }
.check-list li > .icon { width: 26px; height: 26px; padding: 5px; border-radius: 50%; background: var(--color-primary-soft); color: var(--color-primary); }
.check-list strong, .check-list small { display: block; }
.check-list strong { font: 700 1rem/1.4 var(--font-heading); }
.check-list small { margin-top: 2px; color: var(--color-text-soft); font-size: .9rem; }
.capability-profile { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 15px; margin: -6px 0 28px; padding: 17px; border: 1px solid rgba(181,18,107,.18); border-radius: 18px; background: linear-gradient(125deg, #fff7dc, #fff6fb 58%, #fff); box-shadow: 0 14px 34px rgba(72,18,50,.06); }
.capability-profile__icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; background: linear-gradient(145deg, var(--color-primary), var(--color-brand)); color: #fff; box-shadow: 0 9px 18px rgba(181,18,107,.2); }
.capability-profile__icon .icon { width: 23px; height: 23px; }
.capability-profile__copy { min-width: 0; }
.capability-profile__copy .eyebrow { margin-bottom: 3px; color: var(--color-primary); font-size: .68rem; }
.capability-profile__copy h3 { margin: 0; color: var(--color-text); font: 800 1rem/1.3 var(--font-heading); }
.capability-profile__copy > p:last-child { margin: 4px 0 0; color: var(--color-text-soft); font-size: .81rem; line-height: 1.45; }
.capability-profile__action { min-height: 44px; padding: 10px 13px; font-size: .78rem; white-space: nowrap; }

.partners-section { position: relative; overflow: hidden; background: #fff; font-family: var(--font-body); }
.partners-section::before { content: ''; width: 520px; height: 520px; position: absolute; left: -300px; top: 70px; border-radius: 50%; background: radial-gradient(circle, rgba(56,189,248,.17), rgba(56,189,248,0) 68%); pointer-events: none; }
.partners-section::after { content: ''; width: 460px; height: 460px; position: absolute; right: -270px; bottom: 60px; border-radius: 50%; background: radial-gradient(circle, rgba(192,38,117,.12), rgba(192,38,117,0) 68%); pointer-events: none; }
.partners-shell { position: relative; z-index: 1; padding: clamp(32px, 5vw, 64px); border: 1px solid rgba(3,105,161,.12); border-radius: 32px; background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(240,249,255,.86)); box-shadow: 0 30px 90px rgba(3,105,161,.10); }
.partners-heading { display: grid; grid-template-columns: 1.15fr .85fr; align-items: end; gap: clamp(40px, 7vw, 88px); padding-bottom: 48px; }
.partners-heading h2 { max-width: 760px; margin-bottom: 0; font: 600 clamp(2rem, 4vw, 3.4rem)/1.15 var(--font-heading); letter-spacing: -.045em; }
.partners-heading__copy > p:first-child { margin-bottom: 18px; color: var(--color-text-soft); font-size: 1.05rem; line-height: 1.75; }
.partners-note { display: flex; align-items: center; gap: 9px; margin: 0; color: var(--color-primary); font-size: .88rem; font-weight: 600; }
.partners-note .icon { width: 18px; height: 18px; }
.partner-metrics { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); }
.partner-metrics > div { min-height: 122px; display: flex; flex-direction: column; justify-content: center; padding: 24px 26px; border-right: 1px solid var(--color-border); }
.partner-metrics > div:last-child { border-right: 0; }
.partner-metrics strong { color: var(--color-primary); font: 600 clamp(1.8rem, 3vw, 2.45rem)/1 var(--font-heading); letter-spacing: -.045em; }
.partner-metrics span { margin-top: 9px; color: var(--color-text-soft); font-size: .82rem; line-height: 1.4; }
.partner-logo-wrap { margin-top: 52px; }
.partner-logo-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
.partner-logo-heading p { margin: 0; color: var(--color-text); font-size: .94rem; font-weight: 600; }
.partner-logo-heading span { color: var(--color-text-soft); font-size: .8rem; }
.partner-logo-marquee { position: relative; overflow: hidden; contain: layout paint; -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.partner-logo-track { width: max-content; display: flex; transform: translate3d(-50%, 0, 0); animation: partner-logo-flow-ltr 42s linear infinite; will-change: transform; }
.partner-logo-wrap:hover .partner-logo-track { animation-play-state: paused; }
.partner-logo-group { display: flex; flex: 0 0 auto; gap: 12px; padding-right: 12px; }
.partner-logo-card { width: clamp(150px, 15vw, 188px); min-width: 0; min-height: 140px; flex: 0 0 auto; margin: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 14px 12px 12px; border: 1px solid rgba(3,105,161,.10); border-radius: 18px; background: rgba(255,255,255,.88); box-shadow: 0 4px 16px rgba(3,105,161,.04); transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition), background var(--transition); }
.partner-logo-card:hover { border-color: rgba(3,105,161,.24); background: #fff; box-shadow: 0 14px 34px rgba(3,105,161,.10); transform: translateY(-2px); }
.partner-logo-card img { width: 92px; height: 86px; object-fit: contain; filter: grayscale(1); opacity: .64; transition: filter 280ms ease, opacity 280ms ease, transform 280ms ease; }
.partner-logo-card:hover img { filter: grayscale(0); opacity: 1; transform: scale(1.04); }
.partner-logo-card figcaption { max-width: 100%; margin-top: 5px; overflow: hidden; color: var(--color-text-soft); font-size: .75rem; line-height: 1.3; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
@keyframes partner-logo-flow-ltr { from { transform: translate3d(-50%, 0, 0); } to { transform: translate3d(0, 0, 0); } }
.partner-segments { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 28px; }
.partner-segment { min-height: 340px; position: relative; display: flex; flex-direction: column; padding: 28px; overflow: hidden; border: 1px solid var(--color-border); border-radius: 22px; background: rgba(255,255,255,.93); box-shadow: 0 8px 28px rgba(3,105,161,.05); }
.partner-segment::before { content: ''; height: 3px; position: absolute; inset: 0 0 auto; background: linear-gradient(90deg, var(--color-primary), #38bdf8); }
.partner-segment:nth-child(2)::before { background: linear-gradient(90deg, var(--color-secondary), #2dd4bf); }
.partner-segment:nth-child(3)::before { background: linear-gradient(90deg, var(--color-brand), #f472b6); }
.partner-segment__icon { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 26px; border-radius: 14px; background: var(--color-primary-soft); color: var(--color-primary); }
.partner-segment__icon .icon { width: 24px; height: 24px; }
.partner-segment__icon--aqua { background: var(--color-secondary-soft); color: #08786d; }
.partner-segment__icon--pink { background: var(--color-brand-soft); color: var(--color-brand); }
.partner-segment__label { margin-bottom: 10px; color: var(--color-primary); font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.partner-segment h3 { margin-bottom: 12px; font: 600 1.25rem/1.42 var(--font-heading); letter-spacing: -.025em; }
.partner-segment > p:not(.partner-segment__label) { margin-bottom: 22px; color: var(--color-text-soft); font-size: .9rem; line-height: 1.7; }
.partner-segment small { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--color-border); color: var(--color-text-soft); font-size: .72rem; line-height: 1.5; }
.partner-promise { display: flex; align-items: center; justify-content: space-between; gap: 48px; margin-top: 28px; padding: 32px; border-radius: 24px; background: linear-gradient(130deg, #0f2740, #075985 58%, #08786d); color: #fff; box-shadow: 0 22px 54px rgba(7,89,133,.18); }
.partner-promise > div { max-width: 760px; }
.partner-promise .eyebrow { margin-bottom: 8px; }
.partner-promise h3 { margin: 0; color: #fff; font: 500 clamp(1.15rem, 2.4vw, 1.55rem)/1.5 var(--font-heading); letter-spacing: -.025em; }
.partner-promise .button { flex: 0 0 auto; white-space: nowrap; }

.testimonial-section { background: linear-gradient(135deg, #e0f2fe 0%, #ecfeff 55%, #fdf2f8 100%); }
.testimonial-grid { display: grid; grid-template-columns: .85fr 1.15fr; align-items: center; gap: 80px; }
.testimonial-intro h2 { margin-bottom: 26px; }
.rating { color: var(--color-accent-hover); letter-spacing: .12em; font-weight: 700; }
.rating span { margin-left: 10px; color: var(--color-text-soft); font-size: .88rem; letter-spacing: 0; font-weight: 500; }
.testimonial-card { margin: 0; padding: 40px; border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-md); }
.testimonial-card blockquote { margin: 0 0 30px; color: var(--color-primary); font: 500 clamp(1.2rem, 2.4vw, 1.65rem)/1.55 var(--font-heading); letter-spacing: -.02em; }
.testimonial-card figcaption { display: flex; align-items: center; gap: 12px; }
.avatar, .lead-avatar { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: var(--color-brand-soft); color: var(--color-brand); font: 700 1rem/1 var(--font-heading); }
.testimonial-card figcaption strong, .testimonial-card figcaption small { display: block; }
.testimonial-card figcaption small { color: var(--color-text-soft); }

.cta-band { min-height: 540px; position: relative; display: flex; align-items: center; isolation: isolate; color: #fff; }
.cta-band__media, .cta-band__overlay { position: absolute; inset: 0; z-index: -2; }
.cta-band__media { background: var(--cta-image, url('../images/cta.jpg')) center/cover no-repeat; }
.cta-band__overlay { z-index: -1; background: linear-gradient(90deg, rgba(3,105,161,.94), rgba(15,159,145,.70) 60%, rgba(14,165,233,.20)); }
.cta-band__content h2 { max-width: 760px; margin-bottom: 30px; color: #fff; }
.cta-band__content > div { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; }
.cta-phone { min-height: 50px; display: inline-flex; align-items: center; gap: 11px; }
.cta-phone > .icon { width: 28px; height: 28px; color: var(--color-accent); }
.cta-phone small, .cta-phone span { display: block; }
.cta-phone small { color: rgba(255,255,255,.68); font-size: .75rem; }
.cta-phone span { font: 700 1.15rem/1.25 var(--font-heading); }

.site-footer { padding: 78px 0 26px; background: linear-gradient(140deg, #062f4a, #075985 55%, #076a64); color: rgba(255,255,255,.78); }
.footer-grid { display: grid; grid-template-columns: 1.25fr .7fr 1fr .8fr; gap: 56px; }
.brand--footer img { width: 168px; height: 78px; filter: brightness(1.08); }
.footer-brand > p { max-width: 330px; margin: 16px 0 24px; }
.footer-hotline { min-height: 44px; display: inline-flex; align-items: center; gap: 11px; color: #fff; }
.footer-hotline > .icon { width: 30px; height: 30px; color: var(--color-accent); }
.footer-hotline small, .footer-hotline span { display: block; }
.footer-hotline small { color: rgba(255,255,255,.6); font-size: .75rem; }
.footer-hotline span { font: 700 1.1rem/1.25 var(--font-heading); }
.footer-title { margin: 14px 0 22px; color: #fff; font-size: 1rem; letter-spacing: 0; }
.footer-links, .contact-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.footer-links a, .contact-list a { min-height: 44px; display: inline-flex; align-items: center; transition: color var(--transition); }
.footer-links a:hover, .contact-list a:hover { color: #fff; }
.contact-list li { display: flex; align-items: flex-start; gap: 10px; }
.contact-list .icon { width: 18px; margin-top: 3px; color: var(--color-accent); }
.footer-hours { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,.14); }
.footer-hours strong { color: #fff; }
.footer-note { font-size: .9rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 24px; margin-top: 56px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12); font-size: .82rem; }
.footer-bottom p { margin: 0; }
.mobile-actions { display: none; }

.page-hero { min-height: 420px; display: flex; align-items: center; position: relative; overflow: hidden; color: #fff; background: linear-gradient(90deg, rgba(3,105,161,.94), rgba(15,159,145,.58)), url('../images/tour-da-nang.jpg') center 42%/cover no-repeat; }
.page-hero::after { content: ''; width: 360px; height: 360px; position: absolute; right: 8%; bottom: -250px; border: 40px solid rgba(255,255,255,.07); border-radius: 50%; }
.page-hero__content { position: relative; z-index: 1; padding-block: 70px; }
.page-hero h1 { max-width: 760px; margin-bottom: 20px; font-size: clamp(2.7rem, 6vw, 4.8rem); }
.page-hero__content > p:last-child { max-width: 630px; margin-bottom: 0; color: rgba(255,255,255,.79); font-size: 1.12rem; }

.filter-bar { display: grid; grid-template-columns: minmax(190px, 1.15fr) minmax(150px, .72fr) minmax(170px, .85fr) auto; align-items: end; gap: 16px; margin-top: -125px; margin-bottom: 32px; padding: 24px; position: relative; z-index: 2; border-radius: var(--radius-md); background: #fff; box-shadow: var(--shadow-lg); }
.filter-bar label { margin-top: 0; }
.filter-bar .button { min-width: 145px; }
.filter-reset { min-height: 32px; position: absolute; right: 24px; bottom: -39px; color: var(--color-brand); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.content-category-nav { display: flex; gap: 8px; margin: 0 0 34px; padding: 8px 2px 10px; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; scrollbar-color: rgba(181,18,107,.25) transparent; }
.content-category-nav a { min-height: 44px; flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; padding: 8px 13px; border: 1px solid rgba(181,18,107,.12); border-radius: 999px; background: rgba(255,255,255,.82); color: #66505e; box-shadow: 0 7px 20px rgba(72,18,50,.04); font: 700 .76rem/1 var(--font-heading); transition: color var(--transition), border-color var(--transition), background var(--transition), transform var(--transition); }
.content-category-nav a:hover, .content-category-nav a:focus-visible { color: var(--color-primary); border-color: rgba(181,18,107,.35); transform: translateY(-2px); }
.content-category-nav a.is-active { border-color: var(--color-primary); background: linear-gradient(135deg, #820846, var(--color-primary)); color: #fff; box-shadow: 0 11px 26px rgba(181,18,107,.20); }
.content-category-nav a span { min-width: 24px; height: 24px; display: grid; place-items: center; padding-inline: 6px; border-radius: 999px; background: rgba(181,18,107,.09); color: var(--color-primary); font-size: .67rem; }
.content-category-nav a.is-active span { background: rgba(255,255,255,.18); color: #fff; }
.news-index-heading + .content-category-nav { margin-top: -8px; }
.catalog-heading { display: flex; align-items: end; justify-content: space-between; gap: 50px; margin-bottom: 34px; }
.catalog-heading h2 { margin-bottom: 0; font-size: clamp(1.8rem, 3vw, 2.7rem); }
.catalog-heading > p { max-width: 480px; margin: 0 0 4px; color: var(--color-text-soft); }
.tour-grid--catalog { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.empty-state { max-width: 720px; margin: 30px auto; padding: 60px 24px; text-align: center; }
.empty-state > .icon { width: 54px; height: 54px; margin-bottom: 16px; padding: 13px; border-radius: 50%; background: var(--color-primary-soft); color: var(--color-primary); }
.empty-state h1, .empty-state h2 { font-size: 2rem; }
.empty-state p { color: var(--color-text-soft); }

.consult-section { padding: 100px 0; background: linear-gradient(135deg, #0369a1 0%, #0f9f91 100%); color: #fff; }
.consult-grid { display: grid; grid-template-columns: .85fr 1.15fr; align-items: center; gap: clamp(50px, 9vw, 110px); }
.consult-copy h2 { color: #fff; }
.consult-copy > p:not(.eyebrow) { color: rgba(255,255,255,.75); font-size: 1.05rem; }
.consult-benefits { display: grid; gap: 11px; margin: 26px 0 0; padding: 0; list-style: none; }
.consult-benefits li { display: flex; align-items: center; gap: 9px; }
.consult-benefits .icon { width: 22px; height: 22px; padding: 4px; border-radius: 50%; background: rgba(255,255,255,.12); color: #ffda6a; }
.consult-form { padding: 34px; border-radius: var(--radius-lg); background: #fff; color: var(--color-text); box-shadow: var(--shadow-lg); }
.form-heading h2 { margin-bottom: 6px; font-size: 1.55rem; }
.form-heading p { color: var(--color-text-soft); font-size: .9rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 16px; }
.field--full { grid-column: 1 / -1; }
.field small { display: block; margin-top: 5px; color: var(--color-text-soft); font-size: .78rem; }
.form-privacy { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 12px 0 0; color: var(--color-text-soft); font-size: .8rem; }
.form-privacy .icon { width: 15px; height: 15px; color: var(--color-success); }

.tour-detail-hero { min-height: 600px; position: relative; display: flex; align-items: end; overflow: hidden; color: #fff; }
.tour-detail-hero > img, .tour-detail-hero__overlay { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tour-detail-hero__overlay { background: linear-gradient(0deg, rgba(3,105,161,.94), rgba(14,165,233,.10) 74%); }
.tour-detail-hero__content { position: relative; z-index: 1; padding-bottom: 60px; }
.breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin-bottom: 18px; color: rgba(255,255,255,.75); font-size: .85rem; }
.breadcrumb a { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.breadcrumb a:hover { color: #fff; }
.tour-detail-hero__tag { position: static; display: inline-block; margin-bottom: 14px; background: var(--color-accent); color: var(--color-primary-strong); }
.tour-detail-hero h1 { max-width: 900px; margin-bottom: 16px; font-size: clamp(2.6rem, 6vw, 4.9rem); }
.tour-detail-hero__content > p { max-width: 720px; margin-bottom: 0; color: rgba(255,255,255,.82); font-size: 1.08rem; }
.tour-facts { border-bottom: 1px solid var(--color-border); background: #fff; }
.tour-facts__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.tour-facts__grid > div { min-height: 104px; display: flex; align-items: center; gap: 13px; padding: 18px 24px; border-right: 1px solid var(--color-border); }
.tour-facts__grid > div:last-child { border-right: 0; }
.tour-facts__grid > div > .icon { width: 25px; height: 25px; color: var(--color-brand); }
.tour-facts small, .tour-facts strong { display: block; }
.tour-facts small { color: var(--color-text-soft); font-size: .76rem; }
.tour-facts strong { font: 700 .94rem/1.4 var(--font-heading); }
.tour-facts__price strong { color: var(--color-brand); font-size: 1.22rem; }
.tour-detail-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(330px, .65fr); align-items: start; gap: 30px; }
.tour-detail-content { display: grid; gap: 24px; }
.detail-panel, .detail-note, .booking-card { padding: 34px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fff; box-shadow: var(--shadow-sm); }
.detail-panel h2 { margin-bottom: 26px; font-size: 1.8rem; }
.tour-detail-intro > p:not(.eyebrow) { max-width: 68ch; margin: 0 0 14px; color: var(--color-text-soft); line-height: 1.78; }
.tour-detail-intro > p:last-child { margin-bottom: 0; }
.highlight-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 13px; }
.highlight-grid div { display: flex; align-items: center; gap: 10px; padding: 14px; border-radius: var(--radius-sm); background: var(--color-primary-soft); font-weight: 600; }
.highlight-grid .icon { width: 21px; height: 21px; padding: 4px; border-radius: 50%; background: var(--color-primary); color: #fff; }
.timeline { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.timeline li { display: grid; grid-template-columns: 44px 1fr; gap: 16px; position: relative; padding-bottom: 28px; }
.timeline li:last-child { padding-bottom: 0; }
.timeline li::before { content: ''; width: 1px; position: absolute; left: 21px; top: 42px; bottom: 0; background: var(--color-border); }
.timeline li:last-child::before { display: none; }
.timeline li > span { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: var(--color-brand); color: #fff; font: 700 .9rem/1 var(--font-heading); }
.timeline strong { font: 700 1rem/1.4 var(--font-heading); }
.timeline p { margin: 7px 0 0; color: var(--color-text-soft); font-size: .9rem; }
.detail-note { display: flex; gap: 18px; background: linear-gradient(135deg, #0369a1, #0f9f91); color: #fff; }
.detail-note > .icon { width: 34px; height: 34px; color: #ffda6a; }
.detail-note h2 { margin-bottom: 8px; color: #fff; font-size: 1.25rem; }
.detail-note p { margin: 0; color: rgba(255,255,255,.72); }
.booking-card { position: sticky; top: 104px; }
.booking-card__top { padding-bottom: 22px; border-bottom: 1px solid var(--color-border); }
.booking-card__top p, .booking-card__top small { margin: 0; color: var(--color-text-soft); }
.booking-card__top div { display: flex; align-items: baseline; gap: 10px; margin: 4px 0; }
.booking-card__top strong { color: var(--color-brand); font: 700 1.85rem/1 var(--font-heading); }
.booking-card__top del { color: var(--color-text-soft); font-size: .9rem; }
.booking-card form { margin-top: 20px; }
.field-row { display: grid; grid-template-columns: .65fr 1.35fr; gap: 12px; }
.inline-success { display: flex; gap: 8px; margin-top: 16px; padding: 12px; border-radius: var(--radius-sm); background: #ecfdf5; color: #046c4e; font-size: .88rem; font-weight: 600; }
.inline-success .icon { width: 18px; }
.booking-card__phone { min-height: 60px; display: flex; align-items: center; justify-content: center; gap: 10px; margin: 18px -34px -34px; padding: 12px; border-radius: 0 0 var(--radius-md) var(--radius-md); background: var(--color-primary-soft); color: var(--color-primary); }
.booking-card__phone > .icon { width: 24px; height: 24px; color: var(--color-brand); }
.booking-card__phone small, .booking-card__phone span { display: block; }
.booking-card__phone small { color: var(--color-text-soft); font-size: .72rem; }
.booking-card__phone span { font: 700 .98rem/1.2 var(--font-heading); }

/* Admin */
.login-page { min-height: 100vh; background: linear-gradient(135deg, #eff9ff, #fdf2f8); }
.login-layout { min-height: 100vh; display: grid; grid-template-columns: 1.05fr .95fr; }
.login-visual { position: relative; display: flex; align-items: end; padding: clamp(40px, 7vw, 100px); color: #fff; background: url('../images/hero.jpg') center/cover no-repeat; }
.login-visual__overlay { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(3,105,161,.94), rgba(15,159,145,.18)); }
.login-visual__content { max-width: 680px; position: relative; z-index: 1; }
.login-visual h1 { margin-bottom: 18px; font-size: clamp(2.5rem, 5vw, 4.5rem); }
.login-visual__content > p:last-child { color: rgba(255,255,255,.78); font-size: 1.1rem; }
.login-panel { display: grid; place-items: center; padding: 40px 24px; }
.login-card { width: min(100%, 430px); }
.brand--login { margin-bottom: 44px; }
.brand--login img { width: 175px; height: 82px; }
.login-card h2 { margin-bottom: 8px; font-size: 2rem; }
.login-card__lead { margin-bottom: 25px; color: var(--color-text-soft); }
.login-card .flash { margin-bottom: 18px; }
.login-card .button { margin-top: 24px; }
.login-back { min-height: 44px; display: inline-flex; align-items: center; margin-top: 20px; color: var(--color-text-soft); font-weight: 600; }

.admin-body { min-height: 100vh; background: linear-gradient(135deg, #f0f9ff, #fff 45%, #fdf2f8); }
.admin-sidebar { width: 270px; position: fixed; z-index: var(--z-drawer); inset: 0 auto 0 0; display: flex; flex-direction: column; padding: 22px 18px; overflow: hidden; background: linear-gradient(180deg, #075985 0%, #0369a1 58%, #08786d 100%); color: rgba(255,255,255,.78); }
.brand--admin { margin: 0 10px 28px; }
.brand--admin img { width: 146px; height: 68px; }
.admin-sidebar__label { margin: 0 12px 10px; color: rgba(255,255,255,.4); font: 600 .7rem/1 var(--font-heading); letter-spacing: .14em; text-transform: uppercase; }
.admin-nav { min-height: 0; display: grid; gap: 5px; padding-right: 3px; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: rgba(255,255,255,.22) transparent; scrollbar-width: thin; }
.admin-nav__label { margin: 18px 12px 5px; color: rgba(255,255,255,.38); font: 700 .64rem/1 var(--font-heading); letter-spacing: .15em; text-transform: uppercase; }
.admin-nav__label:first-of-type { margin-top: 13px; }
.admin-nav a { min-height: 48px; display: grid; grid-template-columns: 22px 1fr auto; align-items: center; gap: 11px; padding: 10px 12px; border-radius: 10px; font: 600 .9rem/1 var(--font-heading); transition: background var(--transition), color var(--transition); }
.admin-nav a:hover, .admin-nav a.is-active { background: rgba(255,255,255,.1); color: #fff; }
.admin-nav a.is-active { box-shadow: inset 3px 0 var(--color-accent); }
.admin-nav small { min-width: 24px; padding: 4px 6px; border-radius: 999px; background: var(--color-brand); color: #fff; text-align: center; }
.admin-sidebar__bottom { display: grid; gap: 4px; margin-top: auto; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.11); }
.admin-sidebar__bottom a, .admin-sidebar__bottom button { width: 100%; min-height: 44px; display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 0; border-radius: 9px; background: transparent; color: rgba(255,255,255,.67); text-align: left; transition: color var(--transition), background var(--transition); }
.admin-sidebar__bottom a:hover, .admin-sidebar__bottom button:hover { background: rgba(255,255,255,.07); color: #fff; }
.admin-sidebar__bottom a.is-active { background: rgba(255,255,255,.13); box-shadow: inset 3px 0 var(--color-accent); color: #fff; }
.admin-shell { min-height: 100vh; margin-left: 270px; }
.admin-topbar { min-height: 78px; position: sticky; z-index: 20; top: 0; display: flex; align-items: center; justify-content: flex-end; gap: 20px; padding: 12px 32px; border-bottom: 1px solid var(--color-border); background: rgba(255,255,255,.9); backdrop-filter: blur(10px); }
.admin-topbar > div { text-align: right; }
.admin-topbar p { margin: 0; color: var(--color-text-soft); font-size: .76rem; text-transform: capitalize; }
.admin-topbar strong { font: 700 .9rem/1.3 var(--font-heading); }
.admin-quick-add { min-height: 44px; display: inline-flex; align-items: center; gap: 7px; padding: 9px 14px; border-radius: 999px; background: var(--color-primary); color: #fff; font: 700 .84rem/1 var(--font-heading); }
.admin-menu { width: 46px; height: 46px; display: none; place-items: center; margin-right: auto; border: 0; border-radius: 50%; background: var(--color-primary); color: #fff; }
.admin-content { width: min(100%, 1440px); margin: 0 auto; padding: 38px 34px 70px; }
.admin-content > .flash { margin-bottom: 24px; }
.admin-page-heading { display: flex; justify-content: space-between; align-items: end; gap: 50px; margin-bottom: 30px; }
.admin-page-heading h1 { margin: 0; font-size: clamp(2rem, 4vw, 3.1rem); }
.admin-page-heading > p { max-width: 460px; margin: 0 0 4px; color: var(--color-text-soft); }
.admin-page-heading--actions { align-items: center; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-bottom: 24px; }
.stats-grid article { display: flex; align-items: center; gap: 18px; padding: 22px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fff; box-shadow: var(--shadow-sm); }
.stats-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 16px; }
.stats-icon .icon { width: 25px; height: 25px; }
.stats-icon--green { background: var(--color-primary-soft); color: var(--color-primary); }
.stats-icon--pink { background: var(--color-brand-soft); color: var(--color-brand); }
.stats-icon--yellow { background: #fff1c4; color: #8a6500; }
.stats-icon--blue { background: #e0f2fe; color: #0369a1; }
.stats-grid small, .stats-grid strong, .stats-grid p { display: block; }
.stats-grid small { color: var(--color-text-soft); }
.stats-grid strong { margin: 2px 0; font: 700 1.7rem/1.2 var(--font-heading); }
.stats-grid p { margin: 0; color: var(--color-text-soft); font-size: .78rem; }
.admin-dashboard-grid { display: grid; grid-template-columns: 1.35fr .65fr; gap: 20px; }
.admin-panel { border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fff; box-shadow: var(--shadow-sm); }
.admin-panel__heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px; border-bottom: 1px solid var(--color-border); }
.admin-panel__heading .eyebrow { margin-bottom: 6px; }
.admin-panel__heading h2 { margin: 0; font-size: 1.35rem; }
.admin-panel__heading > a { min-height: 44px; display: inline-flex; align-items: center; gap: 6px; color: var(--color-brand); font-weight: 700; }
.lead-list { display: grid; }
.lead-list article { display: grid; grid-template-columns: 42px minmax(120px, 1fr) auto auto; align-items: center; gap: 13px; padding: 15px 24px; border-bottom: 1px solid var(--color-border); }
.lead-list article:last-child { border-bottom: 0; }
.lead-list .lead-avatar { width: 42px; height: 42px; }
.lead-list strong, .lead-list small { display: block; }
.lead-list small { color: var(--color-text-soft); }
.lead-list article > a { color: var(--color-brand); font-weight: 700; }
.status { display: inline-flex; align-items: center; justify-content: center; min-height: 27px; padding: 5px 9px; border-radius: 999px; background: #edf0ee; color: #53635d; font: 700 .72rem/1 var(--font-heading); white-space: nowrap; }
.status--new { background: var(--color-brand-soft); color: #9d174d; }
.status--contacted { background: #fff0c4; color: #745600; }
.status--confirmed, .status--published { background: #d1fae5; color: #046c4e; }
.status--closed, .status--draft { background: #edf0ee; color: #53635d; }
.quick-panel { padding: 24px; }
.quick-panel .eyebrow { margin-bottom: 7px; }
.quick-panel h2 { margin-bottom: 20px; font-size: 1.35rem; }
.quick-panel > a { min-height: 70px; display: grid; grid-template-columns: 42px 1fr 18px; align-items: center; gap: 11px; padding: 12px 0; border-bottom: 1px solid var(--color-border); }
.quick-panel > a:last-child { border-bottom: 0; }
.quick-panel > a > span:first-child { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; background: var(--color-primary-soft); color: var(--color-primary); }
.quick-panel strong, .quick-panel small { display: block; }
.quick-panel small { color: var(--color-text-soft); font-size: .78rem; }
.quick-panel > a > .icon { transition: transform var(--transition); }
.quick-panel > a:hover > .icon { transform: translateX(4px); }
.admin-empty { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 180px; color: var(--color-text-soft); }
.admin-empty--large { min-height: 380px; flex-direction: column; text-align: center; }
.admin-empty--large .icon { width: 48px; height: 48px; }
.admin-empty--large h2 { margin: 8px 0 0; }
.admin-table-panel { overflow: hidden; }
.table-toolbar { display: flex; align-items: center; gap: 12px; padding: 18px 22px; border-bottom: 1px solid var(--color-border); }
.table-toolbar span { color: var(--color-text-soft); font-size: .88rem; }
.admin-table-wrap { overflow-x: auto; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
.admin-table { width: 100%; border-collapse: collapse; min-width: 850px; }
.admin-table th { padding: 13px 18px; background: #f8f7f2; color: var(--color-text-soft); font: 700 .72rem/1.2 var(--font-heading); letter-spacing: .06em; text-align: left; text-transform: uppercase; }
.admin-table td { padding: 14px 18px; border-top: 1px solid var(--color-border); vertical-align: middle; }
.admin-table tbody tr { transition: background var(--transition); }
.admin-table tbody tr:hover { background: #fffdf8; }
.tour-cell { min-width: 310px; display: flex; align-items: center; gap: 12px; }
.tour-cell img { width: 72px; height: 56px; border-radius: 9px; object-fit: cover; }
.tour-cell strong, .tour-cell small { display: block; }
.tour-cell strong { max-width: 310px; font: 700 .9rem/1.3 var(--font-heading); }
.tour-cell small { margin-top: 3px; color: var(--color-text-soft); }
.table-actions { display: flex; justify-content: flex-end; gap: 6px; }
.table-actions a, .table-actions button, .table-delete { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--color-border); border-radius: 9px; background: #fff; color: var(--color-text-soft); transition: border-color var(--transition), color var(--transition), background var(--transition); }
.table-actions a:hover { border-color: var(--color-primary); background: var(--color-primary-soft); color: var(--color-primary); }
.table-actions button:hover, .table-delete:hover { border-color: var(--color-danger); background: #fff0ee; color: var(--color-danger); }
.table-actions .icon, .table-delete .icon { width: 17px; height: 17px; }
.admin-form { display: grid; gap: 20px; }
.form-panel { display: grid; grid-template-columns: 260px 1fr; gap: 34px; padding: 28px; }
.form-panel__heading { display: flex; align-items: flex-start; gap: 12px; }
.form-panel__heading > span { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--color-primary); color: #fff; font: 700 .78rem/1 var(--font-heading); }
.form-panel__heading h2 { margin-bottom: 5px; font-size: 1.15rem; }
.form-panel__heading p { margin: 0; color: var(--color-text-soft); font-size: .85rem; }
.form-panel .field label { margin-top: 0; }
.account-panel { border-color: rgba(181,18,107,.14); overflow: hidden; }
.account-panel--security { background: linear-gradient(135deg, #fff 0%, #fff9ef 100%); }
.account-panel .form-panel__heading > span .icon { width: 19px; height: 19px; }
.account-panel .field small { display: block; margin-top: 6px; }
.form-publish { display: grid; grid-template-columns: 1fr 220px auto; align-items: center; gap: 24px; padding: 20px 28px; }
.form-publish .field label { margin-top: 0; }
.checkbox { min-height: 44px; display: inline-flex; align-items: center; gap: 10px; font-weight: 600; cursor: pointer; }
.checkbox input { width: 20px; min-height: 20px; accent-color: var(--color-brand); }
.customer-cell, .need-cell { min-width: 190px; }
.customer-cell strong, .customer-cell a, .customer-cell small, .need-cell strong, .need-cell small { display: block; }
.customer-cell a { color: var(--color-brand); font-weight: 700; }
.customer-cell small, .need-cell small { color: var(--color-text-soft); }
.need-cell p { max-width: 360px; margin: 6px 0 0; color: var(--color-text-soft); font-size: .82rem; }
.status-form select { min-width: 130px; min-height: 44px; padding-block: 7px; }
.admin-scrim { display: none; }

/* Professional CMS workspace */
.cms-form { padding-bottom: 20px; }
.cms-form .admin-panel { scroll-margin-top: 104px; }
.cms-stack { display: grid; gap: 24px; min-width: 0; }
.cms-subsection { padding-top: 24px; border-top: 1px dashed var(--color-border); }
.cms-editor-panel { padding-bottom: 26px; overflow: hidden; }
.cms-editor-panel > .admin-panel__heading > p { max-width: 430px; margin: 0; color: var(--color-text-soft); font-size: .84rem; text-align: right; }
.inline-editor { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.inline-editor--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cms-repeat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.cms-repeat-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cms-repeat-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cms-repeat-grid--services { padding: 22px; }
.cms-repeat-grid--segments { padding: 22px; }
.cms-repeat-card { min-width: 0; position: relative; display: grid; align-content: start; gap: 12px; padding: 20px; border: 1px solid #eedce6; border-radius: 16px; background: linear-gradient(145deg, #fff, #fffaf7); }
.cms-repeat-card::before { content: ''; width: 64px; height: 3px; position: absolute; left: 20px; top: 0; border-radius: 0 0 99px 99px; background: linear-gradient(90deg, var(--color-accent), var(--color-brand)); }
.cms-repeat-card header { min-height: 34px; display: flex; align-items: center; gap: 10px; margin-bottom: 2px; }
.cms-repeat-card header strong { overflow: hidden; font: 700 .88rem/1.3 var(--font-heading); text-overflow: ellipsis; white-space: nowrap; }
.cms-repeat-card .field label { margin-top: 0; font-size: .78rem; }
.cms-repeat-card .field-row { gap: 10px; }
.cms-card-number { width: 31px; height: 31px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 9px; background: #fff0f7; color: var(--color-primary); font: 800 .7rem/1 var(--font-heading); }
.cms-repeat-card > .cms-card-number { position: absolute; right: 13px; top: 13px; }
.theme-editor { display: grid; grid-template-columns: repeat(5, minmax(100px, 1fr)); gap: 12px; }
.color-field { min-width: 0; display: grid; grid-template-columns: 52px 1fr; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--color-border); border-radius: 14px; background: #fffcfa; cursor: pointer; }
.color-field span { grid-column: 1 / -1; font: 700 .76rem/1.3 var(--font-heading); }
.color-field input { width: 52px; height: 44px; min-height: 44px; padding: 3px; border-radius: 9px; cursor: pointer; }
.color-field strong { min-width: 0; overflow: hidden; color: var(--color-text-soft); font: 600 .7rem/1 var(--font-heading); text-overflow: ellipsis; text-transform: uppercase; }
.admin-savebar { min-height: 76px; position: sticky; z-index: 15; bottom: 16px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 16px 14px 22px; border: 1px solid rgba(181,18,107,.16); border-radius: 18px; background: rgba(255,255,255,.92); box-shadow: 0 18px 55px rgba(72,18,50,.16); backdrop-filter: blur(14px); }
.admin-savebar span { color: var(--color-text-soft); font-size: .84rem; }
.admin-savebar .button { flex: 0 0 auto; }
.cms-form.is-dirty .admin-savebar { border-color: rgba(244,183,25,.7); box-shadow: 0 18px 55px rgba(181,18,107,.19); }
.cms-form.is-dirty .admin-savebar span { color: #7a5600; font-weight: 700; }
.logo-editor-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px 0; }
.logo-editor-toolbar > a { min-height: 44px; display: inline-flex; align-items: center; gap: 7px; color: var(--color-primary); font: 700 .8rem/1 var(--font-heading); }
.logo-editor-toolbar > a .icon { width: 18px; height: 18px; }
.partner-logo-editor { display: grid; gap: 8px; padding: 18px 22px 10px; }
.partner-logo-row { display: grid; grid-template-columns: 34px 80px minmax(150px, .8fr) minmax(210px, 1.2fr) 142px; align-items: end; gap: 13px; padding: 12px; border: 1px solid var(--color-border); border-radius: 14px; background: #fffcfa; transition: border-color var(--transition), box-shadow var(--transition), background var(--transition); }
.partner-logo-row:focus-within { border-color: rgba(181,18,107,.34); background: #fff; box-shadow: 0 10px 30px rgba(72,18,50,.07); }
.logo-preview { width: 80px; height: 56px; }
.partner-logo-row img, .logo-placeholder { width: 80px; height: 56px; border: 1px solid var(--color-border); border-radius: 9px; background: #fff; object-fit: contain; }
.logo-placeholder { display: grid; place-items: center; color: var(--color-text-soft); }
.logo-placeholder[hidden], .logo-preview img[hidden] { display: none; }
.partner-logo-row .field label { margin-top: 0; }
.logo-row-actions { display: flex; align-items: center; justify-content: flex-end; gap: 5px; }
.logo-row-actions button { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--color-border); border-radius: 10px; background: #fff; color: var(--color-text-soft); transition: color var(--transition), border-color var(--transition), background var(--transition), opacity var(--transition); }
.logo-row-actions button:hover:not(:disabled) { border-color: var(--color-primary); background: #fff0f7; color: var(--color-primary); }
.logo-row-actions button.is-danger:hover:not(:disabled) { border-color: var(--color-danger); background: #fff0ee; color: var(--color-danger); }
.logo-row-actions button:disabled { opacity: .32; cursor: not-allowed; }
.logo-row-actions .icon { width: 17px; height: 17px; }
.logo-editor-empty { min-height: 220px; display: grid; place-items: center; align-content: center; gap: 7px; margin: 18px 22px; border: 1px dashed rgba(181,18,107,.28); border-radius: 16px; background: #fff9fc; color: var(--color-text-soft); text-align: center; }
.logo-editor-empty[hidden] { display: none; }
.logo-editor-empty .icon { width: 34px; height: 34px; color: var(--color-primary); }
.logo-editor-empty p { margin: 0; font-size: .82rem; }
.logo-editor-footer { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 22px; padding: 10px 0 16px; border-top: 1px solid var(--color-border); }
.logo-editor-footer > span { color: var(--color-text-soft); font-size: .78rem; }
.logo-editor-footer > button { min-height: 44px; display: inline-flex; align-items: center; gap: 7px; padding: 9px 13px; border: 0; border-radius: 10px; background: #fff0f7; color: var(--color-primary); font: 700 .78rem/1 var(--font-heading); }
.logo-editor-footer > button:disabled { opacity: .45; cursor: not-allowed; }
.input-suffix { position: relative; }
.input-suffix input { padding-right: 62px; }
.input-suffix span { position: absolute; top: 1px; right: 1px; bottom: 1px; min-width: 54px; display: grid; place-items: center; padding-inline: 8px; border-left: 1px solid var(--color-border); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; background: #fff8fb; color: var(--color-text-soft); font: 700 .75rem/1 var(--font-heading); pointer-events: none; }
.hero-slide-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px 0; }
.hero-slide-toolbar > a { min-height: 44px; display: inline-flex; align-items: center; gap: 7px; color: var(--color-primary); font: 700 .8rem/1 var(--font-heading); }
.hero-slide-toolbar > a .icon { width: 18px; height: 18px; }
.hero-slide-editor { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding: 18px 22px 10px; }
.hero-slide-row { min-width: 0; display: grid; align-content: start; gap: 12px; padding: 14px; border: 1px solid #eedce6; border-radius: 16px; background: linear-gradient(145deg, #fff, #fffaf7); transition: border-color var(--transition), box-shadow var(--transition), background var(--transition); }
.hero-slide-row:focus-within { border-color: rgba(181,18,107,.34); background: #fff; box-shadow: 0 10px 30px rgba(72,18,50,.07); }
.hero-slide-row__top { min-height: 32px; display: flex; align-items: center; gap: 10px; }
.hero-slide-row__top > span:not(.cms-card-number) { min-width: 0; overflow: hidden; color: var(--color-text-soft); font: 700 .78rem/1.25 var(--font-heading); text-overflow: ellipsis; white-space: nowrap; }
.hero-slide-row__actions { margin-left: auto; display: flex; align-items: center; gap: 5px; }
.hero-slide-row__actions button { width: 44px; height: 44px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid var(--color-border); border-radius: 10px; background: #fff; color: var(--color-text-soft); transition: color var(--transition), border-color var(--transition), background var(--transition), opacity var(--transition); }
.hero-slide-row__actions button:hover:not(:disabled) { border-color: var(--color-primary); background: #fff0f7; color: var(--color-primary); }
.hero-slide-row__actions button.is-danger:hover:not(:disabled) { border-color: var(--color-danger); background: #fff0ee; color: var(--color-danger); }
.hero-slide-row__actions button:disabled { opacity: .32; cursor: not-allowed; }
.hero-slide-row__actions .icon { width: 16px; height: 16px; }
.hero-slide-preview { aspect-ratio: 16 / 9; position: relative; display: grid; place-items: center; overflow: hidden; border: 1px solid var(--color-border); border-radius: 12px; background: linear-gradient(135deg, #fff0f7, #fff9e9); }
.hero-slide-preview::after { content: ''; position: absolute; inset: 0; background: linear-gradient(140deg, transparent 46%, rgba(181,18,107,.14)); pointer-events: none; }
.hero-slide-preview img { width: 100%; height: 100%; position: relative; z-index: 1; object-fit: cover; }
.hero-slide-preview img[hidden], .hero-slide-preview span[hidden] { display: none; }
.hero-slide-preview span { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 7px; color: var(--color-text-soft); font: 700 .78rem/1 var(--font-heading); }
.hero-slide-preview span .icon { width: 19px; height: 19px; color: var(--color-primary); }
.hero-slide-row .field { min-width: 0; }
.hero-slide-row .field label { margin-top: 0; font-size: .78rem; }
.hero-slide-empty { min-height: 220px; display: grid; place-items: center; align-content: center; gap: 7px; margin: 18px 22px; border: 1px dashed rgba(181,18,107,.28); border-radius: 16px; background: #fff9fc; color: var(--color-text-soft); text-align: center; }
.hero-slide-empty[hidden] { display: none; }
.hero-slide-empty .icon { width: 34px; height: 34px; color: var(--color-primary); }
.hero-slide-empty p { margin: 0; font-size: .82rem; }
.hero-slide-footer { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 22px; padding: 10px 0 16px; border-top: 1px solid var(--color-border); }
.hero-slide-footer > span { color: var(--color-text-soft); font-size: .78rem; }
.hero-slide-footer > button { min-height: 44px; display: inline-flex; align-items: center; gap: 7px; padding: 9px 13px; border: 0; border-radius: 10px; background: #fff0f7; color: var(--color-primary); font: 700 .78rem/1 var(--font-heading); }
.hero-slide-footer > button:disabled { opacity: .45; cursor: not-allowed; }
.testimonial-editor { overflow: hidden; border: 1px solid var(--color-border); border-radius: 16px; background: #fffcfa; }
.testimonial-editor__heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 17px 18px; border-bottom: 1px solid var(--color-border); background: linear-gradient(90deg, #fff7dc, #fff5fa 58%, #fff); }
.testimonial-editor__heading strong, .testimonial-editor__heading small { display: block; }
.testimonial-editor__heading strong { color: var(--color-primary); font: 800 .84rem/1.3 var(--font-heading); }
.testimonial-editor__heading small { margin-top: 3px; color: var(--color-text-soft); font-size: .76rem; }
.testimonial-editor__heading a { min-height: 44px; display: inline-flex; align-items: center; gap: 7px; color: var(--color-primary); font: 700 .78rem/1 var(--font-heading); }
.testimonial-editor__heading a .icon { width: 18px; height: 18px; }
.testimonial-editor__list { display: grid; gap: 10px; padding: 14px 18px 8px; }
.testimonial-editor__row { display: grid; grid-template-columns: 72px minmax(130px, .8fr) minmax(150px, 1fr) 86px minmax(180px, 1.1fr); align-items: end; gap: 12px; padding: 13px; border: 1px solid #eedce6; border-radius: 14px; background: #fff; transition: border-color var(--transition), box-shadow var(--transition); }
.testimonial-editor__row:focus-within { border-color: rgba(181,18,107,.34); box-shadow: 0 10px 30px rgba(72,18,50,.07); }
.testimonial-editor__row-top { min-height: 38px; grid-column: 1 / -1; display: flex; align-items: center; gap: 10px; }
.testimonial-editor__row-top > strong { color: var(--color-text-soft); font: 700 .78rem/1.25 var(--font-heading); }
.testimonial-editor__actions { margin-left: auto; display: flex; align-items: center; gap: 5px; }
.testimonial-editor__actions button { width: 44px; height: 44px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid var(--color-border); border-radius: 10px; background: #fff; color: var(--color-text-soft); transition: color var(--transition), border-color var(--transition), background var(--transition), opacity var(--transition); }
.testimonial-editor__actions button:hover:not(:disabled) { border-color: var(--color-primary); background: #fff0f7; color: var(--color-primary); }
.testimonial-editor__actions button.is-danger:hover:not(:disabled) { border-color: var(--color-danger); background: #fff0ee; color: var(--color-danger); }
.testimonial-editor__actions button:disabled { opacity: .32; cursor: not-allowed; }
.testimonial-editor__actions .icon { width: 17px; height: 17px; }
.testimonial-avatar-preview { width: 72px; height: 72px; grid-column: 1; grid-row: 2 / span 2; display: grid; place-items: center; overflow: hidden; border: 1px solid var(--color-border); border-radius: 50%; background: linear-gradient(135deg, #fff0f7, #fff9e9); color: var(--color-primary); }
.testimonial-avatar-preview img { width: 100%; height: 100%; object-fit: cover; }
.testimonial-avatar-preview img[hidden], .testimonial-avatar-preview span[hidden] { display: none; }
.testimonial-avatar-preview .icon { width: 28px; height: 28px; }
.testimonial-editor__row > .field { min-width: 0; }
.testimonial-editor__row > .field label { margin-top: 0; font-size: .76rem; }
.testimonial-editor__row > .field:nth-of-type(1) { grid-column: 2; }
.testimonial-editor__row > .field:nth-of-type(2) { grid-column: 3; }
.testimonial-editor__row > .field:nth-of-type(3) { grid-column: 4; }
.testimonial-editor__row > .field:nth-of-type(4) { grid-column: 5; }
.testimonial-editor__row > .field:nth-of-type(5) { grid-column: 2 / -1; }
.testimonial-avatar-control { display: flex; align-items: stretch; gap: 7px; }
.testimonial-avatar-control > input { min-width: 0; flex: 1 1 auto; }
.testimonial-avatar-upload { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; flex: 0 0 auto; padding: 8px 10px; border: 1px solid rgba(181,18,107,.28); border-radius: 10px; background: #fff0f7; color: var(--color-primary); font: 700 .74rem/1 var(--font-heading); white-space: nowrap; cursor: pointer; transition: border-color var(--transition), background var(--transition), transform var(--transition); }
.testimonial-avatar-upload:hover { border-color: var(--color-primary); background: #ffe1f0; transform: translateY(-1px); }
.testimonial-avatar-upload:focus-within { outline: 2px solid rgba(181,18,107,.34); outline-offset: 2px; }
.testimonial-avatar-upload .icon { width: 15px; height: 15px; }
.testimonial-avatar-upload input { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.testimonial-upload-status { display: block; min-height: 1.2em; margin-top: 4px; color: var(--color-text-soft); font-size: .72rem; line-height: 1.35; }
.testimonial-upload-status[data-state="success"] { color: #047857; }
.testimonial-upload-status[data-state="error"] { color: var(--color-danger); }
.testimonial-upload-status[data-state="loading"] { color: var(--color-primary); }
.testimonial-editor__empty { min-height: 180px; display: grid; place-items: center; align-content: center; gap: 7px; margin: 14px 18px; border: 1px dashed rgba(181,18,107,.28); border-radius: 14px; background: #fff9fc; color: var(--color-text-soft); text-align: center; }
.testimonial-editor__empty[hidden] { display: none; }
.testimonial-editor__empty .icon { width: 32px; height: 32px; color: var(--color-primary); }
.testimonial-editor__empty p { margin: 0; font-size: .82rem; }
.testimonial-editor__footer { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 18px; padding: 10px 0 16px; border-top: 1px solid var(--color-border); }
.testimonial-editor__footer > span { color: var(--color-text-soft); font-size: .78rem; }
.testimonial-editor__footer > button { min-height: 44px; display: inline-flex; align-items: center; gap: 7px; padding: 9px 13px; border: 0; border-radius: 10px; background: #fff0f7; color: var(--color-primary); font: 700 .78rem/1 var(--font-heading); }
.testimonial-editor__footer > button:disabled { opacity: .45; cursor: not-allowed; }
.capability-profile-editor { padding: 18px; border: 1px solid var(--color-border); border-radius: 16px; background: linear-gradient(135deg, #fffcfa, #fff8fc); }
.capability-profile-editor__heading { display: flex; align-items: center; gap: 11px; margin-bottom: 16px; }
.capability-profile-editor__heading .stats-icon { width: 40px; height: 40px; flex: 0 0 auto; }
.capability-profile-editor__heading strong, .capability-profile-editor__heading small { display: block; }
.capability-profile-editor__heading strong { color: var(--color-primary); font: 800 .9rem/1.25 var(--font-heading); }
.capability-profile-editor__heading small { margin-top: 3px; color: var(--color-text-soft); font-size: .76rem; line-height: 1.4; }
.capability-profile-file__control { display: flex; align-items: stretch; gap: 7px; }
.capability-profile-file__control > input { min-width: 0; flex: 1 1 auto; }
.profile-file-upload { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; flex: 0 0 auto; padding: 9px 11px; border: 1px solid rgba(181,18,107,.28); border-radius: 10px; background: #fff0f7; color: var(--color-primary); font: 700 .76rem/1 var(--font-heading); white-space: nowrap; cursor: pointer; transition: border-color var(--transition), background var(--transition), transform var(--transition); }
.profile-file-upload:hover { border-color: var(--color-primary); background: #ffe1f0; transform: translateY(-1px); }
.profile-file-upload:focus-within { outline: 2px solid rgba(181,18,107,.34); outline-offset: 2px; }
.profile-file-upload .icon { width: 16px; height: 16px; }
.profile-file-upload input { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.profile-file-clear { width: 44px; min-height: 44px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid var(--color-border); border-radius: 10px; background: #fff; color: var(--color-text-soft); transition: color var(--transition), border-color var(--transition), background var(--transition); }
.profile-file-clear:hover { border-color: var(--color-danger); background: #fff0ee; color: var(--color-danger); }
.profile-file-clear .icon { width: 17px; height: 17px; }
.profile-upload-status { display: block; min-height: 1.2em; margin-top: 4px; color: var(--color-text-soft); font-size: .72rem; line-height: 1.35; }
.profile-upload-status[data-state="success"] { color: #047857; }
.profile-upload-status[data-state="error"] { color: var(--color-danger); }
.profile-upload-status[data-state="loading"] { color: var(--color-primary); }
.media-upload-panel { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 24px; margin-bottom: 20px; padding: 24px; }
.media-upload-copy { display: flex; align-items: center; gap: 16px; }
.media-upload-copy h2 { margin-bottom: 4px; font-size: 1.2rem; }
.media-upload-copy p { margin: 0; color: var(--color-text-soft); font-size: .84rem; }
.media-upload { display: flex; align-items: center; gap: 10px; }
.media-upload label { min-height: 48px; display: inline-flex; align-items: center; padding: 7px 12px; border: 1px dashed rgba(181,18,107,.35); border-radius: 12px; background: #fff8fb; color: var(--color-primary); font: 700 .8rem/1 var(--font-heading); cursor: pointer; }
.media-upload label span { display: none; }
.media-upload input { min-height: 0; max-width: 250px; padding: 0; border: 0; background: transparent; }
.media-library { overflow: hidden; }
.media-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; padding: 22px; }
.media-card { min-width: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: 15px; background: #fffcfa; }
.media-card > a { display: block; overflow: hidden; background: #f6f1ed; }
.media-card img { width: 100%; aspect-ratio: 4 / 3; display: block; object-fit: cover; transition: transform var(--transition); }
.media-card:hover img { transform: scale(1.025); }
.media-card > div { padding: 12px 13px 5px; }
.media-card strong, .media-card span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.media-card strong { font: 700 .78rem/1.4 var(--font-heading); }
.media-card span { margin-top: 2px; color: var(--color-text-soft); font-size: .7rem; }
.media-card__actions { display: flex; align-items: center; justify-content: space-between; gap: 6px; padding: 5px 8px 9px; }
.media-card__actions form { margin-left: auto; }
.copy-button { min-height: 44px; display: inline-flex; align-items: center; gap: 6px; padding: 8px 10px; border: 0; border-radius: 9px; background: #fff0f7; color: var(--color-primary); font: 700 .74rem/1 var(--font-heading); }
.copy-button.is-copied { background: #d1fae5; color: #046c4e; }
.copy-button .icon { width: 15px; height: 15px; }
.media-delete { width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 9px; background: #fff0ee; color: var(--color-danger); }
.media-delete .icon { width: 16px; height: 16px; }

/* Premium journey layer — inspired by the official pink and gold mark. */
.eyebrow { color: var(--color-primary); }
.eyebrow::before { content: ''; width: 24px; height: 2px; flex: 0 0 auto; border-radius: 999px; background: linear-gradient(90deg, var(--color-accent), var(--color-brand)); }
.eyebrow--light { color: #ffe17b; }
.eyebrow--light::before { background: currentColor; }

.button { position: relative; overflow: hidden; border-radius: 14px; box-shadow: 0 10px 26px rgba(244,183,25,.20); }
.button::after { content: ''; width: 34%; position: absolute; inset: -20% auto -20% -46%; transform: skewX(-20deg); background: rgba(255,255,255,.45); transition: transform 480ms ease; pointer-events: none; }
.button:hover::after { transform: translateX(430%) skewX(-20deg); }
.button--ghost, .button--outline, .button--secondary { box-shadow: none; }
.button--dark { border-color: var(--color-primary); background: linear-gradient(135deg, var(--color-primary), var(--color-primary-strong)); }
.text-link { color: var(--color-primary); }

.topbar { background: linear-gradient(90deg, #820846, var(--color-primary) 54%, #8f5161); }
.topbar__links .icon { color: #ffe078; }
.site-header { background: rgba(255,251,247,.91); border-bottom-color: rgba(181,18,107,.10); box-shadow: 0 10px 36px rgba(82,12,51,.07); }
.site-header::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(244,183,25,.05), transparent 28%, rgba(220,52,149,.04)); pointer-events: none; }
.site-header__progress { height: 2px; position: absolute; left: 0; right: 0; bottom: -1px; transform: scaleX(0); transform-origin: left center; background: linear-gradient(90deg, var(--color-accent), var(--color-brand), var(--color-secondary)); box-shadow: 0 0 10px rgba(220,52,149,.35); will-change: transform; }
.primary-nav a { color: #5f5962; }
.primary-nav a::after { height: 3px; border-radius: 999px; background: linear-gradient(90deg, var(--color-accent), var(--color-brand)); }
.nav-toggle { background: linear-gradient(135deg, var(--color-primary), var(--color-brand)); box-shadow: 0 10px 24px rgba(181,18,107,.22); }

.hero { min-height: 810px; overflow: hidden; background: #44102f; }
.hero__slider { background: #44102f; }
.hero__effects { position: absolute; z-index: 0; inset: 0; overflow: hidden; pointer-events: none; }
.hero__sun { width: clamp(240px, 33vw, 500px); aspect-ratio: 1; position: absolute; right: -6%; top: -14%; border-radius: 50%; background: radial-gradient(circle, rgba(255,225,116,.34) 0 9%, rgba(244,183,25,.15) 10% 34%, rgba(244,183,25,0) 70%); filter: blur(.2px); animation: sun-breathe 7s ease-in-out infinite; }
.hero__route { width: min(49vw, 760px); height: 360px; position: absolute; right: 2%; top: 14%; overflow: visible; opacity: .62; }
.hero__route path { stroke: rgba(255,239,187,.76); stroke-width: 2; stroke-linecap: round; stroke-dasharray: 7 13; animation: route-dash 14s linear infinite; }
.hero__route circle { fill: var(--color-accent); stroke: rgba(255,255,255,.75); stroke-width: 5; }
.hero__plane { width: 48px; height: 48px; position: absolute; z-index: 1; right: 20%; top: 24%; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.38); border-radius: 50%; background: rgba(255,255,255,.14); color: #ffe17b; box-shadow: 0 14px 34px rgba(55,4,34,.18); backdrop-filter: blur(10px); animation: plane-float 5s ease-in-out infinite; }
.hero__plane .icon { width: 22px; height: 22px; transform: rotate(-9deg); }
.hero__content { position: relative; z-index: 2; }
.hero__copy { position: relative; }
.hero h1 { letter-spacing: -.065em; text-wrap: balance; text-shadow: 0 4px 20px rgba(29,2,20,.84), 0 1px 2px rgba(29,2,20,.94); }
.hero h1 em { color: #ffd65c; text-shadow: 0 4px 20px rgba(69,36,0,.82), 0 1px 2px rgba(29,2,20,.9); }
.hero__lead { color: #fff; text-shadow: 0 2px 10px rgba(29,2,20,.86); }
.hero .eyebrow--light { text-shadow: 0 2px 8px rgba(29,2,20,.9); }
.hero__assurance { display: flex; flex-wrap: wrap; gap: 9px; margin: -8px 0 26px; padding: 0; list-style: none; }
.hero__assurance li { min-height: 34px; display: inline-flex; align-items: center; gap: 7px; padding: 7px 11px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; background: rgba(255,255,255,.08); color: rgba(255,255,255,.88); font-size: .76rem; font-weight: 600; backdrop-filter: blur(10px); }
.hero__assurance .icon { width: 15px; height: 15px; color: #ffe17b; }
.trip-search { position: relative; overflow: hidden; border-color: rgba(255,225,123,.62); background: rgba(255,252,249,.94); box-shadow: 0 34px 90px rgba(48,3,30,.28); }
.trip-search::before { content: ''; height: 4px; position: absolute; inset: 0 0 auto; background: linear-gradient(90deg, var(--color-accent), var(--color-brand), var(--color-secondary)); }
.trip-search__heading > span { background: linear-gradient(135deg, var(--color-primary-soft), #fff5d8); color: var(--color-primary); box-shadow: inset 0 0 0 1px rgba(181,18,107,.08); }
input, select, textarea { border-color: #dfd5dc; background: rgba(255,255,255,.96); }
input:hover, select:hover, textarea:hover { border-color: #c5a9b9; }
input:focus, select:focus, textarea:focus { border-color: var(--color-primary); box-shadow: 0 0 0 4px rgba(181,18,107,.11); }
.search-control .icon, .input-with-icon .icon { color: var(--color-primary); }

.trust-strip { z-index: 3; overflow: hidden; border: 1px solid rgba(181,18,107,.08); border-bottom: 0; background: rgba(255,252,249,.94); box-shadow: 0 -16px 60px rgba(53,5,34,.18); backdrop-filter: blur(18px); }
.trust-strip::before { content: ''; height: 3px; position: absolute; inset: 0 0 auto; background: linear-gradient(90deg, var(--color-accent), var(--color-brand) 54%, var(--color-secondary)); }
.trust-strip strong { color: var(--color-primary); letter-spacing: -.045em; }

.section-heading h2, .story-copy h2, .catalog-heading h2 { letter-spacing: -.055em; text-wrap: balance; }
.section--cream { position: relative; overflow: hidden; background: linear-gradient(145deg, #fff8ef 0%, #fff 48%, #fff1f8 100%); }
.section--cream::before { content: ''; width: 520px; height: 360px; position: absolute; right: -100px; top: 80px; opacity: .28; background-image: radial-gradient(circle, var(--color-brand) 1.4px, transparent 1.7px); background-size: 18px 18px; mask-image: radial-gradient(ellipse at center, #000, transparent 70%); pointer-events: none; }
.section--cream > .container { position: relative; z-index: 1; }

.tour-card { position: relative; border-color: rgba(181,18,107,.10); border-radius: 24px; box-shadow: 0 10px 32px rgba(72,18,50,.07); }
.tour-card::before { content: ''; position: absolute; z-index: 3; inset: 0 0 auto; height: 3px; opacity: 0; background: linear-gradient(90deg, var(--color-accent), var(--color-brand)); transition: opacity var(--transition); }
.tour-card:hover, .tour-card:focus-within { transform: translateY(-7px); border-color: rgba(181,18,107,.24); box-shadow: 0 26px 60px rgba(72,18,50,.14); }
.tour-card:hover::before, .tour-card:focus-within::before { opacity: 1; }
.tour-card__image::after { content: ''; position: absolute; inset: 52% 0 0; background: linear-gradient(0deg, rgba(42,8,30,.32), transparent); pointer-events: none; }
.tour-card__tag { z-index: 2; border: 1px solid rgba(255,255,255,.72); color: var(--color-primary); backdrop-filter: blur(10px); }
.tour-card__meta .icon, .tour-card__departure .icon { color: var(--color-primary); }
.tour-card__footer strong { color: var(--color-primary); }
.icon-button { border-color: rgba(181,18,107,.18); color: var(--color-primary); }
.icon-button:hover { border-color: var(--color-primary); background: var(--color-primary); }

/* Featured tours — a curated travel journal with a subtle route in the background. */
.featured-tours-section { isolation: isolate; }
.featured-tours-section__route { width: min(1200px, 100%); height: 620px; position: absolute; z-index: 0; left: 50%; bottom: -150px; transform: translateX(-50%); overflow: visible; pointer-events: none; }
.featured-tours-section__route path { stroke: rgba(181,18,107,.21); stroke-width: 2; stroke-linecap: round; stroke-dasharray: 7 14; animation: featured-route-drift 17s linear infinite; }
.featured-tours-section__route circle { fill: var(--color-accent); stroke: rgba(181,18,107,.28); stroke-width: 5; }
.featured-tours-section > .container { position: relative; z-index: 1; }
.featured-tours-heading { display: grid; grid-template-columns: minmax(0, 1.06fr) minmax(300px, .74fr); align-items: end; gap: clamp(32px, 7vw, 100px); margin-bottom: 42px; }
.featured-tours-heading h2 { max-width: 720px; margin: 0; letter-spacing: -.06em; text-wrap: balance; }
.featured-tours-heading__aside > p { max-width: 510px; margin: 0 0 21px; color: var(--color-text-soft); font-size: 1.02rem; line-height: 1.7; }
.featured-tours-heading__metrics { display: flex; flex-wrap: wrap; gap: 9px; }
.featured-tours-heading__metrics span { min-height: 44px; display: inline-flex; align-items: center; gap: 7px; padding: 8px 12px; border: 1px solid rgba(181,18,107,.12); border-radius: 999px; background: rgba(255,255,255,.72); color: #6d5363; box-shadow: 0 8px 22px rgba(72,18,50,.05); font-size: .78rem; backdrop-filter: blur(10px); }
.featured-tours-heading__metrics strong { color: var(--color-primary); font-size: .98rem; }
.featured-tours-heading__metrics .icon { width: 16px; height: 16px; color: var(--color-secondary); }
.tour-grid--featured { position: relative; gap: 22px; }
.tour-card--journey { background: rgba(255,255,255,.94); }
.tour-card--journey .tour-card__image { background: #f7e8f0; }
.tour-card--journey .tour-card__image::after { opacity: .76; transition: opacity 360ms ease; }
.tour-card--journey:hover .tour-card__image::after, .tour-card--journey:focus-within .tour-card__image::after { opacity: .28; }
.tour-card--journey:hover .tour-card__image img, .tour-card--journey:focus-within .tour-card__image img { transform: scale(1.065); }
.tour-card__image-icon { width: 42px; height: 42px; position: absolute; z-index: 2; right: 13px; top: 13px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.52); border-radius: 50%; background: rgba(60,8,38,.40); color: #ffe17b; box-shadow: 0 10px 22px rgba(42,8,30,.18); backdrop-filter: blur(9px); }
.tour-card__image-icon .icon { width: 18px; height: 18px; }
.tour-card--journey .tour-card__body { position: relative; }
.tour-card--journey .tour-card__footer { margin-top: 2px; }

.service-card { border-color: rgba(181,18,107,.09); border-radius: 26px; background: linear-gradient(150deg, #fff 68%, #fff4e8); box-shadow: 0 12px 34px rgba(72,18,50,.05); }
.service-card::before { content: ''; width: 150px; height: 150px; position: absolute; right: -74px; bottom: -78px; border: 1px dashed rgba(181,18,107,.20); border-radius: 50%; transition: transform 600ms cubic-bezier(.2,.8,.2,1); }
.service-card:hover { transform: translateY(-6px); border-color: rgba(181,18,107,.20); box-shadow: 0 24px 60px rgba(72,18,50,.12); }
.service-card:hover::before { transform: rotate(26deg) scale(1.1); }
.service-card--feature { border-color: transparent; background: linear-gradient(145deg, #820846, var(--color-primary) 56%, #d83791); box-shadow: 0 24px 60px rgba(181,18,107,.24); }
.service-card__number { color: rgba(181,18,107,.07); }
.service-card__icon { background: var(--color-primary-soft); color: var(--color-primary); }

.journey-process { position: relative; overflow: hidden; padding: clamp(96px, 10vw, 148px) 0; background: radial-gradient(circle at 92% 4%, rgba(220,52,149,.20), transparent 27%), radial-gradient(circle at 8% 92%, rgba(244,183,25,.13), transparent 25%), #17131a; color: #fff; }
.journey-process::before { content: ''; width: 520px; height: 360px; position: absolute; right: -100px; top: 40px; opacity: .18; background-image: radial-gradient(circle, #ffe17b 1.2px, transparent 1.6px); background-size: 20px 20px; mask-image: radial-gradient(ellipse, #000, transparent 72%); pointer-events: none; }
.journey-process::after { content: 'SV'; position: absolute; left: -24px; bottom: -78px; color: rgba(255,255,255,.025); font: 800 18rem/1 var(--font-heading); letter-spacing: -.09em; pointer-events: none; }
.journey-heading { position: relative; z-index: 2; display: grid; grid-template-columns: 1.15fr .85fr; align-items: end; gap: clamp(48px, 8vw, 110px); }
.journey-heading h2 { max-width: 760px; margin: 0; color: #fff; font-size: clamp(2.5rem, 5vw, 4.6rem); letter-spacing: -.065em; text-wrap: balance; }
.journey-heading__aside { max-width: 470px; padding-bottom: 8px; }
.journey-heading__aside > p { margin-bottom: 18px; color: rgba(255,255,255,.76); font-size: 1.02rem; }
.journey-heading__aside .text-link { color: #ffe17b; }
.journey-map { min-height: 460px; position: relative; z-index: 1; margin-top: 64px; padding: 76px 30px 34px; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 32px; background: linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.025)); box-shadow: 0 36px 90px rgba(0,0,0,.30); backdrop-filter: blur(16px); }
.journey-map__label { position: absolute; left: 30px; top: 24px; color: rgba(255,255,255,.48); font: 600 .7rem/1 var(--font-heading); letter-spacing: .18em; }
.journey-map__route { width: calc(100% - 48px); height: 300px; position: absolute; left: 24px; right: 24px; top: 48px; overflow: visible; pointer-events: none; }
.journey-map__route path { stroke: rgba(255,225,123,.46); stroke-width: 2; stroke-linecap: round; stroke-dasharray: 6 11; animation: route-dash 15s linear infinite; }
.journey-map__plane { width: 42px; height: 42px; position: absolute; z-index: 3; left: 0; top: 0; display: grid; place-items: center; border: 1px solid rgba(255,225,123,.48); border-radius: 50%; background: #2b202a; color: #ffe17b; box-shadow: 0 12px 32px rgba(0,0,0,.28); offset-path: path('M 54 166 C 205 28 316 286 471 148 C 610 24 732 286 889 137 C 982 49 1058 86 1110 40'); offset-rotate: auto 8deg; animation: journey-flight 14s linear infinite; }
.journey-map__plane .icon { width: 19px; height: 19px; }
.journey-steps { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.journey-steps > li { position: relative; }
.journey-steps > li:nth-child(even) { margin-top: 92px; }
.journey-step__marker { width: 44px; height: 44px; position: relative; z-index: 2; display: grid; place-items: center; margin: 0 0 -16px 20px; border: 5px solid #271d25; border-radius: 50%; background: var(--color-accent); color: #553700; font: 700 .72rem/1 var(--font-heading); box-shadow: 0 8px 24px rgba(244,183,25,.20); }
.journey-step__card { min-height: 235px; display: flex; flex-direction: column; padding: 34px 22px 22px; border: 1px solid rgba(255,255,255,.10); border-radius: 22px; background: rgba(255,255,255,.075); box-shadow: 0 18px 46px rgba(0,0,0,.15); transition: transform var(--transition), background var(--transition), border-color var(--transition); backdrop-filter: blur(13px); }
.journey-step__card:hover { transform: translateY(-7px); border-color: rgba(255,225,123,.28); background: rgba(255,255,255,.11); }
.journey-step__icon { width: 46px; height: 46px; display: grid; place-items: center; margin-bottom: 22px; border-radius: 14px; background: rgba(220,52,149,.18); color: #ff75c2; }
.journey-step__icon--gold { background: rgba(244,183,25,.15); color: #ffe17b; }
.journey-step__icon--aqua { background: rgba(8,127,146,.18); color: #7ce2ea; }
.journey-step__icon .icon { width: 22px; height: 22px; }
.journey-step__card small { margin-bottom: 6px; color: rgba(255,255,255,.53); font-size: .68rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.journey-step__card h3 { margin-bottom: 9px; color: #fff; font-size: 1.28rem; }
.journey-step__card p { margin: 0; color: rgba(255,255,255,.74); font-size: .87rem; line-height: 1.65; }

.section--story { background: linear-gradient(180deg, #fff, #fff8f2); }
.section--story::before { background: radial-gradient(circle, rgba(244,183,25,.28), rgba(244,183,25,.05) 64%, transparent 70%); }
.story-media::before { background: linear-gradient(150deg, var(--color-accent), #ffd968); box-shadow: 0 26px 70px rgba(244,183,25,.20); }
.story-media::after { content: ''; width: 170px; height: 170px; position: absolute; z-index: 2; left: -52px; top: 64px; border: 1px dashed rgba(181,18,107,.38); border-radius: 50%; animation: orbit-spin 18s linear infinite; }
.story-stamp { background: linear-gradient(145deg, var(--color-primary), var(--color-brand)); }
.check-list li > .icon { background: var(--color-primary-soft); color: var(--color-primary); }

.partners-section { background: linear-gradient(180deg, #fff, #fff8f1); }
.partners-section::before { background: radial-gradient(circle, rgba(244,183,25,.24), transparent 68%); }
.partners-section::after { background: radial-gradient(circle, rgba(220,52,149,.18), transparent 68%); }
.partners-shell { overflow: hidden; border-color: rgba(255,255,255,.12); background: radial-gradient(circle at 92% 0%, rgba(244,183,25,.20), transparent 30%), linear-gradient(145deg, #2c1024 0%, #650a3b 46%, #96105a 100%); box-shadow: 0 38px 100px rgba(78,9,48,.22); }
.partners-shell::before { content: ''; width: 420px; height: 420px; position: absolute; right: -170px; top: -240px; border: 1px dashed rgba(255,225,123,.30); border-radius: 50%; }
.partners-heading, .partner-metrics, .partner-logo-wrap, .partner-segments, .partner-promise { position: relative; z-index: 1; }
.partners-heading h2, .partner-logo-heading p { color: #fff; }
.partners-shell .eyebrow { color: #ffe17b; }
.partners-heading__copy > p:first-child { color: rgba(255,255,255,.84); }
.partner-logo-heading span, .partner-metrics span { color: rgba(255,255,255,.80); }
.partners-note { color: #ffe17b; }
.partner-metrics { border-color: rgba(255,255,255,.16); }
.partner-metrics > div { border-right-color: rgba(255,255,255,.16); }
.partner-metrics strong { color: #ffd65c; }
.partner-logo-card { border-color: rgba(255,255,255,.13); background: rgba(255,255,255,.94); box-shadow: 0 12px 34px rgba(32,1,19,.14); }
.partner-logo-card img { filter: grayscale(.9); opacity: .72; }
.partner-segment { border-color: rgba(255,255,255,.12); background: rgba(255,250,248,.97); box-shadow: 0 18px 44px rgba(38,2,24,.18); transition: transform var(--transition), box-shadow var(--transition); }
.partner-segment:hover { transform: translateY(-5px); box-shadow: 0 28px 60px rgba(38,2,24,.24); }
.partner-promise { border: 1px solid rgba(255,255,255,.13); background: linear-gradient(130deg, rgba(255,255,255,.10), rgba(255,255,255,.04)); box-shadow: none; backdrop-filter: blur(16px); }

.testimonial-section { position: relative; overflow: hidden; background: linear-gradient(135deg, #fff3e2 0%, #fff 48%, #fdebf6 100%); }
.testimonial-section::after { content: '“'; position: absolute; right: 5%; top: -44px; color: rgba(181,18,107,.07); font: 800 16rem/1 var(--font-heading); }
.testimonial-intro { max-width: 730px; margin-bottom: 40px; }
.testimonial-intro h2 { max-width: 700px; }
.testimonial-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.testimonial-card { min-width: 0; min-height: 310px; position: relative; display: flex; flex-direction: column; margin: 0; padding: 36px 30px 28px; border: 1px solid rgba(181,18,107,.10); border-radius: 22px; background: rgba(255,255,255,.94); box-shadow: 0 26px 70px rgba(72,18,50,.12); transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition); }
.testimonial-card:hover { transform: translateY(-4px); border-color: rgba(181,18,107,.24); box-shadow: 0 30px 74px rgba(72,18,50,.16); }
.testimonial-card::before { content: ''; width: 58px; height: 4px; position: absolute; left: 40px; top: 0; border-radius: 0 0 99px 99px; background: linear-gradient(90deg, var(--color-accent), var(--color-brand)); }
.testimonial-card__quote-mark { height: 38px; display: block; margin: -8px 0 5px; color: rgba(181,18,107,.22); font: 700 4rem/.75 var(--font-display); }
.testimonial-card blockquote { min-height: 7.2em; margin: 0 0 25px; color: #722050; font: 500 1rem/1.72 var(--font-heading); letter-spacing: -.015em; }
.testimonial-card figcaption { margin-top: auto; }
.testimonial-avatar { overflow: hidden; flex: 0 0 auto; border: 2px solid #fff; box-shadow: 0 6px 18px rgba(72,18,50,.12); }
.testimonial-avatar img { width: 100%; height: 100%; display: block; object-fit: cover; }
.testimonial-card__author { min-width: 0; }
.testimonial-card__author strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.testimonial-card__author small { min-height: 1.35em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.testimonial-card__stars { display: flex; align-items: center; gap: 2px; margin-top: 6px; color: #d8c4cf; }
.testimonial-card__stars i { width: 14px; height: 14px; display: grid; place-items: center; font-style: normal; }
.testimonial-card__stars i.is-filled { color: var(--color-accent); }
.testimonial-card__stars .icon { width: 13px; height: 13px; fill: currentColor; }
.testimonial-empty { min-height: 220px; display: grid; place-items: center; align-content: center; gap: 10px; border: 1px dashed rgba(181,18,107,.25); border-radius: 22px; background: rgba(255,255,255,.68); color: var(--color-text-soft); text-align: center; }
.testimonial-empty .icon { width: 34px; height: 34px; color: var(--color-primary); }
.testimonial-empty p { margin: 0; }

.cta-band { overflow: hidden; }
.cta-band__media { transform: scale(1.03); }
.cta-band__overlay { background: linear-gradient(90deg, rgba(46,7,32,.95), rgba(130,8,70,.83) 54%, rgba(181,18,107,.42)); }
.cta-band::after { content: ''; width: 520px; height: 520px; position: absolute; right: -150px; bottom: -360px; border: 2px dashed rgba(255,225,123,.32); border-radius: 50%; animation: orbit-spin 24s linear infinite; pointer-events: none; }
.site-footer { position: relative; background: radial-gradient(circle at 82% 12%, rgba(220,52,149,.22), transparent 28%), linear-gradient(140deg, #21101c, #4d0a31 52%, #760d48); }
.site-footer::before { content: ''; height: 3px; position: absolute; inset: 0 0 auto; background: linear-gradient(90deg, var(--color-accent), var(--color-brand), var(--color-secondary)); }

/* Footer: the final travel touchpoint */
.site-footer { isolation: isolate; overflow: hidden; padding: clamp(72px, 8vw, 110px) 0 28px; background: radial-gradient(circle at 84% 12%, rgba(220,52,149,.27), transparent 25%), radial-gradient(circle at 7% 86%, rgba(8,127,146,.22), transparent 27%), linear-gradient(140deg, #210b1b, #520a34 54%, #790f49); }
.site-footer::after { content: ''; width: min(48vw, 640px); aspect-ratio: 1; position: absolute; right: -19vw; bottom: -29vw; z-index: -1; border: 1px dashed rgba(255,225,123,.27); border-radius: 50%; transform: rotate(12deg); pointer-events: none; }
.footer-route { width: min(1120px, 82vw); height: 44px; position: absolute; top: 31px; left: 50%; z-index: 0; transform: translateX(-50%); opacity: .78; pointer-events: none; }
.footer-route__line { position: absolute; top: 21px; right: 22px; left: 22px; border-top: 1px dashed rgba(255,230,173,.58); transform: rotate(-1.6deg); }
.footer-route__dot { width: 8px; height: 8px; position: absolute; top: 17px; border: 2px solid #ffe17b; border-radius: 50%; background: #86104f; box-shadow: 0 0 0 4px rgba(255,225,123,.1); }
.footer-route__dot--start { left: 0; }
.footer-route__dot--end { right: 0; }
.footer-route__plane { width: 30px; height: 30px; position: absolute; top: 5px; left: 22%; display: grid; place-items: center; color: #ffe17b; filter: drop-shadow(0 5px 9px rgba(17,0,12,.25)); animation: footer-plane-travel 10s ease-in-out infinite; }
.footer-route__plane .icon { width: 22px; height: 22px; transform: rotate(12deg); }
@keyframes footer-plane-travel { 0%, 100% { transform: translateX(0) translateY(0); } 50% { transform: translateX(170%) translateY(-7px); } }

.footer-grid { position: relative; z-index: 1; grid-template-columns: minmax(250px, 1.3fr) minmax(160px, .76fr) minmax(205px, 1fr) minmax(220px, .94fr); gap: clamp(28px, 4vw, 64px); align-items: start; }
.brand--footer { display: inline-flex; }
.brand--footer img { width: 178px; height: auto; filter: brightness(1.08) saturate(1.08); }
.footer-brand__eyebrow { margin: 19px 0 8px !important; color: #ffe17b; font: 700 .71rem/1.4 var(--font-heading); letter-spacing: .15em; text-transform: uppercase; }
.footer-brand__intro { max-width: 355px; margin: 0 0 22px !important; color: rgba(255,255,255,.78); font: 500 1rem/1.65 var(--font-heading); }
.footer-brand__connect { max-width: 360px; display: grid; gap: 10px; }
.footer-hotline, .footer-social { min-height: 64px; border: 1px solid rgba(255,255,255,.18); border-radius: 16px; color: #fff; background: rgba(255,255,255,.075); box-shadow: 0 12px 26px rgba(35,0,21,.11); transition: transform var(--transition), border-color var(--transition), background var(--transition), box-shadow var(--transition); }
.footer-hotline { display: flex; align-items: center; gap: 12px; padding: 10px 13px; }
.footer-hotline > .icon { width: 22px; height: 22px; flex: 0 0 auto; color: #ffe17b; }
.footer-hotline span { display: grid; gap: 2px; }
.footer-hotline small, .footer-social small { display: block; color: rgba(255,255,255,.68); font: 600 .7rem/1.2 var(--font-heading); letter-spacing: .02em; }
.footer-hotline strong, .footer-social strong { display: block; color: #fff; font: 700 .98rem/1.3 var(--font-heading); }
.footer-social { display: grid; grid-template-columns: 40px minmax(0, 1fr) 18px; align-items: center; gap: 11px; padding: 10px 13px 10px 10px; }
.footer-social > .icon { width: 17px; height: 17px; color: #ffe17b; transition: transform var(--transition); }
.footer-social__icon { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; color: #fff; background: linear-gradient(135deg, #4267b2, #8c3db0); box-shadow: inset 0 1px 0 rgba(255,255,255,.26); }
.footer-social__icon .icon { width: 19px; height: 19px; fill: currentColor; }
.footer-hotline:hover, .footer-social:hover { border-color: rgba(255,225,123,.64); background: rgba(255,255,255,.13); box-shadow: 0 17px 31px rgba(35,0,21,.19); transform: translateY(-3px); }
.footer-social:hover > .icon { transform: translateX(3px); }

.footer-title { width: fit-content; margin: 4px 0 16px; padding-bottom: 10px; position: relative; color: #fff; font: 700 1.03rem/1.2 var(--font-heading); }
.footer-title::after { content: ''; width: 34px; height: 3px; position: absolute; left: 0; bottom: 0; border-radius: 99px; background: linear-gradient(90deg, #ffe17b, var(--color-accent)); }
.footer-links { display: grid; gap: 2px; }
.footer-links a { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 5px 0; color: rgba(255,255,255,.74); font: 500 .92rem/1.35 var(--font-heading); transition: color var(--transition), transform var(--transition); }
.footer-links a .icon { width: 14px; height: 14px; flex: 0 0 auto; color: rgba(255,225,123,.72); opacity: 0; transform: translateX(-7px); transition: opacity var(--transition), transform var(--transition); }
.footer-links a:hover { color: #fff; transform: translateX(3px); }
.footer-links a:hover .icon { opacity: 1; transform: translateX(0); }
.footer-contact { min-width: 0; padding: 18px; position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.15); border-radius: 22px; background: linear-gradient(145deg, rgba(255,255,255,.105), rgba(255,255,255,.035)); box-shadow: 0 22px 52px rgba(37,0,22,.13), inset 0 1px 0 rgba(255,255,255,.08); }
.footer-contact::before { content: ''; width: 150px; height: 150px; position: absolute; right: -92px; top: -92px; border: 1px dashed rgba(255,225,123,.24); border-radius: 50%; pointer-events: none; }
.footer-contact__heading { position: relative; z-index: 1; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.footer-contact__heading .footer-title { margin: 0 0 6px; }
.footer-contact__heading > div > small { display: block; color: rgba(255,255,255,.62); font: 600 .68rem/1.45 var(--font-heading); }
.footer-contact__compass { width: 40px; height: 40px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid rgba(255,225,123,.32); border-radius: 50%; color: #ffe17b; background: rgba(255,225,123,.09); box-shadow: inset 0 0 0 5px rgba(255,225,123,.035); }
.footer-contact__compass .icon { width: 18px; height: 18px; transform: rotate(18deg); }
.footer-contact .contact-list { display: grid; gap: 9px; margin: 0; padding: 0; }
.footer-contact .contact-list li { display: block; min-width: 0; position: relative; z-index: 1; }
.footer-contact__journey::before { content: ''; width: 1px; position: absolute; left: 21px; top: 36px; bottom: 36px; z-index: -1; border-left: 1px dashed rgba(255,225,123,.34); pointer-events: none; }
.footer-contact-card { min-height: 78px; display: grid !important; grid-template-columns: 44px minmax(0, 1fr); align-items: center; gap: 11px; padding: 10px 11px 10px 9px; position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.10); border-radius: 15px; color: #fff !important; background: rgba(255,255,255,.055); isolation: isolate; cursor: pointer; touch-action: manipulation; transition: border-color var(--transition), background var(--transition), box-shadow var(--transition), transform var(--transition) !important; }
.footer-contact-card::after { content: ''; width: 100px; height: 100px; position: absolute; right: -80px; bottom: -74px; z-index: -1; border-radius: 50%; background: radial-gradient(circle, rgba(255,225,123,.18), transparent 66%); opacity: 0; transform: scale(.72); transition: opacity var(--transition), transform var(--transition); }
.footer-contact-card__icon { width: 44px; height: 44px; display: grid; place-items: center; position: relative; z-index: 1; border: 1px solid rgba(255,225,123,.25); border-radius: 14px; color: #ffe17b; background: linear-gradient(145deg, rgba(255,225,123,.15), rgba(255,255,255,.055)); box-shadow: inset 0 1px 0 rgba(255,255,255,.13); transition: color var(--transition), background var(--transition), transform var(--transition); }
.footer-contact-card__icon .icon { width: 19px; height: 19px; margin: 0; color: currentColor; }
.footer-contact-card__copy { min-width: 0; display: grid; gap: 3px; }
.footer-contact-card__copy small { color: rgba(255,255,255,.61); font: 700 .62rem/1.3 var(--font-heading); letter-spacing: .055em; text-transform: uppercase; }
.footer-contact-card__copy strong { color: #fff; font: 650 .78rem/1.48 var(--font-heading); overflow-wrap: anywhere; }
.footer-contact-card__action { display: inline-flex; align-items: center; gap: 5px; color: #ffe17b; font: 700 .65rem/1.3 var(--font-heading); opacity: .74; transition: opacity var(--transition), gap var(--transition); }
.footer-contact-card__action .icon { width: 12px; height: 12px; margin: 0; color: currentColor; }
.footer-contact-card:hover, .footer-contact-card:focus-visible { border-color: rgba(255,225,123,.46); background: linear-gradient(135deg, rgba(181,18,107,.28), rgba(255,255,255,.11)); box-shadow: 0 15px 30px rgba(28,0,17,.17); transform: translateY(-2px); }
.footer-contact-card:active { background: rgba(255,225,123,.14); transform: translateY(0); }
.footer-contact-card:hover::after, .footer-contact-card:focus-visible::after { opacity: 1; transform: scale(1); }
.footer-contact-card:hover .footer-contact-card__icon, .footer-contact-card:focus-visible .footer-contact-card__icon { color: #6f1643; background: linear-gradient(135deg, #fff5c7, #ffe17b); transform: rotate(-3deg); }
.footer-contact-card:hover .footer-contact-card__action, .footer-contact-card:focus-visible .footer-contact-card__action { gap: 8px; opacity: 1; }
.footer-consult { min-width: 0; padding: 19px 18px 15px; position: relative; overflow: hidden; isolation: isolate; border: 1px solid rgba(255,255,255,.19); border-radius: 23px; background: radial-gradient(circle at 92% 8%, rgba(255,225,123,.15), transparent 30%), linear-gradient(145deg, rgba(255,255,255,.14), rgba(255,255,255,.045)); box-shadow: 0 24px 58px rgba(37,0,22,.17), inset 0 1px 0 rgba(255,255,255,.09); transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition); }
.footer-consult::before { content: ''; width: 180px; height: 180px; position: absolute; right: -112px; top: -112px; z-index: -1; border: 1px dashed rgba(255,225,123,.25); border-radius: 50%; transform: rotate(-16deg); pointer-events: none; }
.footer-consult::after { content: ''; width: 100px; height: 100px; position: absolute; left: -74px; bottom: -64px; z-index: -1; border-radius: 50%; background: radial-gradient(circle, rgba(8,127,146,.34), transparent 67%); pointer-events: none; }
.footer-consult:hover { border-color: rgba(255,225,123,.34); box-shadow: 0 29px 66px rgba(37,0,22,.22), inset 0 1px 0 rgba(255,255,255,.12); transform: translateY(-2px); }
.footer-consult__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 13px; }
.footer-consult__kicker { display: inline-flex; align-items: center; gap: 7px; color: #ffe17b; font: 750 .62rem/1.25 var(--font-heading); letter-spacing: .115em; text-transform: uppercase; }
.footer-consult__kicker i { width: 7px; height: 7px; flex: 0 0 auto; border: 2px solid #ffe17b; border-radius: 50%; box-shadow: 0 0 0 5px rgba(255,225,123,.09); }
.footer-consult__plane { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid rgba(255,225,123,.27); border-radius: 50%; color: #ffe17b; background: rgba(255,225,123,.08); }
.footer-consult__plane .icon { width: 16px; height: 16px; transform: rotate(18deg); }
.footer-consult .footer-title { margin: 0 0 15px; padding-bottom: 9px; font-size: 1.14rem; }
.footer-hours { min-height: 82px; display: grid; grid-template-columns: 43px minmax(0, 1fr); align-items: center; gap: 11px; padding: 10px; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; background: rgba(255,255,255,.065); box-shadow: inset 0 1px 0 rgba(255,255,255,.06); }
.footer-hours__icon { width: 43px; height: 43px; display: grid; place-items: center; border: 1px solid rgba(255,225,123,.24); border-radius: 14px; color: #ffe17b; background: linear-gradient(145deg, rgba(255,225,123,.14), rgba(255,255,255,.045)); }
.footer-hours__icon .icon { width: 19px; height: 19px; }
.footer-hours__copy { min-width: 0; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 2px 7px; }
.footer-hours__copy small { grid-column: 1 / -1; color: rgba(255,255,255,.57); font: 700 .61rem/1.25 var(--font-heading); letter-spacing: .075em; text-transform: uppercase; }
.footer-hours__copy strong { min-width: 0; color: rgba(255,255,255,.84); font: 650 .76rem/1.35 var(--font-heading); }
.footer-hours__copy b { color: #fff; font: 750 .83rem/1.25 var(--font-heading); white-space: nowrap; }
.footer-note { min-height: 0; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 9px; margin: 13px 0; color: rgba(255,255,255,.78); font: 500 .8rem/1.55 var(--font-heading); }
.footer-note > span:first-child { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; color: #ffe17b; background: rgba(255,255,255,.075); }
.footer-note .icon { width: 14px; height: 14px; }
.footer-consult__button { min-height: 62px; display: grid; grid-template-columns: 40px minmax(0, 1fr) 32px; align-items: center; gap: 10px; padding: 7px 8px; position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.44); border-radius: 16px; color: #5f1540; background: linear-gradient(135deg, #fff7cf, #ffe17b 58%, #f4b719); box-shadow: 0 14px 25px rgba(12,0,7,.18), inset 0 1px 0 rgba(255,255,255,.62); cursor: pointer; touch-action: manipulation; transition: transform var(--transition), box-shadow var(--transition), filter var(--transition); }
.footer-consult__button::before { content: ''; width: 28px; height: 120%; position: absolute; left: -42px; top: -10%; background: rgba(255,255,255,.37); filter: blur(2px); transform: skewX(-18deg); transition: left 420ms cubic-bezier(.2,.8,.2,1); pointer-events: none; }
.footer-consult__button-icon { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 13px; color: #fff; background: linear-gradient(135deg, var(--color-brand), var(--color-primary)); box-shadow: 0 8px 16px rgba(130,8,70,.22); }
.footer-consult__button-icon .icon { width: 17px; height: 17px; }
.footer-consult__button-copy { min-width: 0; display: grid; gap: 2px; }
.footer-consult__button-copy small { color: rgba(95,21,64,.67); font: 700 .57rem/1.2 var(--font-heading); letter-spacing: .075em; text-transform: uppercase; }
.footer-consult__button-copy strong { color: #5f1540; font: 750 .76rem/1.3 var(--font-heading); }
.footer-consult__button-arrow { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid rgba(95,21,64,.13); border-radius: 50%; color: #6f1643; background: rgba(255,255,255,.36); transition: color var(--transition), background var(--transition), transform var(--transition); }
.footer-consult__button-arrow .icon { width: 15px; height: 15px; }
.footer-consult__button:hover, .footer-consult__button:focus-visible { box-shadow: 0 19px 32px rgba(12,0,7,.27); filter: saturate(1.08); transform: translateY(-3px); }
.footer-consult__button:hover::before, .footer-consult__button:focus-visible::before { left: calc(100% + 18px); }
.footer-consult__button:hover .footer-consult__button-arrow, .footer-consult__button:focus-visible .footer-consult__button-arrow { color: #fff; background: var(--color-primary); transform: translateX(2px); }
.footer-consult__button:active { box-shadow: 0 10px 20px rgba(12,0,7,.19); transform: translateY(0); }
.footer-consult__journey { height: 19px; position: relative; margin-top: 8px; overflow: hidden; }
.footer-consult__journey i { position: absolute; right: 7px; left: 7px; top: 9px; border-top: 1px dashed rgba(255,225,123,.34); }
.footer-consult__journey > span { width: 22px; height: 19px; position: absolute; left: 10%; top: 0; display: grid; place-items: center; color: rgba(255,225,123,.82); transform: translateX(0); transition: transform 460ms cubic-bezier(.2,.8,.2,1); }
.footer-consult__journey .icon { width: 14px; height: 14px; transform: rotate(12deg); }
.footer-consult:hover .footer-consult__journey > span, .footer-consult:focus-within .footer-consult__journey > span { transform: translateX(500%); }
.footer-bottom { position: relative; z-index: 1; margin-top: clamp(44px, 6vw, 74px); padding-top: 20px; border-top-color: rgba(255,255,255,.17); color: rgba(255,255,255,.58); }
.footer-bottom__copyright { min-height: 44px; display: inline-flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 0; border: 0; border-radius: 0; color: rgba(255,255,255,.62); background: transparent; font: 550 .78rem/1.45 var(--font-heading); box-shadow: none; }
.footer-bottom__copyright::before { content: ''; width: 30px; height: 2px; flex: 0 0 auto; border-radius: 99px; background: linear-gradient(90deg, #ffe17b, var(--color-brand)); box-shadow: 0 0 14px rgba(255,225,123,.22); }
.footer-bottom__copyright-mark { width: auto; height: auto; display: block; flex: 0 0 auto; color: #ffe17b; background: none; font: 800 1rem/1 var(--font-heading); }
.footer-bottom__copyright > span:last-child { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 0 .32em; }
.footer-bottom__copyright strong { color: rgba(255,255,255,.72); font-weight: 650; }
.footer-bottom__copyright a { min-height: 44px; position: relative; display: inline-flex; align-items: center; color: #fff; font-weight: 800; text-decoration: none; transition: color var(--transition); }
.footer-bottom__copyright a::after { content: ''; height: 1px; position: absolute; right: 0; bottom: 8px; left: 0; border-radius: 99px; background: linear-gradient(90deg, #ffe17b, var(--color-brand)); transform: scaleX(.35); transform-origin: left; transition: transform var(--transition); }
.footer-bottom__copyright a:hover, .footer-bottom__copyright a:focus-visible { color: #ffe17b; }
.footer-bottom__copyright a:hover::after, .footer-bottom__copyright a:focus-visible::after { transform: scaleX(1); }
.footer-back-top { min-height: 44px; display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; padding-left: 12px; color: rgba(255,255,255,.72); font: 700 .72rem/1 var(--font-heading); letter-spacing: .045em; text-transform: uppercase; cursor: pointer; touch-action: manipulation; transition: color var(--transition), transform var(--transition); }
.footer-back-top i { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid rgba(255,225,123,.34); border-radius: 50%; color: #ffe17b; background: rgba(255,255,255,.065); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); font-style: normal; transition: color var(--transition), border-color var(--transition), background var(--transition), box-shadow var(--transition), transform var(--transition); }
.footer-back-top .icon { width: 16px; height: 16px; }
.footer-back-top:hover, .footer-back-top:focus-visible { color: #fff; transform: translateY(-2px); }
.footer-back-top:hover i, .footer-back-top:focus-visible i { border-color: #ffe17b; color: #6f1643; background: linear-gradient(135deg, #fff5c7, #ffe17b); box-shadow: 0 9px 20px rgba(17,0,10,.18); transform: translateY(-2px); }
.footer-back-top:active { transform: translateY(0); }

@media (max-width: 1100px) {
  .footer-grid { grid-template-columns: minmax(230px, 1.2fr) minmax(165px, .8fr) minmax(220px, 1fr); }
  .footer-consult { grid-column: 2 / -1; max-width: 390px; }
}

@media (max-width: 680px) {
  .site-footer { padding-top: 82px; }
  .footer-route { width: calc(100% - 56px); top: 25px; }
  .footer-route__plane { left: 26%; }
  .footer-grid { gap: 31px; }
  .footer-brand__intro { max-width: 410px; }
  .footer-brand__connect { max-width: none; }
  .footer-hotline, .footer-social { min-height: 62px; }
  .footer-links a { min-height: 42px; }
  .footer-consult { grid-column: auto; max-width: none; }
  .footer-note { min-height: 0; }
  .footer-bottom { margin-top: 42px; padding-top: 17px; }
  .footer-bottom__copyright { align-items: center; border-radius: 0; }
  .footer-back-top { align-self: flex-end; }
}

.page-hero { background: linear-gradient(95deg, rgba(45,7,31,.94), rgba(130,8,70,.78) 55%, rgba(8,127,146,.28)), url('../images/tour-da-nang.jpg') center 42%/cover no-repeat; }
.page-hero::before { content: ''; width: 560px; height: 250px; position: absolute; right: 4%; top: 12%; border: 2px dashed rgba(255,225,123,.42); border-width: 2px 0 0; border-radius: 50%; transform: rotate(-9deg); }
.page-hero::after { border-color: rgba(255,225,123,.11); }
.filter-bar { overflow: hidden; border: 1px solid rgba(181,18,107,.10); box-shadow: 0 30px 80px rgba(72,18,50,.16); }
.filter-bar::before { content: ''; height: 4px; position: absolute; inset: 0 0 auto; background: linear-gradient(90deg, var(--color-accent), var(--color-brand), var(--color-secondary)); }
.consult-section { position: relative; overflow: hidden; background: radial-gradient(circle at 14% 15%, rgba(244,183,25,.20), transparent 24%), linear-gradient(135deg, #820846, var(--color-primary) 58%, #c3267d); }
.consult-section::after { content: ''; width: 520px; height: 520px; position: absolute; left: -310px; bottom: -360px; border: 2px dashed rgba(255,255,255,.18); border-radius: 50%; }
.consult-grid { position: relative; z-index: 1; }
.consult-form { border: 1px solid rgba(255,255,255,.55); box-shadow: 0 36px 90px rgba(58,2,35,.24); }

.tour-detail-hero__overlay { background: linear-gradient(0deg, rgba(45,7,31,.96), rgba(130,8,70,.26) 70%, rgba(8,127,146,.08)); }
.tour-detail-hero::after { content: ''; width: 600px; height: 260px; position: absolute; right: -60px; top: 80px; border: 2px dashed rgba(255,225,123,.42); border-width: 2px 0 0; border-radius: 50%; transform: rotate(-12deg); }
.tour-facts { box-shadow: 0 12px 40px rgba(72,18,50,.06); }
.detail-panel, .detail-note, .booking-card { border-color: rgba(181,18,107,.10); box-shadow: 0 12px 38px rgba(72,18,50,.07); }
.highlight-grid div { background: linear-gradient(135deg, var(--color-primary-soft), #fff7dc); }
.detail-note { background: linear-gradient(135deg, #820846, var(--color-primary) 62%, #d83791); }
.booking-card { box-shadow: 0 24px 60px rgba(72,18,50,.12); }
.booking-card__phone { background: linear-gradient(90deg, var(--color-primary-soft), #fff5d7); }

/* Travel journal */
.news-hero { position: relative; overflow: hidden; padding: clamp(82px, 10vw, 138px) 0 clamp(78px, 9vw, 122px); background: radial-gradient(circle at 82% 16%, rgba(244,183,25,.28), transparent 23%), radial-gradient(circle at 93% 94%, rgba(8,127,146,.34), transparent 25%), linear-gradient(125deg, #3d0a2b, #840d4d 57%, #b5126b); color: #fff; }
.news-hero::before { content: ''; width: min(50vw, 680px); aspect-ratio: 1; position: absolute; right: -12%; top: -52%; border: 1px dashed rgba(255,225,123,.45); border-radius: 50%; }
.news-hero::after { content: ''; width: 360px; height: 88px; position: absolute; right: 8%; bottom: 13%; border: 1px solid rgba(255,255,255,.14); border-width: 1px 0 0; border-radius: 50%; transform: rotate(-14deg); }
.news-hero__inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) 240px; align-items: end; gap: 40px; }
.news-hero h1 { max-width: 780px; margin: 0 0 22px; color: #fff; font: 600 clamp(3rem, 6vw, 5.4rem)/1.03 var(--font-display); letter-spacing: -.055em; }
.news-hero h1 em { color: #ffe17b; font-style: italic; }
.news-hero__inner > div:first-child > p:last-child { max-width: 645px; margin: 0; color: rgba(255,255,255,.82); font-size: 1.08rem; line-height: 1.7; }
.news-hero__route { min-height: 178px; position: relative; display: grid; align-content: center; justify-items: start; gap: 14px; padding: 25px 27px; border: 1px solid rgba(255,255,255,.18); border-radius: 24px; background: rgba(255,255,255,.08); box-shadow: 0 24px 60px rgba(44,1,27,.20); backdrop-filter: blur(12px); }
.news-hero__route span { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; background: linear-gradient(140deg, #ffe17b, var(--color-accent)); color: #5c3800; font: 800 .92rem/1 var(--font-heading); }
.news-hero__route i { width: 100%; height: 1px; display: block; position: relative; border-top: 1px dashed rgba(255,255,255,.6); }
.news-hero__route i::after { content: ''; width: 8px; height: 8px; position: absolute; right: 0; top: -5px; border-radius: 50%; background: #ffe17b; box-shadow: -74px 0 0 rgba(255,255,255,.68), -146px 0 0 rgba(255,255,255,.35); }
.news-hero__route strong { color: rgba(255,255,255,.75); font: 700 .7rem/1 var(--font-heading); letter-spacing: .18em; }
.news-index-section { background: linear-gradient(135deg, #fff9f3, #fff 50%, #fff5fb); }
.news-index-heading { align-items: end; }
.news-index-heading > p { max-width: 500px; }
.news-featured { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(300px, .88fr); overflow: hidden; margin-bottom: 26px; border: 1px solid rgba(181,18,107,.12); border-radius: 28px; background: #fff; box-shadow: 0 26px 70px rgba(72,18,50,.12); }
.news-featured__image { min-height: 390px; display: block; overflow: hidden; background: var(--color-primary-soft); }
.news-featured__image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform 500ms cubic-bezier(.2,.8,.2,1); }
.news-featured:hover .news-featured__image img, .news-featured:focus-within .news-featured__image img { transform: scale(1.035); }
.news-featured__body { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(28px, 4.5vw, 58px); }
.news-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 17px; color: var(--color-text-soft); font: 600 .74rem/1.4 var(--font-heading); }
.news-meta > span { padding: 6px 9px; border-radius: 999px; background: #fff0f7; color: var(--color-primary); font-weight: 700; }
.news-meta time { display: inline-flex; align-items: center; gap: 5px; }
.news-meta .icon { width: 15px; height: 15px; color: var(--color-primary); }
.news-featured h2 { margin-bottom: 15px; font: 600 clamp(1.85rem, 3.2vw, 2.75rem)/1.17 var(--font-display); letter-spacing: -.025em; }
.news-featured h2 a, .news-card h3 a { transition: color var(--transition); }
.news-featured h2 a:hover, .news-featured h2 a:focus-visible, .news-card h3 a:hover, .news-card h3 a:focus-visible { color: var(--color-primary); }
.news-featured p { max-width: 490px; margin: 0 0 23px; color: var(--color-text-soft); line-height: 1.7; }
.news-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.news-card { min-width: 0; display: grid; grid-template-columns: minmax(150px, .86fr) minmax(0, 1.14fr); overflow: hidden; border: 1px solid rgba(181,18,107,.10); border-radius: 21px; background: #fff; box-shadow: 0 11px 32px rgba(72,18,50,.06); transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition); }
.news-card:hover, .news-card:focus-within { transform: translateY(-4px); border-color: rgba(181,18,107,.25); box-shadow: 0 22px 48px rgba(72,18,50,.12); }
.news-card__image { min-height: 100%; display: block; overflow: hidden; background: var(--color-primary-soft); }
.news-card__image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform 450ms cubic-bezier(.2,.8,.2,1); }
.news-card:hover .news-card__image img, .news-card:focus-within .news-card__image img { transform: scale(1.04); }
.news-card__body { min-width: 0; position: relative; padding: 22px 22px 48px; }
.news-card__body .news-meta { margin-bottom: 11px; font-size: .68rem; }
.news-card__body .news-meta > span { padding: 5px 7px; }
.news-card h3 { margin-bottom: 10px; font-size: 1.08rem; line-height: 1.38; }
.news-card p { display: -webkit-box; margin: 0; overflow: hidden; color: var(--color-text-soft); font-size: .86rem; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.news-card__link { width: 44px; height: 44px; position: absolute; right: 14px; bottom: 12px; display: grid; place-items: center; border-radius: 50%; background: var(--color-primary-soft); color: var(--color-primary); transition: transform var(--transition), background var(--transition), color var(--transition); }
.news-card__link:hover, .news-card__link:focus-visible { background: var(--color-primary); color: #fff; transform: translateX(3px); }
.news-card__link .icon { width: 18px; height: 18px; }
.news-pagination { display: grid; justify-items: center; gap: 17px; margin-top: clamp(34px, 5vw, 58px); padding-top: 28px; border-top: 1px solid rgba(181,18,107,.12); }
.news-pagination__summary { margin: 0; color: var(--color-text-soft); font: 600 .78rem/1.4 var(--font-heading); letter-spacing: .025em; }
.news-pagination__summary strong { color: var(--color-primary); font-size: .94rem; }
.news-pagination__summary span { margin-inline: 4px; color: rgba(181,18,107,.34); }
.news-pagination__links { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 9px; }
.news-pagination__numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.news-pagination__numbers a, .news-pagination__numbers > span:not(.news-pagination__ellipsis) { width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid rgba(181,18,107,.14); border-radius: 14px; background: rgba(255,255,255,.88); color: #5a3c4d; font: 700 .84rem/1 var(--font-heading); box-shadow: 0 7px 20px rgba(72,18,50,.045); transition: transform var(--transition), color var(--transition), border-color var(--transition), background var(--transition), box-shadow var(--transition); }
.news-pagination__numbers a:hover, .news-pagination__numbers a:focus-visible { transform: translateY(-2px); border-color: rgba(181,18,107,.42); color: var(--color-primary); box-shadow: 0 12px 25px rgba(72,18,50,.10); }
.news-pagination__numbers > .is-current { border-color: var(--color-primary); background: linear-gradient(145deg, #820846, var(--color-primary)); color: #fff; box-shadow: 0 12px 28px rgba(181,18,107,.24); }
.news-pagination__ellipsis { width: 24px; display: grid; place-items: center; color: var(--color-text-soft); }
.news-pagination__direction { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 0 15px; border-radius: 14px; background: #fff1f7; color: var(--color-primary); font: 700 .78rem/1 var(--font-heading); transition: transform var(--transition), color var(--transition), background var(--transition); }
.news-pagination__direction:not(.is-disabled):hover, .news-pagination__direction:not(.is-disabled):focus-visible { transform: translateY(-2px); background: var(--color-primary); color: #fff; }
.news-pagination__direction .icon { width: 17px; height: 17px; }
.news-pagination__direction--prev .icon { transform: rotate(180deg); }
.news-pagination__direction.is-disabled { opacity: .42; cursor: not-allowed; }
.news-article-hero { min-height: min(620px, 72vh); position: relative; display: flex; align-items: end; overflow: hidden; color: #fff; }
.news-article-hero > img, .news-article-hero__overlay { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.news-article-hero__overlay { background: linear-gradient(0deg, rgba(38,4,25,.95), rgba(107,7,59,.58) 52%, rgba(8,127,146,.18)); }
.news-article-hero__content { position: relative; z-index: 1; max-width: 980px; padding-bottom: clamp(48px, 7vw, 94px); }
.news-breadcrumb { min-height: 44px; display: inline-flex; align-items: center; gap: 8px; margin-bottom: 20px; color: rgba(255,255,255,.76); font-size: .82rem; }
.news-breadcrumb:hover { color: #ffe17b; }
.news-breadcrumb span { color: rgba(255,255,255,.38); }
.news-article-hero h1 { max-width: 940px; margin: 0 0 16px; color: #fff; font: 600 clamp(2.55rem, 5.5vw, 4.8rem)/1.08 var(--font-display); letter-spacing: -.04em; }
.news-article-hero__content > p:not(.eyebrow) { max-width: 730px; margin: 0 0 20px; color: rgba(255,255,255,.84); font-size: 1.1rem; line-height: 1.65; }
.news-article-hero time { display: inline-flex; align-items: center; gap: 7px; color: rgba(255,255,255,.72); font-size: .84rem; }
.news-article-hero time .icon { width: 17px; height: 17px; color: #ffe17b; }
.news-article-section { background: linear-gradient(140deg, #fffaf5, #fff 58%, #fff5fa); }
.news-article-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(270px, 350px); align-items: start; gap: clamp(36px, 7vw, 100px); }
.news-article-content { max-width: 740px; }
.news-article-content p { margin: 0 0 22px; color: #354050; font-size: 1.07rem; line-height: 1.9; }
.news-article-content p:first-child { color: #4d1640; font-size: 1.25rem; line-height: 1.75; }
.news-article-aside { position: sticky; top: 108px; padding: 28px; border: 1px solid rgba(181,18,107,.15); border-radius: 22px; background: linear-gradient(145deg, #fff, #fff4f9); box-shadow: 0 20px 46px rgba(72,18,50,.08); }
.news-article-aside h2 { margin: 0 0 13px; font-size: 1.35rem; line-height: 1.35; }
.news-article-aside p:not(.eyebrow) { margin: 0 0 20px; color: var(--color-text-soft); font-size: .89rem; line-height: 1.7; }
.news-article-aside .button { width: 100%; justify-content: center; margin-bottom: 12px; }
.news-article-aside .text-link { font-size: .82rem; }
.news-empty-state { min-height: 360px; display: grid; place-items: center; align-content: center; gap: 11px; max-width: 690px; margin-inline: auto; padding: 30px; border: 1px dashed rgba(181,18,107,.28); border-radius: 24px; background: #fff; color: var(--color-text-soft); text-align: center; }
.news-empty-state > .icon { width: 44px; height: 44px; color: var(--color-primary); }
.news-empty-state h1, .news-empty-state h2 { margin: 0; color: var(--color-text); }
.news-empty-state p:not(.eyebrow) { max-width: 520px; margin: 0 0 10px; line-height: 1.7; }
.news-cell { min-width: 310px; display: flex; align-items: center; gap: 12px; }
.news-cell img { width: 72px; height: 56px; border-radius: 9px; object-fit: cover; }
.news-cell strong, .news-cell small, .news-cell span { display: block; }
.news-cell strong { max-width: 310px; font: 700 .9rem/1.3 var(--font-heading); }
.news-cell small { margin-top: 3px; color: var(--color-text-soft); }
.news-cell span { display: inline-flex; align-items: center; gap: 4px; margin-top: 5px; color: #8b6200; font: 700 .68rem/1 var(--font-heading); }
.news-cell span .icon { width: 13px; height: 13px; color: var(--color-accent); }
.admin-page-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.news-publish-panel { grid-template-columns: minmax(150px, 1fr) 220px 180px auto; }


.login-page { background: radial-gradient(circle at 85% 8%, rgba(244,183,25,.16), transparent 27%), linear-gradient(135deg, #fff8ee, #fff 48%, #fdebf6); }
.login-visual__overlay { background: linear-gradient(0deg, rgba(45,7,31,.96), rgba(181,18,107,.30)); }
.login-card { padding: 36px; border: 1px solid rgba(181,18,107,.09); border-radius: 28px; background: rgba(255,255,255,.86); box-shadow: 0 28px 80px rgba(72,18,50,.11); backdrop-filter: blur(16px); }
.admin-body { background: radial-gradient(circle at 98% 0%, rgba(244,183,25,.10), transparent 26rem), linear-gradient(135deg, #fff8ef, #fff 45%, #fdebf6); }
.admin-sidebar { background: radial-gradient(circle at 50% 0%, rgba(244,183,25,.16), transparent 28%), linear-gradient(180deg, #2a1022 0%, #650a3b 58%, #8d1055 100%); }
.admin-nav a:hover, .admin-nav a.is-active { background: rgba(255,255,255,.12); }
.admin-nav small { background: var(--color-accent); color: #5b3d00; }
.admin-topbar { background: rgba(255,251,247,.88); box-shadow: 0 8px 28px rgba(72,18,50,.05); }
.stats-grid article, .admin-panel { border-color: rgba(181,18,107,.09); box-shadow: 0 12px 36px rgba(72,18,50,.06); }
.stats-grid article { position: relative; overflow: hidden; }
.stats-grid article::after { content: ''; width: 84px; height: 84px; position: absolute; right: -38px; top: -38px; border-radius: 50%; background: rgba(244,183,25,.12); }
.admin-table th { background: #fff5ed; }
.admin-table tbody tr:hover { background: #fff8f1; }

/* Expressive Vietnamese display type: limited to storytelling headlines. */
.hero h1,
.section-heading h2,
.journey-heading h2,
.story-copy h2,
.partners-heading h2,
.testimonial-intro h2,
.cta-band h2,
.page-hero h1,
.tour-detail-hero h1,
.consult-copy h2 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -.025em;
}

.hero h1 { line-height: 1.02; letter-spacing: -.035em; }
.section-heading h2, .story-copy h2, .partners-heading h2, .testimonial-intro h2 { line-height: 1.12; }

@keyframes route-dash { to { stroke-dashoffset: -160; } }
@keyframes plane-float { 0%, 100% { transform: translate3d(0,0,0) rotate(2deg); } 50% { transform: translate3d(12px,-14px,0) rotate(-4deg); } }
@keyframes sun-breathe { 0%, 100% { opacity: .74; transform: scale(.98); } 50% { opacity: 1; transform: scale(1.04); } }
@keyframes orbit-spin { to { transform: rotate(360deg); } }
@keyframes journey-flight { 0% { offset-distance: 0%; opacity: 0; } 6%, 92% { opacity: 1; } 100% { offset-distance: 100%; opacity: 0; } }
@keyframes hero-kenburns { 0% { transform: translate3d(-1%, var(--hero-shift, 0), 0) scale(1.09); } 100% { transform: translate3d(1%, var(--hero-shift, 0), 0) scale(1.025); } }
@keyframes hero-slide-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes featured-route-drift { to { stroke-dashoffset: -126; } }

@media (min-width: 1101px) {
  #tour-noi-bat .tour-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-flow: dense; gap: 22px; }
  #tour-noi-bat .tour-card:nth-child(1), #tour-noi-bat .tour-card:nth-child(4) { grid-column: span 2; display: grid; grid-template-columns: 1.12fr .88fr; }
  #tour-noi-bat .tour-card:nth-child(4) { grid-template-columns: .88fr 1.12fr; }
  #tour-noi-bat .tour-card:nth-child(4) .tour-card__image { order: 2; }
  #tour-noi-bat .tour-card:nth-child(4) .tour-card__body { order: 1; }
  #tour-noi-bat .tour-card:nth-child(1) .tour-card__image, #tour-noi-bat .tour-card:nth-child(4) .tour-card__image { min-height: 100%; aspect-ratio: auto; }
  #tour-noi-bat .tour-card:nth-child(1) .tour-card__body, #tour-noi-bat .tour-card:nth-child(4) .tour-card__body { display: flex; flex-direction: column; justify-content: center; padding: 30px; }
  #tour-noi-bat .tour-card:nth-child(1) h3, #tour-noi-bat .tour-card:nth-child(4) h3 { min-height: 0; font-size: 1.34rem; }
  #tour-noi-bat .tour-card:nth-child(1) .tour-card__body > p, #tour-noi-bat .tour-card:nth-child(4) .tour-card__body > p { min-height: 0; }
  #tour-noi-bat .tour-card:nth-child(1) .tour-card__footer, #tour-noi-bat .tour-card:nth-child(4) .tour-card__footer { margin-top: auto; }

  #tour-noi-bat .tour-grid--featured { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 22px; }
  #tour-noi-bat .tour-grid--featured .tour-card--journey { grid-column: span 3; display: block; min-height: 0; }
  #tour-noi-bat .tour-grid--featured .tour-card--journey:nth-child(1), #tour-noi-bat .tour-grid--featured .tour-card--journey:nth-child(6) { grid-column: span 6; display: grid; grid-template-columns: 1.08fr .92fr; }
  #tour-noi-bat .tour-grid--featured .tour-card--journey:nth-child(6) { grid-template-columns: .92fr 1.08fr; }
  #tour-noi-bat .tour-grid--featured .tour-card--journey:nth-child(6) .tour-card__image { order: 2; }
  #tour-noi-bat .tour-grid--featured .tour-card--journey:nth-child(1) .tour-card__image, #tour-noi-bat .tour-grid--featured .tour-card--journey:nth-child(6) .tour-card__image { min-height: 100%; aspect-ratio: auto; }
  #tour-noi-bat .tour-grid--featured .tour-card--journey:nth-child(1) .tour-card__body, #tour-noi-bat .tour-grid--featured .tour-card--journey:nth-child(6) .tour-card__body { display: flex; flex-direction: column; justify-content: center; padding: 30px; }
  #tour-noi-bat .tour-grid--featured .tour-card--journey:nth-child(1) h3, #tour-noi-bat .tour-grid--featured .tour-card--journey:nth-child(6) h3 { min-height: 0; font-size: 1.34rem; }
  #tour-noi-bat .tour-grid--featured .tour-card--journey:nth-child(1) .tour-card__body > p, #tour-noi-bat .tour-grid--featured .tour-card--journey:nth-child(6) .tour-card__body > p { min-height: 0; }
  #tour-noi-bat .tour-grid--featured .tour-card--journey:nth-child(1) .tour-card__footer, #tour-noi-bat .tour-grid--featured .tour-card--journey:nth-child(6) .tour-card__footer { margin-top: auto; }
}

@media (max-width: 1100px) {
  .primary-nav { gap: 15px; }
  .primary-nav a { font-size: .85rem; }
  .header-cta { display: none; }
  .tour-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .featured-tours-heading { grid-template-columns: 1fr; align-items: start; gap: 18px; }
  .featured-tours-heading__aside > p { max-width: 700px; }
  .footer-grid { grid-template-columns: 1.2fr .8fr 1fr; }
  .footer-grid > div:last-child { grid-column: 2 / -1; }
  .admin-sidebar { width: 236px; }
  .admin-shell { margin-left: 236px; }
  .form-panel { grid-template-columns: 1fr; gap: 22px; }
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .theme-editor { grid-template-columns: repeat(3, minmax(110px, 1fr)); }
  .cms-repeat-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .media-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .partner-logo-row { grid-template-columns: 34px 70px minmax(0, 1fr) 142px; align-items: center; }
  .partner-logo-row > .cms-card-number { grid-column: 1; grid-row: 1 / 3; }
  .partner-logo-row .logo-preview { width: 70px; height: 52px; grid-column: 2; grid-row: 1 / 3; }
  .partner-logo-row img, .partner-logo-row .logo-placeholder { width: 70px; height: 52px; }
  .partner-logo-row .logo-name-field { grid-column: 3; grid-row: 1; }
  .partner-logo-row .logo-image-field { grid-column: 3; grid-row: 2; }
  .partner-logo-row .logo-row-actions { grid-column: 4; grid-row: 1 / 3; }
}

/* Avoid compressed multi-line navigation on zoomed or medium desktop viewports. */
@media (max-width: 1320px) and (min-width: 901px) {
  .site-header__inner { min-height: 76px; gap: 16px; }
  .header-cta { display: none; }
  .nav-toggle { display: grid; }
  .primary-nav { position: absolute; z-index: 1; left: 16px; right: 16px; top: calc(100% + 10px); max-height: calc(100dvh - 96px - env(safe-area-inset-bottom)); display: grid; gap: 2px; padding: 12px; overflow-y: auto; overscroll-behavior: contain; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fff; box-shadow: var(--shadow-lg); visibility: hidden; opacity: 0; transform: translateY(-8px); transition: opacity var(--transition), transform var(--transition), visibility var(--transition); }
  .primary-nav.is-open { visibility: visible; opacity: 1; transform: translateY(0); }
  .primary-nav a, .primary-nav summary { min-height: 48px; padding: 0 14px; border-radius: 9px; }
  .primary-nav a:hover, .primary-nav a.is-active, .primary-nav summary:hover, .primary-nav summary.is-active { background: var(--color-primary-soft); }
  .primary-nav > a::after, .primary-nav > details > summary::after { display: none; }
  .primary-nav__group { width: 100%; }
  .primary-nav__group > summary { width: 100%; justify-content: space-between; }
  .primary-nav__submenu { width: auto; max-height: none; position: static; margin: 2px 8px 7px; padding: 5px 5px 5px 12px; border: 0; border-left: 2px solid var(--color-primary-soft); border-radius: 0 0 10px 10px; background: transparent; box-shadow: none; opacity: 1; visibility: visible; transform: none; backdrop-filter: none; }
  .primary-nav__submenu a { min-height: 48px; padding: 8px 12px; }
  .primary-nav__group:not([open]) > .primary-nav__submenu { display: none; }
}

/* Site-wide journey polish — shared by public pages and the CMS. */
.site-page:not(.site-page--index) main {
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(circle at 4% 24%, rgba(220,52,149,.055), transparent 25rem),
    radial-gradient(circle at 96% 64%, rgba(8,127,146,.06), transparent 28rem),
    var(--color-background);
}

.site-page:not(.site-page--index) main::before {
  content: '';
  width: min(42vw, 560px);
  aspect-ratio: 1;
  position: absolute;
  z-index: -1;
  right: 0;
  top: 34%;
  border: 1px dashed rgba(181,18,107,.10);
  border-radius: 50%;
  pointer-events: none;
}

.site-header__progress {
  height: 3px;
  background: linear-gradient(90deg, var(--color-accent), var(--color-brand), var(--color-secondary));
  box-shadow: 0 2px 10px rgba(181,18,107,.18);
}

.page-hero::before {
  content: '';
  width: min(43vw, 620px);
  height: 270px;
  position: absolute;
  right: -3%;
  top: 16%;
  border: 1px dashed rgba(255,225,123,.42);
  border-width: 1px 0 0;
  border-radius: 50%;
  transform: rotate(-11deg);
  pointer-events: none;
}

.page-hero__content::after {
  content: 'SV  /  JOURNEY';
  min-width: 156px;
  min-height: 112px;
  position: absolute;
  right: 0;
  top: 50%;
  display: grid;
  place-items: center;
  padding: 22px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 22px;
  background: rgba(65,7,42,.18);
  color: #ffe17b;
  font: 700 .68rem/1 var(--font-heading);
  letter-spacing: .18em;
  box-shadow: 0 20px 48px rgba(38,3,24,.14);
  transform: translateY(-50%);
  backdrop-filter: blur(12px);
}

.page-hero__content::before {
  content: '';
  width: 78px;
  height: 1px;
  position: absolute;
  z-index: 1;
  right: 39px;
  top: calc(50% + 22px);
  border-top: 1px dashed rgba(255,255,255,.55);
  pointer-events: none;
}

.tour-detail-hero::after,
.customer-detail-hero::after,
.news-article-hero::after {
  content: '';
  width: min(42vw, 570px);
  height: 220px;
  position: absolute;
  right: -7%;
  top: 12%;
  border: 1px dashed rgba(255,225,123,.35);
  border-width: 1px 0 0;
  border-radius: 50%;
  transform: rotate(-12deg);
  pointer-events: none;
}

.filter-bar:focus-within,
.consult-form:focus-within,
.booking-card:focus-within,
.customer-story-aside:focus-within,
.news-article-aside:focus-within {
  border-color: rgba(181,18,107,.28);
  box-shadow: 0 28px 76px rgba(72,18,50,.16);
}

.content-category-nav {
  scroll-padding-inline: 8px;
  scroll-snap-type: inline proximity;
}

.content-category-nav a { scroll-snap-align: start; }
.content-category-nav.is-scrollable:not(.is-at-end) { box-shadow: inset -24px 0 20px -24px rgba(70,15,47,.32); }
.content-category-nav.is-scrollable:not(.is-at-start) { box-shadow: inset 24px 0 20px -24px rgba(70,15,47,.32), inset -24px 0 20px -24px rgba(70,15,47,.32); }
.content-category-nav.is-at-end:not(.is-at-start) { box-shadow: inset 24px 0 20px -24px rgba(70,15,47,.32); }

.category-scroll-hint {
  display: none;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  color: #7d6472;
  font: 700 .68rem/1.3 var(--font-heading);
  letter-spacing: .02em;
  transition: opacity var(--transition), transform var(--transition);
}

.category-scroll-hint .icon { width: 15px; height: 15px; color: var(--color-primary); }
.category-scroll-hint.is-hidden { opacity: 0; transform: translateX(6px); pointer-events: none; }

.tour-card__image::after,
.news-card__image::after,
.customer-card__media::after,
.customer-showcase-card__media::after {
  content: '';
  width: 58px;
  position: absolute;
  right: 13px;
  bottom: 13px;
  border-top: 1px dashed rgba(255,255,255,.78);
  filter: drop-shadow(0 1px 3px rgba(36,3,22,.35));
  pointer-events: none;
}

.news-card__image { position: relative; }

.tour-card__image::before,
.news-card__image::before,
.customer-card__media::before,
.customer-showcase-card__media::before {
  content: '';
  width: 7px;
  height: 7px;
  position: absolute;
  z-index: 1;
  right: 13px;
  bottom: 10px;
  border: 2px solid #ffe17b;
  border-radius: 50%;
  box-shadow: -52px 0 0 -2px #ffe17b;
  pointer-events: none;
}

.tour-card:focus-within,
.news-card:focus-within,
.news-featured:focus-within,
.customer-card:focus-within,
.customer-featured:focus-within,
.customer-showcase-card:focus-within {
  border-color: rgba(181,18,107,.38);
  box-shadow: 0 24px 56px rgba(72,18,50,.14);
}

.customer-showcase-card__link { min-height: 44px; }

.topbar,
.topbar__inner,
.topbar__links a { min-height: 44px; }

.tour-card h3 a,
.experience-ticker a { min-height: 44px; display: flex; align-items: center; }

.news-article-content p:first-child::first-letter {
  float: left;
  margin: .08em .12em 0 0;
  color: var(--color-primary);
  font: 700 3.4em/.78 var(--font-display);
}

.news-article-content p,
.customer-story-copy p,
.tour-detail-intro > p:not(.eyebrow) { text-wrap: pretty; }

.news-article-aside,
.customer-story-aside,
.booking-card {
  overflow: hidden;
  isolation: isolate;
}

.news-article-aside::before,
.customer-story-aside::before,
.booking-card::before {
  content: '';
  width: 120px;
  height: 120px;
  position: absolute;
  z-index: -1;
  right: -58px;
  top: -62px;
  border: 1px dashed rgba(181,18,107,.18);
  border-radius: 50%;
}

/* CMS usability: clear focus, scroll affordance, and reliable mobile targets. */
.admin-nav a,
.admin-sidebar__bottom > a,
.admin-sidebar__bottom button { min-height: 44px; }

.admin-panel { transition: border-color var(--transition), box-shadow var(--transition); }
.admin-panel:focus-within { border-color: rgba(181,18,107,.22); box-shadow: 0 16px 42px rgba(47,20,38,.075); }

.admin-table-wrap {
  position: relative;
  background:
    linear-gradient(90deg, #fff 30%, rgba(255,255,255,0)) left center / 28px 100% no-repeat,
    linear-gradient(270deg, #fff 30%, rgba(255,255,255,0)) right center / 28px 100% no-repeat;
}

.admin-table-wrap:focus-visible {
  outline: 3px solid rgba(181,18,107,.36);
  outline-offset: -3px;
}

.admin-table-filter,
.cms-form-outline a,
.category-item__actions .button,
.category-delete-form button { min-height: 44px; }

.admin-page-heading h1,
.admin-welcome h1,
.form-panel__heading h2 { text-wrap: balance; }

.admin-welcome::before {
  content: '';
  width: 240px;
  height: 90px;
  position: absolute;
  right: 7%;
  top: 23%;
  border: 1px dashed rgba(181,18,107,.14);
  border-width: 1px 0 0;
  border-radius: 50%;
  transform: rotate(-10deg);
  pointer-events: none;
}

.login-card {
  position: relative;
  isolation: isolate;
}

.login-card::before {
  content: '';
  width: 132px;
  height: 70px;
  position: absolute;
  z-index: -1;
  right: -16px;
  top: 28px;
  border: 1px dashed rgba(181,18,107,.16);
  border-width: 1px 0 0;
  border-radius: 50%;
  transform: rotate(-12deg);
}

@media (min-width: 901px) and (max-width: 1320px) {
  .site-header__inner { min-height: 76px; gap: 16px; }
  .primary-nav { gap: 2px; }
  .header-cta { display: none; }
}

/* 2026 Studio renewal — a quieter, editorial travel and event system. */
:root {
  --container: 1280px;
  --radius-sm: 14px;
  --radius-md: 26px;
  --radius-lg: 36px;
  --shadow-sm: 0 10px 30px rgba(66, 13, 43, .07);
  --shadow-md: 0 22px 58px rgba(66, 13, 43, .12);
  --shadow-lg: 0 38px 92px rgba(66, 13, 43, .17);
  --font-display: 'Playfair Display', 'Iowan Old Style', Georgia, serif;
  --font-heading: 'Be Vietnam Pro', 'Avenir Next', system-ui, sans-serif;
  --font-body: 'Be Vietnam Pro', 'Avenir Next', system-ui, sans-serif;
}

body {
  background:
    radial-gradient(circle at 4% 3%, rgba(220, 52, 149, .09), transparent 27rem),
    radial-gradient(circle at 96% 8%, rgba(244, 183, 25, .12), transparent 25rem),
    linear-gradient(180deg, #fffdfb 0, #fff8f3 54%, #fffdfb 100%);
  letter-spacing: -.008em;
}

.site-page h1,
.site-page h2 {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -.055em;
}

.site-page h3,
.site-page h4,
.button,
.eyebrow,
.primary-nav a,
.primary-nav summary { letter-spacing: -.018em; }

.topbar {
  min-height: 38px;
  background: linear-gradient(100deg, #580632 0%, #a60d5b 56%, #cf2d7d 100%);
}

.topbar__inner,
.topbar__links a { min-height: 38px; }

.site-header {
  border-bottom-color: rgba(134, 18, 75, .1);
  background: rgba(255, 253, 250, .9);
  box-shadow: 0 10px 32px rgba(77, 12, 47, .07);
}

.site-header__inner { min-height: 86px; }
.brand img { width: 164px; height: 70px; }

.primary-nav { gap: clamp(12px, 1.35vw, 20px); }
.primary-nav a,
.primary-nav summary {
  color: #5c4956;
  font-size: .86rem;
  font-weight: 700;
}

.primary-nav > a::after,
.primary-nav > details > summary::after {
  bottom: 6px;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--color-primary), var(--color-brand));
}

.header-cta {
  min-height: 46px;
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: #fff;
  box-shadow: 0 12px 24px rgba(181, 18, 107, .18);
}

.header-cta:hover {
  border-color: var(--color-primary-strong);
  background: var(--color-primary-strong);
}

.section { padding-block: clamp(74px, 9vw, 132px); }
.section-heading { margin-bottom: clamp(30px, 4vw, 52px); }
.section-heading h2,
.featured-tours-heading h2,
.journey-heading h2,
.partners-heading h2 { text-wrap: balance; }

.eyebrow {
  gap: 9px;
  color: var(--color-primary);
  font-size: .7rem;
  letter-spacing: .14em;
}

/* Keep the travel imagery visible: contrast lives in the content layer, not an image veil. */
.hero {
  min-height: min(860px, 100svh);
  background: #4a082b;
}

.hero__content {
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .6fr);
  gap: clamp(36px, 6vw, 88px);
  padding-top: 90px;
  padding-bottom: 144px;
}

.hero__copy { max-width: 760px; }

.hero-copy-frame {
  max-width: 760px;
  padding: 18px 28px 20px 38px;
  border-radius: 0 28px 28px 0;
  background: linear-gradient(90deg, rgba(57, 4, 34, .28), rgba(57, 4, 34, .08) 72%, transparent);
  text-shadow: 0 3px 22px rgba(40, 0, 23, .34);
}

.hero .eyebrow--light {
  color: #ffe58e;
  border-color: rgba(255, 235, 184, .28);
  background: rgba(68, 5, 39, .3);
}

.hero-title-layout h1 {
  max-width: 650px;
  margin-bottom: 20px;
  font-size: clamp(3.45rem, 5.7vw, 5.95rem);
  line-height: .98;
}

.hero h1 em { color: #ffe286; }
.hero__lead { max-width: 590px; margin-bottom: 28px; font-size: 1.05rem; line-height: 1.72; }

.hero .hero__assurance { gap: 10px; }
.hero .hero__assurance li {
  min-height: 76px;
  padding: 24px 12px 11px;
  border-radius: 15px;
  background: rgba(67, 5, 39, .36);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .13), 0 12px 26px rgba(34, 1, 22, .1);
}

.hero__assurance strong { font-size: .71rem; }
.hero-promise-route { margin-bottom: 25px; }
.hero-ticket-cta,
.hero-event-cta { min-height: 62px; border-radius: 16px; }

.trip-search {
  padding: 30px;
  border-color: rgba(255, 255, 255, .78);
  border-radius: 28px;
  background: rgba(255, 253, 251, .94);
  box-shadow: 0 28px 70px rgba(39, 1, 24, .26);
}

.trip-search__heading > span {
  border: 1px solid rgba(181, 18, 107, .1);
  background: linear-gradient(145deg, #fff0f7, #ffe7b7);
}

.trip-search input,
.trip-search select {
  min-height: 50px;
  border-color: rgba(91, 57, 77, .18);
  background: rgba(255, 255, 255, .86);
}

.trip-search .button { min-height: 52px; margin-top: 22px; }

.trust-strip {
  overflow: hidden;
  border: 1px solid rgba(181, 18, 107, .09);
  border-bottom: 0;
  background: rgba(255, 253, 250, .96);
  box-shadow: 0 -14px 44px rgba(57, 4, 34, .15);
}

.trust-strip div { min-height: 98px; padding: 16px 24px; }
.trust-strip strong { color: var(--color-primary); }
.trust-strip__icon { color: var(--color-secondary); }

.experience-ticker {
  border-block: 1px solid rgba(181, 18, 107, .08);
  background: #fffdfb;
}

.featured-tours-section { background: linear-gradient(150deg, #fff7f0 0%, #fffdfb 52%, #fff4fa 100%); }
.tour-card {
  border-color: rgba(181, 18, 107, .12);
  border-radius: 24px;
  background: rgba(255, 255, 255, .93);
  box-shadow: 0 12px 34px rgba(66, 13, 43, .07);
}

.tour-card:hover,
.tour-card:focus-within { box-shadow: 0 24px 58px rgba(66, 13, 43, .14); }
.tour-card__body { padding: 22px; }
.tour-card h3 { font-size: 1.14rem; }
.tour-card__tag { border-color: rgba(255, 255, 255, .82); }

.home-services-stage {
  background:
    radial-gradient(circle at 82% 12%, rgba(244, 183, 25, .18), transparent 26rem),
    radial-gradient(circle at 6% 82%, rgba(8, 127, 146, .12), transparent 28rem),
    linear-gradient(135deg, #fffdfb, #fff 56%, #fff3f9);
}

.home-services-stage .service-card {
  border-color: rgba(181, 18, 107, .1);
  border-radius: 24px;
  box-shadow: 0 12px 32px rgba(66, 13, 43, .06);
}

.home-services-stage .service-card--feature {
  background: linear-gradient(145deg, #72103f, #b5126b 58%, #d82e86);
  box-shadow: 0 22px 52px rgba(117, 10, 66, .22);
}

.journey-process { background: linear-gradient(135deg, #3d0624 0%, #740940 52%, #9d1459 100%); }
.partners-shell { border-color: rgba(181, 18, 107, .11); border-radius: 32px; }
.partner-logo-card { border-color: rgba(181, 18, 107, .1); border-radius: 18px; }
.customer-showcase { background: linear-gradient(150deg, #fffdfb 0%, #fff5f1 54%, #fff7fc 100%); }
.testimonial-section { background: linear-gradient(135deg, #fff0f7 0%, #fffdfb 52%, #e8faf8 100%); }
.testimonial-card { border: 1px solid rgba(181, 18, 107, .1); box-shadow: 0 18px 50px rgba(66, 13, 43, .09); }

.cta-band { min-height: 500px; }
.cta-band__overlay { background: linear-gradient(90deg, rgba(81, 5, 45, .9), rgba(144, 12, 79, .68) 55%, rgba(181, 18, 107, .22)); }

.site-footer { border-top: 1px solid rgba(255, 225, 123, .18); }

@media (max-width: 1320px) {
  .header-cta { display: none; }
  .site-header__inner { gap: 15px; }
  .primary-nav { gap: clamp(7px, 1vw, 14px); }
}

@media (max-width: 900px) {
  .topbar { min-height: 34px; }
  .topbar__inner { min-height: 34px; }
  .site-header__inner { min-height: 74px; }
  .brand img { width: 136px; height: 58px; }
  .hero { min-height: 0; }
  .hero__content { grid-template-columns: 1fr; gap: 24px; padding-top: 64px; padding-bottom: 126px; }
  .hero-copy-frame { max-width: 720px; }
  .trip-search { max-width: 620px; }
  .section-heading--split { gap: 22px; }
  .tour-grid--featured { gap: 18px; }
}

@media (max-width: 680px) {
  html { scroll-padding-top: 82px; }
  .container { width: min(calc(100% - 24px), var(--container)); }
  .topbar__message { font-size: .69rem; }
  .topbar__links { display: none; }
  .site-header__inner { min-height: 70px; }
  .brand img { width: 126px; height: 54px; }
  .nav-toggle { width: 44px; height: 44px; }
  .hero__content { gap: 20px; padding-top: 43px; padding-bottom: 112px; }
  .hero__effects::before,
  .hero__effects::after,
  .hero__event-orbit,
  .hero__waypoint,
  .hero__compass { display: none; }
  .hero-copy-frame { padding: 12px 0 14px 21px; border-radius: 0; background: linear-gradient(90deg, rgba(57, 4, 34, .22), transparent); }
  .hero-copy-code,
  .hero-title-number,
  .hero-title-stamp,
  .hero-copy-coordinate { display: none; }
  .hero-copy-kicker { margin-bottom: 13px; }
  .hero .eyebrow--light { padding: 7px 10px; font-size: .62rem; letter-spacing: .1em; }
  .hero-title-layout h1 { margin-bottom: 16px; font-size: clamp(2.65rem, 12.5vw, 3.6rem); line-height: .98; }
  .hero__lead { margin-bottom: 20px; font-size: .93rem; line-height: 1.66; }
  .hero-promise-route { margin-bottom: 18px; }
  .hero-promise-route__line { display: none; }
  .hero .hero__assurance { grid-template-columns: 1fr; gap: 7px; }
  .hero .hero__assurance li { min-height: 52px; grid-template-columns: 31px minmax(0, 1fr); padding: 9px 11px; border-radius: 13px; }
  .hero-assurance__number { display: none; }
  .hero-assurance__icon { width: 30px; height: 30px; border-radius: 10px; }
  .hero__assurance strong { font-size: .72rem; }
  .hero .hero__actions { display: grid; grid-template-columns: 1fr; gap: 8px; }
  .hero-ticket-cta,
  .hero-event-cta { min-height: 58px; width: 100%; border-radius: 14px; }
  .trip-search { padding: 21px 18px; border-radius: 22px; }
  .trip-search__heading { margin-bottom: 15px; }
  .trip-search__heading > span { width: 40px; height: 40px; }
  .trip-search label { margin-top: 12px; }
  .trip-search .button { min-height: 50px; margin-top: 17px; }
  .trust-strip { grid-template-columns: repeat(2, 1fr); border-radius: 20px 20px 0 0; }
  .trust-strip div { min-height: 78px; padding: 12px 14px; border-bottom: 1px solid var(--color-border); }
  .trust-strip div:nth-child(2n) { border-right: 0; }
  .trust-strip div:nth-last-child(-n + 2) { border-bottom: 0; }
  .trust-strip strong { font-size: 1.16rem; }
  .trust-strip__label { font-size: .66rem; }
  .section { padding-block: 68px; }
  .section-heading { margin-bottom: 28px; }
  .site-page h2 { font-size: clamp(2.15rem, 10vw, 2.85rem); line-height: 1.02; }
  .featured-tours-section,
  .customer-showcase { background: #fffaf6; }
  .tour-card__body { padding: 19px; }
  .partners-shell { padding: 22px 16px; border-radius: 24px; }
  .partner-logo-wrap { margin-top: 32px; }
  .cta-band { min-height: 440px; }
}

@media (prefers-reduced-motion: reduce) {
  .tour-card,
  .home-services-stage .service-card,
  .partner-logo-card,
  .header-cta { transition-duration: .01ms !important; }
}

@media (min-width: 901px) {
  .page-hero__content h1,
  .page-hero__content > p:last-child { max-width: 650px; }
}

@media (max-width: 900px) {
  .category-scroll-hint { display: flex; margin: -25px 2px 30px 0; }
  .page-hero__content::before,
  .page-hero__content::after { display: none; }
  .tour-detail-hero::after,
  .customer-detail-hero::after,
  .news-article-hero::after { width: 390px; right: -54%; opacity: .7; }
  .admin-table-wrap { box-shadow: inset -16px 0 22px -20px rgba(47,20,38,.4); }
}

@media (max-width: 680px) {
  .site-page:not(.site-page--index) main::before { display: none; }
  .tour-detail-hero::after,
  .customer-detail-hero::after,
  .news-article-hero::after { display: none; }
  .news-article-aside::before,
  .customer-story-aside::before,
  .booking-card::before { display: none; }
  .content-category-nav { margin-bottom: 34px; padding-right: 28px; scrollbar-width: none; }
  .content-category-nav::-webkit-scrollbar { display: none; }
  .tour-card__image::after,
  .news-card__image::after,
  .customer-card__media::after,
  .customer-showcase-card__media::after,
  .tour-card__image::before,
  .news-card__image::before,
  .customer-card__media::before,
  .customer-showcase-card__media::before { opacity: .8; }
  .news-article-content p:first-child::first-letter { font-size: 3em; }
  .login-card::before { right: 0; opacity: .65; }
}

@media (prefers-reduced-motion: reduce) {
  .category-scroll-hint,
  .admin-panel { transition: none !important; }
}

@media (max-width: 900px) {
  body.nav-open, body.admin-nav-open { overflow: hidden; }
  .topbar__message { display: none; }
  .topbar__inner { justify-content: center; }
  .nav-toggle { display: grid; }
  .primary-nav { position: absolute; z-index: 1; left: 16px; right: 16px; top: calc(100% + 10px); max-height: calc(100dvh - 104px - env(safe-area-inset-bottom)); display: grid; gap: 2px; padding: 12px; overflow-y: auto; overscroll-behavior: contain; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fff; box-shadow: var(--shadow-lg); visibility: hidden; opacity: 0; transform: translateY(-8px); transition: opacity var(--transition), transform var(--transition), visibility var(--transition); }
  .primary-nav.is-open { visibility: visible; opacity: 1; transform: translateY(0); }
  .primary-nav a, .primary-nav summary { padding: 0 14px; border-radius: 9px; }
  .primary-nav a:hover, .primary-nav a.is-active, .primary-nav summary:hover, .primary-nav summary.is-active { background: var(--color-primary-soft); }
  .primary-nav > a::after, .primary-nav > details > summary::after { display: none; }
  .primary-nav__group { width: 100%; }
  .primary-nav__group > summary { width: 100%; justify-content: space-between; }
  .primary-nav__submenu { width: auto; max-height: none; position: static; margin: 2px 8px 7px; padding: 5px 5px 5px 12px; border: 0; border-left: 2px solid var(--color-primary-soft); border-radius: 0 0 10px 10px; background: transparent; box-shadow: none; opacity: 1; visibility: visible; transform: none; backdrop-filter: none; }
  .primary-nav__submenu a { min-height: 48px; padding: 8px 12px; }
  .primary-nav__group:not([open]) > .primary-nav__submenu { display: none; }
  .hero { min-height: auto; }
  .hero__route { width: 72vw; right: -18%; top: 10%; opacity: .40; }
  .hero__plane { right: 9%; top: 20%; }
  .hero__content { grid-template-columns: 1fr; gap: 36px; padding-top: 90px; padding-bottom: 180px; }
  .hero__copy { max-width: 680px; }
  .trip-search { max-width: 560px; }
  .trust-strip { grid-template-columns: repeat(2, 1fr); }
  .trust-strip div:nth-child(2) { border-right: 0; }
  .trust-strip div { min-height: 80px; }
  .trust-strip div:nth-child(-n+2) { border-bottom: 1px solid var(--color-border); }
  .section-heading--split, .story-grid, .testimonial-grid, .consult-grid { grid-template-columns: 1fr; gap: 40px; }
  .section-heading--split { align-items: start; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 280px; }
  .journey-heading { grid-template-columns: 1fr; align-items: start; gap: 30px; }
  .journey-map { min-height: 0; padding: 70px 24px 28px; }
  .journey-map__route, .journey-map__plane { display: none; }
  .journey-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .journey-steps > li:nth-child(even) { margin-top: 0; }
  .story-media, .story-media img { min-height: 480px; height: 480px; }
  .story-media { max-width: 620px; }
  .story-stamp { right: -10px; }
  .testimonial-grid { gap: 30px; }
  .partners-heading { grid-template-columns: 1fr; align-items: start; gap: 24px; }
  .partner-metrics { grid-template-columns: repeat(2, 1fr); }
  .partner-metrics > div:nth-child(2) { border-right: 0; }
  .partner-metrics > div:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.16); }
  .partner-segments { grid-template-columns: 1fr; }
  .partner-segment { min-height: 0; }
  .partner-promise { align-items: flex-start; flex-direction: column; gap: 24px; }
  .filter-bar { grid-template-columns: 1fr 1fr; }
  .filter-bar .button { grid-column: 1 / -1; }
  .tour-detail-grid { grid-template-columns: 1fr; }
  .booking-card { position: static; }
  .tour-facts__grid { grid-template-columns: repeat(2, 1fr); }
  .tour-facts__grid > div:nth-child(2) { border-right: 0; }
  .tour-facts__grid > div:nth-child(-n+2) { border-bottom: 1px solid var(--color-border); }
  .login-layout { grid-template-columns: 1fr; }
  .login-visual { min-height: 360px; padding: 46px 24px; }
  .login-panel { min-height: 640px; }
  .admin-sidebar { width: min(290px, 86vw); transform: translateX(-105%); transition: transform var(--transition); }
  .admin-sidebar.is-open { transform: translateX(0); }
  .admin-shell { margin-left: 0; }
  .admin-menu { display: grid; }
  .admin-scrim { position: fixed; z-index: 40; inset: 0; background: rgba(8,25,20,.52); }
  .admin-scrim.is-visible { display: block; }
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-dashboard-grid { grid-template-columns: 1fr; }
  .cms-repeat-grid--three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .partner-logo-row { grid-template-columns: 34px 70px minmax(0, 1fr) 142px; align-items: center; }
  .partner-logo-row > .cms-card-number { grid-column: 1; grid-row: 1 / 3; }
  .partner-logo-row .logo-preview { width: 70px; height: 52px; grid-column: 2; grid-row: 1 / 3; }
  .partner-logo-row img, .partner-logo-row .logo-placeholder { width: 70px; height: 52px; }
  .partner-logo-row .logo-name-field { grid-column: 3; grid-row: 1; }
  .partner-logo-row .logo-image-field { grid-column: 3; grid-row: 2; }
  .partner-logo-row .logo-row-actions { grid-column: 4; grid-row: 1 / 3; }
  .hero-slide-editor { grid-template-columns: 1fr; }
  .testimonial-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .testimonial-editor__row { grid-template-columns: 70px minmax(0, 1fr) minmax(0, 1fr) 90px; }
  .testimonial-editor__row > .field:nth-of-type(1) { grid-column: 2; }
  .testimonial-editor__row > .field:nth-of-type(2) { grid-column: 3; }
  .testimonial-editor__row > .field:nth-of-type(3) { grid-column: 4; }
  .testimonial-editor__row > .field:nth-of-type(4), .testimonial-editor__row > .field:nth-of-type(5) { grid-column: 2 / -1; }
  .media-upload-panel { grid-template-columns: 1fr; }
  .media-upload { justify-content: space-between; }
  .media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .news-hero__inner { grid-template-columns: minmax(0, 1fr) 190px; gap: 26px; }
  .news-article-layout { grid-template-columns: 1fr; gap: 32px; }
  .news-article-aside { position: static; max-width: 620px; }
  .news-publish-panel { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 680px) {
  html { scroll-padding-top: 82px; }
  body { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
  .container { width: min(calc(100% - 24px), var(--container)); }
  .topbar { display: none; }
  .site-header__inner { min-height: 64px; }
  .brand img { width: 116px; height: 52px; }
  .nav-toggle { width: 44px; height: 44px; }
  .primary-nav { left: 10px; right: 10px; top: calc(100% + 8px); max-height: calc(100dvh - 82px - env(safe-area-inset-bottom)); padding: 10px; }
  .primary-nav a { min-height: 48px; }
  .hero { display: block; }
  .hero__slide img { object-position: 60% center; }
  .hero__sun { width: 330px; right: -46%; top: -5%; }
  .hero__route { width: 116vw; height: 260px; right: -52%; top: 8%; opacity: .30; }
  .hero__plane { width: 42px; height: 42px; right: 6%; top: 18%; }
  .hero__content { gap: 28px; padding-top: 52px; padding-bottom: 32px; }
  .hero-slider-controls { position: relative; left: auto; bottom: auto; transform: none; align-items: stretch; flex-direction: column; gap: 10px; width: calc(100% - 24px); margin: 0 auto 18px; }
  .hero-slider-story { width: 100%; min-width: 0; }
  .hero-slider-actions { width: 100%; justify-content: space-between; }
  .hero-slider-dots { max-width: none; flex: 1; justify-content: center; }
  .hero h1 { margin-bottom: 18px; font-size: clamp(2.2rem, 11vw, 3.25rem); }
  .hero__lead { margin-bottom: 24px; font-size: 1rem; line-height: 1.55; }
  .hero__assurance { display: grid; grid-template-columns: 1fr 1fr; margin-top: -6px; }
  .hero__assurance li { justify-content: center; padding-inline: 9px; text-align: center; }
  .hero__assurance li:last-child { grid-column: 1 / -1; }
  .hero__actions { display: grid; grid-template-columns: 1fr; }
  .hero__actions .button { width: 100%; }
  .news-hero { padding: 64px 0 58px; }
  .news-hero::before { width: 300px; right: -42%; top: -20%; }
  .news-hero::after { width: 220px; right: -22%; bottom: 12%; }
  .news-hero__inner { grid-template-columns: 1fr; }
  .news-hero h1 { margin-bottom: 17px; font-size: clamp(2.35rem, 11.2vw, 3.55rem); letter-spacing: -.045em; }
  .news-hero__inner > div:first-child > p:last-child { font-size: 1rem; line-height: 1.62; }
  .news-hero__route { display: none; }
  .news-index-heading { margin-bottom: 26px; }
  .news-featured { grid-template-columns: 1fr; margin-bottom: 18px; border-radius: 21px; }
  .news-featured__image { min-height: 248px; aspect-ratio: 1.38 / 1; }
  .news-featured__body { padding: 25px 20px 24px; }
  .news-featured h2 { margin-bottom: 11px; font-size: 1.95rem; }
  .news-featured p { margin-bottom: 17px; font-size: .94rem; line-height: 1.65; }
  .news-grid { grid-template-columns: 1fr; gap: 16px; }
  .news-card { grid-template-columns: 118px minmax(0, 1fr); min-height: 176px; border-radius: 17px; }
  .news-card__image { min-height: 100%; }
  .news-card__body { padding: 17px 18px 47px; }
  .news-card__body .news-meta { gap: 5px 8px; margin-bottom: 8px; }
  .news-card__body .news-meta time { font-size: .65rem; }
  .news-card h3 { margin-bottom: 7px; font-size: 1rem; }
  .news-card p { font-size: .8rem; line-height: 1.52; -webkit-line-clamp: 2; }
  .news-card__link { width: 44px; height: 44px; right: 10px; bottom: 8px; }
  .news-pagination { gap: 15px; margin-top: 30px; padding-top: 24px; }
  .news-pagination__links { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .news-pagination__numbers { grid-column: 1 / -1; grid-row: 1; gap: 8px; }
  .news-pagination__numbers a, .news-pagination__numbers > span:not(.news-pagination__ellipsis) { width: 44px; height: 44px; border-radius: 13px; }
  .news-pagination__direction { grid-row: 2; min-height: 48px; }
  .news-pagination__direction--prev { justify-self: stretch; }
  .news-pagination__direction--next { justify-self: stretch; }
  .news-article-hero { min-height: 520px; }
  .news-article-hero__content { padding-bottom: 40px; }
  .news-breadcrumb { margin-bottom: 13px; font-size: .75rem; }
  .news-article-hero h1 { margin-bottom: 12px; font-size: clamp(2.25rem, 10.5vw, 3.25rem); letter-spacing: -.03em; }
  .news-article-hero__content > p:not(.eyebrow) { margin-bottom: 16px; font-size: .98rem; line-height: 1.58; }
  .news-article-content p { margin-bottom: 18px; font-size: 1rem; line-height: 1.78; }
  .news-article-content p:first-child { font-size: 1.1rem; line-height: 1.7; }
  .news-article-aside { padding: 22px 20px; border-radius: 18px; }
  .news-empty-state { min-height: 300px; padding: 24px 18px; border-radius: 19px; }
  .admin-page-actions { width: 100%; }
  .admin-page-actions .button { flex: 1 1 160px; justify-content: center; }
  .news-publish-panel { grid-template-columns: 1fr; }
  .trip-search { max-width: none; padding: 20px 18px; border-radius: 22px; }
  input, select, textarea { font-size: 16px; }
  .trust-strip { position: relative; left: auto; bottom: auto; width: calc(100% - 24px); margin-inline: auto; transform: none; border-radius: 18px 18px 0 0; }
  .trust-strip div { padding: 14px 16px; }
  .trust-strip strong { font-size: 1.38rem; }
  .trust-strip span { font-size: .78rem; line-height: 1.35; }
  .section { padding: 58px 0; }
  .section-heading { margin-bottom: 30px; }
  .section-heading h2 { font-size: clamp(1.85rem, 9vw, 2.55rem); }
  .featured-tours-section__route { width: 930px; height: 500px; left: -300px; bottom: -180px; transform: none; }
  .featured-tours-heading { gap: 17px; margin-bottom: 28px; }
  .featured-tours-heading h2 { font-size: clamp(2rem, 9.7vw, 2.7rem); }
  .featured-tours-heading__aside > p { margin-bottom: 16px; font-size: .94rem; line-height: 1.65; }
  .featured-tours-heading__metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .featured-tours-heading__metrics span { min-width: 0; justify-content: center; gap: 5px; padding: 7px 8px; font-size: .68rem; white-space: nowrap; }
  .featured-tours-heading__metrics strong { font-size: .84rem; }
  .tour-grid--featured { gap: 16px; }
  .tour-card__image-icon { width: 40px; height: 40px; right: 12px; top: 12px; }
  .tour-grid, .tour-grid--catalog { grid-template-columns: 1fr; }
  .tour-card h3, .tour-card__body > p { min-height: 0; }
  .tour-card h3 a { min-height: 44px; display: flex; align-items: center; }
  .tour-card__image { aspect-ratio: 1.25 / 1; }
  .service-card { min-height: 260px; padding: 26px; }
  .journey-process { padding: 66px 0; }
  .journey-heading h2 { font-size: clamp(2.1rem, 10vw, 3rem); }
  .journey-heading__aside > p { font-size: .95rem; }
  .journey-map { margin-top: 36px; padding: 60px 14px 16px; border-radius: 24px; }
  .journey-map__label { left: 18px; top: 22px; }
  .journey-steps { grid-template-columns: 1fr; gap: 14px; }
  .journey-step__marker { margin-left: 18px; }
  .journey-step__card { min-height: 0; padding: 32px 20px 22px; }
  .journey-step__icon { margin-bottom: 18px; }
  .story-media, .story-media img { min-height: 390px; height: 390px; }
  .story-media::before { inset: 20px -10px -12px 20px; }
  .story-stamp { width: 104px; height: 104px; right: 5px; bottom: 22px; }
  .story-stamp strong { font-size: 1.55rem; }
  .testimonial-card { padding: 28px 24px; }
  .testimonial-intro { margin-bottom: 28px; }
  .testimonial-list { grid-template-columns: 1fr; gap: 14px; }
  .testimonial-card { min-height: 0; padding: 30px 22px 24px; }
  .testimonial-card::before { left: 22px; }
  .testimonial-card blockquote { min-height: 0; margin-bottom: 22px; font-size: .98rem; }
  .testimonial-editor__heading, .testimonial-editor__footer { align-items: stretch; flex-direction: column; }
  .testimonial-editor__heading a, .testimonial-editor__footer > button { justify-content: center; }
  .testimonial-editor__list { padding: 14px; }
  .testimonial-editor__row { grid-template-columns: 58px minmax(0, 1fr); gap: 10px; padding: 12px; }
  .testimonial-editor__row-top { grid-column: 1 / -1; }
  .testimonial-editor__row-top > strong { display: none; }
  .testimonial-editor__actions { gap: 4px; }
  .testimonial-avatar-preview { width: 58px; height: 58px; grid-row: 2; }
  .testimonial-editor__row > .field:nth-of-type(1), .testimonial-editor__row > .field:nth-of-type(2), .testimonial-editor__row > .field:nth-of-type(3), .testimonial-editor__row > .field:nth-of-type(4) { grid-column: 2; }
  .testimonial-editor__row > .field:nth-of-type(5) { grid-column: 1 / -1; }
  .testimonial-avatar-control { flex-direction: column; }
  .testimonial-avatar-upload { width: 100%; }
  .capability-profile { grid-template-columns: 44px minmax(0, 1fr); gap: 12px; padding: 15px; }
  .capability-profile__icon { width: 44px; height: 44px; border-radius: 13px; }
  .capability-profile__action { width: 100%; grid-column: 1 / -1; justify-content: center; }
  .capability-profile-editor { padding: 14px; }
  .capability-profile-file__control { flex-wrap: wrap; }
  .capability-profile-file__control > input { width: calc(100% - 51px); flex-basis: calc(100% - 51px); }
  .profile-file-upload { flex: 1 1 auto; }
  .testimonial-editor__empty { margin: 14px; }
  .testimonial-editor__footer { margin-inline: 14px; }
  .partners-shell { padding: 28px 18px 18px; border-radius: 24px; }
  .partners-heading { padding-bottom: 32px; }
  .partners-heading h2 { font-size: 2rem; }
  .partner-metrics > div { min-height: 104px; padding: 18px 12px; border-right-color: rgba(255,255,255,.16); }
  .partner-metrics strong { font-size: 1.65rem; }
  .partner-metrics span { font-size: .72rem; }
  .partner-logo-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
  .partner-logo-card { width: 150px; min-height: 124px; border-radius: 15px; }
  .partner-logo-card img { width: 82px; height: 74px; }
  .partner-segment { padding: 24px 20px; }
  .partner-promise { padding: 26px 20px; border-radius: 18px; }
  .partner-promise .button { width: 100%; white-space: normal; }
  .rating span { display: block; margin: 6px 0 0; }
  .cta-band { min-height: 520px; }
  .cta-band__content > div { align-items: flex-start; flex-direction: column; }
  .footer-grid { grid-template-columns: 1fr; gap: 30px; }
  .footer-grid > div:last-child { grid-column: auto; }
  .footer-bottom { flex-direction: column; gap: 6px; }
  .mobile-actions { position: fixed; z-index: 35; left: 0; right: 0; bottom: 0; height: calc(64px + env(safe-area-inset-bottom)); display: grid; grid-template-columns: 1fr 1fr; padding-bottom: env(safe-area-inset-bottom); background: #fff; box-shadow: 0 -8px 26px rgba(3,105,161,.16); }
  .mobile-actions a { min-height: 64px; display: flex; align-items: center; justify-content: center; gap: 7px; padding-inline: 10px; color: var(--color-primary); font: 700 .86rem/1 var(--font-heading); }
  .mobile-actions a:last-child { background: linear-gradient(135deg, #ffd95e, var(--color-accent)); color: #5d3c00; }
  .page-hero { min-height: 350px; }
  .page-hero h1 { font-size: clamp(2.2rem, 11vw, 3.25rem); }
  .filter-bar { grid-template-columns: 1fr; margin-top: -82px; padding: 20px; }
  .filter-bar .button { grid-column: auto; }
  .filter-reset { right: 20px; }
  .catalog-heading { align-items: flex-start; flex-direction: column; gap: 16px; }
  .consult-section { padding: 58px 0; }
  .consult-form { padding: 24px 20px; }
  .form-grid { grid-template-columns: 1fr; }
  .field--full { grid-column: auto; }
  .tour-detail-hero { min-height: 480px; }
  .tour-detail-hero h1 { font-size: clamp(2.15rem, 10.5vw, 3.25rem); }
  .tour-detail-hero::after, .page-hero::before { opacity: .52; }
  .tour-detail-hero__content { padding-bottom: 38px; }
  .tour-facts__grid { grid-template-columns: 1fr; }
  .tour-facts__grid > div { min-height: 84px; border-right: 0; border-bottom: 1px solid var(--color-border); }
  .tour-facts__grid > div:last-child { border-bottom: 0; }
  .detail-panel, .detail-note, .booking-card { padding: 24px 20px; }
  .highlight-grid { grid-template-columns: 1fr; }
  .booking-card__phone { margin: 18px -20px -24px; }
  .field-row { grid-template-columns: 1fr; }
  .login-visual { min-height: 310px; }
  .login-visual h1 { font-size: 2.4rem; }
  .login-panel { min-height: 560px; padding-top: 34px; }
  .brand--login { margin-bottom: 24px; }
  .admin-topbar { padding: 10px 16px; }
  .admin-topbar > div { display: none; }
  .admin-content { padding: 28px 16px 54px; }
  .admin-page-heading { align-items: flex-start; flex-direction: column; gap: 18px; }
  .admin-page-heading--actions .button { width: 100%; }
  .stats-grid { grid-template-columns: 1fr; }
  .stats-grid article { padding: 18px; }
  .lead-list article { grid-template-columns: 42px 1fr auto; padding: 14px 16px; }
  .lead-list article > a { display: none; }
  .admin-panel__heading { padding: 20px 16px; }
  .admin-panel__heading > a { font-size: .82rem; }
  .form-panel { padding: 22px 18px; }
  .form-publish { grid-template-columns: 1fr; padding: 20px 18px; }
  .form-publish .button { width: 100%; }
  .admin-table { min-width: 760px; }
  .inline-editor, .inline-editor--three, .theme-editor, .cms-repeat-grid, .cms-repeat-grid--three, .cms-repeat-grid--four { grid-template-columns: 1fr; }
  .cms-repeat-grid--services, .cms-repeat-grid--segments, .partner-logo-editor, .hero-slide-editor, .media-grid { padding: 14px; }
  .cms-editor-panel > .admin-panel__heading { align-items: flex-start; flex-direction: column; }
  .cms-editor-panel > .admin-panel__heading > p { text-align: left; }
  .admin-savebar { min-height: 0; bottom: calc(8px + env(safe-area-inset-bottom)); align-items: stretch; flex-direction: column; gap: 9px; padding: 13px; border-radius: 15px; }
  .admin-savebar .button { width: 100%; }
  .admin-savebar span { text-align: center; }
  .logo-editor-toolbar { align-items: stretch; flex-direction: column; padding: 16px 14px 0; }
  .logo-editor-toolbar > a { justify-content: center; }
  .logo-editor-toolbar .button { width: 100%; }
  .hero-slide-toolbar { align-items: stretch; flex-direction: column; padding: 16px 14px 0; }
  .hero-slide-toolbar > a { justify-content: center; }
  .hero-slide-toolbar .button { width: 100%; }
  .hero-slide-row { padding: 12px; }
  .hero-slide-empty { margin: 14px; }
  .hero-slide-footer { align-items: stretch; flex-direction: column; margin-inline: 14px; }
  .hero-slide-footer > button { justify-content: center; }
  .partner-logo-row { grid-template-columns: 30px 58px minmax(0, 1fr); align-items: center; gap: 9px; padding: 10px; }
  .partner-logo-row > .cms-card-number { grid-column: 1; grid-row: 1; }
  .partner-logo-row .logo-preview { width: 58px; height: 48px; grid-column: 2; grid-row: 1; }
  .partner-logo-row img, .partner-logo-row .logo-placeholder { width: 58px; height: 48px; }
  .partner-logo-row .logo-row-actions { grid-column: 3; grid-row: 1; }
  .partner-logo-row .logo-name-field { grid-column: 1 / -1; grid-row: 2; }
  .partner-logo-row .logo-image-field { grid-column: 1 / -1; grid-row: 3; }
  .logo-editor-empty { margin: 14px; }
  .logo-editor-footer { align-items: stretch; flex-direction: column; margin-inline: 14px; }
  .logo-editor-footer > button { justify-content: center; }
  .media-upload { align-items: stretch; flex-direction: column; }
  .media-upload label { overflow: hidden; }
  .media-upload input { width: 100%; max-width: none; }
  .media-grid { grid-template-columns: 1fr; }
}

@media (max-width: 390px) {
  .hero h1 { font-size: 2.15rem; }
  .trip-search__heading { align-items: flex-start; }
  .trust-strip div { padding-inline: 11px; }
  .partner-metrics strong { font-size: 1.48rem; }
  .partner-metrics span { font-size: .75rem; line-height: 1.35; }
  .partner-logo-card { width: 140px; min-height: 116px; padding-inline: 8px; }
  .partner-logo-card img { width: 74px; height: 66px; }
  .mobile-actions a { font-size: .8rem; }
  .hero-slider-story { padding-inline: 10px; }
  .hero-slider-story__mark { width: 36px; height: 36px; }
}

@media (max-width: 900px) and (max-height: 540px) {
  .primary-nav { max-height: calc(100dvh - 76px - env(safe-area-inset-bottom)); }
  .login-visual { min-height: 260px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  [data-reveal] { opacity: 1 !important; transform: none !important; }
  .hero__slide { transition: none !important; }
  .hero__slide img, .hero__slide.is-active img { animation: none !important; transform: scale(1.02) !important; }
  .hero-slider-dots button[aria-current="true"] > span::after { animation: none !important; transform: scaleX(1); }
  .partner-logo-marquee { overflow: visible; -webkit-mask-image: none; mask-image: none; }
  .partner-logo-track { width: 100%; display: block; animation: none !important; transform: none !important; will-change: auto; }
  .partner-logo-group { width: 100%; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; padding: 0; }
  .partner-logo-group[aria-hidden="true"] { display: none; }
  .partner-logo-card { width: auto; }
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
  .partner-logo-group { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 680px) and (prefers-reduced-motion: reduce) {
  .partner-logo-group { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
}

@media (max-width: 390px) and (prefers-reduced-motion: reduce) {
  .partner-logo-card { width: auto; }
}

@media (min-width: 901px) and (prefers-reduced-motion: no-preference) {
  .motion-ready [data-reveal] { opacity: 0; transform: translateY(12px); transition: opacity 360ms ease, transform 360ms ease; }
  .motion-ready [data-reveal].is-revealed { opacity: 1; transform: translateY(0); }
  .motion-ready .tour-grid--featured [data-reveal] { transition-delay: calc(var(--tour-order, 0) * 70ms); }
}

/* Customer stories */
.customer-showcase { position: relative; overflow: hidden; background: radial-gradient(circle at 12% 8%, rgba(244,183,25,.17), transparent 24%), linear-gradient(135deg, #fff8f0, #fff 52%, #fff4fa); }
.customer-showcase::before { content: ''; width: 480px; height: 480px; position: absolute; right: -230px; top: -250px; border: 1px dashed rgba(181,18,107,.2); border-radius: 50%; pointer-events: none; }
.customer-showcase > .container { position: relative; z-index: 1; }
.customer-showcase__heading { margin-bottom: 34px; }
.customer-showcase__heading > div:last-child { display: grid; justify-items: start; gap: 13px; }
.customer-showcase__heading > div:last-child > p { max-width: 490px; margin: 0; color: var(--color-text-soft); font-size: 1.03rem; line-height: 1.72; }
.customer-showcase__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 20px; }
.customer-showcase-card { min-width: 0; grid-column: span 3; display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgba(181,18,107,.12); border-radius: 22px; background: rgba(255,255,255,.92); box-shadow: 0 16px 42px rgba(72,18,50,.08); transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition); }
.customer-showcase-card--lead { grid-column: span 6; }
.customer-showcase-card:hover, .customer-showcase-card:focus-within { border-color: rgba(181,18,107,.3); box-shadow: 0 26px 54px rgba(72,18,50,.14); transform: translateY(-5px); }
.customer-showcase-card__media { min-height: 215px; position: relative; display: block; overflow: hidden; background: var(--color-primary-soft); }
.customer-showcase-card--lead .customer-showcase-card__media { min-height: 286px; }
.customer-showcase-card__media img, .customer-card__media img, .customer-featured__media img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform 500ms cubic-bezier(.2,.8,.2,1); }
.customer-showcase-card:hover .customer-showcase-card__media img, .customer-showcase-card:focus-within .customer-showcase-card__media img, .customer-card:hover .customer-card__media img, .customer-card:focus-within .customer-card__media img, .customer-featured:hover .customer-featured__media img, .customer-featured:focus-within .customer-featured__media img { transform: scale(1.045); }
.customer-showcase-card__body { min-height: 0; display: flex; flex: 1; flex-direction: column; padding: 19px 20px 21px; }
.customer-showcase-card--lead .customer-showcase-card__body { padding: 23px 26px 25px; }
.customer-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 7px 10px; margin-bottom: 10px; color: var(--color-text-soft); font: 600 .69rem/1.35 var(--font-heading); }
.customer-meta > span { padding: 5px 8px; border-radius: 999px; color: var(--color-primary); background: #fff0f7; font-weight: 700; }
.customer-meta time { display: inline-flex; align-items: center; gap: 5px; }
.customer-meta time .icon { width: 14px; height: 14px; color: var(--color-primary); }
.customer-client { display: flex; align-items: center; gap: 6px; margin: 0 0 8px; color: #7e2256; font: 700 .74rem/1.35 var(--font-heading); }
.customer-client .icon { width: 15px; height: 15px; color: var(--color-brand); }
.customer-showcase-card h3 { margin: 0 0 9px; color: #43223a; font-size: 1.13rem; line-height: 1.38; }
.customer-showcase-card--lead h3 { font: 600 1.55rem/1.27 var(--font-display); }
.customer-showcase-card h3 a, .customer-featured h2 a, .customer-card h3 a { transition: color var(--transition); }
.customer-showcase-card h3 a:hover, .customer-showcase-card h3 a:focus-visible, .customer-featured h2 a:hover, .customer-featured h2 a:focus-visible, .customer-card h3 a:hover, .customer-card h3 a:focus-visible { color: var(--color-primary); }
.customer-showcase-card__body > p:not(.customer-client) { display: -webkit-box; margin: 0 0 17px; overflow: hidden; color: var(--color-text-soft); font-size: .86rem; line-height: 1.62; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.customer-showcase-card__link { min-height: 40px; display: inline-flex; align-items: center; gap: 7px; margin-top: auto; color: var(--color-primary); font: 700 .8rem/1.25 var(--font-heading); }
.customer-showcase-card__link .icon { width: 16px; transition: transform var(--transition); }
.customer-showcase-card__link:hover .icon { transform: translateX(4px); }
.customer-play { width: 46px; height: 46px; position: absolute; z-index: 1; right: 15px; bottom: 15px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; color: #6d1643; background: rgba(255,244,195,.92); box-shadow: 0 10px 22px rgba(41,1,24,.2); }
.customer-play .icon { width: 18px; height: 18px; fill: currentColor; }

.customer-hero { position: relative; overflow: hidden; padding: clamp(84px, 10vw, 136px) 0 clamp(76px, 9vw, 118px); color: #fff; background: radial-gradient(circle at 14% 15%, rgba(244,183,25,.3), transparent 19%), radial-gradient(circle at 88% 78%, rgba(8,127,146,.32), transparent 25%), linear-gradient(130deg, #3c0a2a, #820d4c 56%, #b4146a); }
.customer-hero__inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) 240px; align-items: end; gap: 46px; }
.customer-hero h1 { max-width: 760px; margin: 0 0 21px; color: #fff; font: 600 clamp(3rem, 6vw, 5.4rem)/1.04 var(--font-display); letter-spacing: -.055em; }
.customer-hero h1 em { color: #ffe17b; font-style: italic; }
.customer-hero__inner > div:first-child > p:last-child { max-width: 650px; margin: 0; color: rgba(255,255,255,.84); font-size: 1.08rem; line-height: 1.7; }
.customer-hero__stamp { min-height: 180px; position: relative; display: grid; align-content: center; justify-items: start; gap: 14px; padding: 26px; border: 1px solid rgba(255,255,255,.2); border-radius: 24px; background: rgba(255,255,255,.08); box-shadow: 0 24px 60px rgba(44,1,27,.2); backdrop-filter: blur(12px); }
.customer-hero__stamp span { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 50%; color: #5d3900; background: linear-gradient(140deg, #fff0ad, #ffe17b); font: 800 .95rem/1 var(--font-heading); }
.customer-hero__stamp i { width: 100%; height: 1px; border-top: 1px dashed rgba(255,255,255,.6); }
.customer-hero__stamp strong { color: rgba(255,255,255,.78); font: 700 .69rem/1 var(--font-heading); letter-spacing: .2em; }
.customer-hero__orb { width: min(46vw, 560px); aspect-ratio: 1; position: absolute; border: 1px dashed rgba(255,225,123,.4); border-radius: 50%; pointer-events: none; }
.customer-hero__orb--one { right: -12%; top: -37%; }
.customer-hero__orb--two { left: -23%; bottom: -67%; }
.customer-index-section { background: linear-gradient(135deg, #fff9f3, #fff 50%, #fff5fb); }
.customer-index-heading { align-items: end; }
.customer-index-heading > p { max-width: 500px; }
.customer-featured { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr); overflow: hidden; margin-bottom: 26px; border: 1px solid rgba(181,18,107,.12); border-radius: 28px; background: #fff; box-shadow: 0 26px 70px rgba(72,18,50,.12); }
.customer-featured__media { min-height: 395px; position: relative; display: block; overflow: hidden; background: var(--color-primary-soft); }
.customer-featured__body { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(28px, 4.5vw, 58px); }
.customer-featured h2 { margin: 0 0 15px; color: #43223a; font: 600 clamp(1.85rem, 3.2vw, 2.75rem)/1.17 var(--font-display); letter-spacing: -.025em; }
.customer-featured__body > p:not(.customer-client) { max-width: 490px; margin: 0 0 23px; color: var(--color-text-soft); line-height: 1.7; }
.customer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.customer-card { min-width: 0; display: grid; grid-template-columns: minmax(150px, .86fr) minmax(0, 1.14fr); overflow: hidden; border: 1px solid rgba(181,18,107,.1); border-radius: 21px; background: #fff; box-shadow: 0 11px 32px rgba(72,18,50,.06); transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition); }
.customer-card:hover, .customer-card:focus-within { border-color: rgba(181,18,107,.25); box-shadow: 0 22px 48px rgba(72,18,50,.12); transform: translateY(-4px); }
.customer-card__media { min-height: 100%; position: relative; display: block; overflow: hidden; background: var(--color-primary-soft); }
.customer-card__body { min-width: 0; position: relative; padding: 21px 22px 51px; }
.customer-card__body .customer-meta { margin-bottom: 9px; font-size: .65rem; }
.customer-card h3 { margin: 0 0 9px; color: #43223a; font-size: 1.08rem; line-height: 1.38; }
.customer-card__body > p:not(.customer-client) { display: -webkit-box; margin: 0; overflow: hidden; color: var(--color-text-soft); font-size: .86rem; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.customer-card__link { width: 44px; height: 44px; position: absolute; right: 14px; bottom: 12px; display: grid; place-items: center; border-radius: 50%; color: var(--color-primary); background: var(--color-primary-soft); transition: transform var(--transition), background var(--transition), color var(--transition); }
.customer-card__link:hover, .customer-card__link:focus-visible { color: #fff; background: var(--color-primary); transform: translateX(3px); }
.customer-card__link .icon { width: 18px; height: 18px; }

.customer-detail-hero { min-height: min(635px, 74vh); position: relative; display: flex; align-items: end; overflow: hidden; color: #fff; }
.customer-detail-hero > img, .customer-detail-hero__overlay { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.customer-detail-hero__overlay { background: linear-gradient(0deg, rgba(38,4,25,.95), rgba(107,7,59,.58) 52%, rgba(8,127,146,.17)); }
.customer-detail-hero__content { position: relative; z-index: 1; max-width: 1030px; padding-bottom: clamp(48px, 7vw, 94px); }
.customer-detail-hero h1 { max-width: 950px; margin: 0 0 16px; color: #fff; font: 600 clamp(2.5rem, 5.5vw, 4.8rem)/1.08 var(--font-display); letter-spacing: -.04em; }
.customer-detail-hero__content > p:not(.eyebrow) { max-width: 730px; margin: 0 0 20px; color: rgba(255,255,255,.84); font-size: 1.1rem; line-height: 1.65; }
.customer-detail-hero__facts { display: flex; flex-wrap: wrap; gap: 9px 18px; }
.customer-detail-hero__facts span { display: inline-flex; align-items: center; gap: 7px; color: rgba(255,255,255,.78); font: 600 .82rem/1.4 var(--font-heading); }
.customer-detail-hero__facts .icon { width: 16px; height: 16px; color: #ffe17b; }
.customer-detail-section { background: linear-gradient(140deg, #fffaf5, #fff 58%, #fff5fa); }
.customer-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(270px, 350px); align-items: start; gap: clamp(36px, 7vw, 100px); }
.customer-story-content { max-width: 780px; }
.customer-story-copy p { margin: 0 0 22px; color: #354050; font-size: 1.07rem; line-height: 1.9; }
.customer-story-copy p:first-child { color: #4d1640; font-size: 1.25rem; line-height: 1.75; }
.customer-story-video { overflow: hidden; margin-bottom: 30px; border-radius: 22px; background: #230d1c; box-shadow: 0 20px 48px rgba(72,18,50,.14); }
.customer-story-video iframe, .customer-story-video video { width: 100%; aspect-ratio: 16 / 9; display: block; border: 0; }
.customer-story-video > .button { margin: 28px; }
.customer-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; margin-top: 33px; }
.customer-gallery a, .customer-gallery video { min-height: 210px; display: block; overflow: hidden; border-radius: 16px; background: #f3e7ed; }
.customer-gallery img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform var(--transition); }
.customer-gallery a:hover img { transform: scale(1.03); }
.customer-gallery video { width: 100%; object-fit: cover; }
.customer-story-aside { position: sticky; top: 108px; padding: 28px; border: 1px solid rgba(181,18,107,.15); border-radius: 22px; background: linear-gradient(145deg, #fff, #fff4f9); box-shadow: 0 20px 46px rgba(72,18,50,.08); }
.customer-story-aside h2 { margin: 0 0 13px; font-size: 1.35rem; line-height: 1.35; }
.customer-story-aside p:not(.eyebrow) { margin: 0 0 20px; color: var(--color-text-soft); font-size: .89rem; line-height: 1.7; }
.customer-story-aside .button { width: 100%; justify-content: center; margin-bottom: 12px; }
.customer-story-aside .text-link { font-size: .82rem; }

.customer-showcase-editor { display: grid; grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr) auto; align-items: end; gap: 24px; margin-bottom: 20px; padding: 24px; }
.customer-showcase-editor__heading { display: flex; align-items: flex-start; gap: 14px; }
.customer-showcase-editor__heading h2 { margin-bottom: 4px; font-size: 1.2rem; }
.customer-showcase-editor__heading p:not(.eyebrow) { margin: 0; color: var(--color-text-soft); font-size: .84rem; line-height: 1.55; }
.customer-showcase-editor .form-grid { min-width: 0; }
.customer-showcase-editor .button { min-height: 46px; white-space: nowrap; }
.customer-media-pill { display: inline-flex; align-items: center; gap: 5px; color: var(--color-text-soft); font: 600 .78rem/1.3 var(--font-heading); }
.customer-media-pill .icon { width: 16px; height: 16px; color: var(--color-primary); }
.customer-publish-note { display: inline-flex; align-items: center; gap: 7px; color: var(--color-text-soft); font-size: .79rem; line-height: 1.45; }
.customer-publish-note .icon { width: 17px; height: 17px; color: var(--color-primary); }
.customer-media-count { display: block; margin-top: 5px; color: var(--color-text-soft); font-size: .72rem; }
.media-card video { width: 100%; aspect-ratio: 4 / 3; display: block; object-fit: cover; background: #271320; }

@media (max-width: 1180px) {
  .customer-showcase-card { grid-column: span 6; }
  .customer-showcase-card--lead { grid-column: span 12; display: grid; grid-template-columns: 1fr 1fr; }
  .customer-showcase-card--lead .customer-showcase-card__media { min-height: 100%; }
  .customer-showcase-editor { grid-template-columns: 1fr; align-items: stretch; }
  .customer-showcase-editor .button { justify-content: center; }
}

@media (max-width: 900px) {
  .customer-hero__inner { grid-template-columns: 1fr; gap: 26px; }
  .customer-hero__stamp { width: min(100%, 330px); min-height: 150px; }
  .customer-detail-layout { grid-template-columns: 1fr; gap: 32px; }
  .customer-story-aside { position: static; max-width: 620px; }
}

@media (max-width: 680px) {
  .customer-showcase__heading { margin-bottom: 24px; }
  .customer-showcase__grid { grid-template-columns: 1fr; gap: 15px; }
  .customer-showcase-card, .customer-showcase-card--lead { grid-column: auto; display: block; border-radius: 18px; }
  .customer-showcase-card--lead .customer-showcase-card__media, .customer-showcase-card__media { min-height: 220px; }
  .customer-showcase-card__body, .customer-showcase-card--lead .customer-showcase-card__body { padding: 19px 18px 20px; }
  .customer-showcase-card--lead h3 { font: 600 1.34rem/1.3 var(--font-display); }
  .customer-hero { padding-top: 80px; }
  .customer-hero h1 { font-size: clamp(2.55rem, 11vw, 3.6rem); }
  .customer-hero__inner > div:first-child > p:last-child { font-size: .98rem; line-height: 1.62; }
  .customer-featured { grid-template-columns: 1fr; margin-bottom: 18px; border-radius: 21px; }
  .customer-featured__media { min-height: 248px; aspect-ratio: 1.38 / 1; }
  .customer-featured__body { padding: 25px 20px 24px; }
  .customer-featured h2 { margin-bottom: 11px; font-size: 1.95rem; }
  .customer-featured__body > p:not(.customer-client) { margin-bottom: 17px; font-size: .94rem; line-height: 1.65; }
  .customer-grid { grid-template-columns: 1fr; gap: 15px; }
  .customer-card { grid-template-columns: 118px minmax(0, 1fr); min-height: 176px; border-radius: 17px; }
  .customer-card__body { padding: 17px 18px 47px; }
  .customer-card h3 { margin-bottom: 7px; font-size: 1rem; }
  .customer-card__body > p:not(.customer-client) { font-size: .8rem; line-height: 1.52; -webkit-line-clamp: 2; }
  .customer-detail-hero { min-height: 530px; }
  .customer-detail-hero__content { padding-bottom: 40px; }
  .customer-detail-hero h1 { margin-bottom: 12px; font-size: clamp(2.2rem, 10.5vw, 3.2rem); letter-spacing: -.03em; }
  .customer-detail-hero__content > p:not(.eyebrow) { margin-bottom: 16px; font-size: .98rem; line-height: 1.58; }
  .customer-detail-hero__facts { gap: 8px 12px; }
  .customer-story-copy p { margin-bottom: 18px; font-size: 1rem; line-height: 1.78; }
  .customer-story-copy p:first-child { font-size: 1.1rem; line-height: 1.7; }
  .customer-story-video { margin-bottom: 23px; border-radius: 17px; }
  .customer-gallery { grid-template-columns: 1fr; margin-top: 25px; }
  .customer-gallery a, .customer-gallery video { min-height: 220px; }
  .customer-story-aside { padding: 22px 20px; border-radius: 18px; }
  .customer-showcase-editor { padding: 18px; gap: 18px; }
}

/* Homepage hero — a refined travel departure board. */
.hero {
  min-height: 840px;
}

.hero__effects::before {
  content: '';
  width: min(42vw, 610px);
  height: 265px;
  position: absolute;
  right: -7%;
  bottom: 15%;
  border: 1px solid rgba(255, 231, 165, .31);
  border-width: 1px 0 0;
  border-radius: 50%;
  transform: rotate(-18deg);
}

.hero__effects::after {
  content: '';
  width: 230px;
  height: 156px;
  position: absolute;
  right: 8%;
  top: 47%;
  opacity: .48;
  background-image: radial-gradient(circle, rgba(255, 231, 165, .9) 1.1px, transparent 1.45px);
  background-size: 18px 18px;
  mask-image: radial-gradient(ellipse at center, #000 0 40%, transparent 75%);
}

.hero__compass {
  width: 94px;
  height: 94px;
  position: absolute;
  z-index: 1;
  right: clamp(30px, 5.7vw, 96px);
  bottom: 224px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .31);
  border-radius: 50%;
  color: rgba(255, 255, 255, .92);
  background: rgba(57, 5, 38, .2);
  box-shadow: 0 14px 38px rgba(38, 2, 25, .18), inset 0 0 0 8px rgba(255, 255, 255, .035);
  backdrop-filter: blur(8px);
}

.hero__compass::before,
.hero__compass::after {
  content: '';
  width: 1px;
  height: 76px;
  position: absolute;
  background: linear-gradient(180deg, transparent, rgba(255, 255, 255, .62), transparent);
}

.hero__compass::after { transform: rotate(90deg); }
.hero__compass b { position: absolute; top: 8px; font: 800 .6rem/1 var(--font-heading); letter-spacing: .18em; }
.hero__compass i { width: 42px; height: 42px; position: relative; display: block; transform: rotate(42deg); }
.hero__compass i::before,
.hero__compass i::after { content: ''; width: 0; height: 0; position: absolute; left: 50%; border-right: 6px solid transparent; border-left: 6px solid transparent; transform: translateX(-50%); }
.hero__compass i::before { top: 0; border-bottom: 24px solid var(--color-accent); }
.hero__compass i::after { bottom: 0; border-top: 24px solid rgba(255, 255, 255, .62); }
.hero__compass em { position: absolute; bottom: 9px; color: rgba(255, 255, 255, .72); font: 700 .42rem/1 var(--font-heading); font-style: normal; letter-spacing: .16em; }

.hero__waypoint {
  min-height: 52px;
  position: absolute;
  z-index: 1;
  right: clamp(260px, 30vw, 440px);
  top: 18%;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 12px 8px 8px;
  border: 1px solid rgba(255, 255, 255, .27);
  border-radius: 15px;
  color: #fff;
  background: rgba(57, 5, 38, .32);
  box-shadow: 0 16px 36px rgba(38, 2, 25, .17);
  backdrop-filter: blur(10px);
}

.hero__waypoint > i {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  color: var(--color-primary-strong);
  background: linear-gradient(135deg, #ffe589, var(--color-accent));
}

.hero__waypoint .icon { width: 17px; height: 17px; }
.hero__waypoint span, .hero__waypoint small, .hero__waypoint strong { display: block; }
.hero__waypoint small { margin-bottom: 2px; color: rgba(255, 255, 255, .64); font: 700 .58rem/1.2 var(--font-heading); letter-spacing: .1em; text-transform: uppercase; }
.hero__waypoint strong { font: 700 .7rem/1.35 var(--font-heading); white-space: nowrap; }

.hero .eyebrow--light {
  width: fit-content;
  margin-bottom: 19px;
  padding: 8px 12px;
  border: 1px solid rgba(255, 255, 255, .19);
  border-radius: 999px;
  background: rgba(56, 4, 35, .22);
  box-shadow: 0 10px 26px rgba(32, 1, 20, .14);
  backdrop-filter: blur(8px);
}

.hero h1 { max-width: 720px; margin-bottom: 24px; font-size: clamp(3.35rem, 5.65vw, 5.6rem); line-height: 1.01; }
.hero h1 em { position: relative; display: inline-block; }
.hero h1 em::after { content: ''; height: 5px; position: absolute; right: 3%; bottom: -5px; left: 1%; border-radius: 99px; background: linear-gradient(90deg, var(--color-accent), var(--color-brand)); box-shadow: 0 5px 17px rgba(244, 183, 25, .3); }

.hero__lead {
  max-width: 590px;
  margin-bottom: 32px;
  padding-left: 17px;
  border-left: 2px solid rgba(255, 221, 95, .82);
  font-size: 1.08rem;
}

.hero__assurance { gap: 10px; margin-bottom: 30px; }
.hero__assurance li { min-height: 38px; padding: 8px 13px; border-color: rgba(255, 255, 255, .26); background: rgba(48, 3, 30, .23); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); }
.hero__actions .button:first-child { box-shadow: 0 14px 32px rgba(47, 2, 29, .28), 0 0 0 1px rgba(255, 239, 183, .25); }
.hero__actions .button--ghost { border-color: rgba(255, 255, 255, .42); background: rgba(57, 5, 38, .28); }

.trip-search {
  padding: 33px 32px 30px;
  border-color: rgba(255, 225, 123, .73);
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .98), rgba(255, 246, 250, .94));
  box-shadow: 0 34px 90px rgba(48, 3, 30, .32), inset 0 1px 0 rgba(255, 255, 255, .95);
}

.trip-search::after {
  content: '';
  width: 146px;
  height: 92px;
  position: absolute;
  right: -35px;
  bottom: -37px;
  border: 1px dashed rgba(181, 18, 107, .19);
  border-radius: 50%;
  transform: rotate(-20deg);
  pointer-events: none;
}

.trip-search > * { position: relative; z-index: 1; }
.trip-search__heading { margin-bottom: 24px; padding-bottom: 17px; border-bottom: 1px solid rgba(181, 18, 107, .11); }
.trip-search__heading > span { width: 48px; height: 48px; border-radius: 15px; }
.trip-search__heading strong { color: #43223a; font-size: 1.06rem; }
.trip-search__heading small { margin-top: 4px; font-size: .79rem; line-height: 1.45; }
.trip-search label { margin-top: 16px; color: #5a334d; font-size: .72rem; letter-spacing: .075em; text-transform: uppercase; }
.trip-search input, .trip-search select { min-height: 52px; border-radius: 14px; }
.trip-search input:focus, .trip-search select:focus { box-shadow: 0 0 0 4px rgba(181, 18, 107, .12), 0 10px 22px rgba(79, 20, 55, .08); }
.trip-search .button { min-height: 52px; margin-top: 22px; letter-spacing: .01em; box-shadow: 0 13px 26px rgba(181, 18, 107, .19); }

.region-control { position: relative; }
.region-control > .icon { width: 18px; height: 18px; position: absolute; z-index: 1; left: 15px; top: 50%; color: var(--color-primary); transform: translateY(-50%); pointer-events: none; }
.region-control select { padding-right: 44px; padding-left: 43px; appearance: none; }
.region-control::after { content: ''; width: 8px; height: 8px; position: absolute; right: 18px; top: 50%; border-right: 2px solid var(--color-primary); border-bottom: 2px solid var(--color-primary); transform: translateY(-70%) rotate(45deg); pointer-events: none; }

.trust-strip { border-radius: 24px 24px 0 0; }
.trust-strip__item { position: relative; display: grid !important; grid-template-columns: 38px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 12px; align-content: center; }
.trust-strip__icon { width: 38px; height: 38px; grid-row: 1 / span 2; display: grid !important; place-items: center; align-self: center; margin: 0 !important; border-radius: 13px; color: var(--color-primary); background: linear-gradient(135deg, var(--color-primary-soft), #fff6d9); box-shadow: inset 0 0 0 1px rgba(181, 18, 107, .08); }
.trust-strip__icon .icon { width: 19px; height: 19px; }
.trust-strip__item strong { align-self: end; font-size: 1.68rem; }
.trust-strip__label { align-self: start; margin: 3px 0 0 !important; font-size: .79rem !important; line-height: 1.32; }

.hero-slider-controls { bottom: 128px; gap: 14px; }
.hero-slider-story, .hero-slider-actions { border-color: rgba(255, 255, 255, .28); background: rgba(48, 3, 30, .55); box-shadow: 0 18px 46px rgba(29, 2, 20, .22); }
.hero-slider-story { min-width: 326px; border-radius: 19px; }
.hero-slider-story__mark { width: 40px; height: 40px; border-radius: 13px; }
.hero-slider-actions { border-radius: 19px; }
.hero-slider-arrow:hover, .hero-slider-pause:hover { background: rgba(255, 255, 255, .16); }

@media (max-width: 1180px) {
  .hero__compass { right: 30px; bottom: 170px; transform: scale(.82); transform-origin: right bottom; }
  .hero__waypoint { display: none; }
}

@media (max-width: 900px) {
  .hero { min-height: auto; }
  .hero__effects::after { right: -7%; top: 18%; opacity: .34; }
  .hero__compass { display: none; }
  .hero .eyebrow--light { margin-bottom: 16px; }
  .hero h1 { max-width: 680px; }
  .hero__lead { max-width: 620px; }
  .trip-search { max-width: 570px; }
}

@media (max-width: 680px) {
  .hero__effects::before { width: 118vw; right: -49%; bottom: 21%; opacity: .55; }
  .hero__effects::after { display: none; }
  .hero .eyebrow--light { max-width: 100%; padding: 7px 10px; font-size: .65rem; letter-spacing: .1em; }
  .hero h1 { margin-bottom: 21px; font-size: clamp(2.3rem, 11vw, 3.35rem); }
  .hero__lead { margin-bottom: 25px; padding-left: 13px; font-size: 1rem; }
  .hero__assurance { gap: 8px; margin-bottom: 24px; }
  .hero__assurance li { min-height: 36px; font-size: .71rem; }
  .trip-search { padding: 24px 18px 21px; border-radius: 22px; }
  .trip-search__heading { gap: 10px; margin-bottom: 18px; padding-bottom: 14px; }
  .trip-search__heading > span { width: 44px; height: 44px; }
  .trip-search__heading strong { font-size: .95rem; }
  .trip-search__heading small { font-size: .74rem; }
  .trip-search input, .trip-search select, .trip-search .button { min-height: 50px; }
  .trust-strip { border-radius: 19px 19px 0 0; }
  .trust-strip__item { grid-template-columns: 34px minmax(0, 1fr); column-gap: 9px; }
  .trust-strip__icon { width: 34px; height: 34px; border-radius: 11px; }
  .trust-strip__item strong { font-size: 1.34rem; }
  .trust-strip__label { font-size: .72rem !important; }
  .hero-slider-controls { bottom: auto; }
  .hero-slider-story, .hero-slider-actions { border-radius: 17px; }
}

/* Customer-story media workspace */
.customer-media-manager { min-width: 0; display: grid; gap: 22px; }
.customer-media-manager__guide { display: flex; align-items: flex-start; gap: 13px; padding: 15px 16px; border: 1px solid rgba(181, 18, 107, .13); border-radius: 16px; background: linear-gradient(135deg, #fff9f1, #fff5fb); }
.customer-media-manager__guide .stats-icon { width: 42px; height: 42px; flex: 0 0 auto; }
.customer-media-manager__guide strong { display: block; margin-bottom: 3px; color: #4d1640; font: 800 .9rem/1.35 var(--font-heading); }
.customer-media-manager__guide p { margin: 0; color: var(--color-text-soft); font-size: .78rem; line-height: 1.55; }
.customer-media-manager__guide b { color: var(--color-primary); font-weight: 700; }
.customer-media-upload-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.customer-file-upload { min-height: 94px; display: flex; align-items: center; gap: 12px; padding: 15px; overflow: hidden; border: 1px dashed rgba(181, 18, 107, .38); border-radius: 17px; background: #fffcfa; color: var(--color-primary); cursor: pointer; transition: transform var(--transition), border-color var(--transition), background var(--transition), box-shadow var(--transition); }
.customer-file-upload:hover, .customer-file-upload:focus-within { border-color: var(--color-primary); background: #fff2f8; box-shadow: 0 11px 26px rgba(72, 18, 50, .08); transform: translateY(-2px); }
.customer-file-upload__icon { width: 42px; height: 42px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 13px; background: linear-gradient(135deg, var(--color-primary), var(--color-brand)); color: #fff; }
.customer-file-upload__icon--soft { color: var(--color-primary); background: linear-gradient(135deg, #fff2ca, #fff0f7); }
.customer-file-upload__icon .icon { width: 20px; height: 20px; }
.customer-file-upload strong, .customer-file-upload small { display: block; }
.customer-file-upload strong { color: #4d1640; font: 800 .82rem/1.35 var(--font-heading); }
.customer-file-upload small { margin-top: 3px; color: var(--color-text-soft); font-size: .72rem; line-height: 1.42; }
.customer-file-upload input, .customer-gallery-upload input { width: 1px; height: 1px; position: absolute; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.customer-media-upload-status, .customer-gallery-upload-status { min-height: 1.35em; margin: -10px 0 0; color: var(--color-text-soft); font-size: .76rem; line-height: 1.45; }
.customer-media-upload-status[data-state="success"], .customer-gallery-upload-status[data-state="success"] { color: var(--color-success); }
.customer-media-upload-status[data-state="error"], .customer-gallery-upload-status[data-state="error"] { color: var(--color-danger); }
.customer-media-upload-status[data-state="loading"], .customer-gallery-upload-status[data-state="loading"] { color: var(--color-primary); font-weight: 700; }
.customer-media-primary-fields { padding-top: 18px; border-top: 1px solid var(--color-border); }
.customer-media-primary-fields .field small { display: block; margin-top: 6px; color: var(--color-text-soft); font-size: .72rem; line-height: 1.42; }
.customer-media-input-group { display: flex; align-items: stretch; gap: 8px; }
.customer-media-input-group > input { min-width: 0; flex: 1 1 auto; }
.customer-media-input-group__button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; flex: 0 0 auto; padding: 10px 12px; border: 1px solid rgba(181, 18, 107, .22); border-radius: 12px; background: #fff0f7; color: var(--color-primary); font: 700 .75rem/1 var(--font-heading); cursor: pointer; transition: border-color var(--transition), background var(--transition), transform var(--transition); }
.customer-media-input-group__button:hover { border-color: var(--color-primary); background: #ffe0ef; transform: translateY(-1px); }
.customer-media-input-group__button .icon { width: 16px; height: 16px; }
.customer-gallery-editor { overflow: hidden; border: 1px solid rgba(181, 18, 107, .14); border-radius: 19px; background: linear-gradient(145deg, #fff, #fffafc); }
.customer-gallery-editor__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 21px 22px 17px; border-bottom: 1px solid rgba(181, 18, 107, .1); }
.customer-gallery-editor__toolbar .eyebrow { margin-bottom: 7px; font-size: .62rem; }
.customer-gallery-editor__toolbar h3 { margin: 0 0 5px; color: #4d1640; font-size: 1.05rem; }
.customer-gallery-editor__toolbar h3 span { color: var(--color-primary); font-size: .84rem; }
.customer-gallery-editor__toolbar > div:first-child > p:last-child { max-width: 580px; margin: 0; color: var(--color-text-soft); font-size: .77rem; line-height: 1.5; }
.customer-gallery-editor__actions { display: flex; align-items: center; flex: 0 0 auto; gap: 8px; }
.customer-gallery-upload { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 10px 14px; border: 1px solid var(--color-accent); border-radius: 999px; background: var(--color-accent); color: var(--color-primary-strong); font: 700 .8rem/1 var(--font-heading); cursor: pointer; box-shadow: 0 8px 18px rgba(244, 183, 25, .2); transition: background var(--transition), border-color var(--transition), transform var(--transition); }
.customer-gallery-upload:hover { border-color: var(--color-accent-hover); background: var(--color-accent-hover); transform: translateY(-1px); }
.customer-gallery-upload:has(input:disabled), .customer-gallery-editor__actions button:disabled { opacity: .48; cursor: not-allowed; transform: none; }
.customer-gallery-upload .icon { width: 17px; height: 17px; }
.customer-gallery-editor__hint { display: flex; align-items: flex-start; gap: 7px; margin: 0; padding: 12px 22px; border-bottom: 1px dashed rgba(181, 18, 107, .15); color: #6a5162; font-size: .74rem; line-height: 1.48; }
.customer-gallery-editor__hint .icon { width: 16px; height: 16px; flex: 0 0 auto; color: var(--color-primary); }
.customer-gallery-list { display: grid; gap: 9px; padding: 14px 16px; }
.customer-gallery-item { min-width: 0; display: grid; grid-template-columns: 32px 72px 126px minmax(180px, 1.15fr) minmax(170px, .8fr) 138px; align-items: end; gap: 10px; padding: 11px; border: 1px solid var(--color-border); border-radius: 15px; background: #fff; transition: border-color var(--transition), box-shadow var(--transition), background var(--transition); }
.customer-gallery-item:focus-within { border-color: rgba(181, 18, 107, .34); background: #fffdfd; box-shadow: 0 10px 26px rgba(72, 18, 50, .07); }
.customer-gallery-item__number { width: 32px; height: 32px; display: grid; place-items: center; align-self: center; border-radius: 9px; background: #fff0f7; color: var(--color-primary); font: 800 .7rem/1 var(--font-heading); }
.customer-gallery-item__preview { width: 72px; height: 54px; position: relative; display: grid; place-items: center; align-self: center; overflow: hidden; border: 1px solid var(--color-border); border-radius: 10px; background: linear-gradient(135deg, #fff4f9, #fff8e7); color: var(--color-primary); }
.customer-gallery-item__preview img { width: 100%; height: 100%; display: block; object-fit: cover; }
.customer-gallery-item__preview span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--color-primary); box-shadow: 0 5px 14px rgba(72, 18, 50, .22); }
.customer-gallery-item__preview .icon { width: 15px; height: 15px; margin-left: 2px; }
.customer-gallery-item .field { min-width: 0; }
.customer-gallery-item .field label { display: block; margin: 0; color: var(--color-text-soft); font: 700 .66rem/1.25 var(--font-heading); letter-spacing: .035em; }
.customer-gallery-item .field label > span { display: block; margin-bottom: 5px; }
.customer-gallery-item .field input, .customer-gallery-item .field select { min-height: 44px; padding: 9px 10px; border-radius: 10px; font-size: .78rem; }
.customer-gallery-item__actions { display: flex; align-items: center; justify-content: flex-end; gap: 4px; }
.customer-gallery-item__actions button { width: 42px; height: 44px; display: grid; place-items: center; padding: 0; border: 1px solid var(--color-border); border-radius: 10px; background: #fff; color: var(--color-text-soft); transition: border-color var(--transition), background var(--transition), color var(--transition), opacity var(--transition); }
.customer-gallery-item__actions button:hover:not(:disabled) { border-color: var(--color-primary); background: #fff0f7; color: var(--color-primary); }
.customer-gallery-item__actions button.is-danger:hover:not(:disabled) { border-color: var(--color-danger); background: #fff0ee; color: var(--color-danger); }
.customer-gallery-item__actions button:disabled { opacity: .35; cursor: not-allowed; }
.customer-gallery-item__actions .icon { width: 17px; height: 17px; }
.customer-gallery-empty { min-height: 132px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 5px; padding: 20px; color: var(--color-text-soft); text-align: center; }
.customer-gallery-empty .icon { width: 30px; height: 30px; color: var(--color-primary); }
.customer-gallery-empty strong { color: #4d1640; font: 800 .85rem/1.4 var(--font-heading); }
.customer-gallery-empty span { max-width: 360px; font-size: .75rem; line-height: 1.48; }
.customer-gallery-upload-status { margin: 0; padding: 0 22px 16px; }

/* Public customer gallery supports photos, uploaded video, YouTube, and Google Drive. */
.customer-gallery { align-items: start; }
.customer-gallery figure { min-width: 0; margin: 0; overflow: hidden; border-radius: 17px; background: #f3e7ed; box-shadow: 0 12px 28px rgba(72, 18, 50, .08); }
.customer-gallery__image > a, .customer-gallery__video { min-height: 220px; display: block; position: relative; overflow: hidden; background: #301321; }
.customer-gallery__image img { width: 100%; min-height: 220px; display: block; object-fit: cover; transition: transform var(--transition); }
.customer-gallery__image:hover img { transform: scale(1.025); }
.customer-gallery__video iframe, .customer-gallery__video video { width: 100%; min-height: 220px; display: block; border: 0; aspect-ratio: 16 / 9; object-fit: cover; }
.customer-gallery figcaption { padding: 11px 13px 12px; color: #5a4352; background: #fff; font-size: .8rem; line-height: 1.48; }
.customer-gallery__external { min-height: 220px !important; display: flex !important; align-items: center; justify-content: center; flex-direction: column; gap: 9px; padding: 20px; color: #fff; background: linear-gradient(135deg, var(--color-primary-strong), var(--color-primary)); font: 700 .82rem/1.4 var(--font-heading); text-align: center; }
.customer-gallery__external .icon:first-child { width: 36px; height: 36px; padding: 9px; border: 1px solid rgba(255, 255, 255, .5); border-radius: 50%; }
.customer-gallery__external .icon:last-child { width: 18px; height: 18px; }

@media (max-width: 1180px) {
  .customer-gallery-item { grid-template-columns: 32px 72px minmax(0, 1fr) 138px; }
  .customer-gallery-item__number { grid-column: 1; grid-row: 1 / 4; }
  .customer-gallery-item__preview { grid-column: 2; grid-row: 1 / 4; }
  .customer-gallery-item__type { grid-column: 3; grid-row: 1; }
  .customer-gallery-item__url { grid-column: 3; grid-row: 2; }
  .customer-gallery-item__caption { grid-column: 3; grid-row: 3; }
  .customer-gallery-item__actions { grid-column: 4; grid-row: 1 / 4; }
}

@media (max-width: 680px) {
  .customer-media-upload-grid { grid-template-columns: 1fr; }
  .customer-file-upload { min-height: 82px; }
  .customer-media-input-group { display: grid; grid-template-columns: 1fr; }
  .customer-media-input-group__button { width: 100%; }
  .customer-gallery-editor__toolbar { align-items: stretch; flex-direction: column; gap: 15px; padding: 18px 16px 15px; }
  .customer-gallery-editor__actions { display: grid; grid-template-columns: 1fr 1fr; }
  .customer-gallery-editor__actions > * { width: 100%; justify-content: center; }
  .customer-gallery-editor__hint { padding: 11px 16px; }
  .customer-gallery-list { gap: 10px; padding: 12px; }
  .customer-gallery-item { grid-template-columns: 30px 62px minmax(0, 1fr); gap: 8px; padding: 10px; }
  .customer-gallery-item__number { width: 30px; height: 30px; grid-column: 1; grid-row: 1; }
  .customer-gallery-item__preview { width: 62px; height: 48px; grid-column: 2; grid-row: 1; }
  .customer-gallery-item__actions { grid-column: 3; grid-row: 1; }
  .customer-gallery-item__type, .customer-gallery-item__url, .customer-gallery-item__caption { grid-column: 1 / -1; }
  .customer-gallery-item__type { grid-row: 2; }
  .customer-gallery-item__url { grid-row: 3; }
  .customer-gallery-item__caption { grid-row: 4; }
  .customer-gallery-item__actions button { width: 40px; height: 42px; }
  .customer-gallery-upload-status { padding: 0 16px 14px; }
  .customer-gallery { grid-template-columns: 1fr; gap: 14px; }
  .customer-gallery__image > a, .customer-gallery__video, .customer-gallery__image img, .customer-gallery__video iframe, .customer-gallery__video video { min-height: 220px; }
}

/* Home experience — travel storytelling meets event energy. */
.home-journey-rail { display: none; }

.hero[data-home-pointer] {
  --home-pointer-x: 0px;
  --home-pointer-y: 0px;
}
.hero[data-home-pointer] .hero__effects {
  transform: translate3d(var(--home-pointer-x), var(--home-pointer-y), 0) scale(1.015);
  transform-origin: center;
  transition: transform 500ms cubic-bezier(.2,.8,.2,1);
  will-change: transform;
}
.hero__stage-beam { width: min(30vw, 440px); height: 96%; position: absolute; top: -18%; opacity: .2; background: linear-gradient(180deg, rgba(255,233,151,.72), rgba(244,183,25,0) 74%); clip-path: polygon(44% 0, 56% 0, 100% 100%, 0 100%); filter: blur(7px); mix-blend-mode: screen; }
.hero__stage-beam--one { left: 44%; transform: rotate(13deg); transform-origin: top; }
.hero__stage-beam--two { right: -2%; opacity: .14; transform: rotate(-18deg); transform-origin: top; }
.hero__event-orbit { width: 154px; height: 154px; position: absolute; right: 3.4%; top: 13%; display: grid; place-items: center; border: 1px solid rgba(255,225,123,.38); border-radius: 50%; color: rgba(255,239,187,.82); transform: rotate(9deg); }
.hero__event-orbit::before, .hero__event-orbit::after { content: ''; position: absolute; inset: 13px; border: 1px dashed rgba(255,255,255,.24); border-radius: inherit; }
.hero__event-orbit::after { inset: 32px; border-style: solid; border-color: rgba(244,183,25,.26); }
.hero__event-orbit i { width: 9px; height: 9px; position: absolute; left: 9px; top: 48%; border: 2px solid rgba(255,255,255,.8); border-radius: 50%; background: var(--color-accent); box-shadow: 0 0 0 6px rgba(244,183,25,.12); }
.hero__event-orbit b { max-width: 82px; font: 800 .62rem/1.45 var(--font-heading); letter-spacing: .17em; text-align: center; }

.experience-ticker { position: relative; z-index: 4; overflow: hidden; border-top: 1px solid rgba(255,255,255,.16); border-bottom: 1px solid rgba(255,255,255,.1); background: linear-gradient(100deg, #5f0839, #a00f5e 48%, #087f92 130%); color: #fff5ca; box-shadow: 0 15px 36px rgba(72,18,50,.12); contain: layout paint; }
.experience-ticker::before, .experience-ticker::after { content: ''; width: 11vw; position: absolute; z-index: 2; inset-block: 0; pointer-events: none; }
.experience-ticker::before { left: 0; background: linear-gradient(90deg, #5f0839, transparent); }
.experience-ticker::after { right: 0; background: linear-gradient(-90deg, #810b4a, transparent); }
.experience-ticker__track { width: max-content; display: flex; animation: home-ticker 38s linear infinite; }
.experience-ticker:hover .experience-ticker__track { animation-play-state: paused; }
.experience-ticker__group { min-height: 64px; display: flex; align-items: center; flex: 0 0 auto; padding-right: 22px; }
.experience-ticker__group > span { display: inline-flex; align-items: center; gap: 9px; padding-inline: clamp(18px, 2.4vw, 34px); color: rgba(255,255,255,.88); font: 700 .75rem/1.2 var(--font-heading); letter-spacing: .085em; text-transform: uppercase; white-space: nowrap; }
.experience-ticker__group > span::after { content: ''; width: 5px; height: 5px; margin-left: clamp(18px, 2vw, 30px); border-radius: 50%; background: var(--color-accent); box-shadow: 0 0 0 5px rgba(244,183,25,.13); }
.experience-ticker__group i { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: rgba(255,255,255,.08); color: #ffe17b; font-style: normal; }
.experience-ticker__group .icon { width: 14px; height: 14px; }

.home-chapter { position: relative; overflow: hidden; }
.home-chapter > .container { position: relative; z-index: 2; }
.home-chapter-mark { position: absolute; z-index: 0; right: max(22px, calc((100vw - var(--container)) / 2 - 10px)); top: clamp(28px, 5vw, 68px); display: flex; align-items: flex-end; flex-direction: column; color: rgba(181,18,107,.072); pointer-events: none; user-select: none; }
.home-chapter-mark b { font: 700 clamp(5.8rem, 10vw, 10.5rem)/.75 var(--font-display); letter-spacing: -.08em; }
.home-chapter-mark small { margin-top: 19px; color: rgba(181,18,107,.28); font: 800 .64rem/1 var(--font-heading); letter-spacing: .2em; text-transform: uppercase; }
.home-chapter--dark .home-chapter-mark { color: rgba(255,255,255,.045); }
.home-chapter--dark .home-chapter-mark small { color: rgba(255,225,123,.3); }

.home-services-stage { --service-pointer-x: 82%; --service-pointer-y: 12%; isolation: isolate; background: radial-gradient(circle at var(--service-pointer-x) var(--service-pointer-y), rgba(244,183,25,.19), transparent 25rem), radial-gradient(circle at 8% 82%, rgba(8,127,146,.15), transparent 28rem), linear-gradient(135deg, #fff7ed 0%, #fff 50%, #fff1f8 100%); }
.home-services-stage::before { content: ''; width: 420px; height: 420px; position: absolute; left: -160px; top: 12%; z-index: -1; opacity: .28; background-image: radial-gradient(circle, rgba(181,18,107,.5) 1px, transparent 1.5px); background-size: 19px 19px; mask-image: radial-gradient(circle, #000, transparent 70%); }
.home-services-stage::after { content: 'TRAVEL / EVENTS'; position: absolute; right: -24px; bottom: -22px; z-index: -1; color: rgba(181,18,107,.025); font: 800 clamp(5rem, 11vw, 11rem)/1 var(--font-heading); letter-spacing: -.08em; white-space: nowrap; pointer-events: none; }
.home-services-stage .service-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-flow: dense; }
.home-services-stage .service-card { min-height: 306px; grid-column: span 4; isolation: isolate; transform-origin: center; }
.home-services-stage .service-card:nth-child(1) { grid-column: span 6; }
.home-services-stage .service-card:nth-child(2), .home-services-stage .service-card:nth-child(3) { grid-column: span 3; }
.home-services-stage .service-card::after { content: ''; height: 4px; position: absolute; z-index: 2; inset: 0 26px auto; border-radius: 0 0 999px 999px; background: linear-gradient(90deg, var(--color-primary), var(--color-brand)); opacity: .86; }
.home-services-stage .service-card:nth-child(2)::after, .home-services-stage .service-card:nth-child(5)::after { background: linear-gradient(90deg, var(--color-secondary), #4dd8df); }
.home-services-stage .service-card:nth-child(3)::after, .home-services-stage .service-card:nth-child(6)::after { background: linear-gradient(90deg, var(--color-accent), #ffd968); }
.home-services-stage .service-card--feature::after { background: linear-gradient(90deg, #ffe17b, #fff4b8); }
.home-services-stage .service-card:nth-child(2), .home-services-stage .service-card:nth-child(3) { padding: 27px 24px; }
.home-services-stage .service-card:nth-child(2) h3, .home-services-stage .service-card:nth-child(3) h3 { font-size: 1.16rem; }
.home-services-stage .service-card:nth-child(2) p, .home-services-stage .service-card:nth-child(3) p { font-size: .86rem; }
.home-services-stage .service-card:nth-child(4) { background: linear-gradient(150deg, #fff 64%, #e8faf9); }
.home-services-stage .service-card:nth-child(5) { background: linear-gradient(150deg, #fff 64%, #fff6d9); }
.home-services-stage .service-card:nth-child(6) { background: linear-gradient(150deg, #fff 64%, #fff0f7); }

.cta-band__content { position: relative; z-index: 2; }
.cta-band__effects { position: absolute; z-index: 0; inset: 0; overflow: hidden; color: rgba(255,255,255,.72); pointer-events: none; }
.cta-band__effects::before { content: ''; width: min(58vw, 850px); height: 320px; position: absolute; right: -5%; top: 28%; border-top: 2px dashed rgba(255,225,123,.5); border-radius: 50%; transform: rotate(-13deg); }
.cta-band__effects > span { width: 330px; height: 330px; position: absolute; right: 5%; top: 50%; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; transform: translateY(-50%); }
.cta-band__effects > span::before, .cta-band__effects > span::after { content: ''; position: absolute; inset: 28px; border: 1px dashed rgba(255,225,123,.24); border-radius: inherit; }
.cta-band__effects > span::after { inset: 74px; border-style: solid; }
.cta-band__effects > i { width: 48px; height: 48px; position: absolute; right: 28%; top: 31%; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.44); border-radius: 50%; background: rgba(255,255,255,.12); color: #ffe17b; font-style: normal; backdrop-filter: blur(8px); }
.cta-band__effects > i .icon { width: 21px; height: 21px; }
.cta-band__effects > b { position: absolute; right: 7%; bottom: 16%; color: rgba(255,255,255,.26); font: 800 .67rem/1 var(--font-heading); letter-spacing: .28em; }

@media (hover: hover) and (pointer: fine) {
  .home-tilt-card { --home-tilt-x: 0deg; --home-tilt-y: 0deg; --home-lift: 0px; transform: perspective(1200px) rotateX(var(--home-tilt-x)) rotateY(var(--home-tilt-y)) translateY(var(--home-lift)); transform-style: preserve-3d; will-change: transform; transition: transform 260ms cubic-bezier(.2,.8,.2,1), box-shadow var(--transition), border-color var(--transition); }
  .home-tilt-card:hover, .home-tilt-card:focus-within { --home-lift: -6px; }
  .home-tilt-card > * { transform: translateZ(0); }
}

@media (min-width: 1380px) and (min-height: 690px) {
  .home-journey-rail { width: 58px; position: fixed; z-index: 18; right: 17px; top: 50%; display: grid; gap: 3px; padding: 36px 7px 8px; border: 1px solid rgba(181,18,107,.12); border-radius: 25px; background: rgba(255,252,249,.88); box-shadow: 0 18px 46px rgba(72,18,50,.11); transform: translateY(-50%); backdrop-filter: blur(15px); }
  .home-journey-rail__line { width: 1px; height: 24px; position: absolute; left: 50%; top: 9px; background: linear-gradient(var(--color-accent), var(--color-primary)); transform: translateX(-50%); }
  .home-journey-rail__line i { width: 22px; height: 22px; position: absolute; left: 50%; top: -6px; display: grid; place-items: center; border-radius: 50%; background: var(--color-primary); color: #fff; transform: translateX(-50%); }
  .home-journey-rail__line .icon { width: 12px; height: 12px; }
  .home-journey-rail a { min-width: 44px; min-height: 48px; display: grid; place-items: center; align-content: center; gap: 2px; border-radius: 15px; color: #876a7d; transition: background var(--transition), color var(--transition), transform var(--transition); }
  .home-journey-rail a b { font: 800 .62rem/1 var(--font-heading); }
  .home-journey-rail a span { width: 0; height: 0; position: absolute; overflow: hidden; opacity: 0; }
  .home-journey-rail a:hover { background: #fff0f7; color: var(--color-primary); transform: translateX(-2px); }
  .home-journey-rail a[aria-current="page"] { background: linear-gradient(145deg, var(--color-primary), var(--color-brand)); color: #fff; box-shadow: 0 8px 20px rgba(181,18,107,.24); }
}

@media (max-width: 1180px) {
  .hero__event-orbit { display: none; }
  .home-chapter-mark { right: 18px; }
  .home-services-stage .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-services-stage .service-card, .home-services-stage .service-card:nth-child(1), .home-services-stage .service-card:nth-child(2), .home-services-stage .service-card:nth-child(3) { grid-column: auto; min-height: 286px; padding: 28px; }
}

@media (max-width: 900px) {
  .hero[data-home-pointer] .hero__effects { transform: none; }
  .hero__stage-beam { opacity: .12; }
  .hero__stage-beam--one { left: 58%; }
  .home-chapter-mark { top: 25px; opacity: .72; }
  .home-chapter-mark b { font-size: 5.5rem; }
  .home-chapter-mark small { margin-top: 15px; }
  .home-services-stage .service-grid { grid-template-columns: 1fr; }
  .home-services-stage .service-card, .home-services-stage .service-card:nth-child(1), .home-services-stage .service-card:nth-child(2), .home-services-stage .service-card:nth-child(3) { min-height: 250px; }
  .cta-band__effects { opacity: .62; }
  .cta-band__effects > span { right: -150px; }
  .cta-band__effects > i, .cta-band__effects > b { display: none; }
}

@media (max-width: 680px) {
  .hero__stage-beam--two { display: none; }
  .experience-ticker__group { min-height: 54px; }
  .experience-ticker__group > span { gap: 7px; padding-inline: 15px; font-size: .67rem; }
  .experience-ticker__group > span::after { margin-left: 14px; }
  .experience-ticker__group i { width: 25px; height: 25px; }
  .home-chapter-mark { right: 11px; top: 19px; }
  .home-chapter-mark b { font-size: 4.4rem; }
  .home-chapter-mark small { display: none; }
  .home-services-stage::after { font-size: 4.6rem; }
  .home-services-stage .service-card, .home-services-stage .service-card:nth-child(1), .home-services-stage .service-card:nth-child(2), .home-services-stage .service-card:nth-child(3) { min-height: 242px; padding: 25px 22px; }
  .cta-band__effects::before { width: 780px; right: -430px; top: 34%; }
}

@media (prefers-reduced-motion: reduce) {
  .experience-ticker__track { animation: none !important; transform: none !important; }
  .hero[data-home-pointer] .hero__effects, .home-tilt-card { transform: none !important; }
  .home-tilt-card { will-change: auto !important; }
}

@keyframes home-ticker { to { transform: translateX(-50%); } }

/* Hero boarding story — editorial travel meets event energy. */
.hero-copy-frame {
  --hero-copy-line: rgba(255, 225, 123, .68);
  position: relative;
  max-width: 720px;
  padding: 14px 4px 12px 31px;
  isolation: isolate;
}

.hero-copy-frame::before {
  content: '';
  width: 1px;
  position: absolute;
  left: 0;
  top: 42px;
  bottom: 38px;
  background: linear-gradient(transparent, var(--hero-copy-line) 13%, rgba(255,255,255,.2) 72%, transparent);
}

.hero-copy-frame__corner {
  width: 50px;
  height: 50px;
  position: absolute;
  left: 0;
  border-left: 2px solid var(--hero-copy-line);
  pointer-events: none;
}

.hero-copy-frame__corner::after {
  content: '';
  width: 7px;
  height: 7px;
  position: absolute;
  left: -4px;
  border: 2px solid rgba(255,255,255,.85);
  border-radius: 50%;
  background: var(--color-accent);
  box-shadow: 0 0 0 6px rgba(244,183,25,.12);
}

.hero-copy-frame__corner--top { top: 0; border-top: 2px solid var(--hero-copy-line); border-radius: 18px 0 0; }
.hero-copy-frame__corner--top::after { top: -4px; }
.hero-copy-frame__corner--bottom { bottom: 0; border-bottom: 2px solid var(--hero-copy-line); border-radius: 0 0 0 18px; }
.hero-copy-frame__corner--bottom::after { bottom: -4px; }

.hero-copy-kicker {
  max-width: 650px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 19px;
}

.hero .hero-copy-kicker .eyebrow--light { margin: 0; }
.hero-copy-code {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
  color: rgba(255,255,255,.64);
  font: 700 .56rem/1 var(--font-heading);
  letter-spacing: .14em;
  white-space: nowrap;
}
.hero-copy-code b {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,225,123,.54);
  border-radius: 50%;
  color: #ffe17b;
  font-size: .62rem;
  letter-spacing: 0;
}

.hero-title-layout { position: relative; max-width: 700px; }
.hero-title-number {
  position: absolute;
  left: -28px;
  top: 13px;
  color: rgba(255,225,123,.54);
  font: 800 .56rem/1 var(--font-heading);
  letter-spacing: .04em;
  writing-mode: vertical-rl;
}
.hero-title-number::after {
  content: '';
  width: 1px;
  height: 34px;
  display: block;
  margin: 8px auto 0;
  background: linear-gradient(var(--color-accent), transparent);
}

.hero-title-layout h1 { display: grid; gap: 1px; padding-right: 108px; }
.hero-title-layout h1 > span, .hero-title-layout h1 > em { display: block; width: fit-content; }
.hero-title-layout h1 > span { position: relative; }
.hero-title-layout h1 > span::after {
  content: 'TRAVEL';
  position: absolute;
  right: -56px;
  top: 7px;
  color: rgba(255,255,255,.52);
  font: 800 .5rem/1 var(--font-heading);
  letter-spacing: .2em;
  writing-mode: vertical-rl;
}

.hero-title-stamp {
  width: 92px;
  aspect-ratio: 1;
  position: absolute;
  right: 2px;
  bottom: 18px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,225,123,.48);
  border-radius: 50%;
  color: #ffe17b;
  transform: rotate(8deg);
}
.hero-title-stamp::before, .hero-title-stamp::after { content: ''; position: absolute; border-radius: inherit; }
.hero-title-stamp::before { inset: 7px; border: 1px dashed rgba(255,255,255,.37); }
.hero-title-stamp::after { inset: 18px; border: 1px solid rgba(244,183,25,.24); }
.hero-title-stamp > i { width: 24px; height: 24px; position: absolute; left: 4px; top: 7px; display: grid; place-items: center; border-radius: 50%; background: var(--color-accent); color: var(--color-primary-strong); font-style: normal; }
.hero-title-stamp > i .icon { width: 13px; height: 13px; }
.hero-title-stamp > b { position: relative; z-index: 1; font: 800 1.38rem/1 var(--font-heading); letter-spacing: .03em; }
.hero-title-stamp > small { position: absolute; bottom: 13px; font: 700 .4rem/1.2 var(--font-heading); letter-spacing: .09em; text-align: center; text-transform: uppercase; }

.hero-promise-route { max-width: 650px; position: relative; margin-bottom: 30px; }
.hero-promise-route__line { height: 1px; position: absolute; z-index: 0; left: 14%; right: 14%; top: 30px; border-top: 1px dashed rgba(255,225,123,.58); pointer-events: none; }
.hero-promise-route__line i { width: 7px; height: 7px; position: absolute; top: -4px; border: 2px solid rgba(255,255,255,.84); border-radius: 50%; background: var(--color-accent); box-shadow: 0 0 0 4px rgba(244,183,25,.12); }
.hero-promise-route__line i:first-child { left: 0; }
.hero-promise-route__line i:nth-child(2) { left: 50%; transform: translateX(-50%); }
.hero-promise-route__line i:last-child { right: 0; }

.hero .hero__assurance {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 11px;
  margin: 0;
}
.hero .hero__assurance li {
  min-width: 0;
  min-height: 82px;
  position: relative;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  padding: 27px 11px 12px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 17px;
  background: linear-gradient(145deg, rgba(72,5,44,.4), rgba(255,255,255,.08));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 14px 30px rgba(34,1,22,.12);
  backdrop-filter: blur(9px);
  transition: border-color var(--transition), background var(--transition), transform var(--transition);
}
.hero .hero__assurance li:hover { border-color: rgba(255,225,123,.62); background: linear-gradient(145deg, rgba(86,6,53,.54), rgba(255,255,255,.12)); transform: translateY(-3px); }
.hero-assurance__number { position: absolute; left: 12px; top: 9px; color: rgba(255,255,255,.53); font: 800 .52rem/1 var(--font-heading); letter-spacing: .1em; }
.hero-assurance__icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 12px; background: linear-gradient(135deg, #ffe995, var(--color-accent)); color: var(--color-primary-strong); box-shadow: 0 8px 18px rgba(32,1,20,.18); }
.hero .hero__assurance .hero-assurance__icon .icon { width: 16px; height: 16px; color: currentColor; }
.hero__assurance strong { min-width: 0; color: #fff; font: 700 .74rem/1.35 var(--font-heading); letter-spacing: -.01em; }

.hero .hero__actions { align-items: stretch; gap: 11px; }
.hero-ticket-cta, .hero-event-cta { min-height: 64px; border-radius: 18px; }
.hero-ticket-cta { gap: 18px; padding: 8px 9px 8px 19px; }
.hero-ticket-cta::before { content: ''; width: 1px; align-self: stretch; order: 1; border-left: 1px dashed rgba(92,56,0,.32); }
.hero-ticket-cta > span, .hero-event-cta > span { position: relative; z-index: 1; display: grid; gap: 4px; text-align: left; }
.hero-ticket-cta small, .hero-event-cta small { font: 700 .54rem/1 var(--font-heading); letter-spacing: .12em; text-transform: uppercase; }
.hero-ticket-cta small { color: rgba(92,56,0,.64); }
.hero-ticket-cta > i { width: 44px; height: 44px; position: relative; z-index: 1; order: 2; display: grid; place-items: center; flex: 0 0 auto; border-radius: 13px; background: var(--color-primary); color: #fff; font-style: normal; transition: transform var(--transition), background var(--transition); }
.hero-ticket-cta > i .icon { width: 19px; height: 19px; }
.hero-ticket-cta:hover > i { background: var(--color-primary-strong); transform: translateX(2px) rotate(-5deg); }

.hero-event-cta { padding: 8px 17px 8px 10px; }
.hero-event-cta > i { width: 42px; height: 42px; position: relative; z-index: 1; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid rgba(255,255,255,.32); border-radius: 13px; background: rgba(255,255,255,.1); color: #ffe17b; font-style: normal; transition: background var(--transition), transform var(--transition); }
.hero-event-cta > i .icon { width: 18px; height: 18px; }
.hero-event-cta small { color: rgba(255,255,255,.78); }
.hero-event-cta:hover > i { background: rgba(255,255,255,.18); transform: rotate(-7deg); }

.hero-copy-coordinate { display: flex; align-items: center; gap: 9px; margin: 17px 0 0; color: rgba(255,255,255,.55); font: 700 .52rem/1 var(--font-heading); letter-spacing: .16em; }
.hero-copy-coordinate .icon { width: 13px; height: 13px; color: #ffe17b; }
.hero-copy-coordinate span { width: 18px; border-top: 1px dashed rgba(255,225,123,.46); }

@media (max-width: 1180px) {
  .hero-title-layout h1 { padding-right: 0; }
  .hero-title-stamp { display: none; }
  .hero-title-layout h1 > span::after { right: -45px; }
}

@media (max-width: 900px) {
  .hero-copy-frame { max-width: 680px; }
  .hero-copy-kicker, .hero-promise-route { max-width: 620px; }
  .hero-title-layout h1 > span::after { display: none; }
}

@media (max-width: 680px) {
  .hero-copy-frame { padding: 7px 0 7px 17px; }
  .hero-copy-frame::before { top: 32px; bottom: 31px; }
  .hero-copy-frame__corner { width: 30px; height: 34px; }
  .hero-copy-frame__corner::after { width: 6px; height: 6px; left: -4px; }
  .hero-copy-code, .hero-title-number, .hero-copy-coordinate { display: none; }
  .hero-copy-kicker { margin-bottom: 17px; }
  .hero-title-layout h1 { padding-right: 0; }
  .hero-promise-route { margin-bottom: 24px; }
  .hero-promise-route__line { left: 17px; right: auto; top: 27px; bottom: 27px; width: 1px; height: auto; border-top: 0; border-left: 1px dashed rgba(255,225,123,.48); }
  .hero-promise-route__line i { left: -4px !important; right: auto !important; }
  .hero-promise-route__line i:first-child { top: 0; }
  .hero-promise-route__line i:nth-child(2) { top: 50%; transform: translateY(-50%); }
  .hero-promise-route__line i:last-child { top: auto; bottom: 0; }
  .hero .hero__assurance { grid-template-columns: 1fr; gap: 8px; }
  .hero .hero__assurance li { min-height: 56px; grid-template-columns: 34px minmax(0, 1fr); padding: 9px 38px 9px 9px; border-radius: 15px; }
  .hero-assurance__number { left: auto; right: 12px; top: 50%; color: rgba(255,255,255,.44); transform: translateY(-50%); }
  .hero-assurance__icon { width: 34px; height: 34px; }
  .hero__assurance strong { font-size: .76rem; }
  .hero-ticket-cta, .hero-event-cta { min-height: 60px; }
  .hero-ticket-cta > span, .hero-event-cta > span { flex: 1 1 auto; }
}

@media (max-width: 380px) {
  .hero-copy-frame { padding-left: 13px; }
  .hero .hero-copy-kicker .eyebrow--light { font-size: .59rem; letter-spacing: .075em; }
  .hero-ticket-cta { padding-left: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero .hero__assurance li, .hero-ticket-cta > i, .hero-event-cta > i { transform: none !important; }
}

/* Sắc Việt CMS 2.0 — focused, searchable and content-first. */
.admin-body {
  --cms-sidebar: 284px;
  --cms-topbar: 78px;
  min-height: 100dvh;
  background: #f7f7fa;
  color: #20212b;
}

.admin-body::before {
  content: '';
  width: 520px;
  height: 520px;
  position: fixed;
  z-index: -1;
  right: -260px;
  top: -250px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(181,18,107,.08), transparent 70%);
  pointer-events: none;
}

.admin-sidebar {
  width: var(--cms-sidebar);
  padding: 18px 15px 16px;
  background: radial-gradient(circle at 40% -8%, rgba(244,183,25,.18), transparent 27%), linear-gradient(180deg, #27101f 0%, #4d0b31 52%, #650a3b 100%);
  box-shadow: 18px 0 44px rgba(38,5,25,.09);
}

.admin-sidebar__brand { display: grid; grid-template-columns: 116px 1fr; align-items: center; gap: 12px; min-height: 66px; padding: 4px 8px 12px; border-bottom: 1px solid rgba(255,255,255,.1); }
.admin-sidebar__brand .brand--admin { margin: 0; }
.admin-sidebar__brand .brand--admin img { width: 112px; height: 55px; object-fit: contain; }
.admin-sidebar__brand > span { min-width: 0; display: grid; gap: 3px; }
.admin-sidebar__brand b { width: fit-content; padding: 4px 7px; border: 1px solid rgba(255,225,123,.32); border-radius: 7px; background: rgba(244,183,25,.12); color: #ffe17b; font: 800 .62rem/1 var(--font-heading); letter-spacing: .12em; }
.admin-sidebar__brand small { overflow: hidden; color: rgba(255,255,255,.5); font: 600 .56rem/1.25 var(--font-heading); text-overflow: ellipsis; white-space: nowrap; }

.admin-site-state { display: grid; grid-template-columns: 9px minmax(0, 1fr) 36px; align-items: center; gap: 10px; margin: 14px 4px 10px; padding: 11px 10px; border: 1px solid rgba(255,255,255,.1); border-radius: 13px; background: rgba(255,255,255,.06); }
.admin-site-state > i { width: 8px; height: 8px; border: 2px solid rgba(255,255,255,.7); border-radius: 50%; background: #5ee0a0; box-shadow: 0 0 0 4px rgba(94,224,160,.1); }
.admin-site-state span, .admin-site-state strong, .admin-site-state small { min-width: 0; display: block; }
.admin-site-state strong { overflow: hidden; color: rgba(255,255,255,.88); font: 700 .68rem/1.3 var(--font-heading); text-overflow: ellipsis; white-space: nowrap; }
.admin-site-state small { margin-top: 2px; overflow: hidden; color: rgba(255,255,255,.46); font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }
.admin-site-state > a { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; background: rgba(255,255,255,.09); color: #ffe17b; transition: background var(--transition), transform var(--transition); }
.admin-site-state > a:hover { background: rgba(255,255,255,.16); transform: translateY(-1px); }
.admin-site-state > a .icon { width: 16px; height: 16px; }

.admin-nav { gap: 3px; margin-right: -4px; padding: 2px 7px 10px 0; }
.admin-nav__label { margin: 16px 10px 6px; color: rgba(255,255,255,.42); font-size: .59rem; letter-spacing: .17em; }
.admin-nav a { min-height: 46px; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 10px; padding: 9px 11px; border: 1px solid transparent; border-radius: 12px; color: rgba(255,255,255,.69); font-size: .82rem; }
.admin-nav a .icon { width: 18px; height: 18px; }
.admin-nav a:hover { border-color: rgba(255,255,255,.08); background: rgba(255,255,255,.08); color: #fff; }
.admin-nav a.is-active { border-color: rgba(255,225,123,.16); background: linear-gradient(90deg, rgba(244,183,25,.18), rgba(255,255,255,.1)); color: #fff; box-shadow: inset 3px 0 #ffe17b, 0 8px 22px rgba(25,1,16,.08); }
.admin-nav a.is-active .icon { color: #ffe17b; }
.admin-nav small { min-width: 24px; padding: 4px 6px; border-radius: 7px; background: rgba(255,255,255,.11); color: rgba(255,255,255,.77); font-size: .61rem; }
.admin-nav a.is-active small { background: #ffe17b; color: #5b3d00; }

.admin-sidebar__bottom { gap: 3px; padding-top: 12px; }
.admin-sidebar__bottom a, .admin-sidebar__bottom button { min-height: 42px; border-radius: 11px; color: rgba(255,255,255,.64); font-size: .78rem; }
.admin-sidebar__bottom .admin-user-card { min-height: 60px; display: grid; grid-template-columns: 38px minmax(0, 1fr) 18px; gap: 10px; margin-bottom: 5px; padding: 8px; border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.06); }
.admin-user-card__avatar { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; background: linear-gradient(145deg, #ffe17b, var(--color-accent)); color: #5c3800; font: 800 .9rem/1 var(--font-heading); }
.admin-user-card > span:nth-child(2), .admin-user-card strong, .admin-user-card small { min-width: 0; display: block; }
.admin-user-card strong { overflow: hidden; color: #fff; font: 700 .72rem/1.25 var(--font-heading); text-overflow: ellipsis; white-space: nowrap; }
.admin-user-card small { margin-top: 3px; color: rgba(255,255,255,.45); font-size: .61rem; }
.admin-user-card > .icon { width: 15px; height: 15px; }

.admin-shell { margin-left: var(--cms-sidebar); }
.admin-topbar {
  min-height: var(--cms-topbar);
  display: grid;
  grid-template-columns: minmax(170px, auto) minmax(260px, 560px) auto auto;
  justify-content: stretch;
  gap: 14px;
  padding: 10px 24px;
  border-bottom-color: rgba(79,20,55,.1);
  background: rgba(255,255,255,.93);
  box-shadow: 0 8px 30px rgba(49,15,36,.045);
  backdrop-filter: blur(18px);
}
.admin-topbar > div { text-align: left; }
.admin-topbar__context { min-width: 0; display: flex; align-items: center; gap: 10px; }
.admin-topbar__context > span { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid rgba(181,18,107,.1); border-radius: 11px; background: #fff5fa; color: var(--color-primary); }
.admin-topbar__context > span .icon { width: 18px; height: 18px; }
.admin-topbar__context p, .admin-topbar__context strong { min-width: 0; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-topbar__context p { margin: 0 0 2px; color: #83818a; font: 700 .58rem/1 var(--font-heading); letter-spacing: .09em; text-transform: uppercase; }
.admin-topbar__context strong { font-size: .82rem; }

.admin-command { min-width: 0; position: relative; align-self: center; }
.admin-command > label { min-height: 46px; position: relative; display: flex; align-items: center; gap: 9px; padding: 5px 8px 5px 13px; border: 1px solid #dedee6; border-radius: 13px; background: #f8f8fb; color: #777680; transition: border-color var(--transition), background var(--transition), box-shadow var(--transition); }
.admin-command > label:focus-within { border-color: rgba(181,18,107,.42); background: #fff; box-shadow: 0 0 0 4px rgba(181,18,107,.08); }
.admin-command > label .icon { width: 17px; height: 17px; flex: 0 0 auto; }
.admin-command input { min-width: 0; min-height: 34px; flex: 1 1 auto; padding: 0; border: 0; outline: 0; background: transparent; box-shadow: none; font-size: .8rem; }
.admin-command input:focus { border: 0; box-shadow: none; }
.admin-command kbd { min-width: 38px; padding: 5px 6px; border: 1px solid #dedee6; border-radius: 7px; background: #fff; color: #797780; font: 700 .59rem/1 var(--font-heading); text-align: center; box-shadow: 0 1px 1px rgba(0,0,0,.03); }
.admin-command__results { position: absolute; z-index: 60; left: 0; right: 0; top: calc(100% + 8px); max-height: min(390px, calc(100dvh - 110px)); padding: 7px; overflow-y: auto; border: 1px solid #dedee6; border-radius: 15px; background: #fff; box-shadow: 0 24px 70px rgba(47,17,37,.18); }
.admin-command__results a { min-height: 52px; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; transition: background var(--transition), color var(--transition); }
.admin-command__results a:hover, .admin-command__results a:focus { background: #fff1f8; color: var(--color-primary); }
.admin-command__results a > i { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; background: #f7f2f6; color: var(--color-primary); font-style: normal; }
.admin-command__results a > i .icon { width: 16px; height: 16px; }
.admin-command__results strong, .admin-command__results small { display: block; }
.admin-command__results strong { font: 700 .78rem/1.3 var(--font-heading); }
.admin-command__results small { margin-top: 2px; color: #89858d; font-size: .65rem; }
.admin-command__results a > .icon { width: 15px; height: 15px; color: #aaa6ad; }
.admin-command__empty { margin: 0; padding: 20px 12px; color: #777680; font-size: .76rem; text-align: center; }

.admin-global-save { min-height: 36px; display: inline-flex; align-items: center; gap: 7px; align-self: center; padding: 6px 9px; border: 1px solid #e2e2e8; border-radius: 999px; color: #6b6a73; font: 700 .65rem/1 var(--font-heading); white-space: nowrap; }
.admin-global-save > i { width: 7px; height: 7px; border-radius: 50%; background: #20a875; box-shadow: 0 0 0 4px rgba(32,168,117,.09); }
.admin-global-save.is-dirty { border-color: rgba(217,119,6,.24); background: #fffaf0; color: #8a5c00; }
.admin-global-save.is-dirty > i { background: var(--color-accent); box-shadow: 0 0 0 4px rgba(244,183,25,.12); }
.admin-global-save.is-saving > i { background: var(--color-primary); }

.admin-topbar__actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.admin-preview-button, .admin-create-menu > summary { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 8px 11px; border: 1px solid #dedee6; border-radius: 11px; background: #fff; color: #53515a; font: 700 .72rem/1 var(--font-heading); cursor: pointer; transition: border-color var(--transition), color var(--transition), background var(--transition); }
.admin-preview-button:hover { border-color: rgba(181,18,107,.28); background: #fff7fb; color: var(--color-primary); }
.admin-preview-button .icon, .admin-create-menu > summary .icon { width: 16px; height: 16px; }
.admin-create-menu { position: relative; }
.admin-create-menu > summary { border-color: var(--color-primary); background: var(--color-primary); color: #fff; list-style: none; }
.admin-create-menu > summary::-webkit-details-marker { display: none; }
.admin-create-menu[open] > summary { background: var(--color-primary-strong); }
.admin-create-menu > div { width: 280px; position: absolute; z-index: 60; right: 0; top: calc(100% + 8px); display: grid; gap: 3px; padding: 8px; border: 1px solid #dedee6; border-radius: 15px; background: #fff; box-shadow: 0 24px 70px rgba(47,17,37,.18); }
.admin-create-menu > div a { min-height: 58px; display: grid; grid-template-columns: 38px 1fr; align-items: center; gap: 10px; padding: 9px; border-radius: 10px; }
.admin-create-menu > div a:hover { background: #fff1f8; }
.admin-create-menu > div a > .icon { width: 38px; height: 38px; padding: 10px; border-radius: 10px; background: #fff0f7; color: var(--color-primary); }
.admin-create-menu strong, .admin-create-menu small { display: block; }
.admin-create-menu strong { font: 700 .76rem/1.3 var(--font-heading); }
.admin-create-menu small { margin-top: 3px; color: #7a7780; font-size: .66rem; }

.admin-content { width: min(100%, 1480px); padding: 30px 30px 78px; }
.admin-content > .flash { position: relative; z-index: 16; margin-bottom: 20px; border-radius: 14px; box-shadow: 0 12px 30px rgba(40,12,30,.08); }
.admin-page-heading { align-items: center; margin-bottom: 24px; }
.admin-page-heading h1 { color: #25232c; font-size: clamp(1.75rem, 3vw, 2.65rem); letter-spacing: -.045em; }
.admin-page-heading > p { max-width: 540px; font-size: .86rem; line-height: 1.65; }

.admin-welcome { min-height: 248px; position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 300px; align-items: center; gap: 38px; margin-bottom: 20px; padding: 30px 34px; overflow: hidden; border: 1px solid rgba(181,18,107,.12); border-radius: 22px; background: radial-gradient(circle at 82% 10%, rgba(244,183,25,.18), transparent 16rem), linear-gradient(130deg, #fff 0%, #fff8f1 48%, #fff0f8 100%); box-shadow: 0 16px 46px rgba(59,18,45,.07); }
.admin-welcome::after { content: 'SV'; position: absolute; right: -25px; bottom: -80px; color: rgba(181,18,107,.035); font: 800 13rem/1 var(--font-heading); letter-spacing: -.1em; pointer-events: none; }
.admin-welcome > div, .admin-welcome > aside { position: relative; z-index: 1; }
.admin-welcome .eyebrow { margin-bottom: 9px; }
.admin-welcome h1 { margin-bottom: 10px; color: #2d2630; font-size: clamp(2rem, 3.6vw, 3.35rem); line-height: 1.05; letter-spacing: -.055em; }
.admin-welcome h1 em { color: var(--color-primary); font-family: var(--font-display); font-weight: 600; }
.admin-welcome > div > p:not(.eyebrow) { max-width: 660px; margin-bottom: 18px; color: #6c6670; font-size: .9rem; }
.admin-welcome__actions { display: flex; flex-wrap: wrap; gap: 9px; }
.admin-welcome__actions .button { min-height: 44px; padding-block: 9px; font-size: .8rem; }
.admin-welcome > aside { min-height: 124px; display: grid; grid-template-columns: 48px 1fr; align-items: center; gap: 13px; padding: 20px; border: 1px solid rgba(181,18,107,.12); border-radius: 17px; background: rgba(255,255,255,.78); box-shadow: 0 16px 38px rgba(69,20,52,.08); backdrop-filter: blur(12px); }
.admin-welcome > aside > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 14px; background: linear-gradient(145deg, #ffe99a, var(--color-accent)); color: #654100; }
.admin-welcome > aside > span .icon { width: 21px; height: 21px; }
.admin-welcome aside small, .admin-welcome aside strong, .admin-welcome aside p { display: block; }
.admin-welcome aside small { color: #77717a; font-size: .65rem; }
.admin-welcome aside strong { margin: 2px 0; color: #34303a; font: 700 .8rem/1.3 var(--font-heading); }
.admin-welcome aside p { margin: 0; color: var(--color-primary); font-size: .68rem; font-weight: 700; }

.stats-grid { gap: 12px; margin-bottom: 18px; }
.stats-grid > a { min-width: 0; position: relative; display: grid; grid-template-columns: 46px minmax(0, 1fr) 16px; align-items: center; gap: 12px; padding: 18px; overflow: hidden; border: 1px solid #e5e3e9; border-radius: 17px; background: #fff; box-shadow: 0 10px 28px rgba(47,20,38,.045); transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition); }
.stats-grid > a::after { content: ''; width: 70px; height: 70px; position: absolute; right: -36px; top: -38px; border-radius: 50%; background: rgba(244,183,25,.1); }
.stats-grid > a:hover { border-color: rgba(181,18,107,.22); box-shadow: 0 16px 36px rgba(47,20,38,.08); transform: translateY(-2px); }
.stats-grid > a > i { color: #aaa5ad; font-style: normal; transition: color var(--transition), transform var(--transition); }
.stats-grid > a:hover > i { color: var(--color-primary); transform: translateX(3px); }
.stats-grid > a > i .icon { width: 15px; height: 15px; }
.stats-grid > a .stats-icon { width: 46px; height: 46px; border-radius: 13px; }
.stats-grid > a .stats-icon .icon { width: 21px; height: 21px; }
.stats-grid > a small, .stats-grid > a strong, .stats-grid > a p { display: block; }
.stats-grid > a small { color: #77747c; font-size: .65rem; }
.stats-grid > a strong { margin: 1px 0; font: 800 1.5rem/1.15 var(--font-heading); letter-spacing: -.04em; }
.stats-grid > a p { margin: 0; overflow: hidden; color: #85828a; font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }

.admin-dashboard-grid { grid-template-columns: minmax(0, 1.35fr) minmax(310px, .65fr); gap: 16px; }
.admin-panel { border-color: #e5e3e9; border-radius: 18px; box-shadow: 0 10px 30px rgba(47,20,38,.045); }
.admin-panel__heading { min-height: 78px; padding: 19px 21px; border-bottom-color: #eceaf0; }
.admin-panel__heading h2 { font-size: 1.12rem; }
.admin-panel__heading > a { font-size: .74rem; }
.lead-list article { min-height: 72px; padding: 13px 21px; }
.quick-panel { padding: 21px; }
.quick-panel > a { min-height: 62px; }

.admin-content-health { margin-top: 16px; overflow: hidden; }
.admin-health-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-health-grid article { min-width: 0; padding: 20px 21px; border-right: 1px solid #eceaf0; }
.admin-health-grid article:last-child { border-right: 0; }
.admin-health-grid article > div { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.admin-health-grid .stats-icon { width: 42px; height: 42px; border-radius: 12px; }
.admin-health-grid .stats-icon .icon { width: 19px; height: 19px; }
.admin-health-grid p, .admin-health-grid strong, .admin-health-grid small { min-width: 0; display: block; }
.admin-health-grid p { margin: 0; }
.admin-health-grid strong { font: 700 .78rem/1.3 var(--font-heading); }
.admin-health-grid small { margin-top: 3px; color: #7d7982; font-size: .65rem; }
.admin-health-grid article > div > b { color: var(--color-primary); font: 800 .9rem/1 var(--font-heading); }
.admin-health-progress { height: 7px; display: block; margin: 14px 0 11px; overflow: hidden; border-radius: 99px; background: #eeedf1; }
.admin-health-progress > i { width: var(--progress); height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, var(--color-primary), var(--color-brand), var(--color-accent)); }
.admin-health-grid article > a { min-height: 32px; display: inline-flex; align-items: center; gap: 6px; color: var(--color-primary); font: 700 .68rem/1 var(--font-heading); }
.admin-health-grid article > a .icon { width: 14px; height: 14px; }

.admin-table-panel { border-radius: 18px; }
.table-toolbar { min-height: 62px; padding: 15px 20px; background: #fcfcfd; }
.admin-table-filter { min-width: min(320px, 34vw); min-height: 42px; display: flex; align-items: center; gap: 8px; margin-left: auto; padding: 5px 7px 5px 11px; border: 1px solid #dedbe2; border-radius: 11px; background: #fff; color: #7b7780; }
.admin-table-filter:focus-within { border-color: rgba(181,18,107,.42); box-shadow: 0 0 0 4px rgba(181,18,107,.07); }
.admin-table-filter > .icon { width: 16px; height: 16px; flex: 0 0 auto; }
.admin-table-filter input { min-width: 0; min-height: 30px !important; flex: 1 1 auto; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
.admin-table-filter__status { flex: 0 0 auto; padding: 5px 7px; border-radius: 7px; background: #f4f2f5; color: #77737c; font: 700 .58rem/1 var(--font-heading); white-space: nowrap; }
.admin-table-filter-empty { margin: 0; padding: 30px 20px; border-top: 1px solid #eceaf0; color: #77737f; font-size: .8rem; text-align: center; }
.admin-table tr[hidden] { display: none; }
.admin-table th { position: sticky; z-index: 1; top: 0; padding-block: 12px; background: #f7f5f8; color: #6f6b74; }
.admin-table td { padding-block: 12px; }
.admin-table tbody tr:hover { background: #fff7fb; }

.admin-form { gap: 16px; }
.form-panel { gap: 28px; padding: 24px; }
.form-panel__heading > span { border-radius: 11px; background: linear-gradient(145deg, var(--color-primary), var(--color-brand)); box-shadow: 0 8px 18px rgba(181,18,107,.16); }
.form-panel__heading h2 { color: #302d35; font-size: 1rem; }
.form-panel__heading p { font-size: .78rem; line-height: 1.55; }
.admin-body .field label { margin-bottom: 7px; color: #4c4851; font-size: .76rem; }
.admin-body input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]), .admin-body select, .admin-body textarea { border-color: #dcd9e0; border-radius: 11px; background: #fff; font-size: .84rem; }
.admin-body input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]), .admin-body select { min-height: 46px; }
.admin-body textarea { line-height: 1.6; resize: vertical; }
.admin-body input:hover, .admin-body select:hover, .admin-body textarea:hover { border-color: #bdb7c2; }
.admin-body input:focus, .admin-body select:focus, .admin-body textarea:focus { border-color: rgba(181,18,107,.65); box-shadow: 0 0 0 4px rgba(181,18,107,.08); }
.admin-body input[aria-invalid="true"], .admin-body select[aria-invalid="true"], .admin-body textarea[aria-invalid="true"] { border-color: var(--color-danger); box-shadow: 0 0 0 4px rgba(180,35,24,.08); }
.admin-body .field small { margin-top: 6px; color: #7e7a83; line-height: 1.5; }
.cms-repeat-card { border-color: #e4e1e7; border-radius: 14px; background: #fdfcfd; }
.cms-repeat-card:focus-within { border-color: rgba(181,18,107,.28); background: #fff; box-shadow: 0 10px 28px rgba(47,20,38,.055); }

.cms-form-outline { min-width: 0; position: sticky; z-index: 14; top: calc(var(--cms-topbar) + 8px); display: flex; align-items: center; gap: 5px; padding: 7px; overflow-x: auto; overscroll-behavior-inline: contain; border: 1px solid #dfdce3; border-radius: 14px; background: rgba(255,255,255,.94); box-shadow: 0 12px 34px rgba(47,20,38,.08); scrollbar-width: none; backdrop-filter: blur(14px); }
.cms-form-outline::-webkit-scrollbar { display: none; }
.cms-form-outline > span { flex: 0 0 auto; padding: 0 8px; color: #817d86; font: 700 .61rem/1 var(--font-heading); letter-spacing: .1em; text-transform: uppercase; }
.cms-form-outline a { min-height: 38px; display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; padding: 8px 11px; border-radius: 9px; color: #69666e; font: 700 .7rem/1 var(--font-heading); transition: background var(--transition), color var(--transition); }
.cms-form-outline a b { color: #aaa6ad; font-size: .59rem; }
.cms-form-outline a:hover { background: #f7f2f5; color: var(--color-primary); }
.cms-form-outline a.is-active { background: #fff0f7; color: var(--color-primary); }
.cms-form-outline a.is-active b { color: var(--color-primary); }

.admin-savebar { min-height: 70px; bottom: 12px; padding: 12px 13px 12px 18px; border-color: #dfdce3; border-radius: 15px; box-shadow: 0 16px 46px rgba(47,20,38,.13); }
.admin-savebar span { display: inline-flex; align-items: center; gap: 8px; font-size: .76rem; }
.admin-savebar span::before { content: ''; width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: #20a875; box-shadow: 0 0 0 4px rgba(32,168,117,.09); }
.cms-form.is-dirty .admin-savebar span::before { background: var(--color-accent); box-shadow: 0 0 0 4px rgba(244,183,25,.12); }
.admin-savebar .button { min-height: 46px; }

/* CMS taxonomy manager */
.category-overview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(260px, .85fr); gap: 14px; margin-bottom: 18px; }
.category-overview > article, .category-overview > aside { min-height: 116px; display: flex; align-items: center; gap: 14px; padding: 18px; border: 1px solid #e4e1e7; border-radius: 16px; background: rgba(255,255,255,.88); box-shadow: 0 12px 32px rgba(58,28,48,.055); }
.category-overview article strong, .category-overview article p, .category-overview article small, .category-overview aside strong, .category-overview aside small { display: block; }
.category-overview article strong { color: #2e2830; font: 800 1.55rem/1 var(--font-heading); }
.category-overview article p { margin: 5px 0 2px; color: #4f4852; font-weight: 700; }
.category-overview article small, .category-overview aside small { color: #817985; font-size: .72rem; line-height: 1.45; }
.category-overview > aside { background: linear-gradient(135deg, #fff8dd, #fff); }
.category-overview > aside > .icon { width: 30px; height: 30px; flex: 0 0 auto; color: #9b6a00; }
.category-overview aside p { margin: 0; }
.category-manager-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 18px; }
.category-manager { min-width: 0; padding: 0; overflow: hidden; }
.category-manager__header { min-height: 116px; display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 13px; padding: 20px; border-bottom: 1px solid #ebe8ed; background: linear-gradient(135deg, #fff7fb, #fff 62%, #fff9e7); }
.category-manager__header > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 14px; background: #fbe6f1; color: var(--color-primary); }
.category-manager__header > span .icon { width: 23px; height: 23px; }
.category-manager__header h2 { margin: 2px 0 4px; font-size: 1.22rem; }
.category-manager__header small { display: block; color: #7c7480; font-size: .72rem; line-height: 1.45; }
.category-manager__header > b { min-width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; background: #fff; color: var(--color-primary); box-shadow: 0 8px 20px rgba(72,18,50,.08); font-size: .78rem; }
.category-create-form { padding: 20px; border-bottom: 1px solid #ebe8ed; background: #fcfbfc; }
.category-create-form__heading { display: flex; align-items: center; gap: 10px; margin-bottom: 15px; }
.category-create-form__heading > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: #fff3bf; color: #865c00; }
.category-create-form__heading .icon { width: 17px; height: 17px; }
.category-create-form__heading strong, .category-create-form__heading small { display: block; }
.category-create-form__heading strong { font-size: .82rem; }
.category-create-form__heading small { margin-top: 2px; color: #817985; font-size: .68rem; }
.category-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.category-form-grid .field { margin: 0; }
.category-form-grid label { font-size: .68rem; }
.category-form-grid input, .category-form-grid select, .category-form-grid textarea { min-height: 42px; padding: 9px 11px; border-radius: 10px; font-size: .78rem; }
.category-create-form > .button { width: 100%; justify-content: center; margin-top: 14px; }
.category-list { display: grid; gap: 12px; padding: 16px; background: #f7f6f8; }
.category-item { position: relative; padding: 15px; border: 1px solid #e3e0e5; border-radius: 14px; background: #fff; box-shadow: 0 8px 22px rgba(47,20,38,.04); }
.category-item > header { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto auto; align-items: center; gap: 9px; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid #efedf0; }
.category-item__number { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: #f3f0f4; color: #756c77; font: 800 .66rem/1 var(--font-heading); }
.category-item header strong, .category-item header small { display: block; }
.category-item header strong { overflow: hidden; color: #373039; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.category-item header small { margin-top: 3px; overflow: hidden; color: #918994; font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
.category-item header > b { color: #736a76; font-size: .65rem; white-space: nowrap; }
.category-item .status { white-space: nowrap; }
.category-item__actions { display: flex; justify-content: flex-end; margin-top: 12px; }
.category-item__actions .button { min-height: 42px; padding: 8px 13px; font-size: .72rem; }
.category-delete-form { position: absolute; left: 15px; bottom: 15px; }
.category-delete-form button { min-height: 42px; display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; border: 0; border-radius: 10px; background: #fff0ee; color: var(--color-danger); font: 700 .68rem/1 var(--font-heading); }
.category-delete-form button .icon { width: 15px; height: 15px; }
.category-delete-form button:disabled { background: #f3f1f3; color: #99929b; cursor: not-allowed; opacity: .72; }

@media (max-width: 1240px) {
  .admin-body { --cms-sidebar: 244px; }
  .admin-sidebar__brand { grid-template-columns: 100px 1fr; }
  .admin-sidebar__brand .brand--admin img { width: 98px; }
  .admin-topbar { grid-template-columns: minmax(150px, auto) minmax(220px, 1fr) auto; }
  .admin-global-save { display: none; }
  .admin-preview-button span { display: none; }
  .admin-preview-button { width: 42px; padding: 8px; }
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-panel { grid-template-columns: 220px minmax(0, 1fr); }
  .category-manager-grid { grid-template-columns: 1fr; }
}

@media (max-width: 1050px) {
  .form-panel { grid-template-columns: 1fr; gap: 18px; }
  .admin-health-grid { grid-template-columns: 1fr; }
  .admin-health-grid article { border-right: 0; border-bottom: 1px solid #eceaf0; }
  .admin-health-grid article:last-child { border-bottom: 0; }
}

@media (max-width: 900px) {
  .admin-body { --cms-sidebar: min(310px, 88vw); }
  .admin-sidebar { width: var(--cms-sidebar); transform: translateX(-105%); }
  .admin-sidebar.is-open { transform: translateX(0); }
  .admin-shell { margin-left: 0; }
  .admin-topbar { grid-template-columns: 46px minmax(150px, auto) minmax(220px, 1fr) auto; padding-inline: 14px; }
  .admin-menu { display: grid; margin: 0; border-radius: 12px; }
  .admin-topbar__context { display: flex; }
  .admin-command { display: block; }
  .admin-topbar__actions { display: flex; }
  .admin-dashboard-grid { grid-template-columns: 1fr; }
  .admin-welcome { grid-template-columns: 1fr; }
  .admin-welcome > aside { max-width: 420px; }
  .admin-scrim { background: rgba(27,5,18,.62); backdrop-filter: blur(3px); }
  .category-overview { grid-template-columns: 1fr 1fr; }
  .category-overview > aside { grid-column: 1 / -1; }
}

@media (max-width: 680px) {
  .admin-body { --cms-topbar: 126px; padding-bottom: 0; }
  .admin-topbar { min-height: var(--cms-topbar); grid-template-columns: 44px minmax(0, 1fr) auto; align-content: center; gap: 8px; padding: 9px 12px; }
  .admin-topbar__context { display: flex !important; }
  .admin-topbar__context > span { display: none; }
  .admin-topbar__context p { font-size: .52rem; }
  .admin-topbar__context strong { font-size: .76rem; }
  .admin-command { grid-column: 1 / -1; grid-row: 2; display: block !important; }
  .admin-command > label { min-height: 42px; }
  .admin-command kbd { display: none; }
  .admin-topbar__actions { display: flex !important; }
  .admin-preview-button { display: none; }
  .admin-create-menu > summary { width: 44px; min-height: 44px; padding: 8px; }
  .admin-create-menu > summary span { display: none; }
  .admin-create-menu > div { width: min(280px, calc(100vw - 24px)); right: 0; }
  .admin-content { padding: 20px 12px 62px; }
  .admin-welcome { min-height: 0; gap: 20px; padding: 24px 20px; border-radius: 18px; }
  .admin-welcome h1 { font-size: clamp(1.8rem, 9.2vw, 2.6rem); }
  .admin-welcome > aside { min-height: 104px; padding: 15px; }
  .admin-welcome__actions { display: grid; grid-template-columns: 1fr; }
  .admin-welcome__actions .button { width: 100%; }
  .stats-grid { grid-template-columns: 1fr; }
  .stats-grid > a { padding: 15px; }
  .admin-page-heading { gap: 14px; margin-bottom: 19px; }
  .admin-page-heading h1 { font-size: 1.8rem; }
  .admin-page-heading--actions .button, .admin-page-actions { width: 100%; }
  .admin-panel, .admin-table-panel { border-radius: 15px; }
  .admin-panel__heading { min-height: 0; padding: 17px 15px; }
  .form-panel { padding: 18px 15px; }
  .cms-form-outline { top: calc(var(--cms-topbar) + 6px); margin-inline: -2px; border-radius: 12px; }
  .cms-form-outline > span { display: none; }
  .admin-savebar { bottom: calc(8px + env(safe-area-inset-bottom)); }
  .admin-savebar span { justify-content: center; }
  .table-toolbar { align-items: flex-start; flex-direction: column; gap: 2px; }
  .admin-table-filter { width: 100%; min-width: 0; margin-top: 8px; margin-left: 0; }
  .category-overview { grid-template-columns: 1fr; }
  .category-overview > aside { grid-column: auto; }
  .category-manager__header { grid-template-columns: 44px minmax(0, 1fr) auto; padding: 17px 14px; }
  .category-manager__header > span { width: 44px; height: 44px; }
  .category-create-form { padding: 16px 14px; }
  .category-list { padding: 12px; }
  .category-form-grid { grid-template-columns: 1fr; }
  .category-item { padding: 14px; }
  .category-item > header { grid-template-columns: 34px minmax(0, 1fr) auto; }
  .category-item header > b { grid-column: 2; }
  .category-item .status { grid-column: 3; grid-row: 1 / 3; }
  .category-delete-form { position: static; margin-top: 10px; }
  .category-delete-form button { width: 100%; justify-content: center; }
  .category-item__actions .button { width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .admin-health-progress > i, .stats-grid > a, .admin-site-state > a { transition: none !important; }
}

/* Footer responsive correction: keep contact details readable at every width. */
.footer-contact-card__copy strong {
  overflow-wrap: break-word;
  word-break: normal;
}

.footer-contact-card--mail .footer-contact-card__copy strong {
  white-space: nowrap;
}

@media (min-width: 1181px) {
  .site-header__inner {
    width: min(calc(100% - 32px), 1360px);
    gap: 18px;
  }

  .primary-nav { gap: clamp(13px, 1.25vw, 18px); }
  .primary-nav a, .primary-nav summary { font-size: .86rem; }
  .header-cta { min-height: 44px; padding-inline: 18px; font-size: .84rem; }

  .footer-grid {
    grid-template-columns: minmax(255px, 1.05fr) minmax(220px, .78fr) minmax(310px, 1.15fr) minmax(295px, 1.05fr);
    gap: clamp(20px, 2vw, 28px);
  }

  .footer-contact-card__copy strong { font-size: .8rem; }
  .footer-contact-card--mail .footer-contact-card__copy strong { font-size: .73rem; }
  .footer-consult__button-copy strong { font-size: .79rem; }
}

@media (min-width: 1181px) and (max-width: 1280px) {
  .header-cta { display: none; }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .footer-grid {
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
    gap: 30px clamp(24px, 4vw, 44px);
  }

  .footer-consult {
    grid-column: auto;
    width: 100%;
    max-width: none;
  }

  .footer-brand__connect { max-width: 420px; }
}

@media (max-width: 900px) {
  .footer-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
  }

  .footer-brand,
  .footer-nav,
  .footer-contact,
  .footer-consult {
    width: 100%;
    max-width: none;
    grid-column: auto;
  }

  .footer-brand__connect { max-width: none; }
}

@media (max-width: 680px) {
  .site-footer { padding-bottom: calc(86px + env(safe-area-inset-bottom)); }
  .footer-grid { gap: 26px; }
  .footer-links { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3px 16px; }
  .footer-links a { min-height: 44px; font-size: .84rem; }
  .footer-contact, .footer-consult { padding: 15px; border-radius: 19px; }
  .footer-contact-card { padding-right: 10px; }
  .footer-contact-card__copy strong { font-size: .77rem; }
  .footer-contact-card--mail .footer-contact-card__copy strong { font-size: .7rem; }
  .footer-hours__copy { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .footer-hours__copy small { grid-column: auto; }
  .footer-hours__copy b { margin-top: 2px; white-space: normal; }
  .footer-bottom { align-items: stretch; }
  .footer-back-top { align-self: flex-end; }
}

@media (max-width: 360px) {
  .footer-links { grid-template-columns: 1fr; }
  .footer-contact-card--mail .footer-contact-card__copy strong {
    white-space: normal;
    overflow-wrap: anywhere;
  }
}

/* Keep the copyright optically centered independently of the back-to-top action. */
.footer-bottom {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
}

.footer-bottom__copyright {
  grid-column: 2;
  justify-self: center;
  justify-content: center;
  max-width: 100%;
  text-align: center;
}

.footer-bottom__copyright > span:last-child { justify-content: center; }

.footer-back-top {
  grid-column: 3;
  justify-self: end;
}

@media (max-width: 680px) {
  .footer-bottom {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    gap: 8px;
  }

  .footer-bottom__copyright,
  .footer-back-top {
    grid-column: 1;
    justify-self: center;
  }

  .footer-back-top { align-self: auto; }
}

/* Footer discovery route */
.footer-nav {
  min-width: 0;
  padding: 18px 10px 14px;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 22px;
  background: linear-gradient(145deg, rgba(255,255,255,.09), rgba(255,255,255,.025));
  box-shadow: 0 20px 48px rgba(37,0,22,.12), inset 0 1px 0 rgba(255,255,255,.07);
}

.footer-nav::before {
  content: '';
  width: 116px;
  height: 116px;
  position: absolute;
  right: -72px;
  top: -72px;
  border: 1px dashed rgba(255,225,123,.22);
  border-radius: 50%;
  pointer-events: none;
}

.footer-nav__heading {
  min-height: 50px;
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.footer-nav__heading .footer-title { margin: 0 0 7px; }
.footer-nav__heading small { display: block; color: rgba(255,255,255,.58); font: 600 .62rem/1.45 var(--font-heading); }
.footer-nav__heading > span {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid rgba(255,225,123,.28);
  border-radius: 50%;
  color: #ffe17b;
  background: rgba(255,225,123,.08);
}
.footer-nav__heading > span .icon { width: 16px; height: 16px; transform: rotate(16deg); }

.footer-nav .footer-links {
  counter-reset: footer-route-stop;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 5px;
  position: relative;
  z-index: 1;
}

.footer-nav .footer-links::before {
  content: '';
  width: 1px;
  position: absolute;
  left: 14px;
  top: 23px;
  bottom: 23px;
  z-index: -1;
  border-left: 1px dashed rgba(255,225,123,.30);
  pointer-events: none;
}

.footer-nav .footer-links li {
  min-width: 0;
  position: relative;
  counter-increment: footer-route-stop;
}

.footer-nav .footer-links a {
  min-height: 46px;
  display: grid;
  grid-template-columns: 29px minmax(0, 1fr) 12px;
  align-items: center;
  gap: 6px;
  padding: 4px 5px 4px 0;
  border: 1px solid transparent;
  border-radius: 12px;
  color: rgba(255,255,255,.76);
  background: transparent;
  font: 650 .73rem/1.35 var(--font-heading);
  cursor: pointer;
  touch-action: manipulation;
  transition: color var(--transition), border-color var(--transition), background var(--transition), box-shadow var(--transition), transform var(--transition);
}

.footer-nav .footer-links a::before {
  content: counter(footer-route-stop, decimal-leading-zero);
  width: 29px;
  height: 29px;
  display: grid;
  place-items: center;
  position: relative;
  z-index: 1;
  border: 1px solid rgba(255,225,123,.28);
  border-radius: 50%;
  color: #ffe17b;
  background: linear-gradient(145deg, rgba(255,225,123,.14), rgba(255,255,255,.055));
  box-shadow: 0 0 0 4px rgba(255,225,123,.035);
  font: 750 .56rem/1 var(--font-heading);
  letter-spacing: .025em;
  transition: color var(--transition), border-color var(--transition), background var(--transition), box-shadow var(--transition), transform var(--transition);
}

.footer-nav .footer-links a > span { min-width: 0; }
.footer-nav .footer-links a .icon {
  width: 12px;
  height: 12px;
  color: #ffe17b;
  opacity: .48;
  transform: translateX(-2px);
  transition: opacity var(--transition), transform var(--transition);
}

.footer-nav .footer-links a:hover,
.footer-nav .footer-links a:focus-visible {
  color: #fff;
  border-color: rgba(255,225,123,.28);
  background: linear-gradient(90deg, rgba(255,225,123,.10), rgba(255,255,255,.075));
  box-shadow: 0 10px 24px rgba(28,0,17,.12);
  transform: translateX(3px);
}

.footer-nav .footer-links a:hover::before,
.footer-nav .footer-links a:focus-visible::before {
  border-color: #ffe17b;
  color: #6f1643;
  background: linear-gradient(135deg, #fff6c7, #ffe17b);
  box-shadow: 0 7px 17px rgba(17,0,10,.18);
  transform: rotate(-6deg) scale(1.04);
}

.footer-nav .footer-links a:hover .icon,
.footer-nav .footer-links a:focus-visible .icon { opacity: 1; transform: translateX(1px); }

@media (min-width: 681px) and (max-width: 900px) {
  .footer-nav { width: min(100%, 480px); max-width: 480px; }
}

@media (max-width: 680px) {
  .footer-nav { padding: 17px 14px 14px; border-radius: 19px; }
  .footer-nav .footer-links { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .footer-nav .footer-links a { min-height: 48px; font-size: .83rem; }
}

/* Footer brand journey card */
.footer-brand {
  min-width: 0;
  padding: 18px 16px 16px;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 22px;
  background: radial-gradient(circle at 12% 5%, rgba(220,52,149,.17), transparent 35%), linear-gradient(145deg, rgba(255,255,255,.09), rgba(255,255,255,.025));
  box-shadow: 0 20px 48px rgba(37,0,22,.12), inset 0 1px 0 rgba(255,255,255,.07);
  transition: border-color var(--transition), box-shadow var(--transition);
}

.footer-brand::before {
  content: '';
  width: 150px;
  height: 150px;
  position: absolute;
  right: -96px;
  top: -96px;
  z-index: -1;
  border: 1px dashed rgba(255,225,123,.24);
  border-radius: 50%;
  pointer-events: none;
}

.footer-brand::after {
  content: '';
  width: 100px;
  height: 100px;
  position: absolute;
  left: -70px;
  bottom: -67px;
  z-index: -1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(8,127,146,.28), transparent 68%);
  pointer-events: none;
}

.footer-brand:hover,
.footer-brand:focus-within {
  border-color: rgba(255,225,123,.30);
  box-shadow: 0 25px 58px rgba(37,0,22,.17), inset 0 1px 0 rgba(255,255,255,.09);
}

.footer-brand__identity {
  min-height: 76px;
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.footer-brand__identity::after {
  content: '';
  width: 74px;
  height: 74px;
  position: absolute;
  right: -5px;
  top: 0;
  z-index: -1;
  border: 1px dashed rgba(255,225,123,.17);
  border-radius: 50%;
  transform: rotate(-14deg);
}

.footer-brand .brand--footer { min-height: 68px; position: relative; z-index: 1; }
.footer-brand .brand--footer img { width: 168px; filter: brightness(1.08) saturate(1.1) drop-shadow(0 8px 17px rgba(24,0,14,.18)); }
.footer-brand__orbit {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid rgba(255,225,123,.29);
  border-radius: 50%;
  color: #ffe17b;
  background: rgba(255,225,123,.08);
  box-shadow: inset 0 0 0 5px rgba(255,225,123,.03);
  transition: color var(--transition), background var(--transition), transform var(--transition);
}
.footer-brand__orbit .icon { width: 17px; height: 17px; transform: rotate(18deg); }
.footer-brand:hover .footer-brand__orbit,
.footer-brand:focus-within .footer-brand__orbit { color: #6f1643; background: linear-gradient(135deg, #fff6c7, #ffe17b); transform: rotate(-7deg); }

.footer-brand .footer-brand__eyebrow {
  margin: 12px 0 7px !important;
  position: relative;
  z-index: 1;
  color: #ffe17b;
  font-size: .66rem;
  letter-spacing: .125em;
}

.footer-brand .footer-brand__intro {
  max-width: none;
  margin: 0 !important;
  position: relative;
  z-index: 1;
  color: rgba(255,255,255,.76);
  font-size: .86rem;
  line-height: 1.55;
}

.footer-brand__route {
  height: 25px;
  position: relative;
  z-index: 1;
  margin: 5px 0 9px;
  overflow: hidden;
}
.footer-brand__route i { position: absolute; right: 6px; left: 6px; top: 13px; border-top: 1px dashed rgba(255,225,123,.32); }
.footer-brand__route b {
  width: 7px;
  height: 7px;
  position: absolute;
  right: 5px;
  top: 10px;
  border: 2px solid #ffe17b;
  border-radius: 50%;
  background: #6f1643;
  box-shadow: 0 0 0 4px rgba(255,225,123,.07);
}
.footer-brand__route > span {
  width: 22px;
  height: 22px;
  position: absolute;
  left: 9px;
  top: 1px;
  display: grid;
  place-items: center;
  color: #ffe17b;
  filter: drop-shadow(0 4px 7px rgba(16,0,10,.22));
  transition: transform 420ms cubic-bezier(.2,.8,.2,1);
}
.footer-brand__route .icon { width: 14px; height: 14px; transform: rotate(12deg); }
.footer-brand:hover .footer-brand__route > span,
.footer-brand:focus-within .footer-brand__route > span { transform: translateX(145px); }

.footer-brand .footer-brand__connect { max-width: none; position: relative; z-index: 1; gap: 9px; }
.footer-brand .footer-hotline,
.footer-brand .footer-social {
  min-height: 66px;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border-color: rgba(255,255,255,.16);
  border-radius: 15px;
  background: linear-gradient(135deg, rgba(255,255,255,.085), rgba(255,255,255,.04));
}
.footer-brand .footer-hotline::after,
.footer-brand .footer-social::after {
  content: '';
  width: 26px;
  height: 130%;
  position: absolute;
  left: -48px;
  top: -15%;
  z-index: -1;
  background: rgba(255,255,255,.14);
  filter: blur(2px);
  transform: skewX(-18deg);
  transition: left 420ms cubic-bezier(.2,.8,.2,1);
  pointer-events: none;
}
.footer-brand .footer-hotline:hover::after,
.footer-brand .footer-hotline:focus-visible::after,
.footer-brand .footer-social:hover::after,
.footer-brand .footer-social:focus-visible::after { left: calc(100% + 18px); }
.footer-brand .footer-hotline > .icon {
  width: 40px;
  height: 40px;
  padding: 9px;
  border: 1px solid rgba(255,225,123,.25);
  border-radius: 13px;
  color: #ffe17b;
  background: linear-gradient(145deg, rgba(255,225,123,.14), rgba(255,255,255,.045));
}
.footer-brand .footer-hotline > span,
.footer-brand .footer-social > span:nth-child(2) { min-width: 0; }
.footer-brand .footer-hotline small,
.footer-brand .footer-social small { font-size: .65rem; }
.footer-brand .footer-hotline strong,
.footer-brand .footer-social strong { font-size: .9rem; }

@media (max-width: 680px) {
  .footer-brand { padding: 16px 14px 14px; border-radius: 19px; }
  .footer-brand .brand--footer img { width: 174px; }
  .footer-brand .footer-brand__eyebrow { font-size: .69rem; }
  .footer-brand .footer-brand__intro { font-size: .9rem; }
  .footer-brand .footer-hotline,
  .footer-brand .footer-social { min-height: 68px; }
}

/* Final cascade safeguards for the shared polish layer. */
.customer-showcase-card__link,
.cms-form-outline a,
.category-item__actions .button,
.category-delete-form button { min-height: 44px; }

.admin-nav a { min-height: 46px; }
.admin-sidebar__bottom > a,
.admin-sidebar__bottom button { min-height: 44px; }
.admin-site-state { grid-template-columns: 9px minmax(0, 1fr) 44px; }
.admin-site-state > a { width: 44px; height: 44px; }
.admin-preview-button,
.admin-create-menu > summary { min-height: 44px; }
.category-form-grid input,
.category-form-grid select,
.category-form-grid textarea { min-height: 44px; }
.admin-health-grid article > a { min-height: 44px; }

@media (min-width: 901px) and (max-width: 1320px) {
  .site-header__inner { min-height: 76px; gap: 16px; }
  .primary-nav { gap: 2px; }
  .header-cta { display: none; }
}
