/* D's photo/copy composition, used only by North L and Europe E. */
.tour-story .story-opening{grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);grid-template-areas:"copy gallery";align-items:stretch}
.tour-story .journal-hero-copy{padding:28px;justify-content:center;min-width:0}
.tour-story .story-launch{display:flex;align-items:center;flex-wrap:wrap;align-self:flex-start;gap:2px 10px;width:fit-content;max-width:100%;min-height:44px;margin:0 0 16px;padding:8px 12px;background:#e3f17b;color:#153e35;border-radius:4px;font-size:.875rem;line-height:1.45;text-decoration:none}
.tour-story .story-launch [data-offer-label]{font-weight:700}
.tour-story .story-launch [data-offer-deadline]{font-weight:400}
.tour-story .story-launch.is-expired{background:#d7e9e3}
.tour-story .story-launch:hover{text-decoration:underline;text-underline-offset:3px}
.tour-story .journal-hero h1{font-size:clamp(2rem,3.2vw,3rem);line-height:1.08;letter-spacing:-.04em;margin:0 0 18px}
.tour-story .g-route-summary{font-size:1.125rem;line-height:1.6;max-width:32ch;margin:0 0 20px}
.tour-story .hero-date{font-size:1rem;line-height:1.5;margin:0}
.tour-story .hero-facts{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr);gap:10px;margin:16px 0 0;padding-top:14px}
.tour-story .hero-facts>div{min-width:0}
.tour-story .hero-facts dd{font-size:1.125rem;line-height:1.5;white-space:normal;overflow-wrap:anywhere;margin:0}
.tour-story .hero-facts dd span{font-size:.875rem;font-weight:400}
.tour-story .hero-facts>div+div{padding-left:10px}
.tour-story .g-hero-flight{font-size:.9375rem;line-height:1.5;margin:12px 0 0}
.tour-story .hero-stay-link{display:inline-flex;align-items:center;min-height:44px;max-width:100%;color:inherit;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.tour-story .hero-stay-link:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.tour-story .f-annual{max-width:36ch;font-size:.9375rem;line-height:1.6;margin:0}
.tour-story .f-annual strong{display:inline}
.tour-story .hero-read{display:inline-flex;min-height:44px;margin-top:24px}
/* Grid-stack every slide so the image stretches with the copy at large text
   sizes. The captions stay in flow, reserving room for the 44px controls. */
.tour-story .journal-gallery{display:grid;grid-template-columns:minmax(0,1fr);height:auto;min-height:620px}
.tour-story .journal-slide,.tour-story .journal-slide.is-active{position:relative;inset:auto;grid-area:1/1;align-self:stretch;min-width:0;min-height:inherit}
.tour-story .journal-slide img{position:absolute;inset:0;width:100%;height:100%}
.tour-story .journal-slide figcaption{position:relative;inset:auto;padding:72px 28px 80px;background:linear-gradient(transparent,#092c26d9);gap:0}
.tour-story .journal-slide figcaption strong{font-size:1.5rem;line-height:1.25;font-weight:600}
.tour-story .journal-controls{left:28px;right:28px;bottom:20px;gap:12px}
.tour-story .slide-buttons button{width:44px;min-width:44px;min-height:44px}
/* Match the map's left edge. The paragraph keeps a readable line length. */
.tour-story .journal-intro.g-intro{max-width:1200px;text-align:left}
.tour-story .journal-intro.g-intro>p{max-width:80ch;margin-inline:0}
/* The price is visible from the first frame, in the same compact two-line bar. */
.tour-story .story-dock{grid-template-columns:minmax(0,230px) minmax(0,168px);gap:28px;padding:6px 20px max(6px,env(safe-area-inset-bottom))}
.tour-story .story-dock-summary{display:flex;flex-direction:column;justify-content:center;min-width:0;min-height:44px;gap:1px;text-decoration:none;color:var(--ink)}
.tour-story .story-dock-summary strong{display:block;min-height:1.65rem;line-height:1.2;margin:0}
.tour-story .story-dock [data-dock-price]{font-size:1.375rem;font-variant-numeric:tabular-nums}
.tour-story .story-dock [data-dock-price].expired-price{font-size:1rem}
.tour-story .story-dock-deadline{display:block;font-size:.8125rem;line-height:1.35;color:#52675e}
.tour-story .story-dock .dock-action{display:flex;min-width:0;align-items:center}
.tour-story .story-dock .apply{width:100%;min-height:44px;padding:10px 14px;font-size:.9375rem;line-height:1.35;white-space:normal}
.tour-story .story-dock-summary:focus-visible{outline:2px solid #143f38;outline-offset:3px;border-radius:2px}
/* Additional costs stay fully readable without a competing promotional panel. */
.tour-story .f-scope .scope-grid .extra{background:transparent;border-color:#d5e2d9;border-top-width:1px}
.tour-story .f-scope .extra li+li{border-color:#d7e2db}
.tour-story .g-budget dl{border-top:1px solid #d2dfd8}
.tour-story .g-budget dl>div{padding-block:12px}
.tour-story .g-budget dd{font-size:1rem}
.tour-story .g-budget .g-budget-total{background:transparent;padding-inline:0!important;font-weight:400}
.tour-story .g-budget .g-budget-total strong{font-weight:600}
.tour-story .f-stay{scroll-margin-top:calc(var(--tour-nav-height,64px) + 20px)}
/* Native fragment navigation can focus this non-interactive landmark in Safari.
   Remove its full-section ring; interactive links retain keyboard focus rings. */
.tour-story .f-stay[tabindex="-1"]:focus{outline:none}
.tour-story .f-stay .stay-summary{margin:0;font-size:1.125rem;line-height:1.6}
.tour-story .f-stay .stay-note{max-width:75ch;margin:8px 0 0;font-size:1rem;line-height:1.6;color:#52675e}
.tour-story .f-stay .stay-details{margin-top:20px}
.tour-story .f-stay .stay-details h3{font-size:1rem;margin:20px 0 6px}
/* Real hotel previews, with one Booking link per card. */
.tour-story .booking-hotel-list{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.tour-story .booking-hotel-list>li{display:flex;min-width:0;margin:0;padding:0}
.tour-story .hotel-booking{display:flex;flex-direction:column;align-items:stretch;width:100%;min-width:0;border:1px solid #d5e2d9;border-radius:12px;background:#fff;color:var(--ink);text-decoration:none;overflow:hidden}
.tour-story .hotel-photo{aspect-ratio:3/2;background:#edf2ee;overflow:hidden}
.tour-story .hotel-photo img{display:block;width:100%;height:100%;object-fit:cover}
.tour-story .hotel-card-copy{display:flex;flex:1;flex-direction:column;gap:14px;padding:16px}
.tour-story .hotel-identity{min-width:0;flex:1}
.tour-story .hotel-identity>span{display:block;color:#52675e;font-size:.875rem;line-height:1.5;margin-bottom:3px}
.tour-story .hotel-identity strong{display:block;font-size:1rem;line-height:1.45;font-weight:600;overflow-wrap:anywhere}
.tour-story .hotel-card-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:.875rem;line-height:1.4}
.tour-story .hotel-booking-label{text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.tour-story .hotel-score{display:inline-flex;align-items:baseline;gap:2px;padding:7px 8px;border-radius:6px;background:#143f38;color:#fff;font-weight:700;font-size:1.125rem;line-height:1.2;font-variant-numeric:tabular-nums}
.tour-story .hotel-score small{font-size:.75rem;font-weight:400}
.tour-story .hotel-rating-note{font-size:.875rem;line-height:1.6;color:#52675e;margin:12px 0 0}
.tour-story .hotel-booking:focus-visible{outline:2px solid #143f38;outline-offset:4px}
.tour-story .hotel-booking:hover .hotel-booking-label{text-decoration-thickness:2px}
@media(max-width:1000px) and (min-width:701px){
 .tour-story .journal-hero-copy{padding:24px}
 .tour-story .journal-hero h1{font-size:2rem}
 .tour-story .hero-facts{gap:8px}
 .tour-story .hero-facts>div+div{padding-left:10px}
 .tour-story .booking-hotel-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
 .tour-story .story-opening{width:100%;display:flex;flex-direction:column;margin:0;border-radius:0}
 .tour-story .journal-gallery{order:0;min-height:300px;height:auto}
 .tour-story .journal-hero-copy{order:1;display:block;padding:18px 20px}
 .tour-story .story-launch{margin-bottom:12px;gap:2px 8px}
 .tour-story .journal-hero h1{font-size:1.75rem;line-height:1.15;margin:0 0 12px;letter-spacing:-.035em}
 .tour-story .g-route-summary{font-size:.875rem;line-height:1.5;max-width:none;margin:0 0 12px}
 .tour-story .hero-date{font-size:1rem;line-height:1.5}
 .tour-story .hero-facts{margin:12px 0 0;padding-top:10px;gap:8px}
 .tour-story .hero-facts>div+div{padding-left:8px}
 .tour-story .hero-facts dt{font-size:.75rem;line-height:1.5}
 .tour-story .hero-facts dd{font-size:1rem;line-height:1.5;margin:0}
 .tour-story .hero-facts dd span{font-size:.875rem}
 .tour-story .g-hero-flight{font-size:.875rem;line-height:1.5;margin:10px 0 0}
 .tour-story .f-annual{font-size:.875rem;line-height:1.5;max-width:none;margin:6px 0 0}
 .tour-story .eu-hero-note{font-size:.8125rem;line-height:1.5;margin:6px 0 0}
 .tour-story .hero-read{display:none}
 .tour-story .journal-slide figcaption{padding:52px 16px 72px}
 .tour-story .journal-slide figcaption strong{font-size:1.125rem;line-height:1.3}
 .tour-story .journal-controls{left:16px;right:16px;bottom:12px;gap:10px}
 .tour-story .story-dock{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:12px;padding-inline:16px}
 .tour-story .story-dock .apply{padding-inline:10px}
 .tour-story .booking-hotel-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:12px}
 .tour-story .hotel-card-copy{padding:12px;gap:12px}
}
@supports(height:100svh){
 @media(max-width:700px){.tour-story .journal-gallery{min-height:clamp(280px,36svh,320px)}}
}
@media(max-width:700px) and (max-height:700px){
 .tour-story .journal-gallery{min-height:240px}
}
@media(max-width:370px){
 .tour-story .journal-hero-copy{padding-inline:16px}
 .tour-story .hero-facts{gap:8px}
 .tour-story .hero-facts>div+div{padding-left:9px}
 .tour-story .story-dock{gap:10px;padding-inline:12px}
}
