/* Mobile cover and complete editorial homepage. Desktop and article layouts stay independent. */
.co-app-only { display:none; }
@media (max-width:640px) {
  html[data-co-mobile-homepage] { scroll-snap-type:y mandatory; scroll-padding:0; }
  body.co-mobile-homepage { --co-app-screen:100vh; --co-app-gutter:24px; --co-app-rail-gutter:8px; --co-app-story-gap:6px; overflow-x:clip; }
  @supports (height:100svh) { body.co-mobile-homepage { --co-app-screen:100svh; } }
  @supports (height:100dvh) { body.co-mobile-homepage { --co-app-screen:100dvh; } }
  body.nordic.co-mobile-homepage #main { overflow:clip; background:#fff; color:#151919; }
  body.nordic.co-mobile-homepage #main :is(.hero-photo,.co-app-thumb>img,.co-app-norway>img,.co-app-story>img,.duo .photo-story>img,.news-image>img) { width:100%; height:100%; object-fit:cover; }
  body.nordic.co-mobile-homepage #main>.hero,
  body.nordic.co-mobile-homepage #main>.co-app-feature-screen,
  body.nordic.co-mobile-homepage #main>.co-app-stories-screen,
  body.nordic.co-mobile-homepage #main>.stays,
  body.nordic.co-mobile-homepage #main>.duo>.photo-story,
  body.nordic.co-mobile-homepage #main>.news-section,
  body.nordic.co-mobile-homepage>.nordic-footer { scroll-snap-align:start; scroll-snap-stop:always; }
  /* Only the opening grid and Norway feature have mobile replacements.
     Keep every lower editorial section and the full footer in the document flow. */
  body.nordic.co-mobile-homepage #main>#co-verhalen,
  body.nordic.co-mobile-homepage #main>.feature-band,
  body.nordic.co-mobile-homepage #main>.discover-grid { display:none; }
  body.co-mobile-homepage .co-app-only { display:block; }
  body.nordic.co-mobile-homepage>.co-masthead { padding:22px var(--co-app-gutter); padding-top:calc(22px + env(safe-area-inset-top,0px)); min-height:78px; }
  body.nordic.co-mobile-homepage .co-masthead .brand { font-size:18px; letter-spacing:-.8px; }
  body.nordic.co-mobile-homepage .co-masthead .brand i { font-size:17px; }
  body.nordic.co-mobile-homepage .co-masthead .co-search,
  body.nordic.co-mobile-homepage .co-masthead .co-menu-icon { display:none; }
  body.nordic.co-mobile-homepage .co-masthead .vy-menu-toggle { width:auto; min-height:44px; padding:0 16px; border:1px solid #ffffff75; border-radius:24px; font-size:11px; font-weight:400; }
  body.nordic.co-mobile-homepage #main .hero { height:auto!important; min-height:var(--co-app-screen)!important; max-height:none!important; padding:110px 0 calc(24px + env(safe-area-inset-bottom,0px))!important; display:flex!important; flex-direction:column; justify-content:flex-end!important; align-items:stretch!important; text-align:left!important; gap:0; overflow:clip; }
  body.nordic.co-mobile-homepage #main .hero-photo { filter:none; object-position:center 48%; }
  body.nordic.co-mobile-homepage #main .hero::before { height:130px; background:linear-gradient(#0006,transparent); }
  body.nordic.co-mobile-homepage #main .hero::after { background:linear-gradient(180deg,#0000004d 0%,#00000040 25%,#00000099 42%,#000000cc 100%)!important; pointer-events:none; }
  body.nordic.co-mobile-homepage #main .hero :is(.hero-dark,.hero-grid,.hero-vertical,.hero-pager,.hero-facts,#co-hero-kicker,#co-hero-desc) { display:none!important; }
  body.nordic.co-mobile-homepage #main .co-app-count-row { display:flex; align-items:center; justify-content:space-between; order:3; margin:18px var(--co-app-gutter) 0; min-height:44px; border:0; font-size:12px; line-height:1.3; }
  body.nordic.co-mobile-homepage #main .co-app-slide-count { font-weight:500; letter-spacing:.025em; }
  body.nordic.co-mobile-homepage #main .co-app-next { min-height:44px; padding:0 0 0 16px; font-size:12px; font-weight:400; }
  body.nordic.co-mobile-homepage #main .hero-copy { order:1; display:block!important; position:relative!important; inset:auto!important; translate:none; width:auto; max-width:none!important; margin:0 var(--co-app-gutter); padding:0; }
  body.nordic.co-mobile-homepage #main .hero-copy .hero-title { position:static!important; inset:auto!important; transform:none; width:auto; max-width:none!important; font-size:clamp(24px,8vw,35px)!important; font-weight:700!important; line-height:1.1!important; letter-spacing:-.045em!important; text-transform:none!important; text-wrap:initial; white-space:normal!important; margin:8px 0 8px!important; }
  body.nordic.co-mobile-homepage #main .hero-copy .hero-title::first-letter { text-transform:none; }
  body.nordic.co-mobile-homepage #main .hero-copy .co-app-location { width:auto; max-width:none!important; margin:0 0 15px!important; font-size:13px!important; font-weight:500!important; line-height:1.4!important; color:#fff!important; letter-spacing:0!important; }
  body.nordic.co-mobile-homepage #main .hero-copy .co-app-description { width:auto; max-width:290px!important; margin:0 0 7px!important; font-size:14px!important; line-height:1.4!important; font-weight:400; letter-spacing:0!important; white-space:pre-line; color:#ffffffed!important; text-wrap:initial; }
  body.nordic.co-mobile-homepage #main .hero-copy>.read { width:auto; min-height:44px; justify-content:flex-start; gap:8px; margin:0!important; padding:7px 0!important; border:0!important; border-radius:0!important; background:none; font-size:12px!important; font-weight:400!important; letter-spacing:0!important; text-transform:none!important; text-decoration:underline; text-underline-offset:4px; }
  body.nordic.co-mobile-homepage #main .hero-bottom,
  body.nordic.co-mobile-homepage #main .hero-arrows { display:contents; }
  body.nordic.co-mobile-homepage #main .hero-bottom small,
  body.nordic.co-mobile-homepage #main .hero-arrows :is(#co-prev,#co-next,.hero-pause) { display:none; }
  body.nordic.co-mobile-homepage #main .hero-video-toggle:not([hidden]) { position:absolute; top:95px; right:24px; z-index:3; min-height:44px; padding:8px 12px; font-size:11px; border:1px solid #ffffff80; border-radius:24px; background:#0003; }
  body.nordic.co-mobile-homepage #main .co-app-hero-thumbs { order:2; display:flex; gap:10px; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; scroll-snap-type:x mandatory; scroll-padding-inline:var(--co-app-gutter); padding:8px var(--co-app-gutter) 0; margin-top:10px; }
  body.nordic.co-mobile-homepage #main .co-app-hero-thumbs::-webkit-scrollbar { display:none; }
  body.nordic.co-mobile-homepage #main .co-app-thumb { flex:0 0 calc((100vw - 58px)/2.7); position:relative; aspect-ratio:1; overflow:hidden; border-radius:5px; scroll-snap-align:start; background:#334345; }
  body.nordic.co-mobile-homepage #main .co-app-thumb::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,#0003 15%,#0005 50%,#000c 100%); pointer-events:none; }
  body.nordic.co-mobile-homepage #main .co-app-thumb-label { position:absolute; z-index:1; bottom:9px; left:10px; right:6px; }
  body.nordic.co-mobile-homepage #main .co-app-thumb-label strong { display:block; font-size:12px; line-height:1.3; font-weight:500; }
  body.nordic.co-mobile-homepage #main .co-app-thumb-label>span { display:block; font-size:10px; line-height:1.3; margin-top:2px; color:#ffffffe0; }
  body.nordic.co-mobile-homepage #main .co-app-feature-screen { min-height:var(--co-app-screen); display:flex; flex-direction:column; }
  body.nordic.co-mobile-homepage #main .co-app-intro { padding:26px var(--co-app-gutter) 24px; }
  body.nordic.co-mobile-homepage #main .co-app-heading { font-size:clamp(34px,10vw,44px); font-weight:700!important; line-height:1.07!important; letter-spacing:-.045em!important; text-wrap:initial; }
  body.nordic.co-mobile-homepage #main .co-app-intro>p { margin-top:22px; font-size:15px; line-height:1.4; color:#8b8e8d; }
  body.nordic.co-mobile-homepage #main .co-app-categories { display:flex; justify-content:space-between; gap:20px; margin-top:23px; padding-top:22px; border-top:1px solid #e9ebea; }
  body.nordic.co-mobile-homepage #main .co-app-categories a { min-height:44px; }
  body.nordic.co-mobile-homepage #main .co-app-categories strong { display:block; font-size:21px; line-height:1.2; font-weight:700; letter-spacing:-.025em; }
  body.nordic.co-mobile-homepage #main .co-app-categories span { display:block; margin-top:5px; font-size:11px; line-height:1.3; color:#969a98; }
  body.nordic.co-mobile-homepage #main .co-app-norway { flex:1; position:relative; display:flex; align-items:flex-end; min-height:360px; padding:26px var(--co-app-gutter) 32px; color:#fff; background:#233632; isolation:isolate; overflow:clip; }
  body.nordic.co-mobile-homepage #main .co-app-norway>img { position:absolute; inset:0; z-index:-2; object-position:center; }
  body.nordic.co-mobile-homepage #main .co-app-norway::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,#00000040 0%,#0000004d 45%,#000000bf 100%); pointer-events:none; }
  body.nordic.co-mobile-homepage #main .co-app-feature-number { position:absolute; top:22px; left:var(--co-app-gutter); font-size:clamp(140px,44vw,220px); line-height:1; letter-spacing:-.06em; font-weight:400; color:#ffffff65; }
  body.nordic.co-mobile-homepage #main .co-app-place { display:block; font-size:12px; line-height:1.4; margin-bottom:6px; }
  body.nordic.co-mobile-homepage #main .co-app-norway h2 { font-size:clamp(30px,8.9vw,40px); line-height:1.06!important; letter-spacing:-.035em!important; text-wrap:initial; }
  body.nordic.co-mobile-homepage #main .co-app-text-link { display:flex; align-items:center; gap:9px; font-size:12px; min-height:44px; margin-top:6px; }
  body.nordic.co-mobile-homepage #main .co-app-arrow { display:inline-block; flex-shrink:0; width:1.2em; height:1.2em; background:none; }
  body.nordic.co-mobile-homepage #main .co-app-stories-screen { display:flex; flex-direction:column; min-height:var(--co-app-screen); padding:clamp(32px,5vh,54px) var(--co-app-gutter) calc(40px + env(safe-area-inset-bottom,0px)); }
  body.nordic.co-mobile-homepage #main .co-app-stories-heading>p { font-size:16px; line-height:1.45; margin-top:14px; color:#777d7a; }
  body.nordic.co-mobile-homepage #main .co-app-tabs { display:flex; align-items:center; gap:22px; margin-top:18px; min-height:44px; }
  body.nordic.co-mobile-homepage #main .co-app-tabs button { position:relative; min-height:44px; padding:0 0 8px; font-size:14px; line-height:1.4; font-weight:400; color:#777d7a; }
  body.nordic.co-mobile-homepage #main .co-app-tabs :is([aria-selected=true],[aria-pressed=true]) { font-weight:600; color:#151919; }
  body.nordic.co-mobile-homepage #main .co-app-tabs :is([aria-selected=true],[aria-pressed=true])::after { content:''; position:absolute; left:0; right:0; bottom:6px; height:2px; background:#151919; }
  body.nordic.co-mobile-homepage #main .co-app-story-rail { display:flex; gap:var(--co-app-story-gap); margin:10px calc(-1 * var(--co-app-gutter)) 0; padding:0 var(--co-app-rail-gutter) 4px; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; scroll-snap-type:x mandatory; scroll-padding-inline:var(--co-app-rail-gutter); }
  body.nordic.co-mobile-homepage #main .co-app-story-rail::-webkit-scrollbar { display:none; }
  /* Two complete 3:4 cards, two gaps, and exactly a quarter of the next card.
     Narrow edge insets let the photos grow without narrowing the text column. */
  body.nordic.co-mobile-homepage #main .co-app-story { position:relative; flex:0 0 calc((100vw - var(--co-app-rail-gutter) - var(--co-app-story-gap) - var(--co-app-story-gap))/2.25); aspect-ratio:3/4; border-radius:4px; overflow:hidden; scroll-snap-align:start; background:#15201c; color:#fff; isolation:isolate; }
  body.nordic.co-mobile-homepage #main .co-app-story[hidden] { display:none; }
  body.nordic.co-mobile-homepage #main .co-app-story>img { position:absolute; inset:0; z-index:0; object-fit:cover; }
  body.nordic.co-mobile-homepage #main .co-app-story::after { content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,#00000040 0%,#00000040 35%,#00000073 62%,#000000d1 100%); pointer-events:none; }
  body.nordic.co-mobile-homepage #main .co-app-story-arrow { position:absolute; z-index:2; right:12px; top:12px; color:#fff; font-size:17px; }
  body.nordic.co-mobile-homepage #main .co-app-story-copy { position:absolute; z-index:2; left:14px; right:12px; bottom:16px; color:#fff; }
  body.nordic.co-mobile-homepage #main .co-app-story-copy strong { display:block; font-size:18px; font-weight:700; line-height:1.12; letter-spacing:-.025em; overflow-wrap:anywhere; }
  body.nordic.co-mobile-homepage #main .co-app-story-copy>span { display:block; font-size:12px; line-height:1.3; color:#ffffffe6; margin-top:5px; }
  body.nordic.co-mobile-homepage #main .co-app-progress { width:104px; height:3px; background:#e3e7e5; border-radius:2px; margin-top:16px; }
  body.nordic.co-mobile-homepage #main .co-app-progress>span { display:block; width:30%; height:100%; background:#151919; border-radius:2px; }
  body.nordic.co-mobile-homepage #main .co-app-progress[hidden] { display:none; }
  body.nordic.co-mobile-homepage #main .co-app-top-destinations { margin-top:32px; }
  body.nordic.co-mobile-homepage #main .co-app-top-destinations h3 { font-size:20px; line-height:1.2!important; letter-spacing:-.03em!important; margin:0 0 14px; }
  body.nordic.co-mobile-homepage #main .co-app-top-destinations nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  body.nordic.co-mobile-homepage #main .co-app-top-destinations a { display:flex; align-items:center; gap:10px; min-height:74px; overflow:hidden; border-radius:4px; background:#f4f5f4; }
  body.nordic.co-mobile-homepage #main .co-app-top-destinations img { width:66px; height:74px; flex-shrink:0; object-fit:cover; filter:brightness(.85); }
  body.nordic.co-mobile-homepage #main .co-app-top-destinations strong { display:block; font-size:13px; line-height:1.3; font-weight:600; }
  body.nordic.co-mobile-homepage #main .co-app-top-destinations a>span>span { display:block; font-size:10px; line-height:1.4; margin-top:3px; color:#8b908d; }
  /* Continue below the three opening screens instead of ending at the slider. */
  body.nordic.co-mobile-homepage #main>.content-section { padding:48px var(--co-app-gutter); }
  body.nordic.co-mobile-homepage #main .content-section .section-head { flex-direction:column; align-items:flex-start; gap:12px; margin-bottom:30px; }
  body.nordic.co-mobile-homepage #main .content-section .section-head .display { font-size:clamp(34px,10vw,44px); line-height:1.07!important; letter-spacing:-.045em!important; }
  body.nordic.co-mobile-homepage #main .content-section .section-head .eyebrow { font-size:12px; line-height:1.4; margin-bottom:10px; letter-spacing:0!important; }
  body.nordic.co-mobile-homepage #main .content-section .section-head>.read { margin:0; max-width:none; min-height:44px; font-size:12px; }
  body.nordic.co-mobile-homepage #main .stays { display:block; background:#fff; }
  body.nordic.co-mobile-homepage #main .stays::before { display:none; }
  body.nordic.co-mobile-homepage #main .stays .stay-grid { grid-template-columns:1fr; gap:28px; }
  body.nordic.co-mobile-homepage #main .stays .stay-text { grid-column:auto; border:0; padding:0; }
  body.nordic.co-mobile-homepage #main .stays .stay-card .display { font-size:32px; margin:12px 0 14px; }
  body.nordic.co-mobile-homepage #main .stays .stay-card p { font-size:16px; line-height:1.45; max-width:30ch; }
  body.nordic.co-mobile-homepage #main .stays .stay-card .read { display:flex; min-height:44px; margin-top:14px; font-size:12px; }
  body.nordic.co-mobile-homepage #main>.duo { display:block; }
  body.nordic.co-mobile-homepage #main>.duo>.photo-story { display:flex; align-items:flex-end; height:auto; min-height:var(--co-app-screen); padding:120px var(--co-app-gutter) calc(36px + env(safe-area-inset-bottom,0px)); overflow:clip; }
  body.nordic.co-mobile-homepage #main .duo .photo-story>img { opacity:1; filter:none; }
  body.nordic.co-mobile-homepage #main .duo .photo-story::after { background:linear-gradient(180deg,#00000040 0%,#0000004d 45%,#000000bf 100%); }
  body.nordic.co-mobile-homepage #main .duo .photo-story .photo-copy { position:relative; inset:auto; transform:none; max-width:360px; }
  body.nordic.co-mobile-homepage #main .duo .photo-copy :is(.display,.destination-heading) { font-size:clamp(38px,11.2vw,52px)!important; line-height:1.06!important; letter-spacing:-.045em!important; text-transform:none!important; margin:10px 0 16px; }
  body.nordic.co-mobile-homepage #main .duo .photo-copy .eyebrow { font-size:12px; font-weight:500!important; line-height:1.4; letter-spacing:0!important; }
  body.nordic.co-mobile-homepage #main .duo .photo-copy p { font-size:16px; line-height:1.45; max-width:30ch; letter-spacing:0!important; color:#ffffffe6; }
  body.nordic.co-mobile-homepage #main .duo .photo-copy .read { min-height:44px; font-size:12px; font-weight:400!important; letter-spacing:0!important; margin-top:12px; }
  body.nordic.co-mobile-homepage #main .duo .destination-facts { gap:16px; margin:24px 0 12px; }
  body.nordic.co-mobile-homepage #main .duo .destination-facts dt { font-size:11px; letter-spacing:0!important; text-transform:none; margin-bottom:4px; }
  body.nordic.co-mobile-homepage #main .duo .destination-facts dd { font-size:13px; line-height:1.4; color:#ffffffe6; }
  body.nordic.co-mobile-homepage #main .news-section { display:block; min-height:var(--co-app-screen); }
  body.nordic.co-mobile-homepage #main .news-grid { grid-template-columns:1fr; gap:36px; }
  body.nordic.co-mobile-homepage #main .news-image { position:relative; border-radius:4px; overflow:hidden; aspect-ratio:16/10; }
  body.nordic.co-mobile-homepage #main .news-image::after { content:''; position:absolute; inset:0; background:#0003; pointer-events:none; }
  body.nordic.co-mobile-homepage #main .news-copy { padding-top:16px; }
  body.nordic.co-mobile-homepage #main .news-copy h3 { font-size:24px; margin:8px 0 14px; max-width:none; }
  body.nordic.co-mobile-homepage #main .news-copy p { font-size:15px; line-height:1.45; margin-bottom:16px; }
  body.nordic.co-mobile-homepage #main .news-copy .read { min-height:44px; font-size:12px; }
  body.nordic.co-mobile-homepage>.nordic-footer { display:block; padding:40px var(--co-app-gutter) calc(28px + env(safe-area-inset-bottom,0px)); background:#111719; color:#fff; }
  body.nordic.co-mobile-homepage .nordic-footer .footer-editor-note { padding-bottom:28px; margin-bottom:28px; }
  body.nordic.co-mobile-homepage .nordic-footer .footer-editor-note p { font-size:15px; line-height:1.5; }
  body.nordic.co-mobile-homepage .nordic-footer .footer-main { flex-direction:column; align-items:flex-start; gap:24px; padding-bottom:28px; }
  body.nordic.co-mobile-homepage .nordic-footer .wordmark { font-size:26px; }
  body.nordic.co-mobile-homepage .nordic-footer .footer-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; width:100%; font-size:13px; text-transform:none; letter-spacing:0; }
  body.nordic.co-mobile-homepage .nordic-footer .footer-links a { display:flex; align-items:center; min-height:44px; }
  body.nordic.co-mobile-homepage .nordic-footer .footer-bottom { flex-direction:column; gap:10px; font-size:11px; line-height:1.5; }
  body.nordic.co-mobile-homepage #main .co-app-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; }
}
@media (max-width:360px) {
  body.co-mobile-homepage { --co-app-gutter:20px; }
  body.nordic.co-mobile-homepage #main .co-app-tabs { gap:20px; }
  body.nordic.co-mobile-homepage #main .co-app-break { display:none; }
  body.nordic.co-mobile-homepage #main .co-app-stories-heading>p { font-size:15px; }
  body.nordic.co-mobile-homepage #main .co-app-top-destinations img { width:54px; }
}
/* Safari's visible toolbar reduces the available height. Tighten whitespace,
   keeping the same portrait images and 44px controls. Text zoom can still
   expand the whole section instead of clipping its content. */
@media (max-width:640px) and (max-height:800px) {
  body.nordic.co-mobile-homepage #main .co-app-stories-screen { padding-top:24px; padding-bottom:max(32px,env(safe-area-inset-bottom,0px)); }
  body.nordic.co-mobile-homepage #main .co-app-stories-heading .co-app-heading { font-size:38px; }
  body.nordic.co-mobile-homepage #main .co-app-stories-heading>p { font-size:15px; line-height:1.4; margin-top:12px; }
  body.nordic.co-mobile-homepage #main .co-app-tabs { margin-top:12px; }
  body.nordic.co-mobile-homepage #main .co-app-story-rail { margin-top:8px; }
  body.nordic.co-mobile-homepage #main .co-app-progress { margin-top:12px; }
  body.nordic.co-mobile-homepage #main .co-app-top-destinations { margin-top:20px; }
  body.nordic.co-mobile-homepage #main .co-app-top-destinations h3 { font-size:18px; margin-bottom:10px; }
  body.nordic.co-mobile-homepage #main .co-app-top-destinations a { min-height:64px; }
  body.nordic.co-mobile-homepage #main .co-app-top-destinations img { height:64px; }
}
@media (max-width:640px) and (prefers-reduced-motion:reduce) {
  html[data-co-mobile-homepage] { scroll-snap-type:none; scroll-behavior:auto; }
  body.co-mobile-homepage #main :is(.co-app-story-rail,.co-app-hero-thumbs) { scroll-snap-type:none; scroll-behavior:auto; }
}
