/*
Theme Name: HD Brands
Theme URI: https://hdbrands.com/
Author: HD Brands
Description: Custom lightweight theme for hdbrands.com. Phase 1: the homepage, with its content edited under Homepage in the admin.
Version: 1.0.0
Requires at least: 6.2
Requires PHP: 7.4
License: Proprietary
Text Domain: hdbrands
*/

/* ---------- Base (from the approved design) ---------- */
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#ffffff;color:#1d1d1f;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:#0066cc;text-decoration:none}a:hover{color:#004c99;text-decoration:underline}
img{max-width:none}
.site{width:100%;background:#ffffff;overflow-x:clip}
.wrap{max-width:1120px;margin:0 auto}
.btn{display:inline-block;background:#0071e3;color:#ffffff;border-radius:980px}
.btn:hover{color:#ffffff;text-decoration:none;background:#0077ed}
.h2{margin:0;font-size:clamp(36px,5vw,56px);letter-spacing:-0.035em;font-weight:700}
.grey{color:#86868b}
section[id]{scroll-margin-top:56px}
.screen-reader-text,.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes zoomin{from{opacity:0;transform:scale(1.06)}to{opacity:1;transform:none}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes menuIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.rise{animation:rise 1s cubic-bezier(.2,.7,.2,1) both}
.d1{animation-delay:.15s}.d2{animation-delay:.3s}.d3{animation-delay:.45s}
.reveal{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 40%}

/* ---------- Top bar ---------- */
.topbar{position:sticky;top:0;z-index:10;background:rgba(255,255,255,0.82);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid #e8e8ed}
.admin-bar .topbar{top:32px}
@media (max-width:782px){.admin-bar .topbar{top:46px}}
@media (max-width:600px){.admin-bar .topbar{top:0}}
.topnav{max-width:1120px;margin:0 auto;padding:0 22px;height:56px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.wordmark{color:#1d1d1f;font-weight:700;font-size:19px;letter-spacing:-0.02em}
.wordmark:hover{color:#1d1d1f;text-decoration:none}
.navlinks{display:flex;gap:32px;font-size:13px}
.navlinks a{color:#1d1d1f}
.navcta{background:#0071e3;color:#ffffff;font-size:13px;padding:8px 16px;border-radius:980px;min-height:20px}
.navcta:hover{color:#ffffff;text-decoration:none}
.burger{display:none;width:44px;height:44px;margin-right:-10px;padding:0;border:0;background:none;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.burger span{display:block;width:18px;height:1.5px;border-radius:1px;background:#1d1d1f;transition:transform .3s ease}
.burger[aria-expanded="true"] span:first-child{transform:translateY(3.75px) rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{transform:translateY(-3.75px) rotate(-45deg)}
.mmenu{position:fixed;top:56px;left:0;right:0;bottom:0;z-index:9;background:rgba(255,255,255,0.97);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);padding:28px 30px;overflow-y:auto}
.mmenu[hidden]{display:none}
.mmenu nav{display:flex;flex-direction:column;gap:6px}
.mlink{color:#1d1d1f;font-size:30px;font-weight:600;letter-spacing:-0.02em;padding:8px 0;animation:menuIn .45s cubic-bezier(.2,.7,.2,1) both}
.mlink:hover{color:#1d1d1f;text-decoration:none}
.mlink.mcta{align-self:flex-start;margin-top:22px;background:#0071e3;color:#ffffff;font-size:17px;padding:12px 26px;border-radius:980px}

/* ---------- Hero ---------- */
.hero{padding:clamp(32px,5vh,64px) 22px 72px;overflow:hidden}
.hero-row{max-width:1360px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:24px 40px}
.hero-copy{flex:1 1 400px;max-width:600px;padding-left:clamp(0px,3vw,40px)}
.hero-eyebrow{margin:0 0 14px;font-size:19px;font-weight:600;color:#6e6e73}
.hero-h1{margin:0;font-size:clamp(44px,5.6vw,80px);line-height:1.03;letter-spacing:-0.045em;font-weight:700}
.hero-sub{margin:24px 0 0;max-width:520px;font-size:21px;line-height:1.45;color:#6e6e73}
.hero-ctas{margin-top:36px;display:flex;gap:28px;flex-wrap:wrap;align-items:center;font-size:19px}
.hero-ctas .btn{padding:13px 26px}
.hero-stage{position:relative;flex:0 1 auto;width:min(100%,760px,calc((100vh - 90px) * 1.05),calc(100vw - 470px));aspect-ratio:760 / 724}
.hero-logo{position:absolute;left:14.47%;top:0;width:76.32%;height:auto}
.hero-shadow{position:absolute;left:9.2%;bottom:6.1%;width:86.8%;height:8.3%;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.14),rgba(0,0,0,0))}
.hero-prod{position:absolute;bottom:8.56%;width:auto;transform-origin:50% 100%;filter:drop-shadow(0 24px 22px rgba(0,0,0,.18))}
@media (min-width:761px){.hero-row{flex-wrap:nowrap;width:100%}.hero-copy{min-width:340px}.hero{padding-top:clamp(56px,8vh,96px);padding-bottom:clamp(56px,8vh,96px)}}
@media (max-width:760px){
.hero{padding:28px 20px 40px}
.hero-copy{flex-basis:100%;padding:0;text-align:center;margin:0 auto}
.hero-eyebrow{display:none}
.hero-h1{font-size:36px;line-height:1.04}
.hero-sub{margin:10px auto 0;font-size:16px;line-height:1.4}
.hero-ctas{margin-top:16px;justify-content:center}
.hero-ctas .btn{font-size:16px;padding:10px 22px}
.hero-stage{width:min(100%,calc((100svh - 410px) * 1.05));margin:6px auto 0;left:-3%}
}

/* ---------- Drinks panels ---------- */
.drinks{padding:0 0 120px}
.sechead{max-width:1120px;margin:0 auto;padding:0 22px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.car{margin-top:40px;display:flex;gap:20px;overflow-x:auto;overscroll-behavior-x:contain;padding:0 max(22px,calc((100% - 1076px) / 2)) 8px;scroll-padding:0 max(22px,calc((100% - 1076px) / 2));scrollbar-width:none;-ms-overflow-style:none}
.car::-webkit-scrollbar{display:none}
@media (max-width:760px){.car{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}}
.card{flex:0 0 min(1076px,calc(100vw - 44px));scroll-snap-align:start;box-sizing:border-box;min-height:min(clamp(560px,60vw,860px),calc(100vh - 124px));padding:clamp(24px,3vh,48px) 22px 0;border-radius:28px;background:#f5f5f7;overflow:hidden;display:flex;flex-direction:column;align-items:center;--h:clamp(260px,min(56vw,calc(100vh - 310px)),720px)}
@media (max-width:760px){.card{--h:clamp(240px,76vw,310px)}}
.card-title{margin:0;max-width:640px;text-align:center;font-size:clamp(19px,2.2vw,28px);line-height:1.25;font-weight:600;letter-spacing:-0.02em;color:#1d1d1f}
.card-title span{color:#6e6e73}
.stage{position:relative;flex:1 0 calc(var(--h) * 1.04);width:100%;perspective:1600px}
.stage img{display:block;position:absolute;bottom:3%;left:50%;width:auto;opacity:0;filter:drop-shadow(0 24px 24px rgba(0,0,0,.16));transform-origin:50% 100%;will-change:transform,opacity,left}
.no-js .stage{display:flex;justify-content:center;align-items:flex-end;gap:12px;padding-bottom:3%;box-sizing:border-box}
.no-js .stage img{position:static;opacity:1}
.card-gap{height:12px}
.pdots{display:flex;align-items:center;justify-content:center;margin:2px 0 0;min-height:36px}
.pdots .dot{width:22px;height:36px}
.dot{padding:0;border:0;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center}
.dot span{display:block;height:6px;width:6px;border-radius:3px;background:#aeaeb2;transition:width .4s cubic-bezier(.22,.9,.24,1),background .4s}
.gcontrols{margin-top:20px;display:flex;justify-content:center;align-items:center;gap:10px}
.gdots{display:flex;align-items:center;gap:0;padding:0 8px;height:32px;border-radius:980px;background:#f0f0f3}
.gdots .dot{width:18px;height:32px}
.playbtn{width:32px;height:32px;padding:0;border:0;border-radius:50%;background:#f0f0f3;color:#1d1d1f;cursor:pointer;display:flex;align-items:center;justify-content:center}
.playbtn .i-play{display:none}
.playbtn.paused .i-play{display:block}
.playbtn.paused .i-pause{display:none}
.dot:focus-visible,.playbtn:focus-visible{outline:2px solid #0071e3;outline-offset:2px}
.no-js .gcontrols,.no-js .pdots{display:none}

/* ---------- Snack scroll story ---------- */
.snacks{padding:0 0 40px}
.sechead-snacks{padding-bottom:40px}
.snack-wrap{position:relative}
.snack-sticky{position:sticky;top:56px;z-index:1;height:clamp(520px,calc(100vh - 56px),900px);overflow:hidden;transition:background-color 0.9s ease}
.snack{position:absolute;inset:0;display:flex;align-items:center;opacity:0;pointer-events:none}
.snack:first-of-type{opacity:1}
.snack-row{width:100%;max-width:1120px;margin:0 auto;padding:0 22px;box-sizing:border-box;display:flex;flex-wrap:wrap;align-items:center;gap:clamp(24px,5vw,72px)}
.snack-copy{flex:1 1 320px;min-width:0}
.snack-count{margin:0;font-size:15px;font-weight:600;letter-spacing:0.04em;color:rgba(29,29,31,0.55)}
.snack-name{margin:12px 0 0;font-size:clamp(44px,7vw,96px);line-height:1;letter-spacing:-0.045em;font-weight:700;color:#1d1d1f}
.snack-line{margin:18px 0 0;max-width:460px;font-size:clamp(19px,2vw,24px);line-height:1.35;color:rgba(29,29,31,0.7)}
.snack-art{position:relative;flex:1 1 360px;height:min(clamp(300px,48vw,640px),calc(100vh - 150px));display:flex;align-items:center;justify-content:center}
.snack-art img{position:absolute;left:50%;bottom:4%;height:90%;width:auto;transform-origin:50% 100%;filter:drop-shadow(0 30px 30px rgba(0,0,0,.18));transform:translateX(-50%)}
.snackdots{position:absolute;z-index:300;right:clamp(12px,3vw,40px);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px}
.snackdots span{display:block;width:8px;height:8px;border-radius:4px;background:rgba(29,29,31,0.25);transition:height .5s cubic-bezier(.45,0,.2,1),background .5s}
.snackdots span.on{height:28px;background:#1d1d1f}
/* Phones (and no JavaScript): a plain stack of panels. */
.snacks.stack .snack-sticky,.no-js .snack-sticky{position:relative;top:auto;height:auto;background:none!important}
.snacks.stack .snack,.no-js .snack{position:relative;inset:auto;opacity:1;pointer-events:auto;padding:56px 0 40px;overflow:hidden;background:var(--snack-bg)}
.snacks.stack .snack-spacer,.no-js .snack-spacer{display:none}
.no-js .snack-art img{transform:translateX(-50%)}

/* ---------- Why HD Brands ---------- */
.about{padding:140px 22px}
.about-h{max-width:760px;line-height:1.07}
.figures{margin-top:72px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}
.figure{margin:0;font-size:64px;font-weight:700;letter-spacing:-0.04em}
.figure-text{margin:8px 0 0;font-size:17px;line-height:1.5;color:#6e6e73}
.figure-text strong{color:#1d1d1f}

/* ---------- What we do ---------- */
.services{padding:120px 22px;background:#f5f5f7}
.boxes{margin-top:64px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.box{background:#ffffff;border-radius:22px;padding:36px 32px;min-height:180px}
.box h3{margin:0;font-size:24px;letter-spacing:-0.02em}
.box p{margin:12px 0 0;font-size:16px;line-height:1.5;color:#6e6e73}

/* ---------- Partners ---------- */
.partners{padding:64px 0;overflow:hidden}
.partners-intro{margin:0 0 36px;text-align:center;font-size:17px;font-weight:600;color:#6e6e73}
.marquee{overflow:hidden}
.track{display:flex;align-items:center;gap:80px;width:max-content;padding-right:80px;animation:marquee 40s linear infinite}
.track:hover{animation-play-state:paused}
.track .logo{display:block;height:52px;width:auto;max-width:150px;object-fit:contain;flex:0 0 auto}

/* ---------- Contact ---------- */
.contact{padding:140px 22px;text-align:center;border-top:1px solid #e8e8ed}
.contact-h{margin:0 auto;max-width:800px;font-size:clamp(40px,6vw,72px);line-height:1.04;letter-spacing:-0.045em;font-weight:700}
.contact-h span{color:#86868b;font-size:0.96em}
.contact-sub{margin:24px auto 0;max-width:520px;font-size:21px;line-height:1.45;color:#6e6e73}
.contact-lead{margin:44px auto 0;max-width:620px;font-size:19px;line-height:1.5;color:#1d1d1f}
.contact-lead strong{font-weight:600}
.contact-ctas{margin-top:28px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;font-size:19px}
.contact-ctas .btn{padding:13px 26px;border:0;font:inherit;line-height:normal;cursor:pointer}
.btn-grey{background:#e8e8ed;color:#1d1d1f;min-width:9.5em}
.btn-grey:hover{background:#dcdce1;color:#1d1d1f}
.contact-ctas .btn:focus-visible{outline:2px solid #0071e3;outline-offset:2px}
@media (max-width:760px){.contact-lead{font-size:17px}.contact-ctas{font-size:16px}.contact-ctas .btn{padding:10px 22px}}

/* ---------- Footer ---------- */
.sitefoot{background:#f5f5f7;padding:56px 22px 28px;font-size:13px;color:#6e6e73}
.foot{display:grid;grid-template-columns:1.3fr repeat(4,minmax(0,1fr));gap:32px 28px}
.footlogo{display:block;width:56px;height:56px}
.strap{margin:16px 0 0;max-width:240px;line-height:1.5}
.foot h4{margin:0 0 12px;font-size:13px;font-weight:600;color:#1d1d1f}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.foot ul a,.foot ul span{color:#6e6e73}
.addr{margin:0;line-height:1.6}
.foot .gap{margin:10px 0 0}
.foot .gap a:not(.mail){color:#424245}
.legal{margin-top:44px;padding-top:18px;border-top:1px solid #d2d2d7;display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;font-size:12px}
.legal-links{display:flex;gap:20px}
.legal a{color:#424245}
@media (max-width:900px){.foot{grid-template-columns:1fr 1fr}}

/* ---------- Plain pages (Terms, Privacy) ---------- */
.page-main{padding:96px 22px 120px}
.page-main .wrap{max-width:760px}
.page-title{margin:0 0 40px;font-size:clamp(36px,5vw,56px);line-height:1.07;letter-spacing:-0.035em;font-weight:700}
.entry{font-size:17px;line-height:1.6;color:#1d1d1f}
.entry h2{font-size:28px;letter-spacing:-0.02em;margin:48px 0 12px}
.entry h3{font-size:21px;margin:32px 0 8px}
.entry p,.entry ul,.entry ol{margin:0 0 18px}
.entry img{max-width:100%;height:auto}

/* ---------- Small screens ---------- */
@media (max-width:760px){
.two{grid-template-columns:minmax(0,1fr)!important}
.navlinks,.navcta,.snackdots,.hide-sm{display:none!important}
.burger{display:flex!important}
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
.rise,.reveal,.track,.mlink{animation:none}
html{scroll-behavior:auto}
}
