/* Stage D2: standalone, restrained public geographic pages. No Route v1 selectors changed. */
.ntd-shell { box-sizing:border-box; width:min(100% - 2rem, 1100px); margin:0 auto; padding:clamp(1.6rem, 4vw, 3.5rem) 0 4rem; color:#151515; }
.ntd-shell *, .ntd-shell *:before, .ntd-shell *:after { box-sizing:border-box; }
.ntd-shell h1 { font-size:clamp(2.15rem, 5vw, 3.75rem); line-height:1.1; letter-spacing:-.03em; margin:.65rem 0 1rem; }
.ntd-shell h2 { font-size:clamp(1.3rem, 2.4vw, 1.75rem); line-height:1.18; letter-spacing:-.015em; margin:0 0 1rem; }
.ntd-shell p { line-height:1.6; }
.ntd-intro { max-width:670px; color:#505050; margin:0 0 2.7rem; font-size:1.07rem; }
.ntd-breadcrumbs { display:flex; align-items:center; flex-wrap:wrap; gap:.45rem; font-size:.85rem; color:#696969; }
.ntd-breadcrumbs a { color:#555; text-decoration:none; }
.ntd-breadcrumbs a:hover { text-decoration:underline; }
.ntd-chevron { color:#aaa; padding:0 .2rem; }
.ntd-section { margin:2.3rem 0 2.7rem; }
.ntd-section-heading { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:.6rem 1rem; }
.ntd-section-heading a { text-decoration:none; font-size:.91rem; font-weight:650; }
.ntd-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:.85rem; }
.ntd-tile { display:flex; flex-direction:column; justify-content:center; padding:1rem 1.1rem; min-height:92px; border:1px solid #dededb; background:#fafaf7; border-radius:13px; color:#151515; text-decoration:none; }
.ntd-tile strong { font-weight:730; font-size:1.06rem; line-height:1.3; }
.ntd-tile span { font-size:.83rem; margin-top:.3rem; color:#666; }
a.ntd-tile:hover, a.ntd-tile:focus-visible { border-color:#85857f; background:#f6f6f0; text-decoration:none; }
.ntd-route-list { display:grid; grid-template-columns:1fr 1fr; gap:.65rem; }
.ntd-route { display:flex; align-items:center; gap:.8rem; border:1px solid #dfdfdc; border-radius:13px; padding:.65rem .8rem; color:#151515; text-decoration:none; min-width:0; background:#fff; }
.ntd-route > span:nth-last-child(2) { min-width:0; font-weight:650; font-size:.92rem; line-height:1.35; overflow-wrap:anywhere; }
.ntd-route-image { width:100px; height:70px; object-fit:cover; border-radius:8px; flex-shrink:0; }
.ntd-route-arrow { margin-left:auto; padding-left:.1rem; font-size:1.2rem; color:#555; }
.ntd-route:hover, .ntd-route:focus-visible { text-decoration:none; border-color:#888; }
.ntd-admin-preview { background:#fff; border:1px solid #dedede; border-radius:12px; padding:1.6rem; margin:1.2rem 0; max-width:1100px; }
@media(max-width:900px){.ntd-grid {grid-template-columns:repeat(2,minmax(0,1fr));}.ntd-route-list {grid-template-columns:1fr;}}
@media(max-width:580px){.ntd-shell {width:min(100% - 1.5rem, 1100px);}.ntd-grid{grid-template-columns:1fr;}.ntd-route-image{width:88px;height:67px;}.ntd-tile{min-height:76px;}}


/* 0.1.1: On PHP virtual Destinations pages, restore the spacing and title
   styling of the existing block-theme footer. Scoped to these pages only. */
body.ntd-virtual-page .nt-site-footer > .wp-block-group.alignwide {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem 2rem;
}
body.ntd-virtual-page .nt-site-footer .wp-block-site-title {
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .03em;
}
@media (max-width: 620px) {
  body.ntd-virtual-page .nt-site-footer > .wp-block-group.alignwide {
    flex-direction: column;
    justify-content: flex-start;
    gap: .7rem;
  }
}
