/* ═══════════════════════════════════════════════════════════
   TOPIC PAGES – Complete redesign
   Design DNA: Cormorant 300 / italic, Inter 300-400,
   opacity hierarchy, atmospheric gradients, generous space.
   Mobile-first responsive.
   ═══════════════════════════════════════════════════════════ */

/* ── SHARED EYEBROW ── */
body.page--topic.topic-theme--food {
  --topic-sand-050: #fbf5ea;
  --topic-sand-100: #f2e7d4;
  --topic-sand-200: #e3d0af;
  --topic-sand-300: #d5ba93;
  --topic-sand-100-rgb: 242, 231, 212;
  --topic-ink-rgb: 51, 37, 29;
  --topic-primary-900: #6b3f25;
  --topic-primary-700: #a66132;
  --topic-primary-rgb: 166, 97, 50;
  --topic-secondary-900: #66752e;
  --topic-secondary-700: #b0a43c;
  --topic-secondary-rgb: 176, 164, 60;
  --topic-night-primary-900: #f1c39d;
  --topic-night-primary-700: #d98c54;
  --topic-night-primary-rgb: 217, 140, 84;
  --topic-night-secondary-900: #d7ce7a;
  --topic-night-secondary-700: #b6ac55;
  --topic-night-secondary-rgb: 182, 172, 85;
}

body.page--topic.topic-theme--entertainment {
  --topic-sand-050: #faf0e8;
  --topic-sand-100: #eedfd4;
  --topic-sand-200: #d9c2b2;
  --topic-sand-300: #c7ac9a;
  --topic-sand-100-rgb: 238, 223, 212;
  --topic-ink-rgb: 38, 30, 40;
  --topic-primary-900: #243a6b;
  --topic-primary-700: #4f73b8;
  --topic-primary-rgb: 79, 115, 184;
  --topic-secondary-900: #a44a3c;
  --topic-secondary-700: #e07b56;
  --topic-secondary-rgb: 224, 123, 86;
  --topic-night-primary-900: #afc6ff;
  --topic-night-primary-700: #7fa7ff;
  --topic-night-primary-rgb: 127, 167, 255;
  --topic-night-secondary-900: #ffb39a;
  --topic-night-secondary-700: #f08e75;
  --topic-night-secondary-rgb: 240, 142, 117;
}

body.page--topic.topic-theme--history-art {
  --topic-sand-050: #f7f1e6;
  --topic-sand-100: #ebddcc;
  --topic-sand-200: #d5c2a6;
  --topic-sand-300: #bfa88d;
  --topic-sand-100-rgb: 235, 221, 204;
  --topic-ink-rgb: 47, 36, 29;
  --topic-primary-900: #4d675f;
  --topic-primary-700: #7f9a8c;
  --topic-primary-rgb: 127, 154, 140;
  --topic-secondary-900: #8b4f3f;
  --topic-secondary-700: #c48868;
  --topic-secondary-rgb: 196, 136, 104;
  --topic-night-primary-900: #b9d0c4;
  --topic-night-primary-700: #86a997;
  --topic-night-primary-rgb: 134, 169, 151;
  --topic-night-secondary-900: #e7b39a;
  --topic-night-secondary-700: #cf8e6f;
  --topic-night-secondary-rgb: 207, 142, 111;
}

body.page--topic.topic-theme--shopping {
  --topic-sand-050: #fbf4ec;
  --topic-sand-100: #efe2d5;
  --topic-sand-200: #ddc8b4;
  --topic-sand-300: #cab199;
  --topic-sand-100-rgb: 239, 226, 213;
  --topic-ink-rgb: 39, 32, 29;
  --topic-primary-900: #26463f;
  --topic-primary-700: #4e7c71;
  --topic-primary-rgb: 78, 124, 113;
  --topic-secondary-900: #8a6a2d;
  --topic-secondary-700: #caa14b;
  --topic-secondary-rgb: 202, 161, 75;
  --topic-night-primary-900: #9fc8be;
  --topic-night-primary-700: #6ea598;
  --topic-night-primary-rgb: 110, 165, 152;
  --topic-night-secondary-900: #f0c96e;
  --topic-night-secondary-700: #d9af59;
  --topic-night-secondary-rgb: 217, 175, 89;
}

body.page--topic.topic-theme--beaches {
  --topic-sand-050: #f7f6ed;
  --topic-sand-100: #e9efe6;
  --topic-sand-200: #d6e3da;
  --topic-sand-300: #bed2c7;
  --topic-sand-100-rgb: 233, 239, 230;
  --topic-ink-rgb: 31, 45, 48;
  --topic-primary-900: #1f6b7c;
  --topic-primary-700: #49a8bc;
  --topic-primary-rgb: 73, 168, 188;
  --topic-secondary-900: #c39243;
  --topic-secondary-700: #f0cd77;
  --topic-secondary-rgb: 240, 205, 119;
  --topic-night-primary-900: #9de7f3;
  --topic-night-primary-700: #66d0e1;
  --topic-night-primary-rgb: 102, 208, 225;
  --topic-night-secondary-900: #ffe2a0;
  --topic-night-secondary-700: #f4c96a;
  --topic-night-secondary-rgb: 244, 201, 106;
}

body.page--topic.topic-theme--travel-logistics {
  --topic-sand-050: #f6f4ee;
  --topic-sand-100: #e8e3d8;
  --topic-sand-200: #d6cfbf;
  --topic-sand-300: #c1b7a4;
  --topic-sand-100-rgb: 232, 227, 216;
  --topic-ink-rgb: 35, 39, 48;
  --topic-primary-900: #34516d;
  --topic-primary-700: #6487a9;
  --topic-primary-rgb: 100, 135, 169;
  --topic-secondary-900: #9a6a31;
  --topic-secondary-700: #d09c52;
  --topic-secondary-rgb: 208, 156, 82;
  --topic-night-primary-900: #bcd8f2;
  --topic-night-primary-700: #86b2dd;
  --topic-night-primary-rgb: 134, 178, 221;
  --topic-night-secondary-900: #f2c684;
  --topic-night-secondary-700: #deab63;
  --topic-night-secondary-rgb: 222, 171, 99;
}

body.page--topic.topic-theme:not(.night) {
  --sand-050: var(--topic-sand-050);
  --sand-100: var(--topic-sand-100);
  --sand-200: var(--topic-sand-200);
  --sand-300: var(--topic-sand-300);
  --ink-900: rgb(var(--topic-ink-rgb));
  --ink-700: rgba(var(--topic-ink-rgb), 0.76);
  --ink-500: rgba(var(--topic-ink-rgb), 0.58);
  --ink-300: rgba(var(--topic-ink-rgb), 0.36);
  --line-soft: rgba(var(--topic-ink-rgb), 0.08);
  --line-faint: rgba(var(--topic-ink-rgb), 0.05);
  --shadow-soft: 0 20px 60px rgba(var(--topic-primary-rgb), 0.08);
  --shadow-deep: 0 24px 80px rgba(var(--topic-primary-rgb), 0.14);
  --sea-tyrrhenian-900: var(--topic-primary-900);
  --sea-tyrrhenian-700: var(--topic-primary-700);
  --sea-ionian-900: var(--topic-secondary-900);
  --sea-ionian-700: var(--topic-secondary-700);
  --footer-bg: var(--sand-200);
  --footer-border: rgba(var(--topic-ink-rgb), 0.05);
  --footer-text: rgba(var(--topic-ink-rgb), 0.38);
  --footer-brand: rgba(var(--topic-ink-rgb), 0.48);
  --footer-tagline: rgba(var(--topic-ink-rgb), 0.42);
  --nav-bg: linear-gradient(to bottom, rgba(var(--topic-sand-100-rgb), 0.94) 0%, rgba(var(--topic-sand-100-rgb), 0.88) 100%);
  --nav-solid: rgba(var(--topic-sand-100-rgb), 0.97);
  --chrome-footer-bg: var(--sand-200);
  --chrome-footer-border: rgba(var(--topic-ink-rgb), 0.05);
  --chrome-footer-text: rgba(var(--topic-ink-rgb), 0.38);
  --chrome-footer-brand: rgba(var(--topic-ink-rgb), 0.48);
  --chrome-footer-tagline: rgba(var(--topic-ink-rgb), 0.42);
  --chrome-nav-bg: linear-gradient(to bottom, rgba(var(--topic-sand-100-rgb), 0.94) 0%, rgba(var(--topic-sand-100-rgb), 0.88) 100%);
  --chrome-nav-solid: rgba(var(--topic-sand-100-rgb), 0.97);
  --chrome-pill-bg: rgba(var(--topic-sand-100-rgb), 0.82);
  --chrome-popover-bg: rgba(var(--topic-sand-100-rgb), 0.96);
  --chrome-pill-shadow: 0 14px 34px rgba(var(--topic-primary-rgb), 0.1);
  --chrome-popover-shadow: 0 22px 56px rgba(var(--topic-primary-rgb), 0.16);
  background:
    radial-gradient(circle at top, rgba(var(--topic-secondary-rgb), 0.14), transparent 30%),
    linear-gradient(180deg, var(--sand-100) 0%, var(--sand-200) 100%);
}

body.page--topic.topic-theme.night {
  --sea-tyrrhenian-900: var(--topic-night-primary-900);
  --sea-tyrrhenian-700: var(--topic-night-primary-700);
  --sea-ionian-900: var(--topic-night-secondary-900);
  --sea-ionian-700: var(--topic-night-secondary-700);
  background:
    radial-gradient(circle at top, rgba(var(--topic-night-primary-rgb), 0.2), transparent 32%),
    linear-gradient(180deg, #0f1445 0%, #15195a 100%);
}

.topic-eyebrow {
  margin: 0;
  font-size: 0.62rem;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: var(--ink-500);
}

/* ── DECORATIVE RULE ── */
.topic-rule {
  width: 1px;
  height: 42px;
  margin: 1.8rem auto;
  background: linear-gradient(to bottom, transparent, var(--ink-300), transparent);
}

/* ═══════════════════════════════════════════════════════════
   HERO – centered, atmospheric, breathing
   ═══════════════════════════════════════════════════════════ */
.topic-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(3.5rem, 6vw, 6rem) clamp(2rem, 4vw, 4rem);
  text-align: center;
  margin-bottom: 3rem;
}
.topic-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 60% 50% at 50% 20%, rgba(var(--topic-primary-rgb), 0.1), transparent),
    radial-gradient(ellipse 50% 40% at 80% 80%, rgba(var(--topic-secondary-rgb), 0.08), transparent);
}

.topic-hero-inner {
  position: relative;
  max-width: 48rem;
  margin: 0 auto;
}

.topic-title {
  margin: 0.8rem 0 0;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(2.8rem, 5.5vw, 4.5rem);
  font-weight: 300;
  line-height: 0.92;
  color: var(--ink-900);
}

.topic-summary {
  margin: 0;
  font-size: 0.85rem;
  line-height: 2;
  color: var(--ink-500);
  max-width: 56ch;
  margin-left: auto;
  margin-right: auto;
}

.topic-lead {
  margin: 1.2rem auto 0;
  max-width: 34ch;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  font-style: italic;
  font-weight: 400;
  line-height: 1.55;
  color: var(--ink-900);
}

/* ═══════════════════════════════════════════════════════════
   STATS BAR – horizontal strip, home-page style
   ═══════════════════════════════════════════════════════════ */
.topic-stats-bar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 1rem;
  padding: 2.5rem clamp(2rem, 4vw, 4rem);
  margin-bottom: 2rem;
  border-top: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft);
  background: var(--sand-200);
  border-radius: var(--radius-lg);
  text-align: center;
}

.topic-stat-value {
  display: block;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  font-weight: 300;
  line-height: 1;
  color: var(--ink-900);
}

.topic-stat-label {
  display: block;
  margin-top: 0.5rem;
  font-size: 0.62rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-500);
}

/* ═══════════════════════════════════════════════════════════
   INTRO CARDS – horizontal row, subtle
   ═══════════════════════════════════════════════════════════ */
.topic-intro {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}

.topic-intro-card {
  position: relative;
  overflow: hidden;
  padding: clamp(2rem, 3vw, 2.8rem);
}
.topic-intro-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at top left, rgba(var(--topic-primary-rgb), 0.08), transparent 50%),
    radial-gradient(circle at bottom right, rgba(var(--topic-secondary-rgb), 0.06), transparent 50%);
}

.topic-intro-title {
  position: relative;
  margin: 0.6rem 0 0.8rem;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.4rem, 2.2vw, 1.8rem);
  font-weight: 300;
  font-style: italic;
  color: var(--ink-900);
}

.topic-intro-body {
  position: relative;
  margin: 0;
  font-size: 0.85rem;
  line-height: 2;
  color: var(--ink-700);
}

/* ═══════════════════════════════════════════════════════════
   COAST EXPLORER – selector + panels
   ═══════════════════════════════════════════════════════════ */
.coast-explorer {
  margin-bottom: 2.5rem;
}

.coast-explorer-header {
  text-align: center;
  margin-bottom: 2rem;
}

.coast-explorer-title {
  margin: 0.5rem 0 0;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.6rem, 2.8vw, 2.2rem);
  font-weight: 300;
  font-style: italic;
  color: var(--ink-900);
}

/* ── PILL SELECTOR ── */
.coast-map-shell {
  max-width: 46rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.5rem;
  padding: clamp(0.8rem, 1.5vw, 1.15rem);
}

.coast-map-frame {
  position: relative;
  overflow: hidden;
  max-width: 380px;
  margin: 0 auto;
  border-radius: calc(var(--radius-lg) - 0.35rem);
  border: 1px solid var(--line-soft);
  background:
    radial-gradient(circle at top left, rgba(var(--topic-primary-rgb), 0.12), transparent 36%),
    radial-gradient(circle at bottom right, rgba(var(--topic-secondary-rgb), 0.12), transparent 38%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(244, 239, 227, 0.92));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

.coast-map-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.24), transparent 42%),
    linear-gradient(180deg, rgba(17, 24, 39, 0.02), transparent 30%, rgba(17, 24, 39, 0.06));
}

.coast-map-image {
  display: block;
  width: 100%;
  height: auto;
}

.coast-map-mask {
  display: none !important;
}

.coast-map-layer {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.coast-map-box {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 5.9rem;
  max-width: 8.9rem;
  padding: 0.34rem 0.55rem;
  border: 1px solid rgba(var(--coast-rgb, 23, 42, 58), 0.42);
  border-radius: 0.95rem;
  background: rgba(var(--coast-rgb, 255, 255, 255), 0.2);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.42),
    0 10px 22px rgba(17, 24, 39, 0.1);
  cursor: pointer;
  transition:
    background 0.24s ease,
    border-color 0.24s ease,
    box-shadow 0.24s ease,
    transform 0.24s ease;
  backdrop-filter: blur(5px);
  transform: translate(-50%, -50%);
}

.coast-map-box:hover,
.coast-map-box:focus-visible {
  background: rgba(var(--coast-rgb, 255, 255, 255), 0.3);
  border-color: rgba(var(--coast-rgb, 26, 80, 112), 0.65);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.58),
    0 14px 28px rgba(17, 24, 39, 0.14);
  transform: translate(-50%, calc(-50% - 1px));
}

.coast-map-box:focus-visible {
  outline: 2px solid rgba(var(--coast-rgb, 26, 80, 112), 0.26);
  outline-offset: 2px;
}

.coast-map-box.is-active {
  background: rgba(var(--coast-rgb, 26, 80, 112), 0.34);
  border-color: rgba(var(--coast-rgb, 26, 80, 112), 0.8);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.48),
    0 16px 30px rgba(17, 24, 39, 0.16);
}

.coast-map-label {
  display: block;
  width: 100%;
  color: rgba(28, 30, 36, 0.92);
  font-size: 0.58rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.25;
  text-align: center;
  text-transform: uppercase;
  pointer-events: none;
  text-wrap: balance;
}

.coast-selector {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.6rem;
  margin-bottom: 2rem;
  padding: 0 1rem;
}

.coast-pill {
  font-family: "Inter", sans-serif;
  font-size: 0.72rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  padding: 0.6rem 1.1rem;
  border: 1px solid var(--line-soft);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.3);
  color: var(--ink-700);
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  white-space: nowrap;
  text-decoration: none;
}
.coast-pill:hover {
  border-color: rgba(var(--topic-primary-rgb), 0.25);
  background: rgba(var(--topic-primary-rgb), 0.06);
  color: var(--sea-tyrrhenian-900);
}
.coast-pill[aria-selected="true"] {
  border-color: var(--sea-tyrrhenian-700);
  background: var(--sea-tyrrhenian-700);
  color: #fff;
  box-shadow: 0 4px 16px rgba(var(--topic-primary-rgb), 0.2);
}

/* ── PROMPT (empty state) ── */
.coast-prompt {
  text-align: center;
  padding: 4rem 2rem;
  color: var(--ink-300);
  transition: opacity 0.4s, transform 0.4s;
}
.coast-prompt.hidden {
  opacity: 0;
  transform: translateY(-1rem);
  pointer-events: none;
  position: absolute;
  left: -9999px;
}
.coast-prompt-icon {
  margin: 0 0 0.8rem;
  font-size: 1.4rem;
  opacity: 0.4;
}
.coast-prompt-text {
  margin: 0;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.1rem;
  font-style: italic;
  font-weight: 300;
  color: var(--ink-300);
}

/* ── COAST PANEL ── */
.coast-panel {
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
  background: rgba(248, 244, 230, 0.9);
  box-shadow: var(--shadow-soft);
  padding: clamp(2.5rem, 4vw, 4rem);
  animation: panelSlideIn 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
  position: relative;
  overflow: hidden;
}
.coast-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 60% 40% at 20% 10%, rgba(var(--topic-primary-rgb), 0.06), transparent),
    radial-gradient(ellipse 40% 30% at 80% 90%, rgba(var(--topic-secondary-rgb), 0.06), transparent);
}

@keyframes panelSlideIn {
  from {
    opacity: 0;
    transform: translateY(1.5rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.coast-panel-header {
  position: relative;
  display: flex;
  gap: 2rem;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 1.5rem;
}

.coast-panel-name {
  margin: 0.3rem 0 0;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(2rem, 3.5vw, 3rem);
  font-weight: 300;
  font-style: italic;
  line-height: 0.95;
  color: var(--ink-900);
}

.coast-panel-strap {
  margin: 0.6rem 0 0;
  font-size: 0.85rem;
  color: var(--sea-ionian-700);
  font-weight: 400;
}

.coast-panel-tags {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  justify-content: flex-end;
  flex-shrink: 0;
}

.coast-tag {
  display: inline-block;
  padding: 0.35rem 0.7rem;
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  border: 1px solid var(--line-soft);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.3);
  color: var(--ink-700);
}

.coast-panel-summary {
  position: relative;
  margin: 0 0 2.5rem;
  font-size: 0.85rem;
  line-height: 2;
  color: var(--ink-700);
  max-width: 65ch;
}

/* ── GALLERY ── */
.coast-gallery {
  position: relative;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
  margin-bottom: 2.5rem;
}

.coast-media-card {
  position: relative;
  margin: 0;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: rgba(248, 244, 230, 0.5);
}

.coast-media-card img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.coast-media-card figcaption {
  padding: 0.8rem 1rem 1rem;
}

.coast-media-label {
  margin: 0;
  font-size: 0.6rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--sea-tyrrhenian-700);
}

.coast-media-caption {
  margin: 0.3rem 0 0;
  font-size: 0.8rem;
  line-height: 1.7;
  color: var(--ink-700);
}

.coast-media-credit {
  display: inline-block;
  margin-top: 0.6rem;
  font-size: 0.8rem;
  color: var(--sea-tyrrhenian-900);
  text-decoration: none;
  border-bottom: 1px solid rgba(var(--topic-primary-rgb), 0.25);
}

/* ── FACTS ── */
.coast-facts {
  position: relative;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 0.8rem;
  margin-bottom: 2.5rem;
}

.coast-fact {
  padding: 1.2rem 1.3rem;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.3);
}

.coast-fact-label {
  display: block;
  font-size: 0.6rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--sea-tyrrhenian-700);
}

.coast-fact-value {
  display: block;
  margin-top: 0.4rem;
  font-size: 0.85rem;
  line-height: 1.7;
  color: var(--ink-700);
}

/* ── COAST COLUMNS (reference sections) ── */
.coast-columns {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
}

.coast-column {
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-md);
  padding: 2rem;
  background: rgba(248, 244, 230, 0.5);
  box-shadow: var(--shadow-soft);
}

.coast-column-kicker {
  margin: 0 0 0.6rem;
  font-size: 0.6rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--sea-tyrrhenian-700);
}

.coast-column-intro {
  margin: 0 0 1.5rem;
  font-size: 0.85rem;
  line-height: 2;
  color: var(--ink-700);
}

.coast-details {
  display: grid;
  gap: 1.2rem;
}

.coast-detail {
  padding: 1.2rem 1.3rem;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.3);
}

.coast-detail-title {
  margin: 0 0 0.4rem;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--ink-900);
}

.coast-detail-text {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.9;
  color: var(--ink-700);
}

.coast-detail-extra {
  margin: 0.5rem 0 0;
  font-size: 0.78rem;
  line-height: 1.7;
  color: var(--ink-500);
}

/* ═══════════════════════════════════════════════════════════
   CLOSING
   ═══════════════════════════════════════════════════════════ */
.topic-closing {
  position: relative;
  overflow: hidden;
  padding: clamp(3rem, 5vw, 5rem) clamp(2rem, 4vw, 4rem);
  text-align: center;
  margin-bottom: 2.5rem;
}
.topic-closing::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 30% 20%, rgba(var(--topic-primary-rgb), 0.08), transparent 40%),
    radial-gradient(circle at 70% 80%, rgba(var(--topic-secondary-rgb), 0.08), transparent 40%);
}

.topic-closing-title {
  position: relative;
  margin: 0.6rem 0 1rem;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.6rem, 2.8vw, 2.2rem);
  font-weight: 300;
  font-style: italic;
  color: var(--ink-900);
}

.topic-closing-body {
  position: relative;
  margin: 0;
  font-size: 0.85rem;
  line-height: 2;
  color: var(--ink-700);
  max-width: 56ch;
  margin-left: auto;
  margin-right: auto;
}

/* ═══════════════════════════════════════════════════════════
   RELATED TOPICS
   ═══════════════════════════════════════════════════════════ */
.topic-related {
  padding: clamp(2.5rem, 4vw, 4rem);
  margin-bottom: 2.5rem;
}

.topic-related-title {
  margin: 0.5rem 0 2rem;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.6rem, 2.8vw, 2.2rem);
  font-weight: 300;
  font-style: italic;
  color: var(--ink-900);
}

.topic-related-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
}

.topic-related-card {
  display: block;
  padding: 1.5rem;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.3);
  text-decoration: none;
  transition: background 0.3s, border-color 0.3s, transform 0.3s;
}
.topic-related-card:hover {
  background: rgba(var(--topic-primary-rgb), 0.04);
  border-color: rgba(var(--topic-primary-rgb), 0.18);
  transform: translateY(-2px);
}

.topic-related-card-title {
  margin: 0 0 0.5rem;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--ink-900);
}

.topic-related-card-summary {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.9;
  color: var(--ink-700);
}

.topic-related-card-link {
  display: inline-block;
  margin-top: 0.8rem;
  font-size: 0.78rem;
  color: var(--sea-tyrrhenian-900);
  border-bottom: 1px solid rgba(var(--topic-primary-rgb), 0.25);
}

/* ═══════════════════════════════════════════════════════════
   LEGAL PAGE
   ═══════════════════════════════════════════════════════════ */
.legal-stack {
  display: grid;
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}

.legal-section {
  padding: clamp(2rem, 3vw, 3rem);
  position: relative;
  overflow: hidden;
}
.legal-section::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at top left, rgba(var(--topic-primary-rgb), 0.05), transparent 40%);
}

.legal-summary {
  position: relative;
  margin: 0.8rem 0 0;
  font-size: 0.85rem;
  line-height: 2;
  color: var(--ink-700);
}

.legal-points {
  position: relative;
  margin: 1rem 0 0;
  padding-left: 1.1rem;
  color: var(--ink-700);
  font-size: 0.82rem;
  line-height: 1.9;
}
.legal-points li + li {
  margin-top: 0.4rem;
}

.legal-note {
  position: relative;
  margin: 1rem 0 0;
  font-size: 0.78rem;
  line-height: 1.8;
  color: var(--ink-500);
}

/* ═══════════════════════════════════════════════════════════
   FEEDBACK PAGE
   ═══════════════════════════════════════════════════════════ */
.feedback-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(260px, 0.8fr);
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}

.feedback-form-panel,
.feedback-side {
  padding: clamp(2rem, 3vw, 3rem);
  position: relative;
  overflow: hidden;
}
.feedback-form-panel::before,
.feedback-side::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at top left, rgba(var(--topic-primary-rgb), 0.05), transparent 40%);
}

.feedback-form-title,
.feedback-side-title {
  position: relative;
  margin: 0.5rem 0 0.8rem;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.4rem, 2.2vw, 1.8rem);
  font-weight: 300;
  font-style: italic;
  color: var(--ink-900);
}

.feedback-form-intro,
.feedback-side-intro {
  position: relative;
  margin: 0 0 1.5rem;
  font-size: 0.85rem;
  line-height: 2;
  color: var(--ink-700);
}

.feedback-status {
  padding: clamp(2rem, 3vw, 2.5rem);
  margin-bottom: 1.5rem;
}
.feedback-status--submitted,
.feedback-status--preview {
  border-color: rgba(var(--topic-primary-rgb), 0.18);
}
.feedback-status--invalid,
.feedback-status--delivery_error {
  border-color: rgba(154, 110, 8, 0.24);
}

.feedback-status-title {
  position: relative;
  margin: 0.5rem 0 0.6rem;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.4rem;
  font-weight: 300;
  font-style: italic;
  color: var(--ink-900);
}

.feedback-status-body {
  position: relative;
  margin: 0;
  font-size: 0.85rem;
  line-height: 2;
  color: var(--ink-700);
}

.feedback-status-error {
  margin: 0.8rem 0 0;
  font-size: 0.82rem;
  color: var(--sea-ionian-700);
}

/* ── FORM ELEMENTS ── */
.feedback-form {
  position: relative;
  display: grid;
  gap: 1rem;
}

.feedback-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.form-field,
.form-check {
  display: grid;
  gap: 0.4rem;
}

.form-field span,
.form-check span {
  color: var(--ink-900);
  font-size: 0.82rem;
  font-weight: 500;
}

.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  padding: 0.75rem 0.9rem;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.4);
  color: inherit;
  font-size: 0.85rem;
  transition: border-color 0.2s;
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
  outline: none;
  border-color: rgba(var(--topic-primary-rgb), 0.35);
}

.form-field textarea {
  min-height: 10rem;
  resize: vertical;
}

.form-check {
  grid-template-columns: auto 1fr;
  align-items: start;
}
.form-check input {
  margin-top: 0.2rem;
}

.form-error {
  color: var(--sea-ionian-700);
  font-size: 0.78rem;
  line-height: 1.55;
}

.form-submit {
  justify-self: start;
  border: 1px solid rgba(var(--topic-primary-rgb), 0.22);
  border-radius: 999px;
  padding: 0.7rem 1.4rem;
  background: rgba(var(--topic-primary-rgb), 0.08);
  color: var(--sea-tyrrhenian-900);
  font-size: 0.82rem;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s;
}
.form-submit:hover {
  background: rgba(var(--topic-primary-rgb), 0.14);
  border-color: rgba(var(--topic-primary-rgb), 0.35);
}

.field-trap {
  position: absolute;
  left: -100vw;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* ── FEEDBACK SIDE PANEL ── */
.feedback-side-items {
  position: relative;
  display: grid;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.feedback-side-item {
  padding: 1.2rem;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.3);
}
.feedback-side-item h3 {
  margin: 0 0 0.3rem;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--ink-900);
}
.feedback-side-item p {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.9;
  color: var(--ink-700);
}

.feedback-side-note {
  position: relative;
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.8;
  color: var(--ink-500);
}

/* ── AD SHELL ── */
.ad-shell {
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-lg);
  padding: clamp(2rem, 3vw, 3rem);
  margin-bottom: 2.5rem;
  background: linear-gradient(90deg, rgba(var(--topic-primary-rgb), 0.04), rgba(var(--topic-secondary-rgb), 0.04));
  box-shadow: var(--shadow-soft);
}

/* ═══════════════════════════════════════════════════════════
   NIGHT MODE
   ═══════════════════════════════════════════════════════════ */
body.page.night .topic-stats-bar {
  background: var(--sand-200);
  border-color: rgba(255, 255, 255, 0.06);
}

body.page.night .coast-pill {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
  color: var(--ink-700);
}
body.page.night .coast-pill:hover {
  background: rgba(var(--topic-night-primary-rgb), 0.12);
  border-color: rgba(var(--topic-night-primary-rgb), 0.3);
  color: var(--ink-900);
}
body.page.night .coast-pill[aria-selected="true"] {
  background: rgba(var(--topic-night-primary-rgb), 0.8);
  border-color: rgba(var(--topic-night-primary-rgb), 0.9);
  color: #fff;
  box-shadow: 0 4px 16px rgba(var(--topic-night-primary-rgb), 0.3);
}

body.page.night .coast-panel {
  background: rgba(12, 18, 61, 0.52);
  border-color: rgba(255, 255, 255, 0.07);
}

body.page.night .coast-panel-strap {
  color: var(--sea-ionian-900);
}

body.page.night .coast-tag,
body.page.night .coast-fact,
body.page.night .coast-detail,
body.page.night .coast-media-card,
body.page.night .coast-column {
  background: rgba(12, 18, 61, 0.4);
  border-color: rgba(255, 255, 255, 0.07);
}

body.page.night .coast-media-credit {
  color: var(--sea-tyrrhenian-900);
  border-color: rgba(var(--topic-night-primary-rgb), 0.3);
}

body.page.night .topic-related-card {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.07);
}
body.page.night .topic-related-card:hover {
  background: rgba(var(--topic-night-primary-rgb), 0.08);
  border-color: rgba(var(--topic-night-primary-rgb), 0.2);
}
body.page.night .topic-related-card-link {
  color: var(--sea-tyrrhenian-900);
  border-color: rgba(var(--topic-night-primary-rgb), 0.3);
}

/* Legal night */
body.page.night .legal-section {
  background: rgba(12, 18, 61, 0.52);
  border-color: rgba(255, 255, 255, 0.07);
}

/* Feedback night */
body.page.night .feedback-form-panel,
body.page.night .feedback-side {
  background: rgba(12, 18, 61, 0.52);
  border-color: rgba(255, 255, 255, 0.07);
}

body.page.night .feedback-side-item {
  background: rgba(12, 18, 61, 0.4);
  border-color: rgba(255, 255, 255, 0.07);
}

body.page.night .form-field input,
body.page.night .form-field select,
body.page.night .form-field textarea {
  background: rgba(15, 20, 69, 0.5);
  border-color: rgba(255, 255, 255, 0.1);
  color: var(--ink-900);
}

body.page.night .form-submit {
  background: rgba(var(--topic-night-primary-rgb), 0.2);
  border-color: rgba(var(--topic-night-primary-rgb), 0.38);
  color: var(--sea-tyrrhenian-900);
}

body.page.night .feedback-status--submitted,
body.page.night .feedback-status--preview {
  border-color: rgba(var(--topic-night-primary-rgb), 0.28);
}
body.page.night .feedback-status--invalid,
body.page.night .feedback-status--delivery_error {
  border-color: rgba(var(--topic-night-secondary-rgb), 0.3);
}

body.page.night .ad-shell {
  background: linear-gradient(90deg, rgba(var(--topic-night-primary-rgb), 0.06), rgba(var(--topic-night-secondary-rgb), 0.06));
  border-color: rgba(255, 255, 255, 0.07);
}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE – mobile-first adjustments
   ═══════════════════════════════════════════════════════════ */
body.page.night .coast-map-frame {
  border-color: rgba(255, 255, 255, 0.1);
  background:
    radial-gradient(circle at top left, rgba(var(--topic-night-primary-rgb), 0.18), transparent 36%),
    radial-gradient(circle at bottom right, rgba(var(--topic-night-secondary-rgb), 0.16), transparent 38%),
    linear-gradient(180deg, rgba(16, 20, 52, 0.92), rgba(24, 30, 72, 0.95));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

body.page.night .coast-map-frame::after {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.08), transparent 42%),
    linear-gradient(180deg, rgba(3, 6, 18, 0.06), transparent 30%, rgba(3, 6, 18, 0.18));
}

body.page.night .coast-map-box {
  border-color: rgba(var(--coast-rgb, 248, 244, 239), 0.4);
  background: rgba(var(--coast-rgb, 248, 244, 239), 0.18);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 18px 32px rgba(0, 0, 0, 0.24);
}

body.page.night .coast-map-box:hover,
body.page.night .coast-map-box:focus-visible {
  background: rgba(var(--coast-rgb, 168, 186, 255), 0.26);
  border-color: rgba(var(--coast-rgb, 168, 186, 255), 0.5);
}

body.page.night .coast-map-box.is-active {
  background: rgba(var(--coast-rgb, 168, 186, 255), 0.34);
  border-color: rgba(var(--coast-rgb, 168, 186, 255), 0.74);
}

body.page.night .coast-map-label {
  color: rgba(248, 244, 239, 0.94);
}

@media (max-width: 760px) {
  .topic-title {
    font-size: clamp(2.2rem, 8vw, 3rem);
  }

  .coast-panel-header {
    flex-direction: column;
    gap: 1rem;
  }

  .coast-panel-tags {
    justify-content: flex-start;
  }

  .coast-columns {
    grid-template-columns: 1fr;
  }

  .feedback-layout {
    grid-template-columns: 1fr;
  }

  .feedback-grid {
    grid-template-columns: 1fr;
  }

  .coast-map-shell {
    max-width: 30rem;
    padding: 0.7rem;
  }

  .coast-map-box {
    min-width: 4.8rem;
    max-width: 7rem;
    padding: 0.28rem 0.42rem;
    border-radius: 0.8rem;
  }

  .coast-map-label {
    font-size: 0.5rem;
    letter-spacing: 0.06em;
  }

  .coast-selector {
    gap: 0.45rem;
    padding: 0 0.5rem;
  }

  .coast-pill {
    font-size: 0.68rem;
    padding: 0.5rem 0.85rem;
  }

  .coast-panel {
    padding: clamp(1.5rem, 4vw, 2.5rem);
  }

  .coast-gallery {
    grid-template-columns: 1fr;
  }

  .topic-stats-bar {
    grid-template-columns: repeat(2, 1fr);
    padding: 1.5rem;
  }
}

@media (max-width: 480px) {
  .coast-map-shell {
    max-width: 22rem;
    padding: 0.45rem;
  }

  .coast-map-frame {
    max-width: 19rem;
  }

  .coast-map-box {
    min-width: 4.1rem;
    max-width: 5.9rem;
    padding: 0.24rem 0.32rem;
  }

  .coast-map-label {
    font-size: 0.44rem;
    line-height: 1.25;
  }

  .coast-pill {
    font-size: 0.62rem;
    padding: 0.45rem 0.7rem;
  }

  .topic-stats-bar {
    grid-template-columns: 1fr 1fr;
    gap: 0.8rem;
    padding: 1.2rem;
  }

  .topic-intro {
    grid-template-columns: 1fr;
  }
}

.topic-masthead-note {
  margin: 1.35rem auto 0;
  max-width: 58ch;
  padding-top: 1.15rem;
  border-top: 1px solid var(--line-soft);
  font-family: "Inter", sans-serif;
  font-size: 0.86rem;
  line-height: 1.95;
  letter-spacing: 0.01em;
  color: var(--ink-700);
}

.topic-related-card-link {
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.68rem;
}

.page--legal,
.page--feedback {
  --sand-050: #060606;
  --sand-100: #0b0b0b;
  --sand-200: #101010;
  --sand-300: #191919;
  --ink-900: #f7f3eb;
  --ink-700: rgba(247, 243, 235, 0.84);
  --ink-500: rgba(247, 243, 235, 0.62);
  --ink-300: rgba(247, 243, 235, 0.38);
  --line-soft: rgba(255, 255, 255, 0.11);
  --line-faint: rgba(255, 255, 255, 0.07);
  --shadow-soft: 0 28px 80px rgba(0, 0, 0, 0.34);
  --shadow-deep: 0 34px 100px rgba(0, 0, 0, 0.44);
  background:
    radial-gradient(circle at top, rgba(255, 255, 255, 0.05), transparent 28%),
    linear-gradient(180deg, #020202 0%, #0a0a0a 100%);
}

.page--legal .topic-hero,
.page--feedback .topic-hero,
.page--legal .legal-section,
.page--feedback .feedback-form-panel,
.page--feedback .feedback-side,
.page--feedback .feedback-status,
.page--feedback .feedback-side-item,
.page--legal .ad-shell,
.page--feedback .ad-shell {
  background: rgba(255, 255, 255, 0.02);
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: 0 28px 80px rgba(0, 0, 0, 0.36);
}

.page--legal .topic-hero::before,
.page--feedback .topic-hero::before,
.page--legal .legal-section::before,
.page--feedback .feedback-form-panel::before,
.page--feedback .feedback-side::before {
  background:
    radial-gradient(circle at top left, rgba(255, 255, 255, 0.06), transparent 42%),
    radial-gradient(circle at bottom right, rgba(255, 255, 255, 0.03), transparent 48%);
}

.page--legal .topic-title,
.page--feedback .topic-title,
.page--legal .feedback-form-title,
.page--feedback .feedback-side-title,
.page--feedback .feedback-status-title {
  color: #ffffff;
}

.page--legal .topic-eyebrow,
.page--feedback .topic-eyebrow,
.page--legal .legal-summary,
.page--legal .legal-points,
.page--legal .legal-note,
.page--feedback .feedback-form-intro,
.page--feedback .feedback-side-intro,
.page--feedback .feedback-side-item p,
.page--feedback .feedback-status-body,
.page--feedback .feedback-side-note {
  color: var(--ink-700);
}

.page--feedback .feedback-side-item h3,
.page--feedback .form-field span,
.page--feedback .form-check span,
.page--feedback .form-submit,
.page--feedback .feedback-status-error {
  color: #ffffff;
}

.page--legal .topic-masthead-note,
.page--feedback .topic-masthead-note {
  border-top-color: rgba(255, 255, 255, 0.12);
  color: rgba(247, 243, 235, 0.78);
}

.page--feedback .form-field input,
.page--feedback .form-field select,
.page--feedback .form-field textarea {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.12);
  color: #ffffff;
}

.page--feedback .form-field input::placeholder,
.page--feedback .form-field textarea::placeholder {
  color: rgba(247, 243, 235, 0.44);
}

.page--feedback .form-field input:focus,
.page--feedback .form-field select:focus,
.page--feedback .form-field textarea:focus {
  border-color: rgba(255, 255, 255, 0.32);
}

.page--feedback .form-submit {
  background: #ffffff;
  border-color: #ffffff;
  color: #050505;
}

.page--feedback .form-submit:hover {
  background: rgba(255, 255, 255, 0.88);
  border-color: rgba(255, 255, 255, 0.88);
}

.page--feedback .form-error {
  color: rgba(255, 214, 214, 0.9);
}
