/* Public tourism pages: editorial fields, shared navigation and related places. */
.destination-page { padding-top:76px; min-height:70svh; }
.detail-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; padding-block:1.6rem; color:var(--muted); font-size:.9rem; }
.detail-breadcrumb a { color:var(--blue); text-decoration:underline; padding-block:.3rem; }
.detail-breadcrumb [aria-current] { color:var(--ink); }
.detail-intro { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); align-items:center; gap:clamp(2rem,5vw,4.5rem); padding-block:1.2rem 3.5rem; }
.detail-intro.without-image { grid-template-columns:minmax(0,820px); }
.detail-copy h1 { margin:0; color:var(--dark-blue); font-size:clamp(2.2rem,4.4vw,3.8rem); line-height:1.1; font-weight:700; text-wrap:balance; overflow-wrap:break-word; }
.detail-summary { margin:1.5rem 0 0; color:var(--muted); font-size:1.15rem; line-height:1.75; white-space:pre-line; }
.detail-photo { margin:0; border-radius:20px; overflow:hidden; background:var(--surface); aspect-ratio:4/3; }
.detail-photo img { width:100%; height:100%; object-fit:cover; }
.detail-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.5rem; margin-top:2rem; }
.button.detail-primary { color:#fff; background:var(--blue); }
.button.detail-primary:hover { background:#932917; }
.detail-back, .detail-external { display:inline-flex; align-items:center; min-height:44px; color:var(--blue); font-weight:700; text-decoration:underline; }
.detail-info { padding:clamp(1.3rem,3vw,2rem); margin-bottom:3.5rem; background:var(--surface); border-radius:16px; border:1px solid #dedede; }
.detail-info h2 { margin:0 0 1.5rem; color:var(--dark-blue); font-size:1.4rem; font-weight:700; }
.detail-info dl { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:1.5rem 2rem; margin:0; }
.detail-info dt { color:var(--muted); font-size:.85rem; margin-bottom:.4rem; }
.detail-info dd { margin:0; color:var(--ink); font-size:1.05rem; font-weight:700; overflow-wrap:anywhere; }
.detail-info dd a { color:var(--blue); text-decoration:underline; }
.detail-external { margin-top:1.5rem; }
.detail-related { padding-block:3.5rem; }
.detail-related h2 { font-size:clamp(1.8rem,3vw,2.5rem); font-weight:700; }
.destination-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.destination-card { display:flex; flex-direction:column; color:var(--ink); background:#fff; border:1px solid #dedede; border-radius:16px; overflow:hidden; text-decoration:none; box-shadow:0 3px 12px rgb(52 52 52 / 6%); transition:transform .2s ease,box-shadow .2s ease; }
.destination-card:hover { transform:translateY(-3px); box-shadow:0 12px 24px rgb(52 52 52 / 12%); }
.destination-card > img { width:100%; aspect-ratio:16/10; object-fit:cover; }
.destination-card > div { display:flex; flex-direction:column; flex:1; padding:1.4rem; }
.destination-card h3 { margin:0; color:var(--blue); font-size:1.3rem; font-weight:700; line-height:1.3; }
.destination-card p { margin:.8rem 0 1.3rem; color:var(--muted); line-height:1.6; }
.destination-card span { margin-top:auto; color:var(--blue); font-weight:700; text-decoration:underline; }
.detail-empty { padding:2rem; max-width:760px; background:#fff; border:1px solid #dedede; border-radius:16px; }
.detail-empty p { color:var(--muted); font-size:1.1rem; margin:0 0 1.5rem; }
@media (max-width:1023px) {
  .detail-intro { grid-template-columns:1fr; gap:2rem; }
  .detail-copy { max-width:760px; }
  .detail-photo { aspect-ratio:16/9; max-height:430px; }
  .destination-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
  .detail-breadcrumb { font-size:.8rem; gap:.4rem; padding-block:1.2rem; }
  .detail-intro { padding-top:.5rem; padding-bottom:2rem; }
  .detail-summary { font-size:1.05rem; }
  .detail-photo { aspect-ratio:4/3; border-radius:12px; }
  .destination-grid { grid-template-columns:1fr; }
  .detail-related { padding-block:2.5rem; }
  .detail-info { margin-bottom:2rem; }
  .detail-actions { align-items:stretch; flex-direction:column; }
  .detail-back { justify-content:flex-start; }
}
