.drawer{position:fixed;inset:0;z-index:100;visibility:hidden}
.drawer.open{visibility:visible}
.drawer__bg{position:absolute;inset:0;background:rgba(0,0,0,.6);opacity:0;transition:opacity .2s}
.drawer.open .drawer__bg{opacity:1}
.drawer__panel{position:absolute;top:0;right:0;bottom:0;width:100%;max-width:420px;background:var(--bg);border-left:1px solid var(--line);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .25s}
.drawer.open .drawer__panel{transform:none}
.drawer__hd{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}
.drawer__hd h2{font-size:18px}
.cart{display:flex;flex-direction:column;flex:1;min-height:0}
.cart__body{flex:1;overflow-y:auto;padding:14px 16px}
.cart__ft{padding:14px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg2)}
.fs{margin:0 0 14px;font-size:13px}
.fs__bar{height:6px;background:rgba(255,255,255,.08);border-radius:6px;margin-top:6px;overflow:hidden}
.fs__bar i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--cyan));border-radius:6px;transition:width .3s}
.fs b{color:var(--cyan)}
.li{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.li__sw{width:30px;height:30px;border-radius:50%;flex:none}
.li__info{flex:1;min-width:0;font-size:13px}
.li__info b{display:block;font:800 13.5px 'Syne',sans-serif}
.li__info span{color:var(--txt2)}
.li__price{text-align:right;font-size:13px;flex:none}
.li__price s{display:block;color:var(--txt2);font-size:11.5px}
.li .qty button{width:30px;height:30px}
.li .qty output{width:24px}
.cart__row{display:flex;justify-content:space-between;font-size:14px;margin:0 0 6px}
.cart__row.save{color:var(--ok);font-weight:700}
.cart__row.tot{font:800 18px 'Syne',sans-serif;margin:8px 0 12px}
.cart__note{font-size:11.5px;color:var(--txt2);text-align:center;margin:8px 0 0}
.cart__empty{text-align:center;padding:40px 0;color:var(--txt2)}
.cart__up{display:flex;align-items:center;gap:10px;margin:14px 0 0;padding:12px;border:1px dashed rgba(0,229,255,.4);border-radius:12px;font-size:12.5px;color:var(--txt2)}
.cart__up div{flex:1}
.cart__up b{display:block;font:800 13.5px 'Syne',sans-serif;color:var(--txt)}
.cart__up .btn{padding:9px 12px;font-size:12.5px}
.cart-page{padding:20px 16px 40px;max-width:640px}
.cart-page .cart__ft{border:1px solid var(--line);border-radius:var(--r);margin-top:12px}
.modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(5,5,10,.86);backdrop-filter:blur(6px)}
.modal.open{display:flex}
.modal__box{position:relative;width:100%;max-width:400px;background:var(--card);border:1px solid rgba(0,229,255,.25);border-radius:18px;padding:26px 22px;text-align:center}
.modal__box h2{font-size:24px;margin:6px 0 8px}
.modal__box p{color:var(--txt2);font-size:14px;margin:0 0 16px}
.modal__x{position:absolute;top:6px;right:6px;width:40px;height:40px;background:none;border:0;font-size:24px;color:var(--txt2)}
.modal__big{font:800 54px/1 'Syne',sans-serif;background:linear-gradient(180deg,#fff,var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.age__18{width:64px;height:64px;margin:0 auto 6px;border-radius:50%;border:3px solid var(--cyan);display:flex;align-items:center;justify-content:center;font:800 22px 'Syne',sans-serif;color:var(--cyan)}
.modal .btn+.btn{margin-top:8px}
.field{width:100%;background:var(--bg2);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:14px;color:var(--txt);font:inherit;margin:0 0 10px}
.field:focus{outline:none;border-color:var(--cyan)}
.code{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--bg2);border:1px dashed var(--cyan);border-radius:12px;padding:10px 10px 10px 16px;margin:0 0 12px}
.code b{font:800 22px 'Syne',sans-serif;letter-spacing:.08em;color:var(--cyan)}
.code .btn{padding:10px 14px;font-size:13px}
.legal-mini{font-size:11px;color:var(--txt2);margin:10px 0 0}
.wa{position:fixed;right:16px;bottom:16px;z-index:55;width:54px;height:54px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.45),0 0 0 2px rgba(0,229,255,.2);transition:bottom .2s}
.page{padding:26px 16px 50px;max-width:760px}
.page h1{font-size:28px;margin:0 0 16px}
.rte{color:var(--txt2);font-size:15px}
.rte h2,.rte h3{color:var(--txt);margin:26px 0 8px;font-size:19px}
.rte strong{color:var(--txt)}
.rte a{color:var(--cyan)}
.rte table{width:100%;border-collapse:collapse;margin:10px 0}
.rte td,.rte th{border:1px solid var(--line);padding:8px;text-align:left}
.rte details p{margin:0 0 14px}
.cform{display:grid;gap:0;margin:16px 0}
.cform textarea{min-height:120px}
.notice{padding:12px;border-radius:12px;font-size:14px;margin:0 0 12px}
.notice--ok{background:rgba(0,182,122,.12);color:var(--ok)}
.notice--err{background:rgba(255,80,80,.12);color:#ff8080}
.cbox{display:grid;gap:10px;margin:20px 0}
@media(min-width:600px){.cbox{grid-template-columns:1fr 1fr}}
.cbox a{display:block;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;text-decoration:none;color:var(--txt2);font-size:13px}
.cbox b{display:block;color:var(--txt);font:800 15px 'Syne',sans-serif;margin:2px 0}
.ft{background:var(--foot);border-top:1px solid var(--line);padding:30px 0 90px;margin-top:20px;font-size:13.5px;color:var(--txt2)}
.ft__grid{display:grid;gap:24px}
@media(min-width:760px){.ft__grid{grid-template-columns:1.3fr 1fr 1fr}}
.ft h3{font-size:14px;color:var(--txt);margin:0 0 10px}
.ft ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ft a{text-decoration:none}
.ft a:hover{color:var(--cyan)}
.ft__bottom{margin-top:24px;padding-top:16px;border-top:1px solid var(--line);font-size:12px;display:flex;flex-direction:column;gap:6px}
.pay{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.pay svg{height:22px;width:auto}
.age-warn{display:inline-block;border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:3px 8px;font-weight:700;color:var(--txt);width:fit-content}