/* Brand and two clear destinations. Existing film/header behavior stays shared. */
.flow-home main>.brand-story{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);column-gap:8%;row-gap:30px;padding:128px 8% 100px;align-content:center}
.flow-home .brand-story .section-heading{grid-column:1;grid-row:1;margin:0;align-self:end;max-width:none}
.flow-home .brand-story h2{font-size:clamp(32px,3.3vw,46px);line-height:1.65}
.flow-home .brand-story .brand-still{grid-column:2;grid-row:1/3;width:100%;margin:0;align-self:center}
.flow-home .brand-story .brand-still img{aspect-ratio:3/4;max-height:690px;height:auto;object-position:50% 100%}
.flow-home .brand-story .section-copy{grid-column:1;grid-row:2;max-width:470px;margin:0}
.flow-home .brand-story .section-copy p{font-size:16px;line-height:2;letter-spacing:.02em;margin:0 0 18px}
.flow-home .brand-story .line-link{margin-top:12px;min-width:210px}
.flow-home main>.destinations{display:block;min-height:0;border-top:1px solid var(--line);padding:120px 8% 100px}
.flow-home .destinations>.section-heading{max-width:none;margin:0 0 54px}
.flow-home .destinations h2{font-size:clamp(32px,3.3vw,46px);line-height:1.65}
.destination-grid{display:grid;grid-template-columns:1fr 1fr;gap:8%}
.destination-card{display:flex;flex-direction:column;align-items:flex-start;border-top:1px solid #71806c;padding:28px 0 0;min-width:0}
.destination-card .eyebrow{margin-bottom:22px}
.destination-card h3{font-size:clamp(21px,2vw,27px);line-height:1.7;letter-spacing:.01em;margin:0 0 20px;text-wrap:pretty}
.destination-card>p:not(.eyebrow){color:var(--muted);font-size:16px;line-height:2;max-width:450px;margin:0 0 26px}
.destination-card .destination-cta{margin-top:auto;min-width:210px;border-bottom-color:#c5d4b6}
.store-locations{display:grid;grid-template-columns:1.12fr 1fr;gap:30px 8%;margin-top:84px;padding-top:44px;border-top:1px solid var(--line);scroll-margin-top:112px}
.locations-heading{grid-column:1/-1}.locations-heading .eyebrow{margin-bottom:14px}.locations-heading h3{font-size:24px}
.store-locations .store-photo{grid-column:1;grid-row:2;margin:0}.store-locations .store-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 65%}
.store-locations .store-switch{grid-column:2;grid-row:2;padding:0;align-self:start}
.store-locations .store-tabs{margin-bottom:24px}.store-locations .store-panel{min-height:285px;max-width:100%}.store-locations .store-panel h3{font-size:20px}.store-locations .store-panel address{font-size:16px;line-height:1.9;margin:18px 0}
.flow-home main>.store-updates{display:grid;grid-template-columns:1fr 1fr;gap:8%;min-height:0;padding:70px 8%;border-top:1px solid var(--line);align-items:center}
.store-updates h2{font-size:25px;line-height:1.6;margin-bottom:18px}.store-updates p:not(.eyebrow){font-size:14px;color:var(--muted);margin:0}.store-updates .eyebrow{margin-bottom:14px}.updates-links{display:flex;flex-direction:column;gap:14px;align-items:stretch}.updates-links .line-link{font-size:13px}
.flow-home .page-footer{padding-top:52px}
@media(max-width:900px){
 .flow-home main>.brand-story{column-gap:6%;padding-left:6%;padding-right:6%}.flow-home .brand-story h2{font-size:30px}.flow-home .brand-story .section-copy p{font-size:15px;line-height:1.95}
 .flow-home main>.destinations{padding-left:6%;padding-right:6%}.destination-grid{gap:6%}.destination-card h3{font-size:23px}.destination-card .destination-cta{min-width:190px}.store-locations{column-gap:6%}
}
@media(max-width:700px){
 .flow-home main>.brand-story{display:block;padding:112px 8% 72px;min-height:0}
 .flow-home .brand-story .section-heading{margin:0 0 30px}.flow-home .brand-story h2{font-size:30px;line-height:1.65}
 .flow-home .brand-story .brand-still{margin:0 0 28px}.flow-home .brand-story .brand-still img{aspect-ratio:4/3;max-height:none}.flow-home .brand-story .brand-still figcaption{font-size:10px;line-height:1.6;margin-top:10px;letter-spacing:.04em}
 .flow-home .brand-story .section-copy{margin:0;max-width:none}.flow-home .brand-story .section-copy p{font-size:16px;line-height:1.95;margin-bottom:18px}.flow-home .brand-story .line-link{margin-top:2px;min-width:210px}
 .flow-home main>.destinations{padding:110px 8% 72px}.flow-home .destinations>.section-heading{margin-bottom:36px}.flow-home .destinations h2{font-size:30px;line-height:1.65}
 .destination-grid{grid-template-columns:1fr;gap:38px}.destination-card{padding-top:22px}.destination-card .eyebrow{margin-bottom:16px}.destination-card h3{font-size:23px;margin-bottom:16px;line-height:1.7}.destination-card>p:not(.eyebrow){font-size:16px;line-height:1.95;margin-bottom:18px}.destination-card .destination-cta{min-width:210px}
 .store-locations{display:block;margin-top:56px;padding-top:32px;scroll-margin-top:100px}.locations-heading{margin-bottom:26px}.locations-heading h3{font-size:22px;line-height:1.7}.store-locations .store-photo{margin:0 0 26px}.store-locations .store-switch{padding:0}.store-locations .store-panel{min-height:280px;margin:0}.store-locations .store-tabs{margin-bottom:22px}
 .flow-home main>.store-updates{display:block;padding:50px 8%}.store-updates h2{font-size:24px}.updates-links{margin-top:28px}.store-updates .updates-links .line-link{min-height:48px;font-size:13px}
 html[lang=en] .flow-home .brand-story h2,html[lang=en] .flow-home .destinations h2{font-size:30px;line-height:1.4}.flow-home .brand-story .heading-unit{white-space:nowrap}
}
@media(max-width:360px){.flow-home .brand-story h2,.flow-home .destinations h2{font-size:27px}.destination-card h3{font-size:21px}.store-locations .store-panel h3{font-size:18px}}

/* Store photo and details commit as one decoded, gently fading selection. */
.store-switch-smooth .store-panel{animation:none}
.store-tabs button[data-loading]{opacity:.65}
.store-load-status:not(.visually-hidden){font-size:13px;line-height:1.7;color:var(--muted);margin:16px 0 0}
.store-locations .store-photo img{display:block;width:100%;aspect-ratio:4/3;height:auto}
@media(prefers-reduced-motion:reduce){.store-tabs button[data-loading]{opacity:1}}

/* The browser owns every gesture and its inertia. Oversized snap areas allow
   free scrolling between their top and bottom; only chapter boundaries snap. */
html:has(body.flow-home),html.paged-input:has(body.flow-home){scroll-snap-type:y mandatory;scroll-behavior:auto;scroll-padding-top:0}
.flow-home main>.hero,.flow-home main>.brand-story,.flow-home main>.destinations,.flow-home main>.store-locations{scroll-snap-align:start;scroll-snap-stop:always;scroll-margin-top:0}
.flow-home main>.store-updates{scroll-snap-align:start;scroll-snap-stop:normal;scroll-margin-top:0}
.flow-home .page-footer{scroll-snap-align:end;scroll-snap-stop:normal;scroll-margin-top:0}
@media(max-width:900px),(pointer:coarse){
 .flow-home .reveal-group.section-enter{animation-name:mobile-section-fade}
 @keyframes mobile-section-fade{from{opacity:0}to{opacity:1}}
}
@media(prefers-reduced-motion:reduce){
 html:has(body.flow-home),html.paged-input:has(body.flow-home){scroll-snap-type:none;scroll-behavior:auto}
}

/* Original menu logo; preserve its intrinsic shape and header position. */
.menu-logo{display:flex;align-items:center;width:240px;max-width:calc(100% - 108px);min-height:44px;flex-shrink:1}
.menu-logo img{display:block;width:100%;height:auto}
.menu-dialog .close-button{flex-shrink:0}
@media(max-width:600px){.menu-logo{width:176px}}

/* A normal word space between the two flex text runs. */
.site-header .shop-link{gap:.35em}

/* Independent third chapter; native touch scrolling stays browser-owned. */
.flow-home main>.store-locations{margin:0 auto;padding:112px 8% 88px;max-width:1440px;min-height:0;scroll-margin-top:0}
.locations-heading h2{font-size:clamp(28px,3vw,42px);line-height:1.65}
.flow-home main>.store-updates{display:block;padding:80px 8%}
.news-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;margin-top:36px}
.news-card{min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.news-image-link{display:block;width:100%;margin-bottom:24px;background:#11170f}
.news-card img{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain}
.news-card h3{font-size:24px;line-height:1.5;margin-bottom:16px}
.news-card h3 span{font-size:16px}
.store-updates .news-card p:not(.eyebrow){margin-bottom:20px;line-height:1.9}
.news-card .line-link{margin-top:auto}
.store-updates .updates-links{margin-top:36px;flex-direction:row;gap:30px;flex-wrap:wrap}
.store-updates .draft-note{max-width:620px}
/* Compact native dialog, with a sticky close control and internal scrolling. */
#menu-dialog{inset:88px 24px auto auto;width:440px;height:auto;max-width:calc(100vw - 48px);max-height:min(680px,calc(100svh - 112px));margin:0;border:1px solid var(--line);overflow:auto;overscroll-behavior:contain;box-shadow:0 16px 70px #0008}
#menu-dialog::backdrop{background:#0006}
#menu-dialog .dialog-top{padding:16px 22px;gap:16px}
#menu-dialog .menu-logo{width:210px}
#menu-dialog .menu-languages{margin:0;padding:0 22px 10px}
#menu-dialog .menu-body{display:block;margin:0;padding:0 22px}
#menu-dialog .menu-item{grid-template-columns:22px minmax(0,1fr);gap:12px;min-height:62px;padding:12px 0}
#menu-dialog .item-text{font-size:22px;line-height:1.4}
#menu-dialog .item-text>span{font-size:11px;line-height:1.6;margin-top:4px}
#menu-dialog .dialog-bottom{margin:0;padding:18px 22px 22px;display:block}
#menu-dialog .dialog-bottom>.small-label{display:none}
@media(max-width:700px){
 .flow-home main>.store-locations{padding:96px 8% 64px}
 .locations-heading h2{font-size:27px;line-height:1.65}
 .news-grid{grid-template-columns:1fr;gap:38px}
 .flow-home main>.store-updates{padding:64px 8%}
 #menu-dialog{inset:72px 12px auto;width:calc(100vw - 24px);max-width:none;max-height:calc(100svh - 84px)}
 #menu-dialog .dialog-top{padding:12px 16px;gap:12px}
 #menu-dialog .menu-logo{width:176px}
 #menu-dialog .menu-body{padding:0 18px}
 #menu-dialog .menu-languages{padding:0 18px 8px}
 #menu-dialog .item-text{font-size:21px}
 #menu-dialog .dialog-bottom{padding:16px 18px 20px}
}


/* Align the compact panel with the menu control on the left. */
@media(min-width:701px){#menu-dialog{left:var(--gutter);right:auto}}

/* Keep the existing first-loop trigger; soften only the entrance. */
.hero-content .hero-actions.cta-arrive{animation:hero-actions-rise 1.9s cubic-bezier(.25,.1,.25,1) backwards;animation-delay:0s}
@keyframes hero-actions-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:701px) and (hover:hover) and (pointer:fine){
 .site-header .menu-toggle,.nav-intro .site-header .menu-toggle{display:flex!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;animation:none;justify-content:flex-start}
 :where(html.header-film-complete) .site-header .brand,:where(html.header-film-complete) .site-header .shop-link,:where(html.header-film-complete) .site-header .language-switch,:where(html.header-film-complete) .site-header .menu-toggle>span:last-child{opacity:0!important;pointer-events:none!important;transition:opacity .55s ease!important}
 .site-header:hover .brand,.site-header:hover .shop-link,.site-header:hover .language-switch,.site-header:hover .menu-toggle>span:last-child,
 .site-header:focus-within .brand,.site-header:focus-within .shop-link,.site-header:focus-within .language-switch,.site-header:focus-within .menu-toggle>span:last-child,
 html:has(#menu-dialog[open]) .site-header .brand,html:has(#menu-dialog[open]) .site-header .shop-link,html:has(#menu-dialog[open]) .site-header .language-switch,html:has(#menu-dialog[open]) .site-header .menu-toggle>span:last-child{opacity:1!important;pointer-events:auto!important}
}
@media(prefers-reduced-motion:reduce){
 .hero-content .hero-actions.cta-arrive{animation:none!important;opacity:1;transform:none}
 .site-header .brand,.site-header .shop-link,.site-header .language-switch,.site-header .menu-toggle>span:last-child{opacity:1!important;pointer-events:auto!important;transition:none!important}
}

.store-locations>.section-heading{max-width:none}

@media(min-width:701px) and (hover:hover) and (pointer:fine){
 html:not(.header-film-complete) .site-header .brand,html:not(.header-film-complete) .site-header .shop-link,html:not(.header-film-complete) .site-header .language-switch{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
}

/* Three film stages: identity, navigation with copy, then actions and scroll. */
html[data-header-stage] .site-header .brand,html[data-header-stage] .site-header .language-switch{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
html[data-header-stage] .site-header .shop-link,html[data-header-stage] .site-header .menu-toggle{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
html[data-header-stage="1"] .site-header .shop-link{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
html[data-header-stage="1"][data-header-exposed="true"] .site-header .shop-link{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
html[data-header-stage="1"] .site-header .menu-toggle>span:last-child{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
html[data-header-stage="2"] .site-header .menu-toggle>span:last-child,html[data-header-stage="3"] .site-header .menu-toggle>span:last-child{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
html[data-header-stage="1"] .scroll-link,html[data-header-stage="2"] .scroll-link{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
html[data-header-stage="3"] .scroll-link{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
@media(min-width:701px) and (hover:hover) and (pointer:fine){
 html[data-header-stage="1"] .site-header .menu-toggle{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
 html[data-header-stage="1"][data-header-exposed="true"] .site-header .menu-toggle{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
}

/* Slower text entrances, with small travel and no layout displacement. */
.hero-arrive>*:not(.hero-actions){animation-duration:2.2s;animation-timing-function:cubic-bezier(.25,.1,.25,1)}
.hero-arrive .hero-description{animation-delay:.6s}
@keyframes hero-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.flow-home .reveal-group.section-enter{animation-duration:1.8s;animation-timing-function:cubic-bezier(.25,.1,.25,1)}
@keyframes section-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
html[data-header-stage] .site-header .menu-toggle,html[data-header-stage] .site-header .shop-link,html[data-header-stage] .site-header .menu-toggle>span:last-child{transition:opacity 1.2s cubic-bezier(.25,.1,.25,1)!important}
@media(max-width:900px),(pointer:coarse){.flow-home .reveal-group.section-enter{animation-duration:1.6s;animation-name:mobile-section-fade}}
@media(prefers-reduced-motion:reduce){
 .hero-arrive>*:not(.hero-actions),.flow-home .reveal-group.section-enter{animation:none!important}
 html[data-header-stage] .site-header .menu-toggle,html[data-header-stage] .site-header .shop-link,html[data-header-stage] .site-header .menu-toggle>span:last-child{transition:none!important}
}

/* Compact navigation shares the same breakpoint as the header layout. */
@media(max-width:900px){
 html[data-header-stage] .site-header .menu-toggle{display:none!important}
 .site-header .mobile-menu-entry{display:flex}
 .site-header .menu-toggle>span:last-child{display:none!important}
}
/* Let short screens grow with their copy instead of layering it over controls. */
@media(max-height:650px){
 .flow-home .hero{height:auto;min-height:100svh;padding:112px 8% 108px}
 html[lang] .flow-home .hero-content{position:relative;inset:auto;width:100%}
 .flow-home .hero-bottom{bottom:16px}
}
@media(max-width:700px){
 .flow-home .hero{height:auto;min-height:100svh;padding:clamp(112px,30svh,280px) 8% 108px}
 html[lang] .flow-home .hero-content{position:relative;inset:auto;width:100%}
}

/* An open left-hand surface, with restrained, staggered content motion. */
#menu-dialog{inset:80px auto auto 0;width:480px;max-width:calc(100vw - 32px);max-height:calc(100svh - 112px);height:auto;border:0;box-shadow:none;background:linear-gradient(90deg,#101510 0%,#101510 96%,#101510ee);padding:16px 18px 22px 28px}
#menu-dialog::backdrop{background:#03070470}
#menu-dialog[open]{animation:menu-surface-enter .48s cubic-bezier(.2,.65,.25,1) both}
#menu-dialog .dialog-top{background:#101510;padding:12px 18px 24px;z-index:2}
#menu-dialog .menu-body,#menu-dialog .menu-languages{padding-left:18px;padding-right:18px}
#menu-dialog .menu-item{border:0;background-image:none;min-height:68px;padding:14px 0}
#menu-dialog .dialog-bottom{border-top:0;padding:28px 18px 8px}
#menu-dialog[open] .menu-body,#menu-dialog[open] .menu-languages,#menu-dialog[open] .dialog-bottom{animation:menu-type-enter .5s ease both;animation-delay:.12s}
@keyframes menu-surface-enter{from{opacity:0;transform:translateX(-32px)}to{opacity:1;transform:translateX(0)}}
@keyframes menu-type-enter{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:700px){#menu-dialog{inset:72px auto auto 0;width:370px;max-width:calc(100vw - 28px);max-height:calc(100svh - 96px);padding:10px 8px 14px 12px}#menu-dialog .dialog-top{padding:10px 12px 20px}#menu-dialog .menu-body,#menu-dialog .menu-languages{padding-left:12px;padding-right:12px}#menu-dialog .menu-item{min-height:60px;padding:12px 0}#menu-dialog .dialog-bottom{padding:22px 12px 8px}#menu-dialog .item-text{font-size:20px}}
@media(prefers-reduced-motion:reduce){#menu-dialog[open],#menu-dialog[open] .menu-body,#menu-dialog[open] .menu-languages,#menu-dialog[open] .dialog-bottom{animation:none;transform:none;opacity:1}}

/* Store names link to the corresponding detail page with a comfortable target. */
.store-panel h3 .store-name-link{display:inline-block;min-height:44px;padding-block:6px;max-width:100%;line-height:1.6}

/* Explicit chapter-end stops keep an oversized chapter's CTA reachable.
   Mandatory snapping remains browser-owned, including touch inertia. */
@media(max-width:900px),(pointer:coarse){
 .flow-home main>.brand-story,.flow-home main>.destinations,.flow-home main>.store-locations{position:relative}
 .flow-home main>.brand-story::after,.flow-home main>.destinations::after,.flow-home main>.store-locations::after{content:"";position:absolute;inset:auto 0 0;height:1px;pointer-events:none;scroll-snap-align:end;scroll-snap-stop:always}
}
