/* ==========================================================================
   Totally Bali — totally-bali.css  (V3 — Colour edition)
   White background, bold blue & orange from the logo, Inter + Baloo 2.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;600;700;800&family=Inter:wght@300;400;500;600;700&display=swap');

/* ── TOKENS ──────────────────────────────────────────────────────────────── */
:root{
  --blue:          #0B2E8A;
  --blue-deep:     #071E5E;
  --blue-mid:      #1B3A93;
  --blue-pale:     #E8ECF9;
  --blue-xpale:    #F2F4FC;

  --orange:        #B93B06;
  --orange-deep:   #7A2600;
  --orange-mid:    #D94F0F;
  --orange-pale:   #FDEEE7;

  /* legacy aliases kept so HTML templates still work */
  --teal:          #1B3A93;
  --teal-deep:     #0B2E8A;
  --teal-pale:     #E8ECF9;
  --sunset:        #B93B06;
  --sunset-deep:   #7A2600;
  --sun-gold:      #D9642A;

  --white:         #FFFFFF;
  --paper:         #FFFFFF;
  --paper-alt:     #F2F4FC;
  --card:          #FFFFFF;

  --ink:           #0E1426;
  --ink-soft:      #4A5170;

  --line:          #E2E4EE;
  --line-strong:   #C8CBDA;

  --font-display:  'Baloo 2', ui-rounded, system-ui, sans-serif;
  --font-body:     'Inter', system-ui, -apple-system, sans-serif;
  --font-mono:     'Inter', system-ui, sans-serif;

  --radius-sm:     6px;
  --radius-md:     12px;
  --radius-lg:     20px;
  --gap:           1.5rem;
  --container:     1180px;

  --shadow-card:   0 1px 3px rgba(11,46,138,.06), 0 8px 20px -10px rgba(11,46,138,.12);
  --shadow-hover:  0 6px 18px -8px rgba(11,46,138,.28);
}

/* ── RESET ───────────────────────────────────────────────────────────────── */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--white); color:var(--ink);
  font-family:var(--font-body); font-size:16px; line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ font-family:var(--font-display); margin:0; line-height:1.12; font-weight:700; }
p{ margin:0; }
button{ font-family:inherit; }
:focus-visible{ outline:3px solid var(--orange); outline-offset:2px; border-radius:4px; }
@media(prefers-reduced-motion:reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

.wrap{ max-width:var(--container); margin:0 auto; padding:0 max(12px, 1.5rem); }

/* ── INFO BAR ─────────────────────────────────────────────────────────────── */
.info-bar{
  background:var(--blue-deep); color:#C5CAE0;
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.02em;
}
.info-bar .wrap{
  display:flex; gap:2rem; padding:.5rem 1.5rem;
  overflow-x:auto; white-space:nowrap;
}
.info-bar strong{ color:#fff; font-weight:700; }
.info-bar .dot{ color:var(--orange-mid); }

/* ── HEADER ──────────────────────────────────────────────────────────────── */
.site-header{
  background:var(--white);
  border-bottom:2px solid var(--line);
  position:sticky; top:0; z-index:20;
}
.site-header .wrap{
  display:flex; align-items:center; justify-content:space-between;
  gap:1.5rem; padding:.6rem 1.5rem; height:88px;
}
.brand{ display:flex; align-items:center; gap:.7rem; }
.brand img{ height:72px; width:auto; }
.tagline{ display:none; }

.main-nav{ display:flex; gap:.15rem; }
.main-nav a{
  font-weight:600; font-size:.9rem; padding:.45rem .8rem;
  border-radius:8px; color:var(--ink-soft);
  transition:background .12s,color .12s;
}
.main-nav a:hover{ background:var(--blue-xpale); color:var(--blue); }
.main-nav a.is-active{ color:var(--orange); }

.header-actions{ display:flex; align-items:center; gap:.8rem; }
.btn-search{
  font-family:var(--font-mono); font-size:.78rem;
  border:1.5px solid var(--line); border-radius:999px;
  padding:.42rem 1.1rem; color:var(--ink-soft);
  cursor:pointer; white-space:nowrap;
  transition:border-color .12s;
}
.btn-search:hover{ border-color:var(--blue); color:var(--blue); }
.nav-toggle{
  display:none; background:none; border:1.5px solid var(--line);
  border-radius:8px; padding:.45rem .65rem; font-size:1.1rem;
  cursor:pointer; color:var(--ink);
}

/* ── HOMEPAGE HERO ───────────────────────────────────────────────────────── */
.hero-v3{
  background:var(--blue);
  position:relative; overflow:hidden;
}
.hero-v3-inner{
  max-width:var(--container); margin:0 auto; padding:0 1.5rem;
  display:grid; grid-template-columns:1fr 400px; min-height:520px;
}
.hero-v3-left{
  padding:4.5rem 3rem 5rem 0;
  display:flex; flex-direction:column; justify-content:center;
  position:relative; z-index:2;
}
.hero-kicker{
  font-family:var(--font-mono); font-size:.78rem; text-transform:uppercase;
  letter-spacing:.1em; color:rgba(255,255,255,.65); margin-bottom:1rem;
  display:block;
}
.hero-h1{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(2.6rem,5vw,4rem); line-height:1.06;
  color:#fff; margin-bottom:1.1rem;
}
.hero-h1 .orange{ color:var(--orange-mid); }
.hero-sub{
  font-size:1.05rem; color:rgba(255,255,255,.82);
  max-width:44ch; margin-bottom:2rem; line-height:1.6;
}
.hero-btns{ display:flex; gap:.9rem; flex-wrap:wrap; }
.hero-circle{
  position:absolute; border-radius:50%; opacity:.08;
  background:#fff; pointer-events:none;
}
.hc1{ width:380px; height:380px; top:-120px; left:55%; }
.hc2{ width:200px; height:200px; bottom:-60px; left:62%; }

/* orange right panel */
.hero-v3-right{
  background:var(--orange);
  display:flex; align-items:center; justify-content:center;
  padding:2.5rem 2rem;
  clip-path:polygon(12% 0,100% 0,100% 100%,0 100%);
}
.hero-logo-wrap{
  background:#fff; border-radius:18px;
  padding:1.8rem 2.2rem;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.4);
}
.hero-logo-wrap img{ width:260px; height:auto; }

/* ── STAT STRIP ──────────────────────────────────────────────────────────── */
.stat-strip{
  background:var(--orange);
  display:flex;
  border-bottom:3px solid var(--orange-deep);
}
.stat{
  flex:1; padding:1rem 1.2rem; text-align:center;
  border-right:1px solid rgba(255,255,255,.22);
}
.stat:last-child{ border-right:none; }
.stat .num{
  font-family:var(--font-display); font-weight:800;
  font-size:1.75rem; color:#fff; line-height:1; display:block;
}
.stat .lbl{
  font-family:var(--font-mono); font-size:.65rem;
  text-transform:uppercase; letter-spacing:.06em;
  color:rgba(255,255,255,.75); margin-top:.2rem; display:block;
}

/* ── SECTIONS (shared) ───────────────────────────────────────────────────── */
.section{ padding:3rem 0; }
.section + .section{ border-top:1px solid var(--line); }
.section-alt{ background:var(--blue-xpale); }
.section-white{ background:var(--white); }

.section-head{
  display:flex; justify-content:space-between; align-items:flex-end;
  gap:1rem; margin-bottom:1.8rem; flex-wrap:wrap;
}
.section-code{
  font-family:var(--font-mono); font-size:.73rem; color:var(--blue);
  text-transform:uppercase; letter-spacing:.06em;
  display:block; margin-bottom:.35rem;
}
.section-head h2{ font-size:clamp(1.5rem,2.8vw,2.1rem); font-weight:700; }
.section-meta{ font-family:var(--font-mono); font-size:.76rem; color:var(--ink-soft); }
.section-meta strong{ color:var(--orange-deep); }

/* ── REGION CHIPS ────────────────────────────────────────────────────────── */
.region-row{ display:flex; gap:1rem; overflow-x:auto; padding-bottom:.5rem; }
.region-chip{
  flex:0 0 auto; width:200px;
  background:var(--white); border:1.5px solid var(--line);
  border-radius:14px; padding:1.2rem; position:relative;
  transition:border-color .15s, box-shadow .15s, transform .15s;
}
.region-chip:hover{
  border-color:var(--blue);
  box-shadow:var(--shadow-hover);
  transform:translateY(-2px);
}
.region-chip .code{
  font-family:var(--font-mono); font-size:.68rem;
  color:var(--blue); font-weight:700; display:block; margin-bottom:.35rem;
}
.region-chip h4{
  font-family:var(--font-display); font-weight:700;
  font-size:1rem; margin-bottom:.25rem;
}
.region-chip p{ font-size:.82rem; color:var(--ink-soft); margin:0; }

/* ── DEPT CATALOGUE ──────────────────────────────────────────────────────── */
.catalogue{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(270px,1fr));
  gap:1.1rem;
}
.card{
  background:var(--white);
  border:1.5px solid var(--line);
  border-radius:var(--radius-lg);
  padding:1.5rem;
  border-top:5px solid var(--blue);
  box-shadow:var(--shadow-card);
  transition:transform .15s, box-shadow .15s, border-color .15s;
}
.card:nth-child(2n){ border-top-color:var(--orange); }
.card:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 36px -14px rgba(11,46,138,.24);
}
.card-top{
  display:flex; justify-content:space-between;
  align-items:center; margin-bottom:.75rem;
}
.card-index{
  font-family:var(--font-mono); font-size:.68rem; font-weight:700;
  background:var(--blue-pale); color:var(--blue);
  padding:.2rem .6rem; border-radius:999px;
}
.card:nth-child(2n) .card-index{
  background:var(--orange-pale); color:var(--orange-deep);
}
.card-icon{ font-size:1.4rem; line-height:1; }
.card h3{ font-size:1.2rem; font-weight:700; margin-bottom:.4rem; }
.card p{ color:var(--ink-soft); font-size:.9rem; margin-bottom:1rem; line-height:1.5; }
.card-links{
  display:flex; flex-direction:column; gap:.4rem; margin-bottom:1rem;
}
.card-links a{
  font-size:.84rem; font-weight:600; color:var(--ink-soft);
  display:flex; align-items:center; gap:.4rem;
}
.card-links a::before{
  content:''; width:6px; height:6px; border-radius:50%;
  background:var(--orange); flex-shrink:0;
}
.card-links a:hover{ color:var(--blue); }
.card-more{ font-size:.8rem; color:var(--ink-soft); font-family:var(--font-mono); }
.card-cta{
  font-size:.86rem; font-weight:700; color:var(--blue);
  display:inline-flex; align-items:center; gap:.3rem;
  font-family:var(--font-mono);
}
.card:nth-child(2n) .card-cta{ color:var(--orange-deep); }

/* ── DEPARTURES BOARD ────────────────────────────────────────────────────── */
.board{
  border-radius:var(--radius-lg);
  overflow:hidden;
  border:2px solid var(--ink);
}
.board-head{
  background:var(--blue-deep); color:#fff;
  display:flex; justify-content:space-between; align-items:center;
  padding:.95rem 1.4rem;
  font-family:var(--font-mono); font-size:.76rem;
  letter-spacing:.04em; text-transform:uppercase;
}
.board-head .blink{ color:var(--orange-mid); }
.board-row{
  display:grid; grid-template-columns:90px 1fr 120px;
  gap:1rem; padding:.88rem 1.4rem;
  border-top:1px solid var(--line);
  align-items:center; font-size:.9rem;
  transition:background .12s;
}
.board-row:hover{ background:var(--blue-xpale); }
.board-row .tag{
  font-family:var(--font-mono); font-size:.72rem; font-weight:700;
  color:#fff; background:var(--orange);
  padding:.2rem .55rem; border-radius:5px; text-align:center;
  display:inline-block;
}
.board-row .tag.blue{ background:var(--blue); }
.board-row .headline{ font-weight:600; }
.board-row a.headline{ color:var(--ink); }
.board-row a.headline:hover{ color:var(--blue); text-decoration:underline; }
.board-row .when{
  font-family:var(--font-mono); font-size:.74rem;
  color:var(--ink-soft); text-align:right; white-space:nowrap;
}

/* ── HOTELS CALL-OUT ─────────────────────────────────────────────────────── */
.hotels-callout{
  background:var(--blue); padding:3.5rem 0;
}
.hotels-callout-inner{
  display:grid; grid-template-columns:1fr auto; gap:3rem; align-items:center;
}
.hotels-callout h2{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(1.8rem,3vw,2.6rem); color:#fff; margin-bottom:.8rem;
}
.hotels-callout p{ color:rgba(255,255,255,.82); max-width:44ch; margin-bottom:1.5rem; }
.hotel-chips{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.2rem; }
.hotel-chip{
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.28);
  color:#fff; font-size:.82rem; padding:.35rem .85rem; border-radius:999px;
}
.hotel-chip.orange{ background:var(--orange); border-color:var(--orange); }
.hotels-count{
  background:rgba(255,255,255,.1); border:1.5px solid rgba(255,255,255,.3);
  border-radius:20px; padding:2rem 2.5rem; text-align:center; white-space:nowrap;
}
.hotels-count .big{
  font-family:var(--font-display); font-weight:800;
  font-size:5rem; color:#fff; line-height:1; display:block;
}
.hotels-count .lbl{
  font-family:var(--font-mono); font-size:.78rem; text-transform:uppercase;
  letter-spacing:.1em; color:rgba(255,255,255,.65); margin-top:.4rem; display:block;
}
.hotels-count .sub{
  font-size:.86rem; color:rgba(255,255,255,.7); margin-top:.5rem; display:block;
}

/* ── GROWTH METER ────────────────────────────────────────────────────────── */
.growth{
  background:var(--blue-xpale);
  border:1.5px solid var(--line);
  border-radius:var(--radius-lg);
  padding:1.8rem 2rem;
}
.growth h3{
  font-family:var(--font-display);
  font-size:1.25rem; margin-bottom:.6rem;
}
.growth p{ color:var(--ink-soft); font-size:.92rem; margin-bottom:1rem; }
.meter{ height:8px; background:var(--line); border-radius:999px; overflow:hidden; margin:.5rem 0; }
.meter-fill{ height:100%; background:linear-gradient(90deg, var(--blue), var(--orange)); border-radius:999px; }
.meter-labels{
  display:flex; justify-content:space-between;
  font-family:var(--font-mono); font-size:.72rem; color:var(--ink-soft); margin-top:.35rem;
}

/* ── CTA BUTTONS ─────────────────────────────────────────────────────────── */
.btn{ display:inline-flex; align-items:center; gap:.45rem; font-weight:700; font-size:.95rem; padding:.85rem 1.5rem; border-radius:12px; cursor:pointer; transition:transform .12s, box-shadow .12s; border:none; }
.btn:hover{ transform:translateY(-2px); }
.btn-primary{ background:var(--orange); color:#fff; box-shadow:0 10px 24px -8px rgba(185,59,6,.55); }
.btn-primary:hover{ box-shadow:0 14px 28px -8px rgba(185,59,6,.65); }
.btn-secondary{ background:var(--blue); color:#fff; box-shadow:0 10px 24px -8px rgba(11,46,138,.45); }
.btn-outline{ background:var(--white); border:2px solid var(--line); color:var(--ink); }
.btn-white{ background:#fff; color:var(--blue); }
.btn-ghost-white{ border:2px solid rgba(255,255,255,.6); color:#fff; background:transparent; }

/* ── FOOTER ──────────────────────────────────────────────────────────────── */
.site-footer{
  background:var(--ink); color:#C5CAE0;
  padding:3.5rem 0 1.5rem;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr repeat(4,1fr);
  gap:2.5rem; margin-bottom:2.5rem;
}
.footer-brand img{ height:54px; margin-bottom:1rem; }
.footer-brand p{ font-size:.85rem; color:#9097B8; max-width:30ch; line-height:1.65; }
.footer-col h5{
  font-family:var(--font-mono); font-size:.72rem;
  text-transform:uppercase; letter-spacing:.07em;
  color:var(--orange-mid); margin-bottom:.9rem;
}
.footer-col ul{ display:flex; flex-direction:column; gap:.5rem; }
.footer-col a{ font-size:.87rem; color:#B0B5D0; transition:color .12s; }
.footer-col a:hover{ color:#fff; }
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);
  padding-top:1.3rem;
  display:flex; justify-content:space-between;
  font-family:var(--font-mono); font-size:.74rem; color:#6870A0;
  flex-wrap:wrap; gap:.5rem;
}

/* ── STUB/PILLAR HUB PAGES ───────────────────────────────────────────────── */
.stub-hero{
  padding:2.6rem 0 2rem;
  border-bottom:1px solid var(--line);
  background:var(--blue-xpale);
}
.breadcrumb{
  font-family:var(--font-mono); font-size:.76rem;
  color:var(--ink-soft); margin-bottom:.9rem;
}
.breadcrumb a{ color:var(--blue); font-weight:600; }
.stub-hero h1{ font-size:clamp(1.6rem,3vw,2.2rem); font-weight:800; }
.stub-hero p{ color:var(--ink-soft); max-width:60ch; margin-top:.75rem; }

.status-pill{
  display:inline-flex; align-items:center; gap:.4rem;
  font-family:var(--font-mono); font-size:.72rem;
  padding:.3rem .65rem; border-radius:999px;
  margin-top:1rem; font-weight:600;
}
.status-pill.building{ background:var(--orange-pale); color:var(--orange-deep); }
.status-pill.live{ background:var(--blue-pale); color:var(--blue); }
.status-pill .dot{
  width:7px; height:7px; border-radius:50%; background:currentColor;
}

.planned-list{
  display:grid; gap:.75rem;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
}
.planned-item{
  border:1.5px solid var(--line);
  background:var(--white);
  border-radius:var(--radius-sm);
  padding:.9rem 1rem;
  display:flex; align-items:flex-start;
  gap:.65rem; font-size:.9rem;
  transition:border-color .12s;
}
.planned-item:hover{ border-color:var(--blue); }
.planned-item.is-live{ border-color:rgba(11,46,138,.3); }
.planned-item.is-live .n{ background:var(--blue); color:#fff; }
.planned-item a{ font-weight:700; color:var(--blue); }
.planned-item a:hover{ color:var(--orange-deep); }
.planned-item .soon{
  font-family:var(--font-mono); font-size:.66rem;
  color:var(--ink-soft); margin-left:.4rem;
}
.planned-item .n{
  font-family:var(--font-mono); font-size:.72rem;
  color:var(--blue); background:var(--blue-pale);
  border-radius:4px; padding:.1rem .4rem;
  flex-shrink:0; margin-top:.1rem;
}

.back-home{
  display:inline-flex; align-items:center; gap:.4rem;
  margin-top:2.5rem; font-weight:700; color:var(--blue);
}
.back-home:hover{ color:var(--orange-deep); }

/* ── ARTICLE PAGES ───────────────────────────────────────────────────────── */
.article-hero{
  padding:2.4rem 0 2rem;
  border-bottom:1px solid var(--line);
  background:var(--blue-xpale);
}
.article-hero h1{ font-size:clamp(1.7rem,3.2vw,2.4rem); font-weight:800; margin-top:.4rem; }
.article-hero .dek{ color:var(--ink-soft); max-width:62ch; margin-top:.8rem; font-size:1.02rem; }
.article-byline{
  font-family:var(--font-mono); font-size:.74rem;
  color:var(--ink-soft); margin-top:1rem;
  display:flex; gap:1rem; flex-wrap:wrap;
}

.article-layout{
  display:grid; gap:2.5rem; padding:3rem 0;
  grid-template-columns:1fr;
}
@media(min-width:900px){
  .article-layout{ grid-template-columns:2.1fr 1fr; align-items:start; }
}

.article-body h2{
  font-size:1.35rem; margin-top:2.2rem; margin-bottom:.8rem;
  padding-top:1.6rem; border-top:1px dashed var(--line-strong);
}
.article-body h2:first-child{ margin-top:0; padding-top:0; border-top:none; }
.article-body h2 .num{
  font-family:var(--font-mono); font-size:.85rem;
  color:var(--blue); margin-right:.5rem;
}
.article-body h3{ font-size:1.05rem; margin-top:1.4rem; margin-bottom:.5rem; }
.article-body p{ color:var(--ink-soft); margin-bottom:.9rem; font-size:.98rem; }
.article-body ul{ margin-bottom:1rem; display:flex; flex-direction:column; gap:.5rem; }
.article-body ul li{
  color:var(--ink-soft); font-size:.95rem;
  padding-left:1.15rem; position:relative;
}
.article-body ul li::before{
  content:''; position:absolute;
  left:0; top:.5em; width:6px; height:6px;
  border-radius:50%; background:var(--orange);
}
.article-body strong{ color:var(--ink); }
.article-body a{
  color:var(--blue); font-weight:600;
  text-decoration:underline;
  text-decoration-color:var(--line-strong);
  text-underline-offset:2px;
}
.article-body a:hover{ color:var(--orange-deep); }

.callout{
  border-left:3px solid var(--orange);
  background:var(--orange-pale);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  padding:.9rem 1.1rem; margin:1.2rem 0;
  font-size:.92rem; color:var(--ink);
}
.callout strong{ color:var(--orange-deep); }
.callout.teal{ border-left-color:var(--blue); background:var(--blue-pale); }

/* sidebar */
.sidebar{
  display:flex; flex-direction:column; gap:1.3rem;
  min-width:0; /* critical: grid items default to min-width:auto, which lets
                  wide content (e.g. the portrait image) force the column
                  to overflow past its track — this line stops that. */
}

.fact-card{
  background:var(--white); border:1.5px solid var(--line);
  border-radius:var(--radius-md); box-shadow:var(--shadow-card); overflow:hidden;
}
.fact-card-head{
  background:var(--blue-deep); color:#fff;
  font-family:var(--font-mono); font-size:.72rem;
  letter-spacing:.05em; text-transform:uppercase;
  padding:.7rem 1rem; display:flex; justify-content:space-between;
}
.fact-card-head .blink{ color:var(--orange-mid); }
.fact-row{
  display:flex; justify-content:space-between; gap:.75rem;
  padding:.65rem 1rem; border-bottom:1px solid var(--line); font-size:.86rem;
}
.fact-row:last-child{ border-bottom:none; }
.fact-row .k{ color:var(--ink-soft); font-family:var(--font-mono); font-size:.76rem; }
.fact-row .v{ color:var(--ink); font-weight:600; text-align:right; }

.toc{
  background:var(--blue-xpale); border:1.5px solid var(--line);
  border-radius:var(--radius-md); padding:1rem 1.1rem;
}
.toc h5{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.05em;
  text-transform:uppercase; color:var(--blue); margin-bottom:.7rem;
}
.toc ol{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:.5rem; }
.toc a{
  font-size:.86rem; color:var(--ink-soft); font-weight:600;
  display:flex; gap:.5rem;
}
.toc a:hover{ color:var(--orange-deep); }
.toc .num{ font-family:var(--font-mono); color:var(--blue); }

.related-card{
  border:1.5px solid var(--line); border-radius:var(--radius-md);
  padding:1rem 1.1rem; background:var(--white);
}
.related-card h5{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.05em;
  text-transform:uppercase; color:var(--blue); margin-bottom:.7rem;
}
.related-card ul{ display:flex; flex-direction:column; gap:.55rem; }
.related-card a{ font-size:.87rem; font-weight:600; color:var(--ink); }
.related-card a:hover{ color:var(--orange-deep); }

/* ── UTILITIES ───────────────────────────────────────────────────────────── */
.mt-lg{ margin-top:2.5rem; }
.center-note{ text-align:center; color:var(--ink-soft); font-size:.85rem; font-family:var(--font-mono); margin-top:1rem; }

/* ── RESPONSIVE ──────────────────────────────────────────────────────────── */
@media(max-width:1024px){
  .stat-strip{ flex-wrap:wrap; }
  .stat{ flex:1 1 30%; }
  .hotels-callout-inner{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:repeat(3,1fr); }
}
@media(max-width:760px){
  .hero-v3-inner{ grid-template-columns:1fr; }
  .hero-v3-right{ clip-path:none; padding:2rem 1.5rem; }
  .hero-logo-wrap img{ width:100%; max-width:260px; }
  .hero-v3-left{ padding:3rem 0 2.5rem; }
  .main-nav{ display:none; }
  .nav-toggle{ display:block; }
  .site-header .wrap{ height:auto; }
  .brand img{ height:58px; }
  .stat{ flex:1 1 45%; }
  .region-chip{ width:175px; }
  .catalogue{ grid-template-columns:1fr; }
  .board-row{ grid-template-columns:70px 1fr; }
  .board-row .when{ display:none; }
  .footer-grid{ grid-template-columns:repeat(2,1fr); }
}
@media(max-width:480px){
  .hero-h1{ font-size:2.2rem; }
  .stat{ flex:1 1 100%; }
  .footer-grid{ grid-template-columns:1fr; }
  .wrap{ padding:0 14px; }
}

/* ── INFO BAR LINKS ───────────────────────────────────────────────────────── */
.info-bar .wrap a{
  color:inherit; text-decoration:none; white-space:nowrap;
  padding:.15rem .3rem; border-radius:4px;
  transition:color .12s, background .12s;
}
.info-bar .wrap a:hover{
  color:#fff; background:rgba(255,255,255,.12);
}

/* ── MOBILE NAV (hamburger) ──────────────────────────────────────────────── */
.mobile-nav{
  display:none;
  position:fixed; inset:0; z-index:100;
}
.mobile-nav.open{ display:block; }

.mobile-nav-backdrop{
  position:absolute; inset:0;
  background:rgba(7,30,94,.65);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
}
.mobile-nav-panel{
  position:absolute; top:0; right:0; bottom:0;
  width:min(320px, 88vw);
  background:var(--white);
  padding:1.5rem;
  overflow-y:auto;
  box-shadow:-8px 0 40px rgba(7,30,94,.25);
  display:flex; flex-direction:column; gap:0;
}
.mobile-nav-top{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:1.5rem; padding-bottom:1rem;
  border-bottom:1px solid var(--line);
}
.mobile-nav-top img{ height:48px; }
.mobile-close{
  background:none; border:1.5px solid var(--line);
  border-radius:8px; padding:.4rem .7rem;
  font-size:1.2rem; cursor:pointer; color:var(--ink);
  line-height:1;
}
.mobile-nav-links{
  display:flex; flex-direction:column; gap:.25rem;
}
.mobile-nav-links a{
  display:block; padding:.85rem 1rem;
  font-weight:700; font-size:1.05rem;
  color:var(--ink); border-radius:10px;
  border-bottom:1px solid var(--line);
  transition:background .1s, color .1s;
}
.mobile-nav-links a:last-child{ border-bottom:none; }
.mobile-nav-links a:hover, .mobile-nav-links a.is-active{
  background:var(--blue-xpale); color:var(--blue);
}
.mobile-nav-footer{
  margin-top:auto; padding-top:1.5rem;
  border-top:1px solid var(--line);
  font-size:.85rem; color:var(--ink-soft); line-height:1.6;
}

/* ── TOURS DEPT CARD (orange accent) ────────────────────────────────────── */
.card.tours{ border-top-color:var(--orange) !important; }
.card.tours .card-index{ background:var(--orange-pale); color:var(--orange-deep); }
.card.tours .card-cta{ color:var(--orange-deep); }

/* ── FONT OVERRIDE — replace mono label style with clean Inter ───────────── */
/* Labels, codes and metadata use Inter 500 tight tracking instead of mono */
.section-code,
.card-index,
.status-pill,
.fact-card-head,
.fact-row .k,
.board-head,
.board-row .tag,
.board-row .when,
.info-bar,
.toc h5,
.related-card h5,
.footer-col h5,
.footer-bottom,
.hero-kicker,
.meter-labels,
.center-note,
.search-btn,
.stat .lbl,
.rc-code,
.planned-item .n,
.dept-count,
.card-more {
  font-family: 'Inter', system-ui, sans-serif;
  letter-spacing: 0.03em;
}
/* Keep Baloo 2 for headings — already correct via h1-h4 rule */

/* ── SEARCH MODAL ────────────────────────────────────────────────────────── */
.search-modal {
  display: none;
  position: fixed; inset: 0; z-index: 200;
}
.search-modal.open { display: flex; align-items: flex-start; justify-content: center; padding-top: 8vh; }
.search-modal-backdrop {
  position: absolute; inset: 0;
  background: rgba(7,30,94,.7);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.search-modal-box {
  position: relative; z-index: 1;
  background: var(--white);
  border-radius: 16px;
  width: min(640px, 92vw);
  box-shadow: 0 40px 80px -20px rgba(7,30,94,.4);
  overflow: hidden;
}
.search-modal-head {
  display: flex; align-items: center; gap: .8rem;
  padding: 1rem 1.2rem;
  border-bottom: 1px solid var(--line);
}
.search-modal-head input {
  flex: 1; border: none; outline: none;
  font-family: 'Inter', sans-serif; font-size: 1.1rem;
  color: var(--ink); background: transparent;
}
.search-modal-head input::placeholder { color: var(--ink-soft); }
.search-close {
  background: none; border: none; font-size: 1.3rem;
  cursor: pointer; color: var(--ink-soft); padding: .3rem;
}
.search-results {
  padding: 1rem 1.2rem;
  max-height: 55vh; overflow-y: auto;
}
.search-result-item {
  display: block; padding: .75rem;
  border-radius: 10px; margin-bottom: .4rem;
  transition: background .1s;
}
.search-result-item:hover { background: var(--blue-xpale); }
.search-result-item .sr-title { font-weight: 700; color: var(--ink); font-size: .95rem; }
.search-result-item .sr-dept { font-size: .78rem; color: var(--blue); font-weight: 600; margin-bottom: .2rem; }
.search-result-item .sr-dek { font-size: .84rem; color: var(--ink-soft); }
.search-empty { padding: .5rem 0; color: var(--ink-soft); font-size: .95rem; }
.search-upgrade {
  padding: 1rem 1.2rem;
  background: var(--blue-xpale);
  border-top: 1px solid var(--line);
  font-size: .82rem; color: var(--ink-soft);
}
.search-upgrade strong { color: var(--blue); }

/* ── EXTRA MOBILE SAFETY PADDING ─────────────────────────────────────────── */
@media(max-width:600px){
  body { min-width: 320px; }
  .wrap { padding: 0 14px; }
  .info-bar .wrap { padding: .5rem 14px; }
  .hero-v3-left { padding: 2.5rem 0 2rem; }
  .hero-v3-right { padding: 1.5rem 1rem; }
  .hero-logo-wrap { padding: 1.2rem 1.5rem; }
  .hero-logo-wrap img { width: 100%; max-width: 240px; }
  .stat-strip { flex-wrap: wrap; }
  .stat { flex: 1 1 45%; padding: .8rem .8rem; }
  .article-body h2 { font-size: 1.2rem; }
  .board-row { grid-template-columns: 70px 1fr; gap: .6rem; padding: .75rem 1rem; }
  .board-row .when { display: none; }
  .card { padding: 1.2rem; }
  .fact-row { flex-direction: column; gap: .2rem; }
  .fact-row .v { text-align: left; }
  .site-header .wrap { padding: .6rem 14px; }
  .hotels-callout-inner { grid-template-columns: 1fr; }
  .hotels-count { display: none; }
}

/* ── HERO IMAGE ──────────────────────────────────────────────────────────── */
.page-hero-img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center center;
  display: block; background: var(--blue-xpale);
  margin: 0; padding: 0;
}
/* Boxed hero — sits inside the page container. Mobile: edge-to-edge width,
   square corners, minimal top/bottom breathing room. Desktop (≥640px):
   inset within the container with rounded corners. */
.page-hero-outer{
  width: 100%; background: var(--white);
  padding: .5rem 0;
}
.page-hero-img-wrap {
  max-width: var(--container); margin: 0 auto;
  overflow: hidden; border-radius: 0;
  aspect-ratio: 8 / 3;
  background: var(--blue-xpale);
  display: block; line-height: 0;
  border: none;
}
@media(min-width: 640px){
  .page-hero-outer{ padding: .75rem max(12px, 1.5rem); }
  .page-hero-img-wrap {
    border-radius: var(--radius-lg, 16px);
    border: 1px solid var(--line);
  }
}
/* When JS hides the img on error, it also hides page-hero-outer entirely
   (see hero fallback script) — no gap, no residual background left behind. */

/* ── 4:5 PORTRAIT IMAGE in sidebar ──────────────────────────────────────── */
.sidebar-portrait {
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1.5px solid var(--line);
  background: var(--blue-xpale);
  width: 100%; max-width: 100%;
}
.sidebar-portrait img {
  width: 100%; max-width: 100%; aspect-ratio: 4/5;
  object-fit: cover; display: block;
}
.sidebar-portrait .img-caption {
  font-size: .76rem; color: var(--ink-soft);
  padding: .5rem .75rem;
  font-family: 'Inter', sans-serif;
  border-top: 1px solid var(--line);
}

/* ── SHARE BAR ───────────────────────────────────────────────────────────── */
.share-bar {
  display: flex; align-items: center; gap: .5rem;
  flex-wrap: wrap; margin: 2rem 0 0;
  padding-top: 1.4rem;
  border-top: 2px solid var(--line);
}
.share-label {
  font-size: .78rem; font-weight: 700; letter-spacing: .04em;
  text-transform: uppercase; color: var(--ink-soft);
  margin-right: .3rem; white-space: nowrap;
}
.share-btn {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .8rem; font-weight: 700;
  padding: .5rem 1rem; border-radius: 999px;
  cursor: pointer; text-decoration: none;
  transition: transform .12s, box-shadow .12s, opacity .12s;
  white-space: nowrap; border: none; line-height: 1;
  box-shadow: 0 2px 6px rgba(0,0,0,.12);
}
.share-btn svg { flex-shrink: 0; }
.share-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 14px rgba(0,0,0,.2); }
.share-btn:active { transform: translateY(0); }
.share-btn.fb  { background: #1877F2; color: #fff; }
.share-btn.tw  { background: #000;    color: #fff; }
.share-btn.pin { background: #E60023; color: #fff; }
.share-btn.wa  { background: #25D366; color: #fff; }
.share-btn.copy {
  background: var(--white); color: var(--blue);
  border: 1.5px solid var(--line-strong);
  box-shadow: 0 2px 6px rgba(11,46,138,.08);
}
.share-copied { background: var(--blue) !important; color: #fff !important; border-color: var(--blue) !important; }

@media(max-width:600px){
  .share-btn { padding: .45rem .7rem; font-size: .75rem; }
  .share-btn span { display: none; } /* hide text, keep icon on very small screens */
}

/* ── FOOTER CREDIT ───────────────────────────────────────────────────────── */
.footer-credit {
  font-size: .74rem; color: #6870A0;
}
.footer-credit a { color: #9097B8; text-decoration: underline; }
.footer-credit a:hover { color: #fff; }

.footer-social{
  display:flex; align-items:center; gap:.7rem;
}
.footer-social a{
  display:inline-flex; align-items:center; justify-content:center;
  width:30px; height:30px; border-radius:50%;
  background:rgba(255,255,255,.08); color:#B0B5D0;
  transition:background .12s, color .12s;
}
.footer-social a:hover{ background:rgba(255,255,255,.16); color:#fff; }
.footer-social svg{ width:15px; height:15px; }

.footer-network{
  border-top:1px solid rgba(255,255,255,.08);
  margin-top:1.1rem; padding-top:1.1rem;
  display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 1rem;
  font-family:var(--font-mono); font-size:.74rem; color:#6870A0;
}
.footer-network a{ color:#9097B8; text-decoration:underline; }
.footer-network a:hover{ color:#fff; }


/* ── EDITORIAL QUALITY COMPONENTS ───────────────────────────────────────── */
.article-meta-note{margin-top:.85rem;font-size:.82rem;color:var(--ink-soft);}
.article-body .lead{font-size:1.08rem;line-height:1.78;color:var(--ink);margin-bottom:1.2rem;}
.editor-note,.warning-note,.source-note{border-radius:var(--radius-sm);padding:1rem 1.1rem;margin:1.25rem 0;font-size:.94rem;line-height:1.65;}
.editor-note{background:var(--blue-xpale);border:1px solid var(--line-strong);color:var(--ink);}
.warning-note{background:var(--orange-pale);border-left:4px solid var(--orange);color:var(--ink);}
.source-note{background:#f7f8fc;border:1px solid var(--line);color:var(--ink-soft);}
.article-body table{width:100%;border-collapse:collapse;margin:1.25rem 0 1.6rem;font-size:.91rem;}
.article-body th,.article-body td{padding:.72rem .78rem;border:1px solid var(--line);text-align:left;vertical-align:top;}
.article-body th{background:var(--blue-xpale);color:var(--ink);font-weight:800;}
.article-body td{color:var(--ink-soft);}
.article-body ol.editorial-list{margin:0 0 1.2rem 1.25rem;color:var(--ink-soft);}
.article-body ol.editorial-list li{margin:.48rem 0;padding-left:.2rem;}
.article-body .source-list{margin-top:.9rem;}
.article-body .source-list li{padding-left:1.2rem;}
.article-body .mini-grid{display:grid;grid-template-columns:1fr;gap:.8rem;margin:1.15rem 0 1.5rem;}
@media(min-width:700px){.article-body .mini-grid{grid-template-columns:repeat(2,1fr);}}
.article-body .mini-card{border:1px solid var(--line);border-radius:var(--radius-sm);padding:1rem;background:#fff;}
.article-body .mini-card h3{margin:0 0 .45rem;font-size:1rem;}
.article-body .mini-card p{margin:0;font-size:.92rem;}
.article-body .answer-box{border:2px solid var(--blue);border-radius:var(--radius-sm);padding:1rem 1.1rem;margin:1.1rem 0 1.4rem;background:#fff;}
.article-body .answer-box strong{display:block;margin-bottom:.35rem;color:var(--blue);}
.article-body .checklist{border:1px solid var(--line);border-radius:var(--radius-sm);padding:1rem 1.1rem;margin:1rem 0 1.4rem;background:#fff;}
.article-body .checklist li::before{background:var(--blue);}
.article-body details{border:1px solid var(--line);border-radius:var(--radius-sm);padding:.85rem 1rem;margin:.65rem 0;background:#fff;}
.article-body summary{cursor:pointer;font-weight:750;color:var(--ink);}
.article-body details p{margin:.7rem 0 0;}
.article-body blockquote{margin:1.2rem 0;padding:.2rem 0 .2rem 1rem;border-left:3px solid var(--blue);color:var(--ink-soft);font-style:italic;}
.article-body .updated-box{font-family:var(--font-mono);font-size:.78rem;color:var(--ink-soft);border-bottom:1px solid var(--line);padding-bottom:1rem;margin-bottom:1.4rem;}
.article-body .fine-print{font-size:.82rem;color:var(--ink-soft);}
@media(max-width:650px){.article-body table{display:block;overflow-x:auto;white-space:normal;}.article-body th,.article-body td{min-width:135px;}}


/* Takeover editorial additions */
.hub-portrait-shell{max-width:var(--container);margin:1rem auto 0;padding:0 1.5rem;}
.hub-portrait{max-width:360px;margin:0 auto;}
.hub-portrait img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:12px;}
.news-desk .lead{font-size:1.08rem;line-height:1.75;max-width:920px;}
.news-desk h2{margin-top:2.5rem;}
.news-desk .planned-list{margin:1rem 0 2rem;}
.news-desk .planned-item a{width:100%;}
@media(max-width:700px){.hub-portrait-shell{padding:0;margin-top:.75rem}.hub-portrait{max-width:none}.hub-portrait img{border-radius:0}}

/* Release polish: static info chip and keyboard-accessible controls */
.info-bar .info-static{color:inherit;white-space:nowrap;padding:.15rem .3rem;}
.btn-search:focus-visible,.nav-toggle:focus-visible,.search-close:focus-visible,.search-result-item:focus-visible{outline:3px solid var(--orange-mid);outline-offset:3px;}
.search-icon{font-size:1.1rem;color:var(--ink-soft);}

/* R3 LAYOUT + MAP POLISH START */
/* Portrait artwork: the generated social artwork is supporting content, not a
   second hero. Keep it contained, modest on desktop, and forgiving when an
   uploaded source file is not a perfect 4:5 export. */
.sidebar-portrait{
  width:100%;
  max-width:280px;
  margin-left:auto;
  margin-right:auto;
  background:#fff;
}
.sidebar-portrait img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4/5;
  object-fit:contain;
  object-position:center;
  background:#fff;
}

/* Hub-page portrait: pair the 4:5 artwork with the introduction on desktop.
   The old centred standalone poster created a large dead area on wide screens. */
.hub-intro-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(220px,280px);
  align-items:center;
  gap:clamp(1.5rem,4vw,3.5rem);
}
.hub-intro-copy{min-width:0;}
.hub-intro-grid .hub-portrait-shell{
  max-width:none;
  width:100%;
  margin:0;
  padding:0;
}
.hub-intro-grid .hub-portrait{
  max-width:280px;
  margin:0 0 0 auto;
}
.hub-intro-grid .hub-portrait img{
  width:100%;
  aspect-ratio:4/5;
  object-fit:contain;
  object-position:center;
  background:#fff;
}
.home-hub-portrait{display:none;}

/* Interactive map */
.map-about{padding:2.2rem 0 1.5rem;}
.map-about-grid{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);
  gap:2rem;
  align-items:start;
}
.map-about-grid h2{font-size:clamp(1.45rem,2.4vw,2rem);margin:.35rem 0 .8rem;}
.map-about-grid p{color:var(--ink-soft);margin:0 0 .85rem;max-width:72ch;}
.map-about-cards{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;}
.map-about-cards a{
  display:flex;flex-direction:column;gap:.28rem;
  padding:.9rem 1rem;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:#fff;box-shadow:var(--shadow-card);text-decoration:none;
}
.map-about-cards a strong{font-size:.9rem;color:var(--ink);}
.map-about-cards a span{font-size:.78rem;line-height:1.4;color:var(--ink-soft);}
.map-about-cards a:hover{border-color:var(--blue);transform:translateY(-1px);}
.map-source-note{margin-top:1rem;font-family:var(--font-mono);font-size:.72rem;color:var(--ink-soft);}
.map-section{padding:1rem 0 3.2rem;}
.map-layout{
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  gap:1rem;
  align-items:stretch;
}
.map-filter-panel{
  border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;
  padding:1rem;box-shadow:var(--shadow-card);min-width:0;
}
.map-search-label{display:block;font-size:.78rem;font-weight:800;color:var(--ink);margin:.85rem 0 .4rem;}
.map-search{
  width:100%;padding:.72rem .8rem;border:1px solid var(--line-strong);border-radius:9px;
  font:inherit;font-size:.86rem;color:var(--ink);background:#fff;
}
.map-search:focus{outline:3px solid rgba(242,112,41,.18);border-color:var(--orange);}
.map-filter-list{display:flex;flex-direction:column;gap:.48rem;margin:1rem 0;}
.map-filter-chip{
  display:flex;align-items:center;gap:.55rem;width:100%;padding:.58rem .65rem;
  border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);
  font:inherit;font-size:.82rem;font-weight:700;text-align:left;cursor:pointer;
}
.map-filter-chip > span{width:10px;height:10px;border-radius:50%;background:#7f8aa5;box-shadow:0 0 0 3px rgba(127,138,165,.13);}
.map-filter-chip.areas > span{background:#1f6feb}.map-filter-chip.do > span{background:#f27029}.map-filter-chip.hotels > span{background:#7b3fb3}.map-filter-chip.transport > span{background:#16866b}.map-filter-chip.food > span{background:#c2415d}
.map-filter-chip[aria-pressed="false"]{opacity:.42;background:#f7f8fb;}
.map-count{font-family:var(--font-mono);font-size:.74rem;color:var(--ink-soft);margin:.6rem 0 .75rem;}
.map-actions{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap;}
.map-reset{border:0;background:transparent;color:var(--blue);font-weight:800;cursor:pointer;padding:.4rem .25rem;}
.map-disclaimer{margin:1rem 0 0;font-size:.75rem;line-height:1.5;color:var(--ink-soft);}
.map-canvas-wrap{position:relative;min-width:0;}
.bali-map{
  width:100%;height:min(72vh,720px);min-height:560px;
  border:1px solid var(--line-strong);border-radius:var(--radius-md);overflow:hidden;
  background:#eaf0f4;box-shadow:var(--shadow-card);
}
.map-keyline{font-family:var(--font-mono);font-size:.71rem;color:var(--ink-soft);padding:.5rem .2rem 0;}
.map-toolbar-mobile{display:none;}
.map-page-hero{padding-bottom:1.65rem;}
.map-marker-label{font-family:var(--font-sans);}
.leaflet-popup-content{margin:13px 15px;min-width:190px;max-width:260px;}
.map-popup-title{font-size:.92rem;font-weight:850;color:#111a36;margin:0 0 .35rem;}
.map-popup-cat{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;font-weight:800;color:#68708f;margin-bottom:.38rem;}
.map-popup-text{font-size:.79rem;line-height:1.45;color:#505a78;margin:0 0 .55rem;}
.map-popup-link{font-size:.78rem;font-weight:850;color:#123fbb!important;text-decoration:none!important;}

@media(max-width:899px){
  .sidebar-portrait{max-width:330px;}
  .map-about-grid{grid-template-columns:1fr;}
  .map-layout{grid-template-columns:1fr;}
  .map-toolbar-mobile{display:flex;justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:.7rem;}
  .map-filter-toggle{border:1px solid var(--line-strong);border-radius:999px;background:#fff;padding:.55rem .85rem;font-weight:800;color:var(--ink);cursor:pointer;}
  .map-mobile-note{font-family:var(--font-mono);font-size:.7rem;color:var(--ink-soft);}
  .map-filter-panel{display:none;}
  .map-filter-panel.open{display:block;}
  .bali-map{height:68vh;min-height:480px;}
}
@media(max-width:800px){
  .hub-intro-grid{grid-template-columns:1fr;gap:1.2rem;}
  .hub-intro-grid .hub-portrait-shell{padding:0;margin:.2rem 0 0;}
  .hub-intro-grid .hub-portrait{max-width:360px;margin:0 auto;}
  .hub-intro-grid .hub-portrait img{border-radius:0;}
  .home-hub-portrait{display:block;max-width:none;padding:0;margin:.75rem 0 0;}
  .home-hub-portrait .hub-portrait{max-width:360px;margin:0 auto;}
  .home-hub-portrait .hub-portrait img{border-radius:0;object-fit:contain;background:#fff;}
  .map-about-cards{grid-template-columns:1fr;}
}
@media(max-width:520px){
  .bali-map{height:64vh;min-height:430px;border-radius:0;}
  .map-section .wrap{padding-left:0;padding-right:0;}
  .map-section .map-toolbar-mobile{padding-left:1rem;padding-right:1rem;}
  .map-filter-panel{margin:0 1rem;}
  .map-keyline{padding-left:1rem;padding-right:1rem;}
}
/* R3 LAYOUT + MAP POLISH END */


/* TB MANUAL LAYOUT + MEGA MENU — 2026-09-09 */
/* Approved desktop pattern: the 8:3 hero belongs to the main content track,
   leaving the right-hand track available from the top of the page. */
@media (min-width:900px){
  body.tb-split-article .article-layout{
    grid-template-columns:minmax(0,2.45fr) minmax(280px,.85fr);
    gap:clamp(1.25rem,2.2vw,2rem);
    padding:1rem 0 3rem;
    align-items:start;
  }
  body.tb-split-article .article-body > .page-hero-outer{
    padding:0;
    margin:0 0 1.1rem;
    background:transparent;
  }
  body.tb-split-article .article-body > .page-hero-outer .page-hero-img-wrap{
    max-width:none;
    width:100%;
    margin:0;
    border-radius:var(--radius-lg,16px);
  }
  body.tb-split-article .article-body > .article-hero{
    padding:1.15rem 0 1.45rem;
    margin:0 0 .2rem;
    background:transparent;
    border-bottom:1px solid var(--line);
  }
  body.tb-split-article .article-body > .article-hero > .wrap{
    max-width:var(--container);
    padding:0 max(12px, 1.5rem);
    margin:0 auto;
  }

  body.tb-split-article.tb-no-page-hero .article-hero > .wrap{
    max-width:var(--container);
    padding:0 max(12px, 1.5rem);
    margin:0 auto;
  }
  body.tb-split-article .sidebar{
    min-width:0;
    align-self:start;
  }

  /* Department/hub pages use the same split: hero left, 4:5 support art right. */
  body.tb-split-hub .stub-hero{padding-top:1rem;}
  body.tb-split-hub .hub-intro-grid{
    grid-template-columns:minmax(0,2.45fr) minmax(280px,.85fr);
    align-items:start;
    gap:clamp(1.25rem,2.2vw,2rem);
  }
  body.tb-split-hub .hub-intro-copy > .page-hero-outer{
    padding:0;
    margin:0 0 1.25rem;
    background:transparent;
  }
  body.tb-split-hub .hub-intro-copy > .page-hero-outer .page-hero-img-wrap{
    max-width:none;
    width:100%;
    margin:0;
    border-radius:var(--radius-lg,16px);
  }
  body.tb-split-hub .hub-intro-grid .hub-portrait-shell{
    width:100%;
    max-width:none;
    padding:0;
    margin:0;
  }
  body.tb-split-hub .hub-intro-grid .hub-portrait{
    width:100%;
    max-width:none;
    margin:0;
  }
}

/* 4:5 sidebar artwork should fill the same sidebar track as every other card. */
.sidebar .sidebar-portrait,
.sidebar-portrait{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
  padding:0;
  background:#fff;
  box-sizing:border-box;
}
.sidebar-portrait img{
  display:block;
  width:100%;
  max-width:none;
  height:auto;
  aspect-ratio:4/5;
  object-fit:contain;
  object-position:center;
  background:#fff;
}
.hub-intro-grid .hub-portrait,
.hub-intro-grid .hub-portrait img{
  width:100%;
  max-width:none;
}
.hub-intro-grid .hub-portrait img{object-fit:contain;background:#fff;}

/* Desktop mega navigation. JS injects one shared, keyboard-accessible panel. */
.site-header{overflow:visible;}
.tb-mega{
  position:absolute;
  left:0; right:0; top:100%;
  z-index:80;
  display:none;
  background:rgba(255,255,255,.985);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line-strong);
  box-shadow:0 22px 55px rgba(7,30,94,.18);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
.tb-mega.open{display:block;}
.tb-mega-inner{
  max-width:var(--container);
  margin:0 auto;
  padding:1.35rem 1.5rem 1.5rem;
}
.tb-mega-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1rem;
}
.tb-mega-eyebrow{
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--orange-deep);
}
.tb-mega-title{font-family:var(--font-display);font-size:1.35rem;font-weight:800;color:var(--ink);}
.tb-mega-all{font-size:.82rem;font-weight:800;color:var(--blue);}
.tb-mega-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:.75rem;
}
.tb-mega-group{
  min-width:0;
  padding:.85rem;
  border:1px solid var(--line);
  border-radius:12px;
  background:linear-gradient(180deg,#fff 0%,#f8faff 100%);
}
.tb-mega-group.is-current{
  border-color:rgba(242,112,41,.55);
  box-shadow:inset 0 3px 0 var(--orange);
}
.tb-mega-group h3{
  display:flex;align-items:center;gap:.45rem;
  margin:0 0 .55rem;
  font-size:.92rem;color:var(--ink);
}
.tb-mega-icon{
  width:30px;height:30px;border-radius:9px;
  display:grid;place-items:center;
  background:var(--blue-xpale);
  font-size:1rem;
}
.tb-mega-group ul{display:grid;gap:.16rem;margin:0;padding:0;list-style:none;}
.tb-mega-group li{margin:0;padding:0;}
.tb-mega-group a{
  display:block;
  padding:.34rem .38rem;
  border-radius:7px;
  font-size:.78rem;
  line-height:1.25;
  font-weight:650;
  color:var(--ink-soft);
}
.tb-mega-group a:hover,.tb-mega-group a:focus-visible{
  background:var(--blue-xpale);
  color:var(--blue);
  outline:none;
}
.tb-mega-features{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:.75rem;
  margin-top:.85rem;
}
.tb-mega-feature{
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  gap:.8rem;
  min-height:70px;
  padding:.85rem 1rem;
  border-radius:12px;
  color:#fff!important;
  background:linear-gradient(135deg,#0b2e8a 0%,#1d58c7 70%,#2d6dd6 100%);
  box-shadow:0 8px 20px rgba(11,46,138,.15);
}
.tb-mega-feature:nth-child(2){background:linear-gradient(135deg,#e95116,#f27029 70%,#ff9a55);}
.tb-mega-feature:nth-child(3){background:linear-gradient(135deg,#087766,#15a68b 70%,#43c6aa);}
.tb-mega-feature::after{
  content:'';position:absolute;width:110px;height:110px;border-radius:50%;
  right:-35px;top:-45px;background:rgba(255,255,255,.12);
}
.tb-mega-feature .fi{font-size:1.55rem;position:relative;z-index:1;}
.tb-mega-feature span{display:block;position:relative;z-index:1;}
.tb-mega-feature strong{display:block;font-size:.9rem;color:#fff;}
.tb-mega-feature small{display:block;margin-top:.12rem;font-size:.72rem;color:rgba(255,255,255,.82);}
.main-nav a.tb-mega-trigger::after{content:'⌄';font-size:.68rem;margin-left:.28rem;color:var(--blue);}
.main-nav a.tb-mega-trigger[aria-expanded='true']{background:var(--blue-xpale);color:var(--blue);}
.tb-explore-trigger{
  border:1.5px solid var(--line);
  border-radius:999px;
  padding:.42rem .85rem;
  background:#fff;
  color:var(--blue);
  font:700 .76rem var(--font-body);
  cursor:pointer;
  white-space:nowrap;
}
.tb-explore-trigger:hover,.tb-explore-trigger[aria-expanded='true']{border-color:var(--orange);color:var(--orange-deep);background:var(--orange-pale);}

@media(max-width:1160px) and (min-width:761px){
  .tb-mega-grid{grid-template-columns:repeat(3,1fr);}
  .tb-mega-features{grid-template-columns:1fr 1fr 1fr;}
  .main-nav a{padding-left:.55rem;padding-right:.55rem;}
  .tb-explore-trigger{display:none;}
}
@media(max-width:760px){
  .tb-mega,.tb-explore-trigger{display:none!important;}
  body.tb-split-article .article-body > .page-hero-outer,
  body.tb-split-hub .hub-intro-copy > .page-hero-outer{padding:0;margin:.5rem 0 1rem;}
  body.tb-split-article .article-body > .article-hero{background:var(--blue-xpale);margin:0 -.9rem 1rem;padding:1.5rem .9rem;}
  .sidebar-portrait,.hub-intro-grid .hub-portrait{max-width:none;margin:0;}
}

/* TATS Man author portrait refresh — 2026-09-10
   Keep the portrait in its native 9:16 shape beside the author blurb.
   These !important declarations intentionally override the legacy per-page
   circular 104x104 author-card rules without rewriting article content. */
.tats-author-card{
  grid-template-columns:138px minmax(0,1fr)!important;
  gap:1.15rem!important;
  align-items:start!important;
}
.tats-author-card > div{min-width:0}
.tats-author-card img[src$="tats-man-mj-akerman.png"]{
  width:138px!important;
  height:auto!important;
  aspect-ratio:9/16!important;
  object-fit:cover!important;
  object-position:50% 50%!important;
  border-radius:14px!important;
  border:1px solid #dce5ef!important;
  background:#fff!important;
  box-shadow:0 8px 22px rgba(15,55,95,.10)!important;
}
@media(max-width:620px){
  .tats-author-card{
    grid-template-columns:92px minmax(0,1fr)!important;
    gap:.85rem!important;
    align-items:start!important;
  }
  .tats-author-card img[src$="tats-man-mj-akerman.png"]{
    width:92px!important;
    height:auto!important;
  }
}
@media(max-width:380px){
  .tats-author-card{
    grid-template-columns:82px minmax(0,1fr)!important;
    gap:.7rem!important;
  }
  .tats-author-card img[src$="tats-man-mj-akerman.png"]{
    width:82px!important;
  }
}



/* Mega-menu active-section clarity + TATS network footer credit — 2026-09-10 */
.tb-mega-group{
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.tb-mega-group.is-current{
  background:linear-gradient(180deg,var(--blue) 0%,#08256f 100%);
  border-color:var(--blue);
  box-shadow:0 12px 28px rgba(7,30,94,.22),inset 0 0 0 1px rgba(255,255,255,.10);
  transform:translateY(-2px);
}
.tb-mega-group.is-current h3{color:#fff;}
.tb-mega-group.is-current .tb-mega-icon{
  background:#fff;
  box-shadow:0 4px 12px rgba(0,0,0,.15);
}
.tb-mega-group.is-current a{color:rgba(255,255,255,.94);}
.tb-mega-group.is-current a:hover,
.tb-mega-group.is-current a:focus-visible{
  background:#fff;
  color:var(--blue);
}
.main-nav a.tb-mega-trigger[aria-expanded='true']{
  background:var(--blue);
  color:#fff;
  box-shadow:0 4px 12px rgba(7,30,94,.14);
}
.main-nav a.tb-mega-trigger[aria-expanded='true']::after{color:#fff;}

.tb-network-credit{
  margin:0 0 0 auto;
  padding:0;
  border:0;
  text-align:right;
  font-family:var(--font-mono);
  font-size:.74rem;
  color:#7f88b5;
  line-height:1.4;
}
.footer-bottom .tb-network-credit{margin-left:auto;}
.tb-network-credit a{
  color:#c8cee7;
  font-weight:800;
  text-decoration:none;
  transition:color .15s ease;
}
.tb-network-credit a:hover,
.tb-network-credit a:focus-visible{color:#fff;text-decoration:underline;}


/* TB VISUAL SECTION GRID STYLES — 2026-09-10 */
.tb-visual-section-hub .tb-section-visual-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:1rem;
  align-items:stretch;
}
.tb-visual-section-hub .tb-section-visual-grid .tb-section-visual-card{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:0;
  min-width:0;
  padding:0;
  overflow:hidden;
  border:1px solid rgba(11,46,138,.18);
  border-radius:14px;
  background:#fff;
  box-shadow:0 7px 20px rgba(7,30,94,.07);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.tb-visual-section-hub .tb-section-visual-grid .tb-section-visual-card:hover,
.tb-visual-section-hub .tb-section-visual-grid .tb-section-visual-card:focus-within{
  transform:translateY(-3px);
  border-color:var(--blue);
  box-shadow:0 12px 28px rgba(7,30,94,.14);
}
.tb-visual-section-hub .tb-section-card-media{
  display:block;
  width:100%;
  aspect-ratio:4/5;
  overflow:hidden;
  background:var(--blue-pale);
  text-decoration:none;
}
.tb-visual-section-hub .tb-section-card-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .28s ease,filter .28s ease;
}
.tb-visual-section-hub .tb-section-visual-card:hover .tb-section-card-media img,
.tb-visual-section-hub .tb-section-visual-card:focus-within .tb-section-card-media img{
  transform:scale(1.035);
  filter:saturate(1.06);
}
.tb-visual-section-hub .tb-section-visual-grid .tb-section-visual-card > .n{
  position:absolute;
  z-index:3;
  top:.58rem;
  left:.58rem;
  margin:0;
  padding:.32rem .48rem;
  min-width:2rem;
  text-align:center;
  border-radius:7px;
  background:var(--blue);
  color:#fff;
  box-shadow:0 3px 10px rgba(0,0,0,.18);
  font-weight:800;
  line-height:1;
}
.tb-visual-section-hub .tb-section-visual-grid .tb-section-visual-card > a:not(.tb-section-card-media){
  display:block;
  width:100%;
  flex:1 1 auto;
  padding:.72rem .78rem .82rem;
  color:var(--blue);
  font-size:.86rem;
  font-weight:800;
  line-height:1.3;
  text-decoration:none;
  overflow-wrap:anywhere;
}
.tb-visual-section-hub .tb-section-visual-grid .tb-section-visual-card > a:not(.tb-section-card-media):hover,
.tb-visual-section-hub .tb-section-visual-grid .tb-section-visual-card > a:not(.tb-section-card-media):focus-visible{
  color:var(--orange-deep);
}
.tb-visual-section-hub .news-desk .tb-section-visual-grid{
  margin:1rem 0 2rem;
}
@media(max-width:1180px){
  .tb-visual-section-hub .tb-section-visual-grid{grid-template-columns:repeat(5,minmax(0,1fr));}
}
@media(max-width:980px){
  .tb-visual-section-hub .tb-section-visual-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
}
@media(max-width:760px){
  .tb-visual-section-hub .tb-section-visual-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;}
}
@media(max-width:540px){
  .tb-visual-section-hub .tb-section-visual-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;}
  .tb-visual-section-hub .tb-section-visual-grid .tb-section-visual-card > a:not(.tb-section-card-media){font-size:.82rem;padding:.62rem .65rem .72rem;}
}
@media(max-width:340px){
  .tb-visual-section-hub .tb-section-visual-grid{grid-template-columns:1fr;}
}
@media(prefers-reduced-motion:reduce){
  .tb-visual-section-hub .tb-section-visual-card,
  .tb-visual-section-hub .tb-section-card-media img{transition:none!important;}
}

/* TB MOBILE HERO — TRUE EDGE-TO-EDGE, 2026-09-10
   Owner requirement: zero top/left/right spacing; exactly 4px below the hero. */
@media(max-width:760px){
  .page-hero-outer{
    padding:0!important;
    margin:0 0 4px!important;
    background:transparent!important;
  }

  /* JS relocates article heroes inside the padded content track on most pages.
     Break the hero back out to the viewport edges without changing text padding. */
  body.tb-split-article .article-layout{
    padding-top:0!important;
  }
  body.tb-split-hub .stub-hero{
    padding-top:0!important;
  }
  body.tb-split-article .article-body > .page-hero-outer,
  body.tb-split-hub .hub-intro-copy > .page-hero-outer{
    width:100vw!important;
    max-width:100vw!important;
    padding:0!important;
    margin-top:0!important;
    margin-right:calc(50% - 50vw)!important;
    margin-bottom:4px!important;
    margin-left:calc(50% - 50vw)!important;
  }

  .page-hero-img-wrap,
  body.tb-split-article .article-body > .page-hero-outer .page-hero-img-wrap,
  body.tb-split-hub .hub-intro-copy > .page-hero-outer .page-hero-img-wrap{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
  }
  .page-hero-img{
    margin:0!important;
    padding:0!important;
    border-radius:0!important;
  }
}


/* TB HEADER FIT + LANGUAGE DROPDOWN — 2026-09-10 */
.site-header .wrap{
  max-width:var(--container)!important;
  gap:.35rem;
  padding-left:1rem;
  padding-right:1rem;
}
.site-header .brand{
  flex:0 0 auto!important;
  min-width:100px!important;
}
.site-header .brand img{
  display:block;
  height:72px!important;
  width:auto!important;
  max-width:none!important;
  flex:none!important;
  object-fit:contain;
}
.site-header .main-nav{
  flex:1 1 auto;
  min-width:0;
  justify-content:center;
  gap:0;
}
.site-header .main-nav a{
  padding:.43rem .48rem;
  font-size:.82rem;
  white-space:nowrap;
}
.site-header .header-actions{
  flex:0 0 auto;
  min-width:max-content;
  gap:.28rem;
  white-space:nowrap;
}
.site-header .btn-search{padding:.42rem .78rem;}
.site-header .tb-explore-trigger{padding:.42rem .72rem;}

.tb-language-menu-wrap{
  position:relative;
  flex:0 0 auto;
  z-index:35;
}
.tb-language-switch{
  appearance:none;
  border:1.5px solid var(--line);
  background:#fff;
  color:var(--ink-soft);
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  width:48px;
  height:48px;
  padding:3px;
  border-radius:10px;
  cursor:pointer;
  line-height:1;
  -webkit-tap-highlight-color:transparent;
  transition:border-color .14s ease,background .14s ease,color .14s ease;
}
.tb-language-switch:hover,
.tb-language-switch:focus-visible,
.tb-language-menu-wrap.is-open .tb-language-switch{
  border-color:var(--blue);
  background:var(--blue-xpale);
  color:var(--blue);
}
.tb-language-label{
  display:block;
  font-family:var(--font-mono);
  font-size:6px;
  line-height:1;
  font-weight:800;
  letter-spacing:.055em;
  text-transform:uppercase;
  color:#6870A0;
  white-space:nowrap;
}
.tb-language-current{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:3px;
}
.tb-language-flag,
.tb-language-option-flag{
  display:block;
  width:25px;
  line-height:0;
  overflow:hidden;
  border-radius:2px;
  box-shadow:0 0 0 1px rgba(0,0,0,.12);
}
.tb-language-flag svg,
.tb-language-option-flag svg{display:block;width:100%;height:auto;}
.tb-language-option-flag{width:26px;}
.tb-language-chevron{
  display:block;
  font-size:9px;
  line-height:1;
  color:#6870A0;
  transition:transform .14s ease;
}
.tb-language-menu-wrap.is-open .tb-language-chevron{transform:rotate(180deg);}
.tb-language-menu{
  position:absolute;
  top:calc(100% + 7px);
  left:0;
  min-width:205px;
  padding:7px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  box-shadow:0 14px 34px rgba(7,30,94,.18);
  z-index:50;
}
.tb-language-menu[hidden]{display:none!important;}
.tb-language-option{
  display:grid;
  grid-template-columns:30px 1fr auto;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:7px 9px;
  border-radius:8px;
  font-size:.82rem;
  font-weight:700;
  color:var(--ink-soft);
  text-decoration:none!important;
}
.tb-language-option small{font-size:.62rem;color:#7b829f;font-weight:700;text-transform:uppercase;letter-spacing:.04em;}
.tb-language-option:hover,
.tb-language-option:focus-visible{background:var(--blue-xpale);color:var(--blue);}
.tb-language-option.is-current{background:#f7f8fc;color:var(--ink);cursor:default;}
.tb-language-note{display:block;padding:5px 9px 3px;color:#7b829f;font-size:.66rem;line-height:1.35;white-space:normal;}

@media(max-width:1180px) and (min-width:761px){
  .site-header .wrap{gap:.18rem;padding-left:.6rem;padding-right:.6rem;}
  .site-header .brand{flex:0 0 auto!important;min-width:88px!important;}
  .site-header .brand img{height:64px!important;max-width:none!important;}
  .site-header .main-nav a{padding:.4rem .37rem;font-size:.78rem;}
  .site-header .header-actions{gap:.2rem;}
  .site-header .tb-explore-trigger{padding:.4rem .58rem!important;font-size:.78rem;}
  .site-header .btn-search{padding:.4rem .62rem!important;font-size:.72rem;}
  .tb-language-switch{width:44px;height:44px;}
  .tb-social-icon{width:36px!important;height:36px!important;}
}
@media(max-width:920px) and (min-width:761px){
  .site-header .main-nav a{padding:.38rem .29rem;font-size:.74rem;}
  .site-header .brand{flex:0 0 auto!important;min-width:80px!important;}
  .site-header .brand img{height:58px!important;max-width:none!important;}
  .site-header .header-actions{gap:.14rem;}
  .site-header .tb-explore-trigger{padding:.38rem .5rem!important;}
  .site-header .btn-search{padding:.38rem .52rem!important;}
}
@media(max-width:760px){
  .site-header .wrap{max-width:var(--container)!important;gap:.35rem!important;}
  .site-header .brand{flex:0 0 auto!important;min-width:0!important;}
  .site-header .brand img{height:58px!important;width:auto!important;max-width:none!important;flex:none!important;object-fit:contain;}
  .site-header .header-actions{flex:0 0 auto;min-width:0;gap:.25rem!important;}
  .tb-language-switch{width:42px;height:42px;padding:2px;}
  .tb-language-label{font-size:5.4px;}
  .tb-language-flag{width:22px;}
  .tb-language-menu{left:auto;right:0;min-width:195px;}
}
@media(max-width:430px){
  .site-header .wrap{padding-left:10px!important;padding-right:10px!important;}
  .site-header .brand img{height:54px!important;}
  .tb-language-switch{width:39px;height:39px;}
  .tb-language-label{font-size:5px;}
  .tb-language-flag{width:20px;}
}
@media(prefers-reduced-motion:reduce){
  .tb-language-switch,.tb-language-chevron{transition:none!important;}
}

/* TATS News Team author card — 2026-09-10 */
.tats-news-author-card{
  display:grid;
  grid-template-columns:118px minmax(0,1fr);
  gap:1rem;
  align-items:start;
  margin:2rem 0 1.2rem;
  padding:1rem;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 24px rgba(7,30,94,.07);
}
.tats-news-author-card img{
  display:block;
  width:118px;
  height:auto;
  aspect-ratio:9/16;
  object-fit:cover;
  border-radius:12px;
  border:1px solid #dce5ef;
}
.tats-news-author-card .tats-news-author-kicker{
  display:block;
  margin-bottom:.25rem;
  font-family:var(--font-mono);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
  color:#6870A0;
}
.tats-news-author-card h3{margin:.05rem 0 .35rem;font-size:1.08rem;}
.tats-news-author-card p{margin:.35rem 0;font-size:.88rem;line-height:1.55;color:var(--ink-soft);}
.tats-news-author-card a{font-weight:800;}
@media(max-width:520px){
  .tats-news-author-card{grid-template-columns:84px minmax(0,1fr);gap:.75rem;padding:.8rem;}
  .tats-news-author-card img{width:84px;}
  .tats-news-author-card p{font-size:.82rem;}
}



/* Leaflet core layout fallback — 2026-09-10
   The map uses Leaflet. These local rules keep tiles/panes positioned correctly
   even if the third-party Leaflet stylesheet is blocked or arrives late. */
.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box{
  position:absolute;
  left:0;
  top:0;
}
.leaflet-container{
  overflow:hidden;
  position:relative;
  -webkit-tap-highlight-color:transparent;
  background:#dfe7ec;
  outline-offset:1px;
}
.leaflet-container .leaflet-tile{
  max-width:none!important;
  width:256px;
  height:256px;
  user-select:none;
  -webkit-user-drag:none;
  pointer-events:none;
}
.leaflet-tile-pane{z-index:200;}
.leaflet-overlay-pane{z-index:400;}
.leaflet-shadow-pane{z-index:500;}
.leaflet-marker-pane{z-index:600;}
.leaflet-tooltip-pane{z-index:650;}
.leaflet-popup-pane{z-index:700;}
.leaflet-map-pane canvas{z-index:100;}
.leaflet-map-pane svg{z-index:200;}
.leaflet-zoom-animated{transform-origin:0 0;}
.leaflet-zoom-hide{visibility:hidden;}
.leaflet-top,.leaflet-bottom{
  position:absolute;
  z-index:1000;
  pointer-events:none;
}
.leaflet-top{top:0;}
.leaflet-right{right:0;}
.leaflet-bottom{bottom:0;}
.leaflet-left{left:0;}
.leaflet-control{
  position:relative;
  z-index:800;
  pointer-events:auto;
  float:left;
  clear:both;
}
.leaflet-right .leaflet-control{float:right;}
.leaflet-top .leaflet-control{margin-top:10px;}
.leaflet-bottom .leaflet-control{margin-bottom:10px;}
.leaflet-left .leaflet-control{margin-left:10px;}
.leaflet-right .leaflet-control{margin-right:10px;}
.leaflet-bar{
  box-shadow:0 1px 5px rgba(0,0,0,.28);
  border-radius:6px;
}
.leaflet-bar a{
  display:block;
  width:30px;
  height:30px;
  line-height:30px;
  text-align:center;
  text-decoration:none;
  background:#fff;
  color:#111;
  border-bottom:1px solid #ccc;
  font:700 18px/30px Arial,sans-serif;
}
.leaflet-bar a:first-child{border-radius:6px 6px 0 0;}
.leaflet-bar a:last-child{border-bottom:0;border-radius:0 0 6px 6px;}
.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px;}
.leaflet-popup-content-wrapper{
  padding:1px;
  text-align:left;
  border-radius:12px;
  background:#fff;
  box-shadow:0 3px 14px rgba(0,0,0,.25);
}
.leaflet-popup-content{margin:13px 19px;line-height:1.45;}
.leaflet-popup-tip-container{
  width:40px;
  height:20px;
  position:absolute;
  left:50%;
  margin-left:-20px;
  overflow:hidden;
  pointer-events:none;
}
.leaflet-popup-tip{
  width:17px;
  height:17px;
  padding:1px;
  margin:-10px auto 0;
  transform:rotate(45deg);
  background:#fff;
  box-shadow:3px 3px 14px rgba(0,0,0,.18);
}
.leaflet-tooltip{
  position:absolute;
  padding:6px 8px;
  background:#fff;
  border:1px solid #fff;
  border-radius:5px;
  color:#222;
  white-space:nowrap;
  user-select:none;
  pointer-events:none;
  box-shadow:0 1px 4px rgba(0,0,0,.18);
}

/* TB HOMEPAGE VISUAL REBUILD — 2026-09-10 */
.home-main{display:block;}
.home-top{padding:1rem 0 1.25rem;background:#fff;}
.home-top-grid{
  display:grid;
  grid-template-columns:minmax(0,2.45fr) minmax(250px,.85fr);
  gap:clamp(1rem,2vw,1.6rem);
  align-items:start;
}
.home-top-main{min-width:0;}
.home-page-hero{padding:0!important;margin:0!important;background:transparent!important;}
.home-page-hero .page-hero-img-wrap{
  width:100%;max-width:none;margin:0;
  border-radius:var(--radius-lg,16px);
  border:1px solid var(--line);
  overflow:hidden;
  aspect-ratio:8/3;
}
.home-top-sidebar{gap:1rem;}
.home-top-sidebar .fact-row .v a{color:var(--ink);font-weight:700;text-decoration:none;}
.home-top-sidebar .fact-row .v a:hover{color:var(--orange-deep);}
.home-card-section{padding-top:2rem;padding-bottom:2.25rem;}
.home-areas-section{background:#fff;}
.home-news-section{background:var(--blue-xpale);}
.home-visual-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:clamp(.75rem,1.2vw,1rem);
}
.home-visual-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  color:inherit;
  text-decoration:none;
  transition:transform .2s ease;
}
.home-visual-card:hover{transform:translateY(-3px);}
.home-card-media{
  display:block;
  position:relative;
  overflow:hidden;
  aspect-ratio:4/5;
  border-radius:14px;
  background:var(--blue-pale);
  border:1px solid var(--line);
  box-shadow:var(--shadow-card);
}
.home-card-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .25s ease;
}
.home-visual-card:hover .home-card-media img{transform:scale(1.035);}
.home-card-badge{
  position:absolute;
  top:.55rem;
  left:.55rem;
  z-index:2;
  min-width:2rem;
  padding:.38rem .5rem;
  border-radius:8px;
  background:var(--blue-deep);
  color:#fff;
  font-family:var(--font-mono);
  font-size:.72rem;
  line-height:1;
  font-weight:800;
  text-align:center;
  box-shadow:0 3px 10px rgba(0,0,0,.18);
}
.home-card-badge.news{background:var(--orange-deep);}
.home-card-title{
  display:block;
  margin:.62rem .1rem 0;
  color:var(--ink);
  font-size:.95rem;
  line-height:1.25;
  font-weight:800;
}
.home-card-copy{
  display:block;
  margin:.3rem .1rem 0;
  color:var(--ink-soft);
  font-size:.79rem;
  line-height:1.35;
}
.home-visual-card:hover .home-card-title{color:var(--orange-deep);}

@media(max-width:1180px){
  .home-visual-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
}
@media(max-width:900px){
  .home-top-grid{grid-template-columns:minmax(0,2fr) minmax(230px,.9fr);}
  .home-visual-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:760px){
  .home-top{padding:0 0 1rem;}
  .home-top-grid{display:block;}
  .home-page-hero{
    width:100vw!important;
    max-width:100vw!important;
    margin:0 calc(50% - 50vw) 4px!important;
  }
  .home-page-hero .page-hero-img-wrap{border:0!important;border-radius:0!important;}
  .home-top-sidebar{margin-top:.85rem;}
  .home-visual-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;}
  .home-card-section{padding-top:1.4rem;padding-bottom:1.7rem;}
}
@media(max-width:380px){
  .home-visual-grid{grid-template-columns:1fr;}
}
@media(prefers-reduced-motion:reduce){
  .home-visual-card,.home-card-media img{transition:none!important;}
}

/* TB HOMEPAGE GAP + LONG SIDEBAR FIX — 2026-09-10 */
.home-main{display:block;}
.home-main > .home-page-grid{
  display:grid;
  grid-template-columns:minmax(0,2.45fr) minmax(250px,.85fr);
  grid-template-rows:repeat(6,auto);
  column-gap:clamp(1rem,2vw,1.6rem);
  row-gap:0;
  align-items:start;
  padding-top:1rem;
  padding-bottom:2rem;
}
.home-page-grid > section{
  grid-column:1;
  min-width:0;
}
.home-page-grid > .home-top{
  grid-row:1;
  padding:0 0 .85rem;
  background:#fff;
}
.home-page-grid > .home-areas-section{grid-row:2;padding-top:.75rem;}
.home-page-grid > section:nth-of-type(3){grid-row:3;}
.home-page-grid > .home-news-section{grid-row:4;}
.home-page-grid > .hotels-callout{grid-row:5;}
.home-page-grid > section:nth-of-type(6){grid-row:6;}
.home-page-grid > .home-page-sidebar{
  grid-column:2;
  grid-row:1 / 7;
  align-self:stretch!important;
  min-height:100%;
  display:flex;
  flex-direction:column;
  gap:1rem;
  padding:0 0 2rem clamp(.7rem,1.2vw,1rem);
  border-left:1px solid var(--line);
}
.home-page-grid > .home-top .home-top-main{min-width:0;}
.home-page-grid > .home-top .home-page-hero{padding:0!important;margin:0!important;}
.home-page-grid > .section > .wrap,
.home-page-grid > .hotels-callout > .wrap{
  width:100%;
  max-width:none;
  padding-left:0;
  padding-right:0;
}
.home-page-grid > .section{padding-left:0;padding-right:0;}
.home-page-grid > .home-card-section{padding-top:1.35rem;padding-bottom:1.75rem;}
.home-page-grid > .home-news-section{
  margin:0;
  padding-left:1rem;
  padding-right:1rem;
  border-radius:16px;
}
.home-page-grid > .hotels-callout{
  margin:0;
  border-radius:16px;
  overflow:hidden;
}
.home-page-grid > .hotels-callout > .wrap{padding-left:1.35rem;padding-right:1.35rem;}
.home-book-card a{font-weight:700;}
.home-book-card a:hover{color:var(--orange-deep);}

@media(max-width:900px) and (min-width:761px){
  .home-main > .home-page-grid{
    grid-template-columns:minmax(0,2fr) minmax(230px,.9fr);
  }
}
@media(max-width:760px){
  .home-main > .home-page-grid{
    display:block;
    padding-top:0;
    padding-bottom:1rem;
  }
  .home-page-grid > .home-top{padding:0 0 4px;}
  .home-page-grid > .home-page-sidebar{
    min-height:0;
    border-left:0;
    padding:0;
    margin:.85rem 0 1rem;
  }
  .home-page-grid > .home-news-section{padding-left:.75rem;padding-right:.75rem;}
  .home-page-grid > .hotels-callout{border-radius:0;}
}


/* TB HOMEPAGE MONETIZATION GRAPHICS — 2026-09-10 */
.home-book-card{padding:1rem 1.05rem;}
.home-book-card h5{margin-bottom:.8rem;}
.home-monetization-stack{display:flex;flex-direction:column;gap:.75rem;}
.home-monetization-card{display:block;width:100%;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow-card);transition:transform .16s ease,box-shadow .16s ease;}
.home-monetization-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover);}
.home-monetization-card img{display:block;width:100%;height:auto;}
@media(max-width:760px){.home-monetization-stack{gap:.9rem}.home-monetization-card{max-width:600px;margin-inline:auto;}}


/* TB HOMEPAGE SIDEBAR WIDTH NORMALISATION — 2026-09-10
   Keep every sidebar module and image banner on the same visual width. */
.home-page-grid > .home-page-sidebar > *{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  align-self:stretch!important;
}
.home-page-grid > .home-page-sidebar .home-book-card{
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.home-page-grid > .home-page-sidebar .home-book-card h5{
  margin:0 0 .75rem!important;
  padding:.85rem 1rem!important;
  border:1.5px solid var(--line)!important;
  border-radius:var(--radius-md)!important;
  background:var(--white)!important;
}
.home-page-grid > .home-page-sidebar .home-monetization-stack,
.home-page-grid > .home-page-sidebar .home-monetization-card,
.home-page-grid > .home-page-sidebar .home-monetization-card img,
.home-page-grid > .home-page-sidebar .tb-social-follow-card{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}
@media(max-width:760px){
  .home-page-grid > .home-page-sidebar .home-book-card h5{padding:.8rem .9rem!important;}
}

/* OWNER MANUAL UI TUNE — 2026-09-20
   Larger desktop primary navigation and consistent article-sidebar imagery. */
@media (min-width:1181px){
  .site-header .main-nav a{
    font-size:1rem;
    padding:.46rem .66rem;
  }
}

/* Keep article/news sidebar visual cards on one consistent full width. */
.sidebar .home-book-card{
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.sidebar .home-monetization-stack{
  width:100%!important;
  max-width:none!important;
}
.sidebar .home-monetization-card,
.sidebar .sidebar-media-slot,
.sidebar .sidebar-portrait{
  display:block;
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  border:1px solid var(--line)!important;
  border-radius:12px!important;
  overflow:hidden!important;
  background:#fff;
  box-shadow:var(--shadow-card);
}
.sidebar .home-monetization-card img,
.sidebar .sidebar-media-slot img,
.sidebar .sidebar-portrait img{
  display:block;
  width:100%!important;
  max-width:none!important;
  height:auto;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
}

/* TB UNIVERSAL SIDEBAR + OWNER UI TUNE — 2026-09-20
   Owner direction: consistent desktop sidebar treatment sitewide, larger desktop
   primary navigation, full-width rounded sidebar imagery, and a real right rail
   on hub pages instead of dumping Book & Travel below the content. */
@media (min-width:1181px){
  .site-header .main-nav a{
    font-size:1rem!important;
    padding:.46rem .62rem!important;
  }
}

/* Every sidebar module occupies the same rail width. */
.sidebar > *,
.home-page-sidebar > *{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
  align-self:stretch;
  box-sizing:border-box;
}

/* Book & Travel artwork fills the rail just like the page portrait/news cards. */
.sidebar .home-book-card,
.home-page-sidebar .home-book-card{
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.sidebar .home-book-card > h5,
.home-page-sidebar .home-book-card > h5{
  margin:0 0 .75rem!important;
  padding:.85rem 1rem!important;
  border:1.5px solid var(--line)!important;
  border-radius:var(--radius-md)!important;
  background:var(--white)!important;
  box-shadow:var(--shadow-card)!important;
}
.sidebar .home-monetization-stack,
.home-page-sidebar .home-monetization-stack{
  width:100%!important;
  max-width:none!important;
  gap:.8rem!important;
}
.sidebar .home-monetization-card,
.sidebar .sidebar-media-slot,
.sidebar .sidebar-portrait,
.home-page-sidebar .home-monetization-card,
.home-page-sidebar .sidebar-media-slot,
.home-page-sidebar .sidebar-portrait{
  display:block;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid var(--line)!important;
  border-radius:12px!important;
  background:#fff!important;
  box-shadow:var(--shadow-card)!important;
}
.sidebar .home-monetization-card img,
.sidebar .sidebar-media-slot img,
.sidebar .sidebar-portrait img,
.home-page-sidebar .home-monetization-card img,
.home-page-sidebar .sidebar-media-slot img,
.home-page-sidebar .sidebar-portrait img{
  display:block;
  width:100%!important;
  max-width:none!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
}

/* Hub-page body becomes a proper main + sidebar grid. The existing 8:3 + 4:5
   intro row stays intact above this rail. */
.tb-hub-body-grid{
  display:grid;
  grid-template-columns:minmax(0,2.45fr) minmax(280px,.85fr);
  gap:clamp(1.25rem,2.2vw,2rem);
  align-items:start;
  padding-top:1rem;
  padding-bottom:2rem;
}
.tb-hub-body-main{min-width:0;}
.tb-hub-body-main > .section{
  padding-left:0;
  padding-right:0;
}
.tb-hub-body-main > .section:first-child{padding-top:1rem;}
.tb-hub-body-main > .section > .wrap{
  width:100%;
  max-width:none;
  padding-left:0;
  padding-right:0;
}
.tb-hub-body-main > .share-bar{
  width:100%!important;
  max-width:none!important;
  margin:0 0 1.5rem!important;
  padding-left:0!important;
  padding-right:0!important;
}
.tb-hub-body-grid > .sidebar{
  min-width:0;
  align-self:start;
}

/* Visual hub cards need fewer columns once a real right rail exists. */
@media (min-width:1181px){
  .tb-hub-body-main .tb-section-visual-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
}
@media (max-width:1180px) and (min-width:901px){
  .tb-hub-body-main .tb-section-visual-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
}

/* Compact ten-story universal news list. */
.tb-latest-news-card{box-shadow:var(--shadow-card);}
.tb-latest-news-card h5{margin-bottom:.75rem;}
.tb-latest-news-list{
  display:flex;
  flex-direction:column;
  gap:0!important;
  margin:0;
  padding:0;
  list-style:none;
}
.tb-latest-news-list li{
  margin:0;
  padding:.58rem 0;
  border-top:1px solid var(--line);
}
.tb-latest-news-list li:first-child{border-top:0;padding-top:0;}
.tb-latest-news-list a{
  display:block;
  font-size:.82rem!important;
  line-height:1.35;
  font-weight:700!important;
  color:var(--ink)!important;
}
.tb-latest-news-list a:hover{color:var(--orange-deep)!important;}
.tb-latest-news-badge{
  display:inline-block;
  margin:0 .38rem .18rem 0;
  padding:.12rem .34rem;
  border-radius:5px;
  background:var(--blue-xpale);
  color:var(--blue);
  font-size:.58rem;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.035em;
  text-transform:uppercase;
  vertical-align:middle;
}
.tb-latest-news-more{
  display:block;
  margin-top:.75rem;
  padding-top:.7rem;
  border-top:1px solid var(--line);
  color:var(--blue)!important;
  font-size:.8rem!important;
  font-weight:800!important;
}

@media(max-width:900px){
  .tb-hub-body-grid{display:block;padding-top:.5rem;}
  .tb-hub-body-grid > .sidebar{margin-top:1.2rem;}
}

