/* Frame the opening screen; the rest of the page keeps its natural document flow. */
.home-page{padding-bottom:0}
.home-first-screen{
 min-height:calc(100svh - var(--storefront-header,164px));
 min-height:calc(100dvh - var(--storefront-header,164px));
 display:flex;flex-direction:column;
}
.home-first-screen .home-intro{padding-top:24px;padding-bottom:18px;flex:none}
.home-first-screen .home-intro h1{font-size:clamp(36px,4.4vw,60px)}
.home-first-screen .promotions{flex:1;display:flex;padding-top:0;padding-bottom:0;min-height:290px}
.home-first-screen .promo-layout{width:100%;align-items:stretch}
.home-first-screen .promo-slider{display:flex;flex-direction:column;min-width:0}
.home-first-screen .promo-track{flex:1;min-height:250px}
.home-first-screen .promo-layout .campaign{height:auto;min-height:250px;display:flex;align-items:center;padding:30px}
.home-first-screen .promo-layout .campaign h2{font-size:clamp(38px,4.2vw,60px)}
.home-first-screen .promo-layout .campaign>.campaign-price{top:50%;transform:translateY(-50%) rotate(13deg)}
.home-first-screen .promo-pagination{flex:none;height:34px;padding:4px 0}
/* Brand banners: one card per brand in a swipeable track, dots underneath like the promos. */
.brand-banners{display:flex;flex-direction:column;min-width:0}
.brand-banner-track{position:relative;flex:1;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.brand-banner-track::-webkit-scrollbar{display:none}
.brand-banner-track>.campaign{flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always}
.brand-banner-dots{flex:none;height:34px;padding:4px 0}
.brand-banner-dots button[hidden]{display:none}
.home-catalog-cta{flex:none;padding-top:8px;padding-bottom:24px;display:flex;justify-content:center}
.home-catalog-cta>a{display:flex;align-items:center;justify-content:center;gap:28px;min-height:52px;width:min(560px,100%);background:var(--green);color:#111;border-radius:18px;font-size:15px;font-weight:800;letter-spacing:1px}
.home-catalog-cta svg{width:25px;height:25px}
.home-page .home-brands{padding-top:40px;padding-bottom:32px}
.home-page .store-section{padding-top:48px;padding-bottom:48px}
.home-page .store-info,.home-page .store-hours{height:auto}
.home-page .store-copy>a{margin-top:8px}
.home-page .floating-wa{bottom:24px}
@media(max-width:760px){
 .home-first-screen .home-intro{padding-top:22px;padding-bottom:18px}
 .home-first-screen .home-intro h1{font-size:clamp(34px,10.5vw,43px);margin-bottom:10px}
 .home-first-screen .home-intro p{font-size:13px;line-height:1.5}
 .home-first-screen .promo-layout{display:flex}
 .home-first-screen .promo-slider{width:100%}
 .home-first-screen .promo-layout .campaign{padding:26px 22px;min-height:250px}
 .home-first-screen .promo-layout .campaign h2{font-size:clamp(36px,10.6vw,44px)}
 .home-first-screen .promo-layout .campaign>.campaign-price{right:-7px}
 .home-catalog-cta{padding-bottom:22px}
 .home-catalog-cta>a{min-height:52px;font-size:14px}
 .home-page .home-brand-banners{margin-bottom:24px}
 .home-brand-banners .brand-banner-track{gap:10px;margin-right:calc((100% - 100vw) / 2);padding-right:calc((100vw - 100%) / 2)}
 .home-brand-banners .brand-banner-track>.campaign{flex-basis:88%;display:flex;align-items:center;height:auto;min-height:240px;padding:26px 22px;margin:0;border-radius:26px}
 .home-brand-banners h2{font-size:clamp(32px,9.6vw,40px);position:relative;z-index:2}
 .home-brand-banners .campaign>div>span:first-child{font-size:10px}
 .home-brand-banners .campaign-link{margin-top:22px;font-size:13px}
 .home-brand-banners .campaign img{width:62%;right:-10%;bottom:14px}
 .home-page .store-section{gap:26px}
 .home-page .store-photo{height:auto;aspect-ratio:4/3;min-height:0}
 .home-page .store-copy h2{font-size:clamp(36px,10.5vw,46px)}
 .home-page .store-copy p{font-size:15px;line-height:1.65}
 .home-page .store-info{margin:24px 0;align-items:flex-start}
 .home-page .store-hours{margin:20px 0;flex-wrap:nowrap;align-items:flex-start;line-height:1.5}.home-page .store-hours .live-dot{flex:none;margin-top:6px}
 .home-page .floating-wa{bottom:calc(16px + env(safe-area-inset-bottom))}
}
/* Zoom and short landscape screens may need extra height: never clip the content. */
@media(max-height:600px){.home-first-screen .promo-layout .campaign{min-height:250px}}
/* On phones the promo card keeps a fixed height so the brands show up right after it. */
@media(max-width:760px){
 .home-first-screen{min-height:0}
 .home-first-screen .promotions,.home-first-screen .promo-track{flex:none;min-height:0}
 .home-first-screen .promo-layout .campaign{min-height:0;height:clamp(200px,52vw,280px)}
 .home-page .home-brands{padding-top:14px}
}
/* On phones the opening screen leads with the two actions: see the catalog or come to the store. */
.home-catalog-cta>.home-directions,.home-visit{display:none}
@media(max-width:760px){
 .home-page .header-directions{display:none}
 .home-first-screen .home-intro{order:0;padding-bottom:16px}
 .home-first-screen .home-catalog-cta{order:1;flex-direction:column;align-items:stretch;gap:10px;padding-top:0;padding-bottom:18px}
 .home-first-screen .promotions{order:2;padding-bottom:22px}
 .home-catalog-cta>a{width:100%}
 .home-catalog-cta>.home-directions{display:flex;gap:14px;background:transparent;color:#fff;border:2px solid var(--green);min-height:50px}
 .home-catalog-cta>.home-directions svg:first-child{color:var(--green);width:21px;height:21px}
 .home-catalog-cta>.home-directions svg:last-child{margin-left:10px}
 .home-visit{display:flex;align-items:center;justify-content:center;gap:7px;margin:2px 0 0;font-size:13px;color:#bdbdbd}
 .home-visit svg{width:16px;height:16px;color:#bdbdbd}
}
/* Adidas and Reebok photos point the toe right (their side lettering must never be mirrored): show them stepping up and to the right. */
.brand-banner-track>[data-banner=Adidas] img,.brand-banner-track>[data-banner=Reebok] img{width:50%;right:1%;bottom:13%;transform:rotate(-14deg)}
@media(max-width:760px){.home-brand-banners .brand-banner-track>[data-banner=Adidas] img,.home-brand-banners .brand-banner-track>[data-banner=Reebok] img{width:54%;right:-3%;bottom:11%}}
