/*
Theme Name: Normal Travels
Theme URI: https://normaltravels.com/
Author: Normal Travels
Description: Lightweight block theme for practical travel logistics and route guides.
Version: 0.5.32
Requires at least: 6.7
Requires PHP: 8.1
License: GPL-2.0-or-later
Text Domain: normal-travels
*/

:root {
  --nt-border: #dedede;
  --nt-muted: #666;
  --nt-soft: #f5f5f2;
  --nt-ink: #151515;
  --nt-rail-bg: #edf8f1;
  --nt-rail-accent: #2f9e44;
  --nt-air-bg: #eef4ff;
  --nt-air-accent: #3b82f6;
  --nt-road-bg: #fff6df;
  --nt-road-accent: #d79a00;
  --nt-water-bg: #ecfeff;
  --nt-water-accent: #0891b2;
}


/* Keep the principal article blocks on the same editorial measure. */
.nt-featured-image,
.nt-route-summary,
.nt-route-map {
  width: 100%;
  max-width: 760px;
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
}

body { text-rendering: optimizeLegibility; }
a { text-underline-offset: .16em; }

.nt-route-summary {
  border: 1px solid var(--nt-border);
  border-radius: 14px;
  padding: clamp(1rem, 2.5vw, 1.5rem);
  margin: 1.5rem 0 2rem;
  background: var(--nt-soft);
}
.nt-route-summary__route {
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  font-weight: 750;
  margin-bottom: .7rem;
}
.nt-route-summary__answer {
  display: grid;
  gap: .25rem;
  font-size: 1.04rem;
  line-height: 1.55;
}
.nt-route-summary__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.25rem;
  border-top: 1px solid var(--nt-border);
  margin-top: 1rem;
  padding-top: .8rem;
  color: var(--nt-muted);
  font-size: .9rem;
}

.wp-block-post-content table {
  width: 100%;
  border-collapse: collapse;
  font-size: .96rem;
}
.wp-block-post-content th,
.wp-block-post-content td {
  padding: .72rem .75rem;
  border-bottom: 1px solid var(--nt-border);
  vertical-align: top;
}
.wp-block-post-content th { text-align: left; }
.wp-block-post-content h2 { margin-top: 2.2em; }
.wp-block-post-content h3 { margin-top: 1.7em; }

.nt-site-header { border-bottom: 1px solid var(--nt-border); }
.nt-site-footer { border-top: 1px solid var(--nt-border); }
.nt-footer-affiliate-note { color: var(--nt-muted); font-size: .78rem; line-height: 1.45; margin: .35rem 0 0; }


/* Article v2: stronger visual hierarchy without locking the brand to a heavy page builder. */
.nt-featured-image {
  margin: 1.4rem 0 1.9rem;
  overflow: hidden;
  border-radius: 18px;
  border: 1px solid var(--nt-border);
}
.nt-featured-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}




.nt-route-map {
  margin: -.35rem 0 1.5rem;
}
.nt-route-map__canvas {
  position: relative;
  min-height: 148px;
  border: 1px solid var(--nt-border);
  border-radius: 16px;
  background: linear-gradient(180deg, #fbfbf8 0%, #f7f6f1 100%);
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(0,0,0,.025);
}
.nt-route-map__canvas::before,
.nt-route-map__canvas::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.nt-route-map__canvas::before {
  background:
    linear-gradient(rgba(0,0,0,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,0,0,.03) 1px, transparent 1px);
  background-size: 42px 42px;
  opacity: .45;
}
.nt-route-map__canvas::after {
  background: linear-gradient(180deg, rgba(255,255,255,.2), rgba(255,255,255,0));
}
.nt-route-map__distance {
  position: absolute;
  top: 12px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  color: var(--nt-muted);
  font-size: .82rem;
  font-weight: 700;
  text-align: center;
  white-space: nowrap;
  padding: .34rem .72rem;
  border: 1px solid var(--nt-border);
  border-radius: 999px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 4px 10px rgba(0,0,0,.03);
}
.nt-route-map__svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.nt-route-map__route {
  stroke: rgba(38, 38, 38, .7);
  stroke-width: 1;
  stroke-linecap: round;
  stroke-dasharray: 2 2;
}
.nt-route-map__marker {
  position: absolute;
  z-index: 4;
  width: 0;
  height: 0;
  transform: translateY(-4px);
}
.nt-route-map__label {
  position: absolute;
  top: 22px;
  left: 50%;
  transform: translateX(-50%);
  display: block;
  width: max-content;
  max-width: 150px;
  text-align: center;
  font-size: .9rem;
  line-height: 1.15;
  font-weight: 760;
  color: var(--nt-ink);
  white-space: nowrap;
}
.nt-route-map__pin {
  position: absolute;
  top: -16px;
  left: 0;
  transform: translate(-50%, -50%) rotate(-45deg);
  width: 28px;
  height: 28px;
  border-radius: 50% 50% 50% 0;
  box-shadow: 0 0 0 4px rgba(255,255,255,.95);
}
.nt-route-map__pin::after {
  content: "";
  position: absolute;
  top: 6px;
  left: 6px;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #fff;
}
.nt-route-map__marker--from .nt-route-map__pin {
  background: #2f9e44;
}
.nt-route-map__marker--to .nt-route-map__pin {
  background: #e03131;
}
@media (max-width: 760px) {
  .nt-route-map__canvas {
    min-height: 138px;
  }
  .nt-route-map__distance {
    font-size: .75rem;
    top: 10px;
    padding: .3rem .58rem;
  }
  .nt-route-map__label {
    top: 21px;
    max-width: 112px;
    font-size: .82rem;
  }
  .nt-route-map__pin {
    width: 26px;
    height: 26px;
  }
  .nt-route-map__pin::after {
    top: 5px;
    left: 5px;
    width: 14px;
    height: 14px;
  }
}
@media (max-width: 460px) {
  .nt-route-map__canvas {
    min-height: 132px;
  }
  .nt-route-map__label {
    top: 20px;
    max-width: 92px;
    font-size: .78rem;
  }
  .nt-route-map__distance {
    max-width: calc(100% - 24px);
    white-space: normal;
    line-height: 1.15;
  }
}

.nt-option-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .9rem;
  margin: 1rem 0 1.5rem;
}
.nt-option-card {
  border: 1px solid var(--nt-border);
  border-radius: 16px;
  padding: 1rem;
  background: #fff;
  box-shadow: 0 8px 24px rgba(0,0,0,.045);
}
.nt-option-card.nt-mode--rail { background: var(--nt-rail-bg); border-color: rgba(47,158,68,.20); }
.nt-option-card.nt-mode--air { background: var(--nt-air-bg); border-color: rgba(59,130,246,.20); }
.nt-option-card.nt-mode--road { background: var(--nt-road-bg); border-color: rgba(215,154,0,.22); }
.nt-option-card.nt-mode--water,
.nt-option-card.nt-mode--ferry { background: var(--nt-water-bg); border-color: rgba(8,145,178,.22); }
.nt-option-kicker {
  display: flex;
  align-items: center;
  gap: .38rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .72rem;
  font-weight: 850;
  color: var(--nt-muted);
}
.nt-choice-icon {
  display: inline-flex;
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  color: currentColor;
}
.nt-choice-icon svg { width: 100%; height: 100%; display: block; }
.nt-option-card h3 { margin: .35rem 0 .55rem; font-size: 1.2rem; }
.nt-option-stats {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-bottom: .55rem;
}
.nt-option-stats span {
  display: inline-block;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 999px;
  padding: .25rem .5rem;
  background: rgba(255,255,255,.75);
  font-size: .83rem;
  font-weight: 700;
}
.nt-option-card p { margin: 0; font-size: .92rem; line-height: 1.55; }

.nt-destination-intro {
  margin: 1.75rem 0;
  padding: 1.1rem 1.2rem;
  border-left: 5px solid var(--nt-ink);
  background: var(--nt-soft);
  border-radius: 0 14px 14px 0;
}
.nt-destination-intro h2 { margin-top: 0 !important; font-size: 1.45rem; }
.nt-destination-intro p:last-child { margin-bottom: 0; }

.wp-block-post-content .wp-block-table {
  overflow-x: auto;
  border: 1px solid #deded8;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(0,0,0,.025);
}
.wp-block-post-content .wp-block-table table {
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
}
.wp-block-post-content table thead th {
  color: var(--nt-ink);
  background: #f4f4f0;
  border-bottom: 1px solid #d9d9d2;
  font-size: .88rem;
  font-weight: 800;
  line-height: 1.25;
}
.wp-block-post-content table thead th + th,
.wp-block-post-content table tbody td + td {
  border-left: 1px solid #ecece7;
}
.wp-block-post-content table tbody td {
  background: #fff;
}
.wp-block-post-content table tbody tr:nth-child(even) td {
  background: #fbfbf8;
}
.wp-block-post-content table tbody tr:hover td {
  background: #f7f7f2;
}
.wp-block-post-content table tbody td:first-child {
  font-weight: 700;
}
.wp-block-post-content table tbody tr:last-child td {
  border-bottom: 0;
}


.wp-block-post-content table tbody tr.nt-mode--rail td { background: #f5fbf7; }
.wp-block-post-content table tbody tr.nt-mode--air td { background: #f5f8ff; }
.wp-block-post-content table tbody tr.nt-mode--road td { background: #fffaf0; }
.wp-block-post-content table tbody tr.nt-mode--water td,
.wp-block-post-content table tbody tr.nt-mode--ferry td { background: #f2fdff; }
.wp-block-post-content table tbody tr.nt-mode--rail td:first-child { box-shadow: inset 4px 0 0 var(--nt-rail-accent); }
.wp-block-post-content table tbody tr.nt-mode--air td:first-child { box-shadow: inset 4px 0 0 var(--nt-air-accent); }
.wp-block-post-content table tbody tr.nt-mode--road td:first-child { box-shadow: inset 4px 0 0 var(--nt-road-accent); }
.wp-block-post-content table tbody tr.nt-mode--water td:first-child,
.wp-block-post-content table tbody tr.nt-mode--ferry td:first-child { box-shadow: inset 4px 0 0 var(--nt-water-accent); }
.wp-block-post-content table tbody tr.nt-mode--rail:hover td { background: #eef8f1; }
.wp-block-post-content table tbody tr.nt-mode--air:hover td { background: #eef4ff; }
.wp-block-post-content table tbody tr.nt-mode--road:hover td { background: #fff6df; }
.wp-block-post-content table tbody tr.nt-mode--water:hover td,
.wp-block-post-content table tbody tr.nt-mode--ferry:hover td { background: #ecfeff; }

.nt-info-link .wp-block-button__link {
  background: transparent;
  color: var(--nt-ink);
  border: 1px solid var(--nt-ink);
}

@media (max-width: 760px) {
  .nt-option-grid { grid-template-columns: 1fr; }
  .nt-route-visual__labels {
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: .45rem;
    font-size: .95rem;
  }
  .nt-route-visual__distance {
    grid-column: auto;
    grid-row: auto;
    font-size: .74rem;
    padding: .25rem .45rem;
  }
}

@media (max-width: 460px) {
  .nt-route-visual__labels { grid-template-columns: 1fr; text-align: center; }
  .nt-route-visual__labels > :last-child { text-align: center; }
  .nt-route-visual__distance { justify-self: center; }
  .nt-route-visual__track { margin-top: .65rem; }
}


/* Table refinement v0.5.2: softer editorial grid, no heavy black borders. */
.wp-block-post-content .wp-block-table {
  border-color: #d8d8d1 !important;
}
.wp-block-post-content .wp-block-table table,
.wp-block-post-content .wp-block-table th,
.wp-block-post-content .wp-block-table td {
  border-color: #d7d7d0 !important;
}
.wp-block-post-content .wp-block-table th,
.wp-block-post-content .wp-block-table td {
  border-width: 0 0 1px 0 !important;
  border-style: solid !important;
}
.wp-block-post-content .wp-block-table th + th,
.wp-block-post-content .wp-block-table td + td {
  border-left: 1px solid #deded8 !important;
}
.wp-block-post-content .wp-block-table thead th {
  border-bottom: 1px solid #cfcfc8 !important;
}
.wp-block-post-content .wp-block-table tbody tr:last-child td {
  border-bottom: 0 !important;
}


/* Distance-aware route visual: keep endpoint labels readable on the widest bands. */
.nt-route-map--wide .nt-route-map__marker--from .nt-route-map__label {
  transform: translateX(-25%);
}
.nt-route-map--wide .nt-route-map__marker--to .nt-route-map__label {
  transform: translateX(-75%);
}
.nt-route-map--very-wide .nt-route-map__marker--from .nt-route-map__label {
  transform: translateX(-10%);
}
.nt-route-map--very-wide .nt-route-map__marker--to .nt-route-map__label {
  transform: translateX(-90%);
}
@media (max-width: 760px) {
  .nt-route-map--wide .nt-route-map__marker--from .nt-route-map__label,
  .nt-route-map--very-wide .nt-route-map__marker--from .nt-route-map__label {
    transform: translateX(0);
  }
  .nt-route-map--wide .nt-route-map__marker--to .nt-route-map__label,
  .nt-route-map--very-wide .nt-route-map__marker--to .nt-route-map__label {
    transform: translateX(-100%);
  }
}

/* Global editorial navigation: restrict layout changes to the site header. */
.nt-site-header .nt-global-navigation { font-size: .94rem; }
.nt-site-header .nt-global-navigation .wp-block-navigation-item__content {
  text-decoration: none;
  font-weight: 650;
}
.nt-site-header .nt-global-navigation .wp-block-navigation-item__content:hover,
.nt-site-header .nt-global-navigation .wp-block-navigation-item__content:focus-visible {
  text-decoration: underline;
  text-underline-offset: .22em;
}
.nt-category-empty { color: var(--nt-muted); margin-top: 1.25rem; }


/* 0.5.8: The Destinations plugin renders block template parts in a standalone
   PHP document. Supply the narrow layout and typography rules that WordPress
   normally establishes for the header in block-template pages. */
body.ntd-virtual-page .nt-site-header > .wp-block-group.alignwide {
  box-sizing: border-box;
  width: min(100%, 1180px);
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .8rem 1.5rem;
}
body.ntd-virtual-page .nt-site-header .wp-block-site-title {
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 1.35;
  text-transform: uppercase;
  letter-spacing: .03em;
  margin: 0;
}
body.ntd-virtual-page .nt-site-header .wp-block-site-title a {
  color: var(--nt-ink);
  font-weight: inherit;
  text-decoration: none;
}
body.ntd-virtual-page .nt-site-header .nt-global-navigation {
  margin-left: auto;
}
body.ntd-virtual-page .nt-site-header .nt-global-navigation .wp-block-navigation-item__content {
  color: var(--nt-ink);
}

/* Keep the default Gutenberg Navigation behavior, but give its mobile overlay
   explicit colors, stacking and visible links. This is scoped to the one site
   menu, not the article body or unrelated navigation blocks. */
.nt-site-header .nt-global-navigation .wp-block-navigation__responsive-container.is-menu-open {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  box-sizing: border-box;
  background: #fff !important;
  color: var(--nt-ink) !important;
  padding: clamp(1rem, 4vw, 2rem);
}
.nt-site-header .nt-global-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  padding-top: 3rem;
  width: 100%;
}
.nt-site-header .nt-global-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: .85rem;
  width: 100%;
}
.nt-site-header .nt-global-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  display: block;
  color: var(--nt-ink) !important;
  font-size: 1.1rem;
  font-weight: 650;
  line-height: 1.5;
  padding: .3rem 0;
  text-decoration: none;
}
.nt-site-header .nt-global-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--nt-ink) !important;
  background: transparent;
  cursor: pointer;
  margin-left: auto;
}
.nt-site-header .nt-global-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
  fill: currentColor;
}

/* Standalone Destinations pages must retain the normal mobile hamburger if
   the global block layout rules are not generated for the PHP view. */
@media (max-width: 599px) {
  body.ntd-virtual-page .nt-site-header > .wp-block-group.alignwide {
    flex-wrap: nowrap;
  }
  body.ntd-virtual-page .nt-site-header .nt-global-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: none;
  }
  body.ntd-virtual-page .nt-site-header .nt-global-navigation .wp-block-navigation__responsive-container-open {
    display: flex;
    color: var(--nt-ink);
    background: transparent;
    cursor: pointer;
  }
}

/* Homepage 0.5.9: compact, read-only destination and route cards.
   Completely scoped to the front-page template; route article v1 unaffected. */
.nt-homepage { margin-block-start: 0; }
.nt-home {
  width: min(100%, 1180px);
  box-sizing: border-box;
  padding: 0 clamp(1rem, 3vw, 2rem);
  margin-inline: auto;
}
.nt-home *, .nt-home *::before, .nt-home *::after { box-sizing: border-box; }
.nt-home a { text-decoration: none; color: inherit; }
.nt-home a:focus-visible { outline: 3px solid #336b46; outline-offset: 3px; }
.nt-home-hero {
  padding: clamp(2.2rem, 5vw, 4rem) 0 clamp(2.25rem, 5vw, 4rem);
  border-bottom: 1px solid var(--nt-border);
}
.nt-home-hero h1 {
  font-size: clamp(2.1rem, 4.5vw, 3.65rem);
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: -.035em;
  max-width: 860px;
  margin: 0 0 .8rem;
}
.nt-home-hero > p {
  font-size: clamp(1rem, 1.6vw, 1.2rem);
  color: var(--nt-muted);
  line-height: 1.65;
  max-width: 690px;
  margin: 0;
}
.nt-home-section { padding: clamp(2.15rem, 4vw, 3.4rem) 0 0; }
.nt-home-section-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .35rem 1.2rem;
  margin-bottom: 1.2rem;
}
.nt-home-section-heading h2 {
  font-size: clamp(1.45rem, 2.6vw, 2rem);
  line-height: 1.18;
  letter-spacing: -.02em;
  margin: 0;
}
.nt-home .nt-home-section-link {
  font-size: .9rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .22em;
}
.nt-home-destination-grid, .nt-home-route-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.nt-home .nt-home-destination-card {
  display: flex;
  position: relative;
  flex-direction: column;
  justify-content: center;
  gap: .3rem;
  min-height: 115px;
  padding: 1.2rem 3rem 1.2rem 1.25rem;
  border: 1px solid #dfdfd9;
  border-radius: 14px;
  background: #f7f7f4;
  transition: border-color .15s ease, background .15s ease;
}
.nt-home .nt-home-destination-card:hover { background: #f0f0eb; border-color: #bdbdb4; }
.nt-home-destination-card__name { font-size: 1.12rem; font-weight: 800; line-height: 1.3; }
.nt-home-destination-card__meta { color: var(--nt-muted); font-size: .85rem; line-height: 1.45; }
.nt-home-destination-card__arrow { position: absolute; right: 1.15rem; top: 1.08rem; font-size: 1.2rem; line-height: 1; }
.nt-home-route-card { min-width: 0; border: 1px solid #deded8; border-radius: 15px; background: #fff; overflow: hidden; }
.nt-home .nt-home-route-card__link { display: flex; flex-direction: column; height: 100%; }
.nt-home-route-card:hover { border-color: #aaaaa2; box-shadow: 0 6px 18px rgba(0,0,0,.035); }
.nt-home-route-card__image { width: 100%; aspect-ratio: 16/9; overflow: hidden; background: var(--nt-soft); }
.nt-home-route-card__image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nt-home-route-card__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; gap: .55rem; padding: 1.15rem 1.2rem 1.2rem; }
.nt-home-route-card__eyebrow { color: var(--nt-muted); text-transform: uppercase; letter-spacing: .07em; font-weight: 750; font-size: .7rem; line-height: 1.4; margin: 0; }
.nt-home-route-card h3 { font-size: 1.13rem; line-height: 1.36; font-weight: 750; overflow-wrap: anywhere; margin: 0; }
.nt-home-route-card__cta { margin-top: auto; padding-top: .5rem; color: var(--nt-ink); text-decoration: underline; text-underline-offset: .18em; font-size: .86rem; font-weight: 700; }
.nt-home-resource-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.nt-home .nt-home-resource-card { display: flex; flex-direction: column; position: relative; gap: .4rem; min-height: 122px; padding: 1.25rem 3rem 1.25rem 1.3rem; border: 1px solid #deded8; border-radius: 14px; background: #fff; }
.nt-home a.nt-home-resource-card:hover { background: var(--nt-soft); border-color: #aaa; }
.nt-home-resource-card strong { font-size: 1.13rem; font-weight: 800; line-height: 1.3; }
.nt-home-resource-card > span:not(.nt-home-resource-card__arrow) { color: var(--nt-muted); font-size: .9rem; line-height: 1.6; }
.nt-home-resource-card__arrow { position: absolute; top: 1.2rem; right: 1.25rem; font-size: 1.2rem; }
.nt-home-empty { color: var(--nt-muted); font-size: .94rem; margin: .6rem 0 0; }
.nt-home-section--resources { padding-bottom: clamp(1rem, 2vw, 2.5rem); }
@media (max-width: 920px) {
  .nt-home-destination-grid, .nt-home-route-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 599px) {
  .nt-home-destination-grid, .nt-home-route-grid, .nt-home-resource-grid { grid-template-columns: 1fr; gap: .75rem; }
  .nt-home-hero { padding-top: 2.3rem; }
  .nt-home .nt-home-destination-card { min-height: 95px; }
  .nt-home-route-card__body { padding: 1.05rem; }
}
/* Keep available route photos compact rather than making individual cards tall. */
.nt-home .nt-home-route-card__link { flex-direction: row; align-items: stretch; }
.nt-home-route-card__image {
  flex: 0 0 34%;
  width: 34%;
  min-height: 138px;
  aspect-ratio: auto;
}
.nt-home-route-card__body { min-width: 0; }

/* 0.5.11: Category archives (Routes, Guides, Travel Tips) use the same
   restrained editorial cards as the homepage. Other archive types and single
   Routes continue to use their unchanged templates and CSS. */
.nt-category-archive {
  box-sizing: border-box;
  width: min(100% - 2rem, 1100px);
  margin-inline: auto;
  padding-block: clamp(2.3rem, 4.5vw, 3.6rem) clamp(3rem, 5vw, 4.5rem);
}
.nt-category-archive *, .nt-category-archive *::before, .nt-category-archive *::after {
  box-sizing: border-box;
}
.nt-category-archive > .wp-block-query-title {
  font-size: clamp(2.1rem, 4.5vw, 3.65rem);
  line-height: 1.1;
  letter-spacing: -.03em;
  font-weight: 800;
  margin: 0 0 .7rem;
}
.nt-category-archive > .wp-block-term-description {
  color: var(--nt-muted);
  font-size: 1.03rem;
  line-height: 1.6;
  margin: 0 0 2rem;
}
.nt-category-archive .nt-category-archive__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  list-style: none;
  gap: 1rem;
  padding: 0;
  margin: 1.6rem 0 0;
}
.nt-category-archive__grid > .wp-block-post { min-width: 0; margin: 0; }
.nt-category-archive .nt-category-archive__card {
  position: relative;
  display: flex;
  align-items: stretch;
  height: 100%;
  min-height: 174px;
  min-width: 0;
  margin: 0;
  border: 1px solid #deded8;
  border-radius: 15px;
  background: #fff;
  overflow: hidden;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.nt-category-archive .nt-category-archive__card:hover {
  border-color: #aaaaa2;
  box-shadow: 0 6px 18px rgba(0,0,0,.035);
}
.nt-category-archive .nt-category-archive__card:focus-within {
  outline: 3px solid #336b46;
  outline-offset: 3px;
}
.nt-category-archive .nt-category-archive__image {
  flex: 0 0 34%;
  width: 34%;
  min-width: 0;
  margin: 0;
  background: var(--nt-soft);
  overflow: hidden;
}
.nt-category-archive .nt-category-archive__image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 174px;
  object-fit: cover;
}
.nt-category-archive .nt-category-archive__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  gap: .6rem;
  min-width: 0;
  margin: 0;
  padding: 1.15rem 1.2rem 1.2rem;
}
.nt-category-archive .nt-category-archive__body > * { margin-block-start: 0; }
.nt-category-archive .nt-category-archive__title {
  font-size: 1.13rem !important;
  font-weight: 750;
  line-height: 1.35;
  letter-spacing: 0;
  overflow-wrap: anywhere;
  margin: 0;
}
.nt-category-archive .nt-category-archive__title a {
  color: var(--nt-ink);
  text-decoration: none;
}
/* A single descriptive title link makes every part of the card clickable. */
.nt-category-archive .nt-category-archive__title a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
.nt-category-archive .nt-category-archive__title a:focus-visible { outline: none; }
.nt-category-archive .nt-category-archive__excerpt {
  color: var(--nt-muted);
  font-size: .9rem;
  line-height: 1.55;
  margin: 0;
}
.nt-category-archive .nt-category-archive__excerpt .wp-block-post-excerpt__excerpt {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  margin: 0;
}
/* Suppress the redundant second link generated by some WordPress versions. */
.nt-category-archive .nt-category-archive__excerpt .wp-block-post-excerpt__more-text { display: none; }
.nt-category-archive .nt-category-archive__cta {
  color: var(--nt-ink);
  font-size: .86rem;
  font-weight: 700;
  line-height: 1.4;
  margin: auto 0 0;
  padding-top: .25rem;
  text-decoration: underline;
  text-underline-offset: .18em;
}
.nt-category-archive .wp-block-query-pagination {
  margin-top: 2rem;
  gap: 1rem;
  flex-wrap: wrap;
}
.nt-category-archive .nt-category-empty { margin-top: 1.5rem; }
@media (max-width: 760px) {
  .nt-category-archive .nt-category-archive__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 420px) {
  .nt-category-archive .nt-category-archive__image { flex-basis: 32%; width: 32%; }
  .nt-category-archive .nt-category-archive__body { padding: 1rem; }
  .nt-category-archive .nt-category-archive__title { font-size: 1.05rem !important; }
  .nt-category-archive .nt-category-archive__excerpt { font-size: .86rem; }
}
@media (prefers-reduced-motion: reduce) {
  .nt-category-archive .nt-category-archive__card { transition: none; }
}


/* 0.5.13: Compact, accessible native search toggle in the global header.
   The revealed form is a full-width panel BELOW the header, not inside the menu. */
.nt-site-header { position: relative; }
.nt-site-header .nt-header-actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(.45rem, 1.5vw, 1rem);
  margin-left: auto;
}
.nt-site-header .nt-header-actions > .wp-block-shortcode { margin: 0; }
.nt-site-header .nt-header-search { display: block; margin: 0; }
.nt-site-header .nt-header-search__toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 7px;
  border: 1px solid transparent;
  border-radius: 9px;
  color: var(--nt-ink);
  background: transparent;
  cursor: pointer;
  box-sizing: border-box;
  list-style: none;
}
.nt-site-header .nt-header-search__toggle::-webkit-details-marker { display: none; }
.nt-site-header .nt-header-search__toggle::marker { content: ''; }
.nt-site-header .nt-header-search__toggle:hover,
.nt-site-header .nt-header-search[open] .nt-header-search__toggle {
  background: var(--nt-soft);
  border-color: var(--nt-border);
}
.nt-site-header .nt-header-search__toggle:focus-visible,
.nt-site-header .nt-header-search__input:focus-visible,
.nt-site-header .nt-header-search__submit:focus-visible {
  outline: 3px solid #336b46;
  outline-offset: 3px;
}
.nt-site-header .nt-header-search__icon { width: 21px; height: 21px; }
.nt-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.nt-site-header .nt-header-search__panel {
  position: absolute;
  top: calc(100% + 1px);
  left: 0;
  right: 0;
  z-index: 1000;
  box-sizing: border-box;
  padding: 1rem max(1rem, calc((100% - 1180px) / 2));
  background: #fff;
  border-bottom: 1px solid var(--nt-border);
  box-shadow: 0 12px 20px rgba(0,0,0,.08);
}
.nt-site-header .nt-header-search__form { max-width: 760px; margin: 0 auto; }
.nt-site-header .nt-header-search__label {
  display: block;
  font-weight: 700;
  font-size: .92rem;
  margin-bottom: .55rem;
}
.nt-site-header .nt-header-search__controls { display: flex; gap: .6rem; }
.nt-site-header .nt-header-search__input {
  box-sizing: border-box;
  flex: 1;
  min-width: 0;
  width: 100%;
  min-height: 44px;
  padding: .72rem .9rem;
  font: inherit;
  border: 1px solid #999;
  border-radius: 8px;
  color: var(--nt-ink);
  background: #fff;
}
.nt-site-header .nt-header-search__submit {
  min-height: 44px;
  padding: .7rem 1.2rem;
  border: 1px solid var(--nt-ink);
  border-radius: 8px;
  background: var(--nt-ink);
  color: #fff;
  font: inherit;
  font-size: .92rem;
  font-weight: 700;
  cursor: pointer;
}
.nt-site-header .nt-header-search__submit:hover { background: #343434; }
@media (max-width: 599px) {
  .nt-site-header .nt-header-actions { gap: .2rem; }
  .nt-site-header .nt-header-search__toggle { width: 40px; height: 40px; }
  .nt-site-header .nt-header-search__panel { padding: 1rem; }
  .nt-site-header .nt-header-search__submit { padding-inline: .9rem; }
}

/* Search results reuse the approved category cards with native WP pagination. */
.nt-search-results > .nt-search-results__form { max-width: 760px; margin: 1rem 0 1.7rem; }
.nt-search-results .nt-search-results__form .wp-block-search__inside-wrapper {
  gap: .6rem;
}
.nt-search-results .nt-search-results__form .wp-block-search__input {
  min-height: 44px;
  border: 1px solid #999;
  border-radius: 8px;
  font: inherit;
}
.nt-search-results .nt-search-results__form .wp-block-search__button {
  min-height: 44px;
  margin: 0;
  border-radius: 8px;
  background: var(--nt-ink);
  color: #fff;
  border: 1px solid var(--nt-ink);
}
.nt-search-results .nt-search-results__empty {
  margin-block: 1.7rem 0;
  color: var(--nt-muted);
}
@media (max-width: 420px) {
  .nt-search-results .nt-search-results__form .wp-block-search__inside-wrapper { flex-wrap: wrap; }
  .nt-search-results .nt-search-results__form .wp-block-search__input { width: 100%; }
}

/* 0.5.14 — Editorial homepage only. Existing article / archive / navigation styles are unchanged. */
.nt-homepage > .wp-block-shortcode,
.nt-homepage > .wp-block-group > .wp-block-shortcode {
  max-width: none !important;
  width: 100% !important;
  margin-inline: auto;
}
.nt-home--editorial { max-width: 1180px; }
.nt-home--editorial .nt-home-section {
  padding-top: clamp(2.9rem, 5vw, 4.5rem);
}
.nt-home--editorial .nt-home-section-heading { margin-bottom: .55rem; }
.nt-h14-section-lead {
  font-size: .98rem;
  line-height: 1.55;
  color: var(--nt-muted);
  margin: 0 0 1.65rem;
  max-width: 690px;
}
.nt-h14-eyebrow {
  font-size: .74rem;
  letter-spacing: .11em;
  text-transform: uppercase;
  font-weight: 800;
}
.nt-h14-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  align-items: center;
  column-gap: clamp(2rem, 5vw, 5.2rem);
  padding: clamp(2.7rem, 5vw, 5rem) 0 clamp(3rem, 5vw, 5rem);
  border-bottom: 1px solid var(--nt-border);
}
.nt-h14-hero__copy { min-width: 0; }
.nt-h14-hero__copy > .nt-h14-eyebrow { display: block; color: #557a77; margin: 0 0 1.25rem; }
.nt-h14-hero h1 {
  font-size: clamp(2.8rem, 5.1vw, 5rem);
  font-weight: 830;
  line-height: 1.04;
  letter-spacing: -.046em;
  margin: 0 0 1.15rem;
  max-width: 700px;
}
.nt-h14-hero__subtitle { font-size: clamp(1.11rem, 1.6vw, 1.3rem); line-height: 1.5; font-weight: 620; margin: 0 0 1rem; }
.nt-h14-hero__intro { color: #505453; font-size: 1.01rem; line-height: 1.77; max-width: 570px; margin: 0; }
.nt-h14-hero__image { position: relative; min-height: 405px; height: 100%; max-height: 540px; overflow: hidden; border-radius: 22px; background: #dce9e5; }
.nt-home--editorial .nt-home-img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nt-h14-hero__image .nt-home-img { width: 100%; height: 100%; min-height: 405px; }
.nt-h14-hero__image::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(135deg, transparent 75%, rgba(0,0,0,.08)); }

/* Destinations: one image-led featured card plus four horizontal photograph cards. */
.nt-h14-destinations { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 1.1rem; align-items: stretch; }
.nt-h14-destinations__secondary { display: grid; grid-template-columns: minmax(0, 1fr); gap: .8rem; }
.nt-home--editorial .nt-h14-destination {
  display: flex; min-width: 0; position: relative; overflow: hidden; border: 1px solid #deded8;
  background: #f6f6f3; border-radius: 16px; transition: box-shadow .2s ease, transform .2s ease;
}
.nt-home--editorial .nt-h14-destination:hover,
.nt-home--editorial .nt-h14-route:hover,
.nt-home--editorial .nt-h14-resource__card:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(12,25,25,.085); }
.nt-h14-destination__image { display: block; flex-shrink: 0; overflow: hidden; background: #dce9e5; }
.nt-h14-destination__body { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.nt-h14-destination__name { font-size: 1.12rem; line-height: 1.22; font-weight: 800; }
.nt-h14-destination__count { color: #686e6b; font-size: .85rem; margin-top: .3rem; }
.nt-h14-destination__action { display: block; font-size: .81rem; font-weight: 750; margin-top: .65rem; }
.nt-h14-destination--featured { min-height: 510px; }
.nt-h14-destination--featured .nt-h14-destination__image { position: absolute; inset: 0; width: 100%; }
.nt-h14-destination--featured::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to top, rgba(13, 31, 30, .86), rgba(13,31,30,.05) 68%);
}
.nt-h14-destination--featured .nt-h14-destination__body { position: absolute; z-index: 1; bottom: 0; left: 0; right: 0; color: #fff; padding: 2rem; }
.nt-h14-destination--featured .nt-h14-destination__name { font-size: clamp(2rem, 3vw, 2.8rem); line-height: 1.1; }
.nt-h14-destination--featured .nt-h14-eyebrow { color: #dcf6ec; margin-bottom: .6rem; }
.nt-h14-destination--featured .nt-h14-destination__count { color: #f1f3ef; font-size: .94rem; }
.nt-h14-destination--featured .nt-h14-destination__action { margin-top: 1rem; text-decoration: underline; text-underline-offset: .25em; }
.nt-h14-destination--small { min-height: 118px; }
.nt-h14-destination--small .nt-h14-destination__image { width: 34%; min-height: 118px; }
.nt-h14-destination--small .nt-h14-destination__body { padding: .7rem 1.1rem; }
.nt-h14-destination--small .nt-h14-destination__action { color: #3d6963; }

/* Routes: image-rich but with strong practical titles and direct calls to action. */
.nt-h14-routes { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 1.1rem; align-items: stretch; }
.nt-h14-routes__secondary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.nt-h14-route { display: block; min-width: 0; overflow: hidden; background: #fff; border: 1px solid #deded8; border-radius: 16px; transition: box-shadow .2s ease, transform .2s ease; }
.nt-home--editorial .nt-h14-route > a { display: flex; flex-direction: column; height: 100%; color: var(--nt-ink); }
.nt-h14-route__image { display: block; overflow: hidden; background: #deece8; }
.nt-h14-route__body { display: flex; align-items: flex-start; flex-direction: column; flex: 1; min-width: 0; }
.nt-h14-route__category { color: #6c7774; text-transform: uppercase; letter-spacing: .05em; font-weight: 800; font-size: .66rem; line-height: 1.45; }
.nt-h14-route__title { font-size: 1.08rem; font-weight: 800; line-height: 1.3; overflow-wrap: anywhere; }
.nt-h14-route__action { display: block; text-decoration: underline; text-underline-offset: .2em; font-size: .83rem; font-weight: 750; margin-top: auto; padding-top: .8rem; }
.nt-h14-route--featured .nt-h14-route__image { height: 270px; }
.nt-h14-route--featured .nt-h14-route__body { padding: 1.65rem; gap: .6rem; }
.nt-h14-route--featured .nt-h14-eyebrow { color: #4b7971; }
.nt-h14-route--featured .nt-h14-route__title { font-size: clamp(1.55rem, 2.4vw, 2.2rem); }
.nt-h14-route--featured .nt-h14-route__excerpt { color: #5d625e; font-size: .95rem; line-height: 1.6; }
.nt-h14-route--small .nt-h14-route__image { height: 117px; }
.nt-h14-route--small .nt-h14-route__body { padding: .95rem 1.05rem 1.1rem; gap: .45rem; }
.nt-h14-route--small .nt-h14-route__title { font-size: .99rem; }

/* Guides and Travel Tips each occupy half of the available width.
   Each uses a 2-column, 6-post photographic grid when posts are published. */
.nt-h14-resources { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; }
.nt-h14-resource { border: 1px solid #dfdfd9; border-radius: 17px; padding: clamp(1rem, 2vw, 1.55rem); min-width: 0; }
.nt-h14-resource__heading { display: flex; justify-content: space-between; align-items: flex-start; gap: .8rem; margin-bottom: 1.1rem; }
.nt-h14-resource__heading h3 { font-size: 1.4rem; line-height: 1.2; letter-spacing: -.025em; margin: 0 0 .4rem; }
.nt-h14-resource__heading p { color: var(--nt-muted); font-size: .86rem; line-height: 1.5; margin: 0; }
.nt-home--editorial .nt-h14-resource__heading a { white-space: nowrap; font-size: .81rem; font-weight: 750; text-decoration: underline; text-underline-offset: .2em; }
.nt-h14-resource__articles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem .8rem; }
.nt-h14-resource__card { min-width: 0; border-radius: 10px; overflow: hidden; transition: box-shadow .2s ease, transform .2s ease; }
.nt-home--editorial .nt-h14-resource__card a { display: block; }
.nt-h14-resource__image { display: block; width: 100%; aspect-ratio: 4/3; background: #dce9e5; border-radius: 10px; overflow: hidden; }
.nt-h14-resource__card strong { display: block; font-size: .88rem; font-weight: 780; line-height: 1.38; padding: .55rem .05rem .1rem; }
.nt-h14-resource__empty { display: flex; align-items: center; gap: .9rem; background: #f7f8f6; border-radius: 12px; min-height: 122px; padding: 1.1rem; }
.nt-h14-resource__empty-icon { font-size: 1.8rem; color: #5f897f; }
.nt-h14-resource__empty p { color: #676a66; font-size: .9rem; line-height: 1.6; margin: 0; }
.nt-home--editorial .nt-home-section--resources { padding-bottom: clamp(3rem, 5vw, 5rem); }

@media (max-width: 950px) {
  .nt-h14-hero { gap: 2rem; }
  .nt-h14-hero__image { min-height: 350px; }
  .nt-h14-hero__image .nt-home-img { min-height: 350px; }
  .nt-h14-destinations, .nt-h14-routes { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .nt-h14-destination--featured { min-height: 500px; }
  .nt-h14-destination--small .nt-h14-destination__image { width: 31%; }
  .nt-h14-routes__secondary { grid-template-columns: minmax(0, 1fr); }
  .nt-h14-route--small > a { flex-direction: row !important; }
  .nt-h14-route--small .nt-h14-route__image { width: 37%; min-height: 111px; height: auto; }
  .nt-h14-route--small .nt-h14-route__body { padding: .7rem; }
  .nt-h14-route--small .nt-h14-route__title { font-size: .88rem; }
  .nt-h14-route--small .nt-h14-route__action { padding-top: .25rem; }
  .nt-h14-route--small .nt-h14-route__category { display: none; }
}
@media (max-width: 700px) {
  .nt-h14-hero { grid-template-columns: minmax(0, 1fr); padding-top: 2.4rem; padding-bottom: 2.9rem; }
  .nt-h14-hero__image { min-height: 260px; height: 315px; }
  .nt-h14-hero__image .nt-home-img { min-height: 260px; }
  .nt-h14-destinations, .nt-h14-routes { grid-template-columns: minmax(0, 1fr); }
  .nt-h14-destination--featured { min-height: 310px; }
  .nt-h14-destinations__secondary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nt-h14-destination--small { flex-direction: column; }
  .nt-h14-destination--small .nt-h14-destination__image { width: 100%; height: 125px; }
  .nt-h14-destination--small .nt-h14-destination__body { padding: .85rem; flex: 1; }
  .nt-h14-destination--small .nt-h14-destination__action { margin-top: auto; padding-top: .6rem; }
  .nt-h14-routes__secondary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nt-h14-route--small > a { flex-direction: column !important; }
  .nt-h14-route--small .nt-h14-route__image { width: 100%; min-height: 0; height: 120px; }
  .nt-h14-resource__heading { flex-wrap: wrap; }
}
@media (max-width: 550px) {
  .nt-h14-hero h1 { font-size: clamp(2.6rem, 11vw, 3.5rem); }
  .nt-h14-destinations__secondary { grid-template-columns: minmax(0,1fr); }
  .nt-h14-destination--small { flex-direction: row; min-height: 110px; }
  .nt-h14-destination--small .nt-h14-destination__image { width: 36%; min-height: 110px; height: auto; }
  .nt-h14-routes__secondary { grid-template-columns: minmax(0,1fr); }
  .nt-h14-route--small > a { flex-direction: row !important; }
  .nt-h14-route--small .nt-h14-route__image { width: 34%; min-height: 125px; height: auto; }
  .nt-h14-resources { grid-template-columns: minmax(0,1fr); }
  .nt-h14-route--featured .nt-h14-route__image { height: 218px; }
  .nt-h14-destination--featured .nt-h14-destination__body { padding: 1.35rem; }
}
@media (prefers-reduced-motion: reduce) {
  .nt-home--editorial .nt-h14-route, .nt-home--editorial .nt-h14-destination,
  .nt-home--editorial .nt-h14-resource__card { transition: none; }
  .nt-home--editorial .nt-h14-route:hover, .nt-home--editorial .nt-h14-destination:hover,
  .nt-home--editorial .nt-h14-resource__card:hover { transform: none; }
}

/* 0.5.15 — Four prominent Destination cards in a two-column, two-row grid.
   Below them: up to six compact photo + text cards, two columns/three rows.
   Only eligible published destinations are rendered (never placeholder content). */
.nt-h15-destinations { display: flex; flex-direction: column; gap: 1rem; }
.nt-h15-destinations__featured,
.nt-h15-destinations__secondary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.nt-h15-destinations__featured .nt-h14-destination--featured { min-height: 450px; }
.nt-h15-destinations__secondary .nt-h14-destination--small { min-height: 124px; }
.nt-h15-destinations__secondary .nt-h14-destination--small .nt-h14-destination__image { width: 33%; min-height: 124px; height: auto; }
.nt-h15-destinations__secondary .nt-h14-destination--small .nt-h14-destination__body { padding: .8rem 1.1rem; }
@media (max-width: 950px) {
  .nt-h15-destinations__featured .nt-h14-destination--featured { min-height: 355px; }
  .nt-h15-destinations__secondary .nt-h14-destination--small .nt-h14-destination__body { padding: .7rem .85rem; }
  .nt-h15-destinations__secondary .nt-h14-destination__name { font-size: 1rem; }
}
@media (max-width: 700px) {
  .nt-h15-destinations__featured .nt-h14-destination--featured { min-height: 315px; }
  .nt-h15-destinations__secondary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nt-h15-destinations__secondary .nt-h14-destination--small { flex-direction: column; min-height: 0; }
  .nt-h15-destinations__secondary .nt-h14-destination--small .nt-h14-destination__image { width: 100%; height: 135px; min-height: 0; }
  .nt-h15-destinations__secondary .nt-h14-destination--small .nt-h14-destination__body { padding: .85rem; flex: 1; }
  .nt-h15-destinations__secondary .nt-h14-destination--small .nt-h14-destination__action { margin-top: auto; padding-top: .6rem; }
}
@media (max-width: 550px) {
  .nt-h15-destinations__featured, .nt-h15-destinations__secondary { grid-template-columns: minmax(0, 1fr); }
  .nt-h15-destinations__featured .nt-h14-destination--featured { min-height: 295px; }
  .nt-h15-destinations__secondary .nt-h14-destination--small { flex-direction: row; min-height: 110px; }
  .nt-h15-destinations__secondary .nt-h14-destination--small .nt-h14-destination__image { width: 36%; min-height: 110px; height: auto; }
}


/* 0.5.21 — Routes category cards only.
   A source photo's intrinsic ratio previously stretched one post card and its
   grid-row partner. Fixed card geometry + contained cropping prevents this.
   Keep title, excerpt, CTA and the entire card link; no template changes. */
body.category-routes .nt-category-archive .nt-category-archive__card {
  box-sizing: border-box;
  height: 202px;
  min-height: 202px;
  max-height: 202px;
  align-items: stretch;
}
body.category-routes .nt-category-archive .nt-category-archive__image {
  position: relative;
  align-self: stretch;
  min-height: 0;
}
body.category-routes .nt-category-archive .nt-category-archive__image img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: 100%;
  object-fit: cover;
}
body.category-routes .nt-category-archive .nt-category-archive__body {
  min-height: 0;
  overflow: hidden;
  gap: .42rem;
  padding: .85rem 1rem;
}
@media (max-width: 420px) {
  body.category-routes .nt-category-archive .nt-category-archive__card {
    height: 228px;
    min-height: 228px;
    max-height: 228px;
  }
}

/* 0.5.22: reserve a stable vertical scrollbar gutter across short and long pages. */
html { scrollbar-gutter: stable; }


/* 0.5.24: Virtual Destinations pages use the same header-actions spacing
   as the rest of the site (.nt-site-header .nt-header-actions above).
   Removed the 0.5.23 offset (translateX(1rem)) and gap:0 override: in the
   newer screenshots those pushed the menu +32px and the search +16px from
   their Routes positions. No mobile, Navigation block or template changes. */


/* 0.5.25: Align the desktop header's two actions on standalone Destinations
   pages with the block-template header on Routes. Comparing 0.5.23 (0 gap,
   +1rem offset) and 0.5.24 (original gap, no offset) screenshots shows
   the desired geometry lies at the halfway values, after normalizing the
   different screenshot sizes by the unchanged site-title width.
   Change only the gap between navigation and search, and the group's right
   inset. No transforms and no changes to mobile overlay behavior. */
@media (min-width: 600px) {
  body.ntd-virtual-page .nt-site-header .nt-header-actions {
    column-gap: clamp(.225rem, .75vw, .5rem);
    margin-inline-end: calc(-1 * clamp(.225rem, .75vw, .5rem));
  }
}


/* 0.5.26 — Optional stacked HERO ONLY. The original .nt-h14-hero layout
   remains unchanged unless the editor explicitly selects the new option.
   The 1180px editorial width, other homepage sections and header are shared. */
.nt-h14-hero.nt-h14-hero--stacked {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  row-gap: clamp(1.5rem, 3vw, 2.4rem);
}
.nt-h14-hero--stacked .nt-h14-hero__copy,
.nt-h14-hero--stacked h1,
.nt-h14-hero--stacked .nt-h14-hero__intro {
  width: 100%;
  max-width: none;
}
.nt-h14-hero--stacked .nt-h14-hero__image {
  width: 100%;
  height: clamp(270px, 28vw, 360px);
  min-height: 0;
  max-height: none;
}
.nt-h14-hero--stacked .nt-h14-hero__image .nt-home-img {
  height: 100%;
  min-height: 0;
  object-fit: cover;
}
@media (min-width: 701px) and (max-width: 950px) {
  .nt-h14-hero--stacked .nt-h14-hero__image {
    height: clamp(235px, 27vw, 285px);
  }
}
@media (max-width: 700px) {
  .nt-h14-hero--stacked .nt-h14-hero__image {
    height: 210px;
    min-height: 0;
  }
}


/* 0.5.27 — Additional HERO ONLY arrangements, leaving the approved split and
   stacked markup and all non-Hero page components untouched. */
.nt-h14-hero__heading,
.nt-h14-hero__description { min-width: 0; }
.nt-h14-hero__heading > .nt-h14-eyebrow {
  display: block;
  color: #557a77;
  margin: 0 0 1.25rem;
}
/* C: full-width headline/subtitle, followed by description | photo. */
.nt-h14-hero.nt-h14-hero--columns {
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  align-items: center;
  row-gap: clamp(1.5rem, 3vw, 2.4rem);
}
.nt-h14-hero--columns .nt-h14-hero__heading {
  grid-column: 1 / -1;
}
.nt-h14-hero--columns .nt-h14-hero__description {
  grid-column: 1;
}
.nt-h14-hero--columns .nt-h14-hero__image {
  grid-column: 2;
}
/* If the editor left the description empty, do not leave a blank column. */
.nt-h14-hero--columns.nt-h14-hero--no-description .nt-h14-hero__image {
  grid-column: 1 / -1;
  width: 100%;
  height: clamp(270px, 28vw, 360px);
  min-height: 0;
  max-height: none;
}
.nt-h14-hero--columns.nt-h14-hero--no-description .nt-h14-hero__image .nt-home-img {
  min-height: 0;
}
/* D: headline/subtitle, panoramic photo, then full-width description. */
.nt-h14-hero.nt-h14-hero--image-first {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  row-gap: clamp(1.5rem, 3vw, 2.4rem);
}
.nt-h14-hero--image-first .nt-h14-hero__heading,
.nt-h14-hero--image-first .nt-h14-hero__description,
.nt-h14-hero--image-first h1,
.nt-h14-hero--image-first .nt-h14-hero__intro {
  width: 100%;
  max-width: none;
}
.nt-h14-hero--image-first .nt-h14-hero__image {
  width: 100%;
  height: clamp(270px, 28vw, 360px);
  min-height: 0;
  max-height: none;
}
.nt-h14-hero--image-first .nt-h14-hero__image .nt-home-img {
  height: 100%;
  min-height: 0;
  object-fit: cover;
}
@media (min-width: 701px) and (max-width: 950px) {
  .nt-h14-hero--image-first .nt-h14-hero__image,
  .nt-h14-hero--columns.nt-h14-hero--no-description .nt-h14-hero__image {
    height: clamp(235px, 27vw, 285px);
  }
}
@media (max-width: 700px) {
  .nt-h14-hero.nt-h14-hero--columns { grid-template-columns: minmax(0, 1fr); }
  .nt-h14-hero--columns .nt-h14-hero__heading,
  .nt-h14-hero--columns .nt-h14-hero__description,
  .nt-h14-hero--columns .nt-h14-hero__image,
  .nt-h14-hero--columns.nt-h14-hero--no-description .nt-h14-hero__image {
    grid-column: 1 / -1;
  }
  .nt-h14-hero--image-first .nt-h14-hero__image,
  .nt-h14-hero--columns.nt-h14-hero--no-description .nt-h14-hero__image {
    height: 210px;
    min-height: 0;
  }
  /* Opt-in is a visual CSS preference only: the saved text is untouched. */
  .nt-h14-hero--hide-description-mobile .nt-h14-hero__intro,
  .nt-h14-hero--hide-description-mobile .nt-h14-hero__description {
    display: none;
  }
}


/* 0.5.28: Full horizontal brand in the SAME shared site header, rendered
   either from the bundled fallback image or native Site Logo setting.
   Do not alter nav, search, homepage, archive or article templates. */
.nt-site-header .wp-block-site-logo.nt-brand-logo {
  flex: 0 1 210px;
  width: 210px;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  line-height: 0;
}
.nt-site-header .wp-block-site-logo.nt-brand-logo .custom-logo-link {
  display: block;
  width: 100%;
  line-height: 0;
}
.nt-site-header .wp-block-site-logo.nt-brand-logo img {
  display: block;
  box-sizing: border-box;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}
@media (max-width: 599px) {
  .nt-site-header .wp-block-site-logo.nt-brand-logo {
    flex: 0 1 clamp(135px, 45vw, 175px);
    width: clamp(135px, 45vw, 175px);
  }
}
