/* Homepage v3 — quiet travel-blog layout. Scoped so other pages keep their own styles. */
body.homepage-v3 {
  --home-paper: #fffefa;
  --home-soft: #f3f3ef;
  --home-ink: #24434b;
  --home-muted: #66777c;
  --home-line: rgba(36, 67, 75, 0.16);
  --home-accent: #8aa2ac;
  --home-sans: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --home-serif: "Libre Baskerville", Georgia, serif;
  background: var(--home-paper);
  color: var(--home-muted);
  font-family: var(--home-sans);
}

body.homepage-v3 main { overflow: hidden; }
body.homepage-v3 h1,
body.homepage-v3 h2,
body.homepage-v3 h3,
body.homepage-v3 h4 {
  margin-top: 0;
  color: var(--home-ink);
  font-family: var(--home-sans);
  font-style: normal;
  font-weight: 500;
  letter-spacing: -0.025em;
}
body.homepage-v3 p { color: var(--home-muted); }
body.homepage-v3 a { text-decoration: none; }

.home-shell { width: min(calc(100% - 3rem), 1080px); margin: 0 auto; }
.home-shell-wide { width: min(calc(100% - 3rem), 1220px); margin: 0 auto; }
.home-section { padding: clamp(3.4rem, 6vw, 5.4rem) 0; }
.home-kicker {
  margin: 0 0 0.55rem;
  color: #7c9097;
  font: 600 0.72rem/1.35 var(--home-sans);
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.home-text-link,
.home-text-link:visited {
  display: inline-block;
  margin-top: 1rem;
  padding-bottom: 0.15rem;
  border-bottom: 1px solid currentColor !important;
  color: var(--home-ink) !important;
  font: 650 0.76rem/1.3 var(--home-sans);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.home-text-link:hover,
.home-text-link:focus-visible { color: #738f99 !important; }

/* HERO — preserve the existing portrait frame on mobile. */
.home-hero { background: var(--home-paper); }
.home-hero-photo {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #82a7bd;
}
.home-hero-photo > img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 240 / 520;
  object-fit: cover;
  object-position: center;
  margin: 0 auto;
}
.home-hero-photo::after {
  position: absolute;
  z-index: 0;
  inset: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(180deg, rgba(20, 53, 62, 0.34) 0%, rgba(20, 53, 62, 0.08) 34%, transparent 56%);
}
.home-hero-overlay {
  position: absolute;
  z-index: 2;
  top: clamp(6.2rem, 11vw, 8.4rem);
  left: 50%;
  width: min(calc(100% - 3rem), 720px);
  transform: translateX(-50%);
  text-align: center;
}
.home-welcome {
  margin: 0 0 0.35rem;
  color: rgba(255,255,255,0.92) !important;
  font: italic 0.95rem/1.3 var(--home-serif);
}
.home-hero-overlay h1 {
  margin: 0;
  color: #fff !important;
  font-size: clamp(2.35rem, 5vw, 4rem);
  font-weight: 500;
  line-height: 1.05;
  text-shadow: 0 1px 12px rgba(12,43,51,0.24);
}
.home-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.7rem;
  margin-top: 1rem;
}
.home-button,
.home-button:visited {
  display: inline-flex;
  min-height: 2.6rem;
  align-items: center;
  justify-content: center;
  padding: 0 1rem;
  border: 1px solid rgba(255,255,255,0.85) !important;
  border-radius: 0;
  background: rgba(29,66,74,0.18);
  color: #fff !important;
  font: 650 0.72rem/1 var(--home-sans);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.home-button.primary { background: #fff; color: var(--home-ink) !important; }
.home-button:hover,
.home-button:focus-visible { background: #fff; color: var(--home-ink) !important; }
.home-hero-intro {
  max-width: 700px;
  padding-top: 1.55rem;
  padding-bottom: 1.6rem;
  text-align: center;
}
.home-hero-intro p {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.75;
}

/* ABOUT */
.home-about { border-top: 1px solid var(--home-line); }
.home-about-grid {
  display: grid;
  grid-template-columns: minmax(220px, 0.72fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
}
.home-about-photo { margin: 0; }
.home-about-photo img {
  display: block;
  width: 100%;
  max-height: 30rem;
  object-fit: cover;
}
.home-about-copy h2 {
  max-width: 18ch;
  margin-bottom: 1rem;
  font-size: clamp(1.75rem, 2.7vw, 2.35rem);
  line-height: 1.12;
}
.home-about-copy p {
  max-width: 42rem;
  margin: 0 0 0.8rem;
  font-size: 0.95rem;
  line-height: 1.75;
}

/* Generic heading row */
.home-heading-row {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 1.65rem;
}
.home-heading-row h2 {
  margin: 0;
  font-size: clamp(1.65rem, 2.6vw, 2.25rem);
  line-height: 1.12;
}
.home-heading-copy {
  max-width: 34rem;
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.7;
}
.home-heading-link { margin-top: 0; white-space: nowrap; }

/* FEATURED ARTICLES */
.home-featured { background: var(--home-soft); }
.home-article-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}
.home-article-card { color: inherit !important; }
.home-article-card img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-position: center 60%;
  object-fit: cover;
  background: #d9e1e3;
}
.home-card-label {
  margin: 0.75rem 0 0.3rem;
  color: #7d9097 !important;
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.home-article-card h3 {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.3;
}
.home-article-card > p:last-child {
  margin: 0.45rem 0 0;
  font-size: 0.86rem;
  line-height: 1.6;
}

/* DESTINATIONS */
.home-destinations { background: var(--home-paper); }
.home-destination-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}
.home-destination-card { color: inherit !important; }
.home-destination-card img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  background: #d9e1e3;
}
.home-destination-card h3 {
  margin: 0.75rem 0 0;
  font-size: 1.05rem;
  line-height: 1.25;
}
.home-destination-card p {
  margin: 0.35rem 0 0;
  font-size: 0.86rem;
  line-height: 1.6;
}
.home-country-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem 1.35rem;
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--home-line);
}
.home-country-links a {
  color: var(--home-ink) !important;
  font: 650 0.74rem/1.3 var(--home-sans);
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

/* TYPE 1 GUIDES */
.home-guides { background: var(--home-soft); }
.home-guides-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.2fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
}
.home-guides h2 {
  max-width: 18ch;
  margin: 0;
  font-size: clamp(1.65rem, 2.5vw, 2.2rem);
  line-height: 1.15;
}
.home-guide-links { border-top: 1px solid var(--home-line); }
.home-guide-links a {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1rem;
  padding: 0.9rem 0;
  border-bottom: 1px solid var(--home-line) !important;
  color: var(--home-ink) !important;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.45;
}
.home-guide-links span:last-child { color: #b97d69; }

/* CHECKLIST */
.home-checklist {
  padding: 3.8rem 0;
  border-top: 1px solid var(--home-line);
  background: #799ca8;
  text-align: center;
}
.home-checklist .home-kicker { color: rgba(255,255,255,0.78); }
.home-checklist h2 {
  max-width: 28ch;
  margin: 0 auto;
  color: #fff !important;
  font-size: clamp(1.6rem, 2.5vw, 2.2rem);
  line-height: 1.18;
}
.home-checklist p {
  max-width: 38rem;
  margin: 0.8rem auto 0;
  color: rgba(255,255,255,0.88);
  font-size: 0.9rem;
  line-height: 1.7;
}
.home-solid-button,
.home-solid-button:visited {
  display: inline-flex;
  min-height: 2.8rem;
  align-items: center;
  margin-top: 1.1rem;
  padding: 0 1.1rem;
  background: #fff;
  color: var(--home-ink) !important;
  font: 650 0.74rem/1 var(--home-sans);
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

/* Quiet masthead on the homepage */
body.homepage-v3 #header,
body.homepage-v3 .publication-masthead {
  grid-template-columns: minmax(8rem, 1fr) auto auto;
  min-height: 4.3rem;
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
  background: linear-gradient(180deg, rgba(26,59,69,0.34), rgba(26,59,69,0));
}
body.homepage-v3 .publication-brand,
body.homepage-v3 #header .publication-brand {
  color: #fff !important;
  font-family: var(--home-serif);
  font-size: 1.08rem;
  font-style: italic;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}
body.homepage-v3 .publication-brand small {
  font-family: var(--home-sans);
  font-size: 0.54rem;
  font-style: normal;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
body.homepage-v3 .publication-nav a,
body.homepage-v3 .publication-utility a,
body.homepage-v3 .publication-menu-toggle {
  font-family: var(--home-sans);
  font-size: 0.66rem;
  font-weight: 650;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

@media (min-width: 900px) {
  .home-hero-photo {
    height: min(82vh, 820px);
  }
  .home-hero-photo > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
  }
}

@media (max-width: 820px) {
  .home-shell,
  .home-shell-wide { width: min(calc(100% - 2rem), 1080px); }
  .home-about-grid,
  .home-guides-grid { grid-template-columns: 1fr; }
  .home-about-photo { max-width: 28rem; }
  .home-about-photo img { max-height: 24rem; object-position: center 32%; }
  .home-article-grid,
  .home-destination-grid { grid-template-columns: 1fr 1fr; }
  .home-article-card:last-child,
  .home-destination-card:last-child { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .home-shell,
  .home-shell-wide { width: min(calc(100% - 1.6rem), 1080px); }
  .home-section { padding: 3rem 0; }

  .home-hero-photo > img {
    width: 100%;
    height: auto;
    object-fit: cover;
  }
  .home-hero-photo::after {
    background: linear-gradient(180deg, rgba(19,53,62,0.42) 0%, rgba(19,53,62,0.08) 42%, transparent 60%);
  }
  .home-hero-overlay {
    top: 5.8rem;
    width: calc(100% - 2rem);
  }
  .home-welcome { font-size: 0.86rem; }
  .home-hero-overlay h1 {
    font-size: 2rem;
    line-height: 1.08;
  }
  .home-actions { margin-top: 0.8rem; }
  .home-button,
  .home-button:visited {
    min-height: 2.35rem;
    padding: 0 0.8rem;
    font-size: 0.65rem;
  }
  .home-hero-intro {
    padding-top: 1.25rem;
    padding-bottom: 1.35rem;
  }
  .home-hero-intro p { font-size: 0.88rem; line-height: 1.65; }

  .home-about-photo { max-width: 15rem; }
  .home-about-photo img {
    width: 100%;
    height: auto;
    max-height: 19rem;
    object-fit: cover;
  }
  .home-about-copy h2,
  .home-heading-row h2,
  .home-guides h2,
  .home-checklist h2 {
    font-size: 1.55rem;
    line-height: 1.16;
  }
  .home-about-copy p { font-size: 0.9rem; line-height: 1.7; }

  .home-heading-row {
    display: block;
    margin-bottom: 1.3rem;
  }
  .home-heading-copy { margin-top: 0.55rem; font-size: 0.86rem; }
  .home-heading-link { margin-top: 0.7rem; }

  .home-article-grid,
  .home-destination-grid { grid-template-columns: 1fr; gap: 1.4rem; }
  .home-article-card:last-child,
  .home-destination-card:last-child { grid-column: auto; }
  .home-article-card img,
  .home-destination-card img {
    width: 100%;
    height: auto;
    max-height: none;
    aspect-ratio: 16 / 10;
    object-fit: cover;
  }
  .home-article-card img { aspect-ratio: 16 / 10; }
  .home-article-card h3,
  .home-destination-card h3 { font-size: 1rem; }
  .home-article-card > p:last-child,
  .home-destination-card p { font-size: 0.84rem; }

  .home-guide-links a { font-size: 0.88rem; }
  .home-checklist { padding: 3rem 0; }

  body.homepage-v3 #header,
  body.homepage-v3 .publication-masthead {
    grid-template-columns: 1fr auto;
    min-height: 3.8rem;
  }
  body.homepage-v3 .publication-utility { display: none; }
  body.homepage-v3 .publication-menu-toggle {
    display: inline-flex;
    padding: 0 0 0.2rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-article-card img,
  .home-destination-card img { transition: none; }
}

/* Compact homepage navigation; the hero and page content are unchanged. */
body.homepage-v3 .publication-partnership { padding: 0.5rem 0.8rem; }
@media (max-width: 980px) {
  body.homepage-v3 #header { grid-template-columns: 1fr auto auto; column-gap: 0.65rem; }
  body.homepage-v3 .publication-utility { display: flex; grid-column: 2; grid-row: 1; }
  body.homepage-v3 .publication-menu-toggle { grid-column: 3; grid-row: 1; }
}

/* Give the practical guides the same photo-card treatment as featured stories. */
.home-guides .home-heading-row h2 { max-width: none; }
@media (min-width: 981px) {
  body.homepage-v3 #header { grid-template-columns: minmax(8rem, 1fr) minmax(0, 4fr) minmax(8rem, 1fr); }
  body.homepage-v3 .publication-nav { width: 100%; justify-content: space-evenly; gap: 1rem; padding-inline: 1rem; }
  body.homepage-v3 .publication-nav a { font-size: 0.78rem; letter-spacing: 0.075em; white-space: nowrap; }
}
