/* Hallmark · v2.0.0 · theme: Loom (locked brand) · scope: app · signature: day-by-day itinerary · motion: purposeful */
/* Critique: long dossiers become a navigable plan; original evidence and booking destinations stay intact. */
/* waive: 49b · source names, partner disclosures and descriptive links wrap on small screens to preserve meaning and readable type. */
:root { --journey-duration: 220ms; --journey-ease: cubic-bezier(.2,.7,.2,1); }
.destination-page [id] { scroll-margin-top: 112px; }
.destination-navigation { z-index: 5; background: var(--paper); }
.destination-navigation .in-page-nav { justify-content: space-between; gap: 4px var(--space-sm); }
.destination-navigation a { padding-inline: var(--space-xs); text-decoration: none; border-bottom: 3px solid transparent; }
.destination-navigation a[aria-current="location"] { border-bottom-color: var(--blue); color: var(--blue); font-weight: 600; }
.destination-navigation a:hover { background: var(--paper-well); }
.destination-page a:focus-visible, .destination-page button:focus-visible, .destination-page summary:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }
.journey-overview { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-block: var(--space-lg); border-block: 1px solid var(--rule); }
.journey-overview a { padding: var(--space-lg); display: grid; gap: var(--space-xs); color: var(--ink); text-decoration: none; transition: transform var(--journey-duration) var(--journey-ease); }
.journey-overview a + a { border-left: 1px solid var(--rule); }
.journey-overview a:hover { background: var(--yellow-soft); transform: translateY(-3px); }
.journey-overview a:active { transform: translateY(1px); }
.journey-overview span { font-size: 16px; color: var(--muted); }
.journey-overview strong { font: 400 32px/1.15 var(--font-display); overflow-wrap: break-word; }
.destination-page .season-profiles { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: var(--space-lg); align-content: start; }
.season-profiles details[open], .season-profiles > p { grid-column: 1 / -1; }
.destination-page details > summary { min-height: 44px; padding-block: var(--space-sm); cursor: pointer; }
.journey-day-controls { display: flex; gap: var(--space-lg); justify-content: space-between; align-items: center; margin-block: var(--space-lg); }
.journey-day-controls p { margin: 0; font-size: 16px; color: var(--muted); }
.journey-day summary { color: var(--blue); font-size: 16px; font-weight: 600; }
.journey-day[open] > p, .journey-day[open] > aside { animation: journey-detail-in var(--journey-duration) var(--journey-ease); }
.destination-page .itinerary > li { border-left: 2px solid var(--rule); padding-inline: var(--space-lg) 0; }
.destination-page .day-number { color: var(--blue); }
.destination-page .booking-section { border-top: 3px solid var(--blue); background: var(--paper-raised); padding-inline: var(--space-lg); margin-block: var(--space-xl); }
.destination-page .booking-section h2 { overflow-wrap: break-word; text-wrap: balance; }
.destination-page .button { transition: transform var(--journey-duration) var(--journey-ease); }
.destination-page .button:active { transform: translateY(2px); }
@keyframes journey-detail-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
.flight-planning { margin-top: var(--space-xl); padding: var(--space-lg); background: var(--paper-well); border-top: 3px solid var(--blue); }
.flight-planning h3 { font: 400 32px/1.2 var(--font-display); margin-top: 0; }
.flight-planning > p { max-width: 65ch; }
.flight-planning .step-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--space-lg); padding-left: var(--space-lg); }
.flight-planning .step-list li { padding-right: var(--space-sm); font-size: 16px; }
.flight-planning .step-list strong { display: block; margin-bottom: var(--space-xs); }
.flight-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-lg); margin-block: var(--space-lg); }
@media (max-width: 680px) {
    .destination-navigation { position: static; }
    .flight-planning .step-list { grid-template-columns: minmax(0,1fr); }
    .flight-planning { padding: var(--space-md); }
    .destination-page [id] { scroll-margin-top: 24px; }
    .destination-navigation .in-page-nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
    .journey-overview { grid-template-columns: minmax(0,1fr); }
    .journey-overview a { padding: var(--space-md); grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; }
    .journey-overview a + a { border-left: 0; border-top: 1px solid var(--rule); }
    .journey-overview a span:last-child { grid-column: 1 / -1; }
    .journey-overview strong { font-size: 26px; }
    .destination-page .season-profiles { grid-template-columns: minmax(0,1fr); }
    .journey-day-controls { align-items: start; flex-direction: column; }
    .destination-page .itinerary > li { padding-left: var(--space-sm); gap: var(--space-sm); grid-template-columns: 54px minmax(0,1fr); }
    .destination-page .booking-section { padding-inline: 0; }
    .destination-page .booking-section .button, .flight-actions .button { padding-inline: var(--space-sm); gap: var(--space-xs); font-size: 16px; }
    .destination-page .booking-section .button .icon, .flight-actions .button .icon { display: none; }
}
@media (prefers-reduced-motion: reduce) { .destination-page *, .destination-page *::before, .destination-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto; } }
@media print { .destination-navigation, .journey-overview, .journey-day-controls { display: none; } .destination-page .journey-day::details-content { display: block; content-visibility: visible; } .journey-day > summary { display: none; } }

/* The destination is a working itinerary: context stays available beside the task. */
.destination-page .journey-header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .65fr); gap: var(--space-md) var(--space-xl); align-items: center; padding-block: var(--space-lg); }
.journey-header h1, .journey-header h1.name-long { font: 700 clamp(36px, 4vw, 56px)/1.08 var(--font-body); margin: 0 0 var(--space-sm); }
.journey-header .destination-tagline { font-size: 18px; margin: 0 0 var(--space-md); }
.journey-header .destination-meta { margin: 0; gap: var(--space-xs) var(--space-md); font-size: 14px; }
.destination-page .journey-header-photo { margin: 0; padding: 0; grid-column: 2; grid-row: 1 / 3; }
.journey-header-photo .travel-photo { margin: 0; }
.journey-header-photo .travel-photo img { height: 220px; width: 100%; object-fit: cover; border-radius: var(--radius-lg, 16px); }
.journey-header-actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-md); }
.destination-page .destination-navigation { position: sticky; top: 0; border-block: 1px solid var(--rule); }
.destination-navigation .in-page-nav { display: flex; flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; gap: var(--space-xs); margin: 0; padding-block: var(--space-xs); scrollbar-width: thin; }
.destination-navigation .in-page-nav a { flex: 0 0 auto; min-height: 44px; display: inline-flex; align-items: center; padding-inline: var(--space-md); border: 0; border-radius: var(--radius-md, 12px); font-size: 15px; }
.destination-navigation .in-page-nav a[aria-current="location"] { background: var(--blue); color: var(--paper-raised); }
.destination-page [id] { scroll-margin-top: 88px; }
.journey-context { margin-block: var(--space-xs); font-size: 16px; }
.journey-context > summary, .journey-plan-notes > summary { color: var(--blue); font-weight: 600; }
.destination-page #kurzplan { padding-block: var(--space-lg); }
.destination-page #kurzplan .section-heading { margin-bottom: var(--space-sm); }
.destination-page #kurzplan .section-heading h2 { font: 700 28px/1.2 var(--font-body); }
.destination-page #kurzplan .section-heading p { font-size: 16px; }
.journey-plan-notes { font-size: 16px; margin-bottom: var(--space-sm); }
.destination-page .plan-switch { display: flex; flex-wrap: wrap; align-items: end; gap: var(--space-md); margin-block: var(--space-sm); padding: var(--space-md); border: 1px solid var(--rule); border-radius: var(--radius-lg, 16px); background: var(--paper-raised); }
.destination-page .plan-switch fieldset { display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-md); flex: 1; margin: 0; min-width: 0; }
.destination-page .plan-switch legend { font-size: 15px; margin-bottom: var(--space-xs); }
.destination-page .plan-switch label { font-size: 16px; margin: 0; min-height: 44px; display: flex; align-items: center; gap: var(--space-xs); }
.destination-page .journey-day-controls { margin-block: var(--space-md); font-size: 15px; }
.destination-page .itinerary { margin-top: var(--space-md); }
.destination-page .itinerary > li { border-left: 0; border-top: 1px solid var(--rule); padding: var(--space-lg) 0; }
.destination-page .itinerary h3 { font-size: 22px; margin-top: 0; }
.destination-page .day-number { font: 700 16px/1.4 var(--font-body); }
@media (max-width: 680px) {
    .destination-page .journey-header { grid-template-columns: minmax(0, 1fr) 112px; gap: var(--space-md); padding-block: var(--space-md); }
    .journey-header h1, .journey-header h1.name-long { font-size: 32px; }
    .journey-header .destination-tagline { font-size: 16px; line-height: 1.4; }
    .destination-page .journey-header-photo { grid-row: 1; align-self: start; }
    .journey-header-photo .travel-photo img { height: 130px; }
    .journey-header-actions { grid-column: 1 / -1; }
    .journey-header-actions .button { font-size: 16px; padding: var(--space-sm) var(--space-md); }
    .journey-header-actions .text-link { font-size: 15px; }
    .destination-page .journey-day-controls { flex-direction: row; align-items: center; gap: var(--space-sm); }
    .journey-day-controls .button { font-size: 14px; padding-inline: var(--space-sm); }
    .destination-page .plan-switch { padding: var(--space-sm); }
    .destination-page .plan-switch fieldset { flex-basis: 100%; }
    .destination-page .plan-switch button { padding-block: var(--space-xs); font-size: 15px; }
}
@media print {
    .destination-page .destination-navigation, .journey-header-actions { display: none; }
    .journey-context::details-content, .journey-plan-notes::details-content { display: block; content-visibility: visible; }
}

/* A month plan leads with its seasonal decision, then the itinerary. */
.journey-header h1 .journey-heading-month { display: block; color: inherit; }
.destination-page .journey-header { grid-template-columns: minmax(0, 1fr) minmax(0, .85fr); gap: var(--space-lg) var(--space-xl); }
.journey-header .destination-tagline { max-width: 48ch; line-height: 1.5; }
.journey-header-photo .travel-photo img { height: 270px; }
.journey-header-actions .text-link { font-size: 15px; font-weight: 400; }
.journey-month-catch { padding-bottom: var(--space-lg); }
.journey-month-catch p { max-width: 75ch; margin: 0; font-size: 16px; }
.journey-month-catch strong { color: var(--ink); }
.destination-page .journey-plan-settings { margin-block: var(--space-sm); font-size: 16px; }
.journey-plan-settings > summary { width: fit-content; color: var(--blue); }
.destination-page .journey-plan-settings .plan-switch { background: var(--paper); border: 0; }
.destination-page .journey-day-controls { justify-content: flex-end; }
.destination-page .journey-day-controls > a { margin-right: auto; }
.destination-page .journey-day-controls .button { border: 0; background: transparent; font-size: 14px; font-weight: 400; }
.destination-page .itinerary { max-width: 850px; }
.destination-page .itinerary > li { padding-block: var(--space-xl); }
.destination-page .itinerary h3 { margin-bottom: var(--space-xs); font-size: 24px; }
.destination-page .itinerary .journey-day > summary { font-size: 15px; font-weight: 400; }
.destination-page .journey-other-months { grid-column: 1 / -1; }
.journey-other-months nav { display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-md); padding-block: var(--space-sm); }
.journey-other-months a { display: inline-flex; align-items: center; min-height: 44px; }
.journey-plan-settings > summary:focus-visible, .journey-other-months > summary:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }
@media (max-width: 680px) {
    .destination-page .journey-header { grid-template-columns: minmax(0, 1fr); gap: var(--space-md); }
    .journey-header h1 .journey-heading-month { display: inline; }
    .journey-header h1 .journey-heading-month::before { content: " "; }
    .destination-page .journey-header-photo { grid-column: 1; grid-row: auto; }
    .journey-header-photo .travel-photo img { height: 168px; }
    .journey-header-actions { grid-column: 1; gap: var(--space-sm); }
    .journey-month-catch { padding-bottom: var(--space-md); }
    .journey-month-catch p { font-size: 15px; }
    .destination-page .itinerary > li { grid-template-columns: minmax(0, 1fr); gap: var(--space-xs); padding-block: var(--space-lg); }
    .destination-page .itinerary h3 { font-size: 22px; }
}
@media print {
    .journey-plan-settings { display: none; }
}

/* Visible day ideas lead the route; controls follow the complete itinerary. */
.destination-page .journey-route { max-width: 960px; margin-block: var(--space-lg); }
.destination-page .journey-route > li { grid-template-columns: 72px minmax(0, 1fr); gap: var(--space-lg); border: 0; padding-block: 0 var(--space-xl); position: relative; }
.journey-route > li:not(:last-child)::before { content: ""; position: absolute; left: 27px; top: 38px; bottom: 0; border-left: 1px solid var(--rule); }
.destination-page .journey-route .day-number { padding-block: var(--space-xs); align-self: start; text-align: center; background: var(--paper-well); border-radius: var(--radius-control); color: var(--ink); font-size: 16px; }
.journey-day-content { min-width: 0; }
.destination-page .journey-route h3 { min-width: 0; overflow-wrap: break-word; margin: 0 0 var(--space-sm); }
.destination-page .journey-day-intro { margin: 0; font-size: 18px; line-height: 1.55; }
.destination-page .journey-rain-choice { margin-block: var(--space-sm) 0; font-size: 16px; }
.journey-rain-choice a { display: inline-flex; align-items: center; min-height: 44px; }
.destination-page .journey-ticket { margin-top: var(--space-md); padding: var(--space-md) 0 0; border: 0; border-top: 1px solid var(--rule); background: transparent; }
.journey-ticket .journey-ticket-title { font-weight: 600; margin-block: var(--space-xs); }
.journey-ticket p { margin-block: var(--space-xs); }
.destination-page .journey-day-controls { flex-wrap: wrap; }
.destination-page .journey-day-controls .button { min-height: 44px; font-size: 16px; }
.destination-page .journey-plan-notes { border-top: 1px solid var(--rule); padding-top: var(--space-sm); }
.destination-page .journey-bases { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto auto repeat(4, auto) auto; column-gap: var(--space-xl); row-gap: 0; }
.destination-page .journey-bases .base-option { display: grid; grid-template-rows: subgrid; grid-row: span 7; border-top: 1px solid var(--rule); padding-top: var(--space-lg); }
.journey-bases .base-option h3 { margin: 0 0 var(--space-sm); font-size: 24px; min-width: 0; overflow-wrap: break-word; }
.journey-bases .base-option > p { margin: 0 0 var(--space-md); }
.destination-page .journey-bases dl { display: grid; grid-template-rows: subgrid; grid-row: span 4; margin: 0; }
.journey-bases .base-fact { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: var(--space-md); padding-block: var(--space-md); border-top: 1px solid var(--rule); }
.journey-bases .base-fact dt { margin: 0; font-size: 16px; font-weight: 600; }
.journey-bases .base-fact dd { margin: 0; font-size: 16px; line-height: 1.55; }
.destination-page .journey-stay-search { border: 0; background: var(--paper-raised); padding: var(--space-lg); margin-block: var(--space-lg); }
.journey-stay-search .text-link { font-size: 18px; }
.journey-base-context { margin-block: var(--space-md) var(--space-lg); }
.journey-base-context > p { max-width: 65ch; }
.journey-arrival { max-width: 75ch; }
.destination-page .booking-section { display: block; padding: var(--space-xl) 0; background: transparent; border-top: 1px solid var(--rule); }
.destination-page .booking-section h2 { font-size: 32px; }
.destination-page .booking-section > div > p { max-width: 65ch; }
.journey-next-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-lg); list-style: none; padding: 0; margin-block: var(--space-lg) var(--space-xl); }
.journey-next-steps > li { border-top: 1px solid var(--rule); padding-top: var(--space-md); min-width: 0; }
.journey-next-steps h3 { font-size: 22px; margin: 0 0 var(--space-sm); }
.journey-next-steps p { font-size: 16px; margin-block: var(--space-sm); }
.journey-next-steps .text-link { min-height: 44px; }
.destination-page .booking-section .checklist { max-width: 75ch; padding-top: var(--space-lg); border-top: 1px solid var(--rule); }
@media (max-width: 760px) {
    .destination-page .journey-bases { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; gap: var(--space-lg); }
    .destination-page .journey-bases .base-option, .destination-page .journey-bases dl { display: block; }
    .journey-next-steps { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 680px) {
    .destination-page .journey-route > li { grid-template-columns: minmax(0, 1fr); gap: var(--space-sm); padding-left: var(--space-md); border-left: 1px solid var(--rule); }
    .journey-route > li:not(:last-child)::before { display: none; }
    .destination-page .journey-route .day-number { justify-self: start; padding-inline: var(--space-sm); }
    .destination-page .journey-day-intro { font-size: 16px; }
    .journey-bases .base-fact { grid-template-columns: minmax(0, 1fr); gap: var(--space-xs); }
    .destination-page .journey-stay-search { padding: var(--space-md); }
}
@media print {
    .journey-rain-choice, .journey-next-steps { display: none; }
    .destination-page .journey-bases, .destination-page .journey-bases .base-option, .destination-page .journey-bases dl { display: block; }
    .journey-base-context::details-content { display: block; content-visibility: visible; }
    .journey-route > li::before { display: none; }
}

/* Compact editorial evidence, using the existing disclosure controls. */
.journey-calendar { margin-block: var(--space-md); padding: var(--space-md); border: 1px solid var(--rule); background: var(--paper); }
.journey-calendar li + li { margin-top: var(--space-lg); }
.traveler-reports { max-width: 860px; }
.traveler-report { padding-block: var(--space-md); border-bottom: 1px solid currentColor; }
.traveler-report p { max-width: 68ch; }
.traveler-report a { overflow-wrap: anywhere; }
@media print {
    .journey-calendar::details-content, .traveler-report::details-content {
        display: block;
        content-visibility: visible;
    }
}

.year-months { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:24px; }
.year-months section { border-top:1px solid currentColor; padding-top:16px; }

.season-reasons { margin: 16px 0; }
.season-reasons dd { margin: 4px 0 16px; }
