/* ===== GP RESET — body.single-destination ================================ */
body.single-destination,
body.single-destination #page,
body.single-destination .site,
body.single-destination #content,
body.single-destination #primary {
  background: #FFFFFF !important;
}
body.single-destination #content,
body.single-destination #primary,
body.single-destination .site-content,
body.single-destination .content-area,
body.single-destination main,
body.single-destination .site-main,
body.single-destination .inside-article,
body.single-destination .entry-content {
  display: block !important;
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  background: #FFFFFF !important;
}
body.single-destination .generate-page-header,
body.single-destination .entry-header,
body.single-destination .page-header { display: none !important; }
body.single-destination .site-footer,
body.single-destination .footer-bar-wrap,
body.single-destination footer.site-info,
body.single-destination .site-info,
body.single-destination .footer-widgets-container { display: none !important; }

/* ===== TOKENS ============================================================= */
body.single-destination {
  background: #FFFFFF;
  color: #0A0A0A;
  font-family: 'Source Serif 4', Georgia, serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  font-variation-settings: "opsz" 14;
  overflow-x: hidden;
}
body.single-destination *, body.single-destination *::before, body.single-destination *::after { box-sizing: border-box; }
body.single-destination a   { color: inherit; text-decoration: none; }
body.single-destination img { max-width: 100%; display: block; }

/* ===== CITY TOC — sticky anchor navigation (Step 16g.4) ================== */
/* Horizontal sticky strip. Appears after at-a-glance, sticks to top on scroll.
   Only city.php outputs .city-toc — oblast.php is not affected. */
body.single-destination { scroll-behavior: smooth; }

/* Scroll offset: TOC height (~42px) + 22px breathing room = 64px */
#transport, #seasons, #places, #hotels, #articles, #food, #faq {
  scroll-margin-top: 64px;
}

.city-toc {
  position: sticky;
  top: 0;
  z-index: 200;
  background-color: #FFFFFF;
  border-bottom: 0.5px solid #D4D8DC;
}
.city-toc__inner {
  display: flex;
  align-items: center;
  padding: 0 40px;
  overflow-x: auto;
  scrollbar-width: none;           /* Firefox */
  -webkit-overflow-scrolling: touch;
}
.city-toc__inner::-webkit-scrollbar { display: none; } /* Chrome/Safari */

.city-toc__link {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.04em;
  color: #7A7A7A;
  text-decoration: none;
  white-space: nowrap;
  padding: 13px 0;
  flex-shrink: 0;
  transition: color 0.15s;
}
.city-toc__link:hover { color: #1F4D5C; }
.city-toc__link--active { color: #1F4D5C; }
/* Dot separator between links */
.city-toc__link + .city-toc__link { margin-left: 20px; }
.city-toc__link + .city-toc__link::before {
  content: '·';
  color: #D4D8DC;
  margin-right: 20px;
}

@media (max-width: 700px) {
  .city-toc__inner { padding: 0 20px; }
  .city-toc__link  { font-size: 10px; padding: 11px 0; }
  .city-toc__link + .city-toc__link { margin-left: 14px; }
  .city-toc__link + .city-toc__link::before { margin-right: 14px; }
  #transport, #seasons, #places, #hotels, #articles, #food, #faq {
    scroll-margin-top: 52px;
  }
}

/* ===== BREADCRUMBS ======================================================== */
.breadcrumbs {
  padding: 20px 40px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.04em;
  color: #7A7A7A;
  border-bottom: 0.5px solid #D4D8DC;
}
.breadcrumbs a { color: #7A7A7A; transition: color 0.15s; }
.breadcrumbs a:hover { color: #1F4D5C; }
.breadcrumbs .sep    { margin: 0 6px; }
.breadcrumbs .current { color: #404040; }

/* ===== HERO =============================================================== */
/* 2-column layout: text left + photo right */
.dest-hero {
  border-bottom: 0.5px solid #D4D8DC;
}
.dest-hero__layout {
  display: flex;
  gap: 48px;
  align-items: flex-start;
  padding: 56px 40px;
}
.dest-hero__text {
  flex: 1;
  min-width: 0;
}
.dest-hero__media {
  flex: 0 0 360px;
}
.dest-hero__photo {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.dest-hero__tagline {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #7A7A7A;
  margin-bottom: 16px;
}
.dest-hero__title {
  font-family: 'Fraunces', Georgia, serif;
  font-size: clamp(32px, 4.5vw, 52px);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: #0A0A0A;
  margin-bottom: 20px;
}
.dest-hero__desc {
  font-size: 18px;
  line-height: 1.65;
  color: #404040;
}

/* ===== SECTIONS =========================================================== */
.dest-section {
  padding: 56px 40px;
  border-bottom: 0.5px solid #D4D8DC;
}
.dest-section:last-child { border-bottom: none; }
.dest-section__title {
  font-family: 'Fraunces', serif;
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 400;
  margin-bottom: 36px;
  color: #0A0A0A;
}
.dest-section__title em { font-style: italic; color: #1F4D5C; font-weight: 300; }

/* Full description: single column, readable width */
.dest-full-desc {
  max-width: 1140px;
  font-size: 18px;
  line-height: 1.75;
  color: #404040;
}
.dest-full-desc p { margin-bottom: 1.2em; }
.dest-full-desc p:last-child { margin-bottom: 0; }

/* In-flow photo block: full width of the section, after intro text */
.dest-inline-photo {
  margin-top: 40px;
  width: 100%;
}
.dest-inline-photo img {
  width: 100%;
  max-height: 480px;
  object-fit: cover;
  display: block;
}

/* Photo placeholder (hero square, intro wide) */
.dest-photo-placeholder {
  background: #F5F5F3;
  border: 0.5px solid #D4D8DC;
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}
.dest-photo-placeholder--wide {
  aspect-ratio: 16 / 6;  /* wide landscape for in-flow */
}
.dest-photo-placeholder__label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #9CA3A8;
}

/* Coming soon */
.dest-section--coming-soon { text-align: center; padding: 80px 40px; }
.dest-coming-title {
  font-family: 'Fraunces', serif;
  font-size: 28px;
  font-weight: 400;
  color: #0A0A0A;
  margin-bottom: 16px;
}
.dest-coming-text { font-size: 17px; color: #7A7A7A; max-width: 480px; margin: 0 auto 32px; }
.dest-back-link {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.06em;
  color: #1F4D5C;
  border-bottom: 0.5px solid currentColor;
  padding-bottom: 1px;
  transition: color 0.15s;
}
.dest-back-link:hover { color: #2D6B7F; }

/* Hotel + article cards — same classes as front-page.css */
.hotel-cards, .article-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 28px;
}

/* ── Hotels in destination context: 2-col grid of horizontal rows ─────────
   Approach: scoped CSS only — hotel/card.php unchanged.
   Each card = horizontal row (img 140px left + text right).
   Cards wrap in 2 columns. Odd card stays left, doesn't stretch.
   /hotels/ archive and single-hotel remain on standard card layout.        */

/* 2-column wrapping container */
.dest-section--hotels .hotel-cards {
  display: flex;
  flex-wrap: wrap;
  gap: 0 32px;           /* row-gap handled by card padding; col-gap 32px */
  max-width: none;
}

/* Each card: half-width horizontal row */
.dest-section--hotels .hotel-card {
  flex: 0 1 calc(50% - 16px);  /* 2 per row, gap/2 subtracted */
  flex-direction: row;
  align-items: center;
  gap: 16px;
  border: none;
  border-bottom: 0.5px solid #D4D8DC;
  padding: 16px 0;
  max-width: none;
  background: transparent;
}
/* Remove divider from last 2 cards (bottom row) */
.dest-section--hotels .hotel-card:nth-last-child(-n+2) {
  border-bottom: none;
}
/* If odd number: last card alone → don't stretch to 100% */
.dest-section--hotels .hotel-card:nth-child(odd):last-child {
  flex: 0 1 calc(50% - 16px);
}
.dest-section--hotels .hotel-card:hover {
  border-color: transparent;
  background: transparent;
}

/* Thumbnail: fixed square 140×140 */
.dest-section--hotels .hotel-card__img-wrap {
  flex-shrink: 0;
  width: 140px;
  height: 140px;
  aspect-ratio: unset;
  border-radius: 2px;
  overflow: hidden;
  background: #F5F5F3;
}
.dest-section--hotels .hotel-card__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.dest-section--hotels .hotel-card:hover .hotel-card__img-wrap img {
  transform: scale(1.04);
}

/* No-photo fallback: keep consistent row height */
.dest-section--hotels .hotel-card:not(:has(.hotel-card__img-wrap)) .hotel-card__body {
  padding-left: 0;
}

/* Text column */
.dest-section--hotels .hotel-card__body {
  flex: 1;
  min-width: 0;
  padding: 0;
}
.dest-section--hotels .hotel-card__meta {
  margin-bottom: 6px;
}
.dest-section--hotels .hotel-card__title {
  font-size: 18px;
  margin-bottom: 6px;
  white-space: normal;
}
/* Description: 2-line clamp */
.dest-section--hotels .hotel-card__desc {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 14px;
  margin-bottom: 10px;
}
.dest-section--hotels .hotel-card__cta {
  font-size: 11px;
}

/* ≤900px: single column of rows (full width) */
@media (max-width: 900px) {
  .dest-section--hotels .hotel-card {
    flex: 1 1 100%;
  }
  .dest-section--hotels .hotel-card:nth-last-child(-n+2) {
    border-bottom: 0.5px solid #D4D8DC;
  }
  .dest-section--hotels .hotel-card:last-child {
    border-bottom: none;
  }
}

/* ≤600px: stack image on top of text */
@media (max-width: 600px) {
  .dest-section--hotels .hotel-card {
    flex-direction: column;
    align-items: flex-start;
    padding: 12px 0;
  }
  .dest-section--hotels .hotel-card__img-wrap {
    width: 100%;
    height: 160px;
  }
}
.hotel-card {
  display: flex; flex-direction: column;
  border: 0.5px solid #D4D8DC;
  transition: border-color 0.2s;
}
.hotel-card:hover { border-color: #9CA3A8; }
.hotel-card__img-wrap { display: block; overflow: hidden; aspect-ratio: 16/10; background: #F5F5F3; }
.hotel-card__img-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s cubic-bezier(0.22,1,0.36,1); }
.hotel-card:hover .hotel-card__img-wrap img { transform: scale(1.03); }
.hotel-card__body { display: flex; flex-direction: column; flex: 1; padding: 18px 22px 22px; }
.hotel-card__meta { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.06em; color: #7A7A7A; }
.hotel-card__city::after { content: '·'; margin-left: 10px; color: #9CA3A8; }
.hotel-card__stars  { color: #1F4D5C; letter-spacing: 1px; }
.hotel-card__rating { margin-left: auto; font-size: 12px; color: #1F4D5C; font-weight: 500; }
.hotel-card__title  { font-family: 'Fraunces', serif; font-size: 19px; font-weight: 400; line-height: 1.2; margin-bottom: 10px; }
.hotel-card__title a { color: #0A0A0A; transition: color 0.15s; }
.hotel-card__title a:hover { color: #1F4D5C; }
.hotel-card__desc { font-size: 15px; line-height: 1.55; color: #404040; flex: 1; margin-bottom: 18px; }
.hotel-card__cta { font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.04em; color: #1F4D5C; border-bottom: 0.5px solid currentColor; padding-bottom: 1px; align-self: flex-start; transition: color 0.15s; }

.article-card { display: flex; flex-direction: column; border: 0.5px solid #D4D8DC; transition: border-color 0.2s; }
.article-card:hover { border-color: #9CA3A8; }
.article-card__img-wrap { display: block; overflow: hidden; aspect-ratio: 16/10; background: #F5F5F3; }
.article-card__img-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s; }
.article-card:hover .article-card__img-wrap img { transform: scale(1.03); }
.article-card__body { display: flex; flex-direction: column; flex: 1; padding: 16px 20px 20px; }
.article-card__title { font-family: 'Fraunces', serif; font-size: 18px; font-weight: 400; line-height: 1.2; margin-bottom: 8px; }
.article-card__title a { color: #0A0A0A; transition: color 0.15s; }
.article-card__title a:hover { color: #1F4D5C; }
.article-card__desc { font-size: 14px; line-height: 1.5; color: #404040; flex: 1; margin-bottom: 14px; }
.article-card__cta { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: #1F4D5C; border-bottom: 0.5px solid currentColor; padding-bottom: 1px; align-self: flex-start; }

/* ===== RESPONSIVE ========================================================= */

@media (max-width: 900px) {
  /* Hero: stack text above photo */
  .dest-hero__layout { flex-direction: column; gap: 28px; padding: 40px 24px; }
  .dest-hero__media  { flex: 0 0 auto; width: 100%; }
  /* Intro: already single column, nothing to change */
}

@media (max-width: 700px) {
  .breadcrumbs      { padding: 14px 20px; }
  .dest-section     { padding: 36px 20px; }
  .hotel-cards, .article-cards { grid-template-columns: 1fr; gap: 14px; }
  .dest-section--coming-soon { padding: 56px 20px; }
  .dest-atglance { grid-template-columns: repeat(2, 1fr); padding: 16px 20px; }
  .dest-cities { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .dest-see-grid { grid-template-columns: 1fr; gap: 16px; }
  .dest-facts   { grid-template-columns: 1fr; }
  .dest-hero__layout { padding: 28px 20px; }
}

/* ===== AT-A-GLANCE ROW (Step 16e) ====================================== */
.dest-atglance {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 0;
  border-top: 0.5px solid #D4D8DC;
  border-bottom: 0.5px solid #D4D8DC;
  padding: 0 40px;
  margin: 0;
}
.dest-atglance__item {
  padding: 20px 0;
  border-right: 0.5px solid #D4D8DC;
  padding-right: 24px;
  padding-left: 24px;
}
.dest-atglance__item:first-child { padding-left: 0; }
.dest-atglance__item:last-child  { border-right: none; }
.dest-atglance__label {
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #7A7A7A;
  margin-bottom: 6px;
}
.dest-atglance__value {
  display: block;
  font-family: 'Fraunces', serif;
  font-size: 17px;
  font-weight: 400;
  color: #0A0A0A;
  line-height: 1.2;
}

/* ===== CITIES GRID (Step 16e) =========================================== */
.dest-cities {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 16px;
}
.dest-city-card {
  display: flex;
  flex-direction: column;
  border: 0.5px solid #D4D8DC;
  text-decoration: none;
  transition: border-color 0.15s;
}
.dest-city-card:hover { border-color: #1F4D5C; }
.dest-city-card__img-wrap {
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #F5F5F3;
}
.dest-city-card__img-wrap img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.4s cubic-bezier(0.22,1,0.36,1);
}
.dest-city-card:hover .dest-city-card__img-wrap img { transform: scale(1.04); }
.dest-city-card__body { padding: 12px 14px 14px; }
.dest-city-card__name {
  font-family: 'Fraunces', serif;
  font-size: 15px;
  font-weight: 400;
  color: #0A0A0A;
  line-height: 1.2;
  margin-bottom: 4px;
  transition: color 0.15s;
}
.dest-city-card:hover .dest-city-card__name { color: #1F4D5C; }
.dest-city-card__tag {
  font-family: 'Source Serif 4', serif;
  font-size: 13px;
  color: #7A7A7A;
  line-height: 1.35;
  margin: 0;
}

/* ===== WHAT TO SEE (Step 16e) =========================================== */
.dest-see-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
.dest-see-item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 20px 24px;
  border: 0.5px solid #D4D8DC;
}
.dest-see-item__num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  font-weight: 500;
  color: #1F4D5C;
  letter-spacing: 0.04em;
  flex-shrink: 0;
  padding-top: 3px;
}
.dest-see-item__name {
  font-family: 'Fraunces', serif;
  font-size: 17px;
  font-weight: 400;
  color: #0A0A0A;
  line-height: 1.2;
  margin-bottom: 8px;
}
.dest-see-item__desc {
  font-family: 'Source Serif 4', serif;
  font-size: 14px;
  line-height: 1.55;
  color: #404040;
  margin: 0;
}

/* ===== RESTAURANTS (Step 16f.3b, −25% 16f.4) ============================= */
.dest-restaurants-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.dest-restaurant-item {
  padding: 15px 18px;
  border: 0.5px solid #D4D8DC;
}
.dest-restaurant-item__cat {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #1F4D5C;
  margin: 0 0 7px;
}
.dest-restaurant-item__name {
  font-family: 'Fraunces', serif;
  font-size: 13px;
  font-weight: 400;
  color: #0A0A0A;
  line-height: 1.2;
  margin: 0 0 5px;
}
.dest-restaurant-item__desc {
  font-family: 'Source Serif 4', serif;
  font-size: 11px;
  line-height: 1.55;
  color: #404040;
  margin: 0;
}
@media (max-width: 900px) {
  .dest-restaurants-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .dest-restaurants-grid { grid-template-columns: 1fr; }
}

/* ===== INTERESTING FACTS: 2×2 grid (4 items, no orphan) ================ */
.dest-facts {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
.dest-fact-item {
  background: #FFFFFF;              /* white — no gray fill */
  padding: 20px 24px;
  border-left: 2px solid #1F4D5C;  /* teal accent kept */
  border-bottom: 0.5px solid #D4D8DC;
}
.dest-fact-item__text {
  font-family: 'Fraunces', serif;  /* Fraunces for title prominence */
  font-size: 17px;
  font-weight: 500;                 /* semi-bold title */
  line-height: 1.3;
  color: #0A0A0A;
  margin-bottom: 6px;
}
.dest-fact-item__desc {            /* fact_description — subdued */
  font-family: 'Source Serif 4', serif;
  font-size: 14px;
  line-height: 1.55;
  color: #404040;
  margin: 0;
}

/* ===== HOW TO GET THERE — 2×2 row grid (Step 16g.2-cols) ================= */
/* 4 rows in 2 columns (2×2 grid). No vertical divider — column-gap 40px
   provides clean separation without extra hairline noise (v6 minimal).
   Horizontal hairlines within each column. */
.dest-transport-rows {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 40px;
  row-gap: 0;
}
.dest-transport-row {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 13px 0;
  border-bottom: 0.5px solid #D4D8DC;
}
/* Top border on first grid row (items 1 and 2) */
.dest-transport-rows .dest-transport-row:nth-child(-n+2) {
  border-top: 0.5px solid #D4D8DC;
}
/* No bottom border on last grid row (items 3 and 4) */
.dest-transport-rows .dest-transport-row:nth-last-child(-n+2) {
  border-bottom: none;
}

/* Icon: small, no container frame — clean inline */
.dest-transport-row__icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  margin-top: 3px; /* optical alignment with first text line */
}
.dest-transport-row__icon svg { display: block; width: 18px; height: 18px; }

/* Body: flex-column, takes remaining width */
.dest-transport-row__body {
  flex: 1;
  min-width: 0;
}

/* Line 1: mode label (teal Mono) + key_fact (Fraunces) inline */
.dest-transport-row__top {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 2px;
}
.dest-transport-row__mode {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #1F4D5C;
  flex-shrink: 0;
  line-height: 1.4;
}
.dest-transport-row__fact {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 15px;
  font-weight: 400;
  color: #0A0A0A;
  line-height: 1.25;
}

/* Line 2: details — muted, compact */
.dest-transport-row__details {
  font-family: 'Source Serif 4', serif;
  font-size: 12px;
  line-height: 1.45;
  color: #7A7A7A;
  margin: 0;
}

@media (max-width: 700px) {
  /* Single column: reset 2-col border rules, apply 1-col logic */
  .dest-transport-rows { grid-template-columns: 1fr; }
  .dest-transport-rows .dest-transport-row:nth-child(-n+2)    { border-top: none; }
  .dest-transport-rows .dest-transport-row:nth-last-child(-n+2) { border-bottom: 0.5px solid #D4D8DC; }
  .dest-transport-rows .dest-transport-row:first-child        { border-top: 0.5px solid #D4D8DC; }
  .dest-transport-rows .dest-transport-row:last-child         { border-bottom: none; }
  .dest-transport-row { gap: 10px; padding: 11px 0; }
  .dest-transport-row__top { gap: 6px; }
}

/* Wysiwyg fallback (for cities without transport repeater data) */
.dest-transport-content {
  max-width: 760px;
  font-size: 17px;
  line-height: 1.7;
  color: #404040;
}
.dest-transport-content p { margin-bottom: 1em; }
.dest-transport-content p:last-child { margin-bottom: 0; }
.dest-transport-content h3,
.dest-transport-content h4 {
  font-family: 'Fraunces', serif;
  font-size: 18px;
  font-weight: 400;
  color: #0A0A0A;
  margin: 1.4em 0 0.5em;
  line-height: 1.2;
}
.dest-transport-content ul,
.dest-transport-content ol  { padding-left: 1.4em; margin-bottom: 1em; }
.dest-transport-content li  { margin-bottom: 0.35em; }
.dest-transport-content strong { font-weight: 600; color: #0A0A0A; }

/* ===== PULL-QUOTE (Step 16f.3a, fix 16f.4) ================================ */
/* Editorial callout: Fraunces italic + teal opening mark + JetBrains Mono attr */
.dest-section--pullquote {
  padding: 24px 40px;
  text-align: center;
}
/* Reset browser/theme blockquote defaults (margin, padding, border-left) */
.dest-pullquote {
  max-width: 680px;
  margin: 0 auto;
  padding: 0;
  border: none;
}
.dest-pullquote__quote {
  font-family: 'Fraunces', Georgia, serif;
  font-size: clamp(13px, 1.2vw, 15px);
  font-style: italic;
  font-weight: 400;
  line-height: 1.5;
  color: #0A0A0A;
  margin: 0;
}
.dest-pullquote__quote::before {
  content: '\201C'; /* " opening curly quote */
  display: block;
  font-size: clamp(24px, 3vw, 33px);
  line-height: 0.75;
  color: #1F4D5C;
  font-style: normal;
  margin-bottom: 5px;
  opacity: 0.55;
}
.dest-pullquote__attr {
  display: block;
  margin-top: 10px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #7A7A7A;
  font-style: normal;
}
@media (max-width: 700px) {
  .dest-section--pullquote { padding: 18px 20px; }
}

/* ===== SEASONS (Step 16f.3c, −25% + icons 16f.4) ========================= */
.dest-seasons-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px;
}
.dest-season-item {
  padding: 15px 15px 18px;
  border: 0.5px solid #D4D8DC;
  border-top: 2px solid #1F4D5C;
}
/* SVG icon above name */
.dest-season-item__icon {
  display: block;
  margin-bottom: 8px;
  color: #1F4D5C;
}
.dest-season-item__icon svg { display: block; }
.dest-season-item__name {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 14px;
  font-weight: 400;
  color: #0A0A0A;
  line-height: 1.2;
  margin: 0 0 4px;
}
.dest-season-item__months {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.08em;
  color: #7A7A7A;
  margin: 0 0 8px;
}
.dest-season-item__text {
  font-family: 'Source Serif 4', serif;
  font-size: 11px;
  line-height: 1.55;
  color: #404040;
  margin: 0 0 10px;
}
.dest-season-item__tag {
  display: inline-block;
  padding: 2px 7px;
  border: 0.5px solid #1F4D5C;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #1F4D5C;
  line-height: 1.6;
}
@media (max-width: 900px) {
  .dest-seasons-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .dest-seasons-grid { grid-template-columns: 1fr; }
}

/* ===== FAQ: v6 accordion (Step 16e) ===================================== */
.dest-section--faq .faq {
  max-width: 760px;
}
.dest-section--faq .faq-item {
  border-top: 0.5px solid #D4D8DC;
}
.dest-section--faq .faq-item:last-child {
  border-bottom: 0.5px solid #D4D8DC;
}
.dest-section--faq .faq-item summary {
  font-family: 'Fraunces', serif;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.35;
  padding: 18px 0;
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  color: #0A0A0A;
}
.dest-section--faq .faq-item summary::-webkit-details-marker { display: none; }
.dest-section--faq .faq-item summary::after {
  content: '+';
  font-family: 'JetBrains Mono', monospace;
  font-size: 18px;
  color: #1F4D5C;
  flex-shrink: 0;
  transition: transform 0.2s;
}
.dest-section--faq .faq-item[open] summary::after {
  transform: rotate(45deg);
}
.dest-section--faq .faq-item div,
.dest-section--faq .faq-item p {
  font-family: 'Source Serif 4', serif;
  font-size: 16px;
  line-height: 1.65;
  color: #404040;
  padding-bottom: 20px;
  max-width: 660px;
}

