/* Travel guides extend the shared estate design tokens; no separate type or palette. */
.travel-page { --travel-rule:rgba(30,25,20,.18); }
.travel-breadcrumb { display:flex; flex-wrap:wrap; gap:.6em; padding-block:var(--panel-space); font-size:var(--text-fine); color:var(--olive); }
.travel-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(2rem,5vw,6rem); align-items:center; padding-block:var(--panel-space) var(--section-space); }
.travel-hero h1 { font-size:clamp(3.25rem,2rem + 3vw,7rem); margin:1rem 0 1.5rem; max-width:17ch; text-wrap:balance; }
.travel-hero .lede { max-width:var(--reading-measure); font-size:var(--text-body); line-height:1.65; margin-bottom:1.5rem; }
.travel-hero figure { margin:0; min-width:0; }
.travel-hero img { width:100%; height:auto; }
.travel-hero figcaption { font-size:var(--text-fine); letter-spacing:.04em; margin-top:.75rem; color:var(--olive); }
.travel-facts { background:var(--night); color:var(--paper); padding-block:var(--panel-space); }
.travel-facts>.shell { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.5rem; font-size:var(--text-label); letter-spacing:.04em; }
.travel-facts span+span { border-left:1px solid rgba(255,250,242,.2); padding-left:1.5rem; }
.travel-calendar,.travel-related { padding-block:var(--section-space); }
.travel-page .section-title { margin:0 0 1.5rem; max-width:20ch; text-wrap:balance; }
.travel-page h3 { font-size:var(--text-card-title); line-height:1.08; margin:0 0 1rem; }
.travel-note { font-size:var(--text-support); line-height:1.65; max-width:var(--reading-measure); }
.travel-calendar>.eyebrow,.travel-essentials .eyebrow,.travel-related>.eyebrow { margin-bottom:1rem; }
.event-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr)); gap:1.25rem; margin-top:2.5rem; }
.event-card { display:flex; flex-direction:column; align-items:flex-start; min-width:0; border:1px solid var(--travel-rule); padding:var(--panel-space); background:var(--paper); }
.event-card p { font-size:var(--text-panel); line-height:1.65; }
.event-card .event-date { font-size:var(--text-label); font-weight:600; color:var(--terracotta); margin:0 0 1.25rem; }
.event-card .text-link { margin-top:auto; }
.event-card.is-past { background:var(--plaster); }
.event-past { font-style:italic; }
.travel-editorial { padding-bottom:var(--section-space); }
.travel-editorial>section { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:clamp(2rem,5vw,6rem); border-top:1px solid var(--travel-rule); padding-block:clamp(2.5rem,4vw,6rem); }
.travel-editorial p,.travel-essentials p { font-size:var(--text-body); line-height:1.65; margin:0 0 1.25rem; max-width:var(--reading-measure); }
.travel-essentials { background:var(--paper); padding-block:var(--section-space); scroll-margin-top:calc(var(--rendered-header-height,8rem) + 1rem); }
.essentials-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:clamp(2rem,5vw,6rem); margin-top:2.5rem; }
.travel-sleeping-list { list-style:none; padding:0; margin:0 0 2rem; }
.travel-sleeping-list li { display:grid; gap:.4rem; border-bottom:1px solid var(--travel-rule); padding-block:1rem; font-size:var(--text-panel); }
.travel-sleeping-list li:first-child { padding-top:0; }
.travel-sleeping-list strong { font-weight:500; }
.related-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:2rem; }
.related-grid>a { display:flex; flex-direction:column; align-items:flex-start; min-width:0; border-top:1px solid var(--travel-rule); padding-block:var(--panel-space); text-decoration:none; }
.related-grid .eyebrow { margin-bottom:1rem; }
.related-grid p { font-size:var(--text-panel); line-height:1.65; }
.related-grid .text-link { margin-top:auto; }
.travel-page .availability .section-title { margin-inline:auto; }
.travel-page .availability .travel-note { margin:1.5rem auto 0; }
.travel-page .text-link::after,.travel-page .button::after { flex-shrink:0; }
.skip-link { position:absolute; top:-8rem; left:1rem; background:var(--paper); color:var(--ink); padding:1rem; z-index:1000; }
.skip-link:focus { top:1rem; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.travel-page [hidden] { display:none!important; }
.travel-page a:focus-visible { outline:3px solid var(--terracotta); outline-offset:5px; }
@media(max-width:1100px) {
  .travel-hero { grid-template-columns:1fr; }
  .travel-hero h1 { max-width:22ch; }

  .travel-facts>.shell { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .travel-facts span:nth-child(3) { border-left:0; padding-left:0; }
}
@media(max-width:900px) {
  .travel-editorial>section,.essentials-grid { grid-template-columns:1fr; gap:1.5rem; }
}
@media(max-width:560px) {
  .travel-hero h1 { font-size:clamp(2.75rem,2rem + 4vw,3.5rem); }
  .travel-facts>.shell { grid-template-columns:1fr; gap:.85rem; }
  .travel-facts span+span { border-left:0; padding-left:0; }
}
@media(prefers-reduced-motion:reduce) { .travel-page * { scroll-behavior:auto!important; } }

/* 1.0.12: accommodation first; compact facts support the dedicated stay guide. */
.travel-hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.5rem; }
.travel-compact-facts { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(2rem,5vw,6rem); align-items:center; }
.travel-support-links { display:flex; flex-wrap:wrap; gap:1rem 2rem; }
.travel-editorial section[id] { scroll-margin-top:calc(var(--rendered-header-height,8rem) + 1rem); }
@media(max-width:900px) { .travel-compact-facts { grid-template-columns:1fr; } }

/* 1.0.13: dated guide cards, with a maximum of four readable columns. */
.guide-dates { margin:0 0 1.25rem; font-size:var(--text-support); color:var(--terracotta); line-height:1.5; }
.guide-date-label { display:block; font-size:var(--text-label); font-weight:600; margin-bottom:.35rem; }
.guide-date-row { display:block; }
.related-grid .guide-season { font-size:var(--text-support); }
.travel-related>.travel-note { margin-bottom:2rem; }
@media(max-width:1599px) { .related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:749px) { .related-grid { grid-template-columns:1fr; } }

/* Give the Events landing-page headline the scale of the main site heroes. */
.events-page .travel-hero h1 { font-size:clamp(3.5rem,2rem + 4.5vw,9rem); max-width:16ch; }
@media(max-width:560px) {
  .events-page .travel-hero h1 { font-size:clamp(3rem,1.5rem + 6vw,3.75rem); }
}
