/*
 * Sắc Việt Travel — International travel interface
 * Loaded after app.css so the public site and CMS share one final visual system.
 */
:root {
  --color-text: #172333;
  --color-text-soft: #4f5966;
  --color-border: #e6dde0;
  --color-surface: #ffffff;
  --color-muted: #f7f2ed;
  --color-primary-strong: #6e0d42;
  --shadow-sm: 0 8px 24px rgba(35, 26, 31, .07);
  --shadow-md: 0 18px 48px rgba(35, 26, 31, .12);
  --shadow-lg: 0 34px 80px rgba(35, 26, 31, .18);
  --radius-sm: 12px;
  --radius-md: 20px;
  --radius-lg: 28px;
  --container: 1320px;
  --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;
  --transition: 220ms cubic-bezier(.2, .75, .25, 1);
}

html { scroll-padding-top: 92px; }
body { background: #fbfaf8; color: var(--color-text); letter-spacing: 0; }

.site-page h1,
.site-page h2 {
  color: var(--color-text);
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -.045em;
  line-height: 1.02;
}

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

.site-page p { line-height: 1.72; }
.site-page :focus-visible { outline-color: var(--color-primary); outline-offset: 4px; }

.topbar { min-height: 36px; background: #2a1022; color: rgba(255, 255, 255, .86); }
.topbar__inner,
.topbar__links a { min-height: 36px; }
.topbar__links .icon { color: #ffd76a; }

.site-header {
  border-bottom: 1px solid rgba(23, 35, 51, .1);
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 8px 28px rgba(27, 21, 25, .07);
  backdrop-filter: blur(12px);
}

.site-header__inner { width: min(calc(100% - 48px), 1400px); min-height: 78px; gap: clamp(14px, 1.5vw, 24px); }
.brand img { width: 156px; height: 64px; }
.primary-nav { gap: clamp(10px, 1.18vw, 18px); }
.primary-nav a,
.primary-nav summary { min-height: 44px; color: #3d3840; font-size: .82rem; font-weight: 700; }

.primary-nav > a::after,
.primary-nav > details > summary::after { bottom: 5px; height: 2px; border-radius: 999px; background: var(--color-primary); }

.primary-nav > a:hover,
.primary-nav > a.is-active,
.primary-nav summary:hover,
.primary-nav summary.is-active { color: var(--color-primary-strong); }

.primary-nav__submenu { border-color: rgba(23, 35, 51, .11); border-radius: 16px; background: rgba(255, 255, 255, .99); box-shadow: 0 18px 48px rgba(23, 35, 51, .15); }
.primary-nav__submenu a:hover,
.primary-nav__submenu a:focus-visible,
.primary-nav__submenu a.is-active { background: #f9edf3; color: var(--color-primary-strong); }

.header-cta { min-height: 44px; padding-inline: 17px; border-color: var(--color-primary); background: var(--color-primary); color: #fff; box-shadow: 0 8px 18px rgba(181, 18, 107, .2); }
.header-cta:hover { border-color: var(--color-primary-strong); background: var(--color-primary-strong); }

.button { min-height: 48px; border-radius: 12px; box-shadow: none; font-weight: 800; }
.button:hover { box-shadow: 0 10px 20px rgba(116, 79, 0, .17); transform: translateY(-2px); }
.button:active { transform: translateY(0) scale(.985); }
.button--ghost { border-color: rgba(255, 255, 255, .78); background: transparent; }

.eyebrow { color: var(--color-primary); font-size: .7rem; font-weight: 800; letter-spacing: .13em; }
.section { padding-block: clamp(72px, 8vw, 116px); }
.section-heading { margin-bottom: clamp(28px, 3.6vw, 46px); }
.section-heading h2,
.featured-tours-heading h2,
.journey-heading h2,
.partners-heading h2,
.catalog-heading h1 { text-wrap: balance; }

/* The photography remains visible. Contrast lives in a purpose-built copy panel. */
.home-journey-rail,
.hero__stage-beam,
.hero__event-orbit,
.hero__sun,
.hero__route,
.hero__plane,
.hero__compass,
.hero__waypoint { display: none !important; }

.hero { min-height: 760px; align-items: stretch; background: #2a1022; }
.hero__slider { background: #2a1022; }
.hero__slide img { transform: scale(1.045); }
.hero__content { grid-template-columns: minmax(0, 1.08fr) minmax(330px, .61fr); align-items: center; gap: clamp(36px, 6vw, 86px); padding-top: 70px; padding-bottom: 126px; }
.hero__copy { max-width: 720px; }

.hero-copy-frame { max-width: 700px; padding: 38px 42px 34px; border: 1px solid rgba(255, 255, 255, .22); border-radius: 24px; background: rgba(37, 8, 28, .83); box-shadow: 0 24px 64px rgba(20, 2, 13, .28); backdrop-filter: blur(5px); text-shadow: none; }
.hero-copy-frame::before,
.hero-copy-frame__corner,
.hero-title-number,
.hero-title-stamp,
.hero-copy-code,
.hero-copy-coordinate,
.hero-title-layout h1 > span::after,
.hero-promise-route__line { display: none; }

.hero-copy-kicker { justify-content: flex-start; margin-bottom: 17px; }
.hero .eyebrow--light { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: #ffe38c; }
.hero-title-layout h1 { display: block; max-width: 620px; margin: 0 0 20px; padding: 0; color: #fff; font-size: clamp(3.35rem, 5.25vw, 5.75rem); line-height: .98; }
.hero-title-layout h1 > span,
.hero-title-layout h1 > em { width: auto; }
.hero h1 em { color: #ffe38c; font-weight: 600; text-shadow: none; }
.hero__lead { max-width: 570px; margin-bottom: 27px; color: rgba(255, 255, 255, .9); font-size: 1.04rem; line-height: 1.7; }
.hero-promise-route { max-width: 610px; margin-bottom: 24px; }
.hero .hero__assurance { gap: 8px; }
.hero .hero__assurance li { min-height: 62px; grid-template-columns: 34px minmax(0, 1fr); gap: 10px; padding: 10px 12px; border-color: rgba(255, 255, 255, .2); border-radius: 12px; background: rgba(255, 255, 255, .1); box-shadow: none; backdrop-filter: none; }
.hero .hero__assurance li:hover { border-color: rgba(255, 227, 140, .78); background: rgba(255, 255, 255, .16); transform: translateY(-2px); }
.hero-assurance__number { display: none; }
.hero-assurance__icon { width: 34px; height: 34px; border-radius: 10px; box-shadow: none; }
.hero__assurance strong { font-size: .72rem; line-height: 1.4; }
.hero .hero__actions { gap: 10px; }
.hero-ticket-cta,
.hero-event-cta { min-height: 58px; border-radius: 12px; padding-block: 7px; }

.trip-search { padding: 28px; border: 0; border-radius: 20px; background: rgba(255, 255, 255, .98); box-shadow: 0 24px 60px rgba(30, 4, 20, .24); backdrop-filter: none; }
.trip-search__heading { margin-bottom: 18px; }
.trip-search__heading > span { width: 42px; height: 42px; border-radius: 12px; background: #f9edf3; color: var(--color-primary); }
.trip-search__heading strong { color: #27212a; font-size: 1rem; }
.trip-search__heading small { color: #5a606a; line-height: 1.45; }
.trip-search label { color: #34303a; font-size: .78rem; font-weight: 800; }
.trip-search input,
.trip-search select { min-height: 50px; border-color: #d7d4d7; border-radius: 10px; color: #24252a; background: #fff; }
.trip-search input:focus,
.trip-search select:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(181, 18, 107, .12); }
.trip-search .button { min-height: 52px; margin-top: 18px; }

.hero-slider-controls { bottom: 118px; }
.hero-slider-story,
.hero-slider-actions { min-height: 52px; border-color: rgba(255, 255, 255, .24); border-radius: 12px; background: rgba(34, 8, 25, .82); box-shadow: 0 10px 24px rgba(20, 2, 13, .18); backdrop-filter: none; }
.hero-slider-story { min-width: 286px; }
.hero-slider-arrow { width: 40px; height: 40px; border-radius: 9px; }
.hero-slider-pause { display: none !important; }

.trust-strip { overflow: hidden; border: 1px solid rgba(23, 35, 51, .12); border-bottom: 0; border-radius: 18px 18px 0 0; background: rgba(255, 255, 255, .98); box-shadow: 0 -14px 38px rgba(28, 16, 23, .17); backdrop-filter: none; }
.trust-strip::before { height: 3px; background: var(--color-primary); }
.trust-strip div { min-height: 88px; padding: 14px 20px; }
.trust-strip__item { grid-template-columns: 35px minmax(0, 1fr); column-gap: 10px; }
.trust-strip__icon { width: 35px; height: 35px; border-radius: 10px; background: #f9edf3; color: var(--color-primary); box-shadow: none; }
.trust-strip__item strong { color: #24212a; font-size: 1.48rem; }
.trust-strip__label { color: #5a606a; font-size: .7rem !important; }
.experience-ticker { border-block: 1px solid #e7dfe1; background: #fff; }
.experience-ticker span { color: #4a4047; }

/* Editorial inventory: strong images, neutral surfaces, one obvious action. */
.featured-tours-section,
.tours-catalog,
.customer-index-section { background: #fbfaf8; }
.tour-grid { gap: 22px; }
.tour-grid--featured { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tour-grid--featured .tour-card:first-child { grid-column: span 2; }
.tour-grid--featured .tour-card:first-child .tour-card__image { aspect-ratio: 1.75 / 1; }

.tour-card,
.news-card,
.customer-card,
.customer-showcase-card { border: 1px solid #e6e0e2; border-radius: 16px; background: #fff; box-shadow: 0 7px 22px rgba(30, 24, 27, .06); }
.tour-card::before { height: 3px; background: var(--color-primary); }
.tour-card:hover,
.tour-card:focus-within { border-color: rgba(181, 18, 107, .34); box-shadow: 0 18px 42px rgba(30, 24, 27, .13); transform: translateY(-4px); }
.tour-card__body { padding: 21px; }
.tour-card__tag { border-color: rgba(255, 255, 255, .9); color: var(--color-primary-strong); box-shadow: 0 4px 14px rgba(30, 24, 27, .1); }
.tour-card__meta,
.tour-card__body > p,
.tour-card__departure { color: #59606b; }
.tour-card h3 { color: #22232a; font-size: 1.14rem; }
.tour-card__footer strong { color: var(--color-primary-strong); }

.home-services-stage { background: #f4f0ec; }
.home-services-stage::before,
.home-services-stage::after { display: none; }
.home-services-stage .service-grid { gap: 18px; }
.home-services-stage .service-card { min-height: 278px; border-color: #ded8da; border-radius: 16px; background: #fff; box-shadow: none; }
.home-services-stage .service-card::after { inset-inline: 20px; background: var(--color-primary); }
.home-services-stage .service-card--feature { background: #2a1022; color: #fff; box-shadow: 0 18px 40px rgba(42, 16, 34, .2); }
.home-services-stage .service-card--feature::after { background: #f4b719; }
.service-card__number { color: rgba(42, 16, 34, .06); }
.service-card--feature .service-card__number { color: rgba(255, 255, 255, .1); }
.service-card h3 { color: inherit; }
.service-card p { color: #545b66; }
.service-card--feature p { color: rgba(255, 255, 255, .8) !important; }

.journey-process { background: #2a1022; }
.journey-process::before,
.journey-process::after { opacity: .42; }
.journey-step__card { border-radius: 16px; }

.partners-section { background: #fff; }
.partners-section::before,
.partners-section::after { display: none; }
.partners-shell { padding: clamp(28px, 5vw, 58px); border-color: #e6e0e2; border-radius: 22px; background: #fff; box-shadow: 0 14px 42px rgba(30, 24, 27, .06); }
.partners-heading { padding-bottom: 38px; }
.partner-metrics { border-color: #e9e4e5; }
.partner-metrics strong { color: var(--color-primary-strong); }
.partner-logo-card { min-height: 126px; border-color: #e5e0e2; border-radius: 14px; box-shadow: none; }
.partner-logo-card:hover { border-color: rgba(181, 18, 107, .38); box-shadow: 0 12px 28px rgba(30, 24, 27, .1); }
.partner-segment { min-height: 290px; border-color: #e6e0e2; border-radius: 16px; box-shadow: none; }
.partner-promise { border-radius: 18px; background: #2a1022; box-shadow: none; }

.customer-showcase,
.testimonial-section { background: #f7f4f0; }
.customer-showcase-card:hover,
.customer-showcase-card:focus-within,
.news-card:hover,
.news-card:focus-within { border-color: rgba(181, 18, 107, .32); box-shadow: 0 18px 40px rgba(30, 24, 27, .11); }
.testimonial-card { border: 1px solid #e6e0e2; border-radius: 18px; box-shadow: 0 14px 36px rgba(30, 24, 27, .08); }
.testimonial-card blockquote { color: #2e1930; }

.cta-band { min-height: 470px; }
.cta-band__overlay { background: linear-gradient(90deg, rgba(42, 16, 34, .93), rgba(42, 16, 34, .72) 52%, rgba(42, 16, 34, .16)); }
.cta-band__effects { opacity: .56; }

/* Catalog, journal, detail and customer-story pages share the global travel standard. */
.page-hero,
.news-hero,
.customer-hero { background-color: #2a1022; background-image: linear-gradient(90deg, rgba(42, 16, 34, .95), rgba(42, 16, 34, .73) 54%, rgba(42, 16, 34, .28)); }
.page-hero { background-image: linear-gradient(90deg, rgba(42, 16, 34, .95), rgba(42, 16, 34, .73) 54%, rgba(42, 16, 34, .28)), url('../images/tour-da-nang.jpg'); background-position: center; background-size: cover; }
.page-hero::before,
.page-hero::after,
.news-hero::before,
.news-hero::after,
.customer-hero__orb { display: none; }
.page-hero { min-height: 390px; }
.page-hero__content { padding-block: 72px; }
.page-hero h1,
.news-hero h1,
.customer-hero h1,
.tour-detail-hero h1,
.customer-detail-hero h1 { color: #fff; }
.page-hero__content > p:last-child,
.news-hero__inner > div:first-child > p:last-child,
.customer-hero__inner > div:first-child > p:last-child { color: rgba(255, 255, 255, .88); }
.news-hero,
.customer-hero { padding-block: clamp(74px, 8vw, 112px); }
.news-hero__route,
.customer-hero__stamp { border-color: rgba(255, 255, 255, .28); border-radius: 16px; background: rgba(255, 255, 255, .1); box-shadow: none; backdrop-filter: none; }
.tour-detail-hero__overlay,
.customer-detail-hero__overlay { background: linear-gradient(0deg, rgba(42, 16, 34, .94), rgba(42, 16, 34, .2) 75%); }
.tour-detail-hero::after { display: none; }
.tour-facts { border-block-color: #e6e0e2; background: #fff; }
.detail-panel,
.customer-story-aside,
.news-article-aside { border-color: #e6e0e2; border-radius: 16px; box-shadow: 0 12px 30px rgba(30, 24, 27, .06); }
.filter-bar,
.category-filter { border-color: #e2dcde; background: #fff; box-shadow: 0 8px 24px rgba(30, 24, 27, .05); }
.filter-bar input,
.filter-bar select,
.category-filter a { border-radius: 10px; }
.news-featured,
.customer-featured { border-color: #e6e0e2; border-radius: 18px; box-shadow: 0 14px 34px rgba(30, 24, 27, .07); }
.news-pagination__numbers a,
.news-pagination__direction { min-height: 44px; border-radius: 10px; }

/* CMS: reduced decoration and stronger field/card contrast for daily operations. */
.admin-body { background: #f6f6f5; color: #25232a; }
.admin-sidebar { background: #2a1022; }
.admin-topbar { border-bottom-color: #e2dee1; background: rgba(255, 255, 255, .96); box-shadow: 0 5px 20px rgba(30, 24, 27, .05); backdrop-filter: blur(10px); }
.admin-panel,
.admin-table-panel,
.stats-grid article { border-color: #e3dfe1; border-radius: 14px; box-shadow: 0 7px 22px rgba(30, 24, 27, .05); }
.admin-panel__heading { border-bottom-color: #e9e5e7; }
.admin-body input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),
.admin-body select,
.admin-body textarea { border-color: #d8d3d6; background: #fff; }
.admin-body input:focus,
.admin-body select:focus,
.admin-body textarea:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(181, 18, 107, .12); }

@media (max-width: 1320px) {
  .header-cta { display: none; }
  .site-header__inner { width: min(calc(100% - 32px), 1320px); }
  .primary-nav { gap: clamp(5px, .9vw, 12px); }
  .primary-nav a,
  .primary-nav summary { font-size: .78rem; }
}

@media (max-width: 900px) {
  .site-header__inner { min-height: 72px; }
  .brand img { width: 136px; height: 57px; }
  .hero { min-height: 0; }
  .hero__content { grid-template-columns: 1fr; gap: 22px; padding-top: 54px; padding-bottom: 96px; }
  .hero__copy { max-width: 700px; }
  .trip-search { max-width: 610px; }
  .tour-grid--featured .tour-card:first-child { grid-column: span 2; }
  .news-hero__inner,
  .customer-hero__inner { grid-template-columns: minmax(0, 1fr) 190px; }
}

@media (max-width: 680px) {
  html { scroll-padding-top: 76px; }
  .container { width: min(calc(100% - 24px), var(--container)); }
  .topbar__links { display: none; }
  .topbar__message { font-size: .68rem; }
  .site-header__inner { width: min(calc(100% - 24px), var(--container)); min-height: 68px; }
  .brand img { width: 126px; height: 52px; }
  .nav-toggle { width: 44px; height: 44px; }
  .hero__content { gap: 18px; padding-top: 34px; padding-bottom: 28px; }
  .hero-copy-frame { padding: 26px 20px 22px; border-radius: 18px; background: rgba(37, 8, 28, .86); }
  .hero-title-layout h1 { margin-bottom: 15px; font-size: clamp(2.65rem, 12vw, 3.55rem); }
  .hero__lead { margin-bottom: 18px; font-size: .95rem; line-height: 1.63; }
  .hero .hero__assurance { grid-template-columns: 1fr; gap: 7px; }
  .hero .hero__assurance li { min-height: 50px; padding: 8px 10px; }
  .hero__assurance strong { font-size: .7rem; }
  .hero .hero__actions { display: grid; grid-template-columns: 1fr; gap: 8px; }
  .hero-ticket-cta,
  .hero-event-cta { width: 100%; min-height: 56px; }
  .trip-search { padding: 20px 16px; border-radius: 16px; }
  .trip-search .button { min-height: 50px; }
  .hero-slider-controls { position: relative; bottom: auto; padding-top: 16px; }
  .hero-slider-story { min-width: 0; }
  .trust-strip { position: relative; left: auto; bottom: auto; width: calc(100% - 24px); margin: 0 auto; transform: none; border-radius: 16px; }
  .trust-strip div { min-height: 76px; padding: 11px 12px; }
  .trust-strip__item { grid-template-columns: 31px minmax(0, 1fr); column-gap: 8px; }
  .trust-strip__icon { width: 31px; height: 31px; border-radius: 9px; }
  .trust-strip__item strong { font-size: 1.2rem; }
  .trust-strip__label { font-size: .65rem !important; line-height: 1.25; }
  .section { padding-block: 64px; }
  .section-heading { margin-bottom: 26px; }
  .site-page h2 { font-size: clamp(2.1rem, 10vw, 2.8rem); }
  .tour-grid,
  .tour-grid--featured { grid-template-columns: 1fr; gap: 16px; }
  .tour-grid--featured .tour-card:first-child { grid-column: auto; }
  .tour-grid--featured .tour-card:first-child .tour-card__image { aspect-ratio: 1.2 / 1; }
  .tour-card__body { padding: 18px; }
  .home-services-stage .service-card { min-height: 250px; border-radius: 15px; }
  .partners-shell { padding: 22px 16px; border-radius: 18px; }
  .partner-segment { min-height: 0; }
  .cta-band { min-height: 420px; }
  .page-hero { min-height: 330px; }
  .page-hero__content { padding-block: 58px; }
  .news-hero,
  .customer-hero { padding-block: 64px; }
  .news-hero__inner,
  .customer-hero__inner { grid-template-columns: 1fr; gap: 20px; }
  .news-hero__route,
  .customer-hero__stamp { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .hero__slide.is-active img,
  .experience-ticker__track,
  .featured-tours-section__route path { animation: none !important; }
  .tour-card,
  .news-card,
  .customer-card,
  .customer-showcase-card,
  .service-card,
  .partner-logo-card,
  .button { transition-duration: .01ms !important; }
}

/* Featured journeys — a travel collection, not just another product grid. */
#tour-noi-bat {
  isolation: isolate;
  overflow: hidden;
  padding-top: clamp(88px, 10vw, 142px);
  background:
    radial-gradient(circle at 92% 8%, rgba(244, 183, 25, .24), transparent 21rem),
    radial-gradient(circle at 4% 84%, rgba(181, 18, 107, .11), transparent 28rem),
    linear-gradient(135deg, #fff8ef 0%, #fff 48%, #fff8fb 100%);
}

#tour-noi-bat::before {
  width: min(42vw, 560px);
  height: min(42vw, 560px);
  top: 8%;
  right: -13%;
  z-index: -1;
  opacity: .55;
  background-image: radial-gradient(circle, rgba(181, 18, 107, .42) 1.1px, transparent 1.5px);
  background-size: 18px 18px;
  mask-image: radial-gradient(circle at center, #000 0 40%, transparent 72%);
}

#tour-noi-bat::after {
  content: '';
  width: min(76vw, 1040px);
  height: 1px;
  position: absolute;
  z-index: -1;
  right: -12vw;
  bottom: 17%;
  border-top: 1px dashed rgba(120, 54, 89, .28);
  transform: rotate(-8deg);
  pointer-events: none;
}

#tour-noi-bat > .container { position: relative; z-index: 1; }

#tour-noi-bat .featured-tours-section__route {
  width: min(1260px, 108%);
  height: 680px;
  bottom: -220px;
  opacity: .9;
}

#tour-noi-bat .featured-tours-section__route path {
  stroke: rgba(181, 18, 107, .27);
  stroke-width: 1.5;
  stroke-dasharray: 4 12;
  animation: none;
}

#tour-noi-bat .featured-tours-section__route circle {
  fill: #f4b719;
  stroke: rgba(181, 18, 107, .20);
  stroke-width: 7;
}

#tour-noi-bat .featured-tours-heading {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(330px, .82fr);
  align-items: stretch;
  gap: clamp(30px, 6vw, 88px);
  margin-bottom: clamp(34px, 4vw, 54px);
  padding: clamp(28px, 4vw, 56px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 26px;
  background:
    radial-gradient(circle at 88% 9%, rgba(244, 183, 25, .24), transparent 24%),
    radial-gradient(circle at 4% 95%, rgba(220, 52, 149, .30), transparent 30%),
    linear-gradient(132deg, #2b1123 0%, #5c0c3a 57%, #8e1255 100%);
  box-shadow: 0 28px 70px rgba(78, 9, 48, .20);
}

#tour-noi-bat .featured-tours-heading::before {
  content: 'SV / JOURNEY COLLECTION';
  position: absolute;
  right: clamp(22px, 3vw, 46px);
  top: 20px;
  color: rgba(255, 255, 255, .36);
  font: 700 .62rem/1 var(--font-heading);
  letter-spacing: .18em;
}

#tour-noi-bat .featured-tours-heading::after {
  content: '';
  width: min(42%, 430px);
  position: absolute;
  right: -8%;
  bottom: 28px;
  border-top: 1px dashed rgba(255, 226, 142, .68);
  transform: rotate(-8deg);
  pointer-events: none;
}

#tour-noi-bat .featured-tours-heading > * { position: relative; z-index: 1; }
#tour-noi-bat .featured-tours-heading .eyebrow { margin-bottom: 15px; color: #ffe38c; }

#tour-noi-bat .featured-tours-heading h2 {
  max-width: 700px;
  margin: 0;
  color: #fff;
  font-size: clamp(2.35rem, 4.5vw, 4.75rem);
  line-height: .99;
  letter-spacing: -.065em;
}

#tour-noi-bat .featured-tours-heading__aside {
  display: flex;
  flex-direction: column;
  justify-content: end;
  padding-top: 32px;
}

#tour-noi-bat .featured-tours-heading__aside > p {
  max-width: 485px;
  margin: 0 0 23px;
  color: rgba(255, 255, 255, .86);
  font-size: 1rem;
  line-height: 1.72;
}

#tour-noi-bat .featured-tours-heading__metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

#tour-noi-bat .featured-tours-heading__metrics span {
  min-height: 112px;
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-content: center;
  column-gap: 10px;
  row-gap: 3px;
  padding: 14px;
  border: 1px solid rgba(255, 255, 255, .17);
  border-radius: 16px;
  background: rgba(255, 255, 255, .09);
  color: rgba(255, 255, 255, .78);
  box-shadow: none;
  font-size: .72rem;
  font-weight: 700;
  line-height: 1.35;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
  transition: transform 220ms ease, border-color 220ms ease, background 220ms ease;
}

#tour-noi-bat .featured-tours-heading__metrics span:hover {
  border-color: rgba(255, 227, 140, .68);
  background: rgba(255, 255, 255, .14);
  transform: translateY(-3px);
}

#tour-noi-bat .featured-tours-heading__metrics .icon {
  width: 21px;
  height: 21px;
  grid-row: 1 / span 2;
  align-self: center;
  color: #ffe38c;
}

#tour-noi-bat .featured-tours-heading__metrics strong {
  display: block;
  color: #ffe38c;
  font: 800 clamp(1.85rem, 2.45vw, 2.45rem)/.95 var(--font-heading);
  letter-spacing: -.06em;
}

#tour-noi-bat .tour-grid--featured {
  position: relative;
  gap: 20px;
  counter-reset: destination;
}

#tour-noi-bat .tour-card--journey {
  overflow: hidden;
  border-color: rgba(92, 12, 58, .12);
  border-radius: 20px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 16px 38px rgba(61, 15, 43, .09);
  counter-increment: destination;
  transition: transform 240ms ease, box-shadow 240ms ease, border-color 240ms ease;
}

#tour-noi-bat .tour-card--journey::before {
  z-index: 4;
  height: 4px;
  background: linear-gradient(90deg, #f4b719 0%, #e13a92 56%, #5c0c3a 100%);
}

#tour-noi-bat .tour-card--journey::after {
  content: '';
  width: 74px;
  height: 74px;
  position: absolute;
  z-index: 1;
  right: -31px;
  bottom: -34px;
  border: 1px dashed rgba(181, 18, 107, .25);
  border-radius: 50%;
  pointer-events: none;
  transition: transform 420ms cubic-bezier(.2, .8, .2, 1), border-color 240ms ease;
}

#tour-noi-bat .tour-card--journey:hover,
#tour-noi-bat .tour-card--journey:focus-within {
  border-color: rgba(181, 18, 107, .38);
  box-shadow: 0 26px 56px rgba(61, 15, 43, .15);
  transform: translateY(-7px);
}

#tour-noi-bat .tour-card--journey:hover::after,
#tour-noi-bat .tour-card--journey:focus-within::after {
  border-color: rgba(244, 183, 25, .78);
  transform: rotate(36deg) scale(1.17);
}

#tour-noi-bat .tour-card--journey .tour-card__image { background: #2b1123; }

#tour-noi-bat .tour-card--journey .tour-card__image::after {
  inset: 42% 0 0;
  opacity: .66;
  background: linear-gradient(0deg, rgba(25, 7, 19, .62), rgba(25, 7, 19, .02));
  transition: opacity 240ms ease;
}

#tour-noi-bat .tour-card--journey:hover .tour-card__image::after,
#tour-noi-bat .tour-card--journey:focus-within .tour-card__image::after { opacity: .24; }

#tour-noi-bat .tour-card--journey .tour-card__image img { transition: transform 520ms cubic-bezier(.2, .8, .2, 1); }

#tour-noi-bat .tour-card--journey:hover .tour-card__image img,
#tour-noi-bat .tour-card--journey:focus-within .tour-card__image img { transform: scale(1.07); }

#tour-noi-bat .tour-card__tag {
  left: 14px;
  top: 14px;
  border-color: rgba(255, 255, 255, .72);
  color: #5c0c3a;
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

#tour-noi-bat .tour-card__image-icon {
  width: 46px;
  height: 46px;
  right: 14px;
  top: 14px;
  border-color: rgba(255, 227, 140, .52);
  background: rgba(43, 17, 35, .66);
  color: #ffe38c;
  transition: transform 300ms cubic-bezier(.2, .8, .2, 1), background 220ms ease;
}

#tour-noi-bat .tour-card--journey:hover .tour-card__image-icon,
#tour-noi-bat .tour-card--journey:focus-within .tour-card__image-icon {
  background: #b5126b;
  transform: translate(-3px, 3px) rotate(-11deg);
}

#tour-noi-bat .tour-card--journey .tour-card__body {
  min-height: 210px;
  position: relative;
  z-index: 2;
  padding: 24px;
}

#tour-noi-bat .tour-card--journey .tour-card__body::after {
  content: '0' counter(destination);
  position: absolute;
  right: 21px;
  top: 18px;
  color: rgba(92, 12, 58, .12);
  font: 800 2.55rem/.9 var(--font-heading);
  letter-spacing: -.08em;
}

#tour-noi-bat .tour-card--journey .tour-card__meta { margin-bottom: 14px; padding-right: 58px; }
#tour-noi-bat .tour-card--journey h3 { max-width: calc(100% - 34px); margin-bottom: 9px; color: #281c26; font-size: 1.22rem; }
#tour-noi-bat .tour-card--journey .tour-card__body > p { color: #5f5660; line-height: 1.64; }
#tour-noi-bat .tour-card--journey .tour-card__footer { position: relative; z-index: 2; }
#tour-noi-bat .tour-card--journey .tour-card__footer small { color: #776d75; }
#tour-noi-bat .tour-card--journey .tour-card__footer strong { color: #9b0f5a; }

#tour-noi-bat .tour-card--journey .icon-button {
  border-color: rgba(181, 18, 107, .22);
  background: #fff7fb;
  color: #9b0f5a;
}

#tour-noi-bat .tour-card--journey .icon-button:hover { border-color: #9b0f5a; background: #9b0f5a; color: #fff; }

#tour-noi-bat .section-action { position: relative; z-index: 2; margin-top: clamp(34px, 5vw, 54px); }

#tour-noi-bat .section-action .button--outline {
  border-color: #7d0d49;
  background: #fff;
  color: #7d0d49;
  box-shadow: 0 12px 26px rgba(92, 12, 58, .10);
}

#tour-noi-bat .section-action .button--outline:hover { border-color: #7d0d49; background: #7d0d49; color: #fff; }

@media (min-width: 1101px) {
  #tour-noi-bat .tour-grid--featured .tour-card--journey:nth-child(1),
  #tour-noi-bat .tour-grid--featured .tour-card--journey:nth-child(6) { min-height: 356px; }

  #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 { padding: clamp(25px, 2.5vw, 36px); }

  #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 { max-width: calc(100% - 38px); font-size: clamp(1.38rem, 1.7vw, 1.72rem); }
}

@media (max-width: 1100px) {
  #tour-noi-bat .featured-tours-heading { grid-template-columns: 1fr; gap: 24px; }
  #tour-noi-bat .featured-tours-heading__aside { max-width: 720px; padding-top: 0; }
}

@media (max-width: 680px) {
  #tour-noi-bat { padding-top: 70px; }
  #tour-noi-bat .featured-tours-section__route { width: 180%; height: 460px; right: -30%; bottom: -145px; left: auto; transform: none; }
  #tour-noi-bat .featured-tours-heading { gap: 20px; padding: 28px 20px 22px; border-radius: 19px; }
  #tour-noi-bat .featured-tours-heading::before { top: 15px; right: 18px; font-size: .54rem; letter-spacing: .13em; }
  #tour-noi-bat .featured-tours-heading::after { width: 64%; right: -16%; bottom: 13px; }
  #tour-noi-bat .featured-tours-heading h2 { padding-top: 14px; font-size: clamp(2.28rem, 11vw, 3.2rem); }
  #tour-noi-bat .featured-tours-heading__aside > p { margin-bottom: 17px; font-size: .92rem; }
  #tour-noi-bat .featured-tours-heading__metrics { gap: 8px; }
  #tour-noi-bat .featured-tours-heading__metrics span { min-height: 92px; grid-template-columns: 21px minmax(0, 1fr); column-gap: 7px; padding: 11px; font-size: .60rem; }
  #tour-noi-bat .featured-tours-heading__metrics .icon { width: 18px; height: 18px; }
  #tour-noi-bat .featured-tours-heading__metrics strong { font-size: 1.65rem; }
  #tour-noi-bat .tour-card--journey { border-radius: 17px; }
  #tour-noi-bat .tour-card--journey .tour-card__body { min-height: 0; padding: 20px; }
  #tour-noi-bat .tour-card--journey .tour-card__body::after { right: 17px; top: 17px; font-size: 2.25rem; }
  #tour-noi-bat .tour-card--journey h3 { font-size: 1.17rem; }
}

@media (prefers-reduced-motion: reduce) {
  #tour-noi-bat .featured-tours-heading__metrics span,
  #tour-noi-bat .tour-card--journey,
  #tour-noi-bat .tour-card--journey::after,
  #tour-noi-bat .tour-card--journey .tour-card__image img,
  #tour-noi-bat .tour-card__image-icon { transition-duration: .01ms !important; }
}

/* Hero launch pad — expressive travel cues stay inside the content, never over the slideshow. */
.hero {
  min-height: 790px;
  background: #2a1022;
}

.hero__content {
  grid-template-columns: minmax(0, 1.1fr) minmax(332px, .58fr);
  gap: clamp(34px, 6vw, 92px);
  padding-top: 78px;
  padding-bottom: 138px;
}

.hero__copy { max-width: 734px; }

.hero-copy-frame {
  isolation: isolate;
  overflow: hidden;
  max-width: 724px;
  padding: clamp(30px, 3.3vw, 48px) clamp(26px, 3.5vw, 52px) 30px;
  border: 1px solid rgba(255, 244, 218, .34);
  border-radius: 28px;
  background:
    linear-gradient(108deg, rgba(34, 7, 25, .78), rgba(72, 10, 45, .66) 68%, rgba(120, 14, 70, .46)),
    rgba(42, 16, 34, .42);
  box-shadow: 0 28px 74px rgba(23, 2, 14, .30), inset 0 1px 0 rgba(255, 255, 255, .12);
  backdrop-filter: blur(2px);
}

.hero-copy-frame::before {
  content: '';
  display: block;
  width: 230px;
  height: 230px;
  position: absolute;
  z-index: 0;
  right: -105px;
  bottom: -118px;
  border: 1px dashed rgba(255, 227, 140, .42);
  border-radius: 50%;
  box-shadow: inset 0 0 0 18px rgba(255, 227, 140, .025);
  pointer-events: none;
}

.hero-copy-frame::after {
  content: '';
  width: 195px;
  height: 92px;
  position: absolute;
  z-index: 0;
  top: 20px;
  right: 18px;
  border-top: 1px dashed rgba(255, 227, 140, .40);
  border-radius: 50%;
  transform: rotate(-13deg);
  pointer-events: none;
}

.hero-copy-frame > * { position: relative; z-index: 1; }

.hero-copy-kicker { gap: 10px; margin-bottom: 18px; }

.hero .eyebrow--light {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 30px;
  color: #ffe49a;
  font-size: .68rem;
  letter-spacing: .14em;
}

.hero .eyebrow--light .icon { width: 15px; height: 15px; color: #ffcd54; }

.hero-title-layout { position: relative; }

.hero-title-layout h1 {
  max-width: 670px;
  margin-bottom: 21px;
  color: #fff;
  font-size: clamp(3.55rem, 5.5vw, 6.1rem);
  line-height: .92;
  letter-spacing: -.073em;
}

.hero-title-layout h1 > span,
.hero-title-layout h1 > em { display: block; width: fit-content; }

.hero-title-layout h1 > span { text-shadow: 0 8px 28px rgba(14, 1, 9, .30); }

.hero h1 em {
  margin-top: .06em;
  padding-bottom: .08em;
  color: #ffe38c;
  background: linear-gradient(90deg, #ffe89e, #ffc548 45%, #ffdf86 77%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-decoration: none;
  text-shadow: none;
}

.hero h1 em::after {
  content: '';
  height: 4px;
  position: absolute;
  right: 1%;
  bottom: 0;
  left: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, #f4b719, #f4b719 42%, #d7318c 74%, transparent 74%);
  box-shadow: 0 2px 8px rgba(244, 183, 25, .18);
}

.hero__lead {
  max-width: 585px;
  margin-bottom: 24px;
  padding-left: 16px;
  border-left: 2px solid rgba(255, 227, 140, .80);
  color: rgba(255, 255, 255, .92);
  font-size: 1.02rem;
  line-height: 1.7;
}

.hero-promise-route { max-width: 640px; margin-bottom: 24px; }

.hero .hero__assurance {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  margin: 0;
}

.hero .hero__assurance li {
  min-height: 74px;
  position: relative;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 10px 11px;
  overflow: hidden;
  border-color: rgba(255, 255, 255, .20);
  border-radius: 14px;
  background: rgba(255, 255, 255, .085);
  color: #fff;
  transition: transform 220ms ease, border-color 220ms ease, background 220ms ease;
}

.hero .hero__assurance li::after {
  content: '';
  width: 52px;
  height: 52px;
  position: absolute;
  right: -29px;
  bottom: -32px;
  border: 1px solid rgba(255, 227, 140, .28);
  border-radius: 50%;
  pointer-events: none;
}

.hero .hero__assurance li:hover {
  border-color: rgba(255, 227, 140, .76);
  background: rgba(255, 255, 255, .15);
  transform: translateY(-3px);
}

.hero-assurance__number {
  display: block;
  position: absolute;
  right: 9px;
  top: 7px;
  color: rgba(255, 227, 140, .52);
  font: 700 .56rem/1 var(--font-heading);
  letter-spacing: .09em;
}

.hero-assurance__icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 227, 140, .32);
  border-radius: 10px;
  background: rgba(244, 183, 25, .12);
  color: #ffe38c;
}

.hero-assurance__icon .icon { width: 16px; height: 16px; }
.hero__assurance strong { padding-right: 9px; color: rgba(255, 255, 255, .94); font-size: .70rem; line-height: 1.42; }

.hero .hero__actions {
  display: grid;
  grid-template-columns: minmax(0, 1.13fr) minmax(180px, .87fr);
  gap: 10px;
}

.hero-ticket-cta,
.hero-event-cta {
  min-height: 66px;
  border-radius: 15px;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease, background 220ms ease;
}

.hero-ticket-cta {
  border-color: #ffe38c;
  background: linear-gradient(118deg, #ffe48b 0%, #f4b719 57%, #ffc944 100%);
  box-shadow: 0 14px 26px rgba(23, 2, 14, .21);
}

.hero-ticket-cta span,
.hero-event-cta span { min-width: 0; }

.hero-ticket-cta small,
.hero-event-cta small {
  display: block;
  margin-bottom: 2px;
  font-size: .57rem;
  font-weight: 800;
  letter-spacing: .105em;
  text-transform: uppercase;
}

.hero-ticket-cta small { color: rgba(88, 39, 0, .72); }
.hero-ticket-cta span:not(small) { color: #5c1738; }

.hero-event-cta {
  border-color: rgba(255, 255, 255, .38);
  background: rgba(53, 10, 35, .46);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .10);
}

.hero-event-cta small { color: rgba(255, 227, 140, .74); }
.hero-event-cta span { color: #fff; }
.hero-event-cta > .icon { color: #ffe38c; }

.hero-ticket-cta:hover,
.hero-event-cta:hover { transform: translateY(-3px); }
.hero-ticket-cta:hover { box-shadow: 0 19px 31px rgba(23, 2, 14, .28); }
.hero-event-cta:hover { border-color: rgba(255, 227, 140, .78); background: rgba(91, 12, 55, .67); }

.hero-ticket-cta:focus-visible,
.hero-event-cta:focus-visible { outline: 3px solid #ffe38c; outline-offset: 3px; }

.hero-copy-coordinate {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 20px 0 0;
  color: rgba(255, 255, 255, .58);
  font: 700 .58rem/1.3 var(--font-heading);
  letter-spacing: .10em;
}

.hero-copy-coordinate .icon { width: 14px; height: 14px; color: #ffe38c; }
.hero-copy-coordinate > span { width: 12px; border-top: 1px dashed rgba(255, 227, 140, .50); }

.trip-search {
  border: 1px solid rgba(255, 250, 239, .85);
  border-radius: 22px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 26px 64px rgba(24, 2, 15, .22);
}

.trip-search::before {
  height: 4px;
  background: linear-gradient(90deg, #f4b719, #e0348e 61%, #7e0b49);
}

.trip-search__heading > span {
  border-radius: 13px;
  background: linear-gradient(145deg, #fff5d8, #f9eaf2);
  color: #a20f5d;
}

.trip-search .button { box-shadow: 0 11px 20px rgba(135, 18, 78, .18); }

.hero-slider-story,
.hero-slider-actions {
  border-color: rgba(255, 255, 255, .30);
  background: rgba(34, 8, 25, .56);
  box-shadow: 0 14px 34px rgba(20, 2, 13, .20);
}

@media (max-width: 900px) {
  .hero { min-height: 0; }
  .hero__content { grid-template-columns: 1fr; gap: 22px; padding-top: 54px; padding-bottom: 96px; }
  .hero__copy { max-width: 700px; }
  .hero-copy-frame { max-width: 700px; }
  .trip-search { max-width: 610px; }
}

@media (max-width: 680px) {
  .hero__content { gap: 18px; padding-top: 34px; padding-bottom: 28px; }
  .hero-copy-frame { padding: 27px 20px 22px; border-radius: 19px; background: linear-gradient(130deg, rgba(34, 7, 25, .83), rgba(91, 12, 54, .69)); }
  .hero-copy-frame::before { width: 160px; height: 160px; right: -77px; bottom: -85px; }
  .hero-copy-frame::after { width: 128px; top: 13px; right: 7px; opacity: .7; }
  .hero .eyebrow--light { max-width: 250px; min-height: 27px; font-size: .60rem; line-height: 1.35; }
  .hero-title-layout h1 { margin-bottom: 17px; font-size: clamp(2.72rem, 12vw, 3.64rem); line-height: .95; }
  .hero h1 em::after { height: 3px; }
  .hero__lead { margin-bottom: 18px; padding-left: 12px; font-size: .93rem; line-height: 1.62; }
  .hero .hero__assurance { grid-template-columns: 1fr; gap: 7px; }
  .hero .hero__assurance li { min-height: 52px; grid-template-columns: 32px minmax(0, 1fr); padding: 8px 10px; }
  .hero-assurance__number { top: 6px; }
  .hero-assurance__icon { width: 32px; height: 32px; }
  .hero__assurance strong { font-size: .69rem; }
  .hero .hero__actions { grid-template-columns: 1fr; gap: 8px; }
  .hero-ticket-cta,
  .hero-event-cta { width: 100%; min-height: 57px; }
  .hero-copy-coordinate { display: none; }
  .trip-search { padding: 20px 16px; border-radius: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero .hero__assurance li,
  .hero-ticket-cta,
  .hero-event-cta { transition-duration: .01ms !important; }
}

/* Approved direction 03 — Event Stage. The moving image stays visually open; the programme rail begins below it. */
.site-page--index .hero {
  --stage-photo-height: clamp(430px, 43vw, 590px);
  min-height: 0;
  display: block;
  padding-top: calc(var(--stage-photo-height) - clamp(44px, 6vw, 96px));
  overflow: hidden;
  background: #f7f2ee;
}

.site-page--index .hero__slider {
  height: var(--stage-photo-height);
  position: absolute;
  z-index: 0;
  inset: 0 0 auto;
  background: #2a1022;
}

.site-page--index .hero__slide img { transform: scale(1.035); }

.site-page--index .hero::before {
  content: '';
  width: 78px;
  height: 78px;
  position: absolute;
  z-index: 1;
  right: clamp(58px, 9vw, 155px);
  top: calc(var(--stage-photo-height) - 145px);
  border: 1px solid rgba(255, 236, 173, .76);
  border-radius: 50%;
  box-shadow: inset 0 0 0 10px rgba(255, 227, 140, .065);
  pointer-events: none;
}

.site-page--index .hero::after {
  content: '';
  width: min(24vw, 350px);
  height: 1px;
  position: absolute;
  z-index: 1;
  right: clamp(98px, 13.5vw, 216px);
  top: calc(var(--stage-photo-height) - 104px);
  border-top: 1px dashed rgba(255, 236, 173, .82);
  transform: rotate(8deg);
  transform-origin: right;
  pointer-events: none;
}

.site-page--index .hero__content {
  width: min(calc(100% - 64px), 1320px);
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.22fr) minmax(370px, .78fr);
  align-items: start;
  gap: clamp(36px, 7vw, 96px);
  margin: 0 auto;
  padding: clamp(32px, 4vw, 56px) clamp(28px, 4.5vw, 62px) 34px;
  border: 1px solid #e3d9de;
  border-radius: 25px 25px 0 0;
  background: rgba(255, 250, 245, .985);
  box-shadow: 0 -18px 48px rgba(47, 11, 31, .10);
}

.site-page--index .hero__copy,
.site-page--index .hero-copy-frame { max-width: none; }

.site-page--index .hero-copy-frame {
  min-height: 0;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

.site-page--index .hero-copy-frame::before,
.site-page--index .hero-copy-frame::after { display: none; }

.site-page--index .hero-copy-kicker { margin-bottom: 15px; }

.site-page--index .hero .eyebrow--light {
  min-height: 0;
  color: #a20f5d;
  font-size: .67rem;
  letter-spacing: .14em;
}

.site-page--index .hero .eyebrow--light::before {
  content: '';
  width: 31px;
  height: 2px;
  display: block;
  background: linear-gradient(90deg, #f4b719, #d4318c);
}

.site-page--index .hero .eyebrow--light .icon { display: none; }

.site-page--index .hero-title-layout h1 {
  max-width: 740px;
  margin-bottom: 18px;
  color: #2b202a;
  font-size: clamp(3.4rem, 5.15vw, 5.8rem);
  line-height: .92;
  letter-spacing: -.073em;
  text-shadow: none;
}

.site-page--index .hero-title-layout h1 > span,
.site-page--index .hero-title-layout h1 > em { display: inline; width: auto; }

.site-page--index .hero h1 em {
  margin: 0;
  padding: 0;
  color: #b5126b;
  background: none;
  font-style: italic;
  -webkit-text-fill-color: #b5126b;
}

.site-page--index .hero h1 em::after { display: none; }

.site-page--index .hero__lead {
  max-width: 700px;
  margin-bottom: 24px;
  padding-left: 0;
  border-left: 0;
  color: #625864;
  font-size: 1rem;
  line-height: 1.72;
}

.site-page--index .hero-promise-route { max-width: 700px; margin-bottom: 21px; }

.site-page--index .hero .hero__assurance {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.site-page--index .hero .hero__assurance li {
  min-height: 70px;
  display: block;
  padding: 10px 12px;
  overflow: visible;
  border: 0;
  border-top: 2px solid #f4b719;
  border-radius: 0;
  background: #fff;
  box-shadow: 0 8px 19px rgba(42, 16, 34, .06);
  color: #2a202a;
}

.site-page--index .hero .hero__assurance li:nth-child(2) { border-top-color: #d4318c; }
.site-page--index .hero .hero__assurance li:nth-child(3) { border-top-color: #76103f; }

.site-page--index .hero .hero__assurance li::after { display: none; }

.site-page--index .hero .hero__assurance li:hover {
  border-color: inherit;
  background: #fff;
  box-shadow: 0 14px 26px rgba(42, 16, 34, .11);
  transform: translateY(-4px);
}

.site-page--index .hero-assurance__number {
  position: static;
  display: block;
  margin-bottom: 8px;
  color: #a20f5d;
  font: 800 .59rem/1 var(--font-heading);
  letter-spacing: .09em;
}

.site-page--index .hero-assurance__icon { display: none; }

.site-page--index .hero__assurance strong {
  padding: 0;
  color: #342933;
  font-size: .70rem;
  line-height: 1.42;
}

.site-page--index .hero .hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.site-page--index .hero-ticket-cta,
.site-page--index .hero-event-cta {
  width: auto;
  min-height: 52px;
  padding: 8px 13px 8px 17px;
  border-radius: 12px;
  font-size: .79rem;
}

.site-page--index .hero-ticket-cta {
  border-color: #ffe28e;
  background: linear-gradient(112deg, #ffe88f, #f4b719);
  box-shadow: 0 12px 23px rgba(151, 98, 0, .14);
}

.site-page--index .hero-event-cta {
  border-color: #d4c3cb;
  background: #fff;
  box-shadow: none;
}

.site-page--index .hero-ticket-cta small,
.site-page--index .hero-event-cta small { display: none; }
.site-page--index .hero-ticket-cta span { color: #5e1739; }
.site-page--index .hero-event-cta span { color: #7d0d49; }
.site-page--index .hero-ticket-cta > i,
.site-page--index .hero-event-cta > i {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
}
.site-page--index .hero-ticket-cta > i { color: #fff; background: #ad0e62; }
.site-page--index .hero-event-cta > i { color: #7d0d49; background: #f9edf3; }

.site-page--index .hero-copy-coordinate {
  display: flex;
  gap: 8px;
  margin-top: 21px;
  color: #8a7c84;
  font-size: .55rem;
  letter-spacing: .10em;
}
.site-page--index .hero-copy-coordinate .icon { display: none; }
.site-page--index .hero-copy-coordinate > span { border-top-color: #c99b34; }
.site-page--index .hero-copy-coordinate::before { content: 'VIỆT NAM'; color: #a20f5d; }

.site-page--index .trip-search {
  min-height: 0;
  padding: 1px 0 2px clamp(28px, 3vw, 40px);
  border: 0;
  border-left: 1px solid #e5dbe0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.site-page--index .trip-search::before { display: none; }
.site-page--index .trip-search__heading { margin-bottom: 16px; }
.site-page--index .trip-search__heading > span { display: none; }
.site-page--index .trip-search__heading strong { color: #2d222d; font-size: 1.1rem; }
.site-page--index .trip-search__heading small { color: #6a5f69; }
.site-page--index .trip-search label { color: #4f434e; font-size: .65rem; }
.site-page--index .trip-search input,
.site-page--index .trip-search select { min-height: 46px; border-color: #ded7db; border-radius: 9px; }
.site-page--index .trip-search .button { min-height: 49px; margin-top: 18px; box-shadow: none; }

.site-page--index .hero-slider-controls {
  width: auto;
  position: absolute;
  z-index: 3;
  top: calc(var(--stage-photo-height) - 64px);
  right: clamp(26px, 4vw, 68px);
  left: auto;
  bottom: auto;
  transform: none;
}

.site-page--index .hero-slider-story { display: none; }
.site-page--index .hero-slider-actions { min-height: 46px; border-radius: 13px; background: rgba(42, 16, 34, .50); }
.site-page--index .hero-slider-arrow { width: 36px; height: 36px; }
.site-page--index .hero-slider-dots button { width: 31px; height: 36px; }
.site-page--index .hero-slider-dots button > span { width: 15px; }

.site-page--index .trust-strip {
  width: min(calc(100% - 64px), 1320px);
  position: relative;
  z-index: 2;
  left: auto;
  bottom: auto;
  display: grid;
  margin: 0 auto;
  transform: none;
  overflow: hidden;
  border: 1px solid #e3d9de;
  border-top: 0;
  border-radius: 0 0 22px 22px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(47, 11, 31, .08);
}

.site-page--index .trust-strip::before { height: 2px; background: linear-gradient(90deg, #f4b719, #d4318c, #7d0d49); }
.site-page--index .trust-strip div { min-height: 82px; padding: 13px 19px; }
.site-page--index .trust-strip__item { grid-template-columns: 34px minmax(0, 1fr); }
.site-page--index .trust-strip__icon { width: 34px; height: 34px; border-radius: 9px; background: #f9edf3; color: #a20f5d; }
.site-page--index .trust-strip__item strong { color: #2a202a; font-size: 1.38rem; }
.site-page--index .trust-strip__label { color: #665b65; }

@media (max-width: 900px) {
  .site-page--index .hero { --stage-photo-height: 440px; padding-top: 391px; }
  .site-page--index .hero__content { width: calc(100% - 40px); grid-template-columns: 1fr; gap: 28px; padding: 32px 24px 27px; }
  .site-page--index .trip-search { max-width: none; padding: 24px 0 0; border-top: 1px solid #e5dbe0; border-left: 0; }
  .site-page--index .trust-strip { width: calc(100% - 40px); }
}

@media (max-width: 680px) {
  .site-page--index .hero { --stage-photo-height: 328px; padding-top: 294px; }
  .site-page--index .hero::before { width: 56px; height: 56px; right: 9%; top: 221px; box-shadow: inset 0 0 0 7px rgba(255, 227, 140, .065); }
  .site-page--index .hero::after { width: 118px; right: 20%; top: 247px; }
  .site-page--index .hero__content { width: calc(100% - 24px); gap: 22px; padding: 27px 18px 23px; border-radius: 18px 18px 0 0; }
  .site-page--index .hero-copy-frame { padding: 0; }
  .site-page--index .hero .eyebrow--light { font-size: .57rem; }
  .site-page--index .hero-title-layout h1 { margin-bottom: 16px; font-size: clamp(2.85rem, 12.8vw, 3.7rem); }
  .site-page--index .hero-title-layout h1 > span,
  .site-page--index .hero-title-layout h1 > em { display: block; }
  .site-page--index .hero__lead { margin-bottom: 18px; font-size: .91rem; line-height: 1.63; }
  .site-page--index .hero .hero__assurance { grid-template-columns: 1fr; gap: 7px; }
  .site-page--index .hero .hero__assurance li { min-height: 49px; display: flex; align-items: center; gap: 11px; padding: 9px 10px; }
  .site-page--index .hero-assurance__number { flex: 0 0 auto; min-width: 21px; margin: 0; }
  .site-page--index .hero__assurance strong { font-size: .68rem; }
  .site-page--index .hero .hero__actions { display: grid; grid-template-columns: 1fr; gap: 8px; }
  .site-page--index .hero-ticket-cta,
  .site-page--index .hero-event-cta { width: 100%; min-height: 54px; justify-content: space-between; }
  .site-page--index .hero-copy-coordinate { display: none; }
  .site-page--index .trip-search { padding-top: 20px; }
  .site-page--index .trip-search__heading strong { font-size: 1rem; }
  .site-page--index .trip-search input,
  .site-page--index .trip-search select { min-height: 48px; }
  .site-page--index .hero-slider-controls { width: calc(100% - 24px); position: relative; top: auto; right: auto; margin: 13px auto 0; }
  .site-page--index .hero-slider-actions { justify-content: center; background: #2a1022; }
  .site-page--index .trust-strip { width: calc(100% - 24px); border-radius: 0 0 16px 16px; }
  .site-page--index .trust-strip div { min-height: 73px; padding: 10px 11px; }
  .site-page--index .trust-strip__item { grid-template-columns: 30px minmax(0, 1fr); }
  .site-page--index .trust-strip__icon { width: 30px; height: 30px; }
  .site-page--index .trust-strip__item strong { font-size: 1.17rem; }
}

@media (prefers-reduced-motion: reduce) {
  .site-page--index .hero__slide.is-active img { animation: none !important; }
}

/* Journey metrics — compact proof points styled as a premium travel itinerary. */
.site-page--index .trust-strip {
  --metric-ink: #281b27;
  --metric-pink: #b5126b;
  --metric-gold: #f4b719;
  --metric-line: #eadde4;
  isolation: isolate;
  border: 1px solid #eadde4;
  border-top: 0;
  border-radius: 0 0 24px 24px;
  background:
    radial-gradient(circle at 8% 110%, rgba(244, 183, 25, .13), transparent 28%),
    linear-gradient(104deg, #fffdfb 0%, #fff 50%, #fcf7fa 100%);
  box-shadow: 0 22px 48px rgba(70, 14, 45, .10);
}

.site-page--index .trust-strip::before {
  z-index: 1;
  height: 3px;
  background: linear-gradient(90deg, var(--metric-gold) 0 14%, var(--metric-pink) 42%, #731143 100%);
}

.site-page--index .trust-strip::after {
  content: '';
  position: absolute;
  z-index: -1;
  top: 31px;
  right: 4%;
  width: 19%;
  height: 54px;
  border-top: 1px dashed rgba(181, 18, 107, .18);
  border-radius: 50%;
  transform: rotate(-8deg);
  pointer-events: none;
}

.site-page--index .trust-strip .trust-strip__item {
  position: relative;
  isolation: isolate;
  min-height: 124px;
  display: grid !important;
  grid-template-columns: 46px minmax(0, 1fr) 18px;
  grid-template-rows: minmax(39px, auto) 19px;
  grid-template-areas:
    'icon value route'
    'icon label route';
  column-gap: 13px;
  padding: 16px 22px 15px !important;
  overflow: hidden;
  border-right: 1px solid var(--metric-line);
  background: transparent;
  transition: transform 220ms ease-out, background-color 220ms ease-out, box-shadow 220ms ease-out;
}

.site-page--index .trust-strip .trust-strip__item:last-child { border-right: 0; }

.site-page--index .trust-strip .trust-strip__item::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 8px 7px;
  border-radius: 15px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .88), rgba(255, 242, 248, .72));
  opacity: 0;
  transform: translateY(5px);
  transition: opacity 220ms ease-out, transform 220ms ease-out;
}

@media (hover: hover) and (pointer: fine) {
  .site-page--index .trust-strip .trust-strip__item:hover {
    z-index: 1;
    transform: translateY(-3px);
    box-shadow: 0 14px 25px rgba(99, 19, 63, .10);
  }

  .site-page--index .trust-strip .trust-strip__item:hover::before { opacity: 1; transform: translateY(0); }
}

.site-page--index .trust-strip__icon {
  grid-area: icon;
  width: 46px;
  height: 46px;
  align-self: center;
  border: 1px solid rgba(181, 18, 107, .13);
  border-radius: 15px;
  background: linear-gradient(135deg, #fff7e7, #f9e9f2);
  color: var(--metric-pink);
  box-shadow: inset 0 0 0 5px rgba(255, 255, 255, .64);
}

.site-page--index .trust-strip__icon .icon { width: 21px; height: 21px; }

.site-page--index .trust-strip__item strong {
  grid-area: value;
  align-self: end;
  margin: 0 !important;
  color: var(--metric-ink);
  font: 800 clamp(1.68rem, 2.15vw, 2.14rem)/.98 var(--font-heading);
  font-variant-numeric: tabular-nums;
  letter-spacing: -.065em;
}

.site-page--index .trust-strip__label {
  grid-area: label;
  align-self: start;
  margin: 4px 0 0 !important;
  color: #6d5565;
  font: 700 .63rem/1.28 var(--font-heading);
  letter-spacing: .065em;
  text-transform: uppercase;
}

.site-page--index .trust-strip__route {
  grid-area: route;
  position: relative;
  align-self: stretch;
  width: 18px;
}

.site-page--index .trust-strip__route::before {
  content: '';
  position: absolute;
  top: 3px;
  bottom: 3px;
  left: 7px;
  border-left: 1px dashed rgba(181, 18, 107, .23);
}

.site-page--index .trust-strip__route::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 3px;
  width: 8px;
  height: 8px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--metric-gold);
  box-shadow: 0 0 0 2px rgba(244, 183, 25, .25);
  transform: translateY(-50%);
}

.motion-ready .site-page--index .trust-strip__item[data-reveal] {
  transition-delay: calc(var(--metric-order, 0) * 60ms);
}

@media (max-width: 900px) {
  .site-page--index .trust-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-page--index .trust-strip .trust-strip__item { min-height: 118px; }
  .site-page--index .trust-strip .trust-strip__item:nth-child(2n) { border-right: 0; }
  .site-page--index .trust-strip .trust-strip__item:nth-child(-n + 2) { border-bottom: 1px solid var(--metric-line); }
}

@media (max-width: 680px) {
  .site-page--index .trust-strip { border-radius: 0 0 18px 18px; }
  .site-page--index .trust-strip .trust-strip__item {
    min-height: 104px;
    grid-template-columns: 39px minmax(0, 1fr) 14px;
    grid-template-rows: 16px minmax(31px, auto) 18px;
    column-gap: 10px;
    padding: 13px 11px 12px !important;
  }
  .site-page--index .trust-strip__icon { width: 39px; height: 39px; border-radius: 12px; }
  .site-page--index .trust-strip__icon .icon { width: 18px; height: 18px; }
  .site-page--index .trust-strip__item strong { font-size: clamp(1.36rem, 6.2vw, 1.72rem); }
  .site-page--index .trust-strip__label { max-width: 13ch; font-size: .54rem !important; letter-spacing: .045em; }
  .site-page--index .trust-strip__route { width: 14px; }
  .site-page--index .trust-strip__route::before { left: 5px; }
  .site-page--index .trust-strip__route::after { left: 1px; }
  .site-page--index .trust-strip::after { top: auto; right: 2%; bottom: 7px; width: 35%; }
}

@media (prefers-reduced-motion: reduce) {
  .site-page--index .trust-strip .trust-strip__item,
  .site-page--index .trust-strip .trust-strip__item::before { transition: none; }
}

/* Service route — six capabilities arranged like a curated travel-and-event programme. */
.site-page--index .home-services-stage {
  --service-ink: #2b1d29;
  --service-pink: #b5126b;
  --service-gold: #f4b719;
  --service-aqua: #087f92;
  padding-block: clamp(92px, 10vw, 142px);
  background:
    radial-gradient(circle at 88% 15%, rgba(244, 183, 25, .18), transparent 21rem),
    radial-gradient(circle at 5% 77%, rgba(8, 127, 146, .12), transparent 28rem),
    linear-gradient(135deg, #fffaf6 0%, #fff 48%, #fff2f8 100%);
}

.site-page--index .home-services-stage::before {
  display: block;
  left: auto;
  right: -118px;
  top: 20%;
  width: 350px;
  height: 350px;
  opacity: .2;
  background-image: radial-gradient(circle, rgba(181, 18, 107, .58) 1px, transparent 1.5px);
}

.site-page--index .home-services-stage::after {
  content: 'SERVICE / ROUTE';
  display: block;
  right: -15px;
  bottom: -16px;
  color: rgba(181, 18, 107, .035);
  font-size: clamp(4.5rem, 10vw, 10rem);
}

.site-page--index .home-services-stage .section-heading {
  position: relative;
  max-width: 780px;
  margin: 0 auto clamp(42px, 5.2vw, 70px);
  text-align: center;
}

.site-page--index .home-services-stage .section-heading::after {
  content: 'DESIGNED FOR THE MOMENT';
  display: block;
  width: max-content;
  max-width: 100%;
  margin: 25px auto 0;
  padding: 8px 13px;
  border: 1px solid rgba(181, 18, 107, .17);
  border-radius: 999px;
  color: #8c496e;
  font: 800 .61rem/1 var(--font-heading);
  letter-spacing: .15em;
}

.site-page--index .home-services-stage .section-heading > p:last-child {
  max-width: 670px;
  margin-inline: auto;
  color: #635361;
  font-size: 1.01rem;
  line-height: 1.75;
}

.site-page--index .home-services-stage .service-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-flow: dense;
  gap: clamp(14px, 1.65vw, 24px);
}

.site-page--index .home-services-stage .service-card {
  --card-accent: var(--service-pink);
  --card-tint: #fff1f8;
  position: relative;
  isolation: isolate;
  grid-column: span 4;
  min-height: 344px;
  display: flex;
  align-items: flex-start;
  padding: 23px 25px 23px;
  overflow: hidden;
  border: 1px solid rgba(86, 38, 67, .13);
  border-radius: 22px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .98), var(--card-tint));
  box-shadow: 0 15px 34px rgba(78, 21, 54, .075);
  transition: border-color 220ms ease-out, box-shadow 220ms ease-out, background-color 220ms ease-out;
}

.site-page--index .home-services-stage .service-card:nth-child(1) {
  grid-column: span 5;
  min-height: 382px;
}

.site-page--index .home-services-stage .service-card:nth-child(2) {
  --card-accent: var(--service-aqua);
  --card-tint: #eefafb;
  grid-column: span 3;
}

.site-page--index .home-services-stage .service-card:nth-child(3) {
  --card-accent: #b7770c;
  --card-tint: #fff8e7;
  grid-column: span 4;
}

.site-page--index .home-services-stage .service-card:nth-child(4) {
  --card-accent: var(--service-aqua);
  --card-tint: #eef9f8;
}

.site-page--index .home-services-stage .service-card:nth-child(5) {
  --card-accent: #b7770c;
  --card-tint: #fff8e9;
}

.site-page--index .home-services-stage .service-card:nth-child(6) {
  --card-accent: #9d2f76;
  --card-tint: #fff0f7;
}

.site-page--index .home-services-stage .service-card::before {
  content: '';
  position: absolute;
  z-index: -1;
  right: -86px;
  bottom: -97px;
  width: 198px;
  height: 198px;
  border: 1px dashed color-mix(in srgb, var(--card-accent) 36%, transparent);
  border-radius: 50%;
  box-shadow: inset 0 0 0 28px color-mix(in srgb, var(--card-accent) 4%, transparent);
  transform: rotate(-15deg);
  transition: transform 280ms ease-out;
}

.site-page--index .home-services-stage .service-card::after {
  content: '';
  position: absolute;
  z-index: 2;
  top: 0;
  right: 25px;
  left: 25px;
  height: 4px;
  border-radius: 0 0 999px 999px;
  background: var(--card-accent);
  opacity: .92;
}

.site-page--index .home-services-stage .service-card--feature {
  --card-accent: #ffe17b;
  --card-tint: #821047;
  border-color: transparent;
  background:
    radial-gradient(circle at 90% 13%, rgba(244, 183, 25, .33), transparent 11rem),
    linear-gradient(145deg, #54082f, #9e0f5b 57%, #cf2c85);
  box-shadow: 0 23px 52px rgba(112, 8, 61, .23);
}

.site-page--index .home-services-stage .service-card--feature::before {
  border-color: rgba(255, 231, 139, .42);
  box-shadow: inset 0 0 0 28px rgba(255, 255, 255, .035);
}

.site-page--index .home-services-stage .service-card--feature::after {
  background: linear-gradient(90deg, #f4b719, #fff2af);
}

.site-page--index .service-card__top {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 24px;
}

.site-page--index .service-card__number {
  position: static;
  flex: 0 0 auto;
  color: var(--card-accent);
  font: 800 .69rem/1 var(--font-heading);
  letter-spacing: .11em;
}

.site-page--index .service-card__track {
  overflow: hidden;
  color: color-mix(in srgb, var(--service-ink) 62%, transparent);
  font: 800 .59rem/1.2 var(--font-heading);
  letter-spacing: .12em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.site-page--index .service-card--feature .service-card__number { color: #ffe17b; }
.site-page--index .service-card--feature .service-card__track { color: rgba(255, 255, 255, .72); }

.site-page--index .service-card__route {
  flex: 1 1 auto;
  min-width: 19px;
  height: 1px;
  position: relative;
  margin-left: 2px;
  border-top: 1px dashed color-mix(in srgb, var(--card-accent) 50%, transparent);
}

.site-page--index .service-card__route i {
  position: absolute;
  top: -4px;
  right: 0;
  width: 7px;
  height: 7px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--card-accent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--card-accent) 23%, transparent);
}

.site-page--index .service-card__icon {
  width: 57px;
  height: 57px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  margin: clamp(25px, 4vw, 46px) 0 0;
  border: 1px solid color-mix(in srgb, var(--card-accent) 19%, transparent);
  border-radius: 17px;
  background: rgba(255, 255, 255, .78);
  color: var(--card-accent);
  box-shadow: inset 0 0 0 5px rgba(255, 255, 255, .44);
}

.site-page--index .service-card__icon .icon { width: 26px; height: 26px; }

.site-page--index .service-card--feature .service-card__icon {
  border-color: rgba(255, 237, 180, .23);
  background: rgba(255, 255, 255, .1);
  color: #ffe17b;
  box-shadow: inset 0 0 0 5px rgba(255, 255, 255, .04);
}

.site-page--index .service-card__content { margin-top: auto; }
.site-page--index .service-card h3 {
  margin: 22px 0 9px;
  color: var(--service-ink);
  font-size: clamp(1.21rem, 1.42vw, 1.48rem);
  line-height: 1.11;
}

.site-page--index .service-card p {
  margin: 0;
  color: #685966;
  font-size: .89rem;
  line-height: 1.58;
}

.site-page--index .service-card--feature h3 { color: #fff; font-size: clamp(1.45rem, 2vw, 1.85rem); }
.site-page--index .service-card--feature p { color: rgba(255, 255, 255, .82) !important; }

.site-page--index .service-card .text-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: 10px;
  margin-top: 16px;
  color: var(--card-accent);
  font-size: .77rem;
  font-weight: 800;
  letter-spacing: .01em;
  text-decoration: none;
  transition: gap 200ms ease-out, color 200ms ease-out, opacity 200ms ease-out;
}

.site-page--index .service-card .text-link .icon { width: 17px; height: 17px; transition: transform 200ms ease-out; }
.site-page--index .service-card--feature .text-link { color: #ffe17b; }
.site-page--index .service-card .text-link:focus-visible { outline: 3px solid rgba(181, 18, 107, .32); outline-offset: 4px; border-radius: 5px; }
.site-page--index .service-card .text-link:active { opacity: .72; transform: translateY(1px); }

@media (hover: hover) and (pointer: fine) {
  .site-page--index .home-services-stage .service-card:hover,
  .site-page--index .home-services-stage .service-card:focus-within {
    border-color: color-mix(in srgb, var(--card-accent) 48%, transparent);
    box-shadow: 0 25px 44px rgba(81, 19, 55, .14);
  }
  .site-page--index .home-services-stage .service-card:hover::before,
  .site-page--index .home-services-stage .service-card:focus-within::before { transform: rotate(12deg) scale(1.06); }
  .site-page--index .service-card:hover .text-link,
  .site-page--index .service-card:focus-within .text-link { gap: 14px; }
  .site-page--index .service-card:hover .text-link .icon,
  .site-page--index .service-card:focus-within .text-link .icon { transform: translateX(3px); }
}

.motion-ready .site-page--index .home-services-stage .service-card[data-reveal] {
  transition-delay: calc(var(--service-order, 0) * 45ms);
}

@media (max-width: 1180px) {
  .site-page--index .home-services-stage .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-page--index .home-services-stage .service-card,
  .site-page--index .home-services-stage .service-card:nth-child(1),
  .site-page--index .home-services-stage .service-card:nth-child(2),
  .site-page--index .home-services-stage .service-card:nth-child(3) { grid-column: auto; min-height: 316px; }
  .site-page--index .home-services-stage .service-card:nth-child(1) { grid-column: span 2; min-height: 344px; }
}

@media (max-width: 900px) {
  .site-page--index .home-services-stage { padding-block: 78px; }
  .site-page--index .home-services-stage .service-grid { grid-template-columns: 1fr; }
  .site-page--index .home-services-stage .service-card,
  .site-page--index .home-services-stage .service-card:nth-child(1),
  .site-page--index .home-services-stage .service-card:nth-child(2),
  .site-page--index .home-services-stage .service-card:nth-child(3) { grid-column: auto; min-height: 260px; }
  .site-page--index .home-services-stage .service-card:nth-child(1) { min-height: 292px; }
  .site-page--index .service-card__icon { margin-top: 26px; }
}

@media (max-width: 680px) {
  .site-page--index .home-services-stage { padding-block: 70px; }
  .site-page--index .home-services-stage .section-heading { margin-bottom: 34px; text-align: left; }
  .site-page--index .home-services-stage .section-heading::after { margin-inline: 0; font-size: .53rem; }
  .site-page--index .home-services-stage .section-heading > p:last-child { margin-inline: 0; font-size: .93rem; }
  .site-page--index .home-services-stage .service-card,
  .site-page--index .home-services-stage .service-card:nth-child(1),
  .site-page--index .home-services-stage .service-card:nth-child(2),
  .site-page--index .home-services-stage .service-card:nth-child(3) { min-height: 246px; padding: 20px 19px 19px; border-radius: 18px; }
  .site-page--index .home-services-stage .service-card:nth-child(1) { min-height: 270px; }
  .site-page--index .home-services-stage .service-card::after { right: 19px; left: 19px; }
  .site-page--index .service-card__icon { width: 50px; height: 50px; margin-top: 20px; border-radius: 14px; }
  .site-page--index .service-card__icon .icon { width: 23px; height: 23px; }
  .site-page--index .service-card h3 { margin-top: 18px; font-size: 1.18rem; }
  .site-page--index .service-card--feature h3 { font-size: 1.42rem; }
  .site-page--index .service-card p { font-size: .84rem; }
  .site-page--index .service-card .text-link { min-height: 44px; margin-top: 12px; font-size: .73rem; }
}

@media (prefers-reduced-motion: reduce) {
  .site-page--index .home-services-stage .service-card,
  .site-page--index .home-services-stage .service-card::before,
  .site-page--index .service-card .text-link,
  .site-page--index .service-card .text-link .icon { transition: none !important; }
}

/* The Sắc Việt Way — a composed run-of-show, not a decorative animated map. */
.site-page--index .journey-process {
  --journey-ink: #250818;
  --journey-pink: #b5126b;
  --journey-gold: #f4b719;
  --journey-aqua: #5bd6db;
  isolation: isolate;
  padding-block: clamp(96px, 10vw, 148px);
  background:
    radial-gradient(circle at 86% 10%, rgba(220, 52, 149, .28), transparent 24rem),
    radial-gradient(circle at 6% 88%, rgba(244, 183, 25, .15), transparent 23rem),
    linear-gradient(132deg, #270718 0%, #56062f 51%, #810d48 100%);
}

.site-page--index .journey-process::before {
  display: block;
  right: -88px;
  top: 18px;
  width: 430px;
  height: 360px;
  opacity: .22;
  background-image: radial-gradient(circle, rgba(255, 231, 139, .8) 1px, transparent 1.5px);
  background-size: 20px 20px;
}

.site-page--index .journey-process::after {
  content: 'SV';
  left: auto;
  right: -22px;
  bottom: -34px;
  color: rgba(255, 255, 255, .04);
  font: 800 clamp(7rem, 15vw, 16rem)/1 var(--font-heading);
  letter-spacing: -.09em;
}

.site-page--index .journey-heading {
  position: relative;
  z-index: 2;
  grid-template-columns: minmax(0, 1.14fr) minmax(330px, .76fr);
  align-items: end;
  gap: clamp(40px, 8vw, 120px);
}

.site-page--index .journey-heading h2 {
  max-width: 750px;
  color: #fff;
  font-size: clamp(2.8rem, 5.25vw, 4.9rem);
  line-height: .96;
  letter-spacing: -.073em;
}

.site-page--index .journey-heading h2 > span,
.site-page--index .journey-heading h2 > em { display: block; }
.site-page--index .journey-heading h2 > em { color: #ffe486; font-style: italic; }

.site-page--index .journey-heading__aside {
  max-width: 440px;
  padding: 0 0 2px 23px;
  border-left: 1px solid rgba(255, 228, 134, .56);
}

.site-page--index .journey-heading__aside > p {
  margin: 0 0 23px;
  color: rgba(255, 255, 255, .79);
  font-size: 1rem;
  line-height: 1.68;
}

.site-page--index .journey-heading__cta {
  min-height: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 9px 10px 9px 18px;
  border: 1px solid rgba(255, 233, 158, .56);
  border-radius: 15px;
  background: linear-gradient(110deg, #f7bd27, #ffe487);
  color: #4d1232 !important;
  font-weight: 800;
  line-height: 1.12;
  text-decoration: none;
  box-shadow: 0 12px 28px rgba(17, 1, 10, .21);
  transition: transform 220ms ease-out, box-shadow 220ms ease-out, filter 220ms ease-out;
}

.site-page--index .journey-heading__cta > span { display: grid; gap: 3px; }
.site-page--index .journey-heading__cta small { color: rgba(77, 18, 50, .68); font: 800 .54rem/1 var(--font-heading); letter-spacing: .11em; text-transform: uppercase; }
.site-page--index .journey-heading__cta .icon { width: 19px; height: 19px; padding: 10px; border: 1px solid rgba(77, 18, 50, .17); border-radius: 50%; background: rgba(255, 255, 255, .34); box-sizing: content-box; }
.site-page--index .journey-heading__cta:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.site-page--index .journey-heading__cta:active { transform: translateY(1px); filter: brightness(.96); }

.site-page--index .journey-map {
  min-height: 508px;
  position: relative;
  z-index: 2;
  margin-top: clamp(52px, 6vw, 76px);
  padding: 78px 30px 32px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 29px;
  background:
    linear-gradient(108deg, rgba(255, 255, 255, .10), rgba(255, 255, 255, .032) 48%, rgba(255, 226, 139, .055)),
    rgba(30, 4, 20, .23);
  box-shadow: 0 30px 80px rgba(20, 1, 12, .28);
}

.site-page--index .journey-map::before {
  content: '';
  position: absolute;
  z-index: 0;
  right: -95px;
  bottom: -132px;
  width: 360px;
  height: 360px;
  border: 1px solid rgba(255, 228, 134, .18);
  border-radius: 50%;
  box-shadow: inset 0 0 0 35px rgba(255, 255, 255, .018), inset 0 0 0 98px rgba(244, 183, 25, .025);
}

.site-page--index .journey-map::after {
  content: '';
  position: absolute;
  z-index: 0;
  top: 63px;
  right: 30px;
  left: 30px;
  border-top: 1px solid rgba(255, 255, 255, .11);
}

.site-page--index .journey-map__label {
  z-index: 3;
  left: 30px;
  top: 25px;
  color: rgba(255, 241, 190, .88);
  font: 800 .63rem/1 var(--font-heading);
  letter-spacing: .16em;
}

.site-page--index .journey-map__caption {
  position: absolute;
  z-index: 3;
  top: 25px;
  right: 30px;
  color: rgba(255, 255, 255, .48);
  font: 700 .57rem/1 var(--font-heading);
  letter-spacing: .16em;
}

.site-page--index .journey-map__route {
  z-index: 1;
  top: 64px;
  width: calc(100% - 58px);
  height: 255px;
  left: 29px;
  right: 29px;
}

.site-page--index .journey-map__route path {
  stroke: rgba(255, 227, 139, .62);
  stroke-width: 1.7;
  stroke-dasharray: 3 9;
  animation: none;
}

.site-page--index .journey-map__plane {
  width: 39px;
  height: 39px;
  z-index: 3;
  left: auto;
  right: 19.5%;
  top: 106px;
  border-color: rgba(255, 228, 134, .56);
  background: #531035;
  color: #ffe486;
  box-shadow: 0 10px 24px rgba(17, 0, 10, .3), 0 0 0 7px rgba(244, 183, 25, .07);
  offset-path: none;
  animation: none;
}

.site-page--index .journey-map__plane .icon { width: 18px; height: 18px; }

.site-page--index .journey-steps {
  position: relative;
  z-index: 2;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 15px;
}

.site-page--index .journey-steps > li { position: relative; min-width: 0; }
.site-page--index .journey-steps > li:nth-child(even) { margin-top: 89px; }

.site-page--index .journey-step__marker {
  width: 42px;
  height: 42px;
  position: relative;
  z-index: 4;
  display: grid;
  place-items: center;
  margin: 0 0 -13px 19px;
  border: 4px solid #450d2c;
  border-radius: 50%;
  background: #ffe486;
  color: #4e1a34;
  box-shadow: 0 8px 18px rgba(8, 0, 4, .25), 0 0 0 5px rgba(244, 183, 25, .1);
}

.site-page--index .journey-step__marker i { width: 7px; height: 7px; position: absolute; inset: 0; margin: auto; border-radius: 50%; background: #4e1a34; box-shadow: 0 0 0 4px rgba(255, 228, 134, .12); }

.site-page--index .journey-step__card {
  min-height: 246px;
  display: flex;
  flex-direction: column;
  padding: 31px 20px 20px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 19px;
  background: linear-gradient(150deg, rgba(255, 255, 255, .12), rgba(255, 255, 255, .055));
  box-shadow: 0 18px 42px rgba(16, 0, 10, .17);
  transition: background-color 220ms ease-out, border-color 220ms ease-out, box-shadow 220ms ease-out;
}

.site-page--index .journey-step__card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.site-page--index .journey-step__icon { width: 43px; height: 43px; margin: 0; border: 1px solid rgba(255, 117, 194, .22); border-radius: 13px; background: rgba(220, 52, 149, .18); color: #ff9bd0; }
.site-page--index .journey-step__icon--gold { border-color: rgba(255, 228, 134, .18); background: rgba(244, 183, 25, .16); color: #ffe486; }
.site-page--index .journey-step__icon--aqua { border-color: rgba(91, 214, 219, .2); background: rgba(8, 127, 146, .22); color: #82eced; }
.site-page--index .journey-step__icon .icon { width: 21px; height: 21px; }
.site-page--index .journey-step__coordinate { color: rgba(255, 255, 255, .42); font: 800 .58rem/1 var(--font-heading); letter-spacing: .1em; }

.site-page--index .journey-step__copy { margin-top: auto; }
.site-page--index .journey-step__card small { display: block; margin: 0 0 7px; color: rgba(255, 231, 164, .78); font: 800 .61rem/1.3 var(--font-heading); letter-spacing: .075em; text-transform: uppercase; }
.site-page--index .journey-step__card h3 { margin: 0 0 9px; color: #fff; font-size: clamp(1.15rem, 1.45vw, 1.38rem); line-height: 1.08; }
.site-page--index .journey-step__card p { margin: 0; color: rgba(255, 255, 255, .78); font-size: .86rem; line-height: 1.57; }

@media (hover: hover) and (pointer: fine) {
  .site-page--index .journey-heading__cta:hover { box-shadow: 0 17px 34px rgba(12, 0, 8, .30); transform: translateY(-2px); }
  .site-page--index .journey-step__card:hover,
  .site-page--index .journey-step__card:focus-within { border-color: rgba(255, 228, 134, .40); background: rgba(255, 255, 255, .14); box-shadow: 0 25px 52px rgba(15, 0, 9, .25); }
}

.motion-ready .site-page--index .journey-steps > li { transition-delay: calc(var(--journey-order, 0) * 48ms); }

@media (max-width: 1040px) {
  .site-page--index .journey-heading { grid-template-columns: 1fr; align-items: start; gap: 32px; }
  .site-page--index .journey-heading__aside { max-width: 600px; }
  .site-page--index .journey-map { min-height: 620px; }
  .site-page--index .journey-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .site-page--index .journey-steps > li:nth-child(even) { margin-top: 58px; }
  .site-page--index .journey-map__route { height: 320px; }
  .site-page--index .journey-map__plane { right: 27%; top: 133px; }
}

@media (max-width: 680px) {
  .site-page--index .journey-process { padding-block: 72px; }
  .site-page--index .journey-heading h2 { font-size: clamp(2.38rem, 10.8vw, 3.22rem); }
  .site-page--index .journey-heading__aside { padding-left: 16px; }
  .site-page--index .journey-heading__aside > p { font-size: .93rem; }
  .site-page--index .journey-heading__cta { width: 100%; min-height: 56px; box-sizing: border-box; }
  .site-page--index .journey-map { min-height: 0; margin-top: 38px; padding: 60px 13px 14px; border-radius: 21px; }
  .site-page--index .journey-map::after { top: 49px; right: 14px; left: 14px; }
  .site-page--index .journey-map__label { left: 17px; top: 20px; font-size: .56rem; }
  .site-page--index .journey-map__caption { display: none; }
  .site-page--index .journey-map__route,
  .site-page--index .journey-map__plane { display: none; }
  .site-page--index .journey-steps { grid-template-columns: 1fr; gap: 12px; }
  .site-page--index .journey-steps::before { content: ''; position: absolute; top: 7px; bottom: 7px; left: 20px; border-left: 1px dashed rgba(255, 228, 134, .42); }
  .site-page--index .journey-steps > li,
  .site-page--index .journey-steps > li:nth-child(even) { margin-top: 0; padding-left: 20px; }
  .site-page--index .journey-step__marker { width: 35px; height: 35px; position: absolute; left: 2px; top: 20px; margin: 0; border-width: 3px; }
  .site-page--index .journey-step__marker i { display: none; }
  .site-page--index .journey-step__card { min-height: 0; padding: 20px 17px 19px 35px; border-radius: 16px; }
  .site-page--index .journey-step__icon { width: 39px; height: 39px; border-radius: 12px; }
  .site-page--index .journey-step__icon .icon { width: 19px; height: 19px; }
  .site-page--index .journey-step__card h3 { font-size: 1.15rem; }
  .site-page--index .journey-step__card p { font-size: .84rem; line-height: 1.55; }
}

@media (prefers-reduced-motion: reduce) {
  .site-page--index .journey-map__route path,
  .site-page--index .journey-map__plane { animation: none !important; }
  .site-page--index .journey-heading__cta,
  .site-page--index .journey-step__card { transition: none !important; }
}

/* Homepage travel concierge — an editorial rail below the open slideshow. */
.site-page--index .hero {
  --concierge-ink: #2b202a;
  --concierge-wine: #76103f;
  --concierge-pink: #b5126b;
  --concierge-gold: #f4b719;
  --concierge-paper: #fffaf5;
  --stage-photo-height: clamp(448px, 44vw, 620px);
  padding-top: var(--stage-photo-height);
  background:
    radial-gradient(circle at 92% 29%, rgba(244, 183, 25, .16), transparent 22rem),
    radial-gradient(circle at 4% 86%, rgba(181, 18, 107, .08), transparent 25rem),
    var(--concierge-paper);
}

/* The photograph remains clean: all decorative travel language starts in the rail below. */
.site-page--index .hero::before,
.site-page--index .hero::after { display: none; }

.site-page--index .hero__slider { height: var(--stage-photo-height); }
.site-page--index .hero__slide::after {
  content: '';
  position: absolute;
  inset: auto 0 0;
  height: 22%;
  background: linear-gradient(0deg, rgba(30, 5, 20, .18), transparent);
  pointer-events: none;
}

.site-page--index .hero__content {
  width: min(calc(100% - 64px), 1320px);
  position: relative;
  z-index: 2;
  grid-template-columns: minmax(0, 1.28fr) minmax(350px, .72fr);
  gap: clamp(40px, 7vw, 104px);
  margin: 0 auto;
  padding: clamp(45px, 5.1vw, 76px) clamp(30px, 5vw, 70px) clamp(38px, 4vw, 58px);
  border: 1px solid #e8dce2;
  border-top: 0;
  border-radius: 0 0 30px 30px;
  background:
    linear-gradient(90deg, rgba(255, 251, 247, .98) 0%, rgba(255, 255, 255, .98) 61%, rgba(255, 247, 251, .98));
  box-shadow: 0 24px 54px rgba(72, 14, 45, .10);
}

.site-page--index .hero__content::before {
  content: '';
  position: absolute;
  top: 0;
  left: clamp(30px, 5vw, 70px);
  right: clamp(30px, 5vw, 70px);
  height: 3px;
  background: linear-gradient(90deg, var(--concierge-gold), #e859a8 47%, var(--concierge-wine));
}

.site-page--index .hero__content::after {
  content: '';
  width: min(31vw, 430px);
  height: 108px;
  position: absolute;
  z-index: 0;
  left: 6%;
  bottom: 0;
  border-top: 1px dashed rgba(181, 18, 107, .20);
  border-radius: 50%;
  transform: rotate(-5deg) translateY(62px);
  pointer-events: none;
}

.site-page--index .hero__copy { position: relative; z-index: 1; }

.site-page--index .hero-copy-kicker { margin-bottom: 20px; }
.site-page--index .hero .eyebrow--light {
  gap: 9px;
  color: var(--concierge-pink);
  font-size: .68rem;
  letter-spacing: .16em;
}
.site-page--index .hero .eyebrow--light::before {
  width: 38px;
  height: 8px;
  border: 1px solid rgba(181, 18, 107, .34);
  border-radius: 999px;
  background: linear-gradient(90deg, var(--concierge-gold) 0 45%, #fff 45% 54%, #d4318c 54%);
}

.site-page--index .hero-title-layout h1 {
  max-width: 760px;
  margin-bottom: 22px;
  color: var(--concierge-ink);
  font-size: clamp(3.55rem, 5.45vw, 6.35rem);
  letter-spacing: -.083em;
  line-height: .89;
}
.site-page--index .hero-title-layout h1 > span,
.site-page--index .hero-title-layout h1 > em { display: block; }
.site-page--index .hero h1 em {
  width: fit-content;
  margin-top: .13em;
  padding: 0 .07em .075em 0;
  color: var(--concierge-pink);
  background: linear-gradient(transparent 67%, rgba(244, 183, 25, .62) 67%);
  font-style: italic;
  -webkit-text-fill-color: var(--concierge-pink);
}

.site-page--index .hero__lead {
  max-width: 680px;
  margin-bottom: 28px;
  padding-left: 18px;
  border-left: 2px solid var(--concierge-gold);
  color: #5c505a;
  font-size: 1.02rem;
  line-height: 1.76;
}

.site-page--index .hero-promise-route { max-width: 720px; margin-bottom: 26px; }
.site-page--index .hero-promise-route::before {
  content: '';
  position: absolute;
  top: 34px;
  left: 11%;
  right: 11%;
  border-top: 1px dashed rgba(181, 18, 107, .28);
  pointer-events: none;
}
.site-page--index .hero .hero__assurance { position: relative; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.site-page--index .hero .hero__assurance li {
  min-height: 77px;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 11px;
  border: 1px solid #eee0e6;
  border-radius: 15px;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 9px 20px rgba(71, 20, 46, .06);
  transition: border-color 220ms ease-out, box-shadow 220ms ease-out, transform 220ms ease-out;
}
.site-page--index .hero .hero__assurance li::before {
  content: '';
  position: absolute;
  top: 5px;
  left: 50%;
  width: 7px;
  height: 7px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--concierge-gold);
  box-shadow: 0 0 0 2px rgba(244, 183, 25, .19);
  transform: translateX(-50%);
}
.site-page--index .hero .hero__assurance li:nth-child(2)::before { background: #d4318c; box-shadow: 0 0 0 2px rgba(212, 49, 140, .15); }
.site-page--index .hero .hero__assurance li:nth-child(3)::before { background: var(--concierge-wine); box-shadow: 0 0 0 2px rgba(118, 16, 63, .14); }
.site-page--index .hero-assurance__icon {
  width: 36px;
  height: 36px;
  border: 1px solid rgba(181, 18, 107, .10);
  border-radius: 12px;
  background: linear-gradient(135deg, #fff9d9, #f9e9f2);
  color: var(--concierge-pink);
  box-shadow: none;
}
.site-page--index .hero__assurance strong { color: #3c2a36; font-size: .71rem; line-height: 1.42; }
@media (hover: hover) and (pointer: fine) {
  .site-page--index .hero .hero__assurance li:hover {
    border-color: rgba(181, 18, 107, .32);
    background: #fff;
    box-shadow: 0 16px 27px rgba(71, 20, 46, .11);
    transform: translateY(-3px);
  }
}

.site-page--index .hero .hero__actions { gap: 10px; }
.site-page--index .hero-ticket-cta,
.site-page--index .hero-event-cta {
  min-height: 60px;
  padding: 8px 11px 8px 17px;
  border-radius: 15px;
  transition: box-shadow 220ms ease-out, transform 220ms ease-out, border-color 220ms ease-out, background-color 220ms ease-out;
}
.site-page--index .hero-ticket-cta {
  border-color: #ffe095;
  background: linear-gradient(112deg, #fff2ab, var(--concierge-gold));
  box-shadow: 0 13px 24px rgba(151, 98, 0, .16);
}
.site-page--index .hero-event-cta { border-color: #e4ccd9; background: #fff; }
.site-page--index .hero-ticket-cta small,
.site-page--index .hero-event-cta small { display: block; margin-bottom: 3px; font-size: .51rem; letter-spacing: .08em; }
.site-page--index .hero-ticket-cta > i,
.site-page--index .hero-event-cta > i { width: 34px; height: 34px; }
.site-page--index .hero-ticket-cta > i { background: var(--concierge-pink); }
.site-page--index .hero-event-cta > i { background: #f9edf3; }
@media (hover: hover) and (pointer: fine) {
  .site-page--index .hero-ticket-cta:hover,
  .site-page--index .hero-event-cta:hover { transform: translateY(-3px); }
  .site-page--index .hero-ticket-cta:hover { box-shadow: 0 19px 30px rgba(151, 98, 0, .24); }
  .site-page--index .hero-event-cta:hover { border-color: rgba(181, 18, 107, .42); box-shadow: 0 14px 24px rgba(71, 20, 46, .10); }
}

.site-page--index .hero-copy-coordinate {
  display: flex;
  margin-top: 22px;
  color: #806d79;
  font-size: .56rem;
  letter-spacing: .14em;
}
.site-page--index .hero-copy-coordinate::before { content: 'BẢN ĐỒ CẢM HỨNG'; color: var(--concierge-pink); }

.site-page--index .trip-search {
  position: relative;
  z-index: 1;
  min-height: 0;
  padding: 21px 24px 18px;
  overflow: hidden;
  border: 1px solid #eadce3;
  border-radius: 22px;
  background:
    radial-gradient(circle at 105% -7%, rgba(244, 183, 25, .26), transparent 31%),
    linear-gradient(145deg, #fff 0%, #fff9fc 100%);
  box-shadow: 0 20px 38px rgba(71, 20, 46, .09), inset 0 1px 0 #fff;
}
.site-page--index .trip-search::before {
  content: '';
  position: absolute;
  z-index: 0;
  right: -92px;
  bottom: -110px;
  width: 210px;
  height: 210px;
  display: block;
  border: 1px dashed rgba(181, 18, 107, .20);
  border-radius: 50%;
  background: none;
}
.site-page--index .trip-search::after { display: none; }
.site-page--index .trip-search > * { position: relative; z-index: 1; }

.site-page--index .trip-search__boarding {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: -1px 0 15px;
  padding-bottom: 13px;
  border-bottom: 1px dashed rgba(181, 18, 107, .20);
  color: var(--concierge-pink);
}
.site-page--index .trip-search__boarding-icon {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--concierge-pink), var(--concierge-wine));
  color: #fff;
  box-shadow: 0 7px 14px rgba(118, 16, 63, .17);
}
.site-page--index .trip-search__boarding-icon .icon { width: 14px; height: 14px; transform: rotate(9deg); }
.site-page--index .trip-search__boarding b,
.site-page--index .trip-search__boarding small { display: block; }
.site-page--index .trip-search__boarding b { font: 800 .57rem/1.15 var(--font-heading); letter-spacing: .12em; }
.site-page--index .trip-search__boarding small { margin-top: 3px; color: #806572; font: 600 .61rem/1.25 var(--font-heading); }
.site-page--index .trip-search__boarding > i {
  width: 27px;
  height: 8px;
  position: relative;
  flex: 1;
  margin-left: auto;
  border-top: 1px dashed rgba(181, 18, 107, .28);
}
.site-page--index .trip-search__boarding > i::after {
  content: '';
  width: 6px;
  height: 6px;
  position: absolute;
  right: 0;
  top: -4px;
  border-radius: 50%;
  background: var(--concierge-gold);
  box-shadow: 0 0 0 3px rgba(244, 183, 25, .16);
}

.site-page--index .trip-search__heading { gap: 10px; margin-bottom: 17px; }
.site-page--index .trip-search__heading > span {
  width: 42px;
  height: 42px;
  display: grid;
  border: 1px solid rgba(181, 18, 107, .10);
  border-radius: 13px;
  background: linear-gradient(135deg, #fff7d8, #f9e9f2);
  color: var(--concierge-pink);
}
.site-page--index .trip-search__heading > span .icon { width: 19px; height: 19px; }
.site-page--index .trip-search__heading strong { color: #33232e; font-size: 1rem; line-height: 1.25; }
.site-page--index .trip-search__heading small { color: #75606d; font-size: .72rem; line-height: 1.42; }
.site-page--index .trip-search label {
  margin: 13px 0 6px;
  color: #694257;
  font-size: .60rem;
  font-weight: 800;
  letter-spacing: .105em;
  text-transform: uppercase;
}
.site-page--index .trip-search input,
.site-page--index .trip-search select {
  min-height: 50px;
  border-color: #e3d8df;
  border-radius: 13px;
  color: #342630;
  background: rgba(255, 255, 255, .94);
  transition: border-color 180ms ease-out, box-shadow 180ms ease-out, background-color 180ms ease-out;
}
.site-page--index .trip-search input:hover,
.site-page--index .trip-search select:hover { border-color: rgba(181, 18, 107, .35); }
.site-page--index .trip-search input:focus,
.site-page--index .trip-search select:focus {
  border-color: var(--concierge-pink);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(181, 18, 107, .11);
}
.site-page--index .trip-search .button {
  min-height: 52px;
  margin-top: 18px;
  border: 1px solid #ffe087;
  border-radius: 14px;
  color: #64183c;
  background: linear-gradient(105deg, #fff3b1, var(--concierge-gold));
  box-shadow: 0 12px 23px rgba(151, 98, 0, .15);
  transition: box-shadow 220ms ease-out, transform 220ms ease-out, filter 220ms ease-out;
}
.site-page--index .trip-search .button .icon { color: #a20f5d; transition: transform 220ms ease-out; }
@media (hover: hover) and (pointer: fine) {
  .site-page--index .trip-search .button:hover { filter: saturate(1.08); box-shadow: 0 17px 29px rgba(151, 98, 0, .22); transform: translateY(-2px); }
  .site-page--index .trip-search .button:hover .icon { transform: translateX(3px); }
}
.site-page--index .trip-search__route {
  height: 18px;
  display: block;
  position: relative;
  margin: 10px 5px -2px;
  overflow: hidden;
}
.site-page--index .trip-search__route > i {
  position: absolute;
  top: 9px;
  right: 0;
  left: 0;
  border-top: 1px dashed rgba(181, 18, 107, .22);
}
.site-page--index .trip-search__route > b {
  width: 7px;
  height: 7px;
  position: absolute;
  right: 0;
  top: 6px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--concierge-gold);
  box-shadow: 0 0 0 2px rgba(244, 183, 25, .17);
}
.site-page--index .trip-search__route > em {
  width: 23px;
  height: 18px;
  position: absolute;
  left: 18%;
  top: 0;
  display: grid;
  place-items: center;
  color: var(--concierge-pink);
  font-style: normal;
}
.site-page--index .trip-search__route .icon { width: 13px; height: 13px; transform: rotate(13deg); }

.site-page--index .hero-slider-controls {
  top: calc(var(--stage-photo-height) - 56px);
  right: clamp(24px, 4vw, 68px);
}
.site-page--index .hero-slider-actions { background: rgba(38, 9, 27, .68); backdrop-filter: blur(5px); }

@media (max-width: 1020px) {
  .site-page--index .hero { --stage-photo-height: 470px; }
  .site-page--index .hero__content { grid-template-columns: 1fr; gap: 35px; }
  .site-page--index .trip-search { max-width: none; padding: 23px 28px 19px; }
}

@media (max-width: 680px) {
  .site-page--index .hero { --stage-photo-height: 334px; padding-top: var(--stage-photo-height); }
  .site-page--index .hero__content {
    width: calc(100% - 24px);
    gap: 27px;
    padding: 31px 18px 24px;
    border-radius: 0 0 20px 20px;
  }
  .site-page--index .hero__content::before { left: 18px; right: 18px; }
  .site-page--index .hero__content::after { left: 8%; width: 77%; }
  .site-page--index .hero-copy-kicker { margin-bottom: 16px; }
  .site-page--index .hero .eyebrow--light { font-size: .57rem; letter-spacing: .1em; }
  .site-page--index .hero .eyebrow--light::before { width: 28px; height: 6px; }
  .site-page--index .hero-title-layout h1 { margin-bottom: 18px; font-size: clamp(2.85rem, 12.3vw, 3.78rem); line-height: .91; }
  .site-page--index .hero__lead { margin-bottom: 22px; padding-left: 13px; font-size: .91rem; line-height: 1.66; }
  .site-page--index .hero-promise-route { margin-bottom: 21px; }
  .site-page--index .hero-promise-route::before { top: 20px; bottom: 20px; left: 18px; right: auto; border-top: 0; border-left: 1px dashed rgba(181, 18, 107, .28); }
  .site-page--index .hero .hero__assurance { grid-template-columns: 1fr; gap: 7px; }
  .site-page--index .hero .hero__assurance li { min-height: 53px; grid-template-columns: 33px minmax(0, 1fr); padding: 8px 10px 8px 15px; }
  .site-page--index .hero .hero__assurance li::before { left: 18px; top: 50%; width: 6px; height: 6px; transform: translate(-50%, -50%); }
  .site-page--index .hero-assurance__icon { width: 33px; height: 33px; border-radius: 10px; }
  .site-page--index .hero__assurance strong { font-size: .69rem; }
  .site-page--index .hero .hero__actions { display: grid; grid-template-columns: 1fr; gap: 8px; }
  .site-page--index .hero-ticket-cta,
  .site-page--index .hero-event-cta { width: 100%; min-height: 56px; justify-content: space-between; }
  .site-page--index .hero-copy-coordinate { display: none; }
  .site-page--index .trip-search { padding: 19px 15px 16px; border-radius: 17px; }
  .site-page--index .trip-search__boarding { margin-bottom: 13px; padding-bottom: 11px; }
  .site-page--index .trip-search__boarding small { font-size: .57rem; }
  .site-page--index .trip-search__heading { margin-bottom: 15px; }
  .site-page--index .trip-search__heading > span { width: 39px; height: 39px; border-radius: 11px; }
  .site-page--index .trip-search__heading strong { font-size: .93rem; }
  .site-page--index .trip-search__heading small { font-size: .67rem; }
  .site-page--index .trip-search label { margin-top: 11px; font-size: .56rem; }
  .site-page--index .trip-search input,
  .site-page--index .trip-search select,
  .site-page--index .trip-search .button { min-height: 50px; }
  .site-page--index .trip-search .button { margin-top: 16px; }
  .site-page--index .hero-slider-controls { width: calc(100% - 24px); top: calc(var(--stage-photo-height) - 48px); right: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .site-page--index .hero .hero__assurance li,
  .site-page--index .hero-ticket-cta,
  .site-page--index .hero-event-cta,
  .site-page--index .trip-search input,
  .site-page--index .trip-search select,
  .site-page--index .trip-search .button,
  .site-page--index .trip-search .button .icon { transition: none !important; }
}

/* Hero promises — three equal travel checkpoints, kept on the editorial rail below the slideshow. */
.site-page--index .hero-promise-route {
  max-width: 748px;
  margin-bottom: 30px;
  padding-top: 8px;
}

.site-page--index .hero-promise-route::before {
  top: 31px;
  left: 13%;
  right: 13%;
  border-top-color: rgba(181, 18, 107, .23);
}

.site-page--index .hero .hero__assurance {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(9px, 1.15vw, 14px);
}

.site-page--index .hero .hero__assurance li {
  --promise-accent: #f4b719;
  --promise-wash: rgba(244, 183, 25, .14);
  min-height: 106px;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 42px minmax(0, auto);
  align-content: center;
  justify-items: center;
  gap: 8px;
  padding: 16px 12px 14px;
  overflow: hidden;
  border: 1px solid rgba(126, 71, 101, .14);
  border-radius: 18px;
  background: linear-gradient(142deg, #fff, rgba(255, 252, 250, .96));
  box-shadow: 0 12px 28px rgba(71, 20, 46, .07), inset 0 1px 0 rgba(255, 255, 255, .95);
  isolation: isolate;
  transition: border-color 220ms ease-out, box-shadow 220ms ease-out, transform 220ms ease-out, background-color 220ms ease-out;
}

.site-page--index .hero .hero__assurance li:nth-child(2) {
  --promise-accent: #d4318c;
  --promise-wash: rgba(212, 49, 140, .13);
}

.site-page--index .hero .hero__assurance li:nth-child(3) {
  --promise-accent: #76103f;
  --promise-wash: rgba(118, 16, 63, .13);
}

.site-page--index .hero .hero__assurance li::before {
  top: 0;
  left: 50%;
  width: 9px;
  height: 9px;
  z-index: 2;
  border: 3px solid #fff;
  background: var(--promise-accent);
  box-shadow: 0 0 0 3px var(--promise-wash);
  transform: translate(-50%, -50%);
}

.site-page--index .hero .hero__assurance li::after {
  content: '';
  width: 126px;
  height: 126px;
  position: absolute;
  z-index: -1;
  right: -76px;
  bottom: -78px;
  border: 1px solid var(--promise-wash);
  border-radius: 50%;
  background: radial-gradient(circle at 36% 33%, var(--promise-wash), transparent 64%);
  pointer-events: none;
  transition: transform 280ms ease-out;
}

.site-page--index .hero-assurance__icon {
  width: 44px;
  height: 44px;
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  border: 1px solid var(--promise-wash);
  border-radius: 14px;
  background: linear-gradient(145deg, #fff, var(--promise-wash));
  color: var(--promise-accent);
  box-shadow: 0 8px 17px rgba(71, 20, 46, .08);
  transition: transform 220ms ease-out, background-color 220ms ease-out;
}

.site-page--index .hero__assurance strong {
  position: relative;
  z-index: 1;
  display: block;
  color: #372833;
  font-size: clamp(.73rem, .78vw, .84rem);
  line-height: 1.42;
  letter-spacing: -.015em;
  text-align: center;
}

@media (hover: hover) and (pointer: fine) {
  .site-page--index .hero .hero__assurance li:hover {
    border-color: var(--promise-accent);
    background: linear-gradient(142deg, #fff, var(--promise-wash));
    box-shadow: 0 19px 36px rgba(71, 20, 46, .13), inset 0 1px 0 rgba(255, 255, 255, .96);
    transform: translateY(-4px);
  }

  .site-page--index .hero .hero__assurance li:hover::after { transform: translate(-13px, -12px) scale(1.08); }
  .site-page--index .hero .hero__assurance li:hover .hero-assurance__icon { background: var(--promise-accent); color: #fff; transform: rotate(-6deg) translateY(-2px); }
}

.site-page--index .hero .hero__assurance li:active { transform: translateY(-1px) scale(.985); }
.motion-ready .site-page--index .hero .hero__assurance li[data-reveal] { transition-delay: calc(var(--promise-order, 0) * 65ms); }

@media (max-width: 680px) {
  .site-page--index .hero-promise-route { margin-bottom: 24px; padding-top: 0; }
  .site-page--index .hero-promise-route::before { top: 39px; bottom: 39px; left: 50%; right: auto; border-top: 0; border-left: 1px dashed rgba(181, 18, 107, .25); }
  .site-page--index .hero .hero__assurance { grid-template-columns: 1fr; gap: 9px; }
  .site-page--index .hero .hero__assurance li { min-height: 80px; grid-template-columns: 1fr; grid-template-rows: 32px auto; gap: 6px; padding: 10px 16px 11px; border-radius: 15px; }
  .site-page--index .hero .hero__assurance li::before { top: 0; left: 50%; width: 7px; height: 7px; transform: translate(-50%, -50%); }
  .site-page--index .hero .hero__assurance li::after { width: 96px; height: 96px; right: -59px; bottom: -62px; }
  .site-page--index .hero-assurance__icon { width: 32px; height: 32px; border-radius: 10px; }
  .site-page--index .hero__assurance strong { font-size: .76rem; }
}

@media (prefers-reduced-motion: reduce) {
  .site-page--index .hero .hero__assurance li,
  .site-page--index .hero .hero__assurance li::after,
  .site-page--index .hero-assurance__icon { transition: none !important; }
}

/* Hero type clarity — clear editorial copy, with no haze over the open slideshow. */
.site-page--index .hero .eyebrow--light,
.site-page--index .hero-title-layout h1,
.site-page--index .hero-title-layout h1 > span,
.site-page--index .hero-title-layout h1 > em,
.site-page--index .hero__lead {
  filter: none;
  opacity: 1;
  text-shadow: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.site-page--index .hero-title-layout h1 {
  color: #271d27;
  font-weight: 700;
  letter-spacing: -.058em;
}

.site-page--index .hero h1 em {
  color: #a30f5d;
  -webkit-text-fill-color: #a30f5d;
}

.site-page--index .hero__lead {
  max-width: 690px;
  color: #493943;
  font-weight: 500;
  letter-spacing: 0;
}

@media (max-width: 680px) {
  .site-page--index .hero__lead { font-size: 1rem; line-height: 1.68; }
}

/* Partnership proof — a dedicated travel-and-event trust stage. */
.site-page--index .partners-section {
  padding-block: clamp(70px, 9vw, 128px);
  background:
    radial-gradient(circle at 7% 8%, rgba(244, 183, 25, .17), transparent 20%),
    linear-gradient(180deg, #fff9f3 0%, #fff 100%);
}

.site-page--index .partners-shell {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(30px, 5.2vw, 76px);
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: clamp(26px, 3vw, 42px);
  background:
    radial-gradient(circle at 91% 7%, rgba(244, 183, 25, .28), transparent 25%),
    radial-gradient(circle at 14% 100%, rgba(8, 127, 146, .18), transparent 32%),
    linear-gradient(136deg, #2a0a22 0%, #610b3b 48%, #9e145c 100%);
  box-shadow: 0 34px 90px rgba(65, 10, 42, .23), inset 0 1px 0 rgba(255, 255, 255, .12);
}

.site-page--index .partners-shell::before,
.site-page--index .partners-shell::after {
  content: '';
  position: absolute;
  z-index: -1;
  border-radius: 50%;
  pointer-events: none;
}

.site-page--index .partners-shell::before {
  width: min(40vw, 560px);
  aspect-ratio: 1;
  right: -17%;
  top: -39%;
  border: 1px dashed rgba(255, 225, 123, .34);
  box-shadow: 0 0 0 32px rgba(255, 225, 123, .035), 0 0 0 76px rgba(255, 225, 123, .02);
}

.site-page--index .partners-shell::after {
  width: min(33vw, 470px);
  aspect-ratio: 1;
  left: -18%;
  bottom: -45%;
  border: 1px solid rgba(160, 238, 230, .18);
}

.site-page--index .partners-heading,
.site-page--index .partner-metrics,
.site-page--index .partner-logo-wrap,
.site-page--index .partner-segments,
.site-page--index .partner-promise { position: relative; z-index: 1; }

.site-page--index .partners-heading {
  grid-template-columns: minmax(0, 1.18fr) minmax(310px, .82fr);
  align-items: center;
  gap: clamp(34px, 7vw, 104px);
  padding-bottom: clamp(32px, 4vw, 52px);
}

.site-page--index .partners-heading .eyebrow { color: #ffe37f; }
.site-page--index .partners-heading h2 { max-width: 760px; color: #fff; font-size: clamp(2.15rem, 4.5vw, 4.3rem); line-height: 1.04; letter-spacing: -.065em; }
.site-page--index .partners-heading__copy { position: relative; padding: 26px 80px 26px 28px; border: 1px solid rgba(255, 255, 255, .14); border-radius: 20px; background: linear-gradient(135deg, rgba(255, 255, 255, .1), rgba(255, 255, 255, .035)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08); }
.site-page--index .partners-heading__copy > p:first-child { margin-bottom: 18px; color: rgba(255, 255, 255, .87); font-size: clamp(.98rem, 1.15vw, 1.08rem); line-height: 1.72; }
.site-page--index .partners-note { width: fit-content; margin: 0; padding: 8px 10px; border: 1px solid rgba(255, 226, 123, .24); border-radius: 999px; color: #ffe37f; background: rgba(255, 226, 123, .08); font-size: .74rem; line-height: 1.45; }
.site-page--index .partners-note .icon { width: 15px; height: 15px; }

.site-page--index .partners-heading__route { height: 28px; max-width: 360px; position: relative; display: flex; align-items: center; gap: 10px; margin-top: 25px; color: #ffe37f; }
.site-page--index .partners-heading__route::after { content: ''; width: 7px; height: 7px; flex: 0 0 auto; border: 2px solid #ffe37f; border-radius: 50%; background: #711345; box-shadow: 0 0 0 5px rgba(255, 225, 123, .09); }
.site-page--index .partners-heading__route > span { width: 28px; height: 28px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid rgba(255, 225, 123, .3); border-radius: 50%; background: rgba(255, 225, 123, .08); }
.site-page--index .partners-heading__route .icon { width: 15px; height: 15px; transform: rotate(20deg); }
.site-page--index .partners-heading__route > i { height: 1px; flex: 1; border-top: 1px dashed rgba(255, 225, 123, .45); }
.site-page--index .partners-heading__route small { position: absolute; left: 40px; bottom: -8px; color: rgba(255, 255, 255, .6); font-size: .57rem; font-weight: 700; letter-spacing: .13em; }

.site-page--index .partners-heading__signal { width: 80px; height: 80px; position: absolute; top: 18px; right: 17px; display: grid; place-items: center; border: 1px dashed rgba(255, 225, 123, .42); border-radius: 50%; color: #ffe37f; text-align: center; transform: rotate(8deg); }
.site-page--index .partners-heading__signal::before { content: ''; width: 58px; height: 58px; position: absolute; border: 1px solid rgba(255, 225, 123, .24); border-radius: 50%; }
.site-page--index .partners-heading__signal > span { position: relative; z-index: 1; font: 700 1.15rem/1 var(--font-heading); letter-spacing: -.07em; }
.site-page--index .partners-heading__signal small { position: absolute; top: 53px; z-index: 1; color: rgba(255, 255, 255, .68); font-size: .42rem; font-weight: 700; letter-spacing: .08em; line-height: 1.25; }
.site-page--index .partners-heading__signal > i { width: 16px; height: 16px; position: absolute; right: -5px; top: 9px; display: grid; place-items: center; border-radius: 50%; color: #7b1649; background: #ffe37f; }
.site-page--index .partners-heading__signal .icon { width: 9px; height: 9px; }

.site-page--index .partner-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border: 1px solid rgba(255, 255, 255, .15); border-radius: 20px; background: rgba(21, 4, 16, .16); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06); }
.site-page--index .partner-metric { min-height: 146px; position: relative; display: flex; align-items: flex-start; gap: 14px; padding: 25px 19px; overflow: hidden; border-right: 1px solid rgba(255, 255, 255, .13); transition: background-color 220ms ease-out; }
.site-page--index .partner-metric:last-child { border-right: 0; }
.site-page--index .partner-metric::before { content: ''; width: 80px; height: 80px; position: absolute; right: -44px; bottom: -46px; border: 1px solid rgba(255, 225, 123, .16); border-radius: 50%; transition: transform 260ms ease-out; }
.site-page--index .partner-metric > i { width: 22px; height: 3px; position: absolute; bottom: 0; left: 20px; border-radius: 999px 999px 0 0; background: #ffe37f; }
.site-page--index .partner-metric__icon { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid rgba(255, 225, 123, .25); border-radius: 12px; color: #ffe37f; background: rgba(255, 225, 123, .08); }
.site-page--index .partner-metric__icon .icon { width: 19px; height: 19px; }
.site-page--index .partner-metric strong { display: block; color: #fff; font: 600 clamp(1.75rem, 2.65vw, 2.8rem)/.95 var(--font-heading); letter-spacing: -.06em; }
.site-page--index .partner-metric span:not(.partner-metric__icon) { display: block; max-width: 140px; margin-top: 8px; color: rgba(255, 255, 255, .72); font-size: .74rem; line-height: 1.42; }

.site-page--index .partner-logo-wrap { margin-top: clamp(32px, 4vw, 56px); padding: clamp(20px, 2.6vw, 30px); border: 1px solid rgba(255, 255, 255, .14); border-radius: 22px; background: rgba(255, 255, 255, .06); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08); }
.site-page--index .partner-logo-heading { align-items: center; margin-bottom: 22px; }
.site-page--index .partner-logo-heading p { color: #fff; font-family: var(--font-heading); font-size: 1.08rem; font-weight: 600; letter-spacing: -.025em; }
.site-page--index .partner-logo-heading span { display: block; margin-top: 5px; color: rgba(255, 255, 255, .64); font-size: .76rem; }
.site-page--index .partner-logo-heading > small { display: inline-flex; align-items: center; gap: 7px; margin: 0; color: #ffe37f; font-size: .67rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.site-page--index .partner-logo-heading > small .icon { width: 14px; height: 14px; }
.site-page--index .partner-logo-marquee { margin-inline: -7px; padding: 6px 7px 9px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 3.5%, #000 96.5%, transparent); mask-image: linear-gradient(90deg, transparent, #000 3.5%, #000 96.5%, transparent); }
.site-page--index .partner-logo-track { animation-duration: 54s; }
.site-page--index .partner-logo-group { gap: 14px; padding-right: 14px; }
.site-page--index .partner-logo-card { width: clamp(155px, 13.7vw, 202px); min-height: 132px; position: relative; padding: 13px 13px 11px; overflow: hidden; border: 1px solid rgba(255, 255, 255, .7); border-radius: 16px; background: linear-gradient(145deg, #fff, #fff7ee); box-shadow: 0 12px 28px rgba(26, 2, 17, .16); }
.site-page--index .partner-logo-card::before { content: ''; width: 45px; height: 3px; position: absolute; top: 0; left: 50%; border-radius: 0 0 999px 999px; background: linear-gradient(90deg, #f4b719, #dc3495); transform: translateX(-50%); }
.site-page--index .partner-logo-card img { width: 92px; height: 80px; filter: grayscale(.55); opacity: .82; }
.site-page--index .partner-logo-card figcaption { margin-top: 5px; color: #5b4452; font-size: .72rem; font-weight: 600; }

.site-page--index .partner-segments { gap: 16px; margin-top: 22px; }
.site-page--index .partner-segment { min-height: 264px; padding: 26px; border: 1px solid rgba(255, 255, 255, .72); border-radius: 18px; background: linear-gradient(145deg, #fff, #fff7f4); box-shadow: 0 15px 35px rgba(26, 2, 17, .14); }
.site-page--index .partner-segment::before { height: 4px; background: linear-gradient(90deg, #f4b719, #dc3495); }
.site-page--index .partner-segment:nth-child(2)::before { background: linear-gradient(90deg, #40b9c0, #91e2d0); }
.site-page--index .partner-segment:nth-child(3)::before { background: linear-gradient(90deg, #dc3495, #8c1451); }
.site-page--index .partner-segment__icon { width: 44px; height: 44px; margin-bottom: 21px; border-radius: 13px; background: #fff4c9; color: #9f6310; }
.site-page--index .partner-segment__icon--aqua { background: #e4f9f6; color: #087f92; }
.site-page--index .partner-segment__icon--pink { background: #ffeaf5; color: #ba176d; }
.site-page--index .partner-segment__label { color: #ab1764; font-size: .65rem; }
.site-page--index .partner-segment h3 { color: #35182a; font-size: 1.32rem; line-height: 1.28; }
.site-page--index .partner-segment > p:not(.partner-segment__label) { color: #6d5362; }
.site-page--index .partner-segment small { border-top-color: rgba(181, 18, 107, .13); color: #8a6f7d; }

.site-page--index .partner-promise { align-items: center; gap: 30px; margin-top: 18px; padding: 29px 31px; border: 1px solid rgba(255, 227, 125, .28); border-radius: 19px; background: linear-gradient(113deg, rgba(244, 183, 25, .97), #ffd864 48%, #f5b719 100%); box-shadow: 0 18px 42px rgba(32, 1, 19, .18); }
.site-page--index .partner-promise .eyebrow { color: #7b1649; }
.site-page--index .partner-promise h3 { color: #45142d; font-size: clamp(1.15rem, 1.8vw, 1.45rem); font-weight: 600; }
.site-page--index .partner-promise .button { min-height: 48px; border-color: #64103a; color: #fff; background: #64103a; box-shadow: 0 9px 20px rgba(76, 9, 43, .2); }

@media (hover: hover) and (pointer: fine) {
  .site-page--index .partner-metric:hover { background: rgba(255, 255, 255, .07); }
  .site-page--index .partner-metric:hover::before { transform: scale(1.16) translate(-9px, -6px); }
  .site-page--index .partner-logo-card:hover { border-color: #f1b82a; box-shadow: 0 19px 40px rgba(26, 2, 17, .22); transform: translateY(-4px); }
  .site-page--index .partner-logo-card:hover img { filter: grayscale(0); opacity: 1; }
  .site-page--index .partner-segment:hover { transform: translateY(-4px); box-shadow: 0 24px 48px rgba(26, 2, 17, .2); }
  .site-page--index .partner-promise .button:hover { background: #8a164f; transform: translateY(-2px); }
}

@media (max-width: 900px) {
  .site-page--index .partners-heading { grid-template-columns: 1fr; gap: 27px; }
  .site-page--index .partners-heading__copy { max-width: 650px; }
  .site-page--index .partner-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-page--index .partner-metric:nth-child(2) { border-right: 0; }
  .site-page--index .partner-metric:nth-child(-n + 2) { border-bottom: 1px solid rgba(255, 255, 255, .13); }
  .site-page--index .partner-metric { min-height: 128px; }
  .site-page--index .partner-segments { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .site-page--index .partners-section { padding-block: 58px; }
  .site-page--index .partners-shell { padding: 27px 16px 18px; border-radius: 25px; }
  .site-page--index .partners-heading { padding-bottom: 28px; }
  .site-page--index .partners-heading h2 { max-width: 350px; font-size: clamp(2rem, 10.8vw, 2.72rem); }
  .site-page--index .partners-heading__route { max-width: 300px; margin-top: 20px; }
  .site-page--index .partners-heading__copy { padding: 22px 73px 21px 18px; border-radius: 17px; }
  .site-page--index .partners-heading__copy > p:first-child { font-size: .93rem; }
  .site-page--index .partners-heading__signal { width: 66px; height: 66px; top: 17px; right: 10px; }
  .site-page--index .partners-heading__signal::before { width: 48px; height: 48px; }
  .site-page--index .partners-heading__signal > span { font-size: 1rem; }
  .site-page--index .partners-heading__signal small { top: 44px; font-size: .35rem; }
  .site-page--index .partners-heading__signal > i { right: -5px; top: 5px; }
  .site-page--index .partner-metrics { border-radius: 16px; }
  .site-page--index .partner-metric { min-height: 112px; gap: 10px; padding: 18px 12px; }
  .site-page--index .partner-metric__icon { width: 33px; height: 33px; border-radius: 10px; }
  .site-page--index .partner-metric__icon .icon { width: 16px; height: 16px; }
  .site-page--index .partner-metric strong { font-size: 1.55rem; }
  .site-page--index .partner-metric span:not(.partner-metric__icon) { margin-top: 6px; font-size: .66rem; }
  .site-page--index .partner-metric > i { left: 12px; width: 18px; }
  .site-page--index .partner-logo-wrap { margin-top: 25px; padding: 18px 12px 16px; border-radius: 17px; }
  .site-page--index .partner-logo-heading { align-items: flex-start; flex-direction: column; gap: 11px; margin-bottom: 16px; padding-inline: 4px; }
  .site-page--index .partner-logo-heading > small { font-size: .62rem; }
  .site-page--index .partner-logo-card { width: 148px; min-height: 118px; border-radius: 14px; }
  .site-page--index .partner-logo-card img { width: 80px; height: 68px; }
  .site-page--index .partner-segment { min-height: 0; padding: 23px 19px; border-radius: 16px; }
  .site-page--index .partner-promise { align-items: flex-start; flex-direction: column; gap: 20px; padding: 24px 20px; border-radius: 16px; }
  .site-page--index .partner-promise .button { width: 100%; white-space: normal; }
}

@media (prefers-reduced-motion: reduce) {
  .site-page--index .partner-metric,
  .site-page--index .partner-metric::before,
  .site-page--index .partner-logo-card,
  .site-page--index .partner-segment,
  .site-page--index .partner-promise .button { transition: none !important; }
}

/* Lightness and legibility pass — preserve Sắc Việt accents without large dark surfaces. */
.site-page--index .journey-process {
  color: #3d1930;
  background:
    radial-gradient(circle at 88% 9%, rgba(244, 183, 25, .23), transparent 23rem),
    radial-gradient(circle at 7% 89%, rgba(220, 52, 149, .12), transparent 25rem),
    linear-gradient(135deg, #fff9f1 0%, #fff0f6 54%, #fff9e4 100%);
}

.site-page--index .journey-process::before {
  opacity: .3;
  background-image: radial-gradient(circle, rgba(181, 18, 107, .42) 1px, transparent 1.5px);
}

.site-page--index .journey-process::after { color: rgba(181, 18, 107, .055); }
.site-page--index .journey-heading .eyebrow { color: #a6105c; }
.site-page--index .journey-heading h2 { color: #3b1730; }
.site-page--index .journey-heading h2 > em { color: #b5126b; }

.site-page--index .journey-heading__aside { border-left-color: rgba(208, 146, 28, .8); }
.site-page--index .journey-heading__aside > p { color: #604a58; }

.site-page--index .journey-heading__cta {
  border-color: #98114f;
  background: linear-gradient(118deg, #8f104a, #bd1968 58%, #d82782);
  color: #fff !important;
  box-shadow: 0 14px 27px rgba(139, 15, 73, .2);
}

.site-page--index .journey-heading__cta small { color: rgba(255, 255, 255, .78); }
.site-page--index .journey-heading__cta .icon {
  border-color: rgba(255, 255, 255, .3);
  background: rgba(255, 255, 255, .16);
}
.site-page--index .journey-heading__cta:focus-visible { outline-color: #5a0b31; }

.site-page--index .journey-map {
  border-color: rgba(181, 18, 107, .17);
  background:
    linear-gradient(118deg, rgba(255, 255, 255, .94), rgba(255, 250, 245, .84) 55%, rgba(255, 245, 212, .84)),
    #fff8f4;
  box-shadow: 0 26px 58px rgba(107, 24, 63, .12), inset 0 1px 0 #fff;
}

.site-page--index .journey-map::before {
  border-color: rgba(181, 18, 107, .16);
  box-shadow: inset 0 0 0 35px rgba(181, 18, 107, .022), inset 0 0 0 98px rgba(244, 183, 25, .045);
}

.site-page--index .journey-map::after { border-top-color: rgba(181, 18, 107, .14); }
.site-page--index .journey-map__label { color: #9d1457; }
.site-page--index .journey-map__caption { color: #815a6d; }
.site-page--index .journey-map__route path { stroke: rgba(167, 18, 89, .58); }

.site-page--index .journey-map__plane {
  border-color: rgba(181, 18, 107, .35);
  background: #a41156;
  color: #fff;
  box-shadow: 0 10px 24px rgba(136, 12, 67, .22), 0 0 0 7px rgba(244, 183, 25, .17);
}

.site-page--index .journey-step__marker {
  border-color: #fffaf1;
  background: #f3b622;
  color: #641038;
  box-shadow: 0 8px 18px rgba(123, 30, 69, .18), 0 0 0 5px rgba(244, 183, 25, .18);
}

.site-page--index .journey-step__marker i { background: #7e1543; box-shadow: 0 0 0 4px rgba(126, 21, 67, .1); }

.site-page--index .journey-step__card {
  border-color: rgba(181, 18, 107, .17);
  background: linear-gradient(150deg, rgba(255, 255, 255, .97), rgba(255, 246, 250, .88));
  box-shadow: 0 18px 42px rgba(112, 23, 66, .11);
}

.site-page--index .journey-step__coordinate { color: #9a7084; }
.site-page--index .journey-step__card small { color: #a7115b; }
.site-page--index .journey-step__card h3 { color: #39172d; }
.site-page--index .journey-step__card p { color: #66515e; }

@media (hover: hover) and (pointer: fine) {
  .site-page--index .journey-heading__cta:hover { box-shadow: 0 18px 34px rgba(139, 15, 73, .28); }
  .site-page--index .journey-step__card:hover,
  .site-page--index .journey-step__card:focus-within {
    border-color: rgba(181, 18, 107, .4);
    background: #fff;
    box-shadow: 0 24px 48px rgba(112, 23, 66, .17);
  }
}

/* Partner proof becomes a bright editorial stage; brand wine remains an accent, not the backdrop. */
.site-page--index .partners-section {
  background:
    radial-gradient(circle at 7% 8%, rgba(244, 183, 25, .18), transparent 20%),
    linear-gradient(180deg, #fffaf5 0%, #fff 100%);
}

.site-page--index .partners-shell {
  border-color: rgba(181, 18, 107, .16);
  background:
    radial-gradient(circle at 91% 7%, rgba(244, 183, 25, .26), transparent 25%),
    radial-gradient(circle at 14% 100%, rgba(34, 163, 173, .11), transparent 32%),
    linear-gradient(136deg, #fffdf9 0%, #fff1f6 50%, #fff9df 100%);
  box-shadow: 0 28px 76px rgba(101, 23, 60, .13), inset 0 1px 0 #fff;
}

.site-page--index .partners-shell::before {
  border-color: rgba(181, 18, 107, .23);
  box-shadow: 0 0 0 32px rgba(181, 18, 107, .025), 0 0 0 76px rgba(244, 183, 25, .035);
}

.site-page--index .partners-shell::after { border-color: rgba(8, 127, 146, .2); }
.site-page--index .partners-heading .eyebrow { color: #a6105c; }
.site-page--index .partners-heading h2 { color: #39172d; }

.site-page--index .partners-heading__copy {
  border-color: rgba(181, 18, 107, .14);
  background: rgba(255, 255, 255, .74);
  box-shadow: 0 14px 34px rgba(110, 25, 66, .07), inset 0 1px 0 #fff;
}

.site-page--index .partners-heading__copy > p:first-child { color: #614a58; }
.site-page--index .partners-note {
  border-color: rgba(181, 18, 107, .2);
  color: #9e1255;
  background: #fff4f8;
}

.site-page--index .partners-heading__route { color: #a6105c; }
.site-page--index .partners-heading__route::after {
  border-color: #b5126b;
  background: #f6bd27;
  box-shadow: 0 0 0 5px rgba(181, 18, 107, .08);
}

.site-page--index .partners-heading__route > span {
  border-color: rgba(181, 18, 107, .24);
  background: #fff1f7;
}

.site-page--index .partners-heading__route > i { border-top-color: rgba(181, 18, 107, .38); }
.site-page--index .partners-heading__route small { color: #805a6d; }

.site-page--index .partners-heading__signal {
  border-color: rgba(181, 18, 107, .38);
  color: #a6105c;
}

.site-page--index .partners-heading__signal::before { border-color: rgba(181, 18, 107, .22); }
.site-page--index .partners-heading__signal small { color: #805a6d; }
.site-page--index .partners-heading__signal > i { color: #7b1649; background: #f8c63c; }

.site-page--index .partner-metrics {
  border-color: rgba(181, 18, 107, .17);
  background: rgba(255, 255, 255, .7);
  box-shadow: inset 0 1px 0 #fff;
}

.site-page--index .partner-metric { border-right-color: rgba(181, 18, 107, .14); }
.site-page--index .partner-metric::before { border-color: rgba(181, 18, 107, .15); }
.site-page--index .partner-metric > i { background: linear-gradient(90deg, #f0ae1a, #bd1968); }

.site-page--index .partner-metric__icon {
  border-color: rgba(181, 18, 107, .18);
  color: #a6105c;
  background: #fff1f7;
}

.site-page--index .partner-metric strong { color: #42172f; }
.site-page--index .partner-metric span:not(.partner-metric__icon) { color: #6b5361; }

.site-page--index .partner-logo-wrap {
  border-color: rgba(181, 18, 107, .14);
  background: rgba(255, 255, 255, .7);
  box-shadow: inset 0 1px 0 #fff;
}

.site-page--index .partner-logo-heading p { color: #42172f; }
.site-page--index .partner-logo-heading span { color: #725967; }
.site-page--index .partner-logo-heading > small { color: #a6105c; }

.site-page--index .partner-promise { box-shadow: 0 18px 42px rgba(180, 123, 19, .18); }

@media (hover: hover) and (pointer: fine) {
  .site-page--index .partner-metric:hover { background: rgba(255, 246, 250, .92); }
  .site-page--index .partner-logo-card:hover { box-shadow: 0 19px 40px rgba(102, 23, 61, .18); }
  .site-page--index .partner-segment:hover { box-shadow: 0 24px 48px rgba(102, 23, 61, .16); }
}

@media (max-width: 900px) {
  .site-page--index .partner-metric:nth-child(-n + 2) { border-bottom-color: rgba(181, 18, 107, .14); }
}

@media (max-width: 680px) {
  .site-page--index .journey-process { padding-block: 62px; }
  .site-page--index .journey-map { box-shadow: 0 18px 42px rgba(112, 23, 66, .1); }
  .site-page--index .journey-steps::before { border-left-color: rgba(181, 18, 107, .32); }
  .site-page--index .partners-shell { box-shadow: 0 20px 48px rgba(101, 23, 60, .11), inset 0 1px 0 #fff; }
}

/* The next journey — a light travel invitation, with the image as atmosphere rather than a dark overlay. */
.site-page--index .cta-band {
  min-height: clamp(500px, 39vw, 580px);
  isolation: isolate;
  overflow: hidden;
  color: #3d1930;
  background:
    radial-gradient(circle at 79% 22%, rgba(244, 183, 25, .26), transparent 19rem),
    radial-gradient(circle at 13% 87%, rgba(220, 52, 149, .12), transparent 22rem),
    linear-gradient(112deg, #fffaf3 0%, #fff4f8 55%, #fff8df 100%);
}

.site-page--index .cta-band__media {
  left: auto;
  width: min(53vw, 780px);
  opacity: .38;
  background-position: center;
  filter: saturate(.78) brightness(1.2) contrast(.91);
  mix-blend-mode: multiply;
  transform: scale(1.045);
}

.site-page--index .cta-band__overlay {
  background:
    linear-gradient(90deg, #fffaf3 0%, rgba(255, 250, 243, .98) 39%, rgba(255, 246, 241, .8) 61%, rgba(255, 245, 219, .22) 100%),
    linear-gradient(135deg, rgba(255, 244, 248, .35), rgba(244, 183, 25, .12));
}

.site-page--index .cta-band::after {
  width: clamp(360px, 45vw, 690px);
  height: clamp(360px, 45vw, 690px);
  right: -13%;
  bottom: -48%;
  z-index: 0;
  border: 1px dashed rgba(181, 18, 107, .25);
  background: radial-gradient(circle, rgba(255, 255, 255, .34) 0 1px, transparent 1.3px) 0 0 / 15px 15px;
  animation: none;
}

.site-page--index .cta-band__content {
  width: min(100% - 48px, 835px);
  position: relative;
  z-index: 2;
  margin-left: max(24px, calc((100vw - min(100% - 48px, 1280px)) / 2));
  padding: clamp(32px, 4vw, 56px);
  border: 1px solid rgba(181, 18, 107, .15);
  border-radius: clamp(23px, 2.4vw, 34px);
  background: linear-gradient(134deg, rgba(255, 255, 255, .91), rgba(255, 253, 249, .75));
  box-shadow: 0 25px 68px rgba(107, 24, 63, .13), inset 0 1px 0 #fff;
  backdrop-filter: blur(7px);
}

.site-page--index .cta-band__content::before {
  content: 'SẮC VIỆT · NEXT STORY';
  position: absolute;
  top: 17px;
  right: 23px;
  color: rgba(181, 18, 107, .38);
  font: 800 .55rem/1 var(--font-heading);
  letter-spacing: .16em;
}

.site-page--index .cta-band .eyebrow {
  display: flex;
  align-items: center;
  width: fit-content;
  min-height: 30px;
  margin-bottom: 18px;
  padding: 0 12px;
  border: 1px solid rgba(181, 18, 107, .17);
  border-radius: 999px;
  color: #a6105c;
  background: #fff2f7;
  font-size: .67rem;
}

.site-page--index .cta-band__content h2 {
  max-width: 690px;
  margin-bottom: 30px;
  color: #3b1730;
  font-size: clamp(2.05rem, 4.15vw, 4rem);
  line-height: 1.03;
  letter-spacing: -.064em;
  text-wrap: balance;
}

.site-page--index .cta-band__content h2 > span,
.site-page--index .cta-band__content h2 > em { display: block; }
.site-page--index .cta-band__content h2 > em { color: #b5126b; font-style: italic; }

.site-page--index .cta-band__content > div {
  align-items: stretch;
  gap: 14px;
}

.site-page--index .cta-band__content .button {
  min-height: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  padding-inline: 23px;
  border-color: #92104d;
  background: linear-gradient(115deg, #8c1049, #bd1968 62%, #d52680);
  color: #fff;
  box-shadow: 0 12px 24px rgba(139, 15, 73, .2);
}

.site-page--index .cta-band__content .button .icon { width: 18px; height: 18px; }

.site-page--index .cta-phone {
  min-height: 58px;
  box-sizing: border-box;
  gap: 12px;
  padding: 8px 17px 8px 10px;
  border: 1px solid rgba(181, 18, 107, .16);
  border-radius: 16px;
  color: #491b35;
  background: rgba(255, 255, 255, .83);
  box-shadow: 0 10px 20px rgba(107, 24, 63, .07);
  transition: transform 220ms ease-out, border-color 220ms ease-out, box-shadow 220ms ease-out;
}

.site-page--index .cta-phone > .icon {
  width: 22px;
  height: 22px;
  padding: 8px;
  border-radius: 12px;
  color: #a6105c;
  background: #fff0f6;
  box-sizing: content-box;
}

.site-page--index .cta-phone small { color: #875d71; font-weight: 600; }
.site-page--index .cta-phone span { font-size: 1.05rem; }

.site-page--index .cta-band__effects { z-index: 0; color: #a6105c; opacity: 1; }
.site-page--index .cta-band__effects::before {
  border-top-color: rgba(181, 18, 107, .32);
  transform: rotate(-13deg);
}

.site-page--index .cta-band__effects > span {
  border-color: rgba(181, 18, 107, .22);
  background: rgba(255, 255, 255, .13);
}

.site-page--index .cta-band__effects > span::before,
.site-page--index .cta-band__effects > span::after { border-color: rgba(181, 18, 107, .18); }

.site-page--index .cta-band__effects > i {
  border-color: rgba(181, 18, 107, .26);
  background: #fff7d8;
  color: #a6105c;
  box-shadow: 0 9px 20px rgba(181, 18, 107, .11);
  backdrop-filter: none;
}

.site-page--index .cta-band__effects > b { color: rgba(113, 20, 65, .46); }

@media (hover: hover) and (pointer: fine) {
  .site-page--index .cta-band__content .button:hover { box-shadow: 0 17px 30px rgba(139, 15, 73, .28); transform: translateY(-2px); }
  .site-page--index .cta-phone:hover { border-color: rgba(181, 18, 107, .38); box-shadow: 0 14px 26px rgba(107, 24, 63, .12); transform: translateY(-2px); }
}

@media (max-width: 900px) {
  .site-page--index .cta-band { min-height: 520px; }
  .site-page--index .cta-band__media { width: 64vw; opacity: .26; }
  .site-page--index .cta-band__content { width: min(100% - 48px, 720px); }
}

@media (max-width: 680px) {
  .site-page--index .cta-band { min-height: auto; padding-block: 66px; }
  .site-page--index .cta-band__media { width: 100%; opacity: .14; }
  .site-page--index .cta-band__overlay { background: linear-gradient(140deg, rgba(255, 250, 243, .96), rgba(255, 242, 248, .93) 63%, rgba(255, 249, 224, .9)); }
  .site-page--index .cta-band__content { width: auto; margin-inline: 16px; padding: 30px 20px 22px; border-radius: 23px; }
  .site-page--index .cta-band__content::before { top: 14px; right: 17px; font-size: .49rem; }
  .site-page--index .cta-band .eyebrow { max-width: calc(100% - 118px); margin-bottom: 17px; padding-inline: 10px; font-size: .59rem; line-height: 1.35; }
  .site-page--index .cta-band__content h2 { margin-bottom: 25px; font-size: clamp(1.9rem, 9.2vw, 2.65rem); }
  .site-page--index .cta-band__content > div { align-items: stretch; flex-direction: column; gap: 11px; }
  .site-page--index .cta-band__content .button,
  .site-page--index .cta-phone { width: 100%; }
  .site-page--index .cta-band__content .button { min-height: 56px; }
  .site-page--index .cta-phone { min-height: 60px; }
  .site-page--index .cta-band__effects { opacity: .72; }
  .site-page--index .cta-band__effects > span { right: -218px; width: 300px; height: 300px; }
  .site-page--index .cta-band__effects > i,
  .site-page--index .cta-band__effects > b { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .site-page--index .cta-band__content .button,
  .site-page--index .cta-phone { transition: none !important; }
}

/* Unified luminous travel system — consistent type, color, depth and motion across public pages + CMS. */
:root {
  --sv-paper: #fffaf5;
  --sv-surface: #ffffff;
  --sv-ink: #30182b;
  --sv-muted: #6d5865;
  --sv-wine: #9f1156;
  --sv-pink: #ca2777;
  --sv-gold: #d89112;
  --sv-aqua: #087f92;
  --sv-border: rgba(159, 17, 86, .14);
  --sv-shadow: 0 18px 48px rgba(89, 22, 58, .1);
  --sv-shadow-lift: 0 25px 58px rgba(89, 22, 58, .16);
}

html { background: var(--sv-paper); }

body {
  color: var(--sv-ink);
  font-family: var(--font-body);
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::selection { color: #fff; background: var(--sv-wine); }

.site-page {
  background:
    radial-gradient(circle at 4% 4%, rgba(244, 183, 25, .1), transparent 26rem),
    radial-gradient(circle at 96% 12%, rgba(202, 39, 119, .07), transparent 27rem),
    var(--sv-paper);
}

.site-page :is(h1, h2, h3, h4, h5, h6) {
  color: var(--sv-ink);
  font-optical-sizing: auto;
  text-wrap: balance;
}

.site-page h1,
.site-page h2 {
  letter-spacing: -.038em;
  line-height: 1.08;
}

.site-page h3 { letter-spacing: -.022em; }
.site-page p { color: var(--sv-muted); letter-spacing: 0; line-height: 1.68; text-wrap: pretty; }
.site-page :is(a, button, input, select, textarea) { -webkit-tap-highlight-color: transparent; }
.site-page a:focus-visible,
.site-page button:focus-visible,
.site-page input:focus-visible,
.site-page select:focus-visible,
.site-page textarea:focus-visible { outline: 3px solid rgba(216, 145, 18, .78); outline-offset: 3px; }

/* Main navigation reads as a calm travel desk, with the brand only at points of action. */
.topbar {
  background: linear-gradient(100deg, #781243 0%, #af145f 55%, #d74d91 100%);
}

.site-header {
  border-bottom-color: rgba(159, 17, 86, .1);
  background: rgba(255, 253, 249, .88);
  box-shadow: 0 10px 30px rgba(77, 15, 50, .06);
  backdrop-filter: blur(16px);
}

.primary-nav a,
.primary-nav summary { color: #574452; font-weight: 700; }
.primary-nav a:hover,
.primary-nav summary:hover,
.primary-nav .is-active { color: var(--sv-wine); }

.header-cta,
.button:not(.button--outline):not(.button--dark) {
  border-color: var(--sv-wine);
  background: linear-gradient(115deg, #8f104a, #b91665 62%, #d52b81);
  color: #fff;
  box-shadow: 0 11px 23px rgba(159, 17, 86, .18);
}

.header-cta:hover,
.button:not(.button--outline):not(.button--dark):hover {
  border-color: #791039;
  background: linear-gradient(115deg, #791039, #a91058 60%, #c92172);
}

/* Brighter editorial heroes for catalog, journal and customer stories. */
.site-page--tours .page-hero {
  background-image:
    linear-gradient(95deg, rgba(55, 11, 36, .73), rgba(122, 20, 72, .5) 53%, rgba(239, 181, 48, .14)),
    url('../images/tour-da-nang.jpg');
}

.site-page--tours .page-hero__content > p:last-child { color: rgba(255, 255, 255, .93); }

.site-page--news .news-hero,
.site-page--customers .customer-hero {
  color: var(--sv-ink);
  background:
    radial-gradient(circle at 82% 18%, rgba(244, 183, 25, .26), transparent 23rem),
    radial-gradient(circle at 4% 92%, rgba(202, 39, 119, .12), transparent 26rem),
    linear-gradient(133deg, #fff9f1 0%, #fff0f7 54%, #fff9df 100%);
}

.site-page--news .news-hero h1,
.site-page--customers .customer-hero h1 { color: #39172d; }
.site-page--news .news-hero h1 em,
.site-page--customers .customer-hero h1 em { color: var(--sv-wine); }

.site-page--news .news-hero .eyebrow--light,
.site-page--customers .customer-hero .eyebrow--light {
  border-color: rgba(159, 17, 86, .16);
  color: var(--sv-wine);
  background: rgba(255, 255, 255, .72);
}

.site-page--news .news-hero__inner > div:first-child > p:last-child,
.site-page--customers .customer-hero__inner > div:first-child > p:last-child { color: #634d5a; }

.site-page--news .news-hero__route,
.site-page--customers .customer-hero__stamp {
  border-color: rgba(159, 17, 86, .17);
  background: rgba(255, 255, 255, .66);
  box-shadow: 0 16px 38px rgba(96, 20, 59, .08);
}

.site-page--news .news-hero__route i { border-top-color: rgba(159, 17, 86, .4); }
.site-page--news .news-hero__route strong { color: #725467; }

.site-page--tour .tour-detail-hero__overlay,
.site-page--customer .customer-detail-hero__overlay {
  background: linear-gradient(0deg, rgba(46, 9, 30, .76), rgba(94, 16, 56, .3) 57%, rgba(255, 215, 124, .05));
}

.site-page--news .news-article-hero__overlay {
  background: linear-gradient(0deg, rgba(46, 9, 30, .78), rgba(94, 16, 56, .29) 58%, rgba(255, 215, 124, .06));
}

.site-page--tour :is(.tour-detail-hero h1, .tour-detail-hero p),
.site-page--customer :is(.customer-detail-hero h1, .customer-detail-hero p),
.site-page--news :is(.news-article-hero h1, .news-article-hero p) { text-shadow: 0 2px 18px rgba(39, 2, 22, .31); }

/* Image-led stages keep their text layer light; bright editorial heroes above intentionally use dark ink. */
.site-page--index .hero :is(h1, h2, h3),
.site-page--tours .page-hero :is(h1, h2, h3),
.site-page--tour .tour-detail-hero :is(h1, h2, h3),
.site-page--customer .customer-detail-hero :is(h1, h2, h3),
.site-page--news .news-article-hero :is(h1, h2, h3),
.site-footer :is(h1, h2, h3, h4, h5, h6) { color: #fff; }

.site-page--index .hero p,
.site-page--tours .page-hero p,
.site-page--tour .tour-detail-hero p,
.site-page--customer .customer-detail-hero p,
.site-page--news .news-article-hero p { color: rgba(255, 255, 255, .9); }

/* Unified white surfaces make tour, news and customer content easier to scan. */
.site-page :is(.tour-card, .news-card, .customer-card, .news-featured, .customer-featured, .detail-panel, .booking-card, .consult-form, .customer-story-aside, .news-article-aside) {
  border-color: var(--sv-border);
  background: rgba(255, 255, 255, .94);
  box-shadow: var(--sv-shadow);
}

.site-page :is(.tour-card, .news-card, .customer-card, .news-featured, .customer-featured) { overflow: hidden; }
.site-page :is(.tour-card h3, .news-card h3, .customer-card h3, .news-featured h2, .customer-featured h2) a { color: #3d1930; }
.site-page :is(.tour-card p, .news-card p, .customer-card p, .news-featured p, .customer-featured p) { color: #6a5361; }
.site-page :is(.tour-card__meta, .news-meta, .customer-meta, .customer-client) { color: #876374; }

.site-page :is(.tour-card__image, .news-card__image, .customer-card__media, .news-featured__image, .customer-featured__media) img {
  transition: transform 350ms cubic-bezier(.2, .75, .25, 1), filter 350ms ease;
}

.site-page :is(.tour-card__image, .news-card__image, .customer-card__media, .news-featured__image, .customer-featured__media)::after {
  content: '';
  position: absolute;
  inset: auto 0 0;
  height: 34%;
  pointer-events: none;
  background: linear-gradient(0deg, rgba(48, 12, 33, .2), transparent);
}

.site-page :is(.tour-card, .news-card, .customer-card, .news-featured, .customer-featured, .detail-panel, .booking-card, .consult-form, .customer-story-aside, .news-article-aside) {
  transition: transform 240ms ease-out, box-shadow 240ms ease-out, border-color 240ms ease-out;
}

.site-page :is(.tour-card__footer strong, .booking-card__top strong, .tour-facts__price strong) { color: var(--sv-wine); }

.site-page :is(.consult-section, .tour-facts, .news-article-section, .customer-detail-section) {
  background-color: transparent;
}

.site-page :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), select, textarea) {
  border-color: rgba(93, 55, 76, .19);
  background: rgba(255, 255, 255, .92);
  color: var(--sv-ink);
}

.site-page :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), select, textarea):focus {
  border-color: rgba(159, 17, 86, .58);
  box-shadow: 0 0 0 4px rgba(159, 17, 86, .09);
}

/* Footer keeps a premium night finish without turning the page visually heavy. */
.site-footer {
  background:
    radial-gradient(circle at 84% 12%, rgba(244, 183, 25, .17), transparent 24%),
    radial-gradient(circle at 7% 86%, rgba(45, 185, 189, .15), transparent 26%),
    linear-gradient(139deg, #351126 0%, #67133f 55%, #8c1d56 100%);
}

.site-footer :is(.footer-brand__intro, .footer-links a, .footer-note, .footer-hours__copy small, .footer-hours__copy strong) { color: rgba(255, 255, 255, .8); }
.site-footer :is(.footer-links a:hover, .footer-back-top:hover) { color: #ffe487; }

/* CMS adopts the same paper surfaces while retaining a clear navigation rail. */
.admin-body {
  color: #302c34;
  background:
    radial-gradient(circle at 98% 2%, rgba(244, 183, 25, .13), transparent 25rem),
    radial-gradient(circle at 2% 96%, rgba(202, 39, 119, .08), transparent 26rem),
    #faf9f7;
}

.admin-sidebar {
  background:
    radial-gradient(circle at 88% 9%, rgba(244, 183, 25, .15), transparent 13rem),
    linear-gradient(160deg, #321127, #65133f 58%, #821b51);
}

.admin-topbar {
  border-bottom-color: rgba(159, 17, 86, .1);
  background: rgba(255, 253, 250, .92);
  box-shadow: 0 7px 24px rgba(71, 18, 47, .05);
  backdrop-filter: blur(16px);
}

.admin-panel,
.admin-welcome,
.admin-table-panel,
.stats-grid article {
  border-color: rgba(159, 17, 86, .12);
  box-shadow: 0 13px 34px rgba(64, 22, 45, .06);
}

.admin-body :is(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]), select, textarea) {
  border-color: rgba(92, 78, 89, .2);
  background: #fff;
}

.admin-body :is(input, select, textarea):focus {
  border-color: rgba(159, 17, 86, .62);
  box-shadow: 0 0 0 4px rgba(159, 17, 86, .09);
}

@media (hover: hover) and (pointer: fine) {
  .site-page :is(.tour-card, .news-card, .customer-card, .news-featured, .customer-featured, .detail-panel, .booking-card, .consult-form, .customer-story-aside, .news-article-aside):hover,
  .site-page :is(.tour-card, .news-card, .customer-card, .news-featured, .customer-featured):focus-within {
    border-color: rgba(159, 17, 86, .29);
    box-shadow: var(--sv-shadow-lift);
    transform: translateY(-4px);
  }

  .site-page :is(.tour-card, .news-card, .customer-card, .news-featured, .customer-featured):hover :is(.tour-card__image, .news-card__image, .customer-card__media, .news-featured__image, .customer-featured__media) img,
  .site-page :is(.tour-card, .news-card, .customer-card, .news-featured, .customer-featured):focus-within :is(.tour-card__image, .news-card__image, .customer-card__media, .news-featured__image, .customer-featured__media) img { transform: scale(1.045); }
}

@media (max-width: 680px) {
  .site-page h1,
  .site-page h2 { letter-spacing: -.03em; }
  .site-page p { line-height: 1.64; }
  .site-page--news .news-hero,
  .site-page--customers .customer-hero { padding-block: 62px; }
  .site-page :is(.tour-card, .news-card, .customer-card, .news-featured, .customer-featured, .detail-panel, .booking-card, .consult-form, .customer-story-aside, .news-article-aside) { border-radius: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .site-page :is(.tour-card, .news-card, .customer-card, .news-featured, .customer-featured, .detail-panel, .booking-card, .consult-form, .customer-story-aside, .news-article-aside),
  .site-page :is(.tour-card__image, .news-card__image, .customer-card__media, .news-featured__image, .customer-featured__media) img { transition: none !important; }
}

/* Hero editorial rail — high-impact copy on paper, deliberately separate from the open photo slideshow. */
.site-page--index .hero-title-layout h1 {
  max-width: 770px;
  margin-bottom: 20px;
  color: #32172b;
  font-size: clamp(3.4rem, 5.55vw, 5.92rem);
  font-weight: 700;
  letter-spacing: -.058em;
  line-height: .93;
  text-shadow: none;
}

.site-page--index .hero-title-layout h1 > span,
.site-page--index .hero-title-layout h1 > em { display: block; }

.site-page--index .hero h1 em {
  width: fit-content;
  margin-top: .04em;
  color: #b5126b;
  font-style: italic;
}

.site-page--index .hero__lead {
  max-width: 670px;
  margin-bottom: 27px;
  padding: 2px 0 2px 18px;
  border-left: 3px solid #efb12b;
  color: #5a4854;
  font-size: clamp(1rem, 1.35vw, 1.12rem);
  font-weight: 600;
  line-height: 1.68;
  text-shadow: none;
}

.site-page--index .hero p.hero__lead {
  max-width: 670px;
  margin-bottom: 27px;
  padding: 2px 0 2px 18px;
  border-left-color: #efb12b;
  color: #5a4854;
  font-size: clamp(1rem, 1.35vw, 1.12rem);
  font-weight: 600;
  line-height: 1.68;
  text-shadow: none;
}

.site-page--index .hero .eyebrow--light {
  width: fit-content;
  min-height: 30px;
  padding: 0 11px;
  border: 1px solid rgba(181, 18, 107, .15);
  border-radius: 999px;
  color: #a6105c;
  background: #fff3f8;
  box-shadow: inset 0 1px 0 #fff;
}

.site-page--index .hero-promise-route { max-width: 748px; margin-bottom: 28px; }
.site-page--index .hero-promise-route::before { border-top-color: rgba(181, 18, 107, .24); }

.site-page--index .hero .hero__assurance {
  gap: clamp(10px, 1.2vw, 15px);
}

.site-page--index .hero .hero__assurance li {
  min-height: 96px;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: center;
  gap: 13px;
  padding: 17px 17px 16px;
  border-color: rgba(105, 51, 82, .13);
  border-radius: 18px;
  background: linear-gradient(145deg, #fff 0%, #fff8fb 100%);
  box-shadow: 0 13px 28px rgba(83, 26, 57, .08), inset 0 1px 0 #fff;
}

.site-page--index .hero .hero__assurance li:nth-child(1) { border-top: 3px solid #ecb22a; }
.site-page--index .hero .hero__assurance li:nth-child(2) { border-top: 3px solid #c72775; }
.site-page--index .hero .hero__assurance li:nth-child(3) { border-top: 3px solid #16889a; }

.site-page--index .hero .hero__assurance li::before {
  top: -4px;
  width: 8px;
  height: 8px;
  border-color: #fff;
  box-shadow: 0 0 0 3px rgba(181, 18, 107, .08);
}

.site-page--index .hero-assurance__icon {
  width: 44px;
  height: 44px;
  border: 1px solid rgba(181, 18, 107, .12);
  border-radius: 13px;
  color: #a6105c;
  background: #fff0f6;
}

.site-page--index .hero .hero__assurance li:nth-child(1) .hero-assurance__icon { color: #a86900; background: #fff4ce; }
.site-page--index .hero .hero__assurance li:nth-child(3) .hero-assurance__icon { color: #087f92; background: #e7f9f9; }
.site-page--index .hero-assurance__icon .icon { width: 19px; height: 19px; }

.site-page--index .hero__assurance strong {
  color: #3c2736;
  font-size: clamp(.75rem, 1vw, .84rem);
  font-weight: 800;
  line-height: 1.4;
}

@media (hover: hover) and (pointer: fine) {
  .site-page--index .hero .hero__assurance li:hover {
    border-color: rgba(181, 18, 107, .28);
    background: #fff;
    box-shadow: 0 20px 36px rgba(83, 26, 57, .13);
    transform: translateY(-3px);
  }

  .site-page--index .hero .hero__assurance li:hover .hero-assurance__icon { transform: rotate(-5deg) translateY(-1px); }
}

@media (max-width: 680px) {
  .site-page--index .hero-title-layout h1 {
    margin-bottom: 17px;
    font-size: clamp(2.78rem, 12.3vw, 3.78rem);
    letter-spacing: -.046em;
    line-height: .94;
  }

  .site-page--index .hero__lead {
    margin-bottom: 21px;
    padding-left: 13px;
    font-size: .98rem;
    line-height: 1.65;
  }

  .site-page--index .hero p.hero__lead {
    margin-bottom: 21px;
    padding-left: 13px;
    font-size: .98rem;
    line-height: 1.65;
  }

  .site-page--index .hero .eyebrow--light { min-height: 28px; padding-inline: 10px; font-size: .59rem; }
  .site-page--index .hero-promise-route { margin-bottom: 23px; }
  .site-page--index .hero-promise-route::before { top: 40px; bottom: 40px; }
  .site-page--index .hero .hero__assurance { gap: 9px; }
  .site-page--index .hero .hero__assurance li { min-height: 68px; grid-template-columns: 36px minmax(0, 1fr); gap: 11px; padding: 12px 14px; border-radius: 15px; }
  .site-page--index .hero-assurance__icon { width: 36px; height: 36px; border-radius: 11px; }
  .site-page--index .hero-assurance__icon .icon { width: 17px; height: 17px; }
  .site-page--index .hero__assurance strong { font-size: .76rem; }
}

@media (prefers-reduced-motion: reduce) {
  .site-page--index .hero .hero__assurance li,
  .site-page--index .hero-assurance__icon { transition: none !important; }
}

/* Hero action pair — two clear routes without covering the slideshow. */
.site-page--index .hero .hero__actions {
  display: grid;
  grid-template-columns: minmax(0, 1.16fr) minmax(0, .94fr);
  align-items: stretch;
  gap: 12px;
  max-width: 636px;
}

.site-page--index .hero .hero-ticket-cta,
.site-page--index .hero .hero-event-cta {
  position: relative;
  isolation: isolate;
  min-height: 72px;
  gap: 14px;
  padding: 10px 12px 10px 19px;
  border-radius: 19px;
  text-align: left;
  text-decoration: none;
  touch-action: manipulation;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease;
}

.site-page--index .hero .hero-ticket-cta {
  overflow: hidden;
  border-color: #98104f;
  color: #fff;
  background: linear-gradient(118deg, #821040 0%, #ae155e 53%, #d72d84 100%);
  box-shadow: 0 16px 30px rgba(140, 17, 74, .25), inset 0 1px 0 rgba(255, 255, 255, .22);
}

.site-page--index .hero .hero-ticket-cta::after {
  position: absolute;
  z-index: -1;
  top: -54px;
  right: -20px;
  width: 146px;
  height: 146px;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 50%;
  content: "";
}

.site-page--index .hero .hero-event-cta {
  border-color: rgba(155, 28, 90, .23);
  color: #451c35;
  background: linear-gradient(145deg, #fff 0%, #fff5fa 100%);
  box-shadow: 0 13px 26px rgba(83, 26, 57, .10), inset 0 1px 0 #fff;
}

.site-page--index .hero .hero-ticket-cta > span,
.site-page--index .hero .hero-event-cta > span {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.site-page--index .hero .hero-ticket-cta small,
.site-page--index .hero .hero-event-cta small {
  margin: 0;
  font-size: .59rem;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: .105em;
  text-transform: uppercase;
}

.site-page--index .hero .hero-ticket-cta small { color: rgba(255, 255, 255, .80); }
.site-page--index .hero .hero-event-cta small { color: #a6105c; }

.site-page--index .hero .hero-ticket-cta > span:not(:has(small)),
.site-page--index .hero .hero-event-cta > span:not(:has(small)),
.site-page--index .hero .hero-ticket-cta > span,
.site-page--index .hero .hero-event-cta > span {
  font-size: .96rem;
  font-weight: 800;
  line-height: 1.18;
}

.site-page--index .hero .hero-ticket-cta > span { color: #fff; }
.site-page--index .hero .hero-event-cta > span { color: #451c35; }

.site-page--index .hero .hero-ticket-cta > i,
.site-page--index .hero .hero-event-cta > i {
  display: grid;
  flex: 0 0 42px;
  order: 2;
  width: 42px;
  height: 42px;
  margin: 0;
  place-items: center;
  border-radius: 14px;
  transition: transform .22s ease, background .22s ease;
}

.site-page--index .hero .hero-ticket-cta > i {
  border: 1px solid rgba(255, 255, 255, .28);
  color: #fff;
  background: rgba(255, 255, 255, .15);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .18);
}

.site-page--index .hero .hero-event-cta > i {
  order: 0;
  border: 1px solid rgba(10, 126, 145, .14);
  color: #087f92;
  background: #e7f9f9;
}

.site-page--index .hero .hero-ticket-cta > i .icon,
.site-page--index .hero .hero-event-cta > i .icon { width: 20px; height: 20px; }

@media (hover: hover) and (pointer: fine) {
  .site-page--index .hero .hero-ticket-cta:hover,
  .site-page--index .hero .hero-event-cta:hover {
    transform: translateY(-3px);
  }

  .site-page--index .hero .hero-ticket-cta:hover {
    border-color: #7b0c3d;
    background: linear-gradient(118deg, #710b36 0%, #9d104f 53%, #ca1d70 100%);
    box-shadow: 0 21px 36px rgba(140, 17, 74, .31), inset 0 1px 0 rgba(255, 255, 255, .22);
  }

  .site-page--index .hero .hero-event-cta:hover {
    border-color: rgba(155, 28, 90, .40);
    background: #fff;
    box-shadow: 0 19px 34px rgba(83, 26, 57, .15);
  }

  .site-page--index .hero .hero-ticket-cta:hover > i { transform: translateX(3px); }
  .site-page--index .hero .hero-event-cta:hover > i { transform: rotate(-7deg) translateY(-1px); }
}

@media (max-width: 680px) {
  .site-page--index .hero .hero__actions {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    max-width: none;
  }

  .site-page--index .hero .hero-ticket-cta,
  .site-page--index .hero .hero-event-cta {
    width: 100%;
    min-height: 66px;
    padding: 9px 11px 9px 16px;
    border-radius: 17px;
  }

  .site-page--index .hero .hero-ticket-cta > i,
  .site-page--index .hero .hero-event-cta > i {
    flex-basis: 40px;
    width: 40px;
    height: 40px;
    border-radius: 13px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-page--index .hero .hero-ticket-cta,
  .site-page--index .hero .hero-event-cta,
  .site-page--index .hero .hero-ticket-cta > i,
  .site-page--index .hero .hero-event-cta > i { transition: none !important; }
}

/* Mobile quick actions — icon-only travel controls with accessible names. */
@media (max-width: 680px) {
  .mobile-actions {
    position: fixed;
    z-index: 50;
    right: auto;
    bottom: calc(12px + env(safe-area-inset-bottom));
    left: 50%;
    width: max-content;
    height: auto;
    display: flex;
    grid-template-columns: none;
    gap: 8px;
    padding: 6px;
    transform: translateX(-50%);
    border: 1px solid rgba(110, 31, 74, .14);
    border-radius: 22px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 12px 30px rgba(68, 21, 47, .19), inset 0 1px 0 rgba(255, 255, 255, .94);
    backdrop-filter: blur(16px);
  }

  .mobile-actions::before {
    position: absolute;
    top: -2px;
    left: 50%;
    width: 34px;
    height: 3px;
    border-radius: 999px;
    content: "";
    background: linear-gradient(90deg, #efb12b, #cf2477);
    transform: translateX(-50%);
  }

  .mobile-actions a,
  .mobile-actions a:last-child {
    position: relative;
    width: 54px;
    min-width: 54px;
    min-height: 54px;
    height: 54px;
    display: grid;
    padding: 0;
    place-items: center;
    border: 1px solid transparent;
    border-radius: 16px;
    color: #fff;
    font: inherit;
    background: linear-gradient(135deg, #861043, #d92d84);
    box-shadow: 0 8px 17px rgba(143, 16, 75, .23), inset 0 1px 0 rgba(255, 255, 255, .22);
    touch-action: manipulation;
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
  }

  .mobile-actions a:last-child {
    color: #6a3900;
    background: linear-gradient(135deg, #fff2aa, #f2b72d);
    box-shadow: 0 8px 17px rgba(178, 116, 0, .20), inset 0 1px 0 rgba(255, 255, 255, .58);
  }

  .mobile-actions a::after {
    position: absolute;
    inset: 5px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 11px;
    content: "";
    pointer-events: none;
  }

  .mobile-actions a:last-child::after { border-color: rgba(107, 58, 0, .16); }

  .mobile-actions a .icon {
    position: relative;
    z-index: 1;
    width: 22px;
    height: 22px;
    stroke-width: 2;
  }

  .mobile-actions a:active {
    filter: brightness(.96);
    transform: scale(.94);
  }

  .mobile-actions a:focus-visible {
    outline: 3px solid #087f92;
    outline-offset: 3px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-actions a { transition: none !important; }
}

/* Copyright — quiet, centered and recognizably Sắc Việt. */
.site-footer .footer-bottom__copyright {
  min-height: 40px;
  gap: 9px;
  color: rgba(255, 255, 255, .58);
  font: 600 .75rem/1.35 var(--font-heading);
  letter-spacing: .01em;
}

.site-footer .footer-bottom__copyright::before {
  width: 20px;
  height: 1px;
  background: linear-gradient(90deg, #efb12b, #cd2778);
  box-shadow: none;
}

.site-footer .footer-bottom__copyright-year {
  color: #ffe17b;
  font-size: .69rem;
  font-weight: 800;
  letter-spacing: .12em;
}

.site-footer .footer-bottom__copyright a {
  min-height: 40px;
  color: #fff;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .015em;
}

.site-footer .footer-bottom__copyright a::after {
  right: 2px;
  bottom: 6px;
  left: 2px;
  background: #efb12b;
  transform: scaleX(.22);
}

.site-footer .footer-bottom__copyright-note { color: rgba(255, 255, 255, .56); }

@media (max-width: 680px) {
  .site-footer .footer-bottom__copyright {
    gap: 7px;
    font-size: .71rem;
  }

  .site-footer .footer-bottom__copyright::before { display: none; }
  .site-footer .footer-bottom__copyright a { min-height: 38px; font-size: .75rem; }
  .site-footer .footer-bottom__copyright a::after { bottom: 5px; }
}

/* Corner variant for mobile quick actions: compact, unobtrusive, always reachable. */
@media (max-width: 680px) {
  .mobile-actions {
    right: 14px;
    bottom: calc(14px + env(safe-area-inset-bottom));
    left: auto;
    width: 100px;
    height: 156px;
    display: grid;
    grid-template-columns: 44px 48px;
    grid-template-rows: 44px repeat(2, 48px);
    gap: 8px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    transform: none;
  }

  .mobile-actions::before { display: none; }

  .mobile-actions a,
  .mobile-actions a:last-child {
    width: 48px;
    min-width: 48px;
    min-height: 48px;
    height: 48px;
    border-radius: 50%;
  }

  .mobile-actions a::after {
    inset: 4px;
    border-radius: 50%;
  }

  .mobile-actions a .icon {
    width: 20px;
    height: 20px;
  }

  .mobile-actions .mobile-action-facebook {
    grid-column: 1;
    grid-row: 1;
    width: 44px;
    min-width: 44px;
    min-height: 44px;
    height: 44px;
    justify-self: end;
    color: #fff;
    background: linear-gradient(135deg, #4267b2, #7751bd);
    box-shadow: 0 7px 15px rgba(57, 79, 158, .22), inset 0 1px 0 rgba(255, 255, 255, .24);
  }

  .mobile-actions .mobile-action-facebook::after { border-color: rgba(255, 255, 255, .25); }
  .mobile-actions .mobile-action-facebook .icon { width: 18px; height: 18px; }

  .mobile-actions .mobile-action-zalo {
    grid-column: 2;
    grid-row: 1;
    width: 44px;
    min-width: 44px;
    min-height: 44px;
    height: 44px;
    justify-self: end;
    color: #fff;
    background: linear-gradient(135deg, #0879f7, #0068df);
    box-shadow: 0 7px 15px rgba(0, 101, 221, .22), inset 0 1px 0 rgba(255, 255, 255, .24);
  }

  .mobile-actions .mobile-action-zalo::after { border-color: rgba(255, 255, 255, .25); }
  .mobile-actions .mobile-action-zalo .icon { width: 18px; height: 18px; stroke-width: 2.1; }

  .mobile-actions > a:nth-child(3) { grid-column: 2; grid-row: 2; }
  .mobile-actions > a:nth-child(4) { grid-column: 2; grid-row: 3; }
}

/* Horizontal corner rail: quick actions stay compact without hiding the page. */
@media (max-width: 680px) {
  .mobile-actions {
    right: 14px;
    bottom: calc(14px + env(safe-area-inset-bottom));
    left: auto;
    width: max-content;
    height: 48px;
    display: flex;
    grid-template-columns: none;
    grid-template-rows: none;
    align-items: center;
    gap: 8px;
  }

  .mobile-actions .mobile-action-facebook,
  .mobile-actions .mobile-action-zalo,
  .mobile-actions > a:nth-child(3),
  .mobile-actions > a:nth-child(4) {
    grid-column: auto;
    grid-row: auto;
  }

  .mobile-actions .mobile-action-facebook,
  .mobile-actions .mobile-action-zalo {
    align-self: center;
  }

  .mobile-actions .mobile-action-zalo {
    color: #0876eb;
    background: #fff;
    box-shadow: 0 7px 15px rgba(0, 101, 221, .17), inset 0 1px 0 rgba(255, 255, 255, .92);
  }

  .mobile-actions .mobile-action-zalo::after { border-color: rgba(8, 118, 235, .24); }
  .mobile-actions .mobile-action-zalo .icon { width: 20px; height: 20px; stroke-width: 2.15; }
}

/* Footer consultation card — a bright, tactile boarding-pass invitation. */
.site-footer .footer-consult {
  padding: 23px 22px 17px;
  border-color: rgba(255, 235, 171, .34);
  border-radius: 27px;
  background:
    radial-gradient(circle at 91% 7%, rgba(255, 225, 123, .25), transparent 27%),
    radial-gradient(circle at 8% 96%, rgba(24, 174, 185, .25), transparent 30%),
    linear-gradient(140deg, rgba(156, 25, 90, .74) 0%, rgba(93, 17, 56, .84) 100%);
  box-shadow: 0 25px 58px rgba(34, 0, 20, .26), inset 0 1px 0 rgba(255, 255, 255, .17);
}

.site-footer .footer-consult::before {
  top: -105px;
  right: -102px;
  width: 186px;
  height: 186px;
  border-color: rgba(255, 228, 137, .45);
  border-style: dashed;
  animation: footer-consult-orbit 18s linear infinite;
}

.site-footer .footer-consult::after {
  width: 144px;
  height: 144px;
  left: -96px;
  bottom: -91px;
  background: radial-gradient(circle, rgba(16, 181, 191, .48), transparent 68%);
}

.site-footer .footer-consult__top {
  margin-bottom: 15px;
  padding-bottom: 13px;
  border-bottom: 1px solid rgba(255, 255, 255, .16);
}

.site-footer .footer-consult__kicker {
  min-height: 30px;
  gap: 8px;
  padding: 0 10px;
  border: 1px solid rgba(255, 225, 123, .28);
  border-radius: 999px;
  color: #fff0a4;
  background: rgba(47, 7, 32, .17);
  font-size: .6rem;
  letter-spacing: .12em;
}

.site-footer .footer-consult__kicker i {
  width: 7px;
  height: 7px;
  border-color: #ffe17b;
  box-shadow: 0 0 0 5px rgba(255, 225, 123, .12), 0 0 16px rgba(255, 225, 123, .5);
}

.site-footer .footer-consult__plane {
  width: 42px;
  height: 42px;
  border-color: rgba(255, 230, 145, .48);
  color: #fff0a4;
  background: linear-gradient(145deg, rgba(255, 229, 138, .19), rgba(255, 255, 255, .07));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .19), 0 8px 19px rgba(34, 0, 20, .18);
  animation: footer-consult-float 3.5s ease-in-out infinite;
}

.site-footer .footer-consult__plane .icon { width: 18px; height: 18px; }

.site-footer .footer-consult .footer-title {
  margin: 0 0 17px;
  padding: 0 0 13px;
  position: relative;
  color: #fff;
  font-size: clamp(1.45rem, 2.2vw, 1.72rem);
  font-weight: 800;
  letter-spacing: -.04em;
  line-height: 1.05;
}

.site-footer .footer-consult .footer-title::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 46px;
  height: 3px;
  border-radius: 999px;
  content: "";
  background: linear-gradient(90deg, #ffe17b, #edb52e);
  box-shadow: 0 0 17px rgba(255, 225, 123, .32);
}

.site-footer .footer-hours {
  min-height: 94px;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 13px;
  padding: 12px;
  border-color: rgba(255, 255, 255, .18);
  border-radius: 18px;
  background: rgba(255, 255, 255, .095);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12);
}

.site-footer .footer-hours__icon {
  width: 48px;
  height: 48px;
  border-color: rgba(255, 225, 123, .38);
  border-radius: 15px;
  color: #fff0a4;
  background: rgba(255, 225, 123, .12);
}

.site-footer .footer-hours__icon .icon { width: 20px; height: 20px; }
.site-footer .footer-hours__copy { gap: 3px 9px; }
.site-footer .footer-hours__copy small { color: rgba(255, 248, 215, .74); font-size: .62rem; letter-spacing: .09em; }
.site-footer .footer-hours__copy strong { color: #fff; font-size: .82rem; font-weight: 700; }
.site-footer .footer-hours__copy b { color: #fff1ac; font-size: .91rem; font-weight: 800; }

.site-footer .footer-note {
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 10px;
  margin: 15px 0;
  color: rgba(255, 255, 255, .91);
  font-size: .81rem;
  line-height: 1.58;
}

.site-footer .footer-note > span:first-child {
  width: 30px;
  height: 30px;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 10px;
  color: #fff0a4;
  background: rgba(255, 255, 255, .09);
}

.site-footer .footer-consult__button {
  min-height: 70px;
  grid-template-columns: 46px minmax(0, 1fr) 36px;
  gap: 11px;
  padding: 8px 9px;
  border-color: rgba(255, 255, 255, .55);
  border-radius: 19px;
  color: #5d153e;
  background: linear-gradient(120deg, #fff8d7 0%, #ffe17b 50%, #efb12b 100%);
  box-shadow: 0 15px 30px rgba(25, 0, 14, .25), inset 0 1px 0 rgba(255, 255, 255, .76);
}

.site-footer .footer-consult__button-icon {
  width: 46px;
  height: 46px;
  border-radius: 15px;
  background: linear-gradient(145deg, #ab145e, #dc2b83);
  box-shadow: 0 9px 18px rgba(132, 10, 70, .28);
}

.site-footer .footer-consult__button-icon .icon { width: 19px; height: 19px; }
.site-footer .footer-consult__button-copy { gap: 3px; }
.site-footer .footer-consult__button-copy small { color: rgba(88, 18, 58, .68); font-size: .59rem; letter-spacing: .09em; }
.site-footer .footer-consult__button-copy strong { color: #5a123a; font-size: .84rem; font-weight: 800; }
.site-footer .footer-consult__button-arrow { width: 36px; height: 36px; color: #691442; background: rgba(255, 255, 255, .46); }

@media (hover: hover) and (pointer: fine) {
  .site-footer .footer-consult:hover {
    border-color: rgba(255, 232, 151, .60);
    box-shadow: 0 31px 70px rgba(34, 0, 20, .32), inset 0 1px 0 rgba(255, 255, 255, .18);
    transform: translateY(-3px);
  }

  .site-footer .footer-consult__button:hover,
  .site-footer .footer-consult__button:focus-visible {
    box-shadow: 0 21px 37px rgba(25, 0, 14, .34), inset 0 1px 0 rgba(255, 255, 255, .76);
    transform: translateY(-3px);
  }
}

.site-footer .footer-consult__button:focus-visible { outline: 3px solid #fff2a6; outline-offset: 3px; }

@keyframes footer-consult-orbit { to { transform: rotate(344deg); } }
@keyframes footer-consult-float {
  0%, 100% { transform: rotate(18deg) translateY(0); }
  50% { transform: rotate(13deg) translateY(-4px); }
}

@media (max-width: 680px) {
  .site-footer .footer-consult { padding: 20px 18px 15px; border-radius: 23px; }
  .site-footer .footer-consult__top { margin-bottom: 13px; padding-bottom: 11px; }
  .site-footer .footer-consult .footer-title { margin-bottom: 15px; font-size: 1.48rem; }
  .site-footer .footer-hours { min-height: 88px; grid-template-columns: 44px minmax(0, 1fr); gap: 11px; padding: 11px; }
  .site-footer .footer-hours__icon { width: 44px; height: 44px; border-radius: 14px; }
  .site-footer .footer-note { margin: 14px 0; font-size: .79rem; }
  .site-footer .footer-consult__button { min-height: 67px; grid-template-columns: 44px minmax(0, 1fr) 34px; padding: 8px; }
  .site-footer .footer-consult__button-icon { width: 44px; height: 44px; border-radius: 14px; }
  .site-footer .footer-consult__button-arrow { width: 34px; height: 34px; }
}

@media (prefers-reduced-motion: reduce) {
  .site-footer .footer-consult::before,
  .site-footer .footer-consult__plane { animation: none !important; }
}

/* Footer stations — clearer brand, wayfinding and contact hierarchy. */
.site-footer .footer-brand,
.site-footer .footer-nav,
.site-footer .footer-contact {
  border-color: rgba(255, 255, 255, .18);
  border-radius: 26px;
  box-shadow: 0 21px 48px rgba(34, 0, 20, .16), inset 0 1px 0 rgba(255, 255, 255, .10);
}

.site-footer .footer-brand {
  padding: 21px 19px 18px;
  background:
    radial-gradient(circle at 12% 4%, rgba(218, 48, 140, .28), transparent 36%),
    radial-gradient(circle at 95% 90%, rgba(16, 181, 191, .17), transparent 31%),
    linear-gradient(145deg, rgba(255, 255, 255, .12), rgba(255, 255, 255, .045));
}

.site-footer .footer-brand__identity { min-height: 80px; }
.site-footer .footer-brand .brand--footer img { width: 178px; }
.site-footer .footer-brand__orbit { width: 42px; height: 42px; }

.site-footer .footer-brand .footer-brand__eyebrow {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  margin: 14px 0 8px !important;
  padding: 0 9px;
  border: 1px solid rgba(255, 225, 123, .24);
  border-radius: 999px;
  color: #fff0a4;
  background: rgba(59, 7, 37, .18);
  font-size: .60rem;
  letter-spacing: .105em;
}

.site-footer .footer-brand .footer-brand__intro {
  color: rgba(255, 255, 255, .90);
  font-size: .90rem;
  line-height: 1.62;
}

.site-footer .footer-brand .footer-hotline,
.site-footer .footer-brand .footer-social {
  min-height: 68px;
  border-color: rgba(255, 255, 255, .19);
  border-radius: 17px;
  background: rgba(255, 255, 255, .10);
}

.site-footer .footer-brand .footer-hotline strong,
.site-footer .footer-brand .footer-social strong { font-size: .94rem; }
.site-footer .footer-brand .footer-hotline small,
.site-footer .footer-brand .footer-social small { color: rgba(255, 247, 215, .76); }

.site-footer .footer-nav {
  padding: 20px 15px 15px;
  background:
    radial-gradient(circle at 94% 4%, rgba(255, 225, 123, .16), transparent 31%),
    linear-gradient(145deg, rgba(255, 255, 255, .105), rgba(255, 255, 255, .035));
}

.site-footer .footer-nav__heading {
  min-height: 57px;
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, .15);
}

.site-footer .footer-nav__heading .footer-title,
.site-footer .footer-contact__heading .footer-title {
  color: #fff;
  font-size: 1.10rem;
  font-weight: 800;
}

.site-footer .footer-nav__heading small,
.site-footer .footer-contact__heading > div > small {
  color: rgba(255, 255, 255, .73);
  font-size: .66rem;
  line-height: 1.5;
}

.site-footer .footer-nav__heading > span {
  width: 39px;
  height: 39px;
  border-color: rgba(255, 225, 123, .42);
  color: #fff0a4;
  background: rgba(255, 225, 123, .12);
}

.site-footer .footer-nav .footer-links {
  counter-reset: none;
  gap: 6px;
}

.site-footer .footer-nav .footer-links::before { display: none; }
.site-footer .footer-nav .footer-links li { counter-increment: none; }

.site-footer .footer-nav .footer-links a {
  min-height: 44px;
  grid-template-columns: 10px minmax(0, 1fr) 13px;
  gap: 9px;
  padding: 6px 8px;
  border-color: rgba(255, 255, 255, .07);
  border-radius: 13px;
  color: rgba(255, 255, 255, .88);
  background: rgba(255, 255, 255, .035);
  font-size: .77rem;
}

.site-footer .footer-nav .footer-links a::before {
  width: 8px;
  height: 8px;
  content: "";
  border: 2px solid #ffe17b;
  border-radius: 50%;
  color: transparent;
  background: rgba(255, 225, 123, .13);
  box-shadow: 0 0 0 4px rgba(255, 225, 123, .05);
  font-size: 0;
}

.site-footer .footer-nav .footer-links a .icon { width: 13px; height: 13px; opacity: .74; transform: none; }

.site-footer .footer-contact {
  padding: 21px 19px 18px;
  background:
    radial-gradient(circle at 96% 7%, rgba(255, 225, 123, .20), transparent 26%),
    linear-gradient(145deg, rgba(255, 255, 255, .13), rgba(255, 255, 255, .045));
}

.site-footer .footer-contact__heading {
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, .15);
}

.site-footer .footer-contact__compass {
  width: 42px;
  height: 42px;
  border-color: rgba(255, 225, 123, .40);
  color: #fff0a4;
  background: rgba(255, 225, 123, .12);
}

.site-footer .footer-contact .contact-list { gap: 10px; }
.site-footer .footer-contact__journey::before { left: 23px; top: 42px; bottom: 42px; border-left-color: rgba(255, 225, 123, .42); }

.site-footer .footer-contact-card {
  min-height: 82px;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 12px;
  padding: 11px 13px 11px 10px;
  border-color: rgba(255, 255, 255, .14);
  border-radius: 17px;
  background: rgba(255, 255, 255, .085);
}

.site-footer .footer-contact-card--map { min-height: 104px; }
.site-footer .footer-contact-card__icon { width: 46px; height: 46px; border-radius: 15px; }
.site-footer .footer-contact-card__icon .icon { width: 20px; height: 20px; }
.site-footer .footer-contact-card__copy { gap: 4px; }
.site-footer .footer-contact-card__copy small { color: rgba(255, 247, 215, .75); font-size: .63rem; letter-spacing: .07em; }
.site-footer .footer-contact-card__copy strong { color: #fff; font-size: .80rem; line-height: 1.42; }
.site-footer .footer-contact-card__action { color: #fff0a4; font-size: .67rem; opacity: .92; }

@media (hover: hover) and (pointer: fine) {
  .site-footer .footer-brand:hover,
  .site-footer .footer-nav:hover,
  .site-footer .footer-contact:hover {
    border-color: rgba(255, 225, 123, .37);
    box-shadow: 0 27px 58px rgba(34, 0, 20, .23), inset 0 1px 0 rgba(255, 255, 255, .12);
  }

  .site-footer .footer-nav .footer-links a:hover,
  .site-footer .footer-nav .footer-links a:focus-visible {
    border-color: rgba(255, 225, 123, .28);
    background: linear-gradient(90deg, rgba(255, 225, 123, .14), rgba(255, 255, 255, .08));
    box-shadow: 0 9px 21px rgba(28, 0, 17, .14);
    transform: translateX(3px);
  }

  .site-footer .footer-nav .footer-links a:hover::before,
  .site-footer .footer-nav .footer-links a:focus-visible::before {
    border-color: #fff0a4;
    background: #fff0a4;
    box-shadow: 0 0 0 5px rgba(255, 225, 123, .08), 0 0 13px rgba(255, 225, 123, .43);
    transform: scale(1.12);
  }
}

@media (max-width: 680px) {
  .site-footer .footer-brand,
  .site-footer .footer-nav,
  .site-footer .footer-contact { padding: 18px 16px 16px; border-radius: 22px; }

  .site-footer .footer-brand .brand--footer img { width: 170px; }
  .site-footer .footer-brand .footer-brand__intro { font-size: .89rem; }
  .site-footer .footer-nav__heading { min-height: 54px; }
  .site-footer .footer-nav .footer-links { gap: 5px; }
  .site-footer .footer-nav .footer-links a { min-height: 47px; font-size: .80rem; }
  .site-footer .footer-contact__heading { margin-bottom: 15px; }
  .site-footer .footer-contact-card { grid-template-columns: 44px minmax(0, 1fr); gap: 11px; padding: 10px; }
  .site-footer .footer-contact-card__icon { width: 44px; height: 44px; border-radius: 14px; }
  .site-footer .footer-contact-card--map { min-height: 102px; }
}

/* Footer signature — compact, polished and clearly owned by Sắc Việt. */
.site-footer .footer-bottom__copyright {
  min-height: 46px;
  gap: 8px;
  padding: 4px 12px 4px 5px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 999px;
  color: rgba(255, 255, 255, .74);
  background: linear-gradient(135deg, rgba(255, 255, 255, .11), rgba(255, 255, 255, .045));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .10), 0 10px 22px rgba(28, 0, 17, .12);
  font-size: .70rem;
  letter-spacing: .01em;
}

.site-footer .footer-bottom__copyright::before { display: none; }

.site-footer .footer-bottom__copyright-year {
  min-height: 36px;
  display: inline-grid;
  align-items: center;
  padding: 0 10px;
  border: 1px solid rgba(255, 225, 123, .36);
  border-radius: 999px;
  color: #fff0a4;
  background: rgba(255, 225, 123, .12);
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .10em;
}

.site-footer .footer-bottom__copyright a {
  min-height: 36px;
  color: #fff;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .01em;
}

.site-footer .footer-bottom__copyright a::after {
  right: 1px;
  bottom: 5px;
  left: 1px;
  height: 1px;
  background: #fff0a4;
  transform: scaleX(.26);
}

.site-footer .footer-bottom__copyright-note {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(255, 255, 255, .72);
  font-size: .68rem;
  white-space: nowrap;
}

.site-footer .footer-bottom__copyright-note::before {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  content: "";
  background: #ffe17b;
  box-shadow: 0 0 8px rgba(255, 225, 123, .50);
}

@media (hover: hover) and (pointer: fine) {
  .site-footer .footer-bottom__copyright:hover {
    border-color: rgba(255, 225, 123, .34);
    background: rgba(255, 255, 255, .12);
  }
}

@media (max-width: 680px) {
  .site-footer .footer-bottom__copyright {
    gap: 6px;
    padding: 4px 9px 4px 4px;
  }

  .site-footer .footer-bottom__copyright-year { min-height: 34px; padding-inline: 8px; font-size: .61rem; }
  .site-footer .footer-bottom__copyright a { min-height: 34px; font-size: .72rem; }
  .site-footer .footer-bottom__copyright-note { gap: 6px; font-size: .62rem; }
}

/* Desktop footer rhythm — four equal stations, one balanced horizon. */
@media (min-width: 1181px) {
  .site-footer .footer-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
    gap: clamp(18px, 1.65vw, 28px);
  }

  .site-footer .footer-brand,
  .site-footer .footer-nav,
  .site-footer .footer-contact,
  .site-footer .footer-consult {
    min-width: 0;
    min-height: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
  }

  .site-footer .footer-brand__connect,
  .site-footer .footer-nav .footer-links,
  .site-footer .footer-contact .contact-list {
    margin-top: auto;
  }

  .site-footer .footer-consult__journey { margin-top: auto; }
}
