/* ============================================================
   Cardigan / Chattanooga Sentinel — theme
   Color system + header structure adapted from World Calendar Day
   (acada.css / acada-colors.css), light/dark handled exactly.
   DEFAULT: LIGHT  (differs from WCD which defaults dark).
   ============================================================ */

/* Fonts (match WCD) */
/* Limerick Serial — self-hosted serif used for article/card body copy (People-style). */
@font-face {
  font-family: "Limerick Serial";
  src: url("/assets/fonts/limerick-serial-regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* ---- Light theme (DEFAULT :root) ---- */
:root {
  /* Page base */
  --global-page-bg: #f8f5ef;
  --global-page-text: #17211b;
  --global-text-soft: #3c4941;

  /* Links */
  --global-link: #2f8bc5;
  --global-link-hover: #1e6fa0;

  /* Borders */
  --global-border-light: #d8d0c2;
  --global-border-medium: #a89f91;

  /* Shadows */
  --global-shadow: 0 14px 32px rgba(23, 33, 27, .1);

  /* Panels */
  --global-panel: #fffdf8;
  --global-panel-soft: #f3eee5;
  --global-white: #fffdf8;

  /* Accents */
  --global-green: #234838;
  --global-green-deep: #142d24;
  --global-gold: #a97932;
  --global-rose: #8c3f43;
}

/* ---- Dark theme (exact WCD override) ---- */
:root[data-theme="dark"] {
  --global-page-bg: #0e1724;
  --global-page-text: #d1e0e5;
  --global-text-soft: #b8a99a;
  --global-link: #5fa8d6;
  --global-link-hover: #7fc0e8;
  --global-border-light: #53627a;
  --global-border-medium: #6b7a94;
  --global-panel: #172338;
  --global-panel-soft: #1f2e45;
  --global-white: #172338;
  --global-green: #d8b56f;
  --global-green-deep: #09111d;
  --global-gold: #e0b66f;
  --global-rose: #e4a0aa;
}

/* ---- Base ---- */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--global-page-bg);
  color: var(--global-page-text);
  /* Limerick Serial body copy (People-style) — revert by swapping back to the
     original stack below. */
  font-family: "Limerick Serial", "Source Sans 3", "Helvetica Neue", Arial, sans-serif;
  line-height: 1.5;
  transition: background .25s ease, color .25s ease;
}
.skip-link {
  position: absolute; left: -999px; top: 0;
  background: var(--global-green); color: #fff;
  padding: .5rem 1rem; z-index: 2000;
}
.skip-link:focus { left: 0; }

a { color: var(--global-link); text-decoration: none; }
a:hover { color: var(--global-link-hover); }

.wrap { max-width: 1200px; margin: 0 auto; padding: 0 1.25rem; }

/* ---- Header (matches WCD structure) ---- */
.worldcal-header {
  background: var(--global-green-deep);
  color: #f7f3e8;
  border-bottom: 3px solid var(--global-gold);
}
.worldcal-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 1.25rem;
  max-width: 1200px; margin: 0 auto;
}
.worldcal-brand {
  display: inline-flex; align-items: center; gap: .7rem;
  color: inherit; text-decoration: none;
}
.worldcal-brand strong { display: block; font-family: "Limerick Serial", Georgia, serif; font-size: 1.35rem; line-height: 1.05; color: #fff; }
.worldcal-brand em { display: block; font-style: normal; font-size: .72rem; color: var(--global-gold); letter-spacing: .08em; text-transform: uppercase; }
.worldcal-brand__mark { display: inline-flex; align-items: center; }
.worldcal-brand__mark img { height: 72px; width: auto; display: block; max-width: 320px; }

.worldcal-header__actions { display: flex; align-items: center; gap: 12px; }

/* Theme toggle (WCD compact) */
.worldcal-theme-switch { display: inline-flex; align-items: center; cursor: pointer; user-select: none; }
.worldcal-theme-switch input { position: absolute; opacity: 0; width: 0; height: 0; }
.worldcal-theme-switch__track {
  position: relative; display: inline-flex; align-items: center; justify-content: space-between;
  width: 60px; height: 30px; border-radius: 30px;
  background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.25);
  padding: 0 6px; box-sizing: border-box; transition: background .25s ease;
}
.worldcal-theme-switch__icon { display: inline-flex; z-index: 1; line-height: 0; }
.worldcal-theme-switch__thumb {
  position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%;
  background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.35); transition: transform .25s ease;
}
.worldcal-theme-switch input:checked + .worldcal-theme-switch__track .worldcal-theme-switch__thumb { transform: translateX(30px); }
.worldcal-theme-switch__track:hover { background: rgba(255,255,255,.25); }

/* Nav menu */
.worldcal-nav__menu { display: flex; gap: .75rem; align-items: center; }
.worldcal-nav__links { display: flex; gap: 1rem; }
.worldcal-nav__links a { color: rgba(247,243,232,.8); font-size: .9rem; }
.worldcal-nav__links a:hover, .worldcal-nav__links a.is-active { color: #fff; }

.worldcal-nav__toggle {
  display: none; flex-direction: column; gap: 4px; background: none; border: none; cursor: pointer; padding: 6px;
}
.worldcal-nav__toggle span { display: block; width: 22px; height: 2px; background: #fff; }

/* ---- Main ---- */
main { min-height: 60vh; }

/* ---- Footer (WCD structure) ---- */
.worldcal-footer {
  background: var(--global-green-deep);
  color: rgba(247,243,232,.7);
  margin-top: 3rem; padding: 2rem 0;
  border-top: 3px solid var(--global-gold);
}
.worldcal-footer__inner { text-align: center; }
.worldcal-footer__inner strong { display: block; color: #fff; font-family: "Limerick Serial", serif; margin-bottom: .4rem; }
.worldcal-footer__logo { width: 88px; height: 88px; object-fit: contain; display: inline-block; margin-bottom: .5rem; }
.worldcal-footer__copyright { font-size: .85rem; margin: 0; }
.worldcal-footer__aggregate { font-size: .85rem; max-width: 60ch; margin: .5rem auto 0; color: rgba(255,255,255,.75); line-height: 1.5; }

/* ---- Homepage news tiles ---- */
.home-hero { display: grid; grid-template-columns: 2fr 1fr; gap: 1.25rem; margin: 1.5rem 0 2rem; }
.home-tile {
  background: var(--global-panel);
  border: 1px solid var(--global-border-light);
  border-radius: 12px; padding: 1.1rem;
  box-shadow: var(--global-shadow);
  transition: transform .15s ease;
}
.home-tile:hover { transform: translateY(-2px); }
.home-tile__kicker { font-size: .72rem; color: var(--global-green); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.home-tile__primary-tile { background: var(--global-green); color: #fff; border: none; }
.home-tile__primary-tile a { color: #fff; }
.home-tile__primary-tile .home-tile__kicker { color: var(--global-gold); }
.home-tile h2 { font-family: "Limerick Serial", Georgia, serif; margin: .4rem 0; line-height: 1.2; }
.home-tile p { color: var(--global-text-soft); margin: .4rem 0 0; font-size: .95rem; }
.home-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 1rem; }
.home-section-title { border-bottom: 2px solid var(--global-green); padding-bottom: .4rem; margin: 2rem 0 1rem; font-family: "Limerick Serial", serif; }
.home-meta { font-size: .78rem; color: var(--global-text-soft); margin-top: .5rem; }

/* Home section quick-nav — buttons under the top story that open /section/{slug}. */
.home-section-nav { display:flex; flex-wrap:wrap; gap:.5rem; margin:1.2rem 0 1rem; }
.home-section-btn {
  display:inline-block; padding:.42rem .85rem; border-radius:999px;
  border:1px solid var(--global-border-light); background:var(--global-panel);
  color:var(--global-link); font-size:.82rem; font-weight:600; letter-spacing:.02em;
  text-decoration:none; transition:background .15s, color .15s, border-color .15s;
}
.home-section-btn:hover { background:var(--global-green); color:#fff; border-color:var(--global-green); }
.home-section-btn.is-active { background:var(--global-green); color:#fff; border-color:var(--global-green); }

/* "Top of Page" jump link at the end of each home section */
.top-of-page {
  display:inline-flex; align-items:center; gap:.35rem; margin:.1rem 0 1.3rem;
  font-size:.78rem; font-weight:600; color:var(--global-text-soft); text-decoration:none;
  transition:color .15s;
}
.top-of-page:hover { color:var(--global-link); }
.top-of-page { float:right; }

/* Reader feedback guidance line (under each section header) */
.feedback-guide {
  display: flex; align-items: center; justify-content: flex-start; gap: .4rem; flex-wrap: wrap;
  margin:.1rem 0 .7rem; padding:.2rem .2rem; font-size:.8rem; color:var(--global-text-soft); line-height:1.4;
}
.feedback-guide .fdb-up, .feedback-guide .fdb-down, .feedback-guide .fdb-misc {
  display: inline-flex; align-items: center; justify-content: center; cursor: default;
  color: var(--global-text-soft); background: transparent; border: none; padding: 0;
}
.feedback-guide .fdb-up .fdb-arrow, .feedback-guide .fdb-down .fdb-arrow {
  display: inline-flex; align-items: center; justify-content: center;
  width:20px; height:20px; font-size:.78rem; line-height:1;
  border:1px solid var(--global-border-medium); background:var(--global-panel); border-radius:50%;
}
.feedback-guide .fdb-up .fdb-arrow { color:#2e8b57; }
.feedback-guide .fdb-down .fdb-arrow { color:#c0392b; }
.feedback-guide .fdb-misc {
  width:20px; height:20px; font-size:.78rem; line-height:1; padding:0;
  border:1px solid var(--global-border-medium); background:var(--global-panel); border-radius:50%;
}
.feedback-guide__text { flex:1 1 auto; min-width:200px; }

/* ── Section page header (breadcrumb + banner + back home) ─────────────── */
/* Shared story-card base + hover (home + section pages). */
.story-card {
  border: 1px solid var(--global-border-light); border-radius: 12px;
  background: var(--global-panel); box-shadow: var(--global-shadow);
  overflow: hidden; display: flex; flex-direction: column; cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
/* Inner card structure — padding so text never butts the card walls. */
.story-card__body { flex: 1; display: flex; flex-direction: column; gap: .5rem; padding: .9rem 1rem .7rem; }
.story-card__src { display: flex; align-items: center; gap: .5rem; font-size: .74rem; }
.story-card__logo { width: 20px; height: 20px; object-fit: contain; border-radius: 4px; }
.story-card__logolink { display: inline-flex; }
.story-card__monogram { width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center; border-radius: 4px; background: var(--global-panel-soft); color: var(--global-link); font-weight: 700; font-size: .72rem; }
.story-card__source { color: var(--global-link); font-weight: 600; text-decoration: none; }
.story-card__time { color: var(--global-text-soft); margin-left: auto; white-space: nowrap; }
.story-card__title { margin: 0; font-size: .98rem; line-height: 1.32; font-weight: 700; }
.story-card__title a { color: var(--global-page-text); text-decoration: none; }
.story-card__excerpt { margin: 0; font-size: .84rem; line-height: 1.4; color: var(--global-text-soft); }
.story-card__imgwrap { overflow: hidden; display: block; }
.story-card__imgwrap .story-card__img { width: 100%; display: block; aspect-ratio: 16/9; object-fit: cover; }
.story-card__imgcredit { display: block; font-size: .62rem; color: var(--global-text-soft); padding: .2rem .5rem; }
/* Reader feedback buttons (bottom of each card) */
.story-card__feedback {
  margin-top: auto; display: flex; justify-content: space-between; align-items: center;
  border-top: 1px solid var(--global-border-light); padding: .35rem .6rem; gap: .3rem;
  background: var(--global-panel-soft);
}
.fdb-btn {
  display: inline-flex; align-items: center; gap: .3rem; border: none; background: transparent;
  cursor: pointer; font-size: .72rem; font-weight: 600; padding: .22rem .5rem; border-radius: 6px;
  color: var(--global-text-soft); transition: background .15s, color .15s;
}
.fdb-btn:hover { background: var(--global-panel); }
.fdb-up .fdb-arrow, .fdb-down .fdb-arrow {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 50%; font-size: .95rem; line-height: 1;
  border: 1px solid var(--global-border-medium); background: var(--global-panel); transition: background .15s, color .15s;
}
.fdb-up .fdb-arrow { color: #2e8b57; }
.fdb-up:hover { color: #2e8b57; }
.fdb-up:hover .fdb-arrow { background: #2e8b57; color: #fff; }
.fdb-down .fdb-arrow { color: #c0392b; }
.fdb-down:hover { color: #c0392b; }
.fdb-down:hover .fdb-arrow { background: #c0392b; color: #fff; }
.fdb-misc { width: 26px; height: 26px; justify-content: center; padding: 0; border: 1px solid var(--global-border-medium); border-radius: 50%; font-size: .82rem; font-weight: 700; color: var(--global-text-soft); }
.fdb-misc:hover { color: var(--global-link); border-color: var(--global-link); background: var(--global-panel); }
/* ── Reader feedback modals (logo-centered, dismissible) ────────────────── */
.fdb-overlay {
  position: fixed; inset: 0; z-index: 12000; background: rgba(6,18,28,.62); backdrop-filter: blur(2px);
  display: flex; align-items: center; justify-content: center; padding: 1rem;
}
.fdb-modal {
  position: relative; width: min(460px, 94vw); background: var(--global-panel); color: var(--global-page-text);
  border: 1px solid var(--global-border-light); border-radius: 16px; box-shadow: 0 24px 60px rgba(0,0,0,.5);
  padding: 2rem 1.6rem 1.6rem; text-align: center;
}
.fdb-modal__logo img { max-width: 220px; max-height: 70px; display: block; margin: 0 auto .6rem; }
.fdb-modal__title { font-family: "Limerick Serial", serif; font-size: 1.15rem; margin: .4rem 0 .6rem; }
.fdb-modal__note { color: var(--global-text-soft); font-size: .9rem; margin: 0; }
.fdb-modal__comment { width: 100%; box-sizing: border-box; padding: .6rem .7rem; border: 1px solid var(--global-border-medium); border-radius: 8px; font-size: .9rem; font-family: inherit; resize: vertical; background: var(--global-panel); color: var(--global-page-text); margin-bottom: .5rem; }
.fdb-modal__submit { background: var(--global-green); color: #fff; border: none; padding: .55rem 1.1rem; border-radius: 8px; font-size: .9rem; font-weight: 600; cursor: pointer; width: 100%; }
.fdb-modal__submit:hover { filter: brightness(1.08); }
.fdb-modal__close { position: absolute; top: .7rem; right: .7rem; width: 28px; height: 28px; border: none; border-radius: 50%; background: var(--global-panel-soft); color: var(--global-text-soft); cursor: pointer; font-size: .9rem; }
.fdb-modal__close:hover { background: var(--global-green); color: #fff; }
.story-card:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(23,33,27,.18); border-color: var(--global-gold); }
.story-card:hover .story-card__img { transform: scale(1.04); }
.story-card__imgwrap { overflow: hidden; }
.story-card__img { transition: transform .25s ease; }
.story-card:hover .story-card__title a { color: var(--global-link); }
.section-crumbs { display:flex; align-items:center; flex-wrap:wrap; gap:.35rem; font-size:.82rem; margin-bottom:1rem; }
.section-crumbs a { color:var(--global-link); text-decoration:none; font-weight:600; }
.section-crumbs a:hover { text-decoration:underline; }
.section-crumbs .sep { color:var(--global-text-soft); }
.section-crumbs .current { color:var(--global-text-soft); }
.section-page-header {
  display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  border:1px solid var(--global-border-light); border-radius:14px; padding:1.2rem 1.4rem;
  background:var(--global-panel); box-shadow:var(--global-shadow); margin-bottom:1.4rem;
}
.section-eyebrow { font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--global-green); font-weight:700; }
.section-page-title { font-family:"Limerick Serial",serif; font-size:1.9rem; line-height:1.1; margin:.15rem 0 .15rem; color:var(--global-page-text); }
.section-page-count { color:var(--global-text-soft); margin:0; font-size:.9rem; }
.section-back-home {
  display:inline-flex; align-items:center; gap:.4rem; padding:.55rem 1rem; border-radius:10px;
  border:1px solid var(--global-border-light); background:var(--global-panel-soft);
  color:var(--global-link); font-weight:600; font-size:.85rem; text-decoration:none;
  transition:background .15s, color .15s, border-color .15s;
}
.section-back-home:hover { background:var(--global-green); color:#fff; border-color:var(--global-green); }
@media (max-width:560px) {
  .section-page-header { flex-direction:column; align-items:flex-start; }
  .section-back-home { width:100%; justify-content:center; }
}

/* ── Cardigan weather hero (reusable: home + weather center) ───────────── */
.cardigan-weather-hero {
    position:relative; border-radius:16px; overflow:hidden; margin:1rem 0 1.4rem;
    background:linear-gradient(165deg,var(--global-panel-soft) 0%,var(--global-panel) 45%,var(--global-panel) 100%);
    color:var(--global-page-text); box-shadow:var(--global-shadow);
    border:1px solid var(--global-border-light);
}
.cardigan-weather-hero a.cw-body { display:block; color:inherit; text-decoration:none; padding:1.3rem 1.5rem; }
.cardigan-weather-hero a.cw-body:hover { background:var(--global-panel-soft); }
.cw-dismiss { position:absolute; top:.6rem; right:.6rem; z-index:5; border:none; background:var(--global-panel-soft); color:var(--global-text-soft); width:28px; height:28px; line-height:1; border-radius:50%; cursor:pointer; font-size:.85rem; display:flex; align-items:center; justify-content:center; transition:background .15s, color .15s; }
.cw-dismiss:hover { background:var(--global-green); color:#fff; }
.cw-top { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; }
.cw-region { font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--global-text-soft); }
.cw-city { font-family:"Limerick Serial",serif; font-size:1.4rem; color:var(--global-page-text); line-height:1.1; }
.cw-geo-note { font-size:.78rem; color:var(--global-text-soft); text-align:right; }
.cw-geo-btn { background:var(--global-green); color:#fff; border:none; padding:.35rem .8rem; border-radius:8px; cursor:pointer; font-size:.78rem; margin-left:.3rem; }
.cw-mid { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; margin-top:1.1rem; }
/* Center info block — fills the desktop gap, informative stats + Weather Center link. */
.cw-center { flex:1 1 auto; display:flex; flex-direction:column; gap:.6rem; justify-content:center; }
.cw-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(86px,1fr)); gap:.5rem; }
.cw-stat { text-align:center; padding:.45rem .3rem; border-radius:8px; background:var(--global-panel-soft); border:1px solid var(--global-border-light); }
.cw-stat-k { display:block; font-size:.58rem; letter-spacing:.12em; color:var(--global-text-soft); text-transform:uppercase; }
.cw-stat-v { display:block; font-size:1.15rem; font-weight:700; color:var(--global-page-text); line-height:1.2; }
.cw-center-link, .cw-center-btn { text-align:center; font-size:.8rem; font-weight:600; color:var(--global-page-text); text-decoration:none; letter-spacing:.02em; }
.cw-center-link:hover { color:var(--global-gold); }
/* Weather Center button with icon */
.cw-center-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem; margin:0 auto;
  padding:.6rem 1.1rem; border-radius:999px; cursor:pointer; width:fit-content;
  background:var(--global-panel-soft); border:1px solid var(--global-border-light); color:var(--global-page-text);
  transition:background .15s, border-color .15s, transform .15s;
}
.cw-center-btn svg { flex:0 0 auto; color:var(--global-gold); }
.cw-center-btn:hover { background:var(--global-green); border-color:var(--global-green); color:#fff; transform:translateY(-1px); }
.cw-temp { font-size:3.6rem; font-weight:800; line-height:1; font-family:"Inter Tight",sans-serif; background:linear-gradient(180deg,var(--global-page-text),var(--global-text-soft)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.cw-cond { font-size:1rem; font-weight:600; color:var(--global-page-text); }
.cw-detail { font-size:.78rem; color:var(--global-text-soft); margin-top:.2rem; }
.cw-badge { display:inline-block; margin-top:.55rem; background:var(--global-panel-soft); border:1px solid var(--global-border-light); padding:.35rem .75rem; border-radius:10px; font-size:.7rem; color:var(--global-text-soft); white-space:nowrap; }
/* CSS radar (no tiles → never errors) */
.cw-radar { flex:0 0 118px; position:relative; aspect-ratio:1/1; border-radius:50%; overflow:hidden; box-shadow:0 0 0 3px rgba(196,148,58,.7), 0 4px 16px rgba(0,0,0,.3); background:#e8e4d8; }
.cw-radar-base { position:absolute; inset:0; background:linear-gradient(rgba(120,150,130,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(120,150,130,.5) 1px,transparent 1px),linear-gradient(#e8e4d8,#dcd6c4); background-size:24px 24px; }
.cw-radar-rings { position:absolute; inset:0; border-radius:50%; pointer-events:none; }
.cw-radar-rings i { position:absolute; border-radius:50%; border:1px solid rgba(196,148,58,.6); }
.cw-radar-rings i:nth-child(1){ inset:18%; } .cw-radar-rings i:nth-child(2){ inset:38%; } .cw-radar-rings i:nth-child(3){ inset:46%; background:#c4943a; }
.cw-radar-sweep { position:absolute; inset:0; border-radius:50%; pointer-events:none; background:conic-gradient(from 0deg,transparent 0deg,rgba(196,148,58,.5) 32deg,transparent 72deg); animation:cw-spin 3.2s linear infinite; transform-origin:center; }
@keyframes cw-spin { to { transform:rotate(360deg) } }
/* Mini bar (collapsed weather hero) — small: temp · city · condition.
   Tapping the WHOLE bar expands back to the full hero. */
.cw-mini { display:flex; align-items:center; gap:.75rem; width:100%; padding:0; text-align:left; background:transparent; border:none; border-top:1px solid rgba(120,170,220,.14); color:#eaf2f8; cursor:pointer; }
.cw-mini > * { padding-top:.6rem; padding-bottom:.6rem; }
.cw-mini-temp { font-size:1.4rem; font-weight:800; font-family:"Inter Tight",sans-serif; color:#fff; padding-left:1.1rem; }
.cw-mini-div { width:1px; height:22px; background:rgba(120,170,220,.3); margin:0; padding:0; }
.cw-mini-city { font-size:1rem; color:#fff; font-family:"Limerick Serial",serif; }
.cw-mini-cond { font-size:.85rem; color:#9fc3e8; flex:1; }
/* Dark green circle with a white down-arrow = expand affordance. */
.cw-mini-arrow { flex:0 0 auto; display:flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background:var(--global-green); color:#fff; font-size:1rem; line-height:1; margin-right:1rem; margin-left:auto; }
.cw-mini:hover .cw-mini-arrow { background:var(--global-green-dark, #14532d); }
/* The hidden attribute must win over display rules (cw-body is display:block,
   cw-mini is display:flex) so collapse actually hides/shows. */
.cardigan-weather-hero [hidden] { display:none !important; }
@media (max-width:720px) {
  .cardigan-weather-hero a.cw-body { padding:1rem 1.1rem; }
  .cw-top { flex-direction:column; gap:.6rem; }
  .cw-geo-note { text-align:left; }
  /* Keep the radar BESIDE the temp/conditions on phones (there's room), not below. */
  .cw-mid { flex-direction:row; align-items:center; justify-content:space-between; gap:1rem; }
  .cw-radar { flex:0 0 96px; width:96px; height:96px; }
  .cw-temp { font-size:3rem; }
  .cw-center { display:none; } /* no room for the stat strip on phones */
}
/* Very small screens (narrow phones ~360px or less): there isn't room for the
   radar beside the temp, so drop it — keep the hero clean rather than cramped. */
@media (max-width:360px) {
  .cardigan-weather-hero .cw-radar { display:none; }
  .cw-mid { justify-content:flex-start; }
  /* weather center hero too */
  .weather-hero__miniradar { display:none; }
}

/* Ad zone kept separate from aggregation */
.ad-zone { background: var(--global-panel-soft); border: 1px dashed var(--global-border-medium); color: var(--global-text-soft); text-align: center; padding: 1.5rem; margin: 1.5rem 0; font-size: .85rem; border-radius: 8px; }

@media (max-width: 768px) {
  html, body { overflow-x: hidden; -webkit-overflow-scrolling: touch; }
  /* single horizontal line: no wrap */
  .worldcal-nav { flex-wrap: nowrap; padding: .55rem .8rem; gap: .5rem; justify-content: space-between; }
  .worldcal-brand { flex-wrap: nowrap; gap: .4rem; min-width: 0; }
  /* resize logo so toggle + hamburger fit on the line */
  .worldcal-brand__mark img { height: 40px; max-width: 150px; }
  .worldcal-brand em { display: none; } /* remove "News Aggregation..." on mobile */
  .worldcal-header__actions { gap: 6px; flex-shrink: 0; }
  .worldcal-theme-switch__track { width: 48px; height: 25px; }
  .worldcal-theme-switch__thumb { width: 19px; height: 19px; top: 2px; left: 2px; }
  .worldcal-theme-switch input:checked + .worldcal-theme-switch__track .worldcal-theme-switch__thumb { transform: translateX(23px); }
  .home-hero { grid-template-columns: 1fr; }
  .worldcal-nav__toggle { display: flex; flex-shrink: 0; }
  .worldcal-nav__menu { display: none; flex-direction: column; position: absolute; top: 62px; right: .9rem; left: .9rem; background: var(--global-green-deep); padding: .9rem; border-radius: 10px; z-index: 100; box-shadow: 0 12px 30px rgba(0,0,0,.35); }
  .worldcal-nav__menu.is-open { display: flex; }
  .worldcal-nav__links { flex-direction: column; gap: .4rem; }
}
