.magazine-hero{position:relative;display:grid;min-height:620px;align-items:end;overflow:hidden;color:#fff}.magazine-hero__image,.magazine-hero__shade{position:absolute;inset:0;width:100%;height:100%}.magazine-hero__image{object-fit:cover}.magazine-hero__shade{background:linear-gradient(90deg,rgba(13,28,21,.88),rgba(13,28,21,.25) 65%,rgba(13,28,21,.05))}.magazine-hero__inner{position:relative;z-index:1;padding-block:7rem 4rem}.magazine-hero h1{max-width:10ch;font-size:clamp(4rem,10vw,8rem);line-height:.9}.magazine-hero__lead{max-width:52ch;margin:1.5rem 0 2rem;font-size:var(--step-1)}.mag-kicker{display:flex;margin-bottom:1rem;align-items:center;gap:.7rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.13em}.mag-kicker::before{width:32px;height:2px;background:var(--color-mustard);content:""}.content-section{padding-block:var(--space-7)}.content-section--ink{background:var(--color-ink);color:#fff}.content-section--mist{background:#dce8e2}.section-intro{display:grid;margin-bottom:3rem;grid-template-columns:1fr minmax(260px,.45fr);gap:3rem;align-items:end}.section-intro h2{font-size:var(--step-4)}.section-intro>p{margin:0;color:var(--color-ink-soft)}.content-section--ink .section-intro>p{color:rgba(255,255,255,.65)}.lead-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.6fr);gap:1.25rem}.lead-story{position:relative;min-height:600px;overflow:hidden;color:#fff}.lead-story img{position:absolute;width:100%;height:100%;object-fit:cover}.lead-story::after{position:absolute;inset:0;background:linear-gradient(0deg,rgba(13,28,21,.92),transparent 70%);content:""}.lead-story__copy{position:absolute;z-index:1;right:2rem;bottom:2rem;left:2rem}.lead-story h2{max-width:14ch;font-size:clamp(2.5rem,5vw,4.6rem)}.story-stack{display:grid;gap:1.25rem}.mini-story{display:grid;min-height:185px;grid-template-columns:42% 1fr;background:var(--color-white);color:var(--color-ink)}.mini-story img{width:100%;height:100%;object-fit:cover}.mini-story__copy{padding:1.25rem}.mini-story h3{margin:.5rem 0;font-size:var(--step-1)}.mini-story p{margin:0;color:var(--color-ink-soft);font-size:.78rem}.region-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}.region-card{position:relative;grid-column:span 4;min-height:280px;overflow:hidden;color:#fff}.region-card:first-child,.region-card:nth-child(5){grid-column:span 8}.region-card img{position:absolute;width:100%;height:100%;object-fit:cover}.region-card::after{position:absolute;inset:0;background:linear-gradient(0deg,rgba(13,28,21,.86),transparent);content:""}.region-card__copy{position:absolute;z-index:1;right:1.25rem;bottom:1.25rem;left:1.25rem}.region-card h3{font-size:var(--step-3)}.region-card p{margin:.3rem 0 0;font-size:.75rem}.ranked-countries{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--color-line)}.ranked-country{display:grid;padding:1.1rem 0;grid-template-columns:48px 1fr auto;gap:1rem;border-bottom:1px solid var(--color-line)}.ranked-country:nth-child(odd){padding-right:2rem}.ranked-country:nth-child(even){padding-left:2rem;border-left:1px solid var(--color-line)}.ranked-country__number{font:500 var(--step-2) var(--font-display);color:var(--color-coral)}.ranked-country p{margin:0;color:var(--color-ink-soft);font-size:.72rem}.editorial-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:2rem}.feature-article img{width:100%;aspect-ratio:16/10;object-fit:cover}.feature-article h3{margin:1rem 0 .5rem;font-size:var(--step-3)}.article-list{border-top:1px solid currentColor}.article-list article{padding:1.25rem 0;border-bottom:1px solid currentColor}.article-list h3{margin:.35rem 0}.article-list p{margin:0;color:var(--color-ink-soft);font-size:.78rem}.content-section--ink .article-list p{color:rgba(255,255,255,.6)}.pull-quote{padding:clamp(2rem,5vw,4rem);background:var(--color-mustard);font:500 clamp(2rem,4vw,4rem)/1.12 var(--font-display)}.reaction-stream{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.reaction{padding:1.25rem;border-top:3px solid var(--color-coral);background:var(--color-white)}.reaction blockquote{margin:0 0 1rem;font-family:var(--font-display);font-size:var(--step-1)}.reaction footer{color:var(--color-ink-soft);font-size:.7rem}.practical-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--color-line)}.practical-card{padding:1.5rem;border-right:1px solid var(--color-line)}.practical-card:last-child{border-right:0}.practical-card__icon{font-size:2rem}.practical-card h3{margin:.75rem 0 .5rem}.practical-card p{margin:0;color:var(--color-ink-soft);font-size:.8rem}.weather-strip{display:grid;grid-template-columns:1.1fr repeat(4,1fr);background:var(--color-forest-dark);color:#fff}.weather-strip>div{padding:1.4rem;border-right:1px solid rgba(255,255,255,.18)}.weather-strip strong{display:block;font:500 var(--step-2) var(--font-display)}.weather-strip span{font-size:.68rem;color:rgba(255,255,255,.65)}.photo-essay{display:grid;grid-template-columns:1.4fr .6fr .6fr;grid-template-rows:240px 240px;gap:.75rem}.photo-essay figure{position:relative;margin:0;overflow:hidden}.photo-essay figure:first-child{grid-row:span 2}.photo-essay img{width:100%;height:100%;object-fit:cover}.photo-essay figcaption{position:absolute;right:.75rem;bottom:.75rem;left:.75rem;padding:.5rem;background:rgba(13,28,21,.76);color:#fff;font-size:.68rem}.hotspot-cloud{display:flex;flex-wrap:wrap;gap:.75rem}.hotspot-link{display:inline-flex;padding:.75rem 1rem;align-items:center;gap:.7rem;border:1px solid var(--color-line);background:var(--color-white)}.hotspot-link span{color:var(--color-coral);font-size:.7rem;text-transform:uppercase}.all-countries{columns:4;column-gap:2rem}.all-countries a{display:block;padding:.35rem 0;border-bottom:1px solid var(--color-line);font-size:.78rem}.magazine-tools{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.magazine-tools a{font-size:.8rem}.season-bar{display:grid;grid-template-columns:repeat(12,1fr);margin-top:1rem}.season-bar span{padding:.45rem .2rem;background:var(--color-paper-deep);font-size:.6rem;text-align:center}.season-bar span.best{background:var(--color-forest);color:#fff}.season-bar span.good{background:var(--color-mustard)}
@media(max-width:900px){.lead-grid,.editorial-grid,.section-intro{grid-template-columns:1fr}.region-card,.region-card:first-child,.region-card:nth-child(5){grid-column:span 6}.reaction-stream{grid-template-columns:1fr 1fr}.practical-grid{grid-template-columns:1fr 1fr}.practical-card:nth-child(2){border-right:0}.practical-card:nth-child(-n+2){border-bottom:1px solid var(--color-line)}.photo-essay{grid-template-columns:1fr 1fr}.photo-essay figure:first-child{grid-column:span 2}.all-countries{columns:3}}
@media(max-width:620px){.magazine-hero{min-height:590px}.lead-story{min-height:520px}.mini-story{grid-template-columns:1fr}.mini-story img{height:180px}.region-card,.region-card:first-child,.region-card:nth-child(5){grid-column:span 12}.ranked-countries{grid-template-columns:1fr}.ranked-country:nth-child(odd),.ranked-country:nth-child(even){padding-inline:0;border-left:0}.reaction-stream,.practical-grid{grid-template-columns:1fr}.practical-card{border-right:0;border-bottom:1px solid var(--color-line)}.weather-strip{grid-template-columns:1fr 1fr}.weather-strip>div:first-child{grid-column:span 2}.photo-essay{grid-template-columns:1fr;grid-template-rows:auto}.photo-essay figure:first-child{grid-column:auto;grid-row:auto}.photo-essay figure{height:260px}.all-countries{columns:2}}

.destination-route-section{background:var(--color-paper)}
.destination-route-section .route-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.25rem,2.5vw,2.5rem)}
.destination-route-section .route-card{display:block;background:var(--color-white)}
.destination-route-section .route-card>img{width:100%;aspect-ratio:4/3;object-fit:cover}
.destination-route-section .route-card>div{padding:1.4rem 1.5rem 1.6rem}
.destination-route-section .route-card span{color:var(--color-coral);font-size:.64rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em}
.destination-route-section .route-card h3{margin:.5rem 0 1.15rem;font-size:var(--step-2)}
.destination-route-section .route-card ol{display:flex;padding:0;margin:0 0 1.25rem;flex-wrap:wrap;gap:.35rem;list-style:none}
.destination-route-section .route-card li{display:flex;align-items:center;color:var(--color-ink-soft);font-size:.68rem}
.destination-route-section .route-card li:not(:last-child)::after{margin-left:.35rem;color:var(--color-coral);content:"→"}
.destination-route-section .route-card small{font-weight:600}
.destination-route-section .route-card:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}
@media(max-width:850px){.destination-route-section .route-card-grid{grid-template-columns:1fr 1fr}.destination-route-section .route-card:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.destination-route-section .route-card:last-child>img{height:100%;aspect-ratio:auto}}
@media(max-width:620px){.destination-route-section .route-card-grid{grid-template-columns:1fr}.destination-route-section .route-card:last-child{display:block;grid-column:auto}.destination-route-section .route-card:last-child>img{height:auto;aspect-ratio:4/3}}

/* Destination magazine gateway */
.magazine-hero--gateway{min-height:520px}
.magazine-hero--gateway .magazine-hero__inner{padding-block:5rem 3rem}
.magazine-hero--gateway h1{max-width:12ch;font-size:clamp(3.8rem,8vw,6.6rem)}
.magazine-hero--region{min-height:560px}
.magazine-hero--region .magazine-hero__inner{padding-block:4.5rem 3rem}
.magazine-hero--region h1{font-size:clamp(4rem,8vw,6.8rem)}
.story-lead-grid{background:var(--color-paper)}
.story-lead-grid__grid{display:grid;min-height:690px;grid-template-columns:1.35fr .65fr;grid-template-rows:1fr 1fr;gap:1rem}
.story-lead-grid__lead,.story-lead-grid__story{position:relative;overflow:hidden;color:var(--color-white)}
.story-lead-grid__lead{grid-row:1/3}
.story-lead-grid__lead>img,.story-lead-grid__story>img{position:absolute;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.story-lead-grid__lead::after,.story-lead-grid__story::after{position:absolute;inset:0;background:linear-gradient(0deg,rgba(13,28,21,.94),transparent 72%);content:""}
.story-lead-grid__lead>div,.story-lead-grid__story>div{position:absolute;z-index:1;right:clamp(1.25rem,3vw,2.5rem);bottom:clamp(1.25rem,3vw,2.5rem);left:clamp(1.25rem,3vw,2.5rem)}
.story-lead-grid span{color:var(--color-mustard);font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em}
.story-lead-grid__lead h3{max-width:11ch;margin:.7rem 0;font-size:clamp(3rem,6vw,6rem);line-height:.92}
.story-lead-grid__lead p{max-width:42ch;margin-bottom:1rem}
.story-lead-grid__lead small,.story-lead-grid__story small{font-weight:600}
.story-lead-grid__story h3{max-width:16ch;margin:.55rem 0;font-size:var(--step-2)}
.story-lead-grid a:hover>img,.story-lead-grid a:focus-visible>img{transform:scale(1.035)}

.activity-list-section{background:var(--color-white)}
.activity-list{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--color-ink)}
.activity-list-section article{display:grid;padding:1.6rem 1.5rem 1.75rem;grid-template-columns:auto 1fr;gap:1rem;border-left:1px solid var(--color-line)}
.activity-list-section article:first-child{border-left:0}
.activity-avatar{display:grid;width:44px;height:44px;place-items:center;border-radius:50%;background:var(--color-forest);color:var(--color-white);font-weight:600}
.activity-avatar--blue{background:var(--color-blue)}
.activity-avatar--coral{background:var(--color-coral)}
.activity-list-section small{color:var(--color-ink-soft);font-size:.64rem}
.activity-list-section h3{margin:.45rem 0;font-size:var(--step-1)}
.activity-list-section p{margin:0 0 .65rem;color:var(--color-ink-soft);font-size:.78rem;line-height:1.5}
.activity-list-section article a{color:var(--color-forest);font-size:.72rem;font-weight:600}

.region-gateway{background:var(--color-mist)}
/* Mosaic of 12 columns: rows of 7+5, 4+4+4 and 3+3+3+3. The pattern repeats every nine cards so any region count tiles. */
/* 4x3 grid of equal blocks. Nine regions fill twelve cells: one card spans two blocks wide, two span two blocks tall.
   Keyed on position and repeating every nine, so any number of regions keeps tiling. */
.region-gateway__grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(12rem,17vw,16rem);gap:1rem}
.region-card-feature{position:relative;grid-column:span 1;grid-row:span 1;overflow:hidden;background:var(--color-ink);color:var(--color-white)}
.region-card-feature:nth-child(9n+1){grid-column:span 2}
.region-card-feature:nth-child(9n+2),.region-card-feature:nth-child(9n+4){grid-row:span 2}
.region-card-feature--wide{grid-column:span 2}
.region-card-feature>img{position:absolute;width:100%;height:100%;object-fit:cover;transition:transform .55s ease}
.region-card-feature:not(.region-card-feature--color)::after{position:absolute;inset:0;background:linear-gradient(0deg,rgba(13,28,21,.9),transparent 72%);content:""}
.region-card-feature>div{position:absolute;z-index:1;right:1.4rem;bottom:1.25rem;left:1.4rem}
.region-card-feature span{color:var(--color-mustard);font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em}
.region-card-feature h3{margin:.15rem 0;font-size:clamp(1.6rem,2.5vw,2.2rem)}
.region-card-feature:nth-child(9n+1) h3{font-size:clamp(2.3rem,3.8vw,3.4rem)}
.region-card-feature:nth-child(9n+2) h3,.region-card-feature:nth-child(9n+4) h3{font-size:clamp(1.9rem,3vw,2.7rem)}
.region-card-feature p{max-width:30ch;margin:0;color:rgba(255,255,255,.76);font-size:.74rem}
.region-card-feature--color{background:var(--color-blue)}
.region-card-feature--coral{background:var(--color-coral);color:var(--color-ink)}
.region-card-feature--color::before{position:absolute;right:-.08em;bottom:-.35em;color:rgba(255,255,255,.1);font:500 11rem var(--font-display);content:"↗"}
.region-card-feature--coral p{color:rgba(25,35,29,.75)}
.region-card-feature:hover>img,.region-card-feature:focus-visible>img{transform:scale(1.04)}

.diary-cta{padding-block:var(--space-7);background:var(--color-mustard);color:var(--color-ink)}
.diary-cta__inner{display:grid;grid-template-columns:1.3fr .7fr;align-items:end;gap:clamp(3rem,10vw,9rem)}
.diary-cta h2{font-size:clamp(3rem,7vw,6.3rem)}
.diary-cta__inner>div:last-child p{margin-bottom:1.5rem}

@media(max-width:900px){.story-lead-grid__grid{min-height:auto;grid-template-columns:1fr;grid-template-rows:560px 300px 300px}.story-lead-grid__lead{grid-row:auto}.activity-list{grid-template-columns:1fr}.activity-list-section article{border-top:1px solid var(--color-line);border-left:0}.activity-list-section article:first-child{border-top:0}.region-gateway__grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:clamp(11rem,26vw,15rem)}.region-card-feature,.region-card-feature:nth-child(9n+2),.region-card-feature:nth-child(9n+4){grid-column:span 1;grid-row:span 1}.region-card-feature:nth-child(9n+1),.region-card-feature--wide{grid-column:span 2;grid-row:span 1}.region-card-feature h3,.region-card-feature:nth-child(9n+2) h3,.region-card-feature:nth-child(9n+4) h3{font-size:clamp(1.6rem,4.4vw,2.4rem)}.region-card-feature:nth-child(9n+1) h3{font-size:clamp(2.2rem,6vw,3rem)}.diary-cta__inner{grid-template-columns:1fr;gap:2rem}}
@media(max-width:620px){.magazine-hero--gateway,.magazine-hero--region{min-height:520px}.magazine-hero--gateway .magazine-hero__inner,.magazine-hero--region .magazine-hero__inner{padding-block:4.5rem 2.5rem}.magazine-hero--gateway h1,.magazine-hero--region h1{font-size:clamp(3.5rem,16vw,5.2rem)}.story-lead-grid__grid{grid-template-rows:520px 270px 270px}.story-lead-grid__lead h3{font-size:clamp(2.8rem,14vw,4.6rem)}.region-gateway__grid{grid-auto-rows:210px;grid-template-columns:1fr}.region-card-feature,.region-card-feature--wide,.region-card-feature:nth-child(9n+1),.region-card-feature:nth-child(9n+2),.region-card-feature:nth-child(9n+4){grid-column:span 1;grid-row:span 1}.activity-list-section article{padding-inline:0}.diary-cta h2{font-size:clamp(3rem,15vw,5rem)}}

.reaction h3{margin:.8rem 0 .5rem;font-size:var(--step-1)}
.reaction p{margin:0;color:var(--color-ink-soft);font-size:.78rem;line-height:1.55}

.story-spread{background:var(--color-paper)}
.story-spread__heading{display:grid;margin-bottom:3rem;align-items:end;grid-template-columns:1fr minmax(270px,.45fr);gap:3rem}
.story-spread__heading h2{max-width:10ch;font-size:var(--step-4)}
.story-spread__heading>p{margin:0;color:var(--color-ink-soft)}
.story-spread__grid{display:grid;align-items:start;grid-template-columns:1.15fr .85fr .85fr;gap:clamp(1.25rem,2.5vw,2.5rem)}
.story-spread__cover,.story-spread__story{display:block;background:transparent}
.story-spread__cover>img,.story-spread__story>img{width:100%;object-fit:cover;transition:transform .55s ease}
.story-spread__cover>img{aspect-ratio:4/5}
.story-spread__story>img{aspect-ratio:4/4.65}
.story-spread__story--offset{margin-top:4.5rem}
.story-spread__story--offset-small{margin-top:2rem}
.story-spread__cover>div,.story-spread__story>div{position:relative;width:88%;padding:1.25rem 1.35rem 1.4rem;margin-left:auto;margin-right:auto;background:var(--color-white)}
.story-spread__cover>div{margin-top:-17.8rem}
.story-spread__story>div{margin-top:-12rem}
.story-spread__story--offset>div{margin-top:-10.8rem}
.story-spread__cover h3{margin:.55rem 0;font-size:clamp(2.3rem,4vw,4.2rem);line-height:.98}
.story-spread__story h3{margin:.55rem 0;font-size:var(--step-2);line-height:1.08}
.story-spread__cover p,.story-spread__story p{margin:0;color:var(--color-ink-soft);font-size:.78rem;line-height:1.55}
.story-spread__type{color:var(--color-blue);font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em}
.story-spread__byline{display:flex;margin-top:1.1rem;padding-top:.9rem;align-items:center;gap:.65rem;border-top:1px solid var(--color-line)}
.story-spread__byline>img,.story-spread__avatar{position:static;display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;border-radius:50%;object-fit:cover}
.story-spread__avatar{background:var(--color-blue);color:var(--color-white);font-size:.7rem;font-weight:600}
.story-spread__byline>span:last-child{display:grid;gap:.05rem}
.story-spread__byline small{color:var(--color-ink-soft);font-size:.56rem;text-transform:uppercase;letter-spacing:.08em}
.story-spread__byline strong{font-size:.75rem}
.story-spread__cover:hover>img,.story-spread__story:hover>img{transform:scale(1.025)}
@media(max-width:900px){.story-spread__heading{grid-template-columns:1fr}.story-spread__grid{grid-template-columns:1fr 1fr}.story-spread__cover{grid-column:1/-1;display:grid;grid-template-columns:1.2fr .8fr}.story-spread__cover>img{height:100%;aspect-ratio:auto}.story-spread__cover>div{width:calc(100% + 2rem);margin:2rem 0 2rem -2rem;align-self:center}}
@media(max-width:620px){.story-spread__grid{grid-template-columns:1fr;gap:2.5rem}.story-spread__cover{display:block;grid-column:auto}.story-spread__cover>img{height:auto;aspect-ratio:4/5}.story-spread__cover>div,.story-spread__story>div{width:88%;margin:-7rem auto 0}.story-spread__story--offset,.story-spread__story--offset-small{margin-top:0}}

.route-card-section{background:var(--color-white)}
.route-card-section .route-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.25rem,2.5vw,2.5rem)}
.route-card-section .route-card{display:block;border-top:4px solid var(--color-mustard);background:var(--color-paper)}
.route-card-section .route-card:nth-child(2){border-top-color:var(--color-blue)}
.route-card-section .route-card:nth-child(3){border-top-color:var(--color-coral)}
.route-card-section .route-card>svg{display:block;width:100%;height:auto;background:var(--color-mist)}
.route-card-section .route-card__land{fill:color-mix(in srgb,var(--color-forest) 18%,var(--color-paper-deep))}
.route-card-section .route-card__line{fill:none;stroke:var(--color-coral);stroke-width:4;stroke-linecap:round;stroke-dasharray:7 7}
.route-card-section .route-card circle{fill:var(--color-coral);stroke:var(--color-white);stroke-width:3}
.route-card-section .route-card>div{padding:1.35rem 1.5rem 1.6rem}
.route-card-section .route-card span{color:var(--color-coral);font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em}
.route-card-section .route-card h3{margin:.45rem 0 .65rem;font-size:var(--step-2);line-height:1.08}
.route-card-section .route-card p{margin:0 0 1rem;color:var(--color-ink-soft);font-size:.72rem}
.route-card-section .route-card small{font-weight:600}
.route-card-section .route-card:hover h3,.route-card-section .route-card:focus-visible h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}
@media(max-width:850px){.route-card-section .route-card-grid{grid-template-columns:1fr 1fr}.route-card-section .route-card:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.route-card-section .route-card:last-child>svg{height:100%}}
@media(max-width:620px){.route-card-section .route-card-grid{grid-template-columns:1fr}.route-card-section .route-card:last-child{display:block;grid-column:auto}.route-card-section .route-card:last-child>svg{height:auto}}

.place-collage-section{background:var(--color-paper)}
.place-collage{display:grid;grid-auto-flow:dense;grid-auto-rows:250px;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.place-card{position:relative;overflow:hidden;background:var(--color-ink);color:var(--color-white)}
.place-card--hero{grid-column:span 2;grid-row:span 2}
.place-card--tall{grid-row:span 2}
.place-card--small{grid-column:span 1}
.place-card--wide{grid-column:span 2}
.place-card>img{position:absolute;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.place-card:not(.place-card--color)::after{position:absolute;inset:0;background:linear-gradient(0deg,rgba(13,28,21,.94),rgba(13,28,21,.05) 75%);content:""}
.place-card__copy{position:absolute;z-index:1;right:1.35rem;bottom:1.25rem;left:1.35rem}
.place-card__copy>span:first-child{color:var(--color-mustard);font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em}
.place-card h3{margin:.3rem 0;font-size:clamp(2rem,4vw,3.8rem);line-height:.96}
.place-collage-section .place-card h3{font-size:clamp(1.75rem,2.8vw,2.9rem);line-height:1}
.place-card--small h3,.place-card--color h3{font-size:var(--step-2)}
.place-card p{max-width:34ch;margin:.5rem 0 0;color:rgba(255,255,255,.76);font-size:.74rem;line-height:1.45}
.place-card__author{display:flex;margin-top:.9rem;align-items:center;gap:.55rem}
.place-card__avatar,.place-card__author>img{position:static;display:grid;width:34px;height:34px;flex:0 0 34px;place-items:center;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:var(--color-forest);object-fit:cover;color:var(--color-white);font-size:.62rem;font-weight:600}
.place-card__avatar--blue{background:var(--color-blue)}
.place-card__avatar--coral{background:var(--color-coral)}
.place-card__author>span:last-child{display:grid;gap:.02rem}
.place-card__author small{color:rgba(255,255,255,.62);font-size:.52rem;text-transform:uppercase;letter-spacing:.08em}
.place-card__author strong{font-size:.7rem}
.place-card--color{background:var(--color-blue)}
.place-card--green{background:var(--color-forest)}
.place-card--yellow{background:var(--color-mustard);color:var(--color-ink)}
.place-card--yellow .place-card__copy>span:first-child{color:var(--color-ink)}
.place-card--yellow p,.place-card--yellow .place-card__author small{color:rgba(25,35,29,.7)}
.place-card--yellow .place-card__author>img{border-color:rgba(25,35,29,.4)}
.place-card--color::before{position:absolute;right:-.08em;bottom:-.38em;color:rgba(255,255,255,.09);font:500 11rem var(--font-display);content:"↗"}
.place-card:hover>img,.place-card:focus-visible>img{transform:scale(1.04)}
@media(max-width:900px){.place-collage{grid-template-columns:1fr 1fr}.place-card--hero,.place-card--wide{grid-column:span 2}.place-card--tall{grid-row:span 2}}
@media(max-width:620px){.place-collage{grid-auto-rows:270px;grid-template-columns:1fr}.place-card,.place-card--hero,.place-card--wide{grid-column:span 1;grid-row:span 1}.place-card--hero{min-height:430px}.place-card--tall{min-height:400px}.place-card h3{font-size:clamp(2.4rem,12vw,3.5rem)}}

.traveler-showcase{overflow:hidden;background:var(--color-ink);color:var(--color-white)}
.traveler-showcase__heading{display:grid;margin-bottom:3rem;align-items:end;grid-template-columns:1fr minmax(270px,.45fr);gap:3rem}
.traveler-showcase__heading h2{max-width:10ch;font-size:var(--step-4)}
.traveler-showcase__heading>p{margin:0;color:rgba(255,255,255,.68)}
.traveler-showcase__grid{display:grid;align-items:start;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1rem,2vw,2rem)}
.traveler-card{position:relative;display:block;background:var(--color-white);color:var(--color-ink)}
.traveler-card--offset{margin-top:3.5rem}
.traveler-card>img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .55s ease}
.traveler-card__avatar{position:absolute;top:calc(58% - 26px);left:1.25rem;display:grid;width:52px;height:52px;place-items:center;border:3px solid var(--color-white);border-radius:50%;background:var(--color-coral);color:var(--color-white);font-weight:600}
.traveler-card__avatar--blue{background:var(--color-blue)}
.traveler-card__avatar--brown{background:var(--color-brown)}
.traveler-card__avatar--green{background:var(--color-forest)}
.traveler-card>div{min-height:180px;padding:2.2rem 1.25rem 1.35rem}
.traveler-card>div>span{color:var(--color-coral);font-size:.58rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em}
.traveler-card h3{margin:.3rem 0;font-size:var(--step-2)}
.traveler-card p{margin:0 0 1rem;color:var(--color-ink-soft);font-size:.75rem}
.traveler-card small{font-size:.68rem;font-weight:600}
.traveler-card:hover>img,.traveler-card:focus-visible>img{transform:scale(1.025)}
@media(max-width:900px){.traveler-showcase__heading{grid-template-columns:1fr}.traveler-showcase__grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.traveler-showcase__grid{grid-template-columns:1fr;gap:2rem}.traveler-card--offset{margin-top:0}.traveler-card>img{aspect-ratio:4/3}.traveler-card__avatar{top:calc(57% - 26px)}}

.destination-intro__copy{max-width:72ch}
.destination-intro__lead{font:500 var(--step-1)/1.55 var(--font-display)}
.destination-intro__copy p+p{margin-top:1.25rem}
.season-overview{display:grid;margin-top:clamp(3rem,7vw,6rem);padding-top:2rem;align-items:end;grid-template-columns:.7fr 1.3fr;gap:1.5rem 3rem;border-top:1px solid var(--color-ink)}
.season-overview h2{font-size:var(--step-3)}
.season-overview>p{max-width:58ch;margin:0;color:var(--color-ink-soft)}
.season-overview .season-bar{grid-column:1/-1;margin-top:.5rem}
.season-overview .season-bar span{display:grid;padding-block:.6rem;place-items:center;gap:.1rem;font-size:.85rem;font-weight:600}
.season-overview .season-bar small{display:block;color:inherit;font-size:.65rem;font-weight:500;opacity:.76}
.season-note{display:block;margin-top:.65rem;color:var(--color-ink-soft);font-size:.62rem;line-height:1.4}
.weather-strip__reading{display:flex;align-items:center;gap:.55rem}
.weather-strip>div>span:not(.weather-strip__reading){display:block}
.weather-strip>div>span:first-child::first-letter{text-transform:uppercase}
.weather-strip__source{margin:.6rem 0 0;font-size:.68rem;color:var(--color-ink-soft)}
.weather-strip__source a{text-decoration:underline;text-underline-offset:3px}
.weather-strip__reading i{display:grid;width:30px;height:30px;place-items:center;border:1px solid rgba(255,255,255,.28);border-radius:50%;color:var(--color-mustard);font-size:1rem;font-style:normal}
.weather-strip__reading strong{margin:0}
.weather-strip__summary .weather-strip__reading i{width:38px;height:38px;font-size:1.25rem}
@media(max-width:720px){.season-overview{grid-template-columns:1fr;gap:1rem}.season-overview .season-bar{grid-column:auto;overflow-x:auto}.season-overview .season-bar span{min-width:42px}}

.fact-index{background:var(--color-paper)}
.fact-index__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));border-top:1px solid var(--color-ink);border-left:1px solid var(--color-line)}
.fact-card{position:relative;grid-column:span 3;min-height:260px;padding:1.4rem 1.35rem;border-right:1px solid var(--color-line);border-bottom:1px solid var(--color-line);background:var(--color-white);overflow:hidden}
.fact-card>b{display:none}
.fact-card>span{position:relative;display:block;width:50px;height:50px;min-height:50px;margin-bottom:2rem;align-self:start;border-radius:14px;background:var(--color-ink);color:var(--color-white);font-size:0;line-height:0;transform:rotate(-3deg);transform-origin:center}
.fact-card>span::before{position:absolute;top:50%;left:50%;display:block;width:25px;height:25px;background:currentColor;content:"";transform:translate(-50%,-50%) rotate(3deg);transform-origin:center;mask-image:var(--fact-card-icon);mask-position:center;mask-repeat:no-repeat;mask-size:contain}
/* A four-step cycle lands on the same colour in every grid column, so the tiles read as stripes.
   This shuffled sixteen-step cycle keeps all four colours balanced without repeating a neighbour
   in the four, two or one column layout. Positions 1, 6, 9 and 14 keep the default ink. */
.fact-card:nth-child(16n+4)>span,
.fact-card:nth-child(16n+7)>span,
.fact-card:nth-child(16n+10)>span,
.fact-card:nth-child(16n+13)>span{background:var(--color-blue)}
.fact-card:nth-child(16n+2)>span,
.fact-card:nth-child(16n+5)>span,
.fact-card:nth-child(16n+12)>span,
.fact-card:nth-child(16n+15)>span{background:var(--color-coral)}
.fact-card:nth-child(16n+3)>span,
.fact-card:nth-child(16n+8)>span,
.fact-card:nth-child(16n+11)>span,
.fact-card:nth-child(16n)>span{background:var(--color-mustard);color:var(--color-ink)}
.fact-index__grid h3{margin-bottom:.6rem;font-size:var(--step-1)}
.fact-index__grid p{margin:0;color:var(--color-ink-soft);font-size:.76rem;line-height:1.55}

/* Card bodies are Markdown, so they can hold more than the single paragraph the design assumes. */
.practical-card__body :is(p,li,blockquote){margin:0;color:var(--color-ink-soft);font-size:.8rem}
.fact-card__body :is(p,li,blockquote){margin:0;color:var(--color-ink-soft);font-size:.76rem;line-height:1.55}
.practical-card__body>*+*,.fact-card__body>*+*{margin-top:.55rem}
.practical-card__body :is(ul,ol),.fact-card__body :is(ul,ol){margin:0;padding-left:1.1rem}
.practical-card__body li+li,.fact-card__body li+li{margin-top:.25rem}
.practical-card__body a,.fact-card__body a{color:inherit;text-decoration:underline;text-underline-offset:2px}
@media(max-width:900px){.fact-card{grid-column:span 6}}
@media(max-width:560px){.fact-index__grid{grid-template-columns:1fr}.fact-card{grid-column:auto;min-height:0}.fact-card>span{margin-bottom:1rem}}
