  :root {
    --safe-bottom: env(safe-area-inset-bottom, 0px);
    --safe-top: env(safe-area-inset-top, 0px);
  }
  html, body { background: #F7F9FC; overscroll-behavior-y: none; }
  body {
    font-family: 'IBM Plex Sans Thai', 'Noto Sans Lao', 'Noto Sans SC', system-ui, sans-serif;
    color: #1A2942;
    -webkit-font-smoothing: antialiased;
    -webkit-tap-highlight-color: transparent;
  }
  :lang(th) { font-family: 'IBM Plex Sans Thai', system-ui, sans-serif; }
  :lang(en) { font-family: 'Bai Jamjuree', 'IBM Plex Sans Thai', system-ui, sans-serif; }
  :lang(lo) { font-family: 'Noto Sans Lao', system-ui, sans-serif; }
  :lang(zh) { font-family: 'Noto Sans SC', system-ui, sans-serif; }
  .font-display { font-family: 'Bai Jamjuree', 'Noto Sans Lao', 'Noto Sans SC', sans-serif; letter-spacing: -0.02em; }
  :lang(lo) .font-display { font-family: 'Noto Sans Lao', sans-serif; font-weight: 700; }
  :lang(zh) .font-display { font-family: 'Noto Sans SC', sans-serif; font-weight: 700; letter-spacing: 0; }

  /* ================ HERO CAROUSEL ================ */
  .hero-carousel {
    position: relative;
    height: 340px;
    overflow: hidden;
    border-radius: 0 0 28px 28px;
  }
  .hero-slide {
    position: absolute; inset: 0;
    opacity: 0;
    transition: opacity 0.8s ease;
  }
  .hero-slide.active { opacity: 1; }
  .hero-slide img { width: 100%; height: 100%; object-fit: cover; }
  .hero-slide::after {
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(180deg,
      rgba(26,41,66,0.5) 0%,
      rgba(26,41,66,0.1) 40%,
      rgba(26,41,66,0.7) 100%);
  }
  .hero-content {
    position: absolute;
    left: 20px; right: 20px;
    top: calc(var(--safe-top, 0px) + 60px);
    z-index: 2;
    color: white;
  }
  .hero-dots {
    position: absolute;
    bottom: 70px;
    left: 0; right: 0;
    display: flex; justify-content: center; gap: 6px;
    z-index: 2;
  }
  .hero-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(255,255,255,0.4);
    transition: all 0.3s;
  }
  .hero-dot.active {
    width: 24px;
    background: #F5A623;
    border-radius: 4px;
  }

  /* ================ HERO TOP BAR ================ */
  .hero-topbar {
    position: absolute;
    top: calc(var(--safe-top, 0px) + 14px);
    left: 16px; right: 16px;
    z-index: 3;
    display: flex; align-items: center; justify-content: space-between;
  }

  /* ================ HIGHLIGHTS (small cards) ================ */
  .hl-card {
    flex-shrink: 0;
    width: 31%;
    min-width: 100px;
  }
  .hl-thumb {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 16px;
    overflow: hidden;
    background: linear-gradient(135deg, #EEF3FC, #D6E0F5);
    position: relative;
  }
  .hl-thumb img {
    width: 100%; height: 100%;
    object-fit: cover;
  }
  .hl-thumb .placeholder-icon {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 44px;
  }

  /* ================ QUICK ACTION GRID ================ */
  .qa-tile {
    display: flex; flex-direction: column;
    align-items: center; gap: 6px;
    padding: 14px 8px;
    background: white;
    border-radius: 18px;
    box-shadow: 0 2px 10px -2px rgba(26,41,66,0.06);
    transition: transform 0.15s, box-shadow 0.15s;
    cursor: pointer;
  }
  .qa-tile:active { transform: scale(0.96); }
  .qa-icon {
    width: 44px; height: 44px;
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
  }
  .qa-icon.blue   { background: #EEF3FC; color: #2B5FCC; }
  .qa-icon.orange { background: #FFF3D6; color: #D4881A; }
  .qa-icon.green  { background: #E6F5EE; color: #1F7A4F; }
  .qa-icon.red    { background: #FCE6EC; color: #B8336A; }

  /* ================ TIMELINE (Schedule) ================ */
  .timeline {
    position: relative;
    padding-left: 60px;
  }
  .timeline::before {
    content: '';
    position: absolute;
    left: 29px;
    top: 10px; bottom: 10px;
    width: 2px;
    background: linear-gradient(180deg, #D6E0F5 0%, #FFD27A 50%, #D6E0F5 100%);
    border-radius: 2px;
  }
  .tl-item {
    position: relative;
    margin-bottom: 16px;
  }
  .tl-icon {
    position: absolute;
    left: -46px;
    top: 8px;
    width: 44px; height: 44px;
    border-radius: 50%;
    background: #FFF3D6;
    border: 3px solid #F5A623;
    display: flex; align-items: center; justify-content: center;
    font-size: 20px;
    z-index: 1;
    box-shadow: 0 4px 12px -2px rgba(245,166,35,0.4);
    overflow: hidden;
  }
  .tl-icon-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .tl-icon-fallback {
    display: none;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    line-height: 1;
  }
  .tl-icon-fallback.force-show {
    display: flex;
  }
  .tl-icon.blue {
    background: #EEF3FC;
    border-color: #2B5FCC;
    box-shadow: 0 4px 12px -2px rgba(43,95,204,0.4);
  }
  .tl-icon.green {
    background: #E6F5EE;
    border-color: #1F7A4F;
    box-shadow: 0 4px 12px -2px rgba(31,122,79,0.4);
  }

  /* ================ DATE TABS (horizontal) ================ */
  .date-tabs {
    display: flex; gap: 8px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: 4px 0;
  }
  .date-tabs::-webkit-scrollbar { display: none; }
  .date-tabs { scrollbar-width: none; }
  .date-tab {
    flex-shrink: 0;
    padding: 8px 16px;
    border-radius: 12px;
    background: white;
    border: 1.5px solid #E3EAF5;
    font-weight: 600;
    font-size: 13px;
    color: #4A5B7A;
    white-space: nowrap;
    transition: all 0.2s;
  }
  .date-tab.active {
    background: #2B5FCC;
    color: white;
    border-color: #2B5FCC;
    box-shadow: 0 4px 12px -3px rgba(43,95,204,0.5);
  }

  /* ================ CATEGORY CHIPS ================ */
  .chips-row { -webkit-overflow-scrolling: touch; }
  .chips-row::-webkit-scrollbar { display: none; }
  .chip {
    padding: 6px 14px;
    border-radius: 999px;
    background: white;
    border: 1.5px solid #E3EAF5;
    color: #4A5B7A;
    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;
    flex-shrink: 0;
    transition: all 0.2s;
  }
  .chip.active {
    background: #2B5FCC;
    color: white;
    border-color: #2B5FCC;
  }

  /* ================ NAV ================ */
  .nav-btn {
    position: relative;
    transition: color 0.2s ease;
  }
  .nav-btn.active { color: #2B5FCC; }
  .nav-btn.active .nav-ic { transform: translateY(-1px) scale(1.05); }
  .nav-ic { transition: transform 0.25s cubic-bezier(.34,1.56,.64,1); }

  /* Live pulse */
  .live-dot { position: relative; }
  .live-dot::after {
    content:''; position:absolute; inset:-4px; border-radius:9999px;
    background: rgba(220, 38, 38, 0.5); animation: pulse 1.6s ease-out infinite;
  }
  @keyframes pulse {
    0% { transform: scale(0.6); opacity: 0.9; }
    100% { transform: scale(1.8); opacity: 0; }
  }

  .tab-panel { animation: fadeUp 0.35s ease-out both; }
  @keyframes fadeUp {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
  }

  @keyframes popStar {
    0% { transform: scale(1); } 40% { transform: scale(1.35); } 100% { transform: scale(1); }
  }
  .fav-pop { animation: popStar 0.4s ease-out; }

  /* Leaflet */
  #map { height: 100%; width: 100%; border-radius: 20px; }
  .leaflet-popup-content-wrapper {
    border-radius: 14px;
    font-family: 'IBM Plex Sans Thai', 'Noto Sans Lao', 'Noto Sans SC', sans-serif;
    box-shadow: 0 10px 30px -8px rgba(26,41,66,0.25);
  }
  .leaflet-popup-content { margin: 10px 14px; font-size: 13px; }
  .map-popup-card {
    min-width: 220px;
    max-width: 260px;
    max-height: min(56vh, 360px);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    padding-right: 2px;
  }
  .map-popup-card::-webkit-scrollbar { width: 6px; }
  .map-popup-card::-webkit-scrollbar-thumb {
    background: rgba(93, 118, 165, 0.35);
    border-radius: 999px;
  }
  .map-popup-place {
    margin: 0;
    color: #1A2942;
    font-family: 'Bai Jamjuree', 'Noto Sans Lao', 'Noto Sans SC', sans-serif;
    font-weight: 700;
    font-size: 14px;
  }
  .map-popup-desc { margin: 2px 0 8px; color: #6B7A95; font-size: 12px; }
  .map-popup-section {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #4E628A;
    margin-bottom: 6px;
  }
  .map-popup-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
  .map-popup-item {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    border: 1px solid #E5ECF7;
    border-radius: 10px;
    padding: 6px 8px;
    background: #FAFCFF;
  }
  .map-popup-item.live {
    border-color: #B7E4D3;
    background: #F0FBF6;
  }
  .map-popup-when {
    min-width: 78px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: 1px;
  }
  .map-popup-date {
    color: #5C6E92;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
  }
  .map-popup-time {
    color: #2D436D;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
  }
  .map-popup-meta { min-width: 0; }
  .map-popup-title {
    margin: 0;
    font-size: 12px;
    color: #22385D;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .map-popup-badge {
    display: inline-flex;
    margin-top: 4px;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    border-radius: 999px;
    padding: 4px 7px;
    border: 1px solid transparent;
  }
  .map-popup-badge.live {
    color: #11634B;
    background: #D8F6EA;
    border-color: #AFE9D1;
  }
  .map-popup-badge.upcoming {
    color: #37507D;
    background: #E7EEFF;
    border-color: #CBD9FF;
  }
  .map-popup-empty { margin: 0 0 8px; font-size: 12px; color: #6B7A95; }
  .map-popup-more { margin: 8px 0 0; font-size: 11px; color: #6B7A95; }
  .map-popup-nav {
    margin-top: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    border-radius: 10px;
    padding: 8px 10px;
    font-size: 12px;
    font-weight: 700;
    color: #FFFFFF;
    text-decoration: none;
    background: linear-gradient(90deg, #2B5FCC, #4A77DE);
  }
  .map-popup-nav,
  .map-popup-nav:visited,
  .map-popup-nav:hover,
  .map-popup-nav:active {
    color: #FFFFFF !important;
  }

  .pin {
    width: 36px; height: 36px;
    border-radius: 10px 10px 10px 2px;
    transform: rotate(-45deg);
    border: 3px solid #fff;
    box-shadow: 0 4px 12px rgba(26,41,66,0.3);
    display: flex; align-items: center; justify-content: center;
    position: relative;
  }
  .pin-inner {
    transform: rotate(45deg);
    font-size: 16px;
    color: white;
  }
  .pin-inner.logo {
    width: 22px;
    height: 22px;
    position: relative;
    overflow: hidden;
    border-radius: 4px;
  }
  .pin.has-logo {
    width: 56px;
    height: 56px;
    border-radius: 999px;
    transform: none;
    border-width: 4px;
  }
  .pin.has-logo .pin-inner.logo {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    transform: none;
    border: 2px solid rgba(255,255,255,0.95);
    box-shadow: 0 4px 10px -6px rgba(26,41,66,0.55);
  }
  .pin-logo {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    background: white;
    border-radius: 999px;
  }
  .pin-fallback {
    display: none;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    color: white;
  }
  .pin.main    { background: #2B5FCC; }
  .pin.cult    { background: #F5A623; }
  .pin.food    { background: #1F7A4F; }
  .pin.land    { background: #B8336A; }
  .pin.cere    { background: #7A5FCC; }
  .pin.toilet  { background: #0EA5E9; }
  .pin.firstaid{ background: #EF4444; }
  .pin.pin-live {
    border-color: #C7F2DF;
    box-shadow: 0 0 0 4px rgba(31,122,79,0.20), 0 6px 14px rgba(26,41,66,0.30);
    animation: pinLivePulse 1.6s ease-in-out infinite;
  }
  .pin.pin-live::before {
    content: '';
    position: absolute;
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #10B981;
    border: 2px solid #fff;
    top: -6px;
    right: -6px;
    transform: rotate(45deg);
  }
  .pin.has-logo.pin-live::before {
    transform: none;
    top: -5px;
    right: -3px;
  }
  @keyframes pinLivePulse {
    0%, 100% { transform: rotate(-45deg) scale(1); }
    50% { transform: rotate(-45deg) scale(1.08); }
  }

  /* Current Location Marker */
  .current-location-pin {
    position: relative;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #10B981;
    border: 3px solid white;
    box-shadow: 0 2px 8px rgba(16, 185, 129, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .current-location-pulse {
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: rgba(16, 185, 129, 0.3);
    animation: locationPulse 2s infinite;
  }
  .current-location-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: white;
    z-index: 1;
    position: relative;
  }
  @keyframes locationPulse {
    0% {
      transform: scale(1);
      opacity: 1;
    }
    100% {
      transform: scale(2.5);
      opacity: 0;
    }
  }

  .pb-nav { padding-bottom: calc(84px + var(--safe-bottom)); }
  .no-select { -webkit-user-select: none; user-select: none; }

  /* Language switcher */
  .lang-menu {
    transform: translateY(-8px) scale(0.95);
    opacity: 0;
    pointer-events: none;
    transition: all 0.2s cubic-bezier(.34,1.56,.64,1);
    transform-origin: top right;
  }
  .lang-menu.open {
    transform: translateY(0) scale(1); opacity: 1; pointer-events: auto;
  }
  .lang-item.active {
    background: rgba(245, 166, 35, 0.15);
    color: #D4881A;
  }

  /* Section headers */
  .section-head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 14px;
  }
  .kicker {
    font-size: 11px;
    letter-spacing: 0.2em;
    color: #6B7A95;
    font-weight: 600;
    margin-bottom: 2px;
  }

  /* Status badge */
  .badge-live {
    background: linear-gradient(135deg, #DC2626, #991B1B);
    color: white;
  }

  /* Hero broken image fallback */
  .hero-slide.broken img { display: none; }
  .hero-slide.broken { background: linear-gradient(135deg, #2B5FCC 0%, #15347A 50%, #F5A623 160%); }

  /* Event card (used in schedule timeline) */
  .event-card-v2 {
    background: white;
    border-radius: 18px;
    padding: 14px 16px;
    box-shadow: 0 2px 12px -2px rgba(26,41,66,0.06);
    border: 1px solid #F0F4FA;
    cursor: pointer;
    transition: all 0.2s;
  }
  .event-card-v2:active { transform: scale(0.98); }
  .event-card-v2:hover { box-shadow: 0 6px 20px -4px rgba(26,41,66,0.12); border-color: #D6E0F5; }

  /* Sponsor cards */
  .sponsor-list {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .sponsor-list::-webkit-scrollbar { display: none; }
  #sponsors-home-list {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    align-content: flex-start;
    overflow-x: auto;
    height: 154px;
    gap: 10px;
    padding-bottom: 0;
  }
  #sponsors-home-list .sponsor-card {
    width: 190px;
    height: 72px;
    flex-shrink: 0;
    align-items: center;
  }
  .sponsor-card {
    flex-shrink: 0;
    width: 210px;
    border-radius: 14px;
    border: 1px solid #DDE7FA;
    background: linear-gradient(150deg, #FFFFFF 0%, #F2F7FF 100%);
    padding: 10px 12px;
    display: flex;
    align-items: flex-start;
    position: relative;
    gap: 10px;
    box-shadow: 0 8px 18px -12px rgba(43,95,204,0.5);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
    overflow: hidden;
  }
  .sponsor-card > * { position: relative; z-index: 2; }
  .sponsor-card:hover {
    transform: translateY(-1px);
    border-color: #9EB8EC;
    box-shadow: 0 12px 22px -12px rgba(43,95,204,0.55);
  }
  .sponsor-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: -130%;
    width: 70%;
    height: 100%;
    background: linear-gradient(105deg, transparent 0%, rgba(255,255,255,0.0) 35%, rgba(255,255,255,0.55) 50%, rgba(255,255,255,0.0) 65%, transparent 100%);
    transform: skewX(-18deg);
    opacity: 0;
    pointer-events: none;
    z-index: 1;
  }
  .sponsor-list.scrolling .sponsor-card::before {
    opacity: 0.45;
    animation: sponsorShimmer 1.2s linear infinite;
  }
  @keyframes sponsorShimmer {
    to { left: 140%; }
  }
  .sponsor-card::after {
    content: '';
    position: absolute;
    left: 0; right: 0; top: 0;
    height: 3px;
    border-radius: 14px 14px 0 0;
    background: linear-gradient(90deg, #2B5FCC, #F5A623);
    z-index: 3;
  }
  .sponsor-media {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: #FFFFFF;
    border: 1px solid #DDE7FA;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
  }
  .sponsor-media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: white;
  }
  .sponsor-avatar {
    width: 100%;
    height: 100%;
    border-radius: 10px;
    background: linear-gradient(145deg, #2B5FCC, #5B89E0);
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 700;
    flex-shrink: 0;
    box-shadow: 0 6px 14px -8px rgba(43,95,204,0.75);
    display: none;
  }
  .sponsor-media.fallback .sponsor-avatar {
    display: flex;
  }
  .sponsor-meta {
    min-width: 0;
    padding-top: 1px;
  }
  .sponsor-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 8px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1;
    color: #15347A;
    background: #DDE9FF;
    border: 1px solid #C3D8FF;
  }
  .sponsor-card.sponsor-tone-main {
    border-color: #F6D28A;
    background: linear-gradient(150deg, #FFFDF7 0%, #FFF2D8 100%);
  }
  .sponsor-card.sponsor-tone-main::after {
    background: linear-gradient(90deg, #F5A623, #FF7A00);
  }
  .sponsor-card.sponsor-tone-main .sponsor-avatar {
    background: linear-gradient(145deg, #F5A623, #FFB74A);
    color: #5A3800;
    box-shadow: 0 6px 14px -8px rgba(245,166,35,0.85);
  }
  .sponsor-card.sponsor-tone-main .sponsor-badge {
    color: #7A4A00;
    background: #FFE7BE;
    border-color: #FFD48A;
  }
  .sponsor-card.sponsor-tone-co {
    border-color: #DCCBFF;
    background: linear-gradient(150deg, #FCFAFF 0%, #F2EBFF 100%);
  }
  .sponsor-card.sponsor-tone-co::after {
    background: linear-gradient(90deg, #7A5FCC, #A48AE5);
  }
  .sponsor-card.sponsor-tone-co .sponsor-avatar {
    background: linear-gradient(145deg, #7A5FCC, #A48AE5);
    box-shadow: 0 6px 14px -8px rgba(122,95,204,0.85);
  }
  .sponsor-card.sponsor-tone-co .sponsor-badge {
    color: #4A317F;
    background: #EADFFF;
    border-color: #D5C1FF;
  }
  .sponsor-card.sponsor-tone-agency {
    border-color: #9FD6C3;
    background: linear-gradient(150deg, #F4FFFA 0%, #E6F8F0 100%);
  }
  .sponsor-card.sponsor-tone-agency::after {
    background: linear-gradient(90deg, #1F8A70, #42B883);
  }
  .sponsor-card.sponsor-tone-agency .sponsor-avatar {
    background: linear-gradient(145deg, #1F8A70, #42B883);
    color: #EFFFF8;
    box-shadow: 0 6px 14px -8px rgba(31,138,112,0.85);
  }
  .sponsor-card.sponsor-tone-agency .sponsor-badge {
    color: #14614E;
    background: #D8F5E9;
    border-color: #AEE5D0;
  }

  /* Home stories (replace quick actions) */
  .story-row {
    display: flex;
    gap: 12px;
  }
  .story-card {
    width: calc(50% - 6px);
    flex-shrink: 0;
  }
  .story-thumb {
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 16px;
    overflow: hidden;
    background: linear-gradient(135deg, #EEF3FC, #D6E0F5);
    position: relative;
  }
  .story-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .story-thumb::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(26,41,66,0.08) 0%, rgba(26,41,66,0.7) 100%);
  }
  .story-title {
    position: absolute;
    left: 10px;
    right: 10px;
    bottom: 10px;
    z-index: 2;
    font-family: 'Bai Jamjuree', 'Noto Sans Lao', 'Noto Sans SC', sans-serif;
    font-weight: 800;
    letter-spacing: -0.01em;
    line-height: 1.12;
    text-shadow: 0 3px 8px rgba(0,0,0,0.38);
    display: flex;
    flex-direction: column;
    gap: 2px;
    overflow: hidden;
  }
  .story-title-top,
  .story-title-bottom {
    display: -webkit-box;
    line-clamp: 1;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .story-title-top {
    color: #FFFFFF;
    font-size: 14px;
  }
  .story-title-bottom {
    color: #FFD27A;
    font-size: 14px;
  }

  /* Farmstay section (Map tab) */
  .farm-chip {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 600;
    color: #2B5FCC;
    background: #EEF3FC;
    border: 1px solid #D6E0F5;
  }
