/* Shop page: splash, cinematic catalog, product, checkout, pickup point picker */

/* ---------- splash ---------- */
.splash{position:fixed;inset:0;z-index:100;background:#040504;color:#fff;overflow:hidden;transition:transform 1s cubic-bezier(.77,0,.18,1)}
.splash.gone{transform:translateY(-100%)}
.splash .photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.splash .lights{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.32),rgba(0,0,0,.23) 35%,rgba(0,0,0,.23) 60%,rgba(0,0,0,.46))}
.splash .top{position:absolute;top:calc(var(--top) + 28px);left:0;right:0;display:flex;justify-content:center}
.splash .top svg{height:34px;width:auto;color:#fff;opacity:.92}
.splash .cta{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 13vh);transform:translateX(-50%);display:flex;align-items:center;gap:20px;padding:14px 4px;border:0;background:none;color:#fff;
  font-weight:800;font-size:clamp(22px,3vw,40px);letter-spacing:.2em;text-transform:uppercase;white-space:nowrap}
.splash .cta::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(255,255,255,.55);transform:scaleX(.18);transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.splash .cta:hover::after{transform:scaleX(1)}
.splash .cta svg{width:28px;height:28px;transition:transform .4s}
.splash .cta:hover svg{transform:translateX(6px)}
@media (max-width:899px){
  .splash .photo{height:auto;max-height:100%;top:50%;bottom:auto;transform:translateY(-50%);object-fit:contain;object-position:50% 50%;mask-image:linear-gradient(180deg,transparent,#000 10%,#000 88%,transparent);-webkit-mask-image:linear-gradient(180deg,transparent,#000 10%,#000 88%,transparent)}
}
@media (max-width:640px){
  .splash .cta{bottom:calc(env(safe-area-inset-bottom,0px) + 9vh)}
}

/* ---------- views ---------- */
.view{display:none}
.view.on{display:block;animation:fade .5s ease}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
body.hero-nav .hdr{position:fixed;top:var(--top);left:0;right:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
body.hero-nav .hdr .logo,body.hero-nav .hdr .ico{filter:drop-shadow(0 1px 5px rgba(0,0,0,.55))}

/* Product and checkout colour backgrounds */
.c-coral{--grad:radial-gradient(45% 75% at 30% 40%,rgba(226,83,106,.30),transparent 70%),radial-gradient(40% 60% at 80% 50%,rgba(70,180,170,.22),transparent 70%),linear-gradient(135deg,#0A1312,#0D1A19);background:var(--grad)}
.c-gold{--grad:radial-gradient(45% 75% at 30% 40%,rgba(214,168,40,.24),transparent 70%),radial-gradient(40% 60% at 80% 50%,rgba(214,168,40,.16),transparent 70%),linear-gradient(135deg,#0C0B08,#14120D);background:var(--grad)}
.c-night{--grad:radial-gradient(45% 75% at 30% 40%,rgba(80,110,180,.26),transparent 70%),radial-gradient(40% 60% at 80% 50%,rgba(80,110,180,.16),transparent 70%),linear-gradient(135deg,#06080D,#0B0F18);background:var(--grad)}
.c-white{--grad:radial-gradient(45% 75% at 30% 40%,rgba(225,230,235,.20),transparent 70%),radial-gradient(40% 60% at 80% 50%,rgba(225,230,235,.12),transparent 70%),linear-gradient(135deg,#0E0F10,#161819);background:var(--grad)}
/* ---------- fly-over: one scroll gesture plays the camera flight to the next hat, then stops ---------- */
.fly{position:relative;height:calc(100svh - var(--top));min-height:440px;overflow:hidden;color:#fff;background:#06100E}
.fly .media{position:absolute;inset:0;overflow:hidden}
.fly video,.fly .still{position:absolute;display:block;max-width:none;object-fit:fill;transform-origin:0 0}
.fly video{opacity:0;will-change:transform,opacity}
.fly video.on{opacity:1}
.fly video.settling{transition:opacity .14s linear}
.fly .still{opacity:1}
.fly .shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.46),transparent 70%),linear-gradient(0deg,rgba(0,0,0,.75),transparent 52%)}
.fly .grain{opacity:.14}
.fly .ticks{position:absolute;z-index:4;right:var(--gut-r);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:2px}
.fly .ticks button{width:44px;height:44px;padding:0;border:0;background:none;display:grid;place-items:center;color:#fff}
.fly .ticks button::before{content:"";width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.4);box-shadow:0 1px 6px rgba(0,0,0,.25);transition:background .3s,box-shadow .3s,transform .3s}
.fly .ticks button.on::before{background:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.12);transform:scale(1.15)}
.fly .ticks button:hover::before{background:#fff}
.fly .body{position:absolute;z-index:3;left:var(--gut);right:var(--gut-r);bottom:calc(clamp(28px,4vh,48px) + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;transition:opacity .25s,transform .25s}
.fly .body.off{opacity:0;transform:translateY(10px);pointer-events:none;visibility:hidden}
.fly-title{min-width:0}
.fly h2{font-size:clamp(44px,7.4vw,112px);text-transform:uppercase;margin-top:14px;text-wrap:balance}
.fly .fly-price{display:block;margin-top:16px;font-size:28px;font-weight:600;letter-spacing:.02em;white-space:nowrap}
.fly .desc{margin-top:12px;max-width:38ch;font-size:14px;color:rgba(255,255,255,.65)}
.fly .model-link{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:44px;border-bottom:1px solid rgba(255,255,255,.55);color:#fff;text-decoration:none;font-size:15px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;transition:border-color .2s}
.fly .model-link svg{width:26px;height:26px;transition:transform .2s}
.fly .model-link:hover{border-color:#fff}
.fly .model-link:hover svg{transform:translateX(4px)}
@media (min-width:900px){
  .splash .top svg{height:40px}
  .splash .cta{font-size:clamp(26px,3.45vw,46px);gap:24px}
  .splash .cta svg{width:32px;height:32px}
  .fly .body{gap:28px}
  .fly h2{font-size:clamp(50px,8.4vw,128px)}
  .fly .fly-price{font-size:32px}
  .fly .desc{font-size:16px}
  .fly .model-link{font-size:17px;min-height:48px;gap:28px}
  .fly .model-link svg{width:30px;height:30px}
  .fly .ticks button{width:48px;height:48px}
  .fly .ticks button::before{width:7px;height:7px}
}
@media (max-width:899px){
  body[data-page="home"]{--hdr:64px}
  body.hero-nav #v-field.on{animation:none}
  .fly .shade{background:linear-gradient(0deg,rgba(0,0,0,.86),rgba(0,0,0,.1) 46%,rgba(0,0,0,.12))}
  .fly .ticks{right:max(8px,env(safe-area-inset-right,0px));gap:0}
  .fly .ticks button{height:40px}
  .fly .body{left:max(24px,env(safe-area-inset-left,0px));right:max(24px,env(safe-area-inset-right,0px));bottom:calc(22px + env(safe-area-inset-bottom,0px));column-gap:20px;row-gap:10px}
  .fly-title{display:contents}
  .fly h2{grid-column:1/-1;font-size:clamp(32px,9vw,64px);margin:0}
  .fly .fly-price{grid-column:1;align-self:center;margin:0;font-size:14px;font-weight:500}
  .fly .desc{display:none}
  .fly .model-link{grid-column:2;grid-row:2;min-height:32px;font-size:10px;gap:14px;border:0}
  .fly .model-link svg{width:18px;height:18px}
}
@media (max-width:899px) and (max-height:540px){
  .fly{min-height:320px}
  .fly .body{gap:8px;bottom:16px}
  .fly h2{font-size:34px}
  .fly .ticks button{height:32px}
}

/* ---------- product page ---------- */
.pgrid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(16px,3vw,48px);padding-bottom:72px}
@media (max-width:899px){.pgrid{grid-template-columns:1fr}}
.gal{min-width:0}
.gal .main{position:relative;aspect-ratio:4/5;max-height:calc(100svh - var(--hdr) - 120px);width:100%;overflow:hidden;color:#fff;background:var(--bg-2)}
@media (min-width:900px){.gal .main{aspect-ratio:auto;height:calc(100svh - var(--hdr) - 130px);min-height:520px}}
.gal .gs{position:absolute;inset:0;opacity:0;transition:opacity .6s ease;display:grid;place-items:center}
.gal .gs.on{opacity:1}
.gal .gs img.cut{filter:drop-shadow(0 50px 60px rgba(0,0,0,.6))}
.gal .gs.ph{background-size:cover;background-position:center}
.gal .gnav{position:absolute;left:16px;right:16px;bottom:16px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.gal .gnav .cnt{height:52px;display:inline-flex;align-items:center;padding:0;font-size:12px;font-weight:600;letter-spacing:.16em;color:#fff;background:transparent}
.gal .gnav .arrows{display:flex;gap:6px}
.info{min-width:0;align-self:start;position:sticky;top:calc(var(--top) + var(--hdr) + 22px);display:grid}
@media (max-width:899px){.info{position:static}}
.info h1{font-size:clamp(40px,5.6vw,92px);text-transform:uppercase}
.info .price{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-block:18px;border-block:1px solid var(--line)}
.info .price b{letter-spacing:-.01em}
.specs{display:grid;margin:0}
.specs div{display:grid;grid-template-columns:140px 1fr;gap:16px;border-bottom:1px solid var(--line)}
@media (max-width:480px){.specs div{grid-template-columns:104px 1fr}}
.specs dt{color:var(--fg-2)}.specs dd{margin:0}
.qty{display:flex;align-items:center;border:1px solid var(--line)}
.qty button{width:48px;height:100%;border:0;background:none}
.qty span{min-width:32px;text-align:center;font-weight:600}
.buy{display:grid;grid-template-columns:auto 1fr}
.buy .btn{width:100%;min-width:0;padding:0 16px;gap:12px}

/* ---------- checkout ---------- */
.co{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);padding-bottom:80px}
@media (max-width:899px){.co{grid-template-columns:1fr}}
#cart h1{font-size:clamp(40px,7vw,110px);text-transform:uppercase;padding-block:8px 28px}
.fs{border:0;margin:0 0 36px;padding:0;display:grid;min-width:0}
.fs legend{margin-bottom:14px;display:flex;align-items:baseline}
.fs legend b{letter-spacing:-.01em}
.g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.g2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:640px){.g3,.g2{grid-template-columns:1fr}}
.fld{position:relative;display:grid}
.fld input,.fld select{height:60px;border:1px solid var(--line);background:var(--bg-2);padding:22px 14px 6px;outline:none;transition:border-color .2s;appearance:none;-webkit-appearance:none;width:100%;min-width:0;font-size:16px}
.fld select{padding-right:40px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%238C928D' stroke-width='1.4'/></svg>");background-repeat:no-repeat;background-position:right 16px center}
.fld input:focus,.fld select:focus{border-color:var(--fg)}
.fld label{position:absolute;left:14px;top:9px;font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2);pointer-events:none}
.fld.err input,.pick.err{border-color:#E0675B}
.seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line)}
.seg button{height:56px;border:0;background:none;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2)}
.seg button.on{background:var(--fg);color:var(--bg)}
.pick{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;height:60px;border:1px solid var(--line);background:var(--bg-2);padding:22px 14px 8px;text-align:left;transition:border-color .2s;width:100%}
.pick:hover{border-color:var(--fg)}
.pick .v{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16px}
.pick .v.ph{color:var(--fg-2)}
.pick .a{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--fg)}
.pick .a svg{width:16px;height:16px}
.pick .lb{position:absolute;left:14px;top:9px;font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2);pointer-events:none}
.cdek{display:grid;grid-template-columns:auto 1fr auto;align-items:center}
.cdek .lg{font-weight:800;letter-spacing:.02em;line-height:1}
.cdek .cost{white-space:nowrap}
@media (max-width:420px){.cdek{grid-template-columns:auto 1fr;gap:6px 14px}.cdek .cost{grid-column:2}}
.note{color:var(--fg-2);display:flex;gap:10px;align-items:flex-start}
.note svg{flex:none;width:16px;height:16px;margin-top:2px}
.sum{align-self:start;position:sticky;top:calc(var(--top) + var(--hdr) + 22px);min-width:0}
.sum .hd{border-bottom:1px solid var(--line);display:flex;justify-content:space-between}
.line{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line)}
.line .im{width:72px;height:72px}
.line .nm{font-weight:800;text-transform:uppercase;letter-spacing:.02em}
.line .rm{border:0;background:none;padding:0;color:var(--fg-2);font-size:12px;text-decoration:underline;text-underline-offset:3px}
@media (max-width:420px){.line{grid-template-columns:56px minmax(0,1fr) auto;padding:14px 16px;gap:12px}.line .im{width:56px;height:56px}}
.tot{padding:16px 20px;display:grid;gap:8px}
.tot div{display:flex;justify-content:space-between;gap:16px}
.tot .big{padding-top:14px;margin-top:6px;border-top:1px solid var(--line);font-size:24px;font-weight:800;letter-spacing:-.01em}
.agree{display:grid;gap:14px;padding:4px 20px 18px}
.sum .legal{line-height:1.5;color:var(--fg-2)}
.sum .legal a{color:var(--fg);text-underline-offset:3px}
.empty{padding:40px 20px;text-align:center;display:grid;gap:16px;justify-items:center}

/* ---------- product and order layout ---------- */
.product-heading{display:grid;gap:24px}
.product-heading h1{font-size:clamp(40px,4.6vw,76px);max-width:11ch}
.info{padding:clamp(12px,2vw,28px) 0;gap:28px}
.info .price{border:0;padding:0}
.info .price b{font-size:24px;font-weight:500}
.product-desc{margin:0;max-width:43ch;color:var(--fg-2);font-size:14px;line-height:1.75}
.gal .gs:not(.ph){background:#111614}
.gal .gs img.cut{width:min(76%,620px)}
.specs div{padding:14px 0;font-size:13px}
.specs dd{font-weight:400}
.buy{margin-top:4px;gap:12px}
.qty{border-color:var(--line);height:56px}
.qty button{font-size:18px;font-weight:400}
.qty button:disabled{opacity:.25;cursor:default}
.buy .btn{font-size:11px;letter-spacing:.1em}
.page-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:16px 0 42px}
#cart .page-heading h1,#checkout .page-heading h1{padding:0;font-size:clamp(44px,6.2vw,96px);text-transform:uppercase}
.item-count{display:inline-block;font-size:12px;font-weight:500;vertical-align:top;letter-spacing:.08em;margin:8px 0 0 14px;color:var(--fg-2)}
.basket-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,.46fr);gap:clamp(32px,5vw,96px);padding-bottom:100px}
.basket-items{min-width:0}
.basket-item{display:grid;grid-template-columns:140px minmax(0,1fr) auto;gap:24px;padding:24px 0;border-top:1px solid var(--line);align-items:start}
.basket-photo{display:grid;place-items:center;aspect-ratio:1;background:transparent;overflow:hidden}
.basket-photo img{width:100%;height:100%;object-fit:contain}
.basket-detail{align-self:stretch;display:flex;flex-direction:column;gap:10px;min-width:0;padding:4px 0}
.basket-name{font-size:clamp(18px,2vw,28px);font-weight:700;line-height:1.1;text-transform:uppercase;text-decoration:none}
.basket-color{font-size:12px;line-height:1.65;color:var(--fg-2)}
.basket-price{font-size:16px;font-weight:500;white-space:nowrap;padding-top:4px}
.basket-controls{display:flex;gap:20px;align-items:center;margin-top:auto;padding-top:14px}
.basket-controls .qty{height:36px}
.basket-controls .qty span{font-size:12px;min-width:20px}
.remove-item{width:36px;height:36px;display:grid;place-items:center;border:0;background:none;padding:0;color:var(--fg-2);transition:color .2s}
.remove-item svg{width:16px;height:16px}
.remove-item:hover{color:var(--fg)}
.basket-side{align-self:stretch;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:16px}
.continue-link{display:flex;align-items:center;gap:20px;width:fit-content;margin-top:26px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--fg-2)}
.continue-link svg{width:18px;height:18px}
.sum{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border:0;border-top:1px solid var(--line);padding-top:4px}
.sum .hd{padding:22px 0;border:0}
.sum .tot{padding:20px 0}
.sum .tot .big{font-weight:500;font-size:24px;padding-top:20px}
.sum .btn{width:100%;margin:0}
.sum .agree{padding:12px 0 24px}
.sum .legal{margin:16px 0 0;font-size:11px}
.sum .line{padding:16px 0;gap:12px;grid-template-columns:56px minmax(0,1fr) auto}
.sum .line .im{width:56px;height:72px;background:transparent}
.sum .line .im img{width:100%;height:100%;object-fit:contain}
.sum .line .nm{font-size:13px}
.sum .line b{font-weight:500;font-size:13px}
.sum .line{position:relative;padding-right:28px}
.sum .line .rm{position:absolute;top:14px;right:0;width:28px;height:28px;display:grid;place-items:center;margin:0;text-decoration:none}
.sum .line .rm svg{width:14px;height:14px}
.basket-empty{min-height:38vh;padding:36px 0 80px;display:flex;flex-direction:column;gap:22px;align-items:flex-start;border-top:1px solid var(--line)}
.basket-empty p{font-size:clamp(26px,4vw,48px);margin:0;line-height:1.1}
.co{gap:clamp(40px,5vw,96px)}
.fs{margin-bottom:40px;padding-top:24px;border-top:1px solid var(--line);gap:14px}
.fs legend{float:left;width:100%;padding:0;margin:0 0 20px;gap:16px}
.fs legend b{font-size:18px;font-weight:500}
.fld input,.fld select,.pick{background:rgba(255,255,255,.02)}
.cdek{background:transparent;padding:18px 0;border:0;border-bottom:1px solid var(--line);gap:16px}
.cdek .lg{color:var(--fg);font-size:18px}
.cdek .cost{font-size:16px;font-weight:500}
.note{font-size:11px;line-height:1.65}
@media (max-width:899px){
  .pgrid{gap:0;padding-bottom:56px}
  .gal .main{max-height:none;aspect-ratio:1;height:auto}
  .gal .gs img.cut{width:74%}
  .gal .gnav .cnt{height:40px;font-size:10px;padding:0}
  .gal .gnav .sq{width:40px;height:40px}
  .gal .gnav .sq svg{width:18px;height:18px}
  .info{padding-top:30px;gap:24px}
  .product-heading{gap:14px}
  .product-heading h1{font-size:clamp(38px,9vw,58px);max-width:none}
  .info .price b{font-size:22px}
  .product-desc{font-size:13px;line-height:1.7}
  .specs div{grid-template-columns:1fr 1fr;font-size:12px}
  .buy{grid-template-columns:104px minmax(0,1fr);gap:10px}
  .buy .qty button{width:34px}.buy .qty span{min-width:32px}
  .page-heading{padding:12px 0 30px}
  #cart .page-heading h1,#checkout .page-heading h1{font-size:clamp(36px,8.8vw,66px)}
  .page-heading>.label{font-size:9px;white-space:nowrap}
  .basket-grid{grid-template-columns:1fr;gap:32px;padding-bottom:64px}
  .basket-item{grid-template-columns:88px minmax(0,1fr) auto;gap:14px;padding:20px 0}
  .basket-photo{aspect-ratio:4/5}
  .basket-name{font-size:17px}
  .basket-color{font-size:10px}
  .basket-price{font-size:12px}
  .basket-detail{padding:2px 0;gap:8px}
  .basket-controls{gap:16px;padding-top:8px;flex-wrap:wrap}
  .basket-controls .qty{height:32px}.basket-controls .qty button{width:28px}
  .basket-controls .qty span{min-width:18px}
  .remove-item{font-size:10px}
  .co{gap:12px;padding-bottom:64px}
  .sum{position:static}
  .sum .tot{padding-top:8px}
  .fs legend b{font-size:17px}
  .g3,.g2{gap:10px}

}
@media (max-width:380px){
  .basket-item{grid-template-columns:72px minmax(0,1fr) auto;gap:10px}
  .basket-price{grid-column:2;margin-top:-4px;padding:0}
  .basket-controls{gap:12px}
  .item-count{margin-left:8px;font-size:10px}
  .page-heading>.label{font-size:8px}
}

/* ---------- silhouette selectors and desktop cart ---------- */
.swatches{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.swatches button{position:relative;display:grid;place-items:center;width:76px;height:98px;padding:0;border:0;background:transparent;opacity:.58;transition:opacity .2s,transform .2s}
.swatches img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.swatches button:hover{opacity:1;transform:translateY(-3px)}
.swatches button.on{opacity:1}
.swatches button.on::after{content:"";position:absolute;bottom:1px;left:50%;width:18px;height:1px;background:var(--fg);transform:translateX(-50%)}
.basket-controls .qty{border:0}
.basket-controls .qty button{width:32px}
.cart-summary .tot .big{border:0;margin:0;padding-top:0}
.cart-drawer{position:fixed;inset:0;z-index:90;visibility:hidden;pointer-events:none;transition:visibility 0s .35s}
.cart-drawer.on{visibility:visible;pointer-events:auto;transition-delay:0s}
.drawer-veil{position:absolute;inset:0;background:rgba(4,9,7,.18);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);opacity:0;transition:opacity .35s}
.cart-drawer.on .drawer-veil{opacity:1}
.drawer-panel{position:absolute;inset:0 0 0 auto;width:clamp(440px,38vw,580px);display:flex;flex-direction:column;padding:0 32px;background:rgba(8,14,12,.4);backdrop-filter:blur(26px) saturate(120%);-webkit-backdrop-filter:blur(26px) saturate(120%);border-left:1px solid rgba(255,255,255,.08);transform:translateX(100%);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.cart-drawer.on .drawer-panel{transform:translateX(0)}
.drawer-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 0 22px;flex-shrink:0}
.drawer-header h2{font-size:28px;text-transform:uppercase}
.drawer-count{display:inline-block;vertical-align:top;margin:3px 0 0 10px;font-size:11px;font-weight:400;letter-spacing:.08em;color:rgba(255,255,255,.5)}
.drawer-close{width:40px;height:40px;display:grid;place-items:center;border:0;background:none;color:var(--fg);padding:0;margin-right:-8px}
.drawer-close svg{width:22px;height:22px}
.drawer-content{display:flex;flex-direction:column;flex:1;min-height:0}
.drawer-items{overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;min-height:0;flex:1;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}
.drawer-items .basket-item{grid-template-columns:84px minmax(0,1fr) auto;gap:14px;padding:18px 0;border-color:rgba(255,255,255,.1)}
.drawer-items .basket-photo{height:116px;aspect-ratio:auto}
.drawer-items .basket-name{font-size:16px;line-height:1.25;font-weight:600}
.drawer-items .basket-detail{padding:6px 0;gap:8px}
.drawer-items .basket-color{font-size:10px;line-height:1.5;color:rgba(236,237,233,.5)}
.drawer-items .basket-controls{padding-top:8px}
.drawer-items .qty{height:32px}
.drawer-items .qty button{font-size:18px}
.drawer-items .qty span{min-width:24px;font-size:12px}
.drawer-items .basket-side{gap:16px}
.drawer-items .basket-price{font-size:14px;font-weight:500;padding:0 0 12px}
.drawer-items .remove-item{margin-right:0;color:rgba(255,255,255,.5)}
.drawer-items .remove-item:hover{color:#fff}
.drawer-bottom{flex-shrink:0;padding:24px 0 28px;border-top:1px solid rgba(255,255,255,.14)}
.drawer-total{display:flex;justify-content:space-between;gap:20px;font-size:20px;font-weight:500;margin-bottom:26px}
.drawer-bottom .btn{width:100%;font-size:11px;min-height:56px}
.drawer-content .basket-empty{min-height:0;flex:1;justify-content:center;align-items:center;text-align:center;border:0;padding:32px 0 72px;gap:24px}
.drawer-content .basket-empty p{font-size:23px;line-height:1.3}
.drawer-content .empty-bag{width:44px;height:44px;color:rgba(255,255,255,.4)}
.drawer-content .basket-empty .btn{font-size:10px;width:100%;max-width:280px}
@media (min-width:900px){html{scrollbar-gutter:stable}}
@media (max-width:899px){
  .swatches{gap:14px}
  .swatches button{width:64px;height:86px}
  .basket-side .basket-price{grid-column:auto;margin:0;font-size:12px;white-space:nowrap}
}

/* Restrained mint accents for adding items and placing an order. */
#pay,#pay:disabled:hover{background:rgba(143,217,174,.06);border-color:rgba(143,217,174,.3);color:var(--fg)}
#pay:not(:disabled):hover{background:rgba(143,217,174,.11);border-color:var(--accent)}
#pay svg,.drawer-count,.drawer-total>span:last-child,.sum .tot .big>span:last-child{color:var(--accent)}
.drawer-bottom,.sum{border-top-color:rgba(143,217,174,.25)}
#checkout .fs legend>.label{color:var(--accent)}
#checkout .fld input:focus,#checkout .fld select:focus,#checkout .pick:hover{border-color:var(--accent)}
#checkout .seg button.on{background:rgba(143,217,174,.08);color:var(--fg);box-shadow:inset 0 -1px 0 var(--accent)}
#checkout .consent input:checked{background:var(--accent);border-color:var(--accent)}
.toast{box-shadow:inset 2px 0 0 var(--accent)}

/* ---------- pickup point picker ---------- */
.pvzm{position:fixed;inset:0;z-index:95;display:grid;place-items:center;padding:16px;background:rgba(0,0,0,.6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:fade .3s ease}
.pvzm .box{width:min(1120px,100%);height:min(740px,100%);display:grid;grid-template-rows:auto auto auto minmax(0,1fr);background:var(--bg);border:1px solid var(--line);overflow:hidden}
.pvzm .top{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line)}
.pvzm .top b{display:block;font-size:22px;font-weight:800;letter-spacing:-.01em;margin-top:4px}
.pvzm .top .ico{border:1px solid var(--line);width:44px;height:44px;opacity:1}
.pvzm .tools{display:flex;gap:8px;padding:14px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.pvzm .srch{flex:1 1 260px;display:flex;align-items:center;gap:10px;height:48px;padding:0 14px;border:1px solid var(--line);background:var(--bg-2)}
.pvzm .srch:focus-within{border-color:var(--fg)}
.pvzm .srch svg{width:18px;height:18px;color:var(--fg-2);flex:none}
.pvzm .srch input{flex:1;min-width:0;height:100%;border:0;background:none;outline:none;font-size:16px}
.pvzm .chips{display:flex;border:1px solid var(--line)}
.pvzm .chips button{height:46px;padding:0 14px;border:0;background:none;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2)}
.pvzm .chips button.on{background:var(--fg);color:var(--bg)}
.pvzm .tabs{display:none}
.pvzm .body{display:grid;grid-template-columns:400px minmax(0,1fr);min-height:0}
.pvzm .list{scrollbar-width:thin;scrollbar-color:var(--bg-3) transparent;overflow-y:auto;overscroll-behavior:contain;border-right:1px solid var(--line)}
.pvzm .pt{display:grid;gap:6px;padding:16px 20px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .2s}
.pvzm .pt:hover{background:rgba(255,255,255,.03)}
.pvzm .pt.on{background:var(--bg-2);box-shadow:inset 2px 0 0 var(--accent)}
.pvzm .pt .h{display:flex;justify-content:space-between;gap:12px}
.pvzm .pt b{font-weight:700;font-size:16px;line-height:1.3}
.pvzm .pt .s{font-size:13px;color:var(--fg-2)}
.pvzm .pt .btn{min-height:44px;margin-top:8px;width:100%;font-size:11px}
.pvzm .pt:not(.on) .btn{display:none}
.pvzm .none{padding:40px 20px;color:var(--fg-2);text-align:center}
.pvzm .map{position:relative;overflow:hidden;background:
  repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 56px),
  repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 56px),var(--bg-2)}
.pvzm .map > svg.roads{position:absolute;inset:0;width:100%;height:100%}
.pvzm #pins{position:absolute;inset:48px 20px 130px}
.pvzm .map .demo{position:absolute;top:14px;left:16px;z-index:2}
.pvzm .pin{position:absolute;z-index:1;width:30px;height:30px;margin:-30px 0 0 -15px;padding:0;border:0;background:none;color:var(--fg-2);transition:color .2s,transform .2s;transform-origin:50% 100%}
.pvzm .pin svg{width:100%;height:100%;filter:drop-shadow(0 6px 10px rgba(0,0,0,.6))}
.pvzm .pin.post{color:#5E6661}
.pvzm .pin:hover{color:var(--fg)}
.pvzm .pin.on{color:var(--accent);transform:scale(1.35);z-index:2}
.pvzm .focus{position:absolute;left:16px;right:16px;bottom:16px;z-index:3;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px 16px 16px 20px;background:rgba(10,11,10,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
.pvzm .focus b{display:block;font-size:16px;line-height:1.3}
.pvzm .focus .s{font-size:13px;color:var(--fg-2)}
@media (max-width:899px){
  .pvzm{padding:0}
  .pvzm .box{width:100%;height:100%;border:0;padding-top:var(--top);padding-bottom:env(safe-area-inset-bottom,0px)}
  .pvzm .top{padding:12px var(--gut-r) 12px var(--gut)}
  .pvzm .tools{padding:12px var(--gut-r) 12px var(--gut)}
  .pvzm .chips{flex:1}.pvzm .chips button{flex:1;padding:0 8px}
  .pvzm .tabs{display:grid;margin:0 var(--gut-r) 12px var(--gut)}
  .pvzm .tabs button{height:44px}
  .pvzm .tabs button.on{background:none;color:var(--fg);box-shadow:inset 0 -2px 0 var(--fg)}
  .pvzm #pins{inset:44px 16px 200px}
  .pvzm .body{grid-template-columns:1fr;border-top:1px solid var(--line)}
  .pvzm .list{border-right:0}
  .pvzm .pt{padding:16px var(--gut-r) 16px var(--gut)}
  .pvzm .body[data-tab="list"] .map,.pvzm .body[data-tab="map"] .list{display:none}
  .pvzm .focus{grid-template-columns:1fr;left:12px;right:12px;bottom:12px}
  .pvzm .focus .btn{width:100%}
}

/* ---------- pay overlay ---------- */
.pay{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:rgba(0,0,0,.6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:16px}
.pay .box{background:var(--bg-2);border:1px solid var(--line);width:min(460px,100%);padding:clamp(22px,5vw,32px);display:grid;gap:18px}
.pay .bar{height:2px;background:var(--line);overflow:hidden}
.pay .bar i{display:block;height:100%;width:40%;background:var(--fg);animation:load 1.2s ease-in-out infinite}
@keyframes load{from{transform:translateX(-100%)}to{transform:translateX(260%)}}
.pay .btn{background:transparent;color:var(--fg);border-color:var(--line)}

/* Scroll-led opening campaign. */
body.intro-open,body.photo-open{overflow:hidden}
.splash{touch-action:none}
.drop-caption{position:absolute;left:0;right:0;bottom:calc(9vh + env(safe-area-inset-bottom,0px));text-align:center;pointer-events:none}
.drop-caption h1{font-size:clamp(24px,3.2vw,44px);font-weight:800;letter-spacing:.18em;text-transform:uppercase;line-height:1.2}
.fly .body{bottom:calc(clamp(28px,4vh,48px) + var(--cookie-space))}
.fly .ticks button::before{background:rgba(255,255,255,.75)}
@media(max-width:899px){.fly .body{bottom:calc(24px + env(safe-area-inset-bottom,0px) + var(--cookie-space))}.fly .model-link{font-size:12px;min-height:44px}.fly .fly-price{font-size:17px}}

/* Product photography: one product shot and three distinct editorial views. */
.gal .main{touch-action:pan-y}
.gal .gs{pointer-events:none}
.gal .gs.on{pointer-events:auto;z-index:1}
.gal .gnav{z-index:3;pointer-events:none}
.gal .gnav button{pointer-events:auto}
.zoom-photo{display:grid;place-items:center;width:100%;height:100%;padding:0;background:none;border:0;cursor:zoom-in;overflow:hidden}
.zoom-photo img{display:block}
.editorial-photo{width:100%;height:100%;object-fit:contain;background:#101311}
.gallery-thumbs{display:flex;gap:10px;margin-top:14px}
.gallery-thumbs button{width:64px;height:78px;padding:3px;border:1px solid transparent;background:#151917;opacity:.6;transition:opacity .2s,border-color .2s}
.gallery-thumbs button[aria-pressed="true"]{border-color:var(--fg);opacity:1}
.gallery-thumbs button:hover{opacity:1}
.gallery-thumbs img{height:100%;width:100%;object-fit:cover}
.gallery-thumbs button:first-child img{object-fit:contain}
.gallery-note{display:block;color:var(--fg-2);font-size:12px;margin-top:12px}
.product-desc{font-size:16px;line-height:1.65}
.specs div{font-size:14px}
.product-help{display:flex;flex-wrap:wrap;gap:12px 24px}
.product-help a{font-size:13px;text-decoration:none;display:flex;align-items:center;gap:8px;color:var(--fg-2)}
.product-help svg{width:16px;height:16px}
.mobile-buy{display:none}
.photo-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:60px 70px;background:#080b09;border:0;overflow:hidden;color:#fff}
.photo-dialog::backdrop{background:rgba(0,0,0,.94)}
.photo-dialog>img{width:100%;height:100%;object-fit:contain}
.photo-dialog button{position:absolute;background:#1c211e;border:1px solid #4a514c;color:#fff;width:44px;height:44px;font-size:25px;display:grid;place-items:center;padding:0}
.photo-close{top:16px;right:16px}.photo-prev{left:12px;top:calc(50% - 22px)}.photo-next{right:12px;top:calc(50% - 22px)}
.photo-count{position:absolute;bottom:18px;left:0;right:0;text-align:center;font-size:13px;letter-spacing:.15em}
@media(max-width:899px){
 .gal .main{max-height:none;aspect-ratio:4/5}.info{gap:24px;padding-top:8px}.product-heading{gap:16px}.product-desc{font-size:15px}.specs div{font-size:14px}.pgrid{padding-bottom:40px}
 body.product-open{padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}
 .mobile-buy{position:fixed;z-index:74;bottom:0;left:0;right:0;background:#121413;border-top:1px solid var(--line);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;justify-content:space-between;gap:20px}
 .mobile-buy>span{font-size:19px;white-space:nowrap}.mobile-buy .btn{min-height:48px;min-width:190px;font-size:11px}
 .product-open .toast{bottom:calc(92px + env(safe-area-inset-bottom,0px))}.product-open .cookie{bottom:calc(92px + env(safe-area-inset-bottom,0px))}
 .menu-open .mobile-buy{visibility:hidden}.photo-dialog{padding:60px 12px}
}
.zoom-photo{position:absolute;inset:0;min-width:0;min-height:0}
.zoom-photo .editorial-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.flight-loader{position:absolute;z-index:8;top:calc(var(--hdr) + 16px);left:var(--gut);padding:10px 14px;background:rgba(10,15,12,.85);border:1px solid rgba(255,255,255,.2);font-size:12px;letter-spacing:.04em;display:flex;gap:10px;align-items:center}
.flight-loader::before{content:"";width:12px;height:12px;border:1px solid #ffffff55;border-top-color:#fff;border-radius:50%;animation:flight-spin .8s linear infinite}
@keyframes flight-spin{to{transform:rotate(360deg)}}
.btn.added{background:#c6e6d1;border-color:#c6e6d1;justify-content:center}
.cart-pulse{animation:cart-count-pulse .55s ease}
@keyframes cart-count-pulse{50%{transform:scale(1.25);background:#bce2c9}}
.field-error{display:block;color:#F0A59B;font-size:12px;line-height:1.5;letter-spacing:0;padding-top:6px;text-transform:none}
.fld{align-self:start}
.pick.err{outline:1px solid #e0675b}
.pay-hint{font-size:13px;color:var(--fg-2);line-height:1.5;margin:0 0 12px}
.order-error{font-size:14px;line-height:1.6;color:#F0A59B;border:1px solid #814b43;background:#241715;padding:14px;margin:0 0 16px}
#pvzError{grid-column:1/-1;margin:0}

/* City autocomplete */
.city-fld { position: relative; }
.city-suggestions {
  position: absolute; top: calc(100% + 4px); left: 0; right: 0;
  background: #141715; border: 1px solid rgba(255,255,255,0.18);
  border-radius: 6px; z-index: 100; max-height: 220px; overflow-y: auto;
  box-shadow: 0 16px 36px rgba(0,0,0,0.8);
}
.city-item {
  padding: 10px 14px; cursor: pointer; display: flex; justify-content: space-between; align-items: center;
  font-size: 14px; border-bottom: 1px solid rgba(255,255,255,0.04);
}
.city-item:hover, .city-item.active { background: rgba(255,255,255,0.12); }
.city-item .reg { font-size: 12px; color: var(--fg-2, #888); }
.city-quick { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.city-quick button { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); color: var(--fg, #eee); font-size: 12px; padding: 4px 10px; border-radius: 4px; cursor: pointer; transition: all .15s; }
.city-quick button:hover, .city-quick button.on { background: rgba(255,255,255,0.15); border-color: rgba(255,255,255,0.3); }

/* PVZ states */
.pvz-state { padding: 36px 20px; text-align: center; color: var(--fg-2, #888); font-size: 14px; line-height: 1.6; }
.pvz-state .btn { margin: 16px auto 0; max-width: 220px; }
.pvz-spinner { display: inline-block; width: 22px; height: 22px; border: 2px solid rgba(255,255,255,0.2); border-top-color: #fff; border-radius: 50%; animation: flight-spin .8s linear infinite; margin-bottom: 12px; }

/* Order status page */
.order-view { max-width: 640px; margin: 0 auto; padding: 40px 0 80px; }
.order-card { background: #121513; border: 1px solid var(--line, rgba(255,255,255,0.1)); padding: 32px 28px; }
.order-badge { display: inline-block; padding: 4px 10px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; border-radius: 4px; margin-bottom: 16px; }
.order-badge.paid { background: #1b3824; color: #8fd9ae; border: 1px solid #2d613d; }
.order-badge.pending { background: #38301b; color: #e5c07b; border: 1px solid #635429; }
.order-badge.failed { background: #381b1b; color: #e0675b; border: 1px solid #632929; }
.order-track-box { background: rgba(143,217,174,0.08); border: 1px solid rgba(143,217,174,0.3); padding: 18px 20px; border-radius: 8px; margin: 24px 0; }
.order-track-box a { color: #8fd9ae; text-decoration: underline; font-weight: 700; }
.order-items-list { margin: 20px 0; border-top: 1px solid rgba(255,255,255,0.08); border-bottom: 1px solid rgba(255,255,255,0.08); padding: 16px 0; }
.order-item-row { display: flex; justify-content: space-between; font-size: 14px; margin: 8px 0; }
.order-actions { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 28px; }
.order-actions .btn { min-width: 180px; }
