/* Full-window chapters share the document scroller, including on touch screens.
   A chapter can grow with its content; no nested scrolling or clipped copy. */
html.r14-snap {
    --r14-snap-header: clamp(80px, 6.75vw, 108px);
    --r14-window: 100svh;
    scroll-snap-type: y mandatory;
    scroll-padding-block: var(--r14-snap-header) 0;
}

html.r14-snap--home { --r14-snap-header: 68px; }

@supports (height: 100dvh) {
    html.r14-snap { --r14-window: 100dvh; }
}

body.round14 {
    --r14-screen: calc(var(--r14-window) - var(--r14-snap-header));
    --r14-screen-padding: clamp(32px, 5vh, 72px);
}

/* The root accounts for the sticky navigation once, for snapping and anchors. */
body.round14 main [id] { scroll-margin-block-start: 0; }

/* Fixed navigation stays outside snap calculations when menu focus returns. */
body.round14:not(.page-home) .site-header { position: fixed; inset: 0 0 auto; }
body.round14:not(.page-home) main { padding-top: var(--r14-snap-header); }

body.round14 :is(.r14-hero, .r14-section, .r14-cta, .r14-footer,
    .r13-page-hero, .r13-section, [data-r14-catalog-group]) {
    box-sizing: border-box;
    min-height: var(--r14-screen);
    scroll-snap-align: start;
    scroll-snap-stop: always;
    scroll-margin-block: 0;
}

body.round14 :is(.r14-section, .r14-cta, .r14-footer, .r13-section) {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-block: var(--r14-screen-padding);
}

body.round14 :is(.r14-hero--full, .r14-hero--text, .r13-page-hero) {
    display: flex;
    align-items: center;
}

body.round14 :is(.r14-hero--text, .r13-page-hero) {
    padding-block: var(--r14-screen-padding);
}

body.round14 :is(.r14-hero--split, .r14-hero--split_reverse,
    .r14-hero--contained, .r14-hero--about) > .r14-hero__inner {
    min-height: var(--r14-screen);
}

body.round14 :is(.r14-hero--contained, .r14-hero--about) > .r14-hero__inner {
    padding-block: var(--r14-screen-padding);
}

/* Keep the original home scene, copy and video controller in place. */
body.round14.r10-home-page .r10-home-hero {
    min-height: var(--r14-window);
    scroll-snap-align: start;
    scroll-snap-stop: always;
}

.round14 .r14-catalog { padding-block: 0; }
.round14 .r14-catalog-nav { margin-top: var(--r14-screen-padding); }
.round14 [data-r14-catalog-group] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-block: var(--r14-screen-padding);
}
.round14 .r14-catalog-groups > section + section { margin-top: 0; }
body.round14 .r14-catalog-groups > section:first-child {
    min-height: calc(var(--r14-screen) - var(--r14-catalog-intro, 0px));
    scroll-margin-block-start: var(--r14-catalog-intro, 0px);
}

@media (max-width: 920px) {
    html.r14-snap { --r14-snap-header: 76px; }
    html.r14-snap--home { --r14-snap-header: 64px; }
    /* The compact directory travels with its first chapter on small screens. */
    .round14 .r14-catalog { display: block; position: relative; }
    .round14 .r14-catalog-nav { margin: 0; padding-top: var(--r14-screen-padding); }
    .round14 .r14-catalog-nav + .r14-catalog-groups > section:first-child {
        padding-top: 32px;
    }
    .no-js .r14-catalog { scroll-snap-align: start; scroll-snap-stop: always; }
    .no-js .r14-catalog-groups > section:first-child { scroll-snap-align: none; }
}

@media (max-width: 680px) {
    html.r14-snap { --r14-snap-header: 72px; }
    html.r14-snap--home { --r14-snap-header: 64px; }
    body.round14 { --r14-screen-padding: 40px; }
}

@media (prefers-reduced-motion: reduce) {
    html.r14-snap { scroll-behavior: auto; }
}

@media print {
    html.r14-snap { scroll-snap-type: none; }
    body.round14 { --r14-screen: 0px; --r14-window: 0px; }
}
