:root{
  --nx-bg:#070b1a;
  --nx-bg-soft:#0c1228;
  --nx-ink:#ebf1ff;
  --nx-muted:#9ca7c7;
  --nx-card:#111935;
  --nx-card-2:#0f1730;
  --nx-line:rgba(140, 164, 225, .24);
  --nx-cyan:#29d6ff;
  --nx-violet:#8d5bff;
  --nx-pink:#ff4fd8;
  --nx-shadow:0 24px 60px rgba(0,0,0,.36);
}

/* --- 2026-05 SEO/product polish overrides --- */
.ag-inlinePlaylist{
  display:grid;
  gap:6px;
  margin-top:10px;
}

.ag-inlineTopic{
  display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  min-height:38px;
  padding:6px 8px;
  border:1px solid rgba(140,164,225,.18);
  border-radius:13px;
  background:rgba(255,255,255,.055);
  color:#edf3ff;
  text-align:left;
  cursor:pointer;
  appearance:none;
}

.ag-inlineTopic:hover,
.ag-inlineTopic:focus-visible{
  outline:none;
  border-color:rgba(41,214,255,.38);
  background:linear-gradient(90deg, rgba(41,214,255,.14), rgba(141,91,255,.08));
}

.ag-inlineTopic span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  border-radius:9px;
  background:rgba(41,214,255,.13);
  color:#8fdcff;
  font-size:11px;
  font-weight:950;
}

.ag-inlineTopic b{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:13px;
  font-weight:900;
}

.ag-inlineTopic i{
  color:#9ea9c9;
  font-style:normal;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}

.PageLanding .ux-cityList{
  max-height:none !important;
  overflow:visible !important;
  padding-right:0 !important;
  scrollbar-width:none !important;
}

.PageLanding .ux-cityList::-webkit-scrollbar{
  display:none !important;
}

.PageLanding .ux-cityList .ag-cityInline{
  margin-top:7px;
}

.ux-europeAtlas{
  grid-template-columns:minmax(280px,.46fr) minmax(0,1fr);
  align-items:stretch;
}

.ux-europeBoard{
  display:grid;
  gap:16px;
  padding:18px;
  border:1px solid var(--nx-line);
  border-radius:28px;
  background:
    radial-gradient(480px 260px at 10% 0%, rgba(41,214,255,.16), transparent 74%),
    radial-gradient(520px 280px at 100% 20%, rgba(141,91,255,.16), transparent 70%),
    rgba(255,255,255,.045);
  box-shadow:var(--nx-shadow);
}

.ux-europeStats{
  display:grid;
  gap:8px;
  margin:16px 0;
}

.ux-europeStats span{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 11px;
  border:1px solid rgba(140,164,225,.18);
  border-radius:14px;
  background:rgba(255,255,255,.055);
  color:var(--nx-muted);
  font-weight:850;
}

.ux-europeStats b{
  color:var(--nx-ink);
  font-size:18px;
}

.ux-europeRoute{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}

.ux-europeRoute a{
  display:grid;
  gap:5px;
  min-height:104px;
  padding:14px;
  border:1px solid rgba(140,164,225,.2);
  border-radius:20px;
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.035));
  color:var(--nx-ink);
  text-decoration:none;
}

.ux-europeRoute span{
  color:#8fdcff;
  font-size:12px;
  font-weight:950;
}

.ux-europeRoute b{
  font-size:19px;
  line-height:1.05;
}

.ux-europeRoute small{
  color:var(--nx-muted);
  font-weight:750;
  line-height:1.35;
}

.ux-europeAtlas .ux-countryGroupsCompact{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.ux-europeAtlas .ux-countryGroup{
  padding:14px;
  border:1px solid rgba(140,164,225,.18);
  border-radius:18px;
  background:rgba(255,255,255,.04);
}

.ux-europeAtlas .ux-countryGroup h3{
  margin:0 0 9px;
  font-size:14px;
}

.ux-europeAtlas .ux-countryPills{
  gap:6px;
}

.ux-europeAtlas .ct-countryPill{
  min-height:32px;
  padding:5px 8px;
}

.ct-prefooter{
  height:0 !important;
}

/* Admin auth, managed content and blog surfaces */
.ux-adminLoginPage{
  min-height:100dvh;
  display:grid;
  align-items:center;
  padding:120px 0 72px;
}

.ux-adminLoginCard{
  width:min(100%,520px);
  margin:0 auto;
  display:grid;
  gap:18px;
  padding:28px;
  border:1px solid var(--nx-line);
  border-radius:28px;
  background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.035));
  box-shadow:var(--nx-shadow);
}

.ux-adminLoginCard h1{
  margin:8px 0;
  font-size:clamp(32px,4vw,48px);
}

.ux-adminLoginCard p{
  margin:0;
  color:var(--nx-muted);
}

.ux-adminLoginForm,
.ux-adminContentForm,
.ux-blogEditorForm{
  display:grid;
  gap:14px;
}

.ux-adminLoginForm label,
.ux-adminContentForm label,
.ux-blogEditorForm label,
.ux-blogSearch label{
  display:grid;
  gap:7px;
  color:var(--nx-muted);
  font-size:12px;
  font-weight:850;
}

.ux-adminLoginForm input,
.ux-adminContentForm input,
.ux-adminContentForm select,
.ux-adminContentForm textarea,
.ux-blogEditorForm input,
.ux-blogEditorForm select,
.ux-blogEditorForm textarea,
.ux-blogSearch input{
  width:100%;
  min-height:46px;
  border:1px solid var(--nx-line);
  border-radius:16px;
  background:rgba(255,255,255,.06);
  color:var(--nx-ink);
  padding:0 14px;
}

.ux-adminContentForm textarea,
.ux-blogEditorForm textarea{
  padding:13px 14px;
  line-height:1.6;
}

.ux-adminLogout{
  justify-self:end;
}

.ux-adminGrid4{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}

.ux-adminFullField{
  grid-column:1 / -1;
}

.ux-faqEditorRows{
  display:grid;
  gap:12px;
}

.ux-faqEditorRow{
  display:grid;
  grid-template-columns:minmax(220px,.45fr) minmax(0,1fr);
  gap:12px;
  padding:12px;
  border:1px solid var(--nx-line);
  border-radius:18px;
  background:rgba(255,255,255,.035);
}

.ux-managedContent .container{
  display:grid;
  gap:18px;
}

.ux-managedSeoText h2,
.ux-managedSeoText h3,
.ux-blogArticle h2,
.ux-blogArticle h3{
  margin-top:1.1em;
}

.ux-managedSeoText p,
.ux-managedFaq p,
.ux-blogArticle p{
  color:var(--nx-muted);
  line-height:1.8;
}

.ux-managedSeoText :is(ul,ol){
  display:grid;
  gap:8px;
  color:var(--nx-muted);
  line-height:1.7;
}

.ux-managedSeoText :is(table,figure,details,.seo-callout,.seo-columns){
  margin-top:16px;
}

.ux-managedSeoText figure img{
  display:block;
  width:100%;
  height:auto;
  border-radius:18px;
}

.ux-managedSeoText figcaption,
.ux-managedSeoText small{
  color:var(--nx-muted);
}

.ux-managedSeoText table{
  width:100%;
  border-collapse:collapse;
  overflow:hidden;
  border-radius:16px;
}

.ux-managedSeoText th,
.ux-managedSeoText td{
  padding:12px 14px;
  border:1px solid var(--nx-line);
}

.ux-managedSeoText details,
.ux-managedSeoText .seo-callout{
  padding:16px 18px;
  border:1px solid var(--nx-line);
  border-radius:20px;
  background:rgba(255,255,255,.045);
}

.ux-managedSeoText summary{
  cursor:pointer;
  color:var(--nx-ink);
  font-weight:900;
}

.ux-managedSeoText .seo-columns{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.ux-managedSeoText .seo-columns > *{
  padding:16px;
  border:1px solid var(--nx-line);
  border-radius:18px;
  background:rgba(255,255,255,.035);
}

.ux-faqList{
  display:grid;
  gap:10px;
  margin-top:14px;
}

.ux-faqList details{
  border:1px solid var(--nx-line);
  border-radius:18px;
  background:rgba(255,255,255,.04);
  padding:14px 16px;
  transition:border-color .2s ease, background .2s ease, transform .2s ease;
}

.ux-faqList summary{
  cursor:pointer;
  color:var(--nx-ink);
  font-weight:900;
  display:flex;
  align-items:center;
  gap:16px;
  list-style:none;
}

.ux-faqList summary::-webkit-details-marker{
  display:none;
}

.ux-faqList summary h3{
  margin:0;
  color:var(--nx-ink);
  font-size:clamp(1rem, 1.5vw, 1.18rem);
  line-height:1.3;
  letter-spacing:0;
}

.ux-faqList summary::after{
  content:"+";
  flex:0 0 auto;
  margin-left:auto;
  width:34px;
  height:34px;
  border-radius:999px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
  color:var(--nx-ink);
  font-size:1.1rem;
  line-height:1;
  transition:transform .2s ease, background .2s ease, border-color .2s ease;
}

.ux-faqList details[open]{
  border-color:rgba(52,211,255,.42);
  background:linear-gradient(135deg, rgba(52,211,255,.09), rgba(139,92,246,.08));
}

.ux-faqList details[open] summary::after{
  content:"-";
  transform:rotate(180deg);
  border-color:rgba(52,211,255,.45);
  background:rgba(52,211,255,.12);
}

.ux-faqList p{
  margin:10px 0 0;
}

.ux-faqAnswer{
  margin-top:10px;
  color:var(--nx-muted);
  line-height:1.75;
}

.ux-faqAnswer :is(p,ul,ol){
  margin:0 0 10px;
}

.ux-managedSeoText.is-collapsedMode{
  max-height:none;
}

.ux-autoFaqSection{
  padding-top:clamp(36px, 5vw, 72px);
}

.ux-autoFaqBlock{
  position:relative;
  overflow:hidden;
}

.ux-autoFaqBlock::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(52,211,255,.55), rgba(139,92,246,.5), transparent);
}

.ux-autoFaqList{
  margin-top:18px;
}

.ux-autoFaqList details:hover{
  transform:translateY(-1px);
  border-color:rgba(255,255,255,.22);
}

.ux-blogLayout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 340px;
  gap:28px;
  align-items:start;
}

.ux-blogMain{
  display:grid;
  gap:18px;
}

.ux-blogSidebar{
  position:sticky;
  top:98px;
  display:grid;
  gap:16px;
}

.ux-blogSearch{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:end;
  padding:16px;
  border:1px solid var(--nx-line);
  border-radius:22px;
  background:var(--nx-card);
}

.ux-blogPostGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.ux-blogCard{
  overflow:hidden;
  border:1px solid var(--nx-line);
  border-radius:24px;
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
}

.ux-blogImage{
  display:block;
  aspect-ratio:16/9;
  background:rgba(255,255,255,.05);
}

.ux-blogImage img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.ux-blogCardBody{
  display:grid;
  gap:10px;
  padding:18px;
}

.ux-blogCard h2{
  margin:0;
  font-size:clamp(22px,2.4vw,30px);
  line-height:1.08;
}

.ux-blogCard h2 a,
.ux-blogTags a,
.ux-blogPrevNext a{
  color:var(--nx-ink);
  text-decoration:none;
}

.ux-blogCard p{
  margin:0;
  color:var(--nx-muted);
  line-height:1.55;
}

.ux-blogTags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.ux-blogTags a{
  min-height:30px;
  display:inline-flex;
  align-items:center;
  padding:0 10px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  color:var(--nx-muted);
  font-size:12px;
  font-weight:850;
}

.ux-blogArticle{
  padding:clamp(20px,4vw,38px);
  border:1px solid var(--nx-line);
  border-radius:28px;
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
}

.ux-blogArticleMeta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:18px;
  color:var(--nx-muted);
  font-size:12px;
  font-weight:850;
}

.ux-blogArticleMeta a{
  color:var(--nx-ink);
  text-decoration:none;
}

.ux-blogArticle blockquote{
  margin:24px 0;
  padding:18px 20px;
  border-left:4px solid var(--nx-cyan);
  border-radius:16px;
  background:rgba(255,255,255,.05);
  color:var(--nx-ink);
}

.ux-blogPrevNext{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.ux-blogPrevNext a{
  display:grid;
  gap:4px;
  padding:16px;
  border:1px solid var(--nx-line);
  border-radius:18px;
  background:rgba(255,255,255,.05);
}

.ux-blogPrevNext span{
  color:var(--nx-muted);
  font-size:12px;
  font-weight:850;
}

.ux-blogNewsletter p{
  color:var(--nx-muted);
}

.ct-adminBadge-draft{
  background:rgba(255,255,255,.08);
}

.ct-adminBadge-published{
  background:rgba(49,211,255,.14);
}

@media (max-width:1199.98px){
  .ux-blogLayout{
    grid-template-columns:1fr;
  }

  .ux-blogSidebar{
    position:relative;
    top:auto;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .ux-adminGrid4{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:720px){
  .ux-adminLoginPage{
    padding:96px 0 48px;
  }

  .ux-adminLoginCard{
    padding:20px;
    border-radius:22px;
  }

  .ux-adminGrid4,
  .ux-faqEditorRow,
  .ux-blogSearch,
  .ux-blogPostGrid,
  .ux-blogPrevNext,
  .ux-blogSidebar{
    grid-template-columns:1fr;
  }
}

.ct-footer{
  margin-top:6px !important;
}

.ct-subscribeOverlay{
  position:fixed;
  inset:0;
  z-index:5000;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(3,8,24,.58);
  backdrop-filter:blur(14px);
}

.ct-subscribeOverlay[hidden]{
  display:none !important;
}

.ct-subscribeDialog{
  width:min(520px,100%);
  padding:24px;
  border:1px solid rgba(140,164,225,.28);
  border-radius:28px;
  background:linear-gradient(180deg, rgba(17,26,59,.97), rgba(9,16,41,.98));
  color:var(--nx-ink);
  box-shadow:0 34px 90px rgba(0,0,0,.42);
}

.ct-subscribeDialog h2{
  margin:8px 0 8px;
  font-size:clamp(26px,4vw,38px);
}

.ct-subscribeDialog p{
  color:var(--nx-muted);
  font-weight:700;
}

.ct-subscribeForm{
  display:flex;
  gap:10px;
  margin-top:16px;
}

.ct-subscribeForm input{
  flex:1;
  min-width:0;
  min-height:48px;
  border:1px solid rgba(140,164,225,.28);
  border-radius:999px;
  padding:0 16px;
  background:rgba(255,255,255,.08);
  color:var(--nx-ink);
}

.ct-subscribeClose{
  position:absolute;
  top:14px;
  right:14px;
}

@media (max-width:767.98px){
  .ux-europeAtlas,
  .ux-europeAtlas .ux-countryGroupsCompact,
  .ux-europeRoute{
    grid-template-columns:1fr;
  }

  .ct-subscribeForm{
    display:grid;
  }
}

/* Route, marker and player production polish. Uses existing design tokens only. */
.ux-companionPanel{
  position:sticky;
  top:96px;
  align-self:start;
  max-height:none;
  overflow:visible;
  padding-right:2px;
}

.ux-companionPlaces{
  display:grid;
  gap:10px;
}

.ux-miniPlace{
  display:grid;
  gap:8px;
  padding:9px;
  border:1px solid var(--nx-line);
  border-radius:18px;
  background:rgba(255,255,255,.045);
}

.ux-miniPlace.is-active{
  border-color:rgba(56,189,248,.42);
  background:rgba(56,189,248,.1);
}

.ux-miniPlace > a{
  display:grid !important;
  grid-template-columns:54px minmax(0,1fr);
  gap:10px;
  align-items:center;
}

.ux-miniPlace img{
  width:54px;
  height:54px;
  object-fit:cover;
  border-radius:14px;
}

.ux-miniPlace b,
.ux-miniPlace small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.ux-miniPlace b{
  color:var(--nx-ink);
  font-size:13px;
  font-weight:950;
}

.ux-miniPlace small{
  color:var(--nx-muted);
  font-size:11px;
  font-weight:850;
}

.ux-miniPlaceActions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
}

.ag-placeMarker{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.48);
  border-radius:999px;
  background:linear-gradient(135deg, rgba(56,189,248,.94), rgba(167,139,250,.88));
  box-shadow:0 10px 26px rgba(0,0,0,.32), 0 0 0 4px rgba(12,18,42,.5);
  color:var(--nx-ink);
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.ag-placeMarker:hover,
.ag-placeMarker:focus-visible,
.ag-placeMarker.is-active{
  transform:scale(1.08);
  border-color:rgba(255,255,255,.72);
  box-shadow:0 14px 34px rgba(0,0,0,.38), 0 0 0 7px rgba(56,189,248,.18);
  outline:0;
}

.ag-placeMarker.is-active{
  animation:agMarkerPulse 1.5s ease-in-out infinite;
}

.ag-placeMarkerGlyph{
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:999px;
  background:rgba(12,18,42,.62);
  font-size:12px;
  font-weight:950;
  line-height:1;
}

@keyframes agMarkerPulse{
  0%,100%{box-shadow:0 14px 34px rgba(0,0,0,.38), 0 0 0 5px rgba(56,189,248,.15)}
  50%{box-shadow:0 16px 38px rgba(0,0,0,.42), 0 0 0 11px rgba(56,189,248,.08)}
}

.ag-mapPlaceRoute,
.ag-mapPlacePlay{
  min-height:34px;
  padding:0 10px;
  border:1px solid rgba(56,189,248,.32);
  border-radius:999px;
  background:rgba(56,189,248,.12);
  color:var(--nx-ink);
  font-size:12px;
  font-weight:900;
}

.ag-mapPlaceRoute{
  border-color:var(--nx-line);
  background:rgba(255,255,255,.06);
}

.ag-mapAction[disabled],
.ag-mapPlaceRoute[disabled]{
  cursor:not-allowed;
  opacity:.48;
  transform:none !important;
}

.ag-mapAction.is-loading::after{
  content:"";
  width:10px;
  height:10px;
  border:2px solid currentColor;
  border-top-color:transparent;
  border-radius:999px;
  animation:agSpin .8s linear infinite;
}

@keyframes agSpin{
  to{transform:rotate(360deg)}
}

.ag-noCoordsBadge{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  width:max-content;
  margin-left:6px;
  padding:0 7px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  background:rgba(255,255,255,.06);
  color:var(--nx-muted);
  font-size:10px;
  font-weight:900;
}

.ag-routeInfo[data-state="ready"]{
  border-color:rgba(56,189,248,.32);
  background:rgba(56,189,248,.1);
  color:var(--nx-ink);
}

.ag-routeInfo[data-state="failed"],
.ag-routeInfo[data-state="unavailable"]{
  border-color:rgba(248,113,113,.28);
  background:rgba(248,113,113,.08);
}

.ag-mapActionQuiet{
  margin-top:8px;
}

.ag-player{
  min-height:88px;
  border-color:rgba(140,164,225,.34) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.105), rgba(255,255,255,.055)),
    rgba(12,18,42,.86) !important;
  box-shadow:0 22px 70px rgba(0,0,0,.46), inset 0 1px 0 rgba(255,255,255,.11) !important;
  backdrop-filter:blur(22px);
}

.ag-player-inner{
  max-width:1240px !important;
}

.ag-player-now::before{
  width:40px;
  height:40px;
  border-radius:16px;
  border-color:rgba(56,189,248,.26);
  background:
    radial-gradient(circle at 34% 30%, rgba(56,189,248,.42), transparent 42%),
    linear-gradient(135deg, rgba(255,255,255,.13), rgba(255,255,255,.045));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14);
}

.ag-player-title{
  color:var(--nx-ink) !important;
  font-size:15px !important;
  font-weight:950 !important;
  letter-spacing:0;
}

.ag-player-meta{
  color:#c8d3ee !important;
  font-size:12px !important;
  font-weight:800 !important;
}

.ag-player-btn{
  border-color:rgba(140,164,225,.28) !important;
  background:rgba(255,255,255,.075) !important;
  color:var(--nx-ink) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}

.ag-player-btn:hover,
.ag-player-btn:focus-visible{
  border-color:rgba(56,189,248,.44) !important;
  background:rgba(255,255,255,.12) !important;
}

.ag-player-btnPrimary{
  background:linear-gradient(135deg, rgba(56,189,248,.32), rgba(167,139,250,.24)) !important;
  border-color:rgba(56,189,248,.46) !important;
}

.ag-bar{
  background:rgba(255,255,255,.095) !important;
}

.ag-barFill{
  background:linear-gradient(90deg, var(--nx-cyan), var(--nx-violet)) !important;
}

.ag-player-stats{
  color:#dce7ff !important;
}

.ag-playerLoading{
  color:#dce7ff !important;
  background:rgba(56,189,248,.09) !important;
  border-color:rgba(56,189,248,.24) !important;
}

.ag-secTop{
  border-radius:22px !important;
  background:rgba(255,255,255,.045) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045);
  border:1px solid rgba(140,164,225,.2) !important;
  padding:15px 16px !important;
  gap:14px !important;
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease !important;
}

.ag-secTop:hover,
.ag-secTop:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(140,164,225,.36) !important;
  box-shadow:0 14px 34px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.07) !important;
  outline:0;
}

.ag-secTop.isPlaying{
  background:
    linear-gradient(135deg, rgba(56,189,248,.16), rgba(167,139,250,.08)),
    rgba(255,255,255,.055) !important;
  border-color:rgba(56,189,248,.42) !important;
}

.ag-secTitle{
  color:var(--nx-ink) !important;
  font-weight:950 !important;
  letter-spacing:0 !important;
}

.ag-secMeta{
  color:#c4cee8 !important;
  font-weight:780 !important;
}

.ag-secBtns{
  gap:9px !important;
}

.ag-iconBtn{
  border-radius:999px !important;
  border-color:rgba(140,164,225,.26) !important;
  background:rgba(255,255,255,.07) !important;
  color:var(--nx-ink) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}

.ag-iconBtnPrimary{
  background:linear-gradient(135deg, rgba(56,189,248,.25), rgba(167,139,250,.18)) !important;
  border-color:rgba(56,189,248,.38) !important;
}

@media (max-width:991.98px){
  .ux-companionPanel{
    position:relative;
    top:auto;
    max-height:none;
    overflow:visible;
  }
}

@media (max-width:767.98px){
  .ag-mapPlaceList li{
    grid-template-columns:minmax(0,1fr) auto auto;
  }

  .ux-companionPlaces{
    grid-template-columns:1fr;
  }

  .ag-player{
    min-height:76px;
  }
}

*{box-sizing:border-box}

body{
  margin:0;
  padding-top:80px !important;
  color:var(--nx-ink);
  background:
    radial-gradient(1200px 520px at -5% -15%, rgba(41,214,255,.16) 0%, rgba(41,214,255,0) 62%),
    radial-gradient(1000px 540px at 110% -20%, rgba(141,91,255,.2) 0%, rgba(141,91,255,0) 62%),
    radial-gradient(900px 560px at 50% 120%, rgba(255,79,216,.14) 0%, rgba(255,79,216,0) 56%),
    linear-gradient(180deg, var(--nx-bg) 0%, #050814 100%) !important;
  font-family:"Plus Jakarta Sans", Inter, system-ui, sans-serif !important;
}

h1,h2,h3,h4,h5,h6,.font-cursive{
  font-family:"Space Grotesk","Plus Jakarta Sans",sans-serif !important;
  letter-spacing:-.01em;
}

a{color:inherit}

.btn-primary{
  border:0 !important;
  color:#fff !important;
  background:linear-gradient(135deg, var(--nx-cyan) 0%, var(--nx-violet) 72%) !important;
  box-shadow:0 10px 24px rgba(41,214,255,.26);
}

.btn-outline-dark{
  color:#eaf1ff !important;
  border:1px solid rgba(140,164,225,.32) !important;
  background:rgba(255,255,255,.04) !important;
}

.btn-outline-dark:hover{
  color:#fff !important;
  background:rgba(255,255,255,.1) !important;
}

.ag-pill{
  color:#dce7ff !important;
  border-color:rgba(140,164,225,.34) !important;
  background:rgba(255,255,255,.08) !important;
}

.dropdown-menu{
  border:1px solid rgba(140,164,225,.26) !important;
  background:linear-gradient(165deg, rgba(18,27,58,.96) 0%, rgba(12,19,43,.95) 100%) !important;
  box-shadow:0 16px 34px rgba(0,0,0,.44) !important;
}

.dropdown-item{
  color:#dce7ff !important;
}

.dropdown-item:hover{
  color:#fff !important;
  background:rgba(41,214,255,.12) !important;
}

.ag-eu-link{
  color:#dce7ff !important;
}

.ag-eu-link:hover{
  background:rgba(41,214,255,.12) !important;
  border-color:rgba(41,214,255,.35) !important;
}

.ag-search-dd{
  border:1px solid rgba(140,164,225,.26) !important;
  background:linear-gradient(165deg, rgba(18,27,58,.96) 0%, rgba(12,19,43,.95) 100%) !important;
  box-shadow:0 16px 34px rgba(0,0,0,.44) !important;
}

.ag-search-item{color:#eaf1ff}

.ag-search-item:hover{
  background:rgba(41,214,255,.12) !important;
}

.ag-search-meta{color:#9ea9c9 !important}

.ag-voiceBtn{
  color:#dce7ff !important;
  border-color:rgba(140,164,225,.3) !important;
  background:rgba(255,255,255,.06) !important;
  box-shadow:none !important;
}

.ag-voiceBtn[aria-pressed="true"]{
  color:#fff !important;
  border:0 !important;
  background:linear-gradient(135deg, var(--nx-cyan) 0%, var(--nx-violet) 74%) !important;
}

.ct-navbar{
  min-height:72px;
  border-bottom:1px solid rgba(255,255,255,.1);
  background:
    linear-gradient(180deg, rgba(9,15,38,.88) 0%, rgba(8,12,30,.84) 100%) !important;
  backdrop-filter:blur(16px);
  box-shadow:0 10px 36px rgba(0,0,0,.45);
}

.ct-brand{
  color:#fff !important;
  font-weight:800;
  font-size:20px;
  letter-spacing:.2px;
}

.ct-navbar .nav-link{
  color:rgba(238,244,255,.88) !important;
  font-weight:600 !important;
  border-radius:999px;
  padding:8px 12px !important;
}

.ct-navbar .nav-link:hover{
  color:#fff !important;
  background:rgba(255,255,255,.1);
}

.ct-navbar .navbar-toggler{
  border-color:rgba(255,255,255,.42) !important;
}

.ct-navbar .navbar-toggler-icon{
  filter:invert(1) brightness(20);
}

.ct-navbar .navbar-collapse{
  border-top:0 !important;
}

.ct-searchWrap{
  min-width:min(380px, 44vw);
}

.ct-searchWrap .ag-search-input{
  min-height:42px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(246,250,255,.96);
  box-shadow:0 12px 30px rgba(0,0,0,.3);
}

.ct-heroSearchSlot{
  position:relative;
  z-index:35;
  padding:14px 0 0;
}

.ct-heroSearchSlot .container{
  display:flex;
  justify-content:flex-end;
  max-width:1320px;
}

.ct-heroSearchWrap{
  width:min(480px, 100%);
  min-width:0;
}

.ct-heroSearchWrap .ag-search-input{
  min-height:50px;
  border-color:rgba(140,164,225,.34);
  background:rgba(246,250,255,.98);
  box-shadow:0 18px 46px rgba(0,0,0,.34);
}

.ct-heroSearchSlot .ag-search-dd{
  text-align:left;
}

.ct-langHint{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border-radius:14px;
  color:#d9e6ff;
  background:linear-gradient(130deg, rgba(41,214,255,.16) 0%, rgba(141,91,255,.15) 100%);
  border:1px solid rgba(140,164,225,.35);
  box-shadow:var(--nx-shadow);
}

.ct-langHint a{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 14px;
  text-decoration:none;
  border-radius:999px;
  color:#fff;
  font-weight:700;
  background:linear-gradient(135deg, var(--nx-cyan) 0%, var(--nx-violet) 100%);
}

/* --- Home --- */
.ct-homeHero{
  margin-top:8px;
  padding:10px 0 12px;
}

.ct-homeHero > .container{
  max-width:min(1860px, 98vw);
}

.ct-homeHeroSplitGrid{
  display:grid;
  grid-template-columns:minmax(0,1.04fr) minmax(360px,.96fr);
  gap:20px;
  align-items:stretch;
}

.ct-homeHeroMedia{
  position:relative;
  height:min(700px, 78vh);
  overflow:hidden;
  border-radius:30px;
  border:1px solid rgba(140,164,225,.24);
  box-shadow:var(--nx-shadow);
}

.ct-homeHeroMedia img,
.ct-homeHeroMedia .ag-ph,
.ct-homeHeroMedia .ct-homeHeroCanvas{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(1.1) contrast(1.05);
}

.ct-homeHeroCanvas{
  background:
    radial-gradient(120% 120% at 15% 14%, rgba(41,214,255,.34) 0%, rgba(41,214,255,0) 56%),
    radial-gradient(140% 120% at 100% 0%, rgba(141,91,255,.34) 0%, rgba(141,91,255,0) 58%),
    linear-gradient(160deg, #17264d 0%, #101a37 42%, #0a132a 100%);
}

.ct-homeHeroOverlay{
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 420px at 0% 0%, rgba(41,214,255,.2) 0%, rgba(41,214,255,0) 68%),
    radial-gradient(760px 340px at 100% 0%, rgba(141,91,255,.22) 0%, rgba(141,91,255,0) 62%),
    linear-gradient(95deg, rgba(5,10,26,.84) 0%, rgba(6,10,24,.62) 38%, rgba(6,10,24,.28) 72%, rgba(6,10,24,.12) 100%);
}

.ct-homeHeroInner{
  position:absolute;
  inset:0;
  display:flex;
  align-items:flex-end;
  padding:24px;
}

.ct-homeHeroPanel{
  width:min(620px, calc(100% - 24px));
  border-radius:34px;
  padding:24px;
  color:#d9e6ff;
  background:linear-gradient(145deg, rgba(16,24,50,.9) 0%, rgba(14,21,44,.82) 100%);
  border:1px solid rgba(140,164,225,.34);
  backdrop-filter:blur(16px);
  box-shadow:0 24px 64px rgba(1,6,18,.52);
}

.ct-homeHeroMini{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:10px;
}

.ct-homeHeroMini span{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  border-radius:999px;
  padding:0 10px;
  font-size:11px;
  font-weight:700;
  color:#d3e2ff;
  background:rgba(141,91,255,.18);
  border:1px solid rgba(141,91,255,.35);
}

.ct-homeHeroPanel h1{
  margin:0 0 10px;
  font-size:clamp(38px, 4.7vw, 86px);
  line-height:.98;
  color:#fff;
  font-weight:800;
  letter-spacing:-.02em;
  text-wrap:balance;
}

.ct-homeHeroPanel p{
  margin:0 0 14px;
  color:#b6c2e6;
  font-weight:700;
  font-size:clamp(18px, 1.4vw, 38px);
}

.ct-homeHeroSelect{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:46px;
  margin-top:8px;
  border-radius:14px;
  color:#e5eeff;
  text-decoration:none;
  padding:0 14px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(140,164,225,.3);
}

.ct-homeHeroSelect span{font-size:18px}

.ct-homeHeroMapCard{
  min-height:min(700px, 78vh);
  border-radius:30px;
  overflow:hidden;
  border:1px solid rgba(140,164,225,.24);
  background:#0c1330;
  box-shadow:var(--nx-shadow);
}

.ct-homeHeroMapCard .ag-map{
  width:100%;
  height:100%;
  min-height:min(700px, 78vh);
}

.ct-homeWhy{
  padding:58px 0 16px;
}

.ct-homeWhyGrid{
  display:grid;
  grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);
  gap:18px;
}

.ct-homeWhyText{
  border-radius:22px;
  padding:24px;
  color:#dce7ff;
  background:linear-gradient(160deg, rgba(17,25,53,.92) 0%, rgba(12,18,40,.9) 100%);
  border:1px solid rgba(140,164,225,.22);
  box-shadow:var(--nx-shadow);
}

.ct-homeWhyText h3,
.ct-homeWhyVisual h3{
  margin:0 0 14px;
  font-size:clamp(28px,3vw,40px);
  color:#fff;
  font-weight:800;
  line-height:1.05;
}

.ct-homeWhyText ol{
  margin:0;
  padding-left:20px;
  display:grid;
  gap:8px;
}

.ct-homeWhyText li{color:#9fb0d9}
.ct-homeWhyText li b{
  display:block;
  margin-bottom:2px;
  color:#eff4ff;
  font-size:15px;
}
.ct-homeWhyText li span{
  font-size:13px;
  font-weight:600;
}

.ct-primaryBtn{
  border:0 !important;
  border-radius:999px !important;
  font-weight:700;
  color:#fff !important;
  background:linear-gradient(135deg, var(--nx-cyan) 0%, var(--nx-violet) 72%) !important;
  box-shadow:0 12px 28px rgba(41,214,255,.28);
}

.ct-homeWhyVisual{
  border-radius:22px;
  padding:18px;
  background:linear-gradient(160deg, rgba(16,24,50,.94) 0%, rgba(10,16,36,.9) 100%);
  border:1px solid rgba(140,164,225,.22);
  box-shadow:var(--nx-shadow);
}

.ct-phoneStack{
  position:relative;
  min-height:382px;
}

.ct-phoneMock{
  position:absolute;
  right:108px;
  top:18px;
  width:210px;
  height:372px;
  border-radius:28px;
  border:1px solid rgba(140,164,225,.36);
  background:linear-gradient(180deg, rgba(255,255,255,.95) 0%, rgba(233,244,255,.94) 100%);
  box-shadow:0 14px 36px rgba(0,0,0,.44);
}

.ct-phoneMock::before{
  content:"";
  position:absolute;
  inset:12px;
  border-radius:20px;
  background:linear-gradient(180deg, rgba(41,214,255,.22) 0%, rgba(141,91,255,.2) 44%, rgba(255,255,255,.9) 100%);
}

.ct-phoneMockMid{
  right:256px;
  top:36px;
  width:174px;
  height:334px;
}

.ct-phoneMockSide{
  right:-4px;
  top:54px;
  width:166px;
  height:302px;
}

.ct-homeCards{
  padding:30px 0 14px;
}

.ct-homeCardsCities{
  padding-top:6px;
  padding-bottom:36px;
}

.ct-homeSectionHead{
  margin-bottom:16px;
}

.ct-homeSectionHead h3{
  margin:0;
  font-size:clamp(28px,3vw,40px);
  color:#fff;
  font-weight:800;
}

.ct-homeSectionHead p{
  margin:8px 0 0;
  color:#9ea9c9;
  font-weight:600;
}

.ct-grid4{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}

.ct-mediaCard,
.ct-cityCard{
  display:block;
  text-decoration:none;
  color:inherit;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(140,164,225,.22);
  background:linear-gradient(165deg, rgba(18,27,58,.96) 0%, rgba(12,19,43,.94) 100%);
  box-shadow:0 10px 28px rgba(0,0,0,.34);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.ct-mediaCard:hover,
.ct-cityCard:hover{
  transform:translateY(-3px);
  border-color:rgba(41,214,255,.55);
  box-shadow:0 16px 34px rgba(0,0,0,.42);
}

.ct-mediaCard img,
.ct-cityCard img{
  width:100%;
  height:188px;
  object-fit:cover;
  display:block;
}

.ct-mediaCardBody{
  padding:10px 12px 12px;
}

.ct-mediaCardBody h5{
  margin:0 0 4px;
  font-size:16px;
  font-weight:700;
  color:#eaf1ff;
}

.ct-mediaCardBody p{
  margin:0;
  font-size:13px;
  font-weight:600;
  color:#99a8cd;
}

.ct-cityCard span{
  display:block;
  padding:10px 12px 12px;
  font-size:16px;
  font-weight:700;
  color:#edf3ff;
}

.ct-homeLive{
  padding:26px 0 44px;
}

.ct-liveSplit{
  display:grid;
  grid-template-columns:minmax(364px,36%) minmax(0,1fr);
  gap:14px;
  padding:0 10px;
}

.ct-liveSplitNoMap{
  grid-template-columns:1fr;
  max-width:1200px;
  margin:0 auto;
}

.ct-liveRail{
  display:flex;
  flex-direction:column;
  gap:12px;
  max-height:min(860px, 86vh);
}

.ct-liveSplitNoMap .ct-liveRail{
  max-height:none;
}

.ct-liveSplitNoMap .ct-liveCities,
.ct-liveSplitNoMap .ct-liveStory{
  overflow:visible;
}

.ct-liveCard{
  background:linear-gradient(165deg, rgba(18,27,58,.96) 0%, rgba(12,19,43,.95) 100%);
  border:1px solid rgba(140,164,225,.24);
  border-radius:18px;
  padding:12px;
  box-shadow:0 10px 26px rgba(0,0,0,.34);
}

.ct-liveCard h5,
.ct-liveCard .fw-bold,
.ct-liveCard b{
  color:#eef3ff !important;
}

.ct-liveCard .text-secondary,
.ct-liveCard .ag-search-meta,
.ct-liveCard .ag-status{
  color:#9ea9c9 !important;
}

.ct-liveCard .btn.btn-light{
  background:rgba(255,255,255,.06) !important;
  border:1px solid rgba(140,164,225,.24) !important;
  color:#eaf1ff !important;
}

.ct-liveCard .btn.btn-light:hover{
  background:rgba(41,214,255,.12) !important;
}

.ct-liveCities{overflow:auto; flex:1 1 40%}
.ct-liveStory{overflow:auto; flex:1 1 60%}

.ct-liveMapWrap{min-width:0}

.ct-liveMap{
  height:min(860px, 86vh);
  min-height:620px;
  border-radius:22px;
  overflow:hidden;
  border:1px solid rgba(140,164,225,.24);
  background:#0c1330;
  box-shadow:0 14px 34px rgba(0,0,0,.42);
}

/* --- Country / City / Place pages --- */
.ct-pageHero{
  position:relative;
  height:min(430px, 52vh);
  overflow:hidden;
  border-radius:0 0 26px 26px;
}

.ct-pageHeroEntity{
  height:auto;
  border-radius:0;
  overflow:visible;
  padding:14px 0 8px;
}

.ct-pageHeroMediaWide{
  position:relative;
  height:min(620px, 72vh);
  border-radius:30px;
  overflow:hidden;
  border:1px solid rgba(140,164,225,.26);
  box-shadow:var(--nx-shadow);
}

.ct-pageHeroMediaWide img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(1.08) contrast(1.05);
}

.ct-pageHeroInnerWide{
  justify-content:flex-end;
  align-items:flex-start;
  padding:24px;
}

.ct-pageHeroCard{
  width:min(640px, calc(100% - 22px));
  border-radius:30px;
  padding:22px;
  color:#dce7ff;
  background:linear-gradient(145deg, rgba(16,24,50,.9) 0%, rgba(14,21,44,.82) 100%);
  border:1px solid rgba(140,164,225,.34);
  backdrop-filter:blur(14px);
  box-shadow:0 20px 56px rgba(1,6,18,.5);
}

.ct-pageHeroCard h1{
  margin:0;
  color:#fff;
  font-size:clamp(42px, 4.8vw, 86px);
  line-height:.96;
  font-weight:800;
  letter-spacing:-.02em;
  text-wrap:balance;
}

.ct-pageHeroCard p{
  margin:14px 0 0;
  color:#d1ddff;
  font-size:clamp(16px, 1.1vw, 23px);
  font-weight:700;
}

.ct-pageShell{
  padding:18px 0 10px;
}

.ct-pageShellGrid{
  display:grid;
  grid-template-columns:minmax(340px, .92fr) minmax(0, 1.08fr);
  gap:16px;
  align-items:stretch;
}

.ct-pageShellRail{
  min-height:0;
}

.ct-shellBlock{
  height:100%;
  border-radius:20px;
  padding:16px;
  background:linear-gradient(165deg, rgba(18,27,58,.96) 0%, rgba(12,19,43,.95) 100%);
  border:1px solid rgba(140,164,225,.24);
  box-shadow:var(--nx-shadow);
}

.ct-shellBlock h3{
  margin:0;
  color:#fff;
  font-size:clamp(24px, 2.7vw, 34px);
  font-weight:800;
}

.ct-shellBlock p{
  margin:8px 0 0;
  color:#9ea9c9;
  font-weight:600;
}

.ct-tourTimeline{
  margin:14px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
  max-height:min(560px, 70vh);
  overflow:auto;
}

.ct-tourTimeline li{
  margin:0;
}

.ct-tourTimeline li a{
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  gap:10px;
  align-items:center;
  text-decoration:none;
  color:inherit;
  border-radius:14px;
  border:1px solid rgba(140,164,225,.22);
  background:rgba(255,255,255,.04);
  padding:8px;
}

.ct-tourTimeline li a:hover{
  border-color:rgba(41,214,255,.56);
  background:rgba(41,214,255,.1);
}

.ct-tourTimeline li img{
  width:76px;
  height:60px;
  border-radius:10px;
  object-fit:cover;
}

.ct-tourTimeline li b{
  display:block;
  color:#eef4ff;
  line-height:1.2;
}

.ct-tourTimeline li small{
  display:block;
  margin-top:4px;
  color:#9ca8ca;
  font-size:12px;
  font-weight:600;
}

.ct-pageShellMap{
  border-radius:20px;
  overflow:hidden;
  border:1px solid rgba(140,164,225,.24);
  background:#0c1330;
  box-shadow:var(--nx-shadow);
}

.ct-pageShellMap .ag-map{
  width:100%;
  height:min(560px, 70vh);
  min-height:420px;
}

.ct-pageHero img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(1.08) contrast(1.04);
}

.ct-pageHeroOverlay{
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 360px at 12% 15%, rgba(41,214,255,.22) 0%, rgba(41,214,255,0) 66%),
    radial-gradient(760px 340px at 100% 0%, rgba(141,91,255,.24) 0%, rgba(141,91,255,0) 64%),
    linear-gradient(95deg, rgba(7,12,30,.84) 0%, rgba(7,12,30,.52) 44%, rgba(7,12,30,.18) 100%);
}

.ct-pageHeroInner{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.ct-pageHeroInner h1{
  margin:0;
  color:#fff;
  font-size:clamp(34px, 4.2vw, 64px);
  line-height:1;
  font-weight:800;
  text-wrap:balance;
}

.ct-pageHeroInner p{
  margin:12px 0 0;
  color:#d2ddff;
  font-weight:700;
  font-size:15px;
}

.ct-pageHeroSplit{
  height:auto;
  border-radius:0;
  overflow:visible;
  padding:14px 0 12px;
}

.ct-pageHeroSplitGrid{
  display:grid !important;
  grid-template-columns:minmax(0,1.03fr) minmax(360px,.97fr) !important;
  gap:20px;
  align-items:stretch;
}

.ct-pageHeroSingle .ct-pageHeroSplitGrid{
  grid-template-columns:1fr !important;
}

.ct-pageHeroSplitMedia{
  position:relative;
  min-height:430px;
  border-radius:30px;
  overflow:hidden;
  border:1px solid rgba(140,164,225,.28);
  box-shadow:var(--nx-shadow);
}

.ct-pageHeroSplitMedia img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(1.08) contrast(1.04);
}

.ct-pageHeroSplitOverlay{
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 400px at 0% 0%, rgba(41,214,255,.2) 0%, rgba(41,214,255,0) 66%),
    radial-gradient(760px 340px at 100% 0%, rgba(141,91,255,.24) 0%, rgba(141,91,255,0) 62%),
    linear-gradient(95deg, rgba(7,12,30,.82) 0%, rgba(7,12,30,.58) 44%, rgba(7,12,30,.24) 100%);
}

.ct-pageHeroSplitContent{
  position:absolute;
  left:24px;
  bottom:24px;
  width:min(560px, calc(100% - 48px));
  border-radius:32px;
  padding:24px;
  border:1px solid rgba(140,164,225,.34);
  background:linear-gradient(145deg, rgba(16,24,50,.9) 0%, rgba(14,21,44,.82) 100%);
  backdrop-filter:blur(14px);
  z-index:2;
}

.ct-pageHeroSplitContent h1{
  margin:0;
  color:#fff;
  font-size:clamp(38px, 4.6vw, 82px);
  line-height:.98;
  font-weight:800;
  letter-spacing:-.02em;
  text-wrap:balance;
}

.ct-pageHeroSplitContent p{
  margin:14px 0 0;
  color:#d2ddff;
  font-size:clamp(16px, 1.15vw, 24px);
  font-weight:700;
}

.ct-pageHeroSplitMap{
  min-height:430px;
  border-radius:30px;
  overflow:hidden;
  border:1px solid rgba(140,164,225,.28);
  background:#0c1330;
  box-shadow:var(--nx-shadow);
}

.ct-pageHeroSplitMap .ag-map{
  width:100%;
  height:100%;
  min-height:430px;
}

.ct-pageIntro{
  padding:22px 0 8px;
}

.ct-pageIntroCard{
  display:grid;
  grid-template-columns:96px minmax(0,1fr) 136px;
  gap:14px;
  align-items:center;
  border-radius:20px;
  padding:16px;
  background:linear-gradient(165deg, rgba(18,27,58,.96) 0%, rgba(12,19,43,.95) 100%);
  border:1px solid rgba(140,164,225,.24);
  box-shadow:var(--nx-shadow);
}

.ct-introPhone{
  width:76px;
  height:138px;
  border-radius:18px;
  position:relative;
  background:linear-gradient(180deg, var(--nx-violet) 0%, var(--nx-cyan) 100%);
}

.ct-introPhone::before{
  content:"";
  position:absolute;
  inset:10px;
  border-radius:12px;
  background:linear-gradient(180deg, rgba(255,255,255,.24) 0%, rgba(255,255,255,.06) 42%, rgba(255,255,255,.35) 100%);
}

.ct-introText h4{
  margin:0 0 8px;
  color:#fff;
  font-weight:800;
}

.ct-introText ul{
  margin:0;
  padding-left:18px;
  display:grid;
  gap:4px;
  color:#9ea9c9;
  font-weight:600;
  font-size:14px;
}

.ct-introRight{
  display:grid;
  gap:8px;
  justify-items:end;
}

.ct-qr{
  width:80px;
  height:80px;
  border-radius:10px;
  background:
    linear-gradient(90deg,#000 50%,transparent 0) 0 0/9px 9px,
    linear-gradient(#000 50%,transparent 0) 0 0/9px 9px,
    #fff;
  border:5px solid #fff;
  box-shadow:0 8px 20px rgba(0,0,0,.26);
}

.ct-pageSection{
  padding:24px 0;
}

.ct-pageSectionHead{
  margin-bottom:14px;
}

.ct-pageSectionHead h3{
  margin:0;
  color:#fff;
  font-size:clamp(26px,3vw,38px);
  font-weight:800;
}

.ct-contentCard{
  border-radius:20px;
  padding:14px;
  background:linear-gradient(165deg, rgba(18,27,58,.96) 0%, rgba(12,19,43,.95) 100%);
  border:1px solid rgba(140,164,225,.24);
  box-shadow:var(--nx-shadow);
}

.ct-iconicRow{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(236px,1fr);
  gap:12px;
  overflow:auto;
  padding-bottom:6px;
}

.ct-iconicCard{
  display:block;
  text-decoration:none;
  color:inherit;
  border-radius:14px;
  overflow:hidden;
  border:1px solid rgba(140,164,225,.22);
  background:linear-gradient(165deg, rgba(18,27,58,.96) 0%, rgba(12,19,43,.95) 100%);
  box-shadow:0 8px 22px rgba(0,0,0,.32);
}

.ct-iconicCard img{
  width:100%;
  height:154px;
  object-fit:cover;
  display:block;
}

.ct-iconicBody{
  padding:10px 10px 12px;
}

.ct-iconicBody h6{
  margin:0;
  color:#edf3ff;
  font-size:14px;
  font-weight:700;
}

.ct-iconicBody p{
  margin:4px 0 0;
  color:#97a7cd;
  font-size:12px;
  font-weight:600;
}

.ct-placesHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:8px;
}

.ct-placesHead h3{
  margin:0;
  color:#fff;
  font-size:clamp(26px,3vw,38px);
  font-weight:800;
}

.ct-placesCount{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:0 12px;
  border-radius:999px;
  color:#e8f0ff;
  font-size:12px;
  font-weight:800;
  letter-spacing:.14px;
  border:1px solid rgba(140,164,225,.36);
  background:linear-gradient(135deg, rgba(41,214,255,.2) 0%, rgba(141,91,255,.2) 100%);
}

.ct-placesSub{
  margin:0 0 12px;
  color:#9faed1;
  font-weight:600;
}

.ct-placesWrap{
  position:relative;
  border-radius:22px;
  padding:14px;
  border:1px solid rgba(140,164,225,.24);
  background:
    radial-gradient(120% 120% at 0% 0%, rgba(41,214,255,.14) 0%, rgba(41,214,255,0) 56%),
    radial-gradient(120% 120% at 100% 0%, rgba(141,91,255,.14) 0%, rgba(141,91,255,0) 56%),
    linear-gradient(165deg, rgba(18,27,58,.96) 0%, rgba(12,19,43,.95) 100%);
  box-shadow:var(--nx-shadow);
  overflow:hidden;
}

.ct-placesWrap::after{
  content:"";
  position:absolute;
  inset:auto -120px -180px auto;
  width:320px;
  height:320px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(41,214,255,.15) 0%, rgba(41,214,255,0) 70%);
  pointer-events:none;
}

.ct-placesRow{
  position:relative;
  z-index:1;
  grid-auto-columns:minmax(250px, 1fr);
  gap:14px;
  padding-bottom:10px;
  scroll-snap-type:x mandatory;
  scroll-padding:6px;
}

.ct-placesRow::-webkit-scrollbar{
  height:8px;
}

.ct-placesRow::-webkit-scrollbar-thumb{
  border-radius:999px;
  background:linear-gradient(90deg, rgba(41,214,255,.6) 0%, rgba(141,91,255,.6) 100%);
}

.ct-placesRow::-webkit-scrollbar-track{
  background:rgba(255,255,255,.08);
  border-radius:999px;
}

.ct-placesRow > .ct-iconicCard{
  scroll-snap-align:start;
  border-radius:16px;
  border:1px solid rgba(140,164,225,.32);
  background:linear-gradient(170deg, rgba(21,31,66,.96) 0%, rgba(12,20,47,.94) 100%);
  transform:translateY(0);
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
  animation:ctPlaceFloat 7s ease-in-out infinite;
}

.ct-placesRow > .ct-iconicCard:nth-child(2n){
  animation-delay:-1.2s;
}

.ct-placesRow > .ct-iconicCard:nth-child(3n){
  animation-delay:-2.3s;
}

.ct-placesRow > .ct-iconicCard:nth-child(4n){
  animation-delay:-3.1s;
}

.ct-placesRow > .ct-iconicCard:hover{
  transform:translateY(-8px) scale(1.01);
  border-color:rgba(41,214,255,.62);
  box-shadow:0 22px 42px rgba(0,0,0,.42);
}

.ct-placesRow > .ct-iconicCard img{
  height:170px;
}

@keyframes ctPlaceFloat{
  0%, 100%{ transform:translateY(0) }
  50%{ transform:translateY(-5px) }
}

@media (prefers-reduced-motion: reduce){
  .ct-placesRow > .ct-iconicCard{
    animation:none;
  }
}

.ct-mapShell{
  height:min(560px, 68vh);
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(140,164,225,.24);
  box-shadow:0 12px 28px rgba(0,0,0,.36);
  background:#0c1330;
}

.ct-countryStudio{
  padding-top:20px;
}

.ct-countryStudioGrid{
  display:grid;
  grid-template-columns:minmax(320px,.95fr) minmax(0,1.05fr);
  gap:16px;
  align-items:start;
}

.ct-countryStudioGridSingle{
  grid-template-columns:1fr;
}

.ct-countryOverview{
  border-radius:22px;
  padding:18px;
  background:linear-gradient(165deg, rgba(18,27,58,.96) 0%, rgba(12,19,43,.95) 100%);
  border:1px solid rgba(140,164,225,.24);
  box-shadow:var(--nx-shadow);
}

.ct-countryOverview h3{
  margin:0;
  color:#fff;
  font-size:clamp(28px,3vw,40px);
  font-weight:800;
}

.ct-countryOverview p{
  margin:8px 0 0;
  color:#9ea9c9;
  font-weight:600;
}

.ct-countryStats{
  margin-top:14px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.ct-statCard{
  border-radius:14px;
  padding:10px 12px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(140,164,225,.24);
}

.ct-statCard span{
  display:block;
  margin-bottom:4px;
  color:#9ea9c9;
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.18px;
}

.ct-statCard strong{
  display:block;
  color:#f4f7ff;
  font-size:16px;
  line-height:1.2;
}

.ct-countryOverviewActions{
  margin-top:14px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.ct-countryStudioMap{
  border-radius:22px;
  padding:14px;
  background:linear-gradient(165deg, rgba(18,27,58,.96) 0%, rgba(12,19,43,.95) 100%);
  border:1px solid rgba(140,164,225,.24);
  box-shadow:var(--nx-shadow);
}

.ct-countryStudioMap .ct-pageSectionHead{
  margin-bottom:10px;
}

.ct-countryStudioMap .ct-mapShell{
  height:min(560px, 70vh);
}

.ct-cityStudio{
  padding-top:20px;
}

.ct-cityStudioGrid{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
  align-items:start;
}

.ct-cityStudioMap{
  border-radius:22px;
  padding:14px;
  background:linear-gradient(165deg, rgba(18,27,58,.96) 0%, rgba(12,19,43,.95) 100%);
  border:1px solid rgba(140,164,225,.24);
  box-shadow:var(--nx-shadow);
}

.ct-cityStudioMap .ct-pageSectionHead{
  margin-bottom:10px;
}

.ct-cityStudioMap .ct-mapShell{
  height:min(650px, 76vh);
}

.ct-cityLead{
  padding-top:8px;
}

.ct-cityPlaces{
  padding-top:6px;
}

.ct-storyPanel{
  border-radius:18px;
  padding:16px;
  border:1px solid rgba(140,164,225,.24);
  background:linear-gradient(165deg, rgba(18,27,58,.96) 0%, rgba(12,19,43,.95) 100%);
  box-shadow:var(--nx-shadow);
}

#storyPanel{
  scroll-margin-top:96px;
}

.ct-storyPanel h5,
.ct-storyPanel .fw-bold,
.ct-storyPanel b{
  color:#edf3ff !important;
}

.ct-storyPanel .text-secondary,
.ct-storyPanel .ag-status{
  color:#9ea9c9 !important;
}

.ct-liveStory .ag-sec,
.ct-storyPanel .ag-sec{
  background:rgba(255,255,255,.05) !important;
  border:1px solid rgba(140,164,225,.2) !important;
  box-shadow:none !important;
}

.ct-liveStory .ag-iconBtn,
.ct-storyPanel .ag-iconBtn{
  background:rgba(255,255,255,.08) !important;
  color:#eaf1ff !important;
  border:1px solid rgba(140,164,225,.26) !important;
  box-shadow:none !important;
}

.ct-liveStory .ag-iconBtnPrimary,
.ct-storyPanel .ag-iconBtnPrimary{
  border:0 !important;
  background:linear-gradient(135deg, var(--nx-cyan) 0%, var(--nx-violet) 74%) !important;
}

.ct-liveStory .ag-secTop.isPlaying,
.ct-storyPanel .ag-secTop.isPlaying{
  outline-color:rgba(41,214,255,.45) !important;
}

.ag-cityRow{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.ag-cityRow .btn.is-selected{
  border-color:rgba(41,214,255,.4) !important;
  box-shadow:0 0 0 1px rgba(41,214,255,.16), 0 18px 34px rgba(7,15,38,.18);
  background:linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(240,247,255,.98) 100%);
}

.ag-cityInline{
  margin:0 6px 2px;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid rgba(140,164,225,.22);
  background:linear-gradient(180deg, rgba(16,24,54,.94) 0%, rgba(19,28,63,.92) 100%);
  box-shadow:0 16px 34px rgba(6,12,28,.16);
}

.ag-cityInlineTop{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  color:#edf3ff;
}

.ag-inlineOpen{
  appearance:none;
  border:1px solid rgba(143,220,255,.34);
  border-radius:999px;
  background:rgba(17,28,64,.72);
  color:#8fdcff;
  cursor:pointer;
  font-size:12px;
  font-weight:700;
  line-height:1;
  padding:8px 12px;
  text-decoration:none;
}

.ag-inlineOpen:hover,
.ag-inlineOpen:focus-visible{
  background:rgba(42,198,255,.16);
  color:#edf3ff;
  outline:none;
}

.ag-cityInlineMeta{
  margin-top:6px;
  color:#9ea9c9;
  font-size:12px;
  font-weight:600;
}

.ag-inlineProgress{
  position:relative;
  margin-top:9px;
  height:6px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  overflow:hidden;
}

.ag-inlineProgressFill{
  position:absolute;
  inset:0 auto 0 0;
  border-radius:999px;
  background:linear-gradient(90deg, var(--nx-cyan) 0%, var(--nx-violet) 100%);
}

.ag-inlineChips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}

.ag-inlineChip{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 10px;
  border-radius:999px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(140,164,225,.2);
  color:#edf3ff;
  font-size:12px;
  font-weight:700;
}

.ag-inlineChipBtn{
  cursor:pointer;
  appearance:none;
  outline:none;
  transition:transform .18s ease, border-color .18s ease, background .18s ease;
}

.ag-inlineChipBtn:hover,
.ag-inlineChipBtn:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(143,220,255,.46);
  background:rgba(80,116,255,.18);
}

/* --- Footer --- */
.ct-prefooter{height:20px}

.ct-footer{
  position:relative;
  margin-top:30px;
  color:#f2f6ff;
  overflow:hidden;
  background:
    radial-gradient(900px 360px at 0% 0%, rgba(41,214,255,.24) 0%, rgba(41,214,255,0) 72%),
    radial-gradient(900px 380px at 100% -4%, rgba(141,91,255,.28) 0%, rgba(141,91,255,0) 72%),
    linear-gradient(180deg, #0a1333 0%, #0c173f 100%);
  padding:0 0 calc(88px + env(safe-area-inset-bottom, 0px));
}

.ct-footerGlow{
  height:5px;
  background:linear-gradient(90deg, rgba(41,214,255,.86) 0%, rgba(141,91,255,.86) 100%);
  opacity:.9;
}

.ct-footer .container{
  position:relative;
  z-index:1;
  padding-top:28px;
}

.ct-footerMain{
  display:grid;
  grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);
  gap:24px;
  align-items:start;
}

.ct-footerIntro{
  display:grid;
  gap:12px;
}

.ct-footerBrand{
  margin-bottom:0;
  font-size:22px;
  font-weight:800;
}

.ct-footerMapBtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  max-width:max-content;
  padding:0 18px;
  border-radius:999px;
  color:#fff;
  text-decoration:none;
  font-weight:700;
  background:linear-gradient(135deg, var(--nx-cyan) 0%, var(--nx-violet) 72%);
  box-shadow:0 12px 28px rgba(41,214,255,.28);
}

.sc-googleSourceBadge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  max-width:100%;
  min-height:48px;
  margin-top:2px;
  border-radius:999px;
  text-decoration:none;
  transition:transform .18s ease, filter .18s ease;
}

.sc-googleSourceBadge:hover,
.sc-googleSourceBadge:focus-visible{
  transform:translateY(-1px);
  filter:brightness(1.04);
}

.sc-googleSourceBadge:focus-visible{
  outline:2px solid rgba(41,214,255,.72);
  outline-offset:4px;
}

.sc-googleSourceBadge img{
  display:block;
  width:min(214px, 100%);
  height:auto;
}

@media (min-width: 992px){
  .ct-footerIntro .sc-googleSourceBadge{
    margin-top:14px;
  }
}

.ct-footerCols{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}

.ct-footerCol{
  display:grid;
  align-content:start;
  gap:8px;
}

.ct-footerColWide{
  grid-column:span 1;
}

.ct-footerHead{
  margin-bottom:10px;
  color:rgba(255,255,255,.72);
  font-size:12px;
  font-weight:800;
  letter-spacing:.16px;
  text-transform:uppercase;
}

.ct-footerMuted{color:rgba(255,255,255,.76)}

.ct-footerLink{
  color:#edf3ff;
  text-decoration:none;
  font-weight:700;
}

.ct-footerLink:hover{
  color:#fff;
  text-decoration:underline;
}

.ct-footerPills{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.ct-langChip,.ct-countryChip{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.08);
  color:#fff;
  text-decoration:none;
  font-size:12px;
  font-weight:700;
}

.ct-langChip:hover,.ct-countryChip:hover{
  color:#fff;
  background:rgba(255,255,255,.16);
}

.ct-footerBottom{
  margin-top:22px;
  padding-top:16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.16);
}

.ct-footerBottomLangs{
  display:flex;
  flex-wrap:wrap;
  gap:6px 12px;
}

.ct-footerLangLink{
  color:#dbe6ff;
  text-decoration:none;
  font-size:12px;
  font-weight:700;
}

.ct-footerLangLink:hover{
  color:#fff;
  text-decoration:underline;
}

.ag-mobileDockBtn{
  color:#eaf1ff !important;
  background:linear-gradient(165deg, rgba(18,27,58,.96) 0%, rgba(12,19,43,.95) 100%) !important;
  border:1px solid rgba(140,164,225,.26) !important;
  box-shadow:0 12px 28px rgba(0,0,0,.34) !important;
}

/* --- Player --- */
.ag-player{
  background:linear-gradient(180deg, rgba(15,23,47,.94) 0%, rgba(10,15,34,.94) 100%) !important;
  border-top:1px solid rgba(140,164,225,.28) !important;
  box-shadow:0 -18px 52px rgba(0,0,0,.48) !important;
}

.ag-player-title{color:#eef3ff !important}
.ag-player-meta,
.ag-player-stats small{color:#9ea9c9 !important}
.ag-player-stats{color:#dce7ff !important}

.ag-player-btn{
  border:1px solid rgba(140,164,225,.3) !important;
  background:rgba(255,255,255,.08) !important;
  color:#eaf1ff !important;
  box-shadow:0 8px 20px rgba(0,0,0,.32) !important;
}

.ag-player-btnPrimary{
  border:0 !important;
  color:#fff !important;
  background:linear-gradient(135deg, var(--nx-cyan) 0%, var(--nx-violet) 74%) !important;
}

.ag-bar{background:rgba(255,255,255,.14) !important}

.ag-barFill{
  background:linear-gradient(90deg, var(--nx-cyan) 0%, var(--nx-violet) 100%) !important;
}

.ag-knob{
  background:var(--nx-cyan) !important;
  border-color:#0a1536 !important;
}

.ag-knobLabel{
  background:rgba(16,24,50,.94) !important;
  color:#eaf1ff !important;
}

/* --- Admin --- */
.ct-adminPage{
  padding-top:26px;
}

.ct-adminHead h1{
  margin:0;
  color:#fff;
  font-size:clamp(30px, 3.6vw, 54px);
  font-weight:800;
}

.ct-adminHead p{
  margin:8px 0 0;
  color:#9ea9c9;
  font-weight:600;
}

.ct-adminStats{
  margin-top:14px;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}

.ct-adminStats article{
  border-radius:14px;
  padding:12px;
  border:1px solid rgba(140,164,225,.24);
  background:linear-gradient(165deg, rgba(18,27,58,.96) 0%, rgba(12,19,43,.95) 100%);
}

.ct-adminStats span{
  display:block;
  color:#9ea9c9;
  font-size:12px;
  font-weight:700;
}

.ct-adminStats strong{
  display:block;
  margin-top:4px;
  color:#f4f7ff;
  font-size:24px;
  line-height:1;
}

.ct-adminMsg{
  margin-top:12px;
  border-radius:12px;
  padding:10px 12px;
  font-weight:700;
  border:1px solid rgba(140,164,225,.28);
  background:rgba(255,255,255,.06);
}

.ct-adminMsg-success{border-color:rgba(47,220,164,.48);color:#b8ffe5}
.ct-adminMsg-error{border-color:rgba(255,107,141,.52);color:#ffd3df}
.ct-adminMsg-warning{border-color:rgba(255,191,86,.52);color:#ffe7b3}

.ct-adminGrid{
  margin-top:14px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.ct-adminCard{
  margin-top:12px;
  border-radius:16px;
  padding:14px;
  border:1px solid rgba(140,164,225,.24);
  background:linear-gradient(165deg, rgba(18,27,58,.96) 0%, rgba(12,19,43,.95) 100%);
  box-shadow:0 10px 26px rgba(0,0,0,.34);
}

.ct-adminCard h3{
  margin:0;
  color:#fff;
  font-size:22px;
  font-weight:800;
}

.ct-adminForm{
  margin-top:12px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.ct-adminForm label{
  display:grid;
  gap:6px;
}

.ct-adminForm span{
  color:#cbd7f8;
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.2px;
}

.ct-adminForm select{
  width:100%;
  min-height:40px;
  border-radius:10px;
  border:1px solid rgba(140,164,225,.32);
  background:rgba(255,255,255,.08);
  color:#eaf1ff;
  padding:0 10px;
}

.ct-adminForm button{
  align-self:end;
  min-height:40px;
}

.ct-adminTableWrap{
  margin-top:10px;
  overflow:auto;
}

.ct-adminTable{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
}

.ct-adminTable th,
.ct-adminTable td{
  padding:10px 8px;
  border-bottom:1px solid rgba(140,164,225,.18);
  color:#eaf1ff;
  font-size:13px;
  text-align:left;
  vertical-align:middle;
}

.ct-adminTable th{
  color:#aebce0;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.18px;
}

.ct-adminTable a{
  color:#8fdcff;
  text-decoration:none;
  font-weight:700;
}

.ct-adminTable a:hover{
  color:#b5e9ff;
  text-decoration:underline;
}

/* landing order: hero then map */
.PageLanding main#top{
  display:flex;
  flex-direction:column;
}

.PageLanding .ct-homeHero{order:1}
.PageLanding .ct-homeLive{order:2}
.PageLanding .ct-homeWhy{order:3}
.PageLanding .ct-homeCards{order:4}
.PageLanding .ct-homeCardsCities{order:5}

@media (max-width:1199.98px){
  .ct-grid4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ct-searchWrap{min-width:min(300px, 38vw)}
  .ct-footerMain{
    grid-template-columns:1fr;
    gap:16px;
  }
}

@media (max-width:991.98px){
  body{padding-top:74px !important}
  .ct-searchWrap{min-width:100%}
  .ct-navbar .navbar-collapse{
    margin-top:10px !important;
    border-radius:14px;
    padding:10px;
    background:rgba(8,13,32,.96);
  }
  .ct-homeHeroMedia{
    height:560px;
    border-radius:20px;
  }
  .ct-homeHeroSplitGrid{
    grid-template-columns:1fr;
  }
  .ct-homeHeroMapCard,
  .ct-homeHeroMapCard .ag-map{
    min-height:360px;
  }
  .ct-homeHeroInner{
    align-items:flex-end;
    padding-bottom:12px;
  }
  .ct-homeHeroPanel{
    width:calc(100% - 10px);
    padding:16px;
  }
  .ct-homeWhyGrid{grid-template-columns:1fr}
  .ct-phoneStack{min-height:306px}
  .ct-phoneMock{
    right:22%;
    width:182px;
    height:304px;
  }
  .ct-phoneMockMid{
    right:50%;
    margin-right:14px;
    width:160px;
    height:274px;
  }
  .ct-phoneMockSide{
    right:0;
    width:148px;
    height:256px;
  }
  .ct-liveSplit{
    grid-template-columns:1fr;
    padding:0 8px;
  }
  .ct-liveSplitNoMap{
    padding:0 8px;
  }
  .ct-liveMapWrap{order:1}
  .ct-liveRail{
    order:2;
    max-height:none;
  }
  .ct-liveMap{
    min-height:420px;
    height:58vh;
  }
  .ct-countryStudioGrid,
  .ct-cityStudioGrid{
    grid-template-columns:1fr;
  }
  .ct-adminStats{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .ct-adminGrid{
    grid-template-columns:1fr;
  }
  .ct-adminForm{
    grid-template-columns:1fr;
  }
  .ct-countryStudioMap .ct-mapShell,
  .ct-cityStudioMap .ct-mapShell{
    height:56vh;
    min-height:420px;
  }
  .ct-pageHeroSplit{
    padding-top:12px;
  }
  .ct-pageHeroMediaWide{
    height:520px;
    border-radius:20px;
  }
  .ct-pageHeroInnerWide{
    padding:14px;
  }
  .ct-pageHeroCard{
    width:100%;
    border-radius:22px;
    padding:16px;
  }
  .ct-pageHeroCard h1{
    font-size:42px;
  }
  .ct-pageShellGrid{
    grid-template-columns:1fr;
  }
  .ct-pageShellMap .ag-map{
    height:56vh;
    min-height:380px;
  }
  .ct-tourTimeline{
    max-height:none;
  }
  .ct-pageHeroSplitGrid{
    grid-template-columns:1fr;
  }
  .ct-pageHeroSplitMedia,
  .ct-pageHeroSplitMap,
  .ct-pageHeroSplitMap .ag-map{
    min-height:360px;
  }
  .ct-pageHeroSplitContent h1{
    font-size:42px;
  }
  .ct-placesRow{
    grid-auto-columns:minmax(232px, 72vw);
  }
  .ct-pageHeroInner h1{font-size:42px}
  .ct-pageIntroCard{grid-template-columns:1fr}
  .ct-introRight{justify-items:start}
  .ct-footerCols{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:639.98px){
  .ct-grid4{grid-template-columns:1fr}
  .ct-homeHeroPanel h1{font-size:33px}
  .ct-homeSectionHead h3,
  .ct-homeWhyText h3,
  .ct-homeWhyVisual h3,
  .ct-pageSectionHead h3{font-size:30px}
  .ct-pageHeroInner h1{font-size:34px}
  .ct-homeHeroMapCard,
  .ct-homeHeroMapCard .ag-map{
    min-height:300px;
    border-radius:18px;
  }
  .ct-pageHeroSplitMedia,
  .ct-pageHeroSplitMap,
  .ct-pageHeroSplitMap .ag-map{
    min-height:300px;
    border-radius:18px;
  }
  .ct-pageHeroSplitContent{
    padding:16px;
  }
  .ct-pageHeroMediaWide{
    height:420px;
    border-radius:18px;
  }
  .ct-pageHeroCard h1{
    font-size:34px;
  }
  .ct-pageHeroCard p{
    margin-top:8px;
    font-size:14px;
  }
  .ct-pageShellMap .ag-map{
    height:46vh;
    min-height:300px;
  }
  .ct-tourTimeline li a{
    grid-template-columns:64px minmax(0,1fr);
  }
  .ct-tourTimeline li img{
    width:64px;
    height:52px;
  }
  .ct-pageHeroSplitContent h1{
    font-size:34px;
  }
  .ct-pageHeroSplitContent p{
    margin-top:8px;
    font-size:14px;
  }
  .ct-phoneMockMid,.ct-phoneMockSide{display:none}
  .ct-phoneMock{
    left:50%;
    right:auto;
    transform:translateX(-50%);
  }
  .ct-placesHead{
    align-items:flex-start;
    flex-direction:column;
  }
  .ct-placesWrap{
    padding:10px;
    border-radius:18px;
  }
  .ct-placesRow{
    grid-auto-columns:minmax(220px, 84vw);
    gap:10px;
  }
  .ct-countryStats{
    grid-template-columns:1fr;
  }
  .ct-footerCols{
    grid-template-columns:1fr;
  }
}

/* ======================= Reference-inspired structure, existing colors ======================= */
body{
  font-family:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

h1,h2,h3,h4,h5,h6,.font-cursive,
.ct-homeHeroPanel h1,
.ct-pageHeroCard h1{
  font-family:"Inter Tight","Inter",system-ui,sans-serif !important;
  letter-spacing:0 !important;
}

.container{
  max-width:1240px;
}

.ct-navbar .container{
  max-width:1320px;
}

.ct-navbar .nav-link{
  font-size:14px;
}

.ct-searchWrap .ag-search-input{
  font-size:14px;
}

.ct-homeHero{
  padding:14px 0 10px;
}

.ct-homeHero > .container{
  max-width:1320px;
}

.ct-homeHeroGuide{
  display:block;
}

.ct-homeHeroGuide .ct-homeHeroMedia{
  height:min(520px, 62vh);
}

.ct-guideHeroImage{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  filter:saturate(1.08) contrast(1.04);
}

.ct-homeHeroPanel{
  width:min(650px, calc(100% - 22px));
  padding:24px;
}

.ct-homeHeroPanel h1{
  font-size:clamp(38px, 5vw, 68px) !important;
  line-height:1.02;
  font-weight:800;
}

.ct-homeHeroPanel p{
  font-size:clamp(16px, 1.35vw, 20px);
  line-height:1.45;
  font-weight:650;
}

.ct-homeHeroMini span{
  font-size:11px;
  letter-spacing:0;
}

.ct-appPromo{
  padding:22px 0 18px;
}

.ct-appPromoPanel{
  display:grid;
  grid-template-columns:190px minmax(0,1fr) 220px;
  gap:24px;
  align-items:center;
  padding:24px;
  border:1px solid var(--nx-line);
  border-radius:18px;
  background:linear-gradient(165deg, rgba(18,27,58,.96) 0%, rgba(12,19,43,.95) 100%);
  box-shadow:var(--nx-shadow);
}

.ct-appPhone{
  position:relative;
  width:150px;
  height:260px;
  justify-self:center;
  border-radius:26px;
  overflow:hidden;
  border:2px solid rgba(255,255,255,.34);
  background:rgba(255,255,255,.08);
  box-shadow:0 24px 50px rgba(0,0,0,.42);
}

.ct-appPhone::before{
  content:"";
  position:absolute;
  left:50%;
  top:8px;
  width:52px;
  height:7px;
  transform:translateX(-50%);
  border-radius:999px;
  background:rgba(0,0,0,.38);
  z-index:2;
}

.ct-appPhone img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(1.05) contrast(1.04);
}

.ct-appPhone span{
  position:absolute;
  left:12px;
  right:12px;
  bottom:12px;
  z-index:3;
  color:#fff;
  font-size:12px;
  font-weight:800;
  text-shadow:0 2px 12px rgba(0,0,0,.55);
}

.ct-appPromoText{
  min-width:0;
}

.ct-appPromoBrand{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:8px;
  color:var(--nx-ink);
  font-weight:800;
}

.ct-appIcon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border-radius:10px;
  color:#fff;
  background:linear-gradient(135deg, var(--nx-cyan) 0%, var(--nx-violet) 100%);
}

.ct-appPromoText h2{
  margin:0 0 14px;
  color:var(--nx-ink);
  font-size:clamp(28px, 3.2vw, 42px);
  line-height:1.05;
  font-weight:800;
}

.ct-appPromoText ul{
  margin:0 0 18px;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}

.ct-appPromoText li{
  position:relative;
  padding-left:28px;
  color:var(--nx-muted);
  font-size:14px;
  font-weight:650;
  line-height:1.45;
}

.ct-appPromoText li::before{
  content:"";
  position:absolute;
  left:0;
  top:.25em;
  width:18px;
  height:18px;
  border-radius:999px;
  background:linear-gradient(135deg, var(--nx-cyan) 0%, var(--nx-violet) 100%);
}

.ct-downloadCard{
  display:grid;
  gap:12px;
  justify-items:center;
  padding:16px;
  border-radius:16px;
  border:1px solid var(--nx-line);
  background:rgba(255,255,255,.06);
  text-align:center;
}

.ct-downloadCard b{
  color:var(--nx-ink);
  font-size:17px;
  line-height:1.2;
}

.ct-downloadCard span{
  color:var(--nx-muted);
  font-size:12px;
  font-weight:800;
}

.ct-qrMock{
  width:104px;
  height:104px;
  border-radius:8px;
  border:8px solid #fff;
  background:
    linear-gradient(90deg,#111 50%,transparent 0) 0 0/10px 10px,
    linear-gradient(#111 50%,transparent 0) 0 0/10px 10px,
    #fff;
  box-shadow:0 14px 30px rgba(0,0,0,.25);
}

.ct-homeWhy{
  padding-top:20px;
}

.ct-homeWhyGrid{
  grid-template-columns:minmax(0,1fr) minmax(300px,.62fr);
  gap:16px;
}

.ct-homeWhyText h3,
.ct-homeWhyVisual h3,
.ct-homeSectionHead h3,
.ct-pageSectionHead h3,
.ct-placesHead h3,
.ct-shellBlock h3{
  font-size:clamp(28px, 3.2vw, 40px) !important;
  line-height:1.08;
  font-weight:800;
}

.ct-homeWhyText ol{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  padding-left:0;
  list-style:none;
}

.ct-homeWhyText li{
  min-height:90px;
  padding:12px;
  border-radius:14px;
  border:1px solid var(--nx-line);
  background:rgba(255,255,255,.05);
}

.ct-homeWhyText li b{
  font-size:14px;
}

.ct-homeWhyText li span{
  font-size:13px;
  line-height:1.38;
}

.ct-grid4{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}

.ct-mediaCard img,
.ct-cityCard img{
  height:190px;
}

.ct-mediaCardBody h5,
.ct-cityCard span,
.ct-iconicBody h6{
  font-size:16px;
  line-height:1.25;
  font-weight:800;
}

.ct-liveSplit{
  grid-template-columns:minmax(360px,.42fr) minmax(0,.58fr);
  max-width:1320px;
  margin:0 auto;
}

.ct-liveMap{
  height:min(780px, 82vh);
  min-height:560px;
}

.ct-detailTabs{
  position:relative;
  z-index:3;
  margin-top:-1px;
  border-bottom:1px solid var(--nx-line);
  background:rgba(7,11,26,.86);
  backdrop-filter:blur(12px);
}

.ct-detailTabs .container{
  min-height:54px;
  display:flex;
  align-items:center;
  gap:10px;
  overflow:auto;
}

.ct-detailTabs a,
.ct-detailTabs span{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 12px;
  border-radius:999px;
  text-decoration:none;
  color:var(--nx-ink);
  font-size:12px;
  font-weight:800;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(140,164,225,.22);
}

.ct-detailTabs a:hover{
  color:#fff;
  border-color:rgba(41,214,255,.5);
  background:rgba(41,214,255,.12);
}

.ct-detailTabs span{
  color:var(--nx-muted);
}

.ct-pageHeroMediaWide{
  height:min(500px, 60vh);
}

.ct-pageHeroCard{
  width:min(620px, calc(100% - 22px));
}

.ct-pageHeroCard h1{
  font-size:clamp(38px, 4.4vw, 64px) !important;
  line-height:1.02;
  font-weight:800;
}

.ct-pageHeroCard p{
  font-size:17px;
  line-height:1.4;
}

.ct-pageShell{
  padding-top:18px;
}

.ct-pageShellGrid{
  grid-template-columns:minmax(340px,.38fr) minmax(0,.62fr);
  gap:16px;
  align-items:start;
}

.ct-pageShellRail{
  position:sticky;
  top:92px;
}

.ct-pageShellMap .ag-map{
  height:610px;
  min-height:460px;
}

.ct-tourTimeline{
  max-height:none;
}

.ct-tourTimeline li a{
  grid-template-columns:88px minmax(0,1fr);
}

.ct-tourTimeline li img{
  width:88px;
  height:68px;
}

.ct-iconicRow,
.ct-placesRow{
  display:grid;
  grid-auto-flow:initial;
  grid-template-columns:repeat(4,minmax(0,1fr));
  overflow:visible;
  gap:14px;
}

.ct-iconicCard img,
.ct-placesRow > .ct-iconicCard img{
  height:170px;
}

.ct-placesRow > .ct-iconicCard{
  animation:none;
}

.ct-placesRow > .ct-iconicCard:hover{
  transform:translateY(-3px);
}

@media (max-width:1199.98px){
  .ct-grid4,
  .ct-iconicRow,
  .ct-placesRow{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .ct-appPromoPanel{
    grid-template-columns:160px minmax(0,1fr);
  }

  .ct-downloadCard{
    grid-column:1 / -1;
    grid-template-columns:auto auto auto;
    justify-content:start;
    text-align:left;
  }

  .ct-qrMock{
    width:74px;
    height:74px;
  }
}

@media (max-width:991.98px){
  .ct-homeHeroGuide .ct-homeHeroMedia{
    height:560px;
  }

  .ct-appPromoPanel,
  .ct-homeWhyGrid,
  .ct-liveSplit,
  .ct-pageShellGrid{
    grid-template-columns:1fr;
  }

  .ct-pageShellRail{
    position:static;
  }

  .ct-liveMap{
    height:58vh;
    min-height:420px;
  }

  .ct-pageShellMap .ag-map{
    height:54vh;
    min-height:400px;
  }

  .ct-homeWhyText ol{
    grid-template-columns:1fr;
  }
}

@media (max-width:639.98px){
  .ct-homeHeroGuide .ct-homeHeroMedia,
  .ct-pageHeroMediaWide{
    height:440px;
  }

  .ct-homeHeroPanel,
  .ct-pageHeroCard{
    padding:16px;
  }

  .ct-appPromoPanel{
    padding:14px;
    gap:14px;
  }

  .ct-appPhone{
    width:136px;
    height:236px;
  }

  .ct-downloadCard{
    grid-template-columns:1fr;
    justify-items:start;
  }

  .ct-grid4,
  .ct-iconicRow,
  .ct-placesRow{
    grid-template-columns:1fr;
  }
}

/* Keep audio heading lists visible above map panes */
.ct-liveRail,
.ct-pageShellRail,
.ct-storyPanel,
#storySections{
  position:relative;
  z-index:5;
  min-width:0;
}

.ct-liveMapWrap,
.ct-pageShellMap{
  position:relative;
  z-index:1;
  min-width:0;
  overflow:hidden;
}

.ct-liveMapWrap .leaflet-container,
.ct-pageShellMap .leaflet-container{
  z-index:1;
}

.ct-liveStory,
.ct-storyPanel,
.ct-storyPanel .ag-outline,
.ct-storyPanel .ag-sec,
.ct-liveStory .ag-outline,
.ct-liveStory .ag-sec{
  max-width:100%;
  min-width:0;
}

.ct-storyPanel .ag-secTop,
.ct-liveStory .ag-secTop{
  min-width:0;
}

.ct-storyPanel .ag-secTop > div:first-child,
.ct-liveStory .ag-secTop > div:first-child{
  min-width:0 !important;
}

.ct-storyPanel .ag-secTitle,
.ct-liveStory .ag-secTitle{
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
}

@media (min-width:992px){
  .ct-pageShellRail{
    position:sticky;
    top:92px;
  }
}

@media (max-width:991.98px){
  .ct-liveRail{
    order:1;
  }

  .ct-liveMapWrap{
    order:2;
  }

  .ct-pageShellRail{
    order:1;
  }

  .ct-pageShellMap{
    order:2;
  }
}

/* Page frame correction: compact guide pages with map + audio on every entity */
.PageCountry .ct-pageHero,
.PageCity .ct-pageHero,
.PagePlace .ct-pageHero{
  padding:14px 0 6px;
}

.PageCountry .ct-pageHeroMediaWide,
.PageCity .ct-pageHeroMediaWide,
.PagePlace .ct-pageHeroMediaWide{
  height:clamp(250px, 36vh, 380px);
  border-radius:18px;
}

.PageCountry .ct-pageHeroInnerWide,
.PageCity .ct-pageHeroInnerWide,
.PagePlace .ct-pageHeroInnerWide{
  justify-content:flex-end;
  align-items:flex-start;
  padding:18px;
}

.PageCountry .ct-pageHeroCard,
.PageCity .ct-pageHeroCard,
.PagePlace .ct-pageHeroCard{
  width:min(560px, calc(100% - 12px));
  border-radius:16px;
  padding:18px;
}

.PageCountry .ct-pageHeroCard h1,
.PageCity .ct-pageHeroCard h1,
.PagePlace .ct-pageHeroCard h1{
  font-size:clamp(30px, 3.2vw, 48px) !important;
  line-height:1.04;
}

.PageCountry .ct-pageHeroCard p,
.PageCity .ct-pageHeroCard p,
.PagePlace .ct-pageHeroCard p{
  margin-top:8px;
  font-size:15px;
  line-height:1.45;
}

.PageCountry .ct-detailTabs,
.PageCity .ct-detailTabs,
.PagePlace .ct-detailTabs{
  margin-top:0;
}

.PageCountry .ct-pageShell,
.PageCity .ct-pageShell,
.PagePlace .ct-pageShell{
  padding-top:14px;
}

.PageCountry .ct-pageShellGrid,
.PageCity .ct-pageShellGrid,
.PagePlace .ct-pageShellGrid{
  grid-template-columns:minmax(390px,.46fr) minmax(0,.54fr);
  gap:18px;
  align-items:start;
}

.PageCountry .ct-pageShellRail,
.PageCity .ct-pageShellRail,
.PagePlace .ct-pageShellRail{
  display:flex;
  flex-direction:column;
  gap:14px;
}

.PageCountry .ct-storyPanel,
.PageCity .ct-storyPanel,
.PagePlace .ct-storyPanel,
.PageCountry .ct-shellBlock{
  border-radius:16px;
  padding:14px;
}

.PageCountry .ct-pageShellMap,
.PageCity .ct-pageShellMap,
.PagePlace .ct-pageShellMap{
  border-radius:16px;
  height:clamp(420px, 64vh, 620px);
  min-height:420px;
}

.PageCountry .ct-pageShellMap .ag-map,
.PageCity .ct-pageShellMap .ag-map,
.PagePlace .ct-pageShellMap .ag-map,
#countryMap{
  height:100%;
  min-height:0;
}

.PageCountry .ct-tourTimeline{
  max-height:360px;
  overflow:auto;
}

.PageCountry .ct-tourTimeline li a,
.PageCity .ct-tourTimeline li a,
.PagePlace .ct-tourTimeline li a{
  border-radius:12px;
}

.PageCountry .ct-pageSection,
.PageCity .ct-pageSection,
.PagePlace .ct-pageSection{
  padding-top:18px;
}

.PageCountry .ct-pageSectionHead h3,
.PageCity .ct-placesHead h3,
.PagePlace .ct-placesHead h3{
  font-size:clamp(24px, 2.5vw, 34px);
}

/* Cleaner persistent player */
.ag-player{
  left:12px !important;
  right:12px !important;
  bottom:10px !important;
  border-radius:18px !important;
  border:1px solid rgba(140,164,225,.28) !important;
}

.ag-player-inner{
  max-width:1180px !important;
  padding:10px 12px 11px !important;
  gap:8px !important;
}

.ag-player-top{
  grid-template-columns:minmax(0,1fr) auto auto !important;
}

.ag-player-title{
  font-size:14px;
}

.ag-player-meta{
  font-size:11px;
}

.ag-player-btn{
  width:40px !important;
  height:38px !important;
}

.ag-player-btnPrimary{
  width:46px !important;
}

.ag-player-volume{
  display:inline-flex;
  align-items:center;
  gap:7px;
  height:38px;
  padding:0 10px;
  border:1px solid rgba(140,164,225,.26);
  border-radius:999px;
  background:rgba(255,255,255,.07);
  color:#dce7ff;
  font-size:11px;
  font-weight:800;
}

.ag-player-volume input{
  width:82px;
  accent-color:var(--nx-cyan);
}

.ag-bar{
  height:7px !important;
}

.ag-playerLoading{
  background:rgba(255,255,255,.08) !important;
  border-color:rgba(140,164,225,.24) !important;
  color:#dce7ff !important;
}

.ag-audioProgress{
  margin:0 0 12px;
  padding:12px;
  border:1px solid rgba(24,30,75,.12);
  border-radius:14px;
  background:rgba(255,255,255,.72);
}

.ag-audioProgressTop{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:var(--ag-ink);
  font-size:12px;
  font-weight:850;
}

.ag-audioProgressBar{
  height:7px;
  margin-top:9px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(24,30,75,.1);
}

.ag-audioProgressBar i{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg, var(--nx-cyan) 0%, var(--nx-violet) 100%);
}

.ag-audioProgressMeta{
  margin-top:7px;
  color:var(--ag-muted);
  font-size:11px;
  font-weight:750;
}

@media (max-width:991.98px){
  .PageCountry .ct-pageShellGrid,
  .PageCity .ct-pageShellGrid,
  .PagePlace .ct-pageShellGrid{
    grid-template-columns:1fr;
  }

  .PageCountry .ct-pageHeroMediaWide,
  .PageCity .ct-pageHeroMediaWide,
  .PagePlace .ct-pageHeroMediaWide{
    height:330px;
  }

  .PageCountry .ct-pageShellMap,
  .PageCity .ct-pageShellMap,
  .PagePlace .ct-pageShellMap{
    order:2;
  }
}

@media (max-width:720px){
  .BodyHasPlayer{
    padding-bottom:calc(178px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .ag-player-top{
    grid-template-columns:1fr !important;
  }

  .ag-player-now{
    text-align:left !important;
  }

  .ag-player-ctrls,
  .ag-player-stats{
    justify-self:start !important;
  }

  .ag-player-volume{
    padding:0 9px;
  }

  .ag-player-volume input{
    width:72px;
  }
}

@media (max-width:639.98px){
  .PageCountry .ct-pageHeroMediaWide,
  .PageCity .ct-pageHeroMediaWide,
  .PagePlace .ct-pageHeroMediaWide{
    height:300px;
  }

  .PageCountry .ct-pageHeroCard h1,
  .PageCity .ct-pageHeroCard h1,
  .PagePlace .ct-pageHeroCard h1{
    font-size:28px !important;
  }

  .PageCountry .ct-pageShellMap .ag-map,
  .PageCity .ct-pageShellMap .ag-map,
  .PagePlace .ct-pageShellMap .ag-map,
  #countryMap{
    height:100%;
    min-height:0;
  }

  .PageCountry .ct-pageShellMap,
  .PageCity .ct-pageShellMap,
  .PagePlace .ct-pageShellMap{
    height:52vh;
    min-height:340px;
  }
}

/* Visual UX pass: layout, hierarchy and states only. Brand colors stay on existing tokens. */
html{
  scroll-padding-top:92px;
}

body{
  line-height:1.5;
}

.container{
  max-width:min(1240px, calc(100vw - 28px));
}

.ct-homeSectionHead{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}

.ct-homeSectionHead h3,
.ct-pageSectionHead h3,
.ct-placesHead h3{
  margin:0;
  line-height:1.08;
}

.ct-homeSectionHead p,
.ct-placesSub{
  max-width:660px;
  margin:6px 0 0;
  color:var(--nx-muted);
  font-size:15px;
}

.ct-homeHeroPanel{
  max-width:620px;
}

.ct-homeHeroPanel h1{
  max-width:12ch;
  font-size:clamp(38px, 5.2vw, 72px) !important;
  line-height:1.02;
}

.ct-homeHeroPanel p{
  max-width:58ch;
  font-size:clamp(15px, 1.35vw, 19px);
  line-height:1.55;
}

.ct-productBadges{
  gap:8px;
  flex-wrap:wrap;
}

.ct-heroActions,
.ct-entityHeroActions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}

.ct-primaryBtn,
.ct-secondaryBtn{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px !important;
  font-weight:850 !important;
}

.ct-routePreview{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:2px 10px;
  align-items:center;
  margin-top:16px;
  padding:12px;
  border-radius:16px;
  border:1px solid var(--nx-line);
  background:rgba(255,255,255,.08);
}

.ct-routePreview span{
  grid-row:1 / 3;
  width:12px;
  height:12px;
  border-radius:999px;
  background:currentColor;
}

.ct-routePreview b{
  color:var(--nx-ink);
  font-size:13px;
}

.ct-routePreview small{
  color:var(--nx-muted);
  font-weight:700;
}

.ct-heroMapPreview{
  position:absolute;
  right:22px;
  bottom:22px;
  width:min(330px, calc(100% - 44px));
  min-height:170px;
  border:1px solid var(--nx-line);
  border-radius:22px;
  background:rgba(7,11,26,.58);
  backdrop-filter:blur(14px);
  overflow:hidden;
}

.ct-heroMapLine{
  position:absolute;
  left:18%;
  right:18%;
  top:50%;
  height:3px;
  border-radius:999px;
  background:currentColor;
  opacity:.35;
  transform:rotate(-13deg);
}

.ct-heroMiniPlayer{
  position:absolute;
  left:12px;
  right:12px;
  bottom:12px;
  padding:10px 12px;
  border-radius:16px;
  background:rgba(255,255,255,.1);
  border:1px solid var(--nx-line);
}

.ct-heroMiniPlayer b{
  display:block;
  color:var(--nx-ink);
  font-size:13px;
}

.ct-heroMiniPlayer small{
  color:var(--nx-muted);
  font-weight:700;
}

.ct-stepList{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  padding:0;
  list-style:none;
  counter-reset:steps;
}

.ct-stepList li{
  counter-increment:steps;
  position:relative;
  min-height:116px;
  padding:16px 16px 16px 52px;
  border:1px solid var(--nx-line);
  border-radius:18px;
  background:rgba(255,255,255,.06);
}

.ct-stepList li::before{
  content:counter(steps);
  position:absolute;
  left:14px;
  top:16px;
  width:28px;
  height:28px;
  border-radius:999px;
  display:grid;
  place-items:center;
  font-weight:900;
  background:rgba(255,255,255,.1);
  border:1px solid var(--nx-line);
}

.ct-stepList b{
  display:block;
  margin-bottom:4px;
}

.ct-stepList span{
  color:var(--nx-muted);
}

.ct-cardStatus{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 9px;
  border-radius:999px;
  border:1px solid var(--nx-line);
  background:rgba(255,255,255,.08);
  font-size:11px;
  font-weight:900;
  color:var(--nx-ink);
}

.ct-mediaCard,
.ct-cityCard,
.ct-iconicCard{
  border-radius:20px;
  border:1px solid var(--nx-line);
  overflow:hidden;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.ct-mediaCard:hover,
.ct-cityCard:hover,
.ct-iconicCard:hover{
  transform:translateY(-4px);
  border-color:rgba(255,255,255,.34);
}

.ct-mediaCardBody{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.ct-cityCard small{
  display:block;
  padding:0 14px 14px;
  color:var(--nx-muted);
  font-size:12px;
  font-weight:750;
}

.ct-countryPillGrid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:10px;
}

.ct-countryPill{
  display:flex;
  align-items:center;
  gap:9px;
  min-height:42px;
  padding:9px 12px;
  border-radius:999px;
  border:1px solid var(--nx-line);
  background:rgba(255,255,255,.06);
  text-decoration:none;
  font-size:13px;
  font-weight:800;
}

.ct-countryPill:hover{
  transform:translateY(-2px);
}

.ct-pageShellMap .ct-mapShell,
.ct-liveMapWrap .ct-mapShell{
  position:relative;
  height:100%;
  min-height:inherit;
  overflow:hidden;
  border-radius:inherit;
  border:1px solid var(--nx-line);
  background:rgba(255,255,255,.06);
}

.ct-pageShellMap .ct-mapShell .ag-map,
.ct-liveMapWrap .ct-mapShell .ag-map{
  height:100%;
  min-height:inherit;
  border:0 !important;
  border-radius:inherit;
}

.ct-mapTopbar,
.ct-mapInfoDock,
.ct-mapSafety{
  position:absolute;
  z-index:450;
  border:1px solid var(--nx-line);
  background:rgba(7,11,26,.74);
  backdrop-filter:blur(14px);
}

.ct-mapTopbar{
  left:14px;
  right:14px;
  top:14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border-radius:16px;
}

.ct-mapTopbar span,
.ct-mapInfoDock b{
  color:var(--nx-ink);
  font-weight:900;
}

.ct-mapTopbar small,
.ct-mapInfoDock small{
  color:var(--nx-muted);
  font-weight:750;
}

.ct-mapInfoDock{
  left:14px;
  right:14px;
  bottom:14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px;
  border-radius:18px;
}

.ct-mapInfoDock > div{
  min-width:0;
  display:flex;
  flex-direction:column;
}

.ct-mapInfoDock b,
.ct-mapInfoDock small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.ct-mapSafety{
  left:14px;
  bottom:14px;
  max-width:min(460px, calc(100% - 28px));
  padding:9px 12px;
  border-radius:999px;
  color:var(--nx-muted);
  font-size:12px;
  font-weight:800;
}

.ct-drivingMode .ct-mapShellLive{
  min-height:clamp(520px, 72vh, 760px);
  border-radius:24px;
}

.ct-panelKicker{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.ct-panelKicker span{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:0 10px;
  border-radius:999px;
  border:1px solid var(--nx-line);
  background:rgba(255,255,255,.08);
  color:var(--nx-ink);
  font-size:11px;
  font-weight:900;
}

.ct-panelKicker small{
  color:var(--nx-muted);
  font-size:12px;
  font-weight:750;
  text-align:right;
}

.ag-outline{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:12px;
}

.ct-storyPanel .ag-sec{
  border-radius:16px !important;
  transition:transform .16s ease, border-color .16s ease, background .16s ease;
}

.ct-storyPanel .ag-sec:hover{
  transform:translateY(-2px);
}

.ct-storyPanel .ag-secTop{
  align-items:center;
  min-height:78px;
  padding:12px !important;
}

.ag-secContent{
  min-width:0 !important;
}

.ag-secTitle{
  font-size:15px;
  line-height:1.25;
}

.ag-secMeta{
  color:var(--nx-muted);
  font-size:11px;
  font-weight:800;
}

.ag-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:23px;
  padding:0 8px;
  line-height:1;
  border-radius:999px;
  border:1px solid var(--nx-line);
  background:rgba(255,255,255,.08);
  color:var(--nx-ink);
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
}

.ag-secBtns{
  display:flex;
  align-items:center;
  gap:8px;
}

.ag-iconBtn{
  width:44px !important;
  height:44px !important;
  border-radius:999px !important;
}

.ag-player{
  min-height:92px;
}

.ag-player-inner{
  position:relative;
}

.ag-player-now{
  position:relative;
  padding-left:44px;
}

.ag-player-now::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:34px;
  height:34px;
  border-radius:12px;
  transform:translateY(-50%);
  border:1px solid var(--nx-line);
  background:rgba(255,255,255,.08);
}

.ag-player-title,
.ag-player-meta{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.ag-player-btn{
  min-width:44px !important;
  min-height:44px !important;
}

.ag-player-btnPrimary{
  min-width:52px !important;
}

.ag-player:focus-within{
  outline:2px solid var(--nx-line);
  outline-offset:2px;
}

.ct-adminShell{
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:18px;
  align-items:start;
}

.ct-adminSide{
  position:sticky;
  top:92px;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:12px;
  border:1px solid var(--nx-line);
  border-radius:18px;
  background:rgba(255,255,255,.06);
}

.ct-adminSide a{
  min-height:40px;
  display:flex;
  align-items:center;
  padding:0 12px;
  border-radius:12px;
  text-decoration:none;
  color:var(--nx-ink);
  font-weight:800;
}

.ct-adminSide a:hover{
  background:rgba(255,255,255,.08);
}

.ct-adminMain{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.ct-adminStats{
  grid-template-columns:repeat(4,minmax(0,1fr));
}

.ct-adminCard{
  border:1px solid var(--nx-line);
}

.ct-adminTable{
  min-width:760px;
}

.ct-adminTable th{
  position:sticky;
  top:0;
  z-index:2;
}

.ct-adminTable td small{
  display:block;
  margin-top:3px;
  color:var(--nx-muted);
  font-weight:750;
}

.ct-adminBadge{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 8px;
  border-radius:999px;
  border:1px solid var(--nx-line);
  background:rgba(255,255,255,.08);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}

.ct-adminProgress{
  width:112px;
  max-width:100%;
  height:7px;
  margin:6px 0 4px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.08);
}

.ct-adminProgress i{
  display:block;
  height:100%;
  border-radius:inherit;
  background:currentColor;
}

.ct-adminChecklist{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}

.ct-adminChecklist span{
  min-height:38px;
  display:flex;
  align-items:center;
  padding:0 12px;
  border-radius:12px;
  border:1px solid var(--nx-line);
  background:rgba(255,255,255,.06);
  font-weight:800;
}

.ct-errorPage{
  min-height:60vh;
  display:grid;
  place-items:center;
}

.ct-errorCard{
  width:min(720px, 100%);
  padding:clamp(22px, 5vw, 48px);
  border:1px solid var(--nx-line);
  border-radius:26px;
  background:rgba(255,255,255,.06);
  box-shadow:var(--nx-shadow);
}

.ct-errorCard h1{
  margin:14px 0 8px;
  font-size:clamp(34px, 5vw, 58px);
}

.ct-errorCard p{
  max-width:58ch;
  color:var(--nx-muted);
  font-size:16px;
}

.ct-emptyState,
.ct-loadingState{
  padding:18px;
  border:1px solid var(--nx-line);
  border-radius:18px;
  background:rgba(255,255,255,.06);
}

.ct-loadingState{
  min-height:120px;
  background:
    linear-gradient(90deg, rgba(255,255,255,.04), rgba(255,255,255,.1), rgba(255,255,255,.04));
  background-size:220% 100%;
  animation:ctSkeleton 1.4s ease infinite;
}

@keyframes ctSkeleton{
  0%{background-position:100% 0}
  100%{background-position:-100% 0}
}

@media (max-width:1199.98px){
  .ct-countryPillGrid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }

  .ct-adminStats{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:991.98px){
  html{
    scroll-padding-top:84px;
  }

  .ct-homeSectionHead{
    align-items:start;
    flex-direction:column;
  }

  .ct-heroMapPreview{
    display:none;
  }

  .ct-mapTopbar{
    left:10px;
    right:10px;
    top:10px;
  }

  .ct-mapInfoDock{
    left:10px;
    right:10px;
    bottom:10px;
  }

  .ct-adminShell{
    grid-template-columns:1fr;
  }

  .ct-adminSide{
    position:relative;
    top:auto;
    flex-direction:row;
    overflow:auto;
  }

  .ct-adminSide a{
    flex:0 0 auto;
  }
}

@media (max-width:720px){
  .container{
    max-width:calc(100vw - 20px);
  }

  .ct-homeHero{
    padding-top:4px;
  }

  .ct-homeHeroMedia{
    border-radius:22px;
  }

  .ct-homeHeroPanel h1{
    font-size:36px !important;
    max-width:14ch;
  }

  .ct-heroActions,
  .ct-entityHeroActions{
    flex-direction:column;
  }

  .ct-primaryBtn,
  .ct-secondaryBtn{
    width:100%;
  }

  .ct-stepList,
  .ct-countryPillGrid,
  .ct-adminChecklist{
    grid-template-columns:1fr;
  }

  .ct-pageHeroInnerWide{
    padding:12px !important;
  }

  .ct-pageHeroCard{
    width:100% !important;
  }

  .ct-panelKicker{
    align-items:flex-start;
    flex-direction:column;
  }

  .ct-storyPanel .ag-secTop{
    align-items:stretch;
    flex-direction:column;
  }

  .ag-secBtns{
    width:100%;
  }

  .ag-secBtns .ag-iconBtn{
    flex:1 1 0;
  }

  .ct-mapInfoDock{
    align-items:stretch;
    flex-direction:column;
  }

  .ct-mapInfoDock .btn{
    width:100%;
  }

  .ag-player{
    left:8px !important;
    right:8px !important;
    bottom:8px !important;
    border-radius:16px !important;
  }

  .ag-player-now{
    padding-left:40px;
  }

  .ag-player-ctrls{
    width:100%;
    display:grid !important;
    grid-template-columns:repeat(5, minmax(44px, auto));
    gap:8px !important;
  }

  .ag-player-volume{
    grid-column:1 / -1;
    width:100%;
    justify-content:space-between;
  }

  .ag-player-volume input{
    flex:1;
    width:auto;
  }
}

/* Block-structured travel guide layout. Uses existing color tokens only. */
.main{
  padding-bottom:118px;
}

.ct-navbar{
  border-bottom:1px solid var(--nx-line);
  background:var(--nx-bg-soft);
  backdrop-filter:blur(16px);
}

.ct-navbar .navbar-brand{
  font-weight:900;
  letter-spacing:0;
}

.ct-navbar .navbar-toggler{
  border:1px solid rgba(180,197,244,.56) !important;
  border-radius:8px !important;
  padding:10px 12px !important;
  box-shadow:none !important;
}

.ct-navbar .navbar-toggler-icon{
  width:26px !important;
  height:20px !important;
  background-image:
    linear-gradient(var(--nx-ink), var(--nx-ink)),
    linear-gradient(var(--nx-ink), var(--nx-ink)),
    linear-gradient(var(--nx-ink), var(--nx-ink)) !important;
  background-position:50% 2px, 50% 50%, 50% calc(100% - 2px) !important;
  background-repeat:no-repeat !important;
  background-size:24px 2px !important;
}

.ct-brandLogo{
  display:inline-flex !important;
  align-items:center !important;
  min-height:50px !important;
  padding:0 !important;
}

.ct-brandLogo img{
  display:block !important;
  width:184px !important;
  max-width:42vw !important;
  height:auto !important;
  object-fit:contain !important;
}

.ct-brandTextFallback{
  display:inline-flex;
  align-items:center;
  min-height:50px;
  color:var(--nx-ink);
  font-size:28px;
  font-weight:900;
  letter-spacing:-.01em;
  line-height:1;
}

.ct-brandTextFallback[hidden]{
  display:none !important;
}

.ct-footerLogo{
  display:flex !important;
  align-items:center !important;
}

.ct-footerLogo img{
  display:block !important;
  width:184px !important;
  max-width:100% !important;
  height:auto !important;
  object-fit:contain !important;
}

.ct-navbar .nav-link{
  min-height:42px;
  display:flex;
  align-items:center;
}

.ct-headerCta{
  min-height:42px;
  display:inline-flex;
  align-items:center;
}

:where(a,button,input,select,textarea):focus-visible{
  outline:2px solid var(--nx-cyan);
  outline-offset:3px;
}

.ct-footerColsWide{
  grid-template-columns:repeat(5,minmax(0,1fr));
}

.ux-section,
.ux-hero,
.ux-entityHero{
  padding:clamp(48px,7vw,88px) 0;
}

.ux-sectionInner{
  padding-top:clamp(32px,5vw,56px);
}

.ux-homeHero{
  padding-top:clamp(96px,12vw,140px);
}

.ux-heroGrid,
.ux-entityHeroGrid,
.ux-liveGrid,
.ux-guideLayout,
.ux-adminShell,
.ux-contentEditor,
.ux-seoManager{
  display:grid;
  gap:clamp(18px,3vw,32px);
}

.ux-heroGrid{
  grid-template-columns:minmax(0,0.95fr) minmax(420px,1.05fr);
  align-items:center;
}

.ux-entityHeroGrid{
  grid-template-columns:minmax(0,0.9fr) minmax(420px,1.1fr);
  align-items:stretch;
}

.ux-placeHeroGrid{
  grid-template-columns:minmax(420px,1fr) minmax(0,0.9fr);
}

.ux-heroCopy,
.ux-entityHeroCopy,
.ux-textBlock,
.ux-storyCard,
.ux-sideCard,
.ux-infoCard,
.ux-guideCard,
.ux-statusCard,
.ux-currentCard,
.ux-adminCard,
.ux-emptyState,
.ux-productPreview,
.ux-mapCard{
  border:1px solid var(--nx-line);
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
}

.ux-heroCopy,
.ux-entityHeroCopy,
.ux-textBlock,
.ux-storyCard,
.ux-sideCard,
.ux-infoCard,
.ux-statusCard,
.ux-currentCard,
.ux-adminCard,
.ux-emptyState{
  border-radius:24px;
  padding:clamp(18px,3vw,34px);
}

.ux-heroCopy,
.ux-entityHeroCopy{
  align-self:center;
}

.ux-heroCopy h1,
.ux-entityHeroCopy h1{
  max-width:12ch;
  margin:10px 0 14px;
  color:var(--nx-ink);
  font-size:clamp(38px,5.2vw,64px);
  line-height:.98;
  letter-spacing:0;
}

.ux-entityHeroCopy h1{
  max-width:14ch;
  font-size:clamp(34px,4.2vw,54px);
}

.ux-heroCopy p,
.ux-entityHeroCopy p,
.ux-textBlock p,
.ux-infoCard p,
.ux-currentCard p,
.ux-guideCard p,
.ux-sideCard p,
.ux-storyHead p{
  color:var(--nx-muted);
  font-size:15px;
  line-height:1.65;
}

.ux-heroCopy > p,
.ux-entityHeroCopy > p{
  max-width:62ch;
  font-size:17px;
}

.ux-kicker,
.ux-badge,
.ux-countPill{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  width:max-content;
  max-width:100%;
  padding:0 10px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:var(--nx-ink);
  font-size:11px;
  font-weight:900;
  letter-spacing:0;
  text-transform:uppercase;
}

.ux-actions,
.ux-actionRow,
.ux-playerActions,
.ux-heroMeta,
.ux-trustRow,
.ux-cardMeta,
.ux-filterChips,
.ux-adminFilters{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
}

.ux-playerActions{
  margin-bottom:5px;
}

.ux-actions{
  margin-top:22px;
}

.ux-actions .btn,
.ux-playerActions .btn,
.ux-actionRow .btn{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.ux-trustRow{
  margin-top:22px;
  color:var(--nx-muted);
  font-size:12px;
  font-weight:800;
}

.ux-trustRow span,
.ux-heroMeta span,
.ux-cardMeta span,
.ux-adminFilters span,
.ux-readyLine{
  display:inline-flex;
  min-height:30px;
  align-items:center;
  padding:0 10px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  background:rgba(255,255,255,.06);
  color:var(--nx-muted);
  font-size:12px;
  font-weight:800;
}

.ux-readyLine{
  margin-top:14px;
  color:var(--nx-ink);
}

.ux-productPreview{
  position:relative;
  overflow:hidden;
  border-radius:28px;
  padding:14px;
}

.ux-previewMap,
.ux-mapCard{
  position:relative;
  overflow:hidden;
  border-radius:22px;
}

.ux-previewMap{
  min-height:430px;
  border:1px solid var(--nx-line);
  background:
    linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255,255,255,.06) 1px, transparent 1px),
    var(--nx-card-2);
  background-size:54px 54px;
}

.ux-mapRoute{
  position:absolute;
  inset:88px 82px 118px 96px;
  border-left:3px solid var(--nx-cyan);
  border-bottom:3px solid var(--nx-cyan);
  border-radius:0 0 0 80px;
}


.ux-previewCityCard,
.ux-miniPlayer,
.ux-mapOverlayCard{
  position:absolute;
  border:1px solid var(--nx-line);
  border-radius:18px;
  background:var(--nx-card);
  color:var(--nx-ink);
  box-shadow:var(--nx-shadow);
  backdrop-filter:blur(14px);
}

.ux-previewCityCard{
  left:18px;
  bottom:18px;
  display:flex;
  flex-direction:column;
  gap:3px;
  width:min(260px,calc(100% - 36px));
  padding:14px;
}

.ux-previewCityCard small,
.ux-previewCityCard span,
.ux-miniPlayer span,
.ux-mapOverlayCard span{
  color:var(--nx-muted);
  font-size:12px;
  font-weight:800;
}

.ux-miniPlayer{
  left:28px;
  right:28px;
  bottom:28px;
  display:grid;
  grid-template-columns:44px minmax(0,1fr) minmax(120px,.55fr);
  gap:12px;
  align-items:center;
  padding:12px;
}

.ux-playDot{
  width:44px;
  height:44px;
  border:0;
  border-radius:999px;
  background:var(--nx-cyan);
  color:var(--nx-card);
}

.ux-playDot::before{
  content:"";
  display:block;
  width:0;
  height:0;
  margin:auto;
  border-top:8px solid transparent;
  border-bottom:8px solid transparent;
  border-left:12px solid currentColor;
  transform:translateX(2px);
}

.ux-playerLine,
.ux-progressStack i,
.ct-adminProgress,
.ux-progressStack div{
  overflow:hidden;
}

.ux-playerLine{
  height:8px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
}

.ux-playerLine i,
.ux-progressStack i{
  display:block;
  height:100%;
  border-radius:inherit;
  background:currentColor;
}

.ux-sectionHead{
  max-width:760px;
  margin-bottom:22px;
}

.ux-sectionHead h2{
  margin:10px 0 0;
  color:var(--nx-ink);
  font-size:clamp(28px,3.3vw,42px);
  line-height:1.08;
  letter-spacing:0;
}

.ux-sectionHeadRow{
  max-width:none;
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:18px;
}

.ux-cardGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}

.ux-cardGrid4{
  grid-template-columns:repeat(4,minmax(0,1fr));
}

.ux-infoCard{
  min-height:190px;
}

.ux-infoCard h3,
.ux-guideCard h3,
.ux-sideCard h3,
.ux-currentCard h3,
.ux-storyHead h2,
.ux-adminCard h2{
  margin:8px 0 8px;
  color:var(--nx-ink);
  font-size:clamp(19px,2vw,24px);
  line-height:1.16;
}

.ux-cardIcon{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:1px solid var(--nx-line);
  border-radius:14px;
  background:rgba(255,255,255,.08);
  font-weight:900;
}

.ux-liveGrid{
  grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);
  align-items:start;
}

.ux-livePanel,
.ux-guideSide{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.ux-mapCard{
  min-height:420px;
}

.ux-mapCardLarge{
  min-height:560px;
}

.ux-liveMap,
.ux-entityMap,
.ux-countryMap{
  min-height:inherit;
  height:100%;
}

.ux-mapOverlayCard{
  left:16px;
  bottom:16px;
  max-width:300px;
  padding:13px 14px;
}

.ux-statusTop{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}

.ux-statusTop span,
.ux-currentCard > span,
.ux-metaLine{
  color:var(--nx-muted);
  font-size:12px;
  font-weight:800;
}

.ux-checkLine{
  display:flex;
  gap:9px;
  align-items:center;
  margin:12px 0 0;
  color:var(--nx-muted);
  font-size:13px;
  font-weight:800;
}

.ux-cityList,
.ux-problemList{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:0;
  margin:14px 0 0;
  list-style:none;
}

.ux-cityList li,
.ux-problemList li{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border:1px solid var(--nx-line);
  border-radius:14px;
  background:rgba(255,255,255,.06);
  color:var(--nx-muted);
  font-size:13px;
  font-weight:800;
}

.ux-storyHead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin:12px 0;
}

.ux-storyCardLarge{
  scroll-margin-top:110px;
}

.ux-playlist{
  margin-top:14px;
}

.ux-guideCard{
  display:flex;
  min-height:100%;
  overflow:hidden;
  border-radius:22px;
  color:inherit;
  text-decoration:none;
  transition:transform .16s ease, border-color .16s ease;
}

.ux-guideCard:hover{
  transform:translateY(-3px);
  color:inherit;
}

.ux-guideCard{
  flex-direction:column;
}

.ux-guideCard img{
  width:100%;
  aspect-ratio:16/10;
  object-fit:cover;
  background:var(--nx-card-2);
}

.ux-guideCardBody{
  display:flex;
  flex:1;
  flex-direction:column;
  gap:9px;
  padding:16px;
}

.ux-guideCardBody h3{
  margin:0;
}

.ux-cardMeta{
  margin-top:auto;
}

.ux-cardCta{
  margin-top:4px;
  color:var(--nx-ink);
  font-size:13px;
  font-weight:900;
}

.ux-countryGroups{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

.ux-countryGroup{
  padding:18px;
  border:1px solid var(--nx-line);
  border-radius:22px;
  background:var(--nx-card);
}

.ux-countryGroup h3{
  margin:0 0 12px;
  font-size:18px;
}

.ux-countryPills{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.ux-breadcrumbs{
  padding:96px 0 0;
}

.ux-breadcrumbs nav{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  color:var(--nx-muted);
  font-size:13px;
  font-weight:800;
}

.ux-breadcrumbs a{
  color:var(--nx-muted);
  text-decoration:none;
}

.ux-breadcrumbs a:hover{
  color:var(--nx-ink);
}

.ux-entityHero{
  padding-top:22px;
}

.ux-entityHeroMedia{
  position:relative;
  min-height:360px;
  overflow:hidden;
  border:1px solid var(--nx-line);
  border-radius:28px;
  background:var(--nx-card-2);
  box-shadow:var(--nx-shadow);
}

.ux-entityHeroMedia img{
  width:100%;
  height:100%;
  min-height:360px;
  object-fit:cover;
}

.ux-heroPlayerPreview{
  position:absolute;
  left:16px;
  right:16px;
  bottom:16px;
  display:flex;
  gap:12px;
  align-items:center;
  padding:12px;
  border:1px solid var(--nx-line);
  border-radius:18px;
  background:var(--nx-card);
  backdrop-filter:blur(14px);
}

.ux-heroPlayerPreview span{
  display:block;
  color:var(--nx-muted);
  font-size:12px;
  font-weight:800;
}

.ux-detailNav{
  position:sticky;
  z-index:10;
  top:74px;
  padding:10px 0;
  border-top:1px solid var(--nx-line);
  border-bottom:1px solid var(--nx-line);
  background:var(--nx-bg-soft);
  backdrop-filter:blur(14px);
}

.ux-detailNav .container{
  display:flex;
  gap:10px;
  overflow:auto;
}

.ux-detailNav a{
  flex:0 0 auto;
  min-height:36px;
  display:inline-flex;
  align-items:center;
  padding:0 12px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  background:rgba(255,255,255,.06);
  color:var(--nx-ink);
  font-size:13px;
  font-weight:850;
  text-decoration:none;
}

.ux-guideLayout,
.city-page-layout{
  grid-template-columns:minmax(0,1fr) 360px;
  align-items:start;
}

.ux-countryLayout{
  grid-template-columns:minmax(0,1fr) minmax(300px,.36fr);
}

.ux-placeLayout{
  grid-template-columns:minmax(0,1fr) minmax(320px,.4fr);
}

.ux-guideMain{
  min-width:0;
}

.ux-guideMainSection,
.ux-guideMainSection .container,
.city-page-layout{
  overflow:visible;
  transform:none;
  filter:none;
  contain:none;
}

.ux-guideSide,
.city-companion-sidebar{
  position:sticky;
  top:calc(var(--header-height, 80px) + 24px);
  align-self:start;
  max-height:none;
  overflow:visible;
  padding-right:2px;
}

@media (min-width:992px){
  .city-page-layout{
    grid-template-columns:minmax(0,1fr) 360px !important;
    align-items:start;
  }

  .city-companion-sidebar{
    position:sticky !important;
    top:calc(var(--header-height, 80px) + 24px) !important;
    align-self:start;
    max-height:none;
    overflow:visible;
  }
}

.ux-inlineStatus{
  margin:0 0 10px !important;
}

.ux-infoList{
  display:grid;
  gap:10px;
  margin:0;
}

.ux-infoList div{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:10px 0;
  border-bottom:1px solid var(--nx-line);
}

.ux-infoList dt{
  color:var(--nx-muted);
  font-size:12px;
  font-weight:900;
}

.ux-infoList dd{
  margin:0;
  color:var(--nx-ink);
  font-size:13px;
  font-weight:850;
  text-align:right;
}

.ux-miniList{
  display:grid;
  gap:10px;
}

.ux-miniList a{
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  gap:10px;
  align-items:center;
  color:var(--nx-ink);
  text-decoration:none;
}

.ux-miniList img{
  width:58px;
  height:50px;
  border-radius:14px;
  object-fit:cover;
  background:var(--nx-card-2);
}

.ux-filterChips{
  margin-bottom:18px;
  overflow:auto;
  flex-wrap:nowrap;
}

.ux-filterChips button{
  min-height:40px;
  flex:0 0 auto;
  padding:0 14px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  background:rgba(255,255,255,.06);
  color:var(--nx-ink);
  font-weight:850;
}

.ux-relatedGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}

.ux-modeGrid,
.ux-walkingGrid{
  display:grid;
  gap:18px;
  align-items:stretch;
}

.ux-modeGrid{
  grid-template-columns:minmax(0,1fr) minmax(320px,.38fr);
}

.ux-walkingGrid{
  grid-template-columns:360px minmax(0,1fr);
}

.ux-modeMap,
.ux-walkingMap{
  min-height:520px;
}

.ux-gpsBar{
  position:absolute;
  z-index:2;
  left:14px;
  right:14px;
  top:14px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.ux-gpsBar span{
  min-height:32px;
  display:inline-flex;
  align-items:center;
  padding:0 10px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  background:var(--nx-card);
  color:var(--nx-ink);
  font-size:12px;
  font-weight:850;
}

.ux-drivingMapMock{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255,255,255,.06) 1px, transparent 1px),
    var(--nx-card-2);
  background-size:56px 56px;
}

.ux-drivingCityCard,
.ux-bottomSheetPreview{
  position:absolute;
  z-index:2;
  left:16px;
  right:16px;
  bottom:16px;
  padding:16px;
  border:1px solid var(--nx-line);
  border-radius:20px;
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
}

.ux-drivingCityCard h3{
  margin:4px 0;
  font-size:30px;
}

.ux-drivingCityCard small,
.ux-drivingCityCard p,
.ux-bottomSheetPreview span{
  color:var(--nx-muted);
  font-size:13px;
  font-weight:800;
}

.ux-drivingPanel{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.ux-drivingPlayer{
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  gap:14px;
  align-items:center;
  padding:20px;
  border:1px solid var(--nx-line);
  border-radius:24px;
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
}

.ux-drivingPlayer .ux-playDot{
  width:58px;
  height:58px;
}

.ux-drivingPlayer span{
  display:block;
  color:var(--nx-muted);
  font-size:13px;
  font-weight:800;
}

.ux-drivingPlayer .ux-playerLine{
  grid-column:1 / -1;
  height:10px;
}

.ux-walkingSidebar,
.ux-explorePanel{
  padding:18px;
  border:1px solid var(--nx-line);
  border-radius:24px;
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
}

.ux-searchBox{
  display:grid;
  gap:8px;
  margin-bottom:14px;
  color:var(--nx-muted);
  font-size:12px;
  font-weight:850;
}

.ux-searchBox input{
  width:100%;
  min-height:46px;
  border:1px solid var(--nx-line);
  border-radius:16px;
  background:rgba(255,255,255,.06);
  color:var(--nx-ink);
  padding:0 14px;
}

.ux-searchBoxLarge input{
  min-height:54px;
  font-size:16px;
}

.ux-placeList{
  display:grid;
  gap:10px;
}

.ux-placeList a{
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  gap:12px;
  align-items:center;
  padding:10px;
  border:1px solid var(--nx-line);
  border-radius:16px;
  color:var(--nx-ink);
  text-decoration:none;
}

.ux-placeList img{
  width:64px;
  height:54px;
  border-radius:14px;
  object-fit:cover;
  background:var(--nx-card-2);
}

.ux-placeList small{
  display:block;
  color:var(--nx-muted);
  font-size:12px;
  font-weight:800;
}

.ux-bottomSheetPreview{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:4px 12px;
  align-items:center;
}

.ux-bottomSheetPreview span{
  grid-column:1;
}

.ux-bottomSheetPreview .btn{
  grid-row:1 / span 2;
  grid-column:2;
  align-self:center;
}

.ux-explorePanel{
  display:grid;
  gap:16px;
}

.ux-exploreGrid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.ag-map:empty::before{
  content:"Loading map...";
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:var(--nx-muted);
  font-weight:850;
  background:
    linear-gradient(90deg, rgba(255,255,255,.04), rgba(255,255,255,.1), rgba(255,255,255,.04)),
    var(--nx-card-2);
  background-size:220% 100%;
  animation:ctSkeleton 1.4s ease infinite;
}

.ux-loadingSkeleton{
  min-height:110px;
  border:1px solid var(--nx-line);
  border-radius:18px;
  background:
    linear-gradient(90deg, rgba(255,255,255,.04), rgba(255,255,255,.1), rgba(255,255,255,.04)),
    var(--nx-card-2);
  background-size:220% 100%;
  animation:ctSkeleton 1.4s ease infinite;
}

.ux-emptyState{
  text-align:center;
}

.ux-emptyState h2{
  margin:0 0 8px;
  font-size:28px;
}

.ux-adminPage{
  padding:108px 0 72px;
}

.ux-adminShell{
  grid-template-columns:240px minmax(0,1fr);
  align-items:start;
}

.ux-adminSidebar{
  position:sticky;
  top:94px;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:14px;
  border:1px solid var(--nx-line);
  border-radius:24px;
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
}

.ux-adminBrand{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:8px 10px 14px;
  border-bottom:1px solid var(--nx-line);
  margin-bottom:4px;
}

.ux-adminBrand span{
  color:var(--nx-muted);
  font-size:12px;
  font-weight:800;
}

.ux-adminSidebar a{
  min-height:40px;
  display:flex;
  align-items:center;
  padding:0 12px;
  border-radius:14px;
  color:var(--nx-ink);
  text-decoration:none;
  font-weight:850;
}

.ux-adminSidebar a:hover{
  background:rgba(255,255,255,.06);
}

.ux-adminMain{
  display:flex;
  flex-direction:column;
  gap:18px;
}

.ux-adminTopbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(420px,.8fr);
  gap:18px;
  align-items:end;
  padding:22px;
  border:1px solid var(--nx-line);
  border-radius:24px;
  background:var(--nx-card);
}

.ux-adminTopbar h1{
  margin:8px 0 6px;
  font-size:clamp(28px,3vw,40px);
}

.ux-adminTopbar p{
  margin:0;
  color:var(--nx-muted);
}

.ux-adminSearch,
.ux-audioQueueForm{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr)) auto;
  gap:10px;
  align-items:end;
}

.ux-adminSearch label,
.ux-editorMain label,
.ux-seoForm label{
  display:grid;
  gap:6px;
  color:var(--nx-muted);
  font-size:12px;
  font-weight:850;
}

.ux-adminSearch select,
.ux-audioQueueForm select,
.ux-editorMain input,
.ux-editorMain textarea,
.ux-seoForm input,
.ux-seoForm textarea{
  min-height:42px;
  width:100%;
  border:1px solid var(--nx-line);
  border-radius:14px;
  background:rgba(255,255,255,.06);
  color:var(--nx-ink);
  padding:0 12px;
}

.ux-editorMain textarea,
.ux-seoForm textarea{
  min-height:150px;
  padding:12px;
}

.ux-adminMetrics{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:12px;
}

.ux-adminMetric{
  min-height:130px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:16px;
  border:1px solid var(--nx-line);
  border-radius:20px;
  background:var(--nx-card);
}

.ux-adminMetric span,
.ux-adminMetric small{
  color:var(--nx-muted);
  font-size:12px;
  font-weight:850;
}

.ux-adminMetric strong{
  color:var(--nx-ink);
  font-size:34px;
  line-height:1;
}

.ux-adminGrid2{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.ux-adminSection{
  scroll-margin-top:110px;
}

.ux-adminCardHead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:16px;
}

.ux-adminCardHead h2{
  margin:0;
}

.ux-progressStack{
  display:grid;
  gap:12px;
}

.ux-progressStack div{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:6px 12px;
  align-items:center;
  height:44px;
  padding:8px 10px;
  border:1px solid var(--nx-line);
  border-radius:14px;
  background:rgba(255,255,255,.06);
}

.ux-progressStack i{
  grid-column:1 / -1;
  height:6px;
  border-radius:999px;
}

.ux-adminTableWrap{
  overflow:auto;
  border:1px solid var(--nx-line);
  border-radius:18px;
}

.ux-adminTable{
  width:100%;
  min-width:900px;
  border-collapse:separate;
  border-spacing:0;
}

.ux-adminTable th,
.ux-adminTable td{
  padding:13px 14px;
  border-bottom:1px solid var(--nx-line);
  color:var(--nx-ink);
  font-size:13px;
  vertical-align:middle;
}

.ux-adminTable th{
  color:var(--nx-muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}

.ux-adminTable tr:last-child td{
  border-bottom:0;
}

.ux-adminPlaceCell{
  display:flex;
  align-items:center;
  gap:10px;
}

.ux-adminPlaceCell img{
  width:44px;
  height:38px;
  border-radius:12px;
  object-fit:cover;
}

.ux-contentEditor{
  grid-template-columns:230px minmax(0,1fr) 260px;
}

.ux-editorSections,
.ux-editorMain,
.ux-editorStatus,
.ux-pageSelector,
.ux-seoForm,
.ux-seoChecklist{
  padding:16px;
  border:1px solid var(--nx-line);
  border-radius:18px;
  background:rgba(255,255,255,.04);
}

.ux-editorSections button,
.ux-pageSelector button{
  width:100%;
  min-height:52px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:2px;
  margin-top:8px;
  padding:8px 10px;
  border:1px solid var(--nx-line);
  border-radius:14px;
  background:rgba(255,255,255,.06);
  color:var(--nx-ink);
  text-align:left;
}

.ux-editorSections small{
  color:var(--nx-muted);
}

.ux-editorMain{
  display:grid;
  gap:12px;
}

.ux-editorPreview{
  padding:14px;
  border:1px solid var(--nx-line);
  border-radius:14px;
  color:var(--nx-muted);
}

.ux-editorStatus{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.ux-seoManager{
  grid-template-columns:230px minmax(0,1fr) 260px;
}

.ux-seoForm{
  display:grid;
  gap:12px;
}

.ux-seoChecklist{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.ux-seoChecklist span{
  min-height:34px;
  display:flex;
  align-items:center;
  padding:0 10px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  color:var(--nx-ink);
  font-size:12px;
  font-weight:850;
}

.ux-alert{
  padding:14px 16px;
  border:1px solid var(--nx-line);
  border-radius:16px;
  background:var(--nx-card);
}

.ct-storyPanel .ag-sec,
.ux-storyCard .ag-sec{
  border-radius:18px !important;
}

.ct-storyPanel .ag-secTop,
.ux-storyCard .ag-secTop{
  min-height:86px;
}

@media (max-width:1199.98px){
  .ux-heroGrid,
  .ux-entityHeroGrid,
  .ux-placeHeroGrid,
  .ux-liveGrid,
  .ux-guideLayout,
  .ux-countryLayout,
  .ux-placeLayout,
  .ux-adminTopbar{
    grid-template-columns:1fr;
  }

  .ux-guideSide,
  .ux-adminSidebar{
    position:relative;
    top:auto;
  }

  .ux-adminMetrics{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .ux-cardGrid4{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .ct-footerColsWide{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media (max-width:991.98px){
  .ux-adminShell,
  .ux-contentEditor,
  .ux-seoManager{
    grid-template-columns:1fr;
  }

  .ux-adminSidebar{
    flex-direction:row;
    overflow:auto;
  }

  .ux-adminSidebar a{
    flex:0 0 auto;
  }

  .ux-adminBrand{
    min-width:160px;
    border-right:1px solid var(--nx-line);
    border-bottom:0;
    margin:0 6px 0 0;
    padding-bottom:8px;
  }

  .ux-cardGrid,
  .ux-relatedGrid,
  .ux-countryGroups,
  .ux-adminGrid2,
  .ux-modeGrid,
  .ux-walkingGrid{
    grid-template-columns:1fr 1fr;
  }

  .ux-mapCardLarge{
    min-height:480px;
  }
}

@media (max-width:720px){
  .main{
    padding-bottom:138px;
  }

  .ux-section,
  .ux-hero,
  .ux-entityHero{
    padding:38px 0;
  }

  .ux-homeHero{
    padding-top:92px;
  }

  .ux-heroCopy,
  .ux-entityHeroCopy,
  .ux-textBlock,
  .ux-storyCard,
  .ux-sideCard,
  .ux-infoCard,
  .ux-statusCard,
  .ux-currentCard,
  .ux-adminCard,
  .ux-emptyState{
    border-radius:20px;
    padding:18px;
  }

  .ux-heroCopy h1,
  .ux-entityHeroCopy h1{
    max-width:none;
    font-size:34px;
    line-height:1.06;
  }

  .ux-heroCopy > p,
  .ux-entityHeroCopy > p{
    font-size:15px;
  }

  .ux-actions{
    flex-direction:column;
    align-items:stretch;
  }

  .ux-actions .btn,
  .ux-playerActions .btn,
  .ux-actionRow .btn{
    width:100%;
    min-height:48px;
  }

  .ux-productPreview{
    border-radius:22px;
  }

  .ux-previewMap{
    min-height:360px;
  }

  .ux-miniPlayer{
    left:14px;
    right:14px;
    bottom:14px;
    grid-template-columns:44px minmax(0,1fr);
  }

  .ux-playerLine{
    grid-column:1 / -1;
  }

  .ux-cardGrid,
  .ux-cardGrid4,
  .ux-relatedGrid,
  .ux-countryGroups,
  .ux-adminGrid2,
  .ux-adminMetrics,
  .ct-footerColsWide,
  .ux-modeGrid,
  .ux-walkingGrid,
  .ux-exploreGrid{
    grid-template-columns:1fr;
  }

  .ux-sectionHeadRow,
  .ux-storyHead,
  .ux-adminCardHead{
    align-items:flex-start;
    flex-direction:column;
  }

  .ux-mapCard,
  .ux-mapCardLarge,
  .ux-modeMap,
  .ux-walkingMap{
    min-height:390px;
  }

  .ux-walkingSidebar{
    order:2;
  }

  .ux-bottomSheetPreview{
    grid-template-columns:1fr;
  }

  .ux-bottomSheetPreview .btn{
    grid-row:auto;
    grid-column:auto;
    width:100%;
  }

  .ux-entityMap,
  .ux-countryMap{
    min-height:390px;
  }

  .ux-detailNav{
    top:68px;
  }

  .ux-breadcrumbs{
    padding-top:86px;
  }

  .ux-entityHeroMedia,
  .ux-entityHeroMedia img{
    min-height:270px;
  }

  .ux-adminSearch,
  .ux-audioQueueForm{
    grid-template-columns:1fr;
  }

  .ux-adminPage{
    padding-top:90px;
  }

  .ux-adminMetrics{
    gap:10px;
  }

  .ux-adminMetric{
    min-height:104px;
  }

  .ux-adminMetric strong{
    font-size:30px;
  }
}

/* Home page product polish: denser sections, stronger previews, existing colors only. */
.PageLanding .main{
  padding-bottom:96px;
}

.PageLanding .ux-section{
  padding:clamp(34px,5vw,58px) 0;
}

.PageLanding .ux-homeHero{
  padding:clamp(82px,10vw,112px) 0 clamp(30px,4vw,48px);
}

.PageLanding .ux-productHeroGrid{
  grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);
  gap:24px;
}

.PageLanding .ux-productHeroCopy{
  min-height:auto;
  padding:clamp(24px,3.5vw,40px);
}

.PageLanding .ux-productHeroCopy h1{
  max-width:13ch;
  margin-bottom:16px;
  font-size:clamp(42px,5.4vw,68px);
}

.PageLanding .ux-productHeroCopy p{
  max-width:58ch;
}

.ux-trustBullets{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}

.ux-trustBullets span{
  min-height:32px;
  display:inline-flex;
  align-items:center;
  padding:0 11px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  background:rgba(255,255,255,.06);
  color:var(--nx-muted);
  font-size:12px;
  font-weight:850;
}

.PageLanding .ux-heroProductCard{
  min-height:0;
  padding:12px;
}

.PageLanding .ux-heroPreviewMap{
  min-height:420px;
}

.ux-heroPlaylist{
  position:absolute;
  right:16px;
  top:16px;
  width:min(190px,calc(100% - 32px));
  display:grid;
  gap:8px;
  padding:13px;
  border:1px solid var(--nx-line);
  border-radius:18px;
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
}

.ux-heroPlaylist span{
  color:var(--nx-muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}

.ux-heroPlaylist b{
  min-height:30px;
  display:flex;
  align-items:center;
  padding:0 10px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  background:rgba(255,255,255,.06);
  font-size:13px;
}

.PageLanding .ux-trustStrip{
  padding-top:0;
}

.PageLanding .ux-trustStrip .ux-infoCard,
.PageLanding .ux-compactSteps .ux-infoCard{
  min-height:0;
  padding:18px;
}

.PageLanding .ux-trustStrip .ux-infoCard h3,
.PageLanding .ux-compactSteps .ux-infoCard h3{
  margin:0 0 6px;
  font-size:19px;
}

.PageLanding .ux-trustStrip .ux-infoCard p,
.PageLanding .ux-compactSteps .ux-infoCard p{
  margin:0;
  line-height:1.45;
}

.PageLanding .ux-sectionHead{
  margin-bottom:18px;
}

.PageLanding .ux-sectionHead p{
  margin:8px 0 0;
  color:var(--nx-muted);
  line-height:1.55;
}

.PageLanding .ux-sectionHeadRow > a,
.PageLanding .ux-panelCta{
  min-height:40px;
  display:inline-flex;
  align-items:center;
  color:var(--nx-ink);
  font-size:13px;
  font-weight:900;
  text-decoration:none;
}

.PageLanding .ux-liveProductGrid{
  grid-template-columns:minmax(0,1.45fr) minmax(360px,.72fr);
  gap:18px;
  align-items:stretch;
}

.PageLanding .ux-liveMapCard{
  min-height:500px;
}

.PageLanding .ux-liveProductPanel{
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  gap:14px;
}

.PageLanding .ux-currentGuideCard,
.PageLanding .ux-livePlaylistCard{
  padding:18px;
}

.ux-liveStatus{
  display:block;
  margin-top:10px;
  color:var(--nx-muted);
  font-size:12px;
  font-weight:850;
}

.PageLanding .ux-currentGuideCard h3{
  margin-bottom:4px;
}

.PageLanding .ux-currentGuideCard p{
  margin-bottom:12px;
}

.PageLanding .ux-cityList{
  margin-top:10px;
}

.ux-demoAudioList{
  gap:8px;
}

.ux-demoAudioList button{
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  padding:0 12px;
  border:1px solid var(--nx-line);
  border-radius:14px;
  background:rgba(255,255,255,.06);
  color:var(--nx-ink);
  text-align:left;
  font-weight:850;
}

.ux-demoAudioList b{
  color:var(--nx-muted);
  font-size:11px;
  text-transform:uppercase;
}

.PageLanding .ux-liveMiniPlayer{
  position:relative;
  left:auto;
  right:auto;
  bottom:auto;
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:12px;
  padding:14px;
  border:1px solid var(--nx-line);
  border-radius:18px;
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
}

.PageLanding .ux-liveMiniPlayer .ux-playerLine{
  grid-column:1 / -1;
}

.PageLanding .ux-modeMap,
.PageLanding .ux-walkingMap{
  min-height:460px;
}

.PageLanding .ux-drivingProductGrid{
  grid-template-columns:minmax(0,1.12fr) minmax(340px,.58fr);
}

.ux-nextCityBubble,
.ux-mapControlButton{
  position:absolute;
  z-index:2;
  border:1px solid var(--nx-line);
  border-radius:999px;
  background:var(--nx-card);
  color:var(--nx-ink);
  box-shadow:var(--nx-shadow);
}

.ux-nextCityBubble{
  right:18px;
  top:76px;
  padding:8px 12px;
  font-size:12px;
  font-weight:900;
}

.ux-drivingControlsLarge{
  display:flex;
  align-items:center;
  gap:10px;
  margin:12px 0;
}

.ux-roundControl{
  width:44px;
  height:44px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  background:rgba(255,255,255,.06);
  color:var(--nx-ink);
  font-size:24px;
  font-weight:900;
}

.ux-benefitsCard{
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.ux-benefitList{
  display:grid;
  gap:10px;
  padding:0;
  margin:12px 0 18px;
  list-style:none;
}

.ux-benefitList li{
  padding:10px 12px;
  border:1px solid var(--nx-line);
  border-radius:14px;
  background:rgba(255,255,255,.06);
  color:var(--nx-muted);
  font-size:13px;
  font-weight:850;
}

.PageLanding .ux-walkingProductGrid{
  grid-template-columns:360px minmax(0,1fr);
}

.PageLanding .ux-walkingSidebar{
  display:flex;
  flex-direction:column;
}

.PageLanding .ux-placeList{
  flex:1;
}

.PageLanding .ux-placeList a{
  grid-template-columns:60px minmax(0,1fr) 38px;
  min-height:72px;
}

.PageLanding .ux-placeList em{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:1px solid var(--nx-line);
  border-radius:999px;
  color:var(--nx-ink);
  font-style:normal;
  font-size:12px;
}

.ux-mapControlButton{
  right:16px;
  top:16px;
  min-height:40px;
  padding:0 14px;
  font-weight:900;
}

.PageLanding .ux-activePlacePopup{
  left:16px;
  right:16px;
}

.ux-languageGrid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:12px;
}

.ux-languageCard{
  min-height:106px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:16px;
  border:1px solid var(--nx-line);
  border-radius:20px;
  background:var(--nx-card);
  color:var(--nx-ink);
  text-decoration:none;
  box-shadow:var(--nx-shadow);
}

.ux-languageCard span,
.ux-languageCard small{
  color:var(--nx-muted);
  font-size:12px;
  font-weight:850;
}

.PageLanding .ux-featuredGrid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.ux-cardImageWrap{
  position:relative;
  aspect-ratio:16/9;
  overflow:hidden;
  background:var(--nx-card-2);
}

.ux-cardImageWrap img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

.ux-cardFallback{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  padding:18px;
  text-align:center;
}

.ux-cardFallback span{
  color:var(--nx-ink);
  font-size:20px;
  font-weight:900;
}

.ux-cardImageWrap img + .ux-cardFallback{
  z-index:0;
}

.ux-guideCardBody p{
  display:-webkit-box;
  min-height:48px;
  overflow:hidden;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}

.PageLanding .ux-guideCardBody{
  padding:18px;
}

.PageLanding .ux-guideCard h3{
  font-size:23px;
}

.ux-discoveryPanel{
  grid-template-columns:minmax(0,.95fr) minmax(280px,.7fr);
  align-items:start;
  padding:22px;
}

.ux-discoveryPanel .ux-sectionHead{
  grid-column:1;
  margin-bottom:0;
}

.ux-discoveryPanel .ux-searchBox{
  grid-column:1;
  margin:0;
}

.ux-discoveryPanel .ux-filterChips{
  grid-column:1;
  margin:0;
}

.ux-featureResults{
  grid-row:1 / span 4;
  grid-column:2;
  display:grid;
  gap:10px;
}

.ux-featureResults a{
  display:grid;
  gap:3px;
  padding:13px;
  border:1px solid var(--nx-line);
  border-radius:16px;
  background:rgba(255,255,255,.06);
  color:var(--nx-ink);
  text-decoration:none;
}

.ux-featureResults span,
.ux-featureResults small{
  color:var(--nx-muted);
  font-size:12px;
  font-weight:850;
}

.ux-panelCta{
  grid-column:1;
  width:max-content;
}

.ux-countryGroupsCompact{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
}

.ux-countryGroupsCompact .ux-countryGroup{
  padding:15px;
}

.ux-countryGroupsCompact .ux-countryPills{
  gap:8px;
}

.ux-countryGroupsCompact .ct-countryPill{
  min-height:38px;
}

.ux-whyGrid{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);
  gap:18px;
  align-items:stretch;
}

.ux-whyCopy{
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.ux-benefitGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.ux-benefitGrid .ux-infoCard{
  min-height:0;
  padding:18px;
}

.ux-seoTextBlock{
  max-width:none;
}

.ux-seoTextBlock h2{
  margin:10px 0 12px;
  font-size:clamp(28px,3vw,40px);
}

.ux-finalCta{
  padding-top:24px !important;
}

.ux-finalCtaCard{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:clamp(22px,3vw,34px);
  border:1px solid var(--nx-line);
  border-radius:26px;
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
}

.ux-finalCtaCard h2{
  margin:10px 0 8px;
  font-size:clamp(28px,3vw,40px);
}

.ux-finalCtaCard p{
  margin:0;
  color:var(--nx-muted);
}

.PageLanding .ct-footer{
  margin-top:0;
}

@media (max-width:1199.98px){
  .PageLanding .ux-productHeroGrid,
  .PageLanding .ux-liveProductGrid,
  .PageLanding .ux-drivingProductGrid,
  .PageLanding .ux-walkingProductGrid,
  .ux-whyGrid{
    grid-template-columns:1fr;
  }

  .ux-countryGroupsCompact{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .ux-languageGrid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media (max-width:991.98px){
  .PageLanding .ux-featuredGrid,
  .ux-benefitGrid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .ux-discoveryPanel{
    grid-template-columns:1fr;
  }

  .ux-discoveryPanel .ux-sectionHead,
  .ux-discoveryPanel .ux-searchBox,
  .ux-discoveryPanel .ux-filterChips,
  .ux-featureResults,
  .ux-panelCta{
    grid-column:auto;
    grid-row:auto;
  }
}

@media (max-width:720px){
  .PageLanding .main{
    padding-bottom:150px;
  }

  .PageLanding .ux-section{
    padding:30px 0;
  }

  .PageLanding .ux-homeHero{
    padding-top:86px;
  }

  .PageLanding .ux-productHeroCopy h1{
    font-size:35px;
  }

  .PageLanding .ux-heroPreviewMap{
    min-height:330px;
  }

  .ux-heroPlaylist{
    left:14px;
    right:14px;
    top:14px;
    width:auto;
    grid-template-columns:1fr 1fr 1fr;
  }

  .ux-heroPlaylist span{
    grid-column:1 / -1;
  }

  .PageLanding .ux-liveMapCard,
  .PageLanding .ux-modeMap,
  .PageLanding .ux-walkingMap{
    min-height:360px;
  }

  .PageLanding .ux-liveProductPanel{
    display:flex;
  }

  .ux-languageGrid,
  .PageLanding .ux-featuredGrid,
  .ux-benefitGrid,
  .ux-countryGroupsCompact{
    grid-template-columns:1fr;
  }

  .ux-finalCtaCard{
    align-items:stretch;
    flex-direction:column;
  }

  .ux-finalCtaCard .ux-actions{
    width:100%;
  }
}

/* Home travel-app pass: less dashboard, more image-led product storytelling. */
.PageLanding header .ct-searchWrap{
  display:none;
}

.PageLanding .ux-travelHero{
  padding-top:clamp(88px,10vw,116px);
  padding-bottom:clamp(28px,4vw,44px);
}

.PageLanding .ux-productHeroCopy{
  padding:clamp(8px,2vw,18px) 0;
  border:0;
  background:transparent;
  box-shadow:none;
}

.PageLanding .ux-productHeroCopy h1{
  max-width:13.5ch;
}

.ux-travelPreview{
  position:relative;
  min-height:500px;
  overflow:hidden;
  border:1px solid var(--nx-line);
  border-radius:30px;
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
}

.ux-travelPreview > img,
.ux-useCasePreview > img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

.ux-travelPreview::after,
.ux-useCasePreview::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.52)),
    linear-gradient(90deg, rgba(0,0,0,.42), rgba(0,0,0,.06));
  pointer-events:none;
}

.ux-previewRoute{
  position:absolute;
  z-index:2;
  left:13%;
  right:19%;
  top:27%;
  bottom:24%;
  border-left:3px solid var(--nx-cyan);
  border-bottom:3px solid var(--nx-cyan);
  border-radius:0 0 0 90px;
  opacity:.95;
}

.ux-travelPin{
  position:absolute;
  z-index:3;
  min-height:34px;
  display:inline-flex;
  align-items:center;
  padding:0 11px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  background:var(--nx-card);
  color:var(--nx-ink);
  box-shadow:var(--nx-shadow);
  font-size:12px;
  font-weight:900;
}

.ux-travelPreview .ux-travelPinUser{
  left:9%;
  top:22%;
}

.ux-travelPreview .ux-travelPinCity{
  right:12%;
  top:43%;
}

.ux-travelNowPlaying,
.ux-travelPlayer{
  position:absolute;
  z-index:4;
  border:1px solid var(--nx-line);
  border-radius:20px;
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
}

.ux-travelNowPlaying{
  left:18px;
  bottom:18px;
  width:min(300px,calc(100% - 36px));
  display:grid;
  gap:8px;
  padding:15px;
}

.ux-travelNowPlaying small,
.ux-travelPlayer span{
  color:var(--nx-muted);
  font-size:12px;
  font-weight:850;
}

.ux-travelPlayer{
  right:18px;
  bottom:18px;
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:12px;
  align-items:center;
  min-width:230px;
  padding:13px;
}


.PageLanding .ux-travelBenefits{
  gap:12px;
}

.PageLanding .ux-travelBenefits .ux-infoCard{
  min-height:0;
  padding:16px 18px;
  box-shadow:none;
}

.PageLanding .ux-travelBenefits .ux-infoCard h3{
  margin:0 0 5px;
}

.PageLanding .ux-travelBenefits .ux-infoCard p{
  margin:0;
  line-height:1.45;
}

.ux-stepFlow{
  position:relative;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}

.ux-stepFlow::before{
  content:"";
  position:absolute;
  left:8%;
  right:8%;
  top:30px;
  height:1px;
  background:var(--nx-line);
}

.ux-stepFlow article{
  position:relative;
  z-index:1;
  display:grid;
  gap:8px;
  padding:14px;
  border:1px solid var(--nx-line);
  border-radius:20px;
  background:var(--nx-card);
  justify-items:center;
  text-align:center;
}

.ux-stepFlow span,
.ux-stepFlow i{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid var(--nx-line);
  border-radius:999px;
  background:var(--nx-card-2);
  font-style:normal;
  font-weight:900;
}

.ux-stepFlow .ux-stepIcon{
  overflow:visible;
  background:transparent;
  border:0;
  margin-inline:auto;
}

.ux-stepFlow .ux-stepIcon img{
  width:52px;
  height:52px;
  display:block;
  object-fit:contain;
  filter:drop-shadow(0 8px 18px rgba(49,211,255,.24));
}

.ux-stepFlow h3{
  margin:6px 0 0;
  font-size:19px;
}

.ux-stepFlow p{
  margin:0;
  color:var(--nx-muted);
  font-size:14px;
  line-height:1.45;
}

.ux-mainDemo{
  padding-top:clamp(36px,5vw,60px);
}

.ux-demoShell{
  display:grid;
  grid-template-columns:minmax(0,1.38fr) minmax(390px,.95fr);
  gap:18px;
  align-items:stretch;
  min-height:560px;
  max-height:640px;
}

.ux-demoMapCard{
  height:100%;
  min-height:560px;
  max-height:640px;
  isolation:isolate;
  background:var(--nx-card-2);
}

.ux-demoMapCard::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:440;
  pointer-events:none;
  border-radius:inherit;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), inset 0 -80px 130px rgba(0,0,0,.34);
}

.ux-mapControls{
  position:absolute;
  z-index:470;
  right:14px;
  top:64px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.ux-mapControls button,
.ux-mapControls a{
  min-height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 12px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  background:var(--nx-card);
  color:var(--nx-ink);
  box-shadow:var(--nx-shadow);
  font-size:12px;
  font-weight:900;
  text-decoration:none;
}

.PageLanding #audioProgressPanel{
  display:none !important;
}

.PageLanding .ux-liveGuideControls{
  display:grid;
  gap:10px;
  margin-top:14px;
}

.PageLanding .ux-cityList{
  max-height:clamp(132px,21vh,190px);
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:2px 8px 2px 0;
  scrollbar-gutter:stable;
  gap:0;
  margin-top:10px;
  scrollbar-width:thin;
  scrollbar-color:var(--nx-violet) rgba(226,235,255,.86);
}

.PageLanding .ux-cityList::-webkit-scrollbar,
.PageLanding .ux-liveGuideControls #storySections::-webkit-scrollbar,
.PageLanding .ux-guidePanel::-webkit-scrollbar{
  width:7px;
}

.PageLanding .ux-cityList::-webkit-scrollbar-track,
.PageLanding .ux-liveGuideControls #storySections::-webkit-scrollbar-track,
.PageLanding .ux-guidePanel::-webkit-scrollbar-track{
  background:rgba(226,235,255,.9);
  border-radius:999px;
}

.PageLanding .ux-cityList::-webkit-scrollbar-thumb,
.PageLanding .ux-liveGuideControls #storySections::-webkit-scrollbar-thumb,
.PageLanding .ux-guidePanel::-webkit-scrollbar-thumb{
  min-height:44px;
  border-radius:999px;
  background:linear-gradient(180deg, var(--nx-cyan), var(--nx-violet));
}

.PageLanding .ux-cityList::-webkit-scrollbar-thumb:hover,
.PageLanding .ux-liveGuideControls #storySections::-webkit-scrollbar-thumb:hover,
.PageLanding .ux-guidePanel::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg, var(--nx-cyan), var(--nx-violet));
}

.PageLanding .ux-cityList > li{
  display:block;
  padding:6px 2px;
  border:0;
  border-bottom:1px solid rgba(140,164,225,.15);
  border-radius:0;
  background:transparent;
  color:var(--nx-muted);
}

.PageLanding .ux-cityList .ag-cityRow{
  display:block;
  padding:0;
  border:0;
  background:transparent;
}

.PageLanding .ux-cityList .ag-cityRow + .ag-cityRow{
  margin-top:0;
}

.PageLanding .ag-cityListBtn{
  width:100%;
  min-height:34px;
  padding:6px 2px;
  border:0;
  border-bottom:1px solid rgba(140,164,225,.15);
  border-radius:0;
  background:transparent;
  color:var(--nx-ink);
  text-align:left;
  cursor:pointer;
  appearance:none;
}

.PageLanding .ag-cityListBtn:hover,
.PageLanding .ag-cityListBtn:focus-visible,
.PageLanding .ag-cityListBtn.is-selected{
  outline:none;
  background:linear-gradient(90deg, rgba(41,214,255,.12), transparent 82%);
  border-bottom-color:rgba(41,214,255,.28);
}

.PageLanding .ag-cityListMain{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
}

.PageLanding .ag-cityListMain .Flag{
  width:22px;
  height:15px;
  border-radius:3px;
  object-fit:cover;
}

.FlagFallback{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:24px;
  height:18px;
  font-size:18px;
  line-height:1;
  overflow:hidden;
}

.FlagFallback[hidden]{
  display:none !important;
}

.PageLanding .ag-cityListText{
  min-width:0;
  display:flex;
  align-items:baseline;
  gap:7px;
}

.PageLanding .ag-cityListText b{
  min-width:0;
  max-width:100%;
  color:var(--nx-ink);
  font-size:14px;
  font-weight:900;
  line-height:1.15;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.PageLanding .ag-cityListText span,
.PageLanding .ag-cityListMain small{
  color:var(--nx-muted);
  font-size:12px;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
}

.PageLanding .ux-cityList .ag-cityInline{
  margin-top:8px;
}

.PageLanding .ux-liveGuideControls #storySections{
  display:grid;
  gap:10px;
  max-height:clamp(142px,23vh,210px);
  overflow:auto;
  padding-right:4px;
  scrollbar-width:thin;
  scrollbar-color:var(--nx-violet) rgba(226,235,255,.86);
}

.ux-topicDeckHead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.ux-topicDeckHead h3{
  margin:8px 0 0;
  font-size:clamp(20px,2vw,24px);
}

.ux-topicDeckMeta{
  display:grid;
  gap:3px;
  justify-items:end;
  text-align:right;
}

.ux-topicDeckMeta b{
  color:var(--nx-ink);
  font-size:13px;
}

.ux-topicDeckMeta span{
  color:var(--nx-muted);
  font-size:11px;
  font-weight:850;
}

.ux-topicConstellation{
  position:relative;
  min-height:230px;
  overflow:hidden;
  border:1px solid var(--nx-line);
  border-radius:20px;
  background:
    radial-gradient(circle at 50% 46%, rgba(255,255,255,.08), transparent 34%),
    radial-gradient(circle at 18% 18%, rgba(41,214,255,.12), transparent 28%),
    var(--nx-card-2);
}

.ux-topicConstellation::before,
.ux-topicConstellation::after{
  content:"";
  position:absolute;
  inset:38px 42px 48px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  opacity:.78;
}

.ux-topicConstellation::after{
  inset:68px 76px 78px;
  opacity:.45;
}

.ux-topicCenter,
.ux-topicNode,
.ux-topicMore{
  position:absolute;
  z-index:2;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  color:var(--nx-ink);
}

.ux-topicCenter{
  left:50%;
  top:50%;
  width:104px;
  height:104px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  transform:translate(-50%,-50%);
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
  font-size:17px;
  font-weight:900;
}

.ux-topicNode{
  min-height:36px;
  gap:7px;
  padding:0 10px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}

.ux-topicNode span{
  width:20px;
  height:20px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:var(--nx-muted);
  font-size:10px;
}

.ux-topicNode::after{
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:var(--nx-muted);
}

.ux-topicReady::after{background:var(--nx-cyan)}
.ux-topicPreparing::after{background:var(--nx-pink)}
.ux-topicNext::after{background:var(--nx-violet)}

.ux-topicHistory{left:8%;top:18%}
.ux-topicOldTown{right:7%;top:17%}
.ux-topicLandmarks{left:4%;top:48%}
.ux-topicCulture{right:5%;top:48%}
.ux-topicFood{left:13%;bottom:15%}
.ux-topicArchitecture{right:11%;bottom:15%}
.ux-topicMuseums{left:50%;top:6%;transform:translateX(-50%)}

.ux-topicMore{
  left:50%;
  bottom:10px;
  min-height:30px;
  padding:0 11px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  transform:translateX(-50%);
  background:rgba(255,255,255,.06);
  color:var(--nx-muted);
  font-size:12px;
  font-weight:900;
}

.ux-fullGuideLink{
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--nx-line);
  border-radius:999px;
  background:rgba(255,255,255,.06);
  color:var(--nx-ink);
  text-decoration:none;
  font-size:13px;
  font-weight:900;
}

.ux-demoMapCard .ag-map{
  height:100%;
  min-height:0;
}

.ux-guidePanel{
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  gap:10px;
  height:100%;
  min-height:560px;
  max-height:640px;
  overflow:hidden;
  padding:16px;
  border:1px solid var(--nx-line);
  border-radius:24px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.035), transparent 42%),
    var(--nx-card);
  box-shadow:var(--nx-shadow);
}

.ux-guidePanelTop h3{
  margin:3px 0 3px;
  font-size:clamp(30px,3vw,42px);
  line-height:1;
}

.ux-guidePanelTop > span,
.ux-guidePanelTop p{
  color:var(--nx-muted);
  font-size:12px;
  font-weight:850;
}

.ux-guidePanelTop p{
  margin-bottom:8px;
}

.ux-guidePanelTop .btn{
  min-height:38px;
  margin-top:8px;
  width:100%;
}

.ux-guidePlaylist{
  min-height:0;
  overflow:hidden;
}

.PageLanding .ux-guidePlaylist{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:8px;
}

.PageLanding .ux-topicDeckHead{
  margin-bottom:6px;
}

.PageLanding .ux-topicDeckHead h3{
  margin-top:4px;
  font-size:clamp(18px,1.7vw,22px);
}

.PageLanding .ux-topicDeckMeta{
  align-self:center;
}

.PageLanding .ux-topicConstellation{
  min-height:158px;
}

.ux-guidePlaylist .ux-storyHead{
  margin:0 0 10px;
}

.ux-hiddenControl{
  display:none !important;
}

.ux-demoPlayer{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:12px;
  align-items:center;
  padding:10px;
  border:1px solid var(--nx-line);
  border-radius:18px;
  background:var(--nx-card-2);
}

.ux-demoPlayer .ux-playerLine{
  grid-column:1 / -1;
}

.ux-useCaseGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.ux-useCaseCard{
  overflow:hidden;
  border:1px solid var(--nx-line);
  border-radius:26px;
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
}

.ux-useCasePreview{
  position:relative;
  min-height:260px;
  overflow:hidden;
}

.ux-useCasePreview .ux-travelPinUser{
  left:8%;
  top:20%;
}

.ux-useCasePreview .ux-travelPinCity{
  right:9%;
  top:42%;
}

.ux-useCasePlayer,
.ux-walkPlaceCard{
  position:absolute;
  z-index:4;
  left:16px;
  right:16px;
  bottom:16px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px;
  border:1px solid var(--nx-line);
  border-radius:18px;
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
}

.ux-useCasePlayer span,
.ux-walkPlaceCard small{
  color:var(--nx-muted);
  font-size:12px;
  font-weight:850;
}

.ux-walkPlaceCard{
  display:grid;
  gap:3px;
}

.ux-useCaseBody{
  padding:20px;
}

.ux-useCaseBody h3{
  margin:0 0 12px;
  font-size:26px;
}

.ux-useCaseBody ul{
  display:grid;
  gap:8px;
  padding:0;
  margin:0 0 18px;
  list-style:none;
}

.ux-useCaseBody li{
  color:var(--nx-muted);
  font-size:14px;
  font-weight:850;
}

.ux-useCaseBody li::before{
  content:"";
  display:inline-block;
  width:8px;
  height:8px;
  margin-right:9px;
  border-radius:999px;
  background:var(--nx-cyan);
}

.ux-languageStrip .ux-languageCard{
  min-height:92px;
  box-shadow:none;
}

.ux-travelSearch{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);
  gap:18px;
  align-items:center;
  padding:24px;
  border:1px solid var(--nx-line);
  border-radius:26px;
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
}

.ux-travelSearch .ux-searchBox,
.ux-travelSearch .ux-filterChips,
.ux-travelSearch .ux-panelCta{
  grid-column:2;
}

.ux-travelSearch .ux-searchBox{
  margin:0;
}

.ux-popularSearches{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  padding-top:2px;
}

.ux-popularSearches span{
  color:var(--nx-muted);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}

.ux-popularSearches a{
  min-height:34px;
  display:inline-flex;
  align-items:center;
  padding:0 12px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  background:rgba(255,255,255,.06);
  color:var(--nx-ink);
  text-decoration:none;
  font-size:13px;
  font-weight:850;
}

.ux-europeShell{
  display:grid;
  grid-template-columns:minmax(260px,.5fr) minmax(0,1fr);
  gap:18px;
  align-items:start;
}

.ux-europeIntro{
  position:sticky;
  top:100px;
  padding:22px;
  border:1px solid var(--nx-line);
  border-radius:24px;
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
}

.ux-europeIntro h2{
  margin:10px 0 10px;
  font-size:clamp(28px,3vw,40px);
}

.ux-europeIntro p{
  color:var(--nx-muted);
}

.ux-whySection .ux-textBlock,
.ux-seoTextBlock{
  box-shadow:none;
}

.ux-whySection .ux-infoCard{
  min-height:96px;
}

.ux-playerHomeCta{
  display:inline-flex;
  width:max-content;
  min-height:28px;
  align-items:center;
  margin-top:4px;
  padding:0 10px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  color:var(--nx-ink);
  text-decoration:none;
  font-size:12px;
  font-weight:900;
}

@media (max-width:1199.98px){
  .ux-demoShell,
  .ux-travelSearch,
  .ux-europeShell{
    grid-template-columns:1fr;
  }

  .ux-demoShell{
    min-height:0;
    max-height:none;
  }

  .ux-demoMapCard{
    height:420px;
    min-height:420px;
    max-height:none;
  }

  .ux-guidePanel{
    height:auto;
    min-height:0;
    max-height:none;
    overflow:visible;
  }

  .ux-europeIntro{
    position:relative;
    top:auto;
  }
}

@media (max-width:991.98px){
  .ux-stepFlow,
  .ux-useCaseGrid{
    grid-template-columns:1fr 1fr;
  }

  .ux-stepFlow::before{
    display:none;
  }
}

@media (max-width:720px){
  .ux-travelPreview{
    min-height:360px;
  }

  .ux-travelPlayer{
    left:12px;
    right:12px;
    bottom:12px;
    min-width:0;
  }

  .ux-travelNowPlaying{
    left:12px;
    right:12px;
    bottom:88px;
    width:auto;
  }

  .ux-travelPreview .ux-travelPinUser{
    top:35%;
  }

  .ux-travelPreview .ux-travelPinCity{
    top:48%;
  }

  .ux-stepFlow,
  .ux-useCaseGrid{
    grid-template-columns:1fr;
  }

  .ux-demoMapCard{
    height:360px;
    min-height:360px;
  }

  .ux-guidePanel{
    padding:16px;
  }

  .ux-topicConstellation{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    min-height:0;
    padding:12px;
  }

  .ux-topicConstellation::before,
  .ux-topicConstellation::after{
    display:none;
  }

  .ux-topicCenter,
  .ux-topicNode,
  .ux-topicMore{
    position:static;
    transform:none;
    width:auto;
    height:auto;
  }

  .ux-topicCenter,
  .ux-topicMore{
    grid-column:1 / -1;
    min-height:40px;
  }

  .ux-topicNode{
    justify-content:space-between;
  }

  .ux-topicMuseums{
    display:none;
  }

  .ux-useCasePreview{
    min-height:230px;
  }

  .ux-travelSearch{
    padding:18px;
  }

  .ux-travelSearch .ux-searchBox,
  .ux-travelSearch .ux-filterChips,
  .ux-travelSearch .ux-panelCta{
    grid-column:auto;
  }
}

/* Audio topic state and map/player UX fixes */
.ag-secTop{
  position:relative;
}

.ag-secTop.isSelected,
.ag-secTop.isPlaying{
  border-color:rgba(140,164,225,.42) !important;
  background:
    linear-gradient(135deg, rgba(56,189,248,.12), rgba(167,139,250,.08)),
    var(--nx-card-2) !important;
}

.ag-secTop.isPlaying{
  box-shadow:0 16px 38px rgba(0,0,0,.22), inset 0 0 0 1px rgba(255,255,255,.08);
}

.ag-nowPill,
.ag-wave{
  display:none;
}

.ag-secTop.isPlaying .ag-nowPill{
  display:inline-flex;
  min-height:23px;
  align-items:center;
  padding:0 8px;
  border:1px solid rgba(56,189,248,.34);
  border-radius:999px;
  background:rgba(56,189,248,.12);
  color:var(--nx-ink);
  font-size:11px;
  font-weight:900;
}

.ag-secTop.isPlaying .ag-wave{
  display:inline-flex;
  align-items:end;
  gap:2px;
  height:18px;
}

.ag-wave i{
  width:3px;
  height:7px;
  border-radius:99px;
  background:var(--nx-cyan);
  animation:agWave .82s ease-in-out infinite;
}

.ag-wave i:nth-child(2){animation-delay:.12s}
.ag-wave i:nth-child(3){animation-delay:.24s}
.ag-wave i:nth-child(4){animation-delay:.36s}

@keyframes agWave{
  0%,100%{height:6px;opacity:.62}
  50%{height:16px;opacity:1}
}

.ag-secMiniProgress{
  width:100%;
  height:4px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.08);
}

.ag-secMiniProgress i{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg, var(--nx-cyan), var(--nx-violet));
  transition:width .18s linear;
}

.ag-placeImageLink,
.ux-placeGuideCard h3 a{
  color:inherit;
  text-decoration:none;
}

.ag-placeImageLink{
  display:block;
}

.ux-placeGuideCard.ag-placeCard{
  display:flex;
  flex-direction:column;
}

.ux-placeGuideCard.ag-placeCard.is-active{
  border-color:rgba(56,189,248,.44);
  box-shadow:0 18px 46px rgba(0,0,0,.2);
}

.ag-placeCardActions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:auto;
}

.ag-mapTopActions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}

.ag-mapAction{
  min-height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:0 12px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  background:rgba(255,255,255,.07);
  color:var(--nx-ink);
  font-size:12px;
  font-weight:900;
  line-height:1;
  text-decoration:none;
  cursor:pointer;
  transition:transform .16s ease, border-color .16s ease, background .16s ease;
}

.ag-mapAction:hover,
.ag-mapAction:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(56,189,248,.36);
  background:rgba(255,255,255,.11);
  color:var(--nx-ink);
  outline:2px solid rgba(255,255,255,.28);
  outline-offset:2px;
}

.ag-mapActionPrimary{
  border-color:rgba(56,189,248,.36);
  background:linear-gradient(135deg, rgba(56,189,248,.2), rgba(167,139,250,.16));
}

.ag-mapPopup{
  min-width:220px;
  color:#111827;
}

.ag-mapPopupImg{
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
  border-radius:12px;
  margin-bottom:8px;
}

.ag-mapPopupTitle{
  font-size:15px;
  font-weight:900;
  line-height:1.2;
}

.ag-mapPopupMeta{
  margin-top:3px;
  color:#4b5563;
  font-size:12px;
  font-weight:750;
}

.ag-mapPopupActions{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:10px;
}

.leaflet-popup-content .ag-mapAction{
  min-height:32px;
  color:#111827;
  border-color:rgba(17,24,39,.16);
  background:#fff;
}

.leaflet-popup-content .ag-mapActionPrimary{
  background:#e0f2fe;
}

.ag-fullMapOverlay[hidden]{
  display:none !important;
}

.ag-fullMapOverlay{
  position:fixed;
  inset:0;
  z-index:5200;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:12px;
  padding:12px 12px 92px;
  background:
    radial-gradient(circle at 18% 12%, rgba(56,189,248,.14), transparent 32%),
    var(--nx-bg);
  color:var(--nx-ink);
}

body.ag-mapOverlayOpen{
  overflow:hidden;
}

body.ag-mapOverlayOpen .ag-player{
  display:none !important;
}

.ag-fullMapTopbar{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:10px;
  border:1px solid var(--nx-line);
  border-radius:20px;
  background:rgba(255,255,255,.06);
  box-shadow:var(--nx-shadow);
}

.ag-fullMapTopActions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}

.ag-fullMapTopbar h2{
  margin:0;
  font-size:clamp(20px,2vw,30px);
}

.ag-fullMapShell{
  min-height:0;
  display:grid;
  grid-template-columns:minmax(300px,360px) minmax(0,1fr);
  gap:12px;
}

.ag-mapSidebar{
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:14px;
  border:1px solid var(--nx-line);
  border-radius:24px;
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
}

.ag-mapSheetHandle{
  display:none;
  width:100%;
  min-height:22px;
  padding:0;
  border:0;
  background:transparent;
  cursor:grab;
}

.ag-mapSheetHandle span{
  display:block;
  width:46px;
  height:4px;
  margin:0 auto;
  border-radius:999px;
  background:rgba(255,255,255,.26);
}

.ag-mapMiniPlayer{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px 10px;
  align-items:center;
  padding:10px;
  border:1px solid var(--nx-line);
  border-radius:18px;
  background:rgba(255,255,255,.06);
}

.ag-mapMiniPlayer span,
.ag-mapMiniPlayer small{
  display:block;
  color:var(--nx-muted);
  font-size:11px;
  font-weight:850;
}

.ag-mapMiniPlayer strong{
  display:block;
  overflow:hidden;
  color:var(--nx-ink);
  font-size:13px;
  font-weight:950;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.ag-mapMiniProgress{
  grid-column:1 / -1;
  height:4px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.08);
}

.ag-mapMiniProgress i{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg, var(--nx-cyan), var(--nx-violet));
}

.ag-mapSidebarHead{
  display:grid;
  gap:7px;
}

.ag-mapSidebarHead label{
  color:var(--nx-muted);
  font-size:12px;
  font-weight:900;
}

.ag-mapSidebarHead input{
  min-height:44px;
  width:100%;
  padding:0 14px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  background:rgba(255,255,255,.07);
  color:var(--nx-ink);
}

.ag-mapFilters{
  display:flex;
  gap:7px;
  overflow:auto;
  padding-bottom:2px;
}

.ag-mapFilters button{
  flex:0 0 auto;
  min-height:34px;
  padding:0 11px;
  border:1px solid var(--nx-line);
  border-radius:999px;
  background:rgba(255,255,255,.06);
  color:var(--nx-muted);
  font-size:12px;
  font-weight:900;
}

.ag-mapFilters button.is-active{
  color:var(--nx-ink);
  border-color:rgba(56,189,248,.36);
  background:rgba(56,189,248,.12);
}

.ag-mapPlaceList{
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:0;
  margin:0;
  overflow:auto;
  list-style:none;
}

.ag-mapPlaceList li{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
  padding:8px;
  border:1px solid var(--nx-line);
  border-radius:16px;
  background:rgba(255,255,255,.055);
}

.ag-mapPlaceList li.is-active{
  border-color:rgba(56,189,248,.42);
  background:rgba(56,189,248,.11);
}

.ag-mapPlaceSelect{
  min-width:0;
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  gap:10px;
  align-items:center;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  text-align:left;
  cursor:pointer;
}

.ag-mapPlaceSelect img{
  width:54px;
  aspect-ratio:1;
  object-fit:cover;
  border-radius:12px;
}

.ag-mapPlaceSelect b,
.ag-mapPlaceSelect small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.ag-mapPlaceSelect small{
  margin-top:2px;
  color:var(--nx-muted);
  font-size:12px;
  font-weight:750;
}

.ag-mapPlacePlay{
  min-height:34px;
  padding:0 10px;
  border:1px solid rgba(56,189,248,.32);
  border-radius:999px;
  background:rgba(56,189,248,.12);
  color:var(--nx-ink);
  font-size:12px;
  font-weight:900;
}

.ag-fullMapStage{
  position:relative;
  min-height:0;
  overflow:hidden;
  border:1px solid var(--nx-line);
  border-radius:24px;
  background:var(--nx-card);
  box-shadow:var(--nx-shadow);
}

.ag-fullMapCanvas{
  width:100%;
  height:100%;
  min-height:520px;
}

@media (min-width:768px){
  .ag-fullMapShell{
    grid-template-columns:minmax(280px,320px) minmax(0,1fr);
  }

  .ag-mapSidebar{
    gap:8px;
    padding:10px;
    border-radius:22px;
  }

  .ag-mapMiniPlayer{
    padding:8px 10px;
    border-radius:16px;
  }

  .ag-mapSidebarHead{
    gap:5px;
  }

  .ag-mapSidebarHead input{
    min-height:38px;
    padding:0 12px;
  }

  .ag-mapFilters{
    gap:5px;
  }

  .ag-mapFilters button{
    min-height:30px;
    padding:0 9px;
    font-size:11px;
  }

  .ag-mapPlaceList{
    gap:5px;
    scrollbar-width:thin;
    scrollbar-color:var(--nx-violet) rgba(226,235,255,.86);
  }

  .ag-mapPlaceList::-webkit-scrollbar{
    width:7px;
  }

  .ag-mapPlaceList::-webkit-scrollbar-track{
    background:rgba(226,235,255,.88);
    border-radius:999px;
  }

  .ag-mapPlaceList::-webkit-scrollbar-thumb{
    border-radius:999px;
    background:linear-gradient(180deg, var(--nx-cyan), var(--nx-violet));
  }

  .ag-mapPlaceList li{
    grid-template-columns:minmax(0,1fr) auto auto;
    gap:6px;
    padding:6px;
    border-radius:14px;
  }

  .ag-mapPlaceSelect{
    grid-template-columns:42px minmax(0,1fr);
    gap:8px;
  }

  .ag-mapPlaceSelect img{
    width:42px;
    border-radius:10px;
  }

  .ag-mapPlaceSelect b{
    font-size:13px;
    line-height:1.15;
  }

  .ag-mapPlaceSelect small{
    font-size:11px;
  }

  .ag-mapPlacePlay,
  .ag-mapPlaceRoute{
    min-height:30px;
    padding:0 8px;
    font-size:11px;
  }

  .ag-mapSelectedCard,
  .ag-mapEmptyCard{
    padding:8px;
    border-radius:18px;
  }

  .ag-mapSelectedCard{
    grid-template-columns:74px minmax(0,1fr);
    gap:10px;
  }

  .ag-mapSelectedCard img{
    width:74px;
    height:74px;
    border-radius:13px;
  }

  .ag-mapSelectedCard h3,
  .ag-mapEmptyCard h3{
    margin:4px 0 2px;
    font-size:16px;
    line-height:1.15;
  }

  .ag-routeInfo{
    margin-top:6px;
    padding:7px 9px;
  }

  .ag-mapPopupActions{
    gap:5px;
    margin-top:7px;
  }
}

.ag-mapSelectedCard,
.ag-mapEmptyCard{
  width:100%;
  padding:12px;
  border:1px solid var(--nx-line);
  border-radius:22px;
  background:rgba(12,18,42,.92);
  box-shadow:var(--nx-shadow);
  backdrop-filter:blur(14px);
}

.ag-mapSelectedCard{
  display:grid;
  grid-template-columns:116px minmax(0,1fr);
  gap:12px;
}

.ag-mapSelectedCard[hidden]{
  display:none;
}

.ag-mapSelectedCard img{
  width:116px;
  height:116px;
  object-fit:cover;
  border-radius:16px;
}

.ag-mapSelectedCard h3,
.ag-mapEmptyCard h3{
  margin:7px 0 4px;
  font-size:20px;
}

.ag-mapSelectedCard p,
.ag-mapEmptyCard p,
.ag-routeInfo{
  color:var(--nx-muted);
  font-size:13px;
  font-weight:750;
}

.ag-routeInfo{
  margin:8px 0 0;
  padding:8px 10px;
  border:1px solid var(--nx-line);
  border-radius:12px;
  background:rgba(255,255,255,.06);
}

@media (max-width:767.98px){
  .ag-fullMapOverlay{
    height:100dvh;
    grid-template-rows:56px minmax(0,1fr);
    gap:8px;
    padding:
      max(8px, env(safe-area-inset-top, 0px))
      8px
      max(8px, env(safe-area-inset-bottom, 0px));
  }

  .ag-fullMapTopbar{
    position:relative;
    z-index:480;
    grid-template-columns:auto minmax(0,1fr) auto;
    height:56px;
    gap:8px;
    padding:6px 8px;
    border-radius:18px;
    background:rgba(12,18,42,.84);
    backdrop-filter:blur(16px);
  }

  .ag-fullMapTopbar .ux-kicker{
    display:none;
  }

  .ag-fullMapTopbar h2{
    overflow:hidden;
    font-size:16px;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .ag-fullMapTopActions{
    gap:6px;
  }

  .ag-fullMapTopActions .ag-mapAction{
    min-height:38px;
    padding:0 10px;
  }

  .ag-fullMapShell{
    position:relative;
    display:block;
    min-height:0;
    overflow:hidden;
  }

  .ag-fullMapStage{
    position:absolute;
    inset:0;
    height:auto;
    min-height:0;
    border-radius:18px;
  }

  .ag-fullMapCanvas{
    height:100%;
    min-height:0;
  }

  .ag-mapSidebar{
    position:absolute;
    z-index:470;
    left:8px;
    right:8px;
    bottom:8px;
    height:min(52dvh, 430px);
    max-height:none;
    gap:8px;
    overflow:hidden;
    padding:8px 10px 10px;
    border-radius:22px 22px 18px 18px;
    background:rgba(12,18,42,.9);
    backdrop-filter:blur(18px);
    transition:height .2s ease, transform .2s ease;
  }

  .ag-mapSheetHandle{
    display:block;
    flex:0 0 auto;
  }

  .ag-fullMapOverlay[data-sheet-state="collapsed"] .ag-mapSidebar{
    height:122px;
  }

  .ag-fullMapOverlay[data-sheet-state="half"] .ag-mapSidebar{
    height:min(52dvh, 430px);
  }

  .ag-fullMapOverlay[data-sheet-state="expanded"] .ag-mapSidebar{
    height:min(82dvh, calc(100dvh - 84px));
  }

  .ag-fullMapOverlay[data-sheet-state="collapsed"] .ag-mapSidebarHead,
  .ag-fullMapOverlay[data-sheet-state="collapsed"] .ag-mapFilters,
  .ag-fullMapOverlay[data-sheet-state="collapsed"] .ag-mapPlaceList,
  .ag-fullMapOverlay[data-sheet-state="collapsed"] .ag-mapMiniPlayer{
    display:none;
  }

  .ag-mapSelectedCard,
  .ag-mapEmptyCard{
    position:static;
    width:100%;
    grid-template-columns:70px minmax(0,1fr);
    flex:0 0 auto;
    padding:8px;
    border-radius:18px;
  }

  .ag-mapSelectedCard img{
    width:70px;
    height:70px;
    border-radius:14px;
  }

  .ag-mapSelectedCard h3,
  .ag-mapEmptyCard h3{
    margin:4px 0 2px;
    font-size:16px;
  }

  .ag-mapSelectedCard p,
  .ag-mapEmptyCard p,
  .ag-routeInfo{
    font-size:11px;
  }

  .ag-mapSelectedCard .ux-badge{
    min-height:20px;
    padding:0 7px;
    font-size:10px;
  }

  .ag-mapSelectedCard .ag-mapPopupActions{
    display:flex;
    flex-wrap:nowrap;
    gap:6px;
    margin-top:6px;
  }

  .ag-mapSelectedCard .ag-mapAction{
    min-height:34px;
    min-width:0;
    padding:0 9px;
    font-size:11px;
    white-space:nowrap;
  }

  .ag-fullMapOverlay[data-sheet-state="collapsed"] .ag-routeInfo{
    display:none;
  }

  .ag-mapSidebarHead{
    flex:0 0 auto;
  }

  .ag-mapFilters{
    flex:0 0 auto;
  }

  .ag-mapPlaceList{
    flex:1 1 auto;
    min-height:0;
  }

  .ag-mapPopupActions,
  .ag-placeCardActions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .ag-mapPopupActions .ag-mapAction:last-child,
  .ag-placeCardActions .ag-mapAction:last-child{
    grid-column:1 / -1;
  }
}

/* Production UX pass: mobile density, readable cards and real marker affordances. */
html,
body{
  overflow-x:clip;
}

.ux-travelPin{
  text-decoration:none;
  cursor:pointer;
  transition:transform .16s ease, filter .16s ease, border-color .16s ease;
}

.ux-travelPin:hover,
.ux-travelPin:focus-visible{
  border-color:rgba(255,255,255,.38);
}

.ux-guideCard{
  border-color:rgba(255,255,255,.13);
}

.ux-guideCard:hover,
.ux-guideCard:focus-within{
  border-color:rgba(255,255,255,.24);
}

.ux-cardImageWrap::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(0,0,0,0) 48%, rgba(0,0,0,.24) 100%);
}

.ux-cardFallback{
  z-index:2;
}

.ux-guideCardBody h3,
.ux-useCaseBody h3,
.ux-currentGuideCard h3,
.ux-guidePanelTop h3{
  color:var(--nx-ink);
}

.ux-guideCardBody p,
.ux-useCaseBody li,
.ux-benefitList li,
.ux-currentGuideCard p,
.ux-storyHead p,
.ux-sectionHead p{
  color:var(--nx-muted);
  opacity:.96;
}

.ux-cardCta,
.ux-sectionHeadRow > a,
.ux-fullGuideLink,
.ux-playerHomeCta{
  color:var(--nx-ink);
}

.ux-demoShell{
  align-items:stretch;
}

.ux-demoMapCard,
.ux-guidePanel{
  min-height:560px;
  max-height:640px;
}

.ux-guidePanel{
  align-self:stretch;
}

.ux-guideCard > img:not(.Flag){
  aspect-ratio:16/9;
}

.ux-searchBox input::placeholder{
  color:var(--nx-muted);
  opacity:.82;
}

.ct-footer{
  position:relative;
  z-index:1;
}

@media (max-width:991.98px){
  .ct-navbar .navbar-collapse{
    max-height:calc(100dvh - 74px);
    overflow:auto;
  }

  .ux-guideSide,
  .city-companion-sidebar{
    position:relative;
    top:auto;
    max-height:none;
    overflow:visible;
  }

  .ux-storyCardLarge{
    scroll-margin-top:86px;
  }

  .ux-playerActions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .ux-playerActions .btn,
  .ag-mapAction,
  .ag-player-btn,
  .ux-filterChips button,
  .ux-languageCard,
  .ux-popularSearches a,
  .ct-countryPill{
    min-height:44px;
  }
}

@media (max-width:767.98px){
  body.BodyHasPlayer .main{
    padding-bottom:166px;
  }

  body.ag-mapOverlayOpen .main{
    padding-bottom:0;
  }

  .ux-breadcrumbs{
    padding-top:74px;
  }

  .ux-entityHero{
    padding-top:22px;
  }

  .ux-entityHeroGrid,
  .ux-placeHeroGrid,
  .ux-guideLayout,
  .ux-countryLayout,
  .ux-placeLayout,
  .ux-demoShell,
  .ux-europeShell,
  .ux-travelSearch{
    grid-template-columns:1fr !important;
  }

  .ux-entityHeroMedia,
  .ux-entityHeroMedia img{
    min-height:0;
  }

  .ux-entityHeroMedia img{
    aspect-ratio:16/10;
    max-height:320px;
    object-fit:cover;
  }

  .ux-detailNav .container{
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding-bottom:4px;
    scrollbar-width:none;
  }

  .ux-detailNav .container::-webkit-scrollbar{
    display:none;
  }

  .ux-detailNav a{
    flex:0 0 auto;
    min-height:42px;
  }

  .ux-storyHead{
    gap:12px;
  }

  .ux-storyHead .ag-voiceToggle{
    width:100%;
  }

  .ux-playerActions{
    gap:8px;
  }

  .ag-secTop{
    min-height:74px !important;
    gap:10px;
    padding:12px !important;
  }

  .ag-secContent{
    min-width:0 !important;
  }

  .ag-secTitle{
    font-size:15px;
    line-height:1.2;
  }

  .ag-secMeta{
    font-size:11px;
  }

  .ag-secBtns{
    flex:0 0 auto;
  }

  .ux-cardGrid,
  .ux-featuredGrid,
  .ux-cityGrid,
  .ux-placeGrid,
  .ux-relatedGrid,
  .ux-benefitGrid,
  .ux-languageGrid,
  .ux-countryGroupsCompact{
    grid-template-columns:1fr !important;
    gap:14px;
  }

  .ux-guideCardBody{
    padding:15px;
  }

  .ux-guideCardBody h3{
    font-size:22px !important;
    line-height:1.14;
  }

  .ux-guideCardBody p{
    min-height:0;
    -webkit-line-clamp:2;
  }

  .ux-cardMeta{
    gap:7px;
  }

  .ux-cardMeta span{
    max-width:100%;
    white-space:normal;
  }

  .ux-mapCard,
  .ux-mapCardLarge,
  .ux-demoMapCard,
  .ux-modeMap,
  .ux-walkingMap,
  .PageLanding .ux-liveMapCard{
    height:360px;
    min-height:360px !important;
    max-height:420px;
  }

  .ux-guidePanel{
    min-height:0;
    max-height:none;
    overflow:visible;
  }

  .ux-topicConstellation{
    max-height:none;
  }

  .ux-europeIntro{
    position:relative;
    top:auto;
  }

  .ux-travelSearch .ux-searchBox,
  .ux-travelSearch .ux-filterChips,
  .ux-travelSearch .ux-panelCta{
    grid-column:auto;
  }

  .ct-footerMain,
  .ct-footerColsWide,
  .ct-footerBottom{
    gap:18px;
  }

  .ct-footerColsWide{
    grid-template-columns:1fr 1fr !important;
  }

  .ct-footerIntro{
    max-width:none;
  }

  .ag-player{
    left:8px !important;
    right:8px !important;
    bottom:max(8px, env(safe-area-inset-bottom, 0px)) !important;
    border-radius:20px !important;
  }

  .ag-player-inner{
    padding:10px !important;
  }

  .ag-player-top{
    grid-template-columns:minmax(0,1fr) auto !important;
    gap:8px !important;
  }

  .ag-player-now{
    max-width:none !important;
  }

  .ag-player-title,
  .ag-player-meta{
    max-width:calc(100vw - 164px) !important;
  }

  .ag-player-ctrls{
    justify-content:flex-end !important;
  }

  .ag-player-volume,
  .ag-player-stats{
    display:none !important;
  }

  .ag-playerLoading{
    margin-top:8px;
  }
}

@media (max-width:430px){
  .PageLanding .ux-homeHero{
    padding-top:76px;
  }

  .PageLanding .ux-productHeroCopy h1,
  .ux-heroCopy h1,
  .ux-entityHeroCopy h1{
    font-size:32px !important;
  }

  .ux-trustBullets span,
  .ux-heroMeta span,
  .ux-cardMeta span,
  .ux-readyLine{
    min-height:28px;
    font-size:11px;
  }

  .ux-heroPlaylist{
    grid-template-columns:1fr 1fr;
  }

  .ux-topicNode{
    min-height:40px;
    padding-inline:9px;
    font-size:11px;
  }

  .ct-footerColsWide{
    grid-template-columns:1fr !important;
  }

  .ag-fullMapOverlay[data-sheet-state="collapsed"] .ag-mapSidebar{
    height:116px;
  }

  .ag-mapSelectedCard,
  .ag-mapEmptyCard{
    grid-template-columns:58px minmax(0,1fr);
  }

  .ag-mapSelectedCard img{
    width:58px;
    height:58px;
  }
}

/* Final production overrides: keep the dock and map UI mature after legacy rules. */
.ag-player{
  min-height:88px !important;
  border-color:rgba(140,164,225,.34) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.105), rgba(255,255,255,.055)),
    rgba(12,18,42,.86) !important;
  box-shadow:0 22px 70px rgba(0,0,0,.46), inset 0 1px 0 rgba(255,255,255,.11) !important;
  backdrop-filter:blur(22px);
}

.ag-player-title{
  color:var(--nx-ink) !important;
  font-size:15px !important;
  font-weight:950 !important;
}

.ag-player-titleLink,
.ag-nowMetaLink{
  color:inherit !important;
  text-decoration:none;
}

.ag-player-titleLink{
  display:inline-block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  vertical-align:bottom;
  white-space:nowrap;
}

.ag-player-titleLink:hover,
.ag-player-titleLink:focus-visible,
.ag-nowMetaLink:hover,
.ag-nowMetaLink:focus-visible{
  color:#7ddcff !important;
  text-decoration:underline;
  text-underline-offset:3px;
}

.ag-player-now{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  min-width:0 !important;
}

.ag-player-cover{
  width:54px;
  height:54px;
  flex:0 0 54px;
  border-radius:18px;
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 32% 24%, rgba(255,255,255,.28), transparent 34%),
    linear-gradient(135deg, rgba(56,189,248,.28), rgba(167,139,250,.24));
  border:1px solid rgba(255,255,255,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 14px 34px rgba(0,0,0,.32);
}

.ag-player-coverWave{
  display:flex;
  align-items:center;
  gap:4px;
  height:22px;
}

.ag-player-coverWave i{
  display:block;
  width:4px;
  border-radius:999px;
  background:var(--nx-ink);
  opacity:.92;
  animation:agPlayerWave 1s ease-in-out infinite;
}

.ag-player-coverWave i:nth-child(1){height:11px}
.ag-player-coverWave i:nth-child(2){height:20px;animation-delay:.12s}
.ag-player-coverWave i:nth-child(3){height:15px;animation-delay:.24s}

@keyframes agPlayerWave{
  0%,100%{transform:scaleY(.62);opacity:.7}
  50%{transform:scaleY(1);opacity:1}
}

.ag-player-copy{
  min-width:0;
}

.ag-player-statusRow{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:3px;
}

.ag-player-status{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:3px 9px;
  border-radius:999px;
  border:1px solid rgba(140,164,225,.22);
  background:rgba(255,255,255,.065);
  color:#d9e5ff;
  font-size:10px;
  font-weight:950;
  letter-spacing:.02em;
}

.ag-player-meta{
  color:#c8d3ee !important;
  font-size:12px !important;
  font-weight:800 !important;
}

.ag-player-btn{
  border-color:rgba(140,164,225,.28) !important;
  background:rgba(255,255,255,.075) !important;
  color:var(--nx-ink) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}

.ag-player-btnPrimary{
  background:linear-gradient(135deg, rgba(56,189,248,.32), rgba(167,139,250,.24)) !important;
  border-color:rgba(56,189,248,.46) !important;
  transform:translateZ(0);
}

.ag-player-btnPrimary:hover,
.ag-player-btnPrimary:focus-visible{
  box-shadow:0 14px 32px rgba(41,214,255,.22), inset 0 1px 0 rgba(255,255,255,.12) !important;
}

.ag-player-voiceBtn{
  min-width:78px !important;
  padding-inline:12px !important;
}

.ag-secTop{
  border-radius:22px !important;
  background:rgba(255,255,255,.045) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045);
}

.ag-secTop.isPlaying{
  background:
    linear-gradient(135deg, rgba(56,189,248,.16), rgba(167,139,250,.08)),
    rgba(255,255,255,.055) !important;
}

.ag-placeMarker{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.48);
  border-radius:999px;
  background:linear-gradient(135deg, rgba(56,189,248,.94), rgba(167,139,250,.88));
  box-shadow:0 10px 26px rgba(0,0,0,.32), 0 0 0 4px rgba(12,18,42,.5);
  color:var(--nx-ink);
  cursor:pointer;
}

.ag-placeMarker.is-active{
  animation:agMarkerPulse 1.5s ease-in-out infinite;
}

.ag-routeLine{
  stroke-dasharray:14 10;
  animation:agRouteReveal .8s ease-out both, agRouteMove 1.8s linear infinite;
}

@keyframes agRouteReveal{
  from{stroke-dashoffset:80;opacity:.25}
  to{stroke-dashoffset:0;opacity:.92}
}

@keyframes agRouteMove{
  to{stroke-dashoffset:-48}
}

@media (max-width:767.98px){
  .ag-player-voiceBtn,
  .ag-player-volume,
  .ag-player-stats{
    display:none !important;
  }
}

/* City page: use desktop width and keep the companion sidebar genuinely sticky. */
@media (min-width:1200px){
  .PageCity .ux-guideMainSection > .container{
    width:calc(100vw - 96px);
    max-width:none;
  }

  .PageCity .city-page-layout{
    grid-template-columns:minmax(0,1fr) clamp(390px,22vw,430px) !important;
    gap:clamp(24px,2.4vw,42px);
    align-items:start;
  }

  .PageCity .city-companion-sidebar{
    position:sticky !important;
    top:calc(var(--header-height, 80px) + 24px) !important;
    align-self:start;
    max-height:none;
    overflow:visible;
  }

  .PageCity .city-companion-sidebar .ux-mapCard,
  .PageCity .city-companion-sidebar .ux-entityMap{
    min-height:300px;
  }
}

@media (min-width:992px) and (max-width:1199.98px){
  .PageCity .city-page-layout{
    grid-template-columns:1fr !important;
  }

  .PageCity .city-companion-sidebar{
    position:relative !important;
    top:auto !important;
    max-height:none;
    overflow:visible;
  }
}

/* City/place playlist polish: dark readable rows without touching sticky behavior. */
.PageCity #storySections.ux-playlist,
.PagePlace #storySections.ux-playlist{
  gap:12px;
}

.PageCity #storySections.ux-playlist .ag-sec,
.PagePlace #storySections.ux-playlist .ag-sec{
  border-radius:24px !important;
  background:transparent !important;
}

.PageCity #storySections.ux-playlist .ag-secTop,
.PagePlace #storySections.ux-playlist .ag-secTop{
  position:relative;
  isolation:isolate;
  min-height:92px;
  padding:18px 20px !important;
  border:1px solid rgba(140,164,225,.24) !important;
  border-radius:24px !important;
  background:
    radial-gradient(circle at 10% 0%, rgba(56,189,248,.12), transparent 34%),
    linear-gradient(135deg, rgba(255,255,255,.085), rgba(255,255,255,.032)),
    rgba(14,22,48,.92) !important;
  box-shadow:
    0 18px 42px rgba(0,0,0,.2),
    inset 0 1px 0 rgba(255,255,255,.09) !important;
  color:var(--nx-ink) !important;
}

.PageCity #storySections.ux-playlist .ag-secTop::before,
.PagePlace #storySections.ux-playlist .ag-secTop::before{
  content:"";
  position:absolute;
  inset:1px;
  z-index:-1;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(90deg, rgba(56,189,248,.1), transparent 32%, rgba(167,139,250,.08));
  opacity:.62;
}

.PageCity #storySections.ux-playlist .ag-secTop:hover,
.PageCity #storySections.ux-playlist .ag-secTop:focus-visible,
.PagePlace #storySections.ux-playlist .ag-secTop:hover,
.PagePlace #storySections.ux-playlist .ag-secTop:focus-visible{
  transform:translateY(-2px);
  border-color:rgba(56,189,248,.4) !important;
  background:
    radial-gradient(circle at 10% 0%, rgba(56,189,248,.16), transparent 34%),
    linear-gradient(135deg, rgba(255,255,255,.105), rgba(255,255,255,.045)),
    rgba(16,26,58,.96) !important;
  box-shadow:
    0 22px 50px rgba(0,0,0,.26),
    inset 0 1px 0 rgba(255,255,255,.12) !important;
}

.PageCity #storySections.ux-playlist .ag-secTop.isSelected,
.PageCity #storySections.ux-playlist .ag-secTop.isPlaying,
.PagePlace #storySections.ux-playlist .ag-secTop.isSelected,
.PagePlace #storySections.ux-playlist .ag-secTop.isPlaying{
  border-color:rgba(56,189,248,.58) !important;
  background:
    radial-gradient(circle at 10% 0%, rgba(56,189,248,.22), transparent 36%),
    linear-gradient(135deg, rgba(56,189,248,.18), rgba(167,139,250,.12)),
    rgba(14,25,58,.98) !important;
  box-shadow:
    0 24px 58px rgba(0,0,0,.3),
    0 0 0 1px rgba(56,189,248,.12),
    inset 0 1px 0 rgba(255,255,255,.14) !important;
}

.PageCity #storySections.ux-playlist .ag-secTitle,
.PagePlace #storySections.ux-playlist .ag-secTitle{
  color:#f6f9ff !important;
  font-size:clamp(15px, 1.05vw, 18px);
  font-weight:950 !important;
  line-height:1.2;
  text-shadow:0 1px 18px rgba(0,0,0,.18);
}

.PageCity #storySections.ux-playlist .ag-secMeta,
.PagePlace #storySections.ux-playlist .ag-secMeta{
  color:#cbd6f2 !important;
  font-size:12px;
  font-weight:850 !important;
}

.PageCity #storySections.ux-playlist .ag-badge,
.PagePlace #storySections.ux-playlist .ag-badge{
  border-color:rgba(56,189,248,.28) !important;
  background:rgba(56,189,248,.1) !important;
  color:#eaf6ff !important;
  letter-spacing:.02em;
}

.PageCity #storySections.ux-playlist .ag-nowPill,
.PagePlace #storySections.ux-playlist .ag-nowPill{
  border-color:rgba(56,189,248,.44) !important;
  background:rgba(56,189,248,.16) !important;
  color:#f6fbff !important;
}

.PageCity #storySections.ux-playlist .ag-secMiniProgress,
.PagePlace #storySections.ux-playlist .ag-secMiniProgress{
  height:5px;
  background:rgba(255,255,255,.1) !important;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.22);
}

.PageCity #storySections.ux-playlist .ag-secMiniProgress i,
.PagePlace #storySections.ux-playlist .ag-secMiniProgress i{
  background:linear-gradient(90deg, var(--nx-cyan), var(--nx-violet)) !important;
  box-shadow:0 0 18px rgba(56,189,248,.28);
}

.PageCity #storySections.ux-playlist .ag-iconBtn,
.PagePlace #storySections.ux-playlist .ag-iconBtn{
  border-color:rgba(140,164,225,.3) !important;
  background:rgba(255,255,255,.075) !important;
  color:#f5f8ff !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.1),
    0 12px 24px rgba(0,0,0,.18) !important;
}

.PageCity #storySections.ux-playlist .ag-iconBtn:hover,
.PageCity #storySections.ux-playlist .ag-iconBtn:focus-visible,
.PagePlace #storySections.ux-playlist .ag-iconBtn:hover,
.PagePlace #storySections.ux-playlist .ag-iconBtn:focus-visible{
  border-color:rgba(56,189,248,.48) !important;
  background:rgba(255,255,255,.12) !important;
}

.PageCity #storySections.ux-playlist .ag-iconBtnPrimary,
.PagePlace #storySections.ux-playlist .ag-iconBtnPrimary{
  border-color:rgba(56,189,248,.5) !important;
  background:linear-gradient(135deg, rgba(56,189,248,.36), rgba(167,139,250,.28)) !important;
}

@media (max-width:767.98px){
  .PageCity #storySections.ux-playlist .ag-secTop,
  .PagePlace #storySections.ux-playlist .ag-secTop{
    min-height:82px !important;
    padding:14px !important;
    border-radius:20px !important;
  }
}

@media (min-width:768px){
  .ag-fullMapOverlay{
    grid-template-rows:64px minmax(0,1fr) !important;
    gap:8px !important;
    padding:10px 12px !important;
  }

  .ag-fullMapTopbar{
    min-height:0 !important;
    padding:8px 12px !important;
    border-radius:20px !important;
  }

  .ag-fullMapTopbar h2{
    font-size:22px !important;
    line-height:1.08 !important;
    color:var(--nx-ink) !important;
  }

  .ag-fullMapTopbar .ux-kicker{
    font-size:10px !important;
  }

  .ag-fullMapShell{
    grid-template-columns:minmax(260px,300px) minmax(0,1fr) !important;
    gap:10px !important;
  }

  .ag-mapSidebar{
    gap:6px !important;
    padding:8px !important;
    border-radius:20px !important;
  }

  .ag-mapMiniPlayer{
    padding:7px 9px !important;
    border-radius:14px !important;
  }

  .ag-mapMiniPlayer span,
  .ag-mapMiniPlayer small{
    font-size:10px !important;
  }

  .ag-mapMiniPlayer strong{
    font-size:12px !important;
  }

  .ag-mapMiniProgress{
    height:3px !important;
  }

  .ag-mapSelectedCard{
    grid-template-columns:56px minmax(0,1fr) !important;
    gap:8px !important;
    padding:7px !important;
    border-radius:16px !important;
  }

  .ag-mapSelectedCard img{
    width:56px !important;
    height:56px !important;
    border-radius:12px !important;
  }

  .ag-mapSelectedCard h3,
  .ag-mapEmptyCard h3{
    margin:2px 0 !important;
    font-size:14px !important;
    line-height:1.12 !important;
  }

  .ag-mapSelectedCard p,
  .ag-mapEmptyCard p,
  .ag-routeInfo{
    font-size:11px !important;
    line-height:1.25 !important;
  }

  .ag-mapEmptyCard{
    padding:9px 10px !important;
    border-radius:16px !important;
  }

  .ag-mapSidebarHead{
    gap:4px !important;
  }

  .ag-mapSidebarHead label{
    font-size:10px !important;
  }

  .ag-mapSidebarHead input{
    min-height:34px !important;
    padding:0 11px !important;
    font-size:13px !important;
  }

  .ag-mapFilters{
    gap:4px !important;
    padding-bottom:0 !important;
    scrollbar-width:none !important;
  }

  .ag-mapFilters::-webkit-scrollbar{
    display:none !important;
  }

  .ag-mapFilters button{
    min-height:27px !important;
    padding:0 8px !important;
    font-size:10px !important;
  }

  .ag-mapPlaceList{
    gap:4px !important;
  }

  .ag-mapPlaceList li{
    grid-template-columns:minmax(0,1fr) auto auto !important;
    gap:5px !important;
    padding:5px !important;
    border-radius:13px !important;
  }

  .ag-mapPlaceSelect{
    grid-template-columns:36px minmax(0,1fr) !important;
    gap:7px !important;
  }

  .ag-mapPlaceSelect img{
    width:36px !important;
    border-radius:9px !important;
  }

  .ag-mapPlaceSelect b{
    font-size:12px !important;
    line-height:1.08 !important;
  }

  .ag-mapPlaceSelect small{
    margin-top:1px !important;
    font-size:10px !important;
  }

  .ag-mapPlacePlay,
  .ag-mapPlaceRoute,
  .ag-mapPopupActions .ag-mapAction{
    min-height:28px !important;
    padding:0 8px !important;
    font-size:10px !important;
  }
}

/* Keep the final product-polish overrides after legacy blocks. */
.PageLanding .ux-cityList{
  max-height:none !important;
  overflow:visible !important;
  padding-right:0 !important;
  scrollbar-width:none !important;
}

.PageLanding .ux-cityList::-webkit-scrollbar{
  display:none !important;
}

.ag-inlinePlaylist{
  display:grid !important;
  gap:6px !important;
  margin-top:10px !important;
}

.ag-inlineTopic{
  display:grid !important;
  grid-template-columns:30px minmax(0,1fr) auto !important;
  align-items:center !important;
  gap:8px !important;
  min-height:38px !important;
  padding:6px 8px !important;
  border:1px solid rgba(140,164,225,.18) !important;
  border-radius:13px !important;
  background:rgba(255,255,255,.055) !important;
  color:#edf3ff !important;
  text-align:left !important;
}

.ux-europeAtlas{
  grid-template-columns:minmax(280px,.46fr) minmax(0,1fr) !important;
  align-items:stretch !important;
}

.ux-europeBoard{
  display:grid;
  gap:16px;
  padding:18px;
  border:1px solid var(--nx-line);
  border-radius:28px;
  background:
    radial-gradient(480px 260px at 10% 0%, rgba(41,214,255,.16), transparent 74%),
    radial-gradient(520px 280px at 100% 20%, rgba(141,91,255,.16), transparent 70%),
    rgba(255,255,255,.045);
  box-shadow:var(--nx-shadow);
}

.ux-europeRoute{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}

.ux-europeRoute a{
  display:grid;
  gap:5px;
  min-height:104px;
  padding:14px;
  border:1px solid rgba(140,164,225,.2);
  border-radius:20px;
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.035));
  color:var(--nx-ink);
  text-decoration:none;
}

.ux-europeAtlas .ux-countryGroupsCompact{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.ct-prefooter{height:0 !important}
.ct-footer{margin-top:6px !important}

.ct-subscribeDialog{position:relative}
.ct-subscribeOpen{overflow:hidden}

@media (max-width:767.98px){
  .ux-europeAtlas,
  .ux-europeRoute,
  .ux-europeAtlas .ux-countryGroupsCompact{
    grid-template-columns:1fr !important;
  }
}

/* Final UX fixes: keep country playlist consistent, restore nearby-city scrolling,
   tighten footer spacing, and polish the subscription modal without changing colors. */
:is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist{
  gap:12px !important;
}

:is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-sec{
  border-radius:24px !important;
  background:transparent !important;
}

:is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-secTop{
  position:relative !important;
  isolation:isolate !important;
  min-height:92px !important;
  padding:18px 20px !important;
  border:1px solid rgba(140,164,225,.24) !important;
  border-radius:24px !important;
  background:
    radial-gradient(circle at 10% 0%, rgba(56,189,248,.13), transparent 34%),
    linear-gradient(135deg, rgba(255,255,255,.085), rgba(255,255,255,.032)),
    rgba(14,22,48,.92) !important;
  color:var(--nx-ink) !important;
  box-shadow:
    0 18px 42px rgba(0,0,0,.2),
    inset 0 1px 0 rgba(255,255,255,.09) !important;
}

:is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-secTop.isSelected,
:is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-secTop.isPlaying{
  border-color:rgba(56,189,248,.58) !important;
  background:
    radial-gradient(circle at 10% 0%, rgba(56,189,248,.22), transparent 36%),
    linear-gradient(135deg, rgba(56,189,248,.18), rgba(167,139,250,.12)),
    rgba(14,25,58,.98) !important;
}

:is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-secTitle{
  color:#f6f9ff !important;
  font-size:clamp(15px, 1.05vw, 18px) !important;
  font-weight:950 !important;
  line-height:1.2 !important;
}

:is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-secMeta{
  color:#cbd6f2 !important;
  font-size:12px !important;
  font-weight:850 !important;
}

:is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-badge,
:is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-nowPill{
  border-color:rgba(56,189,248,.3) !important;
  background:rgba(56,189,248,.12) !important;
  color:#eaf6ff !important;
}

:is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-secMiniProgress{
  height:5px !important;
  background:rgba(255,255,255,.1) !important;
}

:is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-secMiniProgress i{
  background:linear-gradient(90deg, var(--nx-cyan), var(--nx-violet)) !important;
}

:is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-iconBtn{
  border-color:rgba(140,164,225,.3) !important;
  background:rgba(255,255,255,.075) !important;
  color:#f5f8ff !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.1),
    0 12px 24px rgba(0,0,0,.18) !important;
}

:is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-iconBtnPrimary{
  border-color:rgba(56,189,248,.5) !important;
  background:linear-gradient(135deg, rgba(56,189,248,.36), rgba(167,139,250,.28)) !important;
}

.PageLanding .ux-cityList{
  max-height:clamp(240px, 36vh, 390px) !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior:contain !important;
  padding-right:8px !important;
  scrollbar-width:thin !important;
  scrollbar-color:var(--nx-violet) rgba(226,235,255,.7) !important;
}

.PageLanding .ux-cityList::-webkit-scrollbar{
  width:8px !important;
  display:block !important;
}

.PageLanding .ux-cityList::-webkit-scrollbar-track{
  border-radius:999px !important;
  background:rgba(226,235,255,.72) !important;
}

.PageLanding .ux-cityList::-webkit-scrollbar-thumb{
  border:2px solid rgba(226,235,255,.72) !important;
  border-radius:999px !important;
  background:linear-gradient(180deg, var(--nx-cyan), var(--nx-violet)) !important;
}

.PageLanding .ag-cityRow{
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
}

.PageLanding .ag-cityListBtn{
  width:100% !important;
  min-height:40px !important;
  padding:6px 0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:var(--nx-ink) !important;
  box-shadow:none !important;
}

.PageLanding .ag-cityListBtn + .ag-cityInline{
  margin-top:6px !important;
}

.PageLanding .ag-cityListMain{
  grid-template-columns:24px minmax(0,1fr) auto !important;
  gap:8px !important;
  align-items:center !important;
}

.PageLanding .ag-cityListText b{
  color:#f6f9ff !important;
  font-size:14px !important;
  line-height:1.1 !important;
}

.PageLanding .ag-cityListText span,
.PageLanding .ag-cityListMain small{
  color:#b7c3e5 !important;
  font-size:11px !important;
  font-weight:800 !important;
}

.ux-placeClusterGrid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:12px !important;
}

.ux-placeCluster{
  overflow:hidden !important;
  border:1px solid rgba(140,164,225,.22) !important;
  border-radius:24px !important;
  background:
    radial-gradient(circle at 10% 0%, rgba(56,189,248,.12), transparent 36%),
    rgba(255,255,255,.045) !important;
  box-shadow:var(--nx-shadow) !important;
}

.ux-placeClusterHead{
  display:grid !important;
  grid-template-columns:64px minmax(0,1fr) !important;
  gap:10px !important;
  align-items:center !important;
  padding:10px !important;
  color:var(--nx-ink) !important;
  text-decoration:none !important;
}

.ux-placeClusterHead img{
  width:64px !important;
  aspect-ratio:16/10 !important;
  object-fit:cover !important;
  border-radius:13px !important;
}

.ux-placeClusterHead b{
  display:block !important;
  color:#f6f9ff !important;
  font-size:16px !important;
  line-height:1.08 !important;
}

.ux-placeClusterHead small{
  display:block !important;
  margin-top:4px !important;
  color:#b7c3e5 !important;
  font-weight:800 !important;
}

.ux-placeNameList{
  display:grid !important;
  gap:0 !important;
  margin:0 !important;
  padding:0 10px 10px !important;
  list-style:none !important;
}

.ux-placeNameList a{
  display:grid !important;
  grid-template-columns:24px minmax(0,1fr) auto !important;
  gap:7px !important;
  align-items:center !important;
  min-height:30px !important;
  border-top:1px solid rgba(140,164,225,.16) !important;
  color:var(--nx-ink) !important;
  text-decoration:none !important;
}

.ux-placeNameList span{
  color:#8fdcff !important;
  font-size:12px !important;
  font-weight:950 !important;
}

.ux-placeNameList b{
  overflow:hidden !important;
  color:#eef4ff !important;
  font-size:12px !important;
  font-weight:850 !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

.ux-placeNameList small{
  color:#9ca7c7 !important;
  font-size:10px !important;
  font-weight:800 !important;
}

.ux-placeCatalogGrid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:10px !important;
}

.ux-placeCatalogCard{
  min-width:0 !important;
}

.ux-placeCatalogLink{
  display:grid !important;
  grid-template-columns:58px minmax(0,1fr) !important;
  gap:10px !important;
  align-items:center !important;
  min-height:78px !important;
  padding:9px !important;
  border:1px solid rgba(140,164,225,.2) !important;
  border-radius:18px !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(56,189,248,.1), transparent 44%),
    rgba(255,255,255,.045) !important;
  color:var(--nx-ink) !important;
  text-decoration:none !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07) !important;
}

.ux-placeCatalogLink:hover,
.ux-placeCatalogLink:focus-visible{
  border-color:rgba(56,189,248,.38) !important;
  transform:translateY(-1px);
}

.ux-placeCatalogLink img{
  width:58px !important;
  height:58px !important;
  object-fit:cover !important;
  border-radius:14px !important;
  background:rgba(255,255,255,.06) !important;
}

.ux-placeCatalogLink span{
  min-width:0 !important;
  display:grid !important;
  gap:3px !important;
}

.ux-placeCatalogLink small,
.ux-placeCatalogLink em{
  overflow:hidden !important;
  color:#aebbe0 !important;
  font-size:10px !important;
  font-style:normal !important;
  font-weight:850 !important;
  line-height:1.15 !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

.ux-placeCatalogLink b{
  overflow:hidden !important;
  color:#f6f9ff !important;
  font-size:13px !important;
  font-weight:900 !important;
  line-height:1.14 !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

.ct-prefooter{
  display:none !important;
  height:0 !important;
  margin:0 !important;
  padding:0 !important;
}

.ux-finalCta{
  padding-bottom:16px !important;
}

.ct-footer{
  margin-top:0 !important;
  padding-top:22px !important;
}

.ct-subscribeOverlay{
  background:
    radial-gradient(760px 420px at 50% 24%, rgba(56,189,248,.18), transparent 62%),
    rgba(3,8,24,.68) !important;
  backdrop-filter:blur(18px) saturate(120%) !important;
}

.ct-subscribeDialog{
  position:relative !important;
  overflow:hidden !important;
  width:min(500px,100%) !important;
  padding:22px !important;
  border:1px solid rgba(140,164,225,.32) !important;
  border-radius:28px !important;
  background:
    radial-gradient(520px 260px at 0% 0%, rgba(56,189,248,.18), transparent 66%),
    radial-gradient(520px 260px at 100% 18%, rgba(167,139,250,.18), transparent 68%),
    linear-gradient(180deg, rgba(17,26,59,.98), rgba(8,15,38,.98)) !important;
  box-shadow:0 34px 100px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.1) !important;
}

.ct-subscribeDialog::before{
  content:"";
  display:block;
  width:46px;
  height:46px;
  margin-bottom:12px;
  border:1px solid rgba(56,189,248,.32);
  border-radius:16px;
  background:
    linear-gradient(135deg, rgba(56,189,248,.34), rgba(167,139,250,.24)),
    rgba(255,255,255,.08);
  box-shadow:0 18px 46px rgba(56,189,248,.18);
}

.ct-subscribeDialog h2{
  max-width:18ch !important;
  color:#f6f9ff !important;
  font-size:clamp(24px, 3.2vw, 34px) !important;
  line-height:1.05 !important;
}

.ct-subscribeDialog p{
  max-width:54ch !important;
  color:#cbd6f2 !important;
  font-size:14px !important;
  line-height:1.48 !important;
}

.ct-subscribeClose{
  top:14px !important;
  right:14px !important;
  min-height:34px !important;
  padding:0 12px !important;
  border-radius:999px !important;
}

.ct-subscribeForm{
  margin-top:12px !important;
}

.ct-subscribeForm input{
  min-height:44px !important;
}

.ct-subscribeForm .ct-primaryBtn{
  min-height:44px !important;
  padding-inline:18px !important;
}

@media (max-width:767.98px){
  :is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-secTop{
    min-height:82px !important;
    padding:14px !important;
    border-radius:20px !important;
  }

  .ux-placeClusterGrid{
    grid-template-columns:1fr !important;
  }

  .ux-placeNameList a{
    grid-template-columns:24px minmax(0,1fr) !important;
  }

  .ux-placeNameList small{
    display:none !important;
  }

  .ux-placeCatalogGrid{
    grid-template-columns:1fr !important;
  }

  .ct-subscribeDialog{
    padding:18px !important;
    border-radius:24px !important;
  }

  .ct-subscribeDialog h2{
    font-size:26px !important;
  }
}

@media (max-width:1199.98px) and (min-width:768px){
  .ux-placeClusterGrid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .ux-placeCatalogGrid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

/* Tripalto/Django-style admin index */
.PageDjangoAdmin{
  min-height:100vh !important;
  padding-top:0 !important;
  background:#fff !important;
  color:#333 !important;
}

.PageDjangoAdmin .ct-navbar,
.PageDjangoAdmin .ct-footer,
.PageDjangoAdmin .ct-prefooter{
  display:none !important;
}

/* Contact and owner messaging */
.ct-footerLegalLine{
  display:grid;
  gap:4px;
}

.ct-footerMail{
  width:max-content;
  color:#dbe6ff;
  font-size:13px;
  font-weight:800;
  text-decoration:none;
}

.ct-footerMail:hover{
  color:#fff;
  text-decoration:underline;
}

.ct-subscribeForm{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;
  align-items:center;
}

.ct-subscribeFeedback{
  display:block;
  min-height:18px;
  margin-top:8px;
  color:#dbe6ff;
  font-size:12px;
  font-weight:800;
}

.ct-authNavBtn{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  border:0;
  background:transparent;
  color:inherit;
  cursor:pointer;
}

.ct-authNavBtn:hover,
.ct-authNavBtn:focus-visible{
  color:#fff;
  text-decoration:underline;
  text-underline-offset:4px;
}

.ct-accountMenu{
  min-width:240px;
  padding:10px !important;
  border-radius:18px !important;
}

.ct-accountEmail{
  margin:0 0 6px;
  padding:8px 10px 10px;
  color:#fff;
  font-size:13px;
  font-weight:900;
  line-height:1.25;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  border-bottom:1px solid rgba(140,164,225,.24);
}

.ct-accountMenu .dropdown-item{
  border-radius:12px;
  font-weight:800;
}

.ct-accountLogout{
  width:100%;
  color:#ff6b6b !important;
  text-align:left;
}

.ct-accountLogout:hover,
.ct-accountLogout:focus-visible{
  color:#fff !important;
  background:rgba(255,82,82,.18) !important;
}

.ct-authOverlay{
  position:fixed;
  inset:0;
  z-index:5010;
  display:grid;
  place-items:center;
  padding:20px;
  background:
    radial-gradient(760px 420px at 50% 24%, rgba(56,189,248,.18), transparent 62%),
    rgba(3,8,24,.72);
  backdrop-filter:blur(18px) saturate(120%);
}

.ct-authOverlay[hidden]{
  display:none !important;
}

.ct-authOpen{
  overflow:hidden;
}

.ct-authDialog{
  position:relative;
  overflow:hidden;
  width:min(460px,100%);
  padding:24px;
  border:1px solid rgba(140,164,225,.32);
  border-radius:28px;
  background:
    radial-gradient(520px 260px at 0% 0%, rgba(56,189,248,.18), transparent 66%),
    radial-gradient(520px 260px at 100% 18%, rgba(167,139,250,.18), transparent 68%),
    linear-gradient(180deg, rgba(17,26,59,.98), rgba(8,15,38,.98));
  color:var(--nx-ink);
  box-shadow:0 34px 100px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.1);
}

.ct-authDialog h2{
  margin:8px 0;
  color:#f6f9ff;
  font-size:clamp(28px,4vw,42px);
  line-height:1.04;
}

.ct-authDialog p{
  margin-bottom:16px;
  color:#cbd6f2;
  font-size:14px;
  font-weight:700;
  line-height:1.48;
}

.ct-authClose{
  position:absolute;
  top:14px;
  right:14px;
  min-height:34px;
  padding:0 12px;
  border-radius:999px;
}

.ct-authForm{
  display:grid;
  gap:10px;
}

.ct-authForm input{
  min-height:48px;
  border:1px solid rgba(140,164,225,.28);
  border-radius:999px;
  padding:0 16px;
  background:rgba(255,255,255,.08);
  color:var(--nx-ink);
  font-weight:800;
  outline:none;
}

.ct-authForm input:focus{
  border-color:rgba(56,189,248,.72);
  box-shadow:0 0 0 4px rgba(56,189,248,.14);
}

.ct-authSwitch{
  margin-top:12px;
  border:0;
  background:transparent;
  color:#dbe6ff;
  font-weight:900;
  text-decoration:underline;
  text-underline-offset:4px;
}

.ct-authFeedback{
  display:block;
  min-height:18px;
  margin-top:8px;
  color:#dbe6ff;
  font-size:12px;
  font-weight:900;
}

.PageContact .main{
  padding-top:118px;
}

.ux-contactPage{
  min-height:calc(100dvh - 180px);
  padding:54px 0 28px;
  background:
    radial-gradient(760px 360px at 12% 0%, rgba(56,189,248,.14), transparent 64%),
    radial-gradient(740px 360px at 92% 12%, rgba(167,139,250,.15), transparent 68%),
    var(--nx-bg);
}

.ux-contactShell{
  display:grid;
  grid-template-columns:minmax(280px,.82fr) minmax(320px,1.18fr);
  gap:28px;
  align-items:start;
}

.ux-contactIntro,
.ux-contactFormCard{
  border:1px solid rgba(140,164,225,.24);
  border-radius:28px;
  background:
    linear-gradient(180deg, rgba(17,27,61,.9), rgba(9,16,42,.94));
  box-shadow:0 24px 70px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.08);
}

.ux-contactIntro{
  padding:34px;
}

.ux-contactIntro h1{
  margin:10px 0 18px;
  color:var(--nx-ink);
  font-size:clamp(42px,6vw,78px);
  line-height:.96;
}

.ux-contactIntro p{
  max-width:46ch;
  color:var(--nx-muted);
  font-size:18px;
  font-weight:700;
  line-height:1.65;
}

.ux-contactMail{
  display:inline-flex;
  min-height:44px;
  align-items:center;
  margin-top:18px;
  padding:0 16px;
  border:1px solid rgba(56,189,248,.34);
  border-radius:999px;
  color:#fff;
  font-weight:900;
  text-decoration:none;
  background:rgba(56,189,248,.12);
}

.ux-contactMail:hover{
  color:#fff;
  background:rgba(56,189,248,.2);
}

.ux-contactFormCard{
  padding:28px;
}

.ux-contactForm{
  display:grid;
  gap:18px;
}

.ux-contactForm label{
  display:grid;
  gap:8px;
  color:var(--nx-muted);
  font-size:16px;
  font-weight:800;
}

.ux-contactForm input,
.ux-contactForm textarea{
  width:100%;
  border:1px solid rgba(140,164,225,.32);
  border-radius:16px;
  background:rgba(255,255,255,.08);
  color:var(--nx-ink);
  font:inherit;
  font-weight:700;
  outline:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}

.ux-contactForm input{
  min-height:52px;
  padding:0 16px;
}

.ux-contactForm textarea{
  min-height:230px;
  padding:14px 16px;
  resize:vertical;
}

.ux-contactForm input:focus,
.ux-contactForm textarea:focus{
  border-color:rgba(56,189,248,.72);
  box-shadow:0 0 0 4px rgba(56,189,248,.14), inset 0 1px 0 rgba(255,255,255,.08);
}

.ux-contactSubmit{
  min-height:54px;
  border-radius:14px !important;
}

.ux-contactNotice{
  margin-bottom:16px;
  padding:12px 14px;
  border-radius:16px;
  font-weight:900;
}

.ux-contactNoticeSuccess{
  border:1px solid rgba(56,189,248,.34);
  color:#ecfaff;
  background:rgba(56,189,248,.12);
}

.ux-contactNoticeError{
  border:1px solid rgba(248,113,113,.34);
  color:#fff1f2;
  background:rgba(248,113,113,.12);
}

@media (max-width:991.98px){
  .ux-contactShell{
    grid-template-columns:1fr;
  }
}

@media (max-width:767.98px){
  .PageContact .main{
    padding-top:94px;
  }

  .ux-contactPage{
    padding:28px 0 18px;
  }

  .ux-contactIntro,
  .ux-contactFormCard{
    padding:20px;
    border-radius:22px;
  }

  .ux-contactIntro p{
    font-size:15px;
  }

  .ct-subscribeForm{
    grid-template-columns:1fr !important;
  }
}

.PageDjangoAdmin .main{
  padding:0 !important;
  margin:0 !important;
  background:#fff !important;
}

.dj-adminPage{
  min-height:100vh;
  padding:0 !important;
  background:#fff;
  color:#333;
  font-family:Arial, Helvetica, sans-serif;
}

.dj-adminTop{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  min-height:64px;
  padding:0 54px;
  background:#417690;
  color:#ffc;
}

.dj-adminLogo{
  flex:0 0 auto;
  color:#f5dd5d !important;
  font-size:30px;
  font-weight:400;
  line-height:1;
  text-decoration:none;
}

.dj-adminLogo:hover,
.dj-adminLogo:focus-visible{
  color:#fff7ad !important;
  text-decoration:none;
}

.dj-adminUser{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  min-width:0;
  flex-wrap:wrap;
  gap:7px;
  color:#f4f6f8;
  font-size:13px;
  font-weight:700;
  letter-spacing:.02em;
  text-transform:uppercase;
}

.dj-adminUser a,
.dj-adminUser button,
.dj-adminMuted{
  color:#fff !important;
  font:inherit;
  text-decoration:underline;
  text-underline-offset:2px;
}

.dj-adminUser form{
  display:inline;
  margin:0;
}

.dj-adminUser button{
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
}

.dj-adminThemeDot{
  width:20px;
  height:20px;
  margin-left:5px;
  border-radius:999px;
  background:linear-gradient(90deg,#fff 50%,#b7c6cf 50%);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);
}

.dj-adminWrap{
  width:min(1180px, calc(100% - 96px));
  margin:0;
  padding:28px 0 64px 54px;
}

.dj-adminWrap h1{
  margin:0 0 26px;
  color:#444;
  font-size:27px;
  font-weight:400;
  line-height:1.25;
}

.dj-adminGrid{
  display:grid;
  grid-template-columns:minmax(620px, 780px) 320px;
  gap:48px;
  align-items:start;
}

.dj-adminModules{
  display:grid;
  gap:36px;
}

.dj-adminModule{
  width:100%;
  padding:0 !important;
}

.dj-adminModule h2{
  margin:0;
  padding:10px 12px;
  background:#417690;
  color:#fff;
  font-size:16px;
  font-weight:700;
  letter-spacing:.04em;
  line-height:1.2;
  text-transform:uppercase;
}

.dj-adminModule table{
  width:100%;
  border-collapse:collapse;
  background:#fff;
}

.dj-adminModule tr{
  border-bottom:1px solid #e8e8e8;
}

.dj-adminModule tr:nth-child(even){
  background:#f8f8f8;
}

.dj-adminModule th,
.dj-adminModule td{
  padding:10px 12px;
  vertical-align:middle;
}

.dj-adminModule th{
  width:62%;
  text-align:left;
}

.dj-adminModule td{
  width:19%;
  text-align:right;
  white-space:nowrap;
}

.dj-adminModule th a,
.dj-adminModule th span{
  color:#447e9b !important;
  font-size:16px;
  font-weight:700;
  text-decoration:none;
}

.dj-adminModule th a:hover,
.dj-adminModule th a:focus-visible{
  color:#036 !important;
  text-decoration:underline;
}

.dj-adminModule small{
  display:block;
  margin-top:3px;
  color:#777;
  font-size:12px;
  font-weight:400;
}

.dj-adminAdd,
.dj-adminChange,
.dj-adminView{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:4px;
  color:#447e9b !important;
  font-size:16px;
  font-weight:600;
  text-decoration:none;
}

.dj-adminAdd span{
  color:#5bb531;
  font-size:23px;
  font-weight:900;
  line-height:1;
}

.dj-adminChange span{
  color:#d6a100;
  font-size:17px;
  line-height:1;
}

.dj-adminView span{
  color:#2b79c2;
  font-size:16px;
  line-height:1;
}

.dj-adminAdd:hover,
.dj-adminChange:hover,
.dj-adminView:hover,
.dj-adminAdd:focus-visible,
.dj-adminChange:focus-visible,
.dj-adminView:focus-visible{
  color:#036 !important;
  text-decoration:underline;
}

.dj-adminRecent{
  width:100%;
  padding:0 !important;
  background:#f8f8f8;
}

.dj-adminRecent h2{
  margin:0;
  padding:22px 22px 28px;
  border-bottom:1px solid #e5e5e5;
  color:#444;
  font-size:24px;
  font-weight:500;
}

.dj-adminRecentBody{
  padding:18px 22px 28px;
}

.dj-adminRecent h3{
  margin:0 0 18px;
  color:#666;
  font-size:17px;
  font-weight:700;
}

.dj-adminRecent ul{
  display:grid;
  gap:15px;
  margin:0;
  padding:0;
  list-style:none;
}

.dj-adminRecent li{
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  column-gap:8px;
  align-items:start;
}

.dj-adminRecent a{
  overflow:hidden;
  color:#447e9b !important;
  font-size:16px;
  font-weight:700;
  line-height:1.25;
  text-decoration:underline;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.dj-adminRecent small{
  grid-column:2;
  overflow:hidden;
  color:#666;
  font-size:12px;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.dj-actionIcon{
  color:#d33;
  font-size:16px;
  font-weight:900;
  line-height:1.2;
}

.dj-actionAdd{
  color:#5bb531;
}

.dj-actionEdit{
  color:#d6a100;
}

.dj-actionView{
  color:#2b79c2;
}

.dj-adminMessage{
  max-width:780px;
  margin:0 0 20px;
  padding:10px 12px;
  border-left:4px solid #417690;
  background:#f5f8fa;
  color:#333;
}

.dj-adminMessage-success{
  border-left-color:#5bb531;
}

.dj-adminMessage-error{
  border-left-color:#ba2121;
}

.dj-adminMessage-warning{
  border-left-color:#f5dd5d;
}

.ux-pageEditor{
  display:grid;
  gap:16px;
}

.ux-pageEditorHead{
  align-items:end !important;
}

.ux-editorModeSelect{
  display:grid;
  gap:6px;
  min-width:180px;
}

.ux-editorModeSelect span{
  color:#9faed2;
  font-size:12px;
  font-weight:850;
}

.ux-editorModeSelect select{
  min-height:44px;
  border:1px solid rgba(140,164,225,.28);
  border-radius:14px;
  background:rgba(255,255,255,.08);
  color:#f6f9ff;
  font-weight:800;
}

.ux-htmlToolbar{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:10px;
}

.ux-htmlToolbar button{
  min-height:36px;
  padding:0 12px;
  border:1px solid rgba(140,164,225,.28);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#eaf1ff;
  font-size:12px;
  font-weight:900;
}

.ux-htmlToolbar button:hover,
.ux-htmlToolbar button:focus-visible{
  border-color:rgba(56,189,248,.55);
  background:rgba(56,189,248,.14);
}

.ux-adminHtmlPreview{
  padding:18px;
  border:1px solid rgba(140,164,225,.22);
  border-radius:22px;
  background:
    radial-gradient(circle at 0 0, rgba(56,189,248,.08), transparent 42%),
    rgba(255,255,255,.045);
  color:#dbe7ff;
}

.ux-adminHtmlPreview #seoHtmlPreview{
  display:grid;
  gap:10px;
  margin-top:10px;
}

.ux-adminHtmlPreview :is(h2,h3,h4,p,ul,ol,blockquote){
  margin:0;
}

.ux-adminHtmlPreview h2{
  color:#f6f9ff;
  font-size:24px;
  line-height:1.15;
}

.ux-adminHtmlPreview h3{
  color:#f6f9ff;
  font-size:19px;
}

.ux-adminHtmlPreview p,
.ux-adminHtmlPreview li{
  color:#cbd6f2;
  line-height:1.55;
}

.ux-adminHtmlPreview a{
  color:#8fdcff;
}

.ux-adminHtmlPreview blockquote{
  padding:12px 14px;
  border-left:3px solid rgba(56,189,248,.65);
  border-radius:12px;
  background:rgba(255,255,255,.05);
}

.ux-adminHelpBox{
  display:grid;
  gap:6px;
  padding:14px 16px;
  border:1px solid rgba(56,189,248,.24);
  border-radius:18px;
  background:rgba(56,189,248,.075);
  color:#dce8ff;
}

.ux-adminHelpBox strong{
  color:#f7fbff;
}

.ux-adminHelpBox span{
  color:#c6d3ef;
  line-height:1.5;
}

.ux-htmlToolbar{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:12px;
  border:1px solid rgba(140,164,225,.22);
  border-radius:18px;
  background:rgba(255,255,255,.045);
}

.ux-htmlToolbar button{
  min-height:34px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  background:rgba(255,255,255,.07);
  color:#edf4ff;
  font-size:.82rem;
  font-weight:800;
}

.ux-htmlToolbar button:hover,
.ux-htmlToolbar button:focus-visible{
  border-color:rgba(56,189,248,.62);
  background:rgba(56,189,248,.14);
}

.ux-adminHtmlPreview table{
  width:100%;
  border-collapse:collapse;
  overflow:hidden;
  border-radius:12px;
}

.ux-adminHtmlPreview th,
.ux-adminHtmlPreview td{
  padding:10px 12px;
  border:1px solid rgba(255,255,255,.12);
}

.ux-adminHtmlPreview details{
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  background:rgba(255,255,255,.045);
}

.ux-adminHtmlPreview summary{
  color:#f6f9ff;
  font-weight:900;
  cursor:pointer;
}

@media (max-width:900px){
  .ux-managedSeoText .seo-columns{
    grid-template-columns:1fr;
  }

  .dj-adminTop{
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
    padding:16px 20px;
  }

  .dj-adminLogo{
    font-size:25px;
  }

  .dj-adminUser{
    flex-wrap:wrap;
    gap:6px;
    font-size:12px;
  }

  .dj-adminWrap{
    width:100%;
    padding:22px 16px 48px;
  }

  .dj-adminGrid{
    grid-template-columns:1fr;
    gap:28px;
  }

  .dj-adminModule th{
    width:auto;
  }

  .dj-adminModule td{
    width:auto;
    padding-left:4px;
  }

  .dj-adminModule th a,
  .dj-adminModule th span,
  .dj-adminAdd,
  .dj-adminChange,
  .dj-adminView{
    font-size:14px;
  }
}

/* Production CMS admin */
.PageAdminCms .site-header,
.PageAdminCms .site-footer,
.PageAdminCms .ux-bottomPlayer{
  display:none;
}

.ux-cmsPage{
  min-height:100dvh;
  background:
    radial-gradient(circle at 18% -10%, rgba(49,191,245,.14), transparent 34%),
    radial-gradient(circle at 92% 4%, rgba(136,85,255,.16), transparent 32%),
    var(--ux-bg, #070d20);
  color:var(--ux-text, #f3f7ff);
  padding:0;
}

.ux-cmsShell{
  display:grid;
  grid-template-columns:280px minmax(0,1fr);
  min-height:100dvh;
}

.ux-cmsSidebar{
  position:sticky;
  top:0;
  height:100dvh;
  overflow-y:auto;
  border-right:1px solid rgba(255,255,255,.12);
  background:rgba(6,12,31,.78);
  backdrop-filter:blur(18px);
}

.ux-cmsNav{
  display:grid;
  gap:4px;
}

.ux-cmsNav a,
.ux-adminSidebar a.is-active{
  min-height:38px;
}

.ux-cmsNav a.is-active,
.ux-adminSidebar a.is-active{
  border-color:rgba(49,191,245,.55);
  background:linear-gradient(135deg, rgba(49,191,245,.18), rgba(136,85,255,.16));
  color:var(--ux-text, #f3f7ff);
}

.ux-cmsMain{
  width:100%;
  max-width:none;
  padding:28px clamp(18px, 3vw, 42px) 54px;
}

.ux-cmsTopbar{
  gap:20px;
  align-items:flex-start;
}

.ux-cmsTopActions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:10px;
  max-width:760px;
}

.ux-cmsGlobalSearch{
  min-width:min(520px, 100%);
}

.ux-cmsMetrics{
  grid-template-columns:repeat(4, minmax(0, 1fr));
}

.ux-cmsDashboardGrid{
  align-items:stretch;
  margin:18px 0;
}

.ux-cmsHealthRows{
  display:grid;
  gap:10px;
}

.ux-cmsHealthRows div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:11px 0;
  border-bottom:1px solid rgba(255,255,255,.12);
}

.ux-cmsHealthRows div:last-child{
  border-bottom:0;
}

.ux-cmsHealthRows span,
.ux-cmsTable td{
  color:rgba(232,239,255,.78);
}

.ux-cmsHealthRows strong{
  color:var(--ux-text, #f3f7ff);
  font-size:1.05rem;
}

.ux-cmsModuleGrid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:10px;
}

.ux-cmsModuleGrid a{
  display:grid;
  gap:5px;
  padding:14px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  background:rgba(255,255,255,.055);
  color:var(--ux-text, #f3f7ff);
  text-decoration:none;
}

.ux-cmsModuleGrid a:hover,
.ux-cmsModuleGrid a:focus-visible{
  border-color:rgba(49,191,245,.55);
  transform:translateY(-1px);
}

.ux-cmsModuleGrid span{
  color:rgba(232,239,255,.72);
  font-size:.88rem;
}

.ux-cmsInlineForm{
  display:grid;
  grid-template-columns:repeat(4, minmax(160px,1fr));
  gap:14px;
}

.ux-cmsInlineForm .ux-adminFullField,
.ux-cmsInlineForm button{
  grid-column:1 / -1;
}

.ux-checkboxField{
  flex-direction:row !important;
  align-items:center !important;
  gap:10px !important;
  min-height:44px;
}

.ux-checkboxField input{
  width:18px;
  height:18px;
}

.ux-codeEditor{
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  min-height:360px;
  white-space:pre;
}

.ux-cmsTableFilters{
  max-width:none;
  grid-template-columns:repeat(4, minmax(120px,1fr));
}

.ux-cmsTableWrap{
  max-height:70vh;
  scrollbar-color:rgba(136,85,255,.9) rgba(232,239,255,.18);
  scrollbar-width:thin;
}

.ux-cmsTableWrap::-webkit-scrollbar{
  width:10px;
  height:10px;
}

.ux-cmsTableWrap::-webkit-scrollbar-track{
  background:rgba(232,239,255,.16);
  border-radius:999px;
}

.ux-cmsTableWrap::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg, rgba(49,191,245,.95), rgba(136,85,255,.95));
  border-radius:999px;
}

.ux-adminStatus{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:3px 9px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  background:rgba(255,255,255,.07);
  color:var(--ux-text, #f3f7ff);
  font-size:.78rem;
  font-weight:800;
}

.ux-cmsTable code{
  white-space:normal;
  color:rgba(232,239,255,.86);
}

.ux-adminPagination{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  padding-top:14px;
  flex-wrap:wrap;
}

.ux-adminPagination span{
  color:rgba(232,239,255,.78);
  font-weight:800;
}

.ux-adminPagination .is-disabled{
  pointer-events:none;
  opacity:.45;
}

.ux-adminPageSize{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:rgba(232,239,255,.78);
  font-weight:800;
}

.ux-adminPageSize select{
  min-height:40px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  background:rgba(255,255,255,.08);
  color:#eef5ff;
}

.ux-slugTools{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  margin-top:-8px;
  color:rgba(232,239,255,.72);
  font-size:.9rem;
  font-weight:800;
}

.ux-adminHint{
  display:block;
  margin-top:6px;
  color:rgba(56,189,248,.9);
  font-weight:800;
}

.ux-pageEditorTabs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:14px;
}

.ux-pageEditorTabs a{
  min-height:38px;
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  background:rgba(255,255,255,.055);
  color:#edf4ff;
  text-decoration:none;
  font-size:.84rem;
  font-weight:900;
}

.ux-adminMiniPanel{
  display:grid;
  gap:12px;
  margin-top:12px;
  padding:16px;
  border:1px solid rgba(140,164,225,.18);
  border-radius:20px;
  background:rgba(255,255,255,.035);
}

.ux-richEditor{
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid rgba(140,164,225,.24);
  border-radius:22px;
  background:rgba(5,14,42,.45);
}

.ux-richModeBar,
.ux-richToolbar{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.ux-richModeBar button,
.ux-richToolbar button{
  min-height:34px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  background:rgba(255,255,255,.07);
  color:#edf4ff;
  font-size:.8rem;
  font-weight:900;
}

.ux-richModeBar button:hover,
.ux-richToolbar button:hover,
.ux-richModeBar button:focus-visible,
.ux-richToolbar button:focus-visible{
  border-color:rgba(56,189,248,.62);
  background:rgba(56,189,248,.14);
}

.ux-richVisual,
.ux-richPreview,
.ux-richHtmlSource{
  min-height:280px;
  padding:16px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  background:rgba(255,255,255,.92);
  color:#111827;
  overflow:auto;
}

.ux-richEditorCompact .ux-richVisual,
.ux-richEditorCompact .ux-richPreview,
.ux-richEditorCompact .ux-richHtmlSource{
  min-height:130px;
}

.ux-richVisual :is(h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,table,details),
.ux-richPreview :is(h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,table,details){
  margin-top:0;
}

.ux-richVisual table,
.ux-richPreview table{
  width:100%;
  border-collapse:collapse;
}

.ux-richVisual th,
.ux-richVisual td,
.ux-richPreview th,
.ux-richPreview td{
  padding:8px 10px;
  border:1px solid rgba(17,24,39,.18);
}

.ux-richVisual figure img,
.ux-richPreview figure img{
  max-width:100%;
  height:auto;
  border-radius:12px;
}

.ux-richStats{
  color:rgba(232,239,255,.72);
  font-size:.8rem;
  font-weight:800;
}

.ux-richEditor.is-fullscreen{
  position:fixed;
  inset:18px;
  z-index:9999;
  overflow:auto;
  box-shadow:0 24px 80px rgba(0,0,0,.45);
}

.ux-editorSkeleton{
  padding:14px 16px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:16px;
  background:linear-gradient(90deg, rgba(255,255,255,.05), rgba(255,255,255,.12), rgba(255,255,255,.05));
  color:#edf4ff;
  font-weight:900;
}

@media (max-width: 1100px){
  .ux-cmsShell{
    grid-template-columns:1fr;
  }
  .ux-cmsSidebar{
    position:relative;
    height:auto;
    border-right:0;
    border-bottom:1px solid rgba(255,255,255,.12);
  }
  .ux-cmsNav{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
  .ux-cmsMetrics{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
  .ux-cmsTopActions{
    justify-content:flex-start;
  }
}

@media (max-width: 680px){
  .ux-cmsMain{
    padding:18px 12px 42px;
  }
  .ux-cmsNav,
  .ux-cmsMetrics,
  .ux-cmsModuleGrid,
  .ux-cmsInlineForm,
  .ux-cmsTableFilters{
    grid-template-columns:1fr;
  }
  .ux-cmsGlobalSearch{
    min-width:100%;
  }
}

.ux-blogEngagementGrid,
.ux-commentForm{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  align-items:end;
}

.ux-ratingForm{
  display:grid;
  gap:8px;
  align-items:start;
}

.ux-ratingLabel{
  color:rgba(232,239,255,.76);
  font-weight:800;
}

.ux-starInput{
  display:flex;
  flex-direction:row-reverse;
  justify-content:flex-end;
  gap:2px;
}

.ux-starInput input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.ux-starInput label{
  cursor:pointer;
  color:rgba(232,239,255,.28);
  font-size:1.65rem;
  line-height:1;
  transition:color .16s ease, transform .16s ease;
}

.ux-starInput label:hover,
.ux-starInput label:hover ~ label,
.ux-starInput input:checked ~ label{
  color:#f7b955;
  transform:translateY(-1px);
}

.ux-ratingAutoHint{
  color:rgba(232,239,255,.58);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.01em;
}

.ux-ratingForm.is-submitting .ux-starInput{
  pointer-events:none;
  opacity:.7;
}

.ux-ratingSummary{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin:0;
  color:rgba(232,239,255,.76);
  font-weight:800;
}

.ux-commentsSection{
  padding-top:26px;
}

.ux-commentsBlock{
  position:relative;
  display:grid;
  gap:18px;
  overflow:hidden;
  padding:28px !important;
  border-color:rgba(77,214,255,.22) !important;
  background:
    radial-gradient(520px 220px at 100% 0%, rgba(141,91,255,.18), transparent 72%),
    radial-gradient(420px 200px at 0% 100%, rgba(53,213,255,.12), transparent 70%),
    linear-gradient(180deg, rgba(18,29,62,.94), rgba(10,15,34,.98)) !important;
}

.ux-commentsHead{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:20px;
  align-items:start;
}

.ux-commentsHead h2{
  margin:8px 0 8px;
}

.ux-commentsHead p{
  max-width:650px;
  margin:0;
  color:rgba(232,239,255,.72);
  font-weight:700;
  line-height:1.55;
}

.ux-commentSpark{
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  border:1px solid rgba(77,214,255,.26);
  border-radius:18px;
  background:rgba(255,255,255,.06);
  color:#35d5ff;
  box-shadow:0 18px 42px rgba(77,214,255,.14);
}

.ux-commentComposer{
  display:grid;
  justify-items:start;
  gap:14px;
}

.ux-commentComposer summary{
  list-style:none;
  cursor:pointer;
  text-align:center;
}

.ux-commentToggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 22px;
  border:1px solid rgba(77,214,255,.42);
  border-radius:999px;
  background:linear-gradient(135deg, #35d5ff, #8d5bff);
  color:#fff;
  font-weight:900;
  box-shadow:0 18px 42px rgba(77,214,255,.22), inset 0 1px 0 rgba(255,255,255,.28);
}

.ux-commentToggle span{
  color:#fff;
}

.ux-commentOpenBtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 22px;
  border:1px solid rgba(77,214,255,.44);
  border-radius:999px;
  background:linear-gradient(135deg, #35d5ff, #8d5bff);
  color:#fff;
  font-weight:900;
  box-shadow:0 18px 42px rgba(77,214,255,.2), inset 0 1px 0 rgba(255,255,255,.26);
  cursor:pointer;
}

.ux-commentOpenBtn:hover,
.ux-commentOpenBtn:focus-visible{
  transform:translateY(-1px);
  box-shadow:0 22px 48px rgba(77,214,255,.26), inset 0 1px 0 rgba(255,255,255,.32);
}

.ux-commentOpenBtnHero{
  min-height:44px;
}

.ux-commentComposer summary::-webkit-details-marker{
  display:none;
}

.ux-commentComposer[open] .ux-commentToggle{
  box-shadow:0 20px 48px rgba(77,214,255,.28), inset 0 1px 0 rgba(255,255,255,.34);
}

.ux-commentForm{
  width:min(100%, 860px);
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px !important;
  align-items:start !important;
  padding:18px;
  border:1px solid rgba(148,163,184,.24);
  border-radius:24px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.045)),
    rgba(12,20,44,.9);
  box-shadow:0 22px 70px rgba(0,0,0,.2);
}

.ux-commentFormIntro{
  grid-column:1 / -1;
  display:grid;
  gap:5px;
}

.ux-commentForm h3{
  margin:0;
  color:#eef5ff;
  font-size:1.08rem;
}

.ux-commentFormIntro p{
  margin:0;
  max-width:680px;
  color:rgba(232,239,255,.64);
  font-weight:700;
  line-height:1.5;
}

.ux-commentForm label{
  display:grid;
  gap:7px;
  color:rgba(232,239,255,.78);
  font-weight:850;
}

.ux-commentForm input,
.ux-commentForm textarea,
.ux-commentForm select{
  width:100%;
  min-height:46px;
  border:1px solid rgba(148,163,184,.28);
  border-radius:16px;
  background:rgba(255,255,255,.075);
  color:#eef5ff;
  padding:12px 14px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}

.ux-commentForm textarea{
  min-height:150px;
  resize:vertical;
}

.ux-commentForm input:focus,
.ux-commentForm textarea:focus{
  outline:none;
  border-color:rgba(77,214,255,.72);
  box-shadow:0 0 0 4px rgba(77,214,255,.12), inset 0 1px 0 rgba(255,255,255,.08);
}

.ux-commentForm small{
  justify-self:end;
  color:rgba(232,239,255,.62);
  font-weight:850;
}

.ux-checkboxField{
  grid-template-columns:auto minmax(0,1fr);
  align-items:start;
  gap:10px !important;
  color:rgba(232,239,255,.7) !important;
}

.ux-checkboxField input[type="checkbox"]{
  width:20px;
  height:20px;
  min-height:20px;
  margin-top:2px;
  padding:0;
  accent-color:#35d5ff;
}

.ux-commentSubmit{
  justify-self:start;
  min-height:46px;
  padding:0 24px;
  border:0;
  border-radius:999px;
  background:linear-gradient(135deg, #35d5ff, #8d5bff);
  color:#fff;
  font-weight:950;
  box-shadow:0 18px 44px rgba(77,214,255,.22);
  cursor:pointer;
}

.ux-commentNotice{
  margin:0;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid rgba(77,214,255,.26);
  background:rgba(77,214,255,.1);
  color:#eef5ff;
  font-weight:800;
}

.ux-commentNoticeError{
  border-color:rgba(255,118,118,.32);
  background:rgba(255,118,118,.1);
}

.ux-commentList{
  display:grid;
  gap:12px;
  margin:0;
}

.ux-commentCard{
  border:1px solid rgba(148,163,184,.22);
  border-radius:18px;
  background:rgba(255,255,255,.055);
  padding:14px;
}

.ux-commentCard div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}

.ux-commentCard strong{
  color:#eef5ff;
}

.ux-commentCard span{
  color:rgba(232,239,255,.62);
}

.ux-commentEmpty{
  display:flex;
  align-items:center;
  min-height:54px;
  margin:0;
  padding:14px 16px;
  border:1px dashed rgba(148,163,184,.24);
  border-radius:18px;
  background:rgba(255,255,255,.035);
  color:rgba(232,239,255,.68) !important;
}

.ux-commentCard p{
  margin:0;
  color:rgba(232,239,255,.82);
  line-height:1.55;
}

@media (max-width: 760px){
  .ux-commentsHead,
  .ux-commentCard div{
    align-items:stretch;
    grid-template-columns:1fr;
  }
  .ux-blogEngagementGrid,
  .ux-commentForm{
    grid-template-columns:1fr !important;
  }
  .ux-commentsBlock{
    padding:20px !important;
  }
}

.ux-audioRating{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  margin:10px 0 16px;
  padding:14px;
  border:1px solid rgba(77,214,255,.25);
  border-radius:18px;
  background:
    radial-gradient(260px 120px at 0% 0%, rgba(41,214,255,.12), transparent 72%),
    rgba(255,255,255,.055);
}

.ux-audioRating h3{
  margin:2px 0 4px;
  color:#eef5ff !important;
  font-size:1rem;
}

.ux-audioRating p{
  margin:0;
  color:rgba(232,239,255,.72);
}

.ux-audioRatingCopy{
  display:grid;
  gap:6px;
}

.ux-audioRatingActions{
  display:grid;
  gap:10px;
  justify-items:end;
}

.ux-audioRatingForm{
  grid-template-columns:auto auto;
  gap:8px 12px;
  justify-items:end;
}

.ux-audioRatingForm .ux-ratingLabel{
  grid-column:1/-1;
  justify-self:end;
}

.ux-audioRatingForm .ux-ratingAutoHint{
  grid-column:1/-1;
  justify-self:end;
}

.ux-audioRatingCommentBtn{
  min-height:38px;
  padding:0 18px;
  font-size:.9rem;
  box-shadow:0 14px 34px rgba(77,214,255,.18), inset 0 1px 0 rgba(255,255,255,.24);
}

.ux-starMeter{
  position:relative;
  display:inline-block;
  color:rgba(232,239,255,.28);
  font-size:1.35rem;
  line-height:1;
  letter-spacing:.03em;
}

.ux-starMeterBase{
  color:rgba(232,239,255,.28);
}

.ux-starMeterFill{
  position:absolute;
  inset:0 auto 0 0;
  overflow:hidden;
  color:#f7b955;
  white-space:nowrap;
}

.ux-commentList{
  display:grid;
  gap:10px;
  margin-bottom:16px;
}

.ux-commentList article{
  padding:14px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  background:rgba(255,255,255,.045);
}

.ux-commentList span{
  display:block;
  color:rgba(232,239,255,.64);
  font-size:.84rem;
}

.ux-commentForm label{
  display:grid;
  gap:7px;
  color:rgba(232,239,255,.78);
  font-weight:800;
}

.ux-commentForm :is(input,select,textarea),
.ux-ratingForm select{
  min-height:44px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:14px;
  background:rgba(255,255,255,.08);
  color:#eef5ff;
  padding:10px 12px;
}

.ux-commentWide{
  grid-column:1/-1;
}

.ux-commentsSection .ux-commentList{
  margin:0;
}

.ux-commentsSection .ux-commentForm{
  width:min(100%, 860px);
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px !important;
  padding:18px;
  border-radius:24px;
}

.ux-commentsSection .ux-commentForm :is(input,select,textarea){
  border-radius:16px;
}

.ux-commentsSection .ux-commentSubmit{
  min-height:46px;
}

.ux-hpField{
  position:absolute;
  left:-9999px;
}

@media (max-width: 760px){
  .ux-blogEngagementGrid,
  .ux-commentForm{
    grid-template-columns:1fr;
  }
  .ux-audioRating{
    grid-template-columns:1fr;
  }
  .ux-audioRatingForm,
  .ux-audioRatingForm .ux-ratingLabel,
  .ux-audioRatingActions{
    justify-items:start;
    justify-self:start;
  }
  .ux-ratingForm{
    display:grid;
  }
}

body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) :is(h1,h2,h3,h4,h5,h6){
  color:var(--nx-ink) !important;
}

body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) .ux-guideCard{
  background:
    linear-gradient(180deg, rgba(17,25,53,.92), rgba(7,11,26,.98)),
    var(--nx-card) !important;
}

body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) .ux-guideCardBody{
  position:relative;
  margin:-18px 12px 12px;
  border:1px solid rgba(140,164,225,.28);
  border-radius:18px;
  background:
    radial-gradient(280px 120px at 0% 0%, rgba(41,214,255,.16), transparent 70%),
    linear-gradient(180deg, rgba(13,20,44,.96), rgba(8,13,31,.98));
  box-shadow:0 18px 44px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.08);
}

body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) .ux-guideCardBody h3,
body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) .ux-guideCardBody h3 a{
  color:var(--nx-ink) !important;
  text-shadow:0 2px 16px rgba(0,0,0,.36);
}

body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) .ux-guideCardBody p,
body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) .ux-cardMeta{
  color:#c8d4f2 !important;
}

body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) .ux-guideCardBody .ux-badge{
  border-color:rgba(41,214,255,.28);
  background:rgba(41,214,255,.12);
  color:#dce8ff !important;
}

.ux-cardImageLink,
.ux-cardTitleLink,
.ux-cardPrimaryLink,
.ux-badgeLink{
  color:inherit;
  text-decoration:none;
}

.ux-cardImageLink{
  display:block;
}

.ux-cardImageLink > img{
  display:block;
}

.ux-cardTitleLink:hover,
.ux-cardTitleLink:focus-visible,
.ux-cardPrimaryLink:hover,
.ux-cardPrimaryLink:focus-visible{
  color:var(--nx-ink);
  text-decoration:underline;
  text-decoration-color:rgba(41,214,255,.55);
  text-underline-offset:4px;
}

.ux-badgeLink{
  width:max-content;
  transition:border-color .16s ease, background .16s ease, color .16s ease, transform .16s ease;
}

.ux-badgeLink:hover,
.ux-badgeLink:focus-visible{
  outline:none;
  border-color:rgba(41,214,255,.58) !important;
  background:rgba(41,214,255,.2) !important;
  color:#ffffff !important;
  transform:translateY(-1px);
}

/* Final public card readability pass: city/place guide cards need a real dark
   text plate over photo-heavy cards, not just light text on the card surface. */
body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) :is(.ux-cityGuideCard,.ux-placeGuideCard).ux-guideCard{
  overflow:hidden !important;
  border-color:rgba(145,169,225,.26) !important;
  background:
    linear-gradient(180deg, rgba(12,18,42,.98), rgba(5,9,24,1)),
    var(--nx-card) !important;
}

body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) :is(.ux-cityGuideCard,.ux-placeGuideCard).ux-guideCard :is(.ux-cardImageWrap,.ux-cardImageLink,.ag-placeImageLink){
  position:relative;
  display:block;
  isolation:isolate;
}

body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) :is(.ux-cityGuideCard,.ux-placeGuideCard).ux-guideCard :is(.ux-cardImageWrap,.ux-cardImageLink,.ag-placeImageLink)::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  z-index:1;
  height:48%;
  pointer-events:none;
  background:linear-gradient(180deg, transparent, rgba(4,8,24,.78));
}

body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) :is(.ux-cityGuideCard,.ux-placeGuideCard).ux-guideCard .ux-guideCardBody{
  position:relative !important;
  z-index:3 !important;
  margin:-26px 12px 12px !important;
  padding:16px !important;
  border:1px solid rgba(153,177,238,.34) !important;
  border-radius:18px !important;
  background:
    radial-gradient(240px 110px at 0% 0%, rgba(41,214,255,.18), transparent 72%),
    linear-gradient(180deg, rgba(9,16,39,.98), rgba(5,10,28,.99)) !important;
  box-shadow:
    0 20px 52px rgba(0,0,0,.52),
    inset 0 1px 0 rgba(255,255,255,.12) !important;
  backdrop-filter:blur(10px) saturate(130%);
}

body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) :is(.ux-cityGuideCard,.ux-placeGuideCard).ux-guideCard .ux-guideCardBody :is(h3,h3 a,.ux-cardTitleLink){
  color:#ffffff !important;
  text-shadow:0 2px 18px rgba(0,0,0,.58) !important;
}

body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) :is(.ux-cityGuideCard,.ux-placeGuideCard).ux-guideCard .ux-guideCardBody p{
  color:#dce7ff !important;
  text-shadow:0 1px 12px rgba(0,0,0,.42) !important;
}

body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) :is(.ux-cityGuideCard,.ux-placeGuideCard).ux-guideCard .ux-guideCardBody .ux-cardMeta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  color:#d5e0f7 !important;
}

body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) :is(.ux-cityGuideCard,.ux-placeGuideCard).ux-guideCard .ux-guideCardBody .ux-cardMeta span{
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#d5e0f7 !important;
  padding:5px 9px;
}

body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) :is(.ux-cityGuideCard,.ux-placeGuideCard).ux-guideCard .ux-guideCardBody :is(.ux-cardCta,.ux-cardPrimaryLink){
  color:#ffffff !important;
  text-shadow:0 1px 12px rgba(0,0,0,.42);
}

body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) :is(.ux-cityGuideCard,.ux-placeGuideCard).ux-guideCard .ux-guideCardBody .ux-badge{
  border-color:rgba(41,214,255,.36) !important;
  background:rgba(8,21,48,.88) !important;
  color:#eef6ff !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}

/* Brand/account/contact fixes */
.ct-subscribeDialog::before{
  display:none !important;
}

.ct-subscribeLogo{
  display:block;
  width:min(184px, 58vw);
  height:auto;
  margin:0 0 14px;
  filter:drop-shadow(0 12px 26px rgba(41,214,255,.18));
}

.ct-authActions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:10px;
}

.ct-authForm input[hidden]{
  display:none !important;
}

.ux-contactPage,
.ux-authMessagePage,
.ux-accountPage{
  padding:clamp(42px, 7vw, 90px) 0;
  background:
    radial-gradient(780px 360px at 12% 0%, rgba(41,214,255,.12), transparent 60%),
    radial-gradient(780px 360px at 88% 8%, rgba(139,92,246,.12), transparent 62%),
    var(--nx-bg);
}

.ux-contactShell{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr);
  gap:28px;
  align-items:start;
}

.ux-contactIntro,
.ux-contactFormCard,
.ux-authMessageCard,
.ux-accountPanel{
  border:1px solid rgba(140,164,225,.25);
  border-radius:28px;
  background:
    radial-gradient(420px 180px at 0% 0%, rgba(41,214,255,.14), transparent 72%),
    linear-gradient(180deg, rgba(16,24,54,.94), rgba(7,12,31,.98));
  box-shadow:0 26px 72px rgba(0,0,0,.36), inset 0 1px 0 rgba(255,255,255,.08);
}

.ux-contactIntro,
.ux-contactFormCard,
.ux-authMessageCard{
  padding:clamp(24px, 4vw, 42px);
}

.ux-contactIntro h1,
.ux-authMessageCard h1,
.ux-accountHero h1{
  margin:10px 0 18px;
  color:var(--nx-ink) !important;
  font-size:clamp(46px, 7vw, 82px);
  line-height:.95;
}

.ux-contactIntro p,
.ux-authMessageCard p,
.ux-accountHero p{
  max-width:58ch;
  color:#c9d4ee;
  font-size:clamp(17px, 2vw, 22px);
  line-height:1.55;
}

.ux-contactMail{
  display:inline-flex;
  margin-top:18px;
  color:#fff;
  font-weight:900;
  text-decoration:none;
}

.ux-contactMail:hover,
.ux-contactMail:focus-visible{
  color:#29d6ff;
  text-decoration:underline;
  text-underline-offset:4px;
}

.ux-contactForm{
  display:grid;
  gap:18px;
}

.ux-contactForm label{
  display:grid;
  gap:8px;
  color:#c9d4ee;
  font-weight:800;
}

.ux-contactForm input,
.ux-contactForm textarea,
.ux-contactForm select{
  width:100%;
  min-height:52px;
  border:1px solid rgba(140,164,225,.34);
  border-radius:16px;
  background:rgba(255,255,255,.08);
  color:#fff;
  padding:12px 14px;
  outline:none;
}

.ux-contactForm input:focus,
.ux-contactForm textarea:focus,
.ux-contactForm select:focus{
  border-color:rgba(41,214,255,.68);
  box-shadow:0 0 0 4px rgba(41,214,255,.12);
}

.ux-contactSubmit{
  min-height:54px;
}

.ux-authMessageCard{
  max-width:760px;
}

.ux-accountShell{
  display:grid;
  gap:20px;
}

.ux-accountHero{
  max-width:none;
  padding:clamp(24px, 4vw, 44px);
  border:1px solid rgba(140,164,225,.25);
  border-radius:28px;
  background:
    radial-gradient(620px 260px at 0% 0%, rgba(41,214,255,.16), transparent 70%),
    radial-gradient(620px 260px at 100% 0%, rgba(139,92,246,.16), transparent 70%),
    linear-gradient(180deg, rgba(16,24,54,.96), rgba(7,12,31,.98)) !important;
  box-shadow:0 26px 72px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.08);
}

.ux-accountVerify{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
  width:fit-content;
  max-width:100%;
  margin-top:18px;
  padding:12px 14px;
  border:1px solid rgba(41,214,255,.28);
  border-radius:18px;
  background:rgba(41,214,255,.1);
  color:#dce8ff;
  font-weight:800;
}

.ux-accountTabs{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.ux-accountTabs a,
.ux-accountAction,
.ux-accountGhost{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:9px 14px;
  border:1px solid rgba(140,164,225,.28);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#eef6ff;
  font-weight:900;
  text-decoration:none;
}

.ux-accountTabs a.is-active,
.ux-accountAction{
  border-color:rgba(41,214,255,.48);
  background:linear-gradient(135deg, rgba(41,214,255,.26), rgba(139,92,246,.24));
}

.ux-accountGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.ux-accountWide{
  grid-column:1 / -1;
}

.ux-accountPanel{
  padding:20px;
}

.ux-accountPanel h2{
  margin:0 0 14px;
  color:#fff !important;
}

.ux-accountPanelHead{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
}

.ux-accountList{
  display:grid;
  gap:10px;
}

.ux-accountHistoryCard{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  padding:14px;
  border:1px solid rgba(140,164,225,.2);
  border-radius:18px;
  background:rgba(255,255,255,.055);
}

.ux-accountHistoryCard strong,
.ux-accountFacts dd{
  color:#fff;
}

.ux-accountHistoryCard span,
.ux-accountHistoryCard small,
.ux-accountFacts dt{
  display:block;
  color:#b9c5e3;
  font-weight:800;
}

.ux-accountHistoryLink{
  margin-top:4px;
  overflow-wrap:anywhere;
}

.ux-accountHistoryLink a{
  color:#8ee8ff;
  text-decoration:none;
}

.ux-accountHistoryLink a:hover,
.ux-accountHistoryLink a:focus-visible{
  color:#fff;
  text-decoration:underline;
  text-underline-offset:3px;
}

.ux-accountProgress{
  height:7px;
  margin:9px 0 4px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.12);
}

.ux-accountProgress i{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#29d6ff,#8b5cf6);
}

.ux-accountFacts{
  display:grid;
  gap:12px;
  margin:0;
}

.ux-accountFacts div{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:12px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(140,164,225,.18);
}

.ux-accountDanger{
  display:grid;
  gap:10px;
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid rgba(248,113,113,.22);
  color:#f1c7ce;
}

/* Text over photo cards: add the simple grey backing the user requested. */
body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) :is(.ux-cityGuideCard,.ux-placeGuideCard,.ux-countryCard,.ux-guideCard) .ux-cardFallback{
  z-index:4 !important;
}

body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) :is(.ux-cityGuideCard,.ux-placeGuideCard,.ux-countryCard,.ux-guideCard) .ux-cardFallback span{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  max-width:calc(100% - 28px);
  padding:8px 18px !important;
  border:1px solid rgba(255,255,255,.28) !important;
  border-radius:12px !important;
  background:rgba(72,78,92,.78) !important;
  color:#fff !important;
  text-shadow:0 2px 12px rgba(0,0,0,.6) !important;
  box-shadow:0 12px 28px rgba(0,0,0,.34);
  backdrop-filter:blur(6px);
}

.ag-player-saveBtn{
  min-width:72px !important;
  border-color:rgba(41,214,255,.72) !important;
  background:
    radial-gradient(circle at 30% 18%, rgba(255,255,255,.18), transparent 34%),
    linear-gradient(135deg, rgba(41,214,255,.38), rgba(139,92,246,.34)) !important;
  color:#fff !important;
  font-weight:950 !important;
  box-shadow:
    0 0 24px rgba(41,214,255,.22),
    0 12px 26px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.16) !important;
}

.ag-player-saveBtn:hover,
.ag-player-saveBtn:focus-visible,
.ag-player-saveBtn.is-saved{
  border-color:rgba(41,214,255,.95) !important;
  box-shadow:
    0 0 28px rgba(41,214,255,.34),
    0 0 32px rgba(139,92,246,.22),
    inset 0 1px 0 rgba(255,255,255,.18) !important;
}

.ux-heroSaveBtn{
  border-color:rgba(41,214,255,.62) !important;
  background:linear-gradient(135deg,#29d6ff,#8b5cf6) !important;
  color:#fff !important;
  box-shadow:0 16px 34px rgba(41,214,255,.22), 0 0 28px rgba(139,92,246,.18) !important;
}

.ux-heroSaveBtn:hover,
.ux-heroSaveBtn:focus-visible,
.ux-heroSaveBtn.is-saved{
  color:#fff !important;
  transform:translateY(-1px);
  box-shadow:0 20px 42px rgba(41,214,255,.28), 0 0 34px rgba(139,92,246,.28) !important;
}

.PageLanding .ct-heroSearchSlot{
  order:0;
}

.PageLanding .ct-heroSearchSlot + .ux-homeHero{
  padding-top:clamp(28px,4vw,54px) !important;
}

.ct-heroSearchSlot + .ux-breadcrumbs{
  padding-top:clamp(10px,1.6vw,18px) !important;
}

.ct-heroSearchSlot + .ux-entityHero{
  padding-top:clamp(28px,4vw,48px) !important;
}

@media (max-width:991.98px){
  .ct-heroSearchSlot{
    padding:10px 0 0;
  }

  .ct-heroSearchSlot .container{
    justify-content:center;
  }

  .ct-heroSearchWrap{
    width:100%;
  }
}

.ag-player{
  isolation:isolate;
}

.ag-player.is-auth-locked .ag-player-inner{
  filter:blur(6px);
  pointer-events:none;
  user-select:none;
}

.ag-player.is-auth-locked .ag-playerAuthGate{
  display:flex;
}

.ag-playerAuthGate{
  position:absolute;
  inset:10px;
  z-index:5;
  display:none;
  align-items:center;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
  padding:18px;
  border:1px solid rgba(41,214,255,.34);
  border-radius:24px;
  background:linear-gradient(135deg, rgba(7,12,31,.82), rgba(25,32,70,.8));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 0 40px rgba(41,214,255,.16);
  backdrop-filter:blur(14px);
  text-align:center;
}

.ag-playerAuthGate[hidden]{
  display:none !important;
}

.ag-playerAuthGate p{
  margin:0;
  color:#fff;
  font-weight:950;
  letter-spacing:.01em;
}

.ag-playerAuthBtn{
  min-height:44px;
  padding-inline:22px !important;
}

@media (max-width: 860px){
  .ux-contactShell,
  .ux-accountGrid{
    grid-template-columns:1fr;
  }

  .ux-accountFacts div,
  .ux-accountHistoryCard{
    grid-template-columns:1fr;
  }
}

/* Compact readable button labels. Keep icons intact, but stop text buttons from
   clipping translated labels such as "Жіночий". */
body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) :is(button,.btn,.ag-inlineOpen,.ag-playerAuthBtn,.ux-heroSaveBtn,.ux-commentToggle,.ux-commentSubmit):not(.ag-iconBtn):not(.ux-playDot){
  font-weight:500 !important;
  letter-spacing:0 !important;
  text-align:center;
}

.ag-player-btn{
  font-weight:500 !important;
  letter-spacing:0 !important;
}

.ag-player-btn:is(#plSpeed,#plVoice,#plSaveGuide){
  width:auto !important;
  min-width:max-content !important;
  max-width:none !important;
  height:40px !important;
  padding-inline:10px !important;
  font-size:clamp(10px, .72vw, 12px) !important;
  font-weight:500 !important;
  line-height:1.05 !important;
  white-space:nowrap !important;
  overflow:visible !important;
  text-overflow:clip !important;
}

.ag-player-voiceBtn{
  min-width:max-content !important;
  padding-inline:11px !important;
  font-size:clamp(10px, .68vw, 12px) !important;
  font-weight:500 !important;
}

.ag-player-saveBtn{
  min-width:max-content !important;
  font-weight:500 !important;
}

/* Mobile responsive QA pass: compact public layouts and a proper bottom player. */
@media (max-width: 767.98px){
  :root{
    --ag-mobile-player-height: 96px;
  }

  html,
  body{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }

  body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) :is(.main,.container,section,article,aside,main,nav,form,div,ul,li){
    min-width:0;
  }

  body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) :is(img,video,canvas,iframe,svg){
    max-width:100%;
  }

  body.BodyHasPlayer{
    padding-bottom:calc(var(--ag-mobile-player-height) + env(safe-area-inset-bottom, 0px) + 14px) !important;
  }

  body.BodyHasPlayer:not(.ag-mapOverlayOpen) .main,
  body.BodyHasPlayer:not(.ag-mapOverlayOpen) .ct-footer{
    padding-bottom:24px !important;
  }

  body.ag-playerSheetOpen{
    overflow:hidden;
  }

  .ct-navbar{
    min-height:66px;
  }

  .ct-navbar .container{
    width:100%;
    max-width:100%;
    padding-inline:14px;
  }

  .ct-brandLogo img{
    width:min(176px, 58vw);
    height:auto;
    object-fit:contain;
  }

  .ct-brandTextFallback:not([hidden]){
    display:inline-flex;
    align-items:center;
    min-height:44px;
    color:#fff;
    font-size:clamp(24px, 7vw, 34px);
    font-weight:850;
  }

  .navbar-toggler{
    width:48px;
    min-width:48px;
    height:44px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:10px;
  }

  .ct-heroSearchSlot{
    padding-top:86px !important;
  }

  .PageLanding .ct-heroSearchSlot + .ux-homeHero,
  .ct-heroSearchSlot + .ux-entityHero{
    padding-top:24px !important;
  }

  .ct-heroSearchWrap,
  .ag-search-input{
    width:100%;
  }

  .ag-search-input{
    min-height:54px;
    font-size:16px;
  }

  .ux-homeHero,
  .ux-entityHero,
  .ux-section,
  .ux-contactPage,
  .ux-accountPage{
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .PageLanding .ux-homeHero{
    padding-top:22px !important;
  }

  .ux-productHeroCopy h1,
  .ux-heroCopy h1,
  .ux-entityHeroCopy h1{
    max-width:100%;
    font-size:clamp(32px, 11vw, 48px) !important;
    line-height:1.05 !important;
    overflow-wrap:anywhere;
  }

  .ux-productHeroCopy p,
  .ux-entityHeroCopy p,
  .ux-sectionHead p,
  .ux-textBlock p{
    font-size:clamp(15px, 4.2vw, 18px);
    line-height:1.55;
  }

  .ux-actions,
  .ux-heroActions{
    display:grid !important;
    grid-template-columns:1fr;
    gap:10px;
  }

  .ux-actions > *,
  .ux-heroActions > *,
  .ct-primaryBtn,
  .ct-secondaryBtn,
  .ux-commentOpenBtn,
  .ux-heroSaveBtn{
    width:100%;
    min-height:46px;
    justify-content:center;
    white-space:normal;
  }

  .ux-trustBullets,
  .ux-heroMeta,
  .ux-cardMeta,
  .ux-filterChips,
  .ux-popularSearches{
    max-width:100%;
    overflow-x:auto;
    scrollbar-width:none;
  }

  .ux-trustBullets::-webkit-scrollbar,
  .ux-heroMeta::-webkit-scrollbar,
  .ux-cardMeta::-webkit-scrollbar,
  .ux-filterChips::-webkit-scrollbar,
  .ux-popularSearches::-webkit-scrollbar{
    display:none;
  }

  .ux-entityHeroMedia{
    width:100%;
  }

  .ux-entityHeroMedia img,
  .ux-blogHero .ux-entityHeroMedia img{
    width:100%;
    max-height:300px;
    border-radius:22px;
  }

  .ux-storyCardLarge,
  .ux-sideCard,
  .ux-textBlock,
  .ux-commentsBlock,
  .ux-contactIntro,
  .ux-contactFormCard,
  .ux-accountHero,
  .ux-accountPanel{
    border-radius:22px !important;
  }

  .ux-storyCardLarge{
    padding:14px !important;
  }

  .ux-storyHead{
    grid-template-columns:1fr !important;
  }

  .ux-storyHead h2{
    font-size:clamp(24px, 7vw, 34px) !important;
    line-height:1.08;
  }

  .ag-voiceToggle{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }

  .ag-voiceBtn{
    min-height:44px;
    white-space:normal;
  }

  .ux-playerActions{
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
    margin-bottom:10px !important;
  }

  .ux-playerActions .btn{
    width:100%;
    min-height:46px;
    padding-inline:8px !important;
    white-space:normal;
  }

  .ux-audioRating{
    grid-template-columns:1fr !important;
    gap:12px;
    padding:12px !important;
  }

  .ux-audioRatingActions,
  .ux-audioRatingForm,
  .ux-audioRatingForm .ux-ratingLabel,
  .ux-audioRatingForm .ux-ratingAutoHint{
    width:100%;
    justify-items:start !important;
  }

  .ux-audioRatingCommentBtn{
    width:100%;
    min-height:44px;
  }

  .ag-secTop{
    grid-template-columns:minmax(0,1fr) auto !important;
  }

  .ag-secBtns{
    display:flex;
    gap:8px;
  }

  .ag-iconBtn,
  .ux-playDot{
    min-width:44px !important;
    min-height:44px !important;
  }

  .ux-mapCard,
  .ux-mapCardLarge,
  .ux-demoMapCard,
  .ux-modeMap,
  .ux-walkingMap,
  .PageLanding .ux-liveMapCard{
    height:min(380px, 68vh) !important;
    min-height:320px !important;
    border-radius:22px;
  }

  .ct-mapTopbar{
    align-items:stretch;
    grid-template-columns:1fr;
    gap:8px;
  }

  .ag-mapTopActions{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
  }

  .ag-mapAction{
    min-height:44px;
    padding-inline:12px;
    white-space:normal;
  }

  .ux-cardGrid,
  .ux-blogPostGrid,
  .ux-blogLayout,
  .ux-contactShell,
  .ux-accountGrid,
  .ux-relatedGrid{
    grid-template-columns:1fr !important;
  }

  .ux-guideCard{
    max-width:100%;
  }

  .ux-guideCard > img:not(.Flag),
  .ux-cardImageLink > img,
  .ag-placeImageLink > img{
    width:100%;
    aspect-ratio:16/10;
    object-fit:cover;
  }

  .ux-guideCardBody{
    margin:-18px 10px 10px !important;
    padding:14px !important;
  }

  .ux-blogArticle,
  .ux-blogArticle :is(p,li){
    font-size:16px;
    line-height:1.65;
  }

  .ux-blogArticle :is(img,figure,table,pre){
    max-width:100%;
    overflow:auto;
  }

  .ux-blogEngagementGrid,
  .ux-commentsSection .ux-commentForm,
  .ux-commentForm,
  .ux-contactForm{
    grid-template-columns:1fr !important;
  }

  .ux-commentsSection .ux-commentForm{
    width:100%;
    padding:14px !important;
    border-radius:20px;
  }

  .ux-commentComposer{
    width:100%;
  }

  .ux-commentToggle{
    width:100%;
    justify-content:center;
  }

  .ux-checkboxField{
    grid-template-columns:auto minmax(0,1fr) !important;
    align-items:start !important;
  }

  .ux-commentSubmit,
  .ux-contactSubmit{
    width:100%;
    justify-self:stretch;
  }

  .ux-accountTabs{
    flex-wrap:nowrap;
    overflow-x:auto;
    padding-bottom:4px;
    scrollbar-width:none;
  }

  .ux-accountTabs::-webkit-scrollbar{
    display:none;
  }

  .ux-accountTabs a{
    flex:0 0 auto;
  }

  .ux-accountPanelHead{
    align-items:stretch;
    flex-direction:column;
  }

  .ux-accountHistoryCard{
    grid-template-columns:1fr !important;
  }

  .ux-accountHistoryLink{
    overflow-wrap:anywhere;
  }

  .ct-footerColsWide{
    grid-template-columns:1fr !important;
  }

  .ct-footerBottom{
    align-items:flex-start;
    flex-direction:column;
  }

  .ag-player{
    left:8px !important;
    right:8px !important;
    bottom:max(8px, env(safe-area-inset-bottom, 0px)) !important;
    width:auto !important;
    max-width:none !important;
    border-radius:20px !important;
    background:linear-gradient(180deg, rgba(16,24,54,.98), rgba(7,12,31,.98)) !important;
    box-shadow:0 -8px 34px rgba(0,0,0,.42), 0 0 32px rgba(41,214,255,.14) !important;
  }

  .ag-player-inner{
    position:relative;
    padding:10px !important;
  }

  .ag-player-top{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    align-items:center !important;
    gap:8px !important;
  }

  .ag-player-now{
    min-height:56px;
    cursor:pointer;
  }

  .ag-player-copy{
    min-width:0;
  }

  .ag-player-title,
  .ag-player-meta,
  .ag-player-status{
    max-width:calc(100vw - 174px) !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }

  .ag-player-status{
    display:block;
    font-size:10px !important;
  }

  .ag-player-title{
    font-size:14px !important;
    line-height:1.15 !important;
  }

  .ag-player-meta{
    font-size:11px !important;
  }

  .ag-player-cover{
    width:42px;
    height:42px;
  }

  .ag-player-ctrls{
    display:flex !important;
    justify-content:flex-end !important;
    gap:8px !important;
  }

  .ag-player-ctrls :is(#plPrev,#plStop,#plSpeed,#plVoice,#plSaveGuide),
  .ag-player-volume,
  .ag-player-stats{
    display:none !important;
  }

  .ag-player-btn{
    width:44px !important;
    min-width:44px !important;
    height:44px !important;
    min-height:44px !important;
    padding:0 !important;
    border-radius:16px !important;
    font-size:12px !important;
    font-weight:500 !important;
  }

  .ag-player-btn svg{
    width:22px;
    height:22px;
  }

  .ag-bar{
    height:8px !important;
    margin-top:6px !important;
  }

  .ag-knob{
    width:14px !important;
    height:14px !important;
  }

  .ag-knobLabel{
    display:none !important;
  }

  .ag-playerLoading{
    margin-top:7px !important;
    font-size:11px;
  }

  .ag-playerSheet,
  .ag-playerSheetClose{
    display:none;
  }

  .ag-player.is-expanded{
    inset:auto 0 0 0 !important;
    max-height:min(92dvh, 720px) !important;
    overflow:hidden;
    border-radius:28px 28px 0 0 !important;
  }

  .ag-player.is-expanded .ag-player-inner{
    max-height:min(92dvh, 720px);
    display:grid;
    grid-template-rows:auto auto auto minmax(0,1fr);
    overflow:hidden;
    padding:14px !important;
  }

  .ag-player.is-expanded .ag-playerSheetClose{
    position:absolute;
    top:10px;
    right:12px;
    z-index:5;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:40px;
    min-width:40px;
    height:40px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:999px;
    background:rgba(255,255,255,.08);
    color:#fff;
    font-size:26px;
    line-height:1;
  }

  .ag-player.is-expanded .ag-player-top{
    grid-template-columns:1fr !important;
    padding-top:30px;
  }

  .ag-player.is-expanded .ag-player-now{
    padding-right:40px;
  }

  .ag-player.is-expanded .ag-player-title,
  .ag-player.is-expanded .ag-player-meta,
  .ag-player.is-expanded .ag-player-status{
    max-width:100% !important;
    white-space:normal !important;
  }

  .ag-player.is-expanded .ag-player-title{
    font-size:18px !important;
  }

  .ag-player.is-expanded .ag-player-ctrls{
    display:grid !important;
    grid-template-columns:repeat(4, minmax(0,1fr));
    width:100%;
  }

  .ag-player.is-expanded .ag-player-ctrls :is(#plPrev,#plStop,#plSpeed,#plVoice,#plSaveGuide),
  .ag-player.is-expanded .ag-player-stats{
    display:inline-flex !important;
  }

  .ag-player.is-expanded .ag-player-btn{
    width:100% !important;
    min-width:0 !important;
    height:44px !important;
    padding-inline:8px !important;
    white-space:nowrap !important;
  }

  .ag-player.is-expanded .ag-player-btn:is(#plSpeed,#plVoice,#plSaveGuide){
    grid-column:span 2;
    font-size:12px !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  .ag-player.is-expanded .ag-player-stats{
    align-items:center;
    justify-content:space-between;
    gap:8px;
    width:100%;
    font-size:12px;
  }

  .ag-player.is-expanded .ag-playerSheet{
    min-height:0;
    display:grid;
    gap:10px;
    overflow:hidden;
  }

  .ag-playerSheetHandle{
    width:46px;
    height:4px;
    margin:2px auto 0;
    border-radius:999px;
    background:rgba(255,255,255,.24);
  }

  .ag-playerSheetTools{
    display:none;
  }

  .ag-playerQueue{
    min-height:0;
    display:grid;
    gap:8px;
    overflow:auto;
    padding:2px 1px max(10px, env(safe-area-inset-bottom, 0px));
  }

  .ag-playerQueueItem{
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    gap:10px;
    align-items:center;
    min-height:58px;
    padding:9px;
    border:1px solid rgba(140,164,225,.2);
    border-radius:16px;
    background:rgba(255,255,255,.055);
    color:#eef6ff;
    text-align:left;
  }

  .ag-playerQueueItem.is-active{
    border-color:rgba(41,214,255,.5);
    background:
      radial-gradient(180px 90px at 0% 0%, rgba(41,214,255,.18), transparent 70%),
      rgba(255,255,255,.08);
  }

  .ag-playerQueueIndex{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:38px;
    height:38px;
    border-radius:14px;
    background:rgba(255,255,255,.08);
    color:#c8d4f2;
    font-size:12px;
  }

  .ag-playerQueueCopy{
    display:grid;
    gap:4px;
    min-width:0;
  }

  .ag-playerQueueCopy b,
  .ag-playerQueueCopy small{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .ag-playerQueueCopy small{
    color:#b9c5e3;
    font-size:11px;
  }

  .ag-playerQueueCopy i{
    display:block;
    width:0;
    height:4px;
    overflow:hidden;
    border-radius:999px;
    background:linear-gradient(90deg,#29d6ff,#8b5cf6);
  }

  .ag-playerQueueEmpty{
    margin:0;
    padding:14px;
    border:1px dashed rgba(140,164,225,.22);
    border-radius:16px;
    color:#c8d4f2;
  }

  .ag-player.is-auth-locked .ag-playerAuthGate{
    inset:8px;
    padding:14px;
    border-radius:20px;
  }

  .ag-playerAuthGate p{
    font-size:14px;
  }

  .ag-fullMapOverlay{
    z-index:7000;
  }

  .ag-fullMapTopbar{
    min-width:0;
  }

  .ag-fullMapTopbar h2{
    min-width:0;
  }

  .ag-fullMapTopActions{
    min-width:0;
  }

  .ag-fullMapTopActions .ag-mapAction{
    max-width:128px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .ag-mapSidebar{
    left:8px !important;
    right:8px !important;
    max-width:calc(100vw - 16px);
  }

  .ag-mapPlaceList{
    overscroll-behavior:contain;
  }

  .ag-mapPlaceList li{
    grid-template-columns:minmax(0,1fr);
  }

  .ag-mapPlaceList :is(.ag-mapPlacePlay,.ag-mapPlaceRoute){
    width:100%;
  }

  .leaflet-popup-content{
    max-width:min(260px, calc(100vw - 72px));
  }
}

@media (max-width: 430px){
  :root{
    --ag-mobile-player-height: 100px;
  }

  .container{
    padding-left:12px !important;
    padding-right:12px !important;
  }

  .ux-productHeroCopy h1,
  .ux-heroCopy h1,
  .ux-entityHeroCopy h1{
    font-size:clamp(30px, 10.5vw, 40px) !important;
  }

  .ux-heroMeta span,
  .ux-trustBullets span,
  .ux-cardMeta span{
    font-size:11px !important;
  }

  .ag-player-cover{
    display:none;
  }

  .ag-player-title,
  .ag-player-meta,
  .ag-player-status{
    max-width:calc(100vw - 128px) !important;
  }

  .ag-player-ctrls{
    gap:6px !important;
  }

  .ag-player-btn{
    width:42px !important;
    min-width:42px !important;
  }

  .ag-player.is-expanded .ag-player-cover{
    display:grid;
  }
}

@media (max-width: 360px){
  .ux-playerActions,
  .ag-mapTopActions{
    grid-template-columns:1fr !important;
  }

  .ag-player.is-expanded .ag-player-ctrls{
    grid-template-columns:repeat(3, minmax(0,1fr));
  }

  .ag-player.is-expanded .ag-player-btn:is(#plSpeed,#plVoice,#plSaveGuide){
    grid-column:span 3;
  }
}

@media (max-width: 900px){
  .PageAdmin .ct-adminShell,
  .PageAdminCms .ux-cmsShell,
  .ux-adminShell{
    grid-template-columns:1fr !important;
  }

  .PageAdmin .ct-adminSide,
  .PageAdminCms .ux-cmsSidebar,
  .ux-adminSidebar{
    position:relative !important;
    top:auto !important;
    height:auto !important;
    max-height:48dvh;
    overflow:auto;
  }

  .PageAdmin .ct-adminMain,
  .PageAdminCms .ux-cmsMain,
  .ux-adminMain{
    width:100%;
    padding:16px !important;
  }

  .ux-adminTableWrap,
  .ct-adminTableWrap,
  .ux-cmsTableWrap{
    overflow-x:auto;
  }

  .ux-adminTopbar,
  .ux-cmsTopbar,
  .ct-adminHead{
    align-items:stretch !important;
    flex-direction:column !important;
  }
}

/* Mobile polish follow-up: no queue blocks in the dock, compact audio cards, tidy map popups. */
.ag-playerSheet{
  display:none !important;
}

.ag-playerSheetClose{
  display:none;
}

.ag-player.is-expanded{
  min-height:132px !important;
}

.ag-player:not(.is-expanded) .ag-player-inner{
  cursor:pointer;
}

.ag-player .ag-player-ctrls,
.ag-player .ag-bar,
.ag-player .ag-playerSheetClose{
  cursor:default;
}

.ag-player.is-expanded .ag-player-inner{
  position:relative;
  padding:18px !important;
}

.ag-player.is-expanded .ag-playerSheetClose{
  position:absolute;
  top:10px;
  right:12px;
  z-index:5;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  width:40px;
  min-width:40px;
  height:40px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:26px;
  line-height:1;
}

.ag-player.is-expanded .ag-player-now{
  padding-right:44px;
}

.ag-player.is-expanded .ag-playerSheet{
  display:none !important;
}

@media (max-width: 767.98px){
  :is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist{
    gap:10px !important;
  }

  :is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-secTop{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 96px !important;
    align-items:center !important;
    gap:10px !important;
    min-height:0 !important;
    padding:12px !important;
    border-radius:18px !important;
  }

  :is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-secContent{
    width:100% !important;
    min-width:0 !important;
  }

  :is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-secTitle{
    display:block !important;
    max-width:100% !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
    font-size:17px !important;
  }

  :is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-secMeta{
    display:block !important;
    max-width:100% !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
    font-size:12px !important;
    line-height:1.25 !important;
  }

  :is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-badge,
  :is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-nowPill{
    min-height:24px !important;
    padding:3px 9px !important;
    font-size:10px !important;
  }

  :is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-secMiniProgress{
    margin-top:2px !important;
  }

  :is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-secBtns{
    width:96px !important;
    display:grid !important;
    grid-template-columns:44px 44px !important;
    gap:8px !important;
    align-self:center !important;
    justify-self:end !important;
  }

  :is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-iconBtn{
    width:44px !important;
    min-width:44px !important;
    height:44px !important;
    min-height:44px !important;
    padding:0 !important;
    border-radius:15px !important;
  }

  .leaflet-popup-content-wrapper{
    border-radius:18px !important;
  }

  .leaflet-popup-content{
    width:min(240px, calc(100vw - 84px)) !important;
    margin:10px !important;
  }

  .leaflet-popup-content .ag-mapPopup{
    width:100% !important;
    min-width:0 !important;
    display:grid !important;
    gap:5px !important;
  }

  .leaflet-popup-content .ag-mapPopupTitle,
  .leaflet-popup-content .ag-mapPopupMeta{
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }

  .leaflet-popup-content .ag-mapPopupActions{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:6px !important;
    margin-top:8px !important;
  }

  .leaflet-popup-content .ag-mapPopupActions .ag-mapAction{
    width:100% !important;
    min-height:38px !important;
    justify-content:center !important;
    padding:0 12px !important;
    border-radius:999px !important;
    font-size:12px !important;
    line-height:1.1 !important;
    white-space:normal !important;
    text-align:center !important;
  }

  .ag-player.is-expanded .ag-playerSheet{
    display:none !important;
  }

  .ag-player.is-expanded .ag-player-volume{
    grid-column:1 / -1;
    display:inline-flex !important;
    width:100%;
    min-height:44px;
    justify-content:space-between;
  }

  .ag-player.is-expanded .ag-player-volume input{
    flex:1 1 auto;
    width:auto;
  }
}

@media (max-width: 360px){
  :is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-secTop{
    grid-template-columns:1fr !important;
  }

  :is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-secBtns{
    width:100% !important;
    grid-template-columns:1fr 1fr !important;
    justify-self:stretch !important;
  }

  :is(.PageCity,.PagePlace,.PageCountry) #storySections.ux-playlist .ag-iconBtn{
    width:100% !important;
  }
}

/* TripAlto ticket CTA on city and country guide pages. */
.tp-travelCta{
  margin:clamp(22px, 4vw, 34px) 0 clamp(32px, 5vw, 52px);
  scroll-margin-top:170px;
}

.tp-travelCtaPanel{
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(280px, 360px);
  gap:clamp(20px, 4vw, 34px);
  min-height:252px;
  padding:clamp(22px, 3.4vw, 34px);
  overflow:hidden;
  border:2px solid transparent;
  border-radius:26px;
  background:
    linear-gradient(135deg, rgba(16,24,54,.98) 0%, rgba(6,10,25,.98) 48%, rgba(17,18,44,.98) 100%) padding-box,
    linear-gradient(115deg, #29d6ff 0%, #8d5bff 24%, #ff4fd8 46%, #f0b35e 68%, #19d8a0 84%, #29d6ff 100%) border-box;
  background-size:auto, 320% 320%;
  background-position:center, 0% 50%;
  box-shadow:0 26px 64px rgba(0,0,0,.36), 0 0 38px rgba(41,214,255,.1), 0 0 0 1px rgba(255,255,255,.06) inset;
  color:var(--nx-ink);
  text-decoration:none;
  animation:tpCtaBorderFlow 6.5s linear infinite;
}

.tp-travelCtaPanel::before{
  content:"";
  position:absolute;
  z-index:4;
  inset:0;
  border-radius:inherit;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14), inset 0 -1px 0 rgba(0,0,0,.34);
  pointer-events:none;
}

.tp-travelCtaPanel::after{
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  border-radius:inherit;
  background:
    linear-gradient(118deg, transparent 0 42%, rgba(41,214,255,.11) 42% 42.5%, transparent 42.5%),
    linear-gradient(118deg, transparent 0 58%, rgba(141,91,255,.12) 58% 58.5%, transparent 58.5%),
    linear-gradient(90deg, rgba(41,214,255,.1), transparent 28%, transparent 62%, rgba(255,79,216,.09)),
    repeating-linear-gradient(135deg, rgba(255,255,255,.04) 0 1px, transparent 1px 18px);
  opacity:.9;
  pointer-events:none;
}

.tp-travelCtaCopy{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  min-width:0;
}

.tp-travelCtaKicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:30px;
  padding:6px 11px;
  border:1px solid rgba(41,214,255,.26);
  border-radius:999px;
  background:linear-gradient(135deg, rgba(41,214,255,.14), rgba(141,91,255,.1));
  color:#9eeaff;
  font-size:12px;
  font-weight:850;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.tp-travelCtaKicker::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:#29d6ff;
  box-shadow:0 0 0 4px rgba(41,214,255,.16), 0 0 18px rgba(41,214,255,.6);
}

.tp-travelCtaCopy .tp-travelCtaTitle{
  max-width:620px;
  margin:14px 0 10px;
  color:#f5f7ff !important;
  font-size:clamp(27px, 3.3vw, 42px);
  line-height:1.06;
  letter-spacing:0;
}

body:not(.PageAdmin):not(.PageAdminCms):not(.PageDjangoAdmin) .tp-travelCta .tp-travelCtaCopy .tp-travelCtaTitle{
  color:#f5f7ff !important;
}

.tp-travelCtaCopy .tp-travelCtaBody{
  max-width:590px;
  margin:0;
  color:#b7c3e5;
  font-size:clamp(15px, 1.5vw, 18px);
  line-height:1.58;
}

.tp-travelCtaPills{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:18px;
}

.tp-travelCtaPills a{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:36px;
  padding:7px 13px;
  border:1px solid rgba(140,164,225,.26);
  border-radius:999px;
  background:rgba(255,255,255,.07);
  box-shadow:0 1px 0 rgba(255,255,255,.07) inset;
  color:#e8efff;
  font-size:13px;
  font-weight:750;
  text-decoration:none;
  white-space:nowrap;
  transition:transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease;
}

.tp-travelCtaPills a::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:#29d6ff;
}

.tp-travelCtaPills a:nth-child(2)::before{
  background:#8d5bff;
}

.tp-travelCtaPills a:nth-child(3)::before{
  background:#f0b35e;
}

.tp-travelCtaPills a:hover,
.tp-travelCtaPills a:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(41,214,255,.44);
  background:rgba(255,255,255,.12);
  color:#fff;
}

.tp-travelCtaButton{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:48px;
  margin-top:20px;
  padding:12px 20px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  background:linear-gradient(135deg, rgba(41,214,255,.96) 0%, rgba(141,91,255,.96) 74%);
  box-shadow:0 18px 34px rgba(41,214,255,.14), 0 16px 34px rgba(141,91,255,.16);
  color:#fff;
  font-weight:500;
  text-decoration:none;
  transition:transform .18s ease, background .18s ease, box-shadow .18s ease;
}

.tp-travelCtaButton::after{
  content:"";
  width:8px;
  height:8px;
  border-top:2px solid currentColor;
  border-right:2px solid currentColor;
  transform:rotate(45deg);
}

.tp-travelCtaButton:hover,
.tp-travelCtaButton:focus-visible{
  transform:translateY(-2px);
  background:linear-gradient(135deg, #4edfff 0%, #9b6cff 74%);
  box-shadow:0 20px 42px rgba(41,214,255,.2), 0 18px 42px rgba(141,91,255,.22);
}

.tp-travelCtaStage{
  position:relative;
  z-index:2;
  align-self:stretch;
  min-height:222px;
}

.tp-ticketImg{
  position:absolute;
  z-index:3;
  width:min(44%, 164px);
  max-height:214px;
  object-fit:contain;
  opacity:.96;
  filter:drop-shadow(0 22px 22px rgba(0,0,0,.34)) drop-shadow(0 0 18px rgba(41,214,255,.13)) saturate(1.05) contrast(1.02);
  pointer-events:none;
  user-select:none;
  transform:translate(var(--tp-x, 0), 0) rotate(var(--tp-rotate, 0deg));
  animation:tpTicketImageFloat 6s ease-in-out infinite;
}

.tp-ticketImgFlight{
  z-index:7;
  top:8px;
  right:auto;
  left:51%;
  width:min(49%, 184px);
  --tp-x:-50%;
  --tp-rotate:-3deg;
}

.tp-ticketImgTrain{
  z-index:3;
  top:54px;
  right:156px;
  --tp-rotate:3deg;
  animation-delay:-1.7s;
}

.tp-ticketImgBus{
  z-index:5;
  right:8px;
  bottom:6px;
  --tp-rotate:5deg;
  animation-delay:-3s;
}

@keyframes tpTicketImageFloat{
  0%,100%{transform:translate(var(--tp-x, 0), 0) rotate(var(--tp-rotate, 0deg));}
  50%{transform:translate(var(--tp-x, 0), -8px) rotate(var(--tp-rotate, 0deg));}
}

@keyframes tpCtaBorderFlow{
  0%{background-position:center, 0% 50%;}
  100%{background-position:center, 320% 50%;}
}

@media (max-width: 900px){
  .tp-travelCtaPanel{
    grid-template-columns:1fr;
  }

  .tp-travelCtaPanel::after{
    inset:0;
  }

  .tp-travelCtaStage{
    justify-self:center;
    width:100%;
    max-width:480px;
    min-height:210px;
  }

  .tp-ticketImg{
    width:min(34vw, 150px);
  }

  .tp-ticketImgFlight{
    left:51%;
    top:6px;
  }

  .tp-ticketImgTrain{
    right:auto;
    left:34%;
    top:48px;
  }

  .tp-ticketImgBus{
    right:4%;
  }
}

@media (max-width: 560px){
  .tp-travelCtaPanel{
    min-height:0;
    padding:18px;
    border-radius:22px;
  }

  .tp-travelCtaCopy .tp-travelCtaTitle{
    font-size:clamp(25px, 9vw, 32px);
  }

  .tp-travelCtaPills{
    width:100%;
  }

  .tp-travelCtaPills a{
    flex:1 1 calc(33.333% - 7px);
    justify-content:center;
    min-width:0;
  }

  .tp-travelCtaButton{
    width:100%;
  }

  .tp-travelCtaStage{
    min-height:166px;
    margin-top:4px;
  }

  .tp-ticketImg{
    width:min(32vw, 118px);
    max-height:154px;
  }

  .tp-ticketImgFlight{
    left:51%;
    top:2px;
  }

  .tp-ticketImgTrain{
    left:31%;
    top:36px;
  }

  .tp-ticketImgBus{
    right:0;
    bottom:0;
  }
}

@media (prefers-reduced-motion: reduce){
  .tp-travelCtaPanel,
  .tp-ticketImg{
    animation:none !important;
  }
}
