/* ==================================================================
   LUXBEAUTY GALORE — STOREFRONT LAYER
   Builds on styles.css (the approved design). Header, bag, product,
   checkout, account, admin, motion and mobile refinements.
   ================================================================== */
:root{--ease:cubic-bezier(.22,.8,.24,1);--ease-out:cubic-bezier(.16,1,.3,1);--plum:#2e1a23;--plum-2:#512b3a;--rose:#b76e79;--rose-2:#d49aaa;--blush:#f6e3e8;--mist:#fff9fa;--line:#ecd9df;--muted:#835660;--ok:#3f7a5c;--err:#a3344f;--r:2px;--safe-b:env(safe-area-inset-bottom,0px)}
html.locked{overflow:hidden}
body{overflow-x:hidden}
img{max-width:100%}

/* ---------- page transitions ---------- */
html.js body{opacity:0}
html.js.page-in body{opacity:1;transition:opacity .45s var(--ease)}
html.js.page-out body{opacity:0;transition:opacity .2s ease}

/* ---------- announcement ---------- */
.announcement{overflow:hidden;white-space:nowrap;padding:9px 0}
.announce-track{display:inline-flex;gap:22px;animation:announce 38s linear infinite;padding-left:100%}
.announce-track .sep{color:#d9a1af}
@keyframes announce{to{transform:translateX(-100%)}}
@media(min-width:1100px){.announce-track{animation:none;padding-left:0;justify-content:center;width:100%}.announcement{text-align:center}.announce-track span:nth-child(n+4){display:none}}

/* ---------- header ---------- */
.site-header{transition:transform .45s var(--ease),box-shadow .3s,background .3s;will-change:transform}
.site-header.scrolled{box-shadow:0 10px 30px -18px #4b1f3140;background:rgba(255,249,250,.92);backdrop-filter:saturate(1.4) blur(14px)}
.site-header.hide{transform:translateY(-102%)}
#main-nav .navlink{position:relative;font-size:11.5px;letter-spacing:.07em;padding:6px 0}
#main-nav .navlink::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
#main-nav .navlink:hover::after,#main-nav .navlink.active::after{transform:scaleX(1);transform-origin:left}
.header-actions{gap:10px}
.account-btn,.bag-btn{display:inline-flex;align-items:center;gap:8px;height:42px;border:1px solid var(--line);background:#fff;border-radius:40px;padding:0 15px;color:var(--plum);font-size:11px;font-weight:700;letter-spacing:.06em;transition:background .25s,border-color .25s,color .25s,transform .25s}
.account-btn:hover,.bag-btn:hover{border-color:#d6a8b4;background:#fff3f6}
.account-btn svg,.bag-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.account-btn.active{background:var(--plum);color:#fff;border-color:var(--plum)}
.bag-btn{position:relative;padding:0 14px 0 13px}
.bag-count{min-width:20px;height:20px;border-radius:20px;background:var(--blush);color:var(--plum);display:grid;place-items:center;font-size:10px;padding:0 6px;transition:background .3s,color .3s}
.bag-btn.has-items .bag-count{background:var(--rose);color:#fff}
.bag-btn.bump{animation:bump .55s var(--ease-out)}
@keyframes bump{0%{transform:scale(1)}35%{transform:scale(1.14) rotate(-4deg)}70%{transform:scale(.96)}100%{transform:scale(1)}}
.fly-dot{position:fixed;z-index:120;color:var(--rose);font-size:22px;pointer-events:none;text-shadow:0 4px 18px #b76e7980}
.mobile-toggle{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:#fff;position:relative;padding:0;display:none}
.mobile-toggle span{position:absolute;left:13px;right:13px;height:1.5px;background:var(--plum);transition:transform .4s var(--ease),top .4s var(--ease)}
.mobile-toggle span:first-child{top:17px}.mobile-toggle span:last-child{top:25px}
.mobile-toggle.x span:first-child{top:21px;transform:rotate(45deg)}.mobile-toggle.x span:last-child{top:21px;transform:rotate(-45deg)}
.mobile-menu{position:fixed;inset:0;z-index:28;background:radial-gradient(120% 80% at 90% 0%,#5a2c3f 0%,#2e1a23 55%,#22121a 100%);color:#fbe9ee;padding:120px 7% calc(36px + var(--safe-b));display:flex;flex-direction:column;justify-content:space-between;clip-path:circle(0 at calc(100% - 40px) 40px);transition:clip-path .7s var(--ease);visibility:hidden}
.mobile-menu.open{clip-path:circle(150% at calc(100% - 40px) 40px);visibility:visible}
.mobile-menu nav{display:flex;flex-direction:column}
.mobile-menu nav a{font:400 clamp(36px,10vw,54px)/1.12 'Playfair Display',Georgia,serif;letter-spacing:-.04em;padding:10px 0;border-bottom:1px solid #ffffff14;display:flex;align-items:baseline;gap:16px;opacity:0;transform:translateY(24px);transition:opacity .5s,transform .6s var(--ease)}
.mobile-menu nav a small{font:600 10px 'DM Sans',sans-serif;letter-spacing:.2em;color:#d9a1af}
.mobile-menu.open nav a,.mobile-menu.open .mobile-menu-foot{opacity:1;transform:none;transition-delay:calc(.18s + var(--i) * 55ms)}
.mobile-menu-foot{opacity:0;transform:translateY(20px);transition:opacity .5s,transform .6s var(--ease)}
.mobile-menu-foot .btn{width:100%}
.mobile-menu-foot p{font-size:11px;letter-spacing:.14em;color:#d6aab6;text-transform:uppercase;margin:18px 0 0}

/* ---------- buttons ---------- */
.btn{position:relative;overflow:hidden;isolation:isolate;border-radius:var(--r);transition:transform .35s var(--ease),background .3s,box-shadow .35s,color .3s}
.btn::after{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(160px circle at var(--mx,50%) var(--my,50%),#ffffff38,transparent 60%);opacity:0;transition:opacity .3s}
.btn:hover::after{opacity:1}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -16px #4b1f3180}
.btn:active{transform:translateY(0) scale(.985)}
.btn-dark:hover{background:#6a3a4e}
.btn-line:hover{background:#fff1f4}
.btn-block{width:100%}
.btn[disabled]{opacity:.7;cursor:progress}
.btn.busy>span:first-child{opacity:.55}
.btn.busy>span:last-child{font-size:0;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.link-btn{background:none;border:0;padding:6px 0;color:#8a4f62;font-size:12px;text-decoration:underline;text-underline-offset:4px;justify-self:start}
.link-btn:hover{color:var(--plum)}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease-out),transform 1s var(--ease-out);transition-delay:var(--rv-d,0ms)}
.rv.in{opacity:1;transform:none}
.hero-headline h1,.hero-headline .eyebrow,.hero-right>*{animation:heroIn 1.1s var(--ease-out) both}
.hero-headline .eyebrow{animation-delay:.1s}.hero-headline h1{animation-delay:.2s}.hero-right>*:nth-child(1){animation-delay:.35s}.hero-right>*:nth-child(2){animation-delay:.45s}.hero-right>*:nth-child(3){animation-delay:.55s}
@keyframes heroIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}

/* ---------- product grid ---------- */
.product-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.product-card{position:relative;border:1px solid #ecd6dc;background:#fff;overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .3s}
.product-card:hover{transform:translateY(-6px);box-shadow:0 30px 50px -30px #6b2c4560;border-color:#dfb7c1}
.product-media{position:relative;display:block;aspect-ratio:1/1;background:radial-gradient(ellipse at 70% 20%,#fff7f9 0,#f3dbe2 60%,#e8c2cd 100%);overflow:hidden}
.product-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease),opacity .5s}
.product-media img.is-art{object-fit:contain}
.product-card:hover .product-media img{transform:scale(1.06)}
.product-badge{position:absolute;top:14px;left:14px;z-index:2;background:#2e1a23e6;color:#fbe3e9;font-size:9px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding:7px 10px}
.quick-add{position:absolute;left:14px;right:14px;bottom:14px;z-index:2;display:flex;justify-content:space-between;align-items:center;border:0;background:#fffafbf2;backdrop-filter:blur(10px);color:var(--plum);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:14px 16px;transform:translateY(calc(100% + 20px));transition:transform .5s var(--ease),background .25s}
.product-card:hover .quick-add,.quick-add:focus-visible{transform:none}
.quick-add:hover{background:var(--plum);color:#fff}
.product-meta{padding:22px 22px 24px}
.product-meta h3{min-height:0;font-size:21px;margin:8px 0 6px}
.product-meta h3 a{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .4s var(--ease)}
.product-meta h3 a:hover{background-size:100% 1px}
.product-meta p{min-height:0;margin-bottom:16px}
.price-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;border-top:1px solid #f0e0e4;padding-top:16px}
.price{font:500 20px 'Playfair Display',Georgia,serif;letter-spacing:-.02em;color:var(--plum)}
.add-btn{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--plum);background:var(--plum);color:#fff;padding:11px 15px;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;transition:background .25s,transform .25s}
.add-btn:hover{background:var(--rose);border-color:var(--rose)}
.add-btn.added{background:var(--ok);border-color:var(--ok)}
.shop-finish{border-top:1px solid #e5ced4;padding-top:30px}
.custom-card{background:linear-gradient(160deg,#3a2130,#2a1720);color:#f8e5ea;border-color:#3a2130;display:flex;flex-direction:column}
.custom-card .product-media{background:radial-gradient(ellipse at 50% 40%,#5b3145 0,#2e1a23 75%);display:grid;place-items:center;color:#f1c5d0}
.custom-card .lash-preview{width:78%;position:relative;inset:auto}
.custom-card .product-meta small{color:#e0a8b6}.custom-card .product-meta p{color:#d9b6bf}.custom-card .price{color:#fff}.custom-card .price-row{border-color:#ffffff1c}
.custom-card .add-btn{background:#f1c9d2;color:var(--plum);border-color:#f1c9d2}
@media(max-width:950px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.product-grid{gap:12px}.product-meta{padding:14px 13px 15px}.product-meta h3{font-size:15.5px;line-height:1.3}.product-meta p{display:none}.product-meta small{font-size:8.5px;letter-spacing:.12em}.price{font-size:16px}.price-row{flex-direction:column;align-items:stretch;gap:10px;padding-top:12px}.add-btn{justify-content:center;padding:11px 8px;font-size:9px}.quick-add{display:none}.product-badge{top:9px;left:9px;font-size:8px;padding:5px 7px}}
@media(max-width:360px){.product-grid{grid-template-columns:1fr}}

/* ---------- lash preview ---------- */
.lash-preview{display:grid;grid-template-columns:1fr 1fr;gap:6%;color:var(--plum);align-items:end}
.lash-preview svg{width:100%;height:auto;overflow:visible}
.lash-preview svg:first-child{transform:scaleX(-1)}
.lash-preview.mini{gap:2px;padding:6px}

/* ---------- bag drawer ---------- */
.drawer-overlay{display:block;opacity:0;pointer-events:none;background:#1c0b1380;backdrop-filter:blur(3px);transition:opacity .4s;z-index:60}
.drawer-overlay.open{opacity:1;pointer-events:auto}
.bag-drawer{position:fixed;top:0;right:0;bottom:0;z-index:61;width:min(460px,100vw);background:var(--mist);box-shadow:-20px 0 60px #2e1a2333;display:flex;flex-direction:column;transform:translateX(105%);transition:transform .6s var(--ease);padding:0}
.bag-drawer.open{transform:none}
.bag-drawer[aria-hidden=true]{pointer-events:none}
.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:26px 28px 20px;border-bottom:1px solid var(--line)}
.drawer-head h3{font-size:32px;margin:4px 0 0}
.drawer-head button{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:15px;transition:transform .35s var(--ease),background .2s}
.drawer-head button:hover{transform:rotate(90deg);background:var(--blush)}
.drawer-items{flex:1;overflow:auto;padding:6px 28px;overscroll-behavior:contain}
.drawer-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px;padding:30px}
.drawer-empty[hidden]{display:none}
.empty-mark{font-size:34px;color:var(--rose);animation:twinkle 3s ease-in-out infinite}
@keyframes twinkle{50%{transform:scale(1.2) rotate(20deg);opacity:.6}}
.drawer-empty p{font:400 24px/1.3 'Playfair Display',Georgia,serif;max-width:280px;margin:0}
.bag-line{display:grid;grid-template-columns:86px 1fr;gap:16px;padding:18px 0;border-bottom:1px solid var(--line);animation:lineIn .55s var(--ease-out) both;animation-delay:calc(var(--i) * 50ms)}
@keyframes lineIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
.bag-line.leaving{animation:lineOut .26s ease forwards}
@keyframes lineOut{to{opacity:0;transform:translateX(40px);height:0;padding:0}}
.bag-line.just-added{background:linear-gradient(90deg,#f6dde4,transparent);animation:lineIn .55s var(--ease-out) both,flash 1.6s ease .3s}
@keyframes flash{50%{background-color:#f6dde4}}
.bag-thumb{width:86px;height:86px;background:#f4e2e7;overflow:hidden;position:relative;display:grid;place-items:center}
.bag-thumb img{width:100%;height:100%;object-fit:cover}.bag-thumb img.is-art{object-fit:contain}
.bag-info{min-width:0;display:flex;flex-direction:column}
.bag-info small{font-size:8.5px;letter-spacing:.16em;color:#a6707c}
.bag-info strong{font:500 16px/1.3 'Playfair Display',Georgia,serif;margin:3px 0 4px}
.bag-spec{font-size:11px;color:#8a5d69;line-height:1.5}
.bag-row{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.bag-price{font-weight:600;font-size:14px}.bag-price em{font-style:normal;font-size:11px;letter-spacing:.08em;color:var(--rose);text-transform:uppercase}
.bag-remove{align-self:flex-start;border:0;background:none;padding:6px 0 0;font-size:11px;color:#9c5d6d;text-decoration:underline;text-underline-offset:3px}
.qty{display:inline-flex;align-items:center;border:1px solid #e2c6cd;background:#fff;height:34px}
.qty button{width:32px;height:100%;border:0;background:none;font-size:15px;color:var(--plum);transition:background .2s}
.qty button:hover{background:var(--blush)}
.qty span,.qty input{min-width:28px;text-align:center;font-size:13px;font-weight:600}
.qty input{width:44px;border:0;height:100%;background:none;-moz-appearance:textfield}
.qty input::-webkit-inner-spin-button{-webkit-appearance:none}
.drawer-foot{padding:20px 28px calc(24px + var(--safe-b));border-top:1px solid var(--line);background:#fff;display:grid;gap:10px}
.drawer-foot[hidden]{display:none}
.drawer-total{display:flex;justify-content:space-between;align-items:baseline}
.drawer-total span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.drawer-total strong{font:500 26px 'Playfair Display',Georgia,serif}
.drawer-note{font-size:11.5px;line-height:1.6;color:#8a5d69;margin:0}
.drawer-foot .link-btn{justify-self:center}

/* ---------- toast ---------- */
.toast{bottom:calc(22px + var(--safe-b));border-radius:40px;padding:13px 22px;box-shadow:0 18px 40px -18px #2e1a23aa;max-width:calc(100vw - 32px);text-align:center;transition:transform .5s var(--ease),opacity .4s;z-index:130}
.toast.err{background:#7e2a40}.toast.ok{background:#2f5a45}
.preview-flag{position:fixed;left:14px;bottom:calc(14px + var(--safe-b));z-index:25;background:#fff;border:1px dashed #d6a3b0;color:#8a4f62;font-size:10px;letter-spacing:.08em;padding:7px 11px;border-radius:30px;box-shadow:0 8px 20px -14px #2e1a2380}
.preview-flag[hidden]{display:none}

/* ---------- modal & auth ---------- */
.modal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:16px}
.modal-backdrop{position:absolute;inset:0;background:#1c0b1399;backdrop-filter:blur(4px);opacity:0;transition:opacity .35s}
.modal-card{position:relative;width:min(500px,100%);max-height:calc(100svh - 32px);overflow:auto;background:var(--mist);border:1px solid var(--line);padding:38px 36px 30px;box-shadow:0 40px 80px -30px #1c0b13aa;opacity:0;transform:translateY(24px) scale(.98);transition:opacity .4s,transform .5s var(--ease)}
.modal.open .modal-backdrop{opacity:1}.modal.open .modal-card{opacity:1;transform:none}
.modal-card h3{font-size:36px;margin:8px 0 8px}
.modal-x{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;transition:transform .3s var(--ease)}
.modal-x:hover{transform:rotate(90deg)}
.auth-hint{font-size:13px;color:#7d5860;line-height:1.7;margin-bottom:18px}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;border:1px solid #e2c6cd;margin-bottom:22px;background:#fff;position:relative}
.auth-tabs[hidden]{display:none}
.auth-tabs button{border:0;background:none;padding:13px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#916879;transition:background .3s,color .3s}
.auth-tabs button[aria-selected=true]{background:var(--plum);color:#fff}
.auth-form{display:grid;gap:14px}
.auth-form[hidden]{display:none}
.auth-form .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* ---------- shared form fields ---------- */
.auth-form label,.field label,.field>span,.form-grid label{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:#754653}
.auth-form label i,.form-grid label i{font-style:normal;text-transform:none;letter-spacing:0;font-weight:400;color:#a07a85}
.auth-form input:not([type=checkbox]),.form-grid input:not([type=checkbox]):not([type=radio]),.form-grid select,.form-grid textarea{display:block;width:100%;margin-top:7px;border:1px solid #e0c3ca;background:#fff;padding:13px 14px;color:var(--plum);border-radius:0;transition:border-color .2s,box-shadow .2s;font-size:15px}
.auth-form input:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:none;border-color:var(--rose);box-shadow:0 0 0 4px #b76e791f}
.form-grid input:user-invalid,.auth-form input:user-invalid{border-color:#cf7c8f}
.auth-form .check,.form-grid .check{display:flex;gap:10px;align-items:flex-start;text-transform:none;letter-spacing:0;font-weight:400;font-size:13px;color:#6f4b57;line-height:1.5}
.check input{accent-color:var(--rose);width:17px;height:17px;margin-top:1px;flex:none}
.pw{position:relative;display:block}
.pw input{padding-right:64px!important}
.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);margin-top:3.5px;border:0;background:none;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:#9c5d6d;padding:8px}
.form-msg{font-size:12.5px;line-height:1.6;margin:0;min-height:0}
.form-msg:empty{display:none}
.form-msg.err{color:var(--err)}.form-msg.ok{color:var(--ok)}
.reset-step{display:grid;gap:14px}.reset-step[hidden]{display:none}

/* ---------- inner page hero ---------- */
.page-hero{padding:70px max(5.4%,calc((100vw - 1460px)/2)) 46px;background:linear-gradient(145deg,#fffaf9,#f7e6e9);border-bottom:1px solid var(--line)}
.page-hero h1{font-size:clamp(44px,6vw,86px);margin:0 0 10px}
.page-hero p{max-width:560px;color:var(--muted);margin:0}
.crumbs{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#a66379;margin-bottom:22px;display:flex;gap:10px;flex-wrap:wrap}
.crumbs a:hover{color:var(--plum)}
.wrap{padding-left:max(5.4%,calc((100vw - 1460px)/2));padding-right:max(5.4%,calc((100vw - 1460px)/2))}

/* ---------- product page ---------- */
.pdp{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,5vw,80px);padding-top:46px;padding-bottom:90px}
.pdp-gallery{display:grid;grid-template-columns:76px 1fr;gap:14px;align-self:start;position:sticky;top:110px}
.pdp-thumbs{display:flex;flex-direction:column;gap:10px}
.pdp-thumbs button{border:1px solid var(--line);background:#f6e6ea;padding:0;aspect-ratio:1;overflow:hidden;transition:border-color .2s,opacity .2s;opacity:.65}
.pdp-thumbs button[aria-pressed=true]{border-color:var(--plum);opacity:1}
.pdp-thumbs img{width:100%;height:100%;object-fit:cover}.pdp-thumbs img.is-art{object-fit:contain}
.pdp-main{position:relative;aspect-ratio:1/1;background:radial-gradient(ellipse at 70% 20%,#fff7f9 0,#f3dbe2 60%,#e8c2cd 100%);overflow:hidden;cursor:zoom-in;border:1px solid var(--line)}
.pdp-main img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease),opacity .35s}
.pdp-main img.is-art{object-fit:contain}
.pdp-main.zoom img{transform:scale(1.8)}
.pdp-info .small-overline{font-size:10px}
.pdp-info h1{font-size:clamp(36px,4vw,58px);margin:12px 0 14px}
.pdp-price{display:flex;align-items:baseline;gap:16px;margin-bottom:20px}
.pdp-price strong{font:500 30px 'Playfair Display',Georgia,serif}
.pdp-price span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#a06a7a}
.pdp-info>p{color:#6f4b57;font-size:15px}
.pdp-buy{display:grid;grid-template-columns:auto 1fr;gap:12px;margin:26px 0 12px}
.pdp-buy .qty{height:54px}.pdp-buy .qty button{width:42px}
.pdp-buy .btn{min-height:54px}
.pdp-perks{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:24px 0}
.pdp-perks div{border:1px solid var(--line);background:#fff;padding:14px;font-size:11.5px;line-height:1.5;color:#6f4b57}
.pdp-perks b{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--plum);margin-bottom:4px}
.accordion details{border-bottom:1px solid var(--line)}
.accordion details:first-child{border-top:1px solid var(--line)}
.accordion summary{list-style:none;cursor:pointer;padding:18px 2px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;display:flex;justify-content:space-between}
.accordion summary::-webkit-details-marker{display:none}

.accordion details[open] summary::after{transform:rotate(45deg)}
.accordion .acc-body{padding:0 2px 18px;color:#6f4b57;font-size:14px}
.accordion ul{margin:0;padding-left:18px;line-height:2}
.related{padding-top:20px;padding-bottom:100px}
.related h2{font-size:clamp(34px,4vw,54px)}
.sticky-buy{position:fixed;left:0;right:0;bottom:0;z-index:24;background:#fffafbf2;backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:12px 16px calc(12px + var(--safe-b));display:none;align-items:center;gap:12px;transform:translateY(110%);transition:transform .45s var(--ease)}
.sticky-buy.show{transform:none}
.sticky-buy div{flex:1;min-width:0}.sticky-buy strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sticky-buy span{font-size:12px;color:#8a5d69}
.sticky-buy .btn{min-height:46px;padding:12px 18px;gap:12px}
@media(max-width:900px){.pdp{grid-template-columns:1fr;padding-top:24px}.pdp-gallery{position:static;grid-template-columns:1fr}.pdp-thumbs{flex-direction:row;order:2}.pdp-thumbs button{width:70px}.sticky-buy{display:flex}}
@media(max-width:520px){.pdp-perks{grid-template-columns:1fr}.pdp-info h1{font-size:34px}}

/* ---------- checkout ---------- */
.steps{display:flex;gap:0;margin-top:26px;max-width:520px;counter-reset:step}
.steps li{list-style:none;flex:1;position:relative;font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#b8909b;padding-top:24px}
.steps li::before{counter-increment:step;content:counter(step);position:absolute;top:0;left:0;width:18px;height:18px;border-radius:50%;border:1px solid currentColor;display:grid;place-items:center;font-size:9px;background:var(--mist);z-index:1}
.steps li::after{content:'';position:absolute;top:9px;left:22px;right:6px;height:1px;background:#e2c6cd}
.steps li:last-child::after{display:none}
.steps li.done,.steps li.now{color:var(--plum)}
.steps li.done::before{content:'';background:var(--plum);border-color:var(--plum)}
.steps li.now::before{background:var(--rose);color:#fff;border-color:var(--rose)}
.steps{padding:0}
.checkout{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:clamp(24px,4vw,60px);padding-top:46px;padding-bottom:100px;align-items:start}
.co-section{background:#fff;border:1px solid var(--line);padding:clamp(20px,3vw,34px);margin-bottom:16px}
.co-section h2{font-size:28px;margin:0 0 4px;display:flex;align-items:center;gap:14px}
.co-section h2 span{font:700 10px 'DM Sans',sans-serif;letter-spacing:.14em;width:28px;height:28px;border-radius:50%;background:var(--blush);display:grid;place-items:center;color:var(--plum)}
.co-section>p{font-size:13px;color:#8a5d69;margin:0 0 20px}
.form-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.form-grid .c2{grid-column:span 2}.form-grid .c3{grid-column:span 3}.form-grid .c4{grid-column:span 4}.form-grid .c6{grid-column:1/-1}
.choice-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.choice{position:relative}
.choice input{position:absolute;opacity:0;pointer-events:none}
.choice span{display:block;border:1px solid #e0c3ca;padding:11px 16px;font-size:12px;letter-spacing:.04em;text-transform:none;font-weight:600;background:#fff;cursor:pointer;transition:all .2s;color:var(--plum)}
.choice input:checked+span{background:var(--plum);color:#fff;border-color:var(--plum)}
.choice input:focus-visible+span{outline:2px solid var(--rose);outline-offset:2px}
.signin-nudge{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--blush);border:1px solid #e9c9d1;padding:16px 20px;margin-bottom:16px;font-size:13px}
.signin-nudge[hidden]{display:none}
.create-acct{border-top:1px dashed #e2c6cd;margin-top:18px;padding-top:18px}
.create-acct .pw-field{margin-top:12px}.create-acct .pw-field[hidden]{display:none}
.summary{position:sticky;top:110px;background:var(--mist);border:1px solid var(--line);padding:28px}
.summary h3{font-size:28px;margin:0 0 14px}
.sum-lines{max-height:46vh;overflow:auto;margin:0 -6px;padding:0 6px}
.sum-line{display:grid;grid-template-columns:64px 1fr auto;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.sum-thumb{position:relative;width:64px;height:64px;background:#f4e2e7;display:grid;place-items:center;overflow:hidden}
.sum-thumb img{width:100%;height:100%;object-fit:cover}.sum-thumb img.is-art{object-fit:contain}
.sum-thumb b{position:absolute;top:-1px;right:-1px;background:var(--plum);color:#fff;font-size:10px;min-width:20px;height:20px;border-radius:0 0 0 8px;display:grid;place-items:center}
.sum-line strong{font:500 14.5px/1.3 'Playfair Display',Georgia,serif;display:block}
.sum-line small{font-size:11px;color:#8a5d69}
.sum-line .amt{font-size:13px;font-weight:600;white-space:nowrap}
.sum-rows{margin:16px 0 8px;display:grid;gap:9px;font-size:13px}
.sum-rows div{display:flex;justify-content:space-between;gap:12px}
.sum-rows span:last-child{text-align:right}
.sum-rows .muted{color:#8a5d69}
.sum-total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid #dcbcc4;padding-top:14px;margin-top:6px}
.sum-total span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.sum-total strong{font:500 30px 'Playfair Display',Georgia,serif}
.due-now{display:flex;justify-content:space-between;background:#fff;border:1px solid var(--line);padding:12px 14px;margin:14px 0 18px;font-size:12px}
.due-now b{color:var(--ok)}
.pay-later{display:grid;grid-template-columns:30px 1fr;gap:12px;background:#fff;border:1px solid var(--line);padding:16px;font-size:12.5px;line-height:1.6;color:#6f4b57;margin-top:14px}
.pay-later span{font-size:22px;color:var(--rose);line-height:1}
.place-order{margin-top:4px}
.co-empty{text-align:center;padding:80px 20px 120px}
.co-empty h2{font-size:clamp(36px,5vw,60px)}
.mobile-summary-toggle{display:none}
@media(max-width:980px){.checkout{grid-template-columns:1fr}.summary{position:static;order:-1}.sum-lines{max-height:none}.form-grid .c2,.form-grid .c3,.form-grid .c4{grid-column:span 3}.form-grid .zip{grid-column:span 3}}
@media(max-width:560px){.form-grid{grid-template-columns:1fr 1fr;gap:13px}.form-grid .c2,.form-grid .c3,.form-grid .c4,.form-grid .zip{grid-column:span 1}.form-grid .c6,.form-grid .m-full{grid-column:1/-1}.summary{padding:20px}.signin-nudge{flex-direction:column;align-items:flex-start}.steps li{font-size:8.5px;letter-spacing:.08em}}
.summary-collapsed .sum-lines,.summary-collapsed .sum-rows{display:none}

/* ---------- confirmation ---------- */
.confirm{max-width:860px;margin:0 auto;padding:70px 20px 110px;text-align:center}
.check-anim{width:96px;height:96px;margin:0 auto 26px}
.check-anim circle{stroke:var(--rose);stroke-width:2;fill:none;stroke-dasharray:290;stroke-dashoffset:290;animation:draw 1s var(--ease-out) forwards}
.check-anim path{stroke:var(--plum);stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:60;stroke-dashoffset:60;animation:draw .6s var(--ease-out) .7s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.confirm h1{font-size:clamp(44px,6vw,80px);margin:0 0 12px}
.confirm .order-id{display:inline-block;border:1px solid #dcb9c2;background:#fff;padding:10px 18px;font-size:12px;letter-spacing:.16em;font-weight:700;margin:6px 0 24px}
.confirm>p{color:#6f4b57;max-width:560px;margin:0 auto 30px}
.next-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;text-align:left;margin:30px 0}
.next-steps div{background:#fff;border:1px solid var(--line);padding:22px}
.next-steps b{display:block;font:400 34px 'Playfair Display',Georgia,serif;color:var(--rose);margin-bottom:6px}
.next-steps span{font-size:13px;color:#6f4b57;line-height:1.6}
.confirm-items{text-align:left;background:var(--mist);border:1px solid var(--line);padding:22px 26px;margin:24px 0}
.confirm-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
@media(max-width:700px){.next-steps{grid-template-columns:1fr}}
.confetti{position:fixed;top:-20px;z-index:100;pointer-events:none;font-size:16px;color:var(--rose)}

/* ---------- account ---------- */
.acct-guest{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;margin:46px 0 100px;border:1px solid var(--line);background:#fff;min-height:560px}
.acct-guest .auth-panel{padding:clamp(26px,4vw,56px)}
.acct-guest .auth-panel h2{font-size:clamp(34px,3.6vw,50px);margin:6px 0 10px}
.acct-perks{position:relative;background:#2e1a23 url('../assets/editorial-crossed-legs.jpeg') center 25%/cover;color:#fbe9ee;padding:clamp(26px,4vw,56px);display:flex;flex-direction:column;justify-content:flex-end}
.acct-perks::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#2e1a2330 0%,#2e1a23e6 70%)}
.acct-perks>*{position:relative}
.acct-perks h3{font-size:clamp(30px,3vw,44px);margin:0 0 16px}
.acct-perks ul{list-style:none;padding:0;margin:0;display:grid;gap:10px;font-size:14px}

@media(max-width:860px){.acct-guest{grid-template-columns:1fr}.acct-perks{min-height:300px;order:-1}}
.acct{display:grid;grid-template-columns:250px minmax(0,1fr);gap:clamp(20px,3vw,46px);padding-top:40px;padding-bottom:100px;align-items:start}
.acct-nav{position:sticky;top:110px;display:grid;gap:4px}
.acct-nav button{display:flex;justify-content:space-between;align-items:center;border:0;border-left:2px solid transparent;background:none;text-align:left;padding:14px 16px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:#916879;transition:all .25s}
.acct-nav button span{font-size:11px;background:var(--blush);color:var(--plum);border-radius:20px;padding:2px 8px;letter-spacing:0}
.acct-nav button:hover{color:var(--plum);background:#fff}
.acct-nav button[aria-selected=true]{border-left-color:var(--rose);background:#fff;color:var(--plum)}
.acct-nav .signout{margin-top:12px;color:#a3344f}
.acct-panel{min-width:0;animation:panelIn .5s var(--ease-out)}
@keyframes panelIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.acct-panel h2{font-size:clamp(32px,3.4vw,46px);margin:0 0 6px}
.acct-panel>.lead{color:#7d5860;margin-bottom:24px}
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:26px}
.stat{background:#fff;border:1px solid var(--line);padding:20px}
.stat strong{display:block;font:400 38px/1 'Playfair Display',Georgia,serif;color:var(--plum);margin-bottom:8px}
.stat span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#916879}
.card{background:#fff;border:1px solid var(--line);padding:22px 24px;margin-bottom:12px;transition:box-shadow .3s,border-color .3s}
.card:hover{border-color:#e2c3cb;box-shadow:0 18px 40px -30px #6b2c4570}
.order-card summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr auto auto;gap:18px;align-items:center}
.order-card summary::-webkit-details-marker{display:none}
.order-card h4{font:500 20px 'Playfair Display',Georgia,serif;margin:0 0 3px}
.order-card .meta{font-size:12px;color:#8a5d69}
.order-card .chev{transition:transform .3s var(--ease);font-size:18px;color:#a06a7a}
.order-card[open] .chev{transform:rotate(180deg)}
.order-body{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}
.order-item{display:flex;justify-content:space-between;gap:12px;padding:8px 0;font-size:13.5px;border-bottom:1px dashed #efdde2}
.order-item small{display:block;color:#8a5d69;font-size:11.5px}
.order-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}
.status{display:inline-block;white-space:nowrap;font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:6px 10px;border:1px solid;border-radius:30px}
.s-new{color:#8d3f5a;background:#fbe8ee;border-color:#efc3d0}
.s-contacted{color:#7a5a1d;background:#fbf2df;border-color:#ecd7a8}
.s-confirmed{color:#2f5f7a;background:#e5f1f8;border-color:#bcd9ea}
.s-shipped{color:#4b3d86;background:#eeebfa;border-color:#cfc7f0}
.s-completed{color:#2f6448;background:#e4f3ea;border-color:#b8dcc7}
.s-cancelled{color:#7d6a70;background:#f1ecee;border-color:#ddd0d4}
.s-replied{color:#2f6448;background:#e4f3ea;border-color:#b8dcc7}.s-closed{color:#7d6a70;background:#f1ecee;border-color:#ddd0d4}
.design-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.design-card{background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;transition:transform .4s var(--ease),box-shadow .4s}
.design-card:hover{transform:translateY(-4px);box-shadow:0 24px 40px -30px #6b2c4580}
.design-card .dc-art{background:radial-gradient(ellipse at 50% 30%,#fff 0,#f6e3e8 80%);padding:26px 22px 18px;color:var(--plum);border-bottom:1px solid var(--line)}
.design-card .dc-body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
.design-card h4{font:500 21px 'Playfair Display',Georgia,serif;margin:4px 0 4px}
.design-card .spec{font-size:12px;color:#8a5d69;margin-bottom:6px}
.design-card .mm{font-size:11px;color:#6f4b57;line-height:1.7;margin-bottom:14px;font-variant-numeric:tabular-nums}
.design-card .dc-actions{margin-top:auto;display:flex;gap:8px;flex-wrap:wrap}
.chip-btn{border:1px solid #e0c3ca;background:#fff;padding:9px 12px;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--plum);transition:all .2s}
.chip-btn:hover{border-color:var(--plum)}
.chip-btn.solid{background:var(--plum);color:#fff;border-color:var(--plum)}
.chip-btn.solid:hover{background:var(--rose);border-color:var(--rose)}
.chip-btn.danger{color:#a3344f}
.empty{border:1px dashed #d8b3c0;background:#fff;padding:34px;text-align:center;color:#7d5860}
.empty h4{font:400 26px 'Playfair Display',Georgia,serif;margin:0 0 8px;color:var(--plum)}
.empty .btn{margin-top:14px}
.profile-form{max-width:640px}
.skeleton{background:linear-gradient(90deg,#f6e8ec 25%,#fdf4f6 50%,#f6e8ec 75%);background-size:200% 100%;animation:sk 1.3s infinite;height:90px;margin-bottom:12px}
@keyframes sk{to{background-position:-200% 0}}
@media(max-width:860px){.acct{grid-template-columns:1fr;padding-top:20px}.acct-nav{position:sticky;top:74px;z-index:5;display:flex;overflow-x:auto;background:var(--mist);margin:0 -5%;padding:6px 5%;border-bottom:1px solid var(--line);scrollbar-width:none}.acct-nav::-webkit-scrollbar{display:none}.acct-nav button{border-left:0;border-bottom:2px solid transparent;white-space:nowrap;padding:12px 12px;font-size:10.5px}.acct-nav button[aria-selected=true]{border-bottom-color:var(--rose);background:none}.acct-nav .signout{margin:0}.order-card summary{grid-template-columns:1fr auto}.order-card .chev{display:none}}
@media(max-width:560px){.stat-row{grid-template-columns:1fr 1fr 1fr;gap:8px}.stat{padding:14px 10px}.stat strong{font-size:28px}.stat span{font-size:9px;letter-spacing:.05em}}

/* ---------- home: studio actions + account teaser ---------- */
.studio-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
.studio-actions .btn{gap:12px;min-height:52px}
.studio-secondary{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px}
.studio-secondary button{background:none;border:0;padding:4px 0;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:#8a4f62;text-decoration:underline;text-underline-offset:4px}
.editing-pill{display:none;align-items:center;gap:10px;background:var(--plum);color:#fff;font-size:11px;letter-spacing:.06em;padding:8px 8px 8px 14px;margin-bottom:16px;border-radius:30px;width:max-content;max-width:100%}
.editing-pill.show{display:inline-flex}
.editing-pill button{border:0;background:#ffffff22;color:#fff;border-radius:20px;padding:4px 10px;font-size:10px}
.price-quote{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--line);padding:14px 16px;margin:16px 0 14px;font-size:12px;color:#6f4b57}
.price-quote b{font:500 18px 'Playfair Display',Georgia,serif;color:var(--plum)}
.saved-item .si-actions{display:flex;gap:4px}
.saved-item .si-actions button{border:1px solid #cea6af;background:#fff8fa;padding:5px 8px;font-size:10px;letter-spacing:.06em}
.saved-login{font-size:12px;color:#774b55}
.saved-login button{border:0;background:none;padding:0;color:var(--plum);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.photo-zone-ring.selected .photo-zone-touch{animation:ring 1.6s ease-in-out infinite}
@keyframes ring{50%{stroke-width:6;stroke-opacity:.5}}
.photo-zone-button{transition:background .2s,color .2s,transform .2s}
.photo-zone-button:active{transform:scale(.94)}
.photo-zone-button strong.pop{animation:pop .35s var(--ease-out)}
@keyframes pop{40%{transform:scale(1.25)}}
.teaser{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);background:#fffbfc;border:1px solid #dfc2c9}
.teaser-copy{padding:clamp(26px,4vw,58px)}
.teaser-copy h3{font-size:clamp(30px,3.4vw,48px);margin:8px 0 14px}
.teaser-copy ul{list-style:none;padding:0;margin:0 0 26px;display:grid;gap:10px;font-size:14px;color:#6f4b57}

.teaser-copy .row{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.teaser-art{background:#2e1a23 url('../assets/editorial-campaign.jpeg') center 30%/cover;min-height:340px;position:relative}
.teaser-art::after{content:'YOUR LASHES. YOUR LEGACY.';position:absolute;left:22px;bottom:20px;color:#fff;font-size:10px;letter-spacing:.2em;font-weight:700;text-shadow:0 1px 10px #0008}
@media(max-width:800px){.teaser{grid-template-columns:1fr}.teaser-art{min-height:240px;order:-1}.studio-actions{grid-template-columns:1fr}}
.contact form .honey{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.contact-feedback.ok{color:#cfe9d9}.contact-feedback.err{color:#ffc2cf}
.contact form input:focus,.contact form select:focus,.contact form textarea:focus{outline:none;border-color:#d49aaa;box-shadow:0 0 0 4px #d49aaa22}

/* ---------- mobile header & sections ---------- */
@media(max-width:1150px){#main-nav{gap:18px!important}}
@media(max-width:980px){#main-nav{display:none!important}.mobile-toggle{display:block}.site-header{display:grid!important;grid-template-columns:1fr auto 1fr;height:74px}.site-header .wordmark{justify-self:center}.header-actions{justify-self:end}}
@media(max-width:560px){.site-header{padding:0 4%!important;height:66px}.wordmark{min-width:0;font-size:20px}.wordmark small{font-size:8px;margin-top:5px}.account-btn span{display:none}.account-btn,.bag-btn{height:40px;padding:0 11px}.mobile-toggle{width:40px;height:40px}.mobile-toggle span{left:12px;right:12px}.mobile-toggle span:first-child{top:15px}.mobile-toggle span:last-child{top:23px}.mobile-toggle.x span{top:19px!important}.mobile-menu{padding-top:96px}.section-pad{padding:58px 5%}h2{font-size:clamp(36px,10vw,46px)}.page-hero{padding:44px 5% 32px}.preview-flag{font-size:9px;padding:6px 9px;left:10px;bottom:10px}}
.site-header,.mobile-toggle{z-index:31}
.site-header{position:sticky;top:0}
.mobile-menu~*{}

/* print: lash map only */
@media print{.site-header,.announcement,.bag-drawer,.drawer-overlay,.preview-flag,.mobile-menu,.studio-actions,.studio-secondary,.price-quote,.editing-pill,.site-footer{display:none!important}}

/* ==================================================================
   ADMIN
   ================================================================== */
.admin-body{background:#f8f1f3}
.admin-login{min-height:100svh;display:grid;place-items:center;padding:20px;background:radial-gradient(100% 70% at 80% 0%,#5a2c3f,#2e1a23 60%,#1f1018)}
.admin-login form{width:min(420px,100%);background:var(--mist);padding:40px 34px;display:grid;gap:16px;box-shadow:0 40px 80px -30px #000a;animation:panelIn .6s var(--ease-out)}
.admin-login h1{font-size:38px;margin:4px 0 0}
.admin-login p{font-size:13px;color:#7d5860;margin:0}
.admin-top{position:sticky;top:0;z-index:20;background:#2e1a23;color:#fbe9ee;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px max(3%,16px)}
.admin-top .wordmark{color:#fff;min-width:0;font-size:20px}.admin-top .wordmark .italic{color:#e3a6b5}.admin-top .wordmark small{color:#e3c3cb}
.admin-top .tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.admin-top .tools a,.admin-top .tools button{border:1px solid #ffffff30;background:none;color:#fbe9ee;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;padding:9px 12px;border-radius:30px;transition:background .2s}
.admin-top .tools a:hover,.admin-top .tools button:hover{background:#ffffff18}
.admin-main{padding:26px max(3%,16px) 80px}
.admin-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:22px}
.admin-stats .stat{padding:16px}
.admin-stats .stat strong{font-size:32px}
.admin-stats .stat.hl{background:#2e1a23;border-color:#2e1a23}.admin-stats .stat.hl strong{color:#fff}.admin-stats .stat.hl span{color:#e3a6b5}
.admin-tabs{display:flex;gap:4px;border-bottom:1px solid #e2c6cd;margin-bottom:16px;overflow-x:auto;scrollbar-width:none}
.admin-tabs button{border:0;border-bottom:2px solid transparent;background:none;padding:13px 16px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#916879;white-space:nowrap}
.admin-tabs button span{background:#ecd3da;color:var(--plum);border-radius:20px;padding:1px 7px;margin-left:6px;font-size:10px;letter-spacing:0}
.admin-tabs button[aria-selected=true]{color:var(--plum);border-bottom-color:var(--rose)}
.admin-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.admin-bar input,.admin-bar select{border:1px solid #e0c3ca;background:#fff;padding:11px 13px;font-size:13px;min-width:0}
.admin-bar input{flex:1;min-width:200px}
.admin-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);font-size:13px}
.admin-table th{text-align:left;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#916879;padding:12px 14px;border-bottom:1px solid var(--line);background:#fdf6f8}
.admin-table td{padding:13px 14px;border-bottom:1px solid #f3e6ea;vertical-align:top}
.admin-table tbody tr{cursor:pointer;transition:background .15s}
.admin-table tbody tr:hover{background:#fdf3f6}
.admin-table td b{font-weight:600}
.admin-table .sub{display:block;font-size:11.5px;color:#8a5d69}
.table-wrap{overflow-x:auto;border-radius:2px}
.admin-panel{position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);background:var(--mist);z-index:61;transform:translateX(105%);transition:transform .55s var(--ease);display:flex;flex-direction:column;box-shadow:-20px 0 60px #2e1a2333}
.admin-panel.open{transform:none}
.admin-panel .ap-head{display:flex;justify-content:space-between;align-items:start;gap:14px;padding:24px 26px 16px;border-bottom:1px solid var(--line)}
.admin-panel .ap-head h3{font-size:28px;margin:4px 0 0}
.admin-panel .ap-body{flex:1;overflow:auto;padding:20px 26px 30px}
.ap-section{margin-bottom:22px}
.ap-section h5{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#a06a7a;margin:0 0 10px}
.kv{display:grid;grid-template-columns:120px 1fr;gap:6px 14px;font-size:13.5px}
.kv dt{color:#916879;font-size:11.5px}.kv dd{margin:0;word-break:break-word}
.contact-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.ap-form{display:grid;gap:12px}
.ap-form select,.ap-form textarea{width:100%;border:1px solid #e0c3ca;background:#fff;padding:11px 12px;font-size:14px;margin-top:6px}
.ap-form label{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#754653}
.ap-form .check{text-transform:none;letter-spacing:0;font-weight:400;font-size:13px;display:flex;gap:10px}
.outbox{font-size:12px;color:#6f4b57;background:#fff;border:1px dashed #e0c3ca;padding:14px;margin-top:20px}
.outbox li{padding:4px 0}
@media(max-width:1100px){.admin-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.admin-stats{grid-template-columns:repeat(2,1fr)}.admin-table thead{display:none}.admin-table,.admin-table tbody,.admin-table tr,.admin-table td{display:block;width:100%}.admin-table tr{border-bottom:1px solid var(--line);padding:10px 4px}.admin-table td{border:0;padding:4px 10px}.admin-table td[data-l]::before{content:attr(data-l);display:block;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#a06a7a}.admin-top .wordmark small{display:none}.kv{grid-template-columns:1fr}.kv dt{margin-top:6px}}

@media(prefers-reduced-motion:reduce){html.js body{opacity:1}.rv{opacity:1;transform:none}.mobile-menu{transition:none}}
.form-grid input.missing{border-color:#cf7c8f;background:#fff7f9}
/* specificity fixes over the original .product-meta button rules */
.product-meta .add-btn{width:auto;display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--plum);border-top:1px solid var(--plum);background:var(--plum);color:#fff;padding:11px 15px;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-align:center}
.product-meta .add-btn:hover{background:var(--rose);border-color:var(--rose)}
.product-meta .add-btn.added{background:var(--ok);border-color:var(--ok)}
.custom-card .product-meta .add-btn{background:#f1c9d2;color:var(--plum);border-color:#f1c9d2}
.custom-card .lash-preview{color:#f3c6d1;width:80%}
.custom-card .lash-preview svg path{stroke-width:2.2}
.lash-preview.mini svg path{stroke-width:2.4}
@media(max-width:640px){.product-meta .add-btn{padding:11px 8px;font-size:9px}}
@media(max-width:560px){.price-quote{flex-direction:column;align-items:flex-start;gap:4px}}
[hidden]{display:none!important}

/* ==================================================================
   v2 — SVG icons everywhere, separate pages, custom set photo
   ================================================================== */
.quick-add{display:none!important}
.btn .ic{width:15px;height:15px}
.underline-link .ic,.textlink .ic{margin-left:8px;width:13px;height:13px;vertical-align:-.15em}
.underline-link span{margin-left:0}
.add-btn .ic,.chip-btn .ic{width:13px;height:13px}
.marquee .ic{margin:0 35px;width:12px;height:12px;vertical-align:-.1em}
.announcement .sep .ic{width:9px;height:9px;vertical-align:0}
.round-seal .ic{display:block;margin:4px auto 0;width:14px;height:14px}
.account-seal .ic{display:block;margin:0 auto 8px;width:26px;height:26px;color:#b76e79}
.eyebrow-dot .ic,.eyebrow .ic{width:10px;height:10px;vertical-align:0}
.film-diamond .ic{width:13px;height:13px}
.film-controls button{display:inline-flex;align-items:center;gap:7px}
.film-controls .ic{width:12px;height:12px;color:#f2c4cf}
.hero-foot .ic{width:11px;height:11px;margin-left:4px}
.empty-mark .ic{width:36px;height:36px}
.fly-dot .ic{width:22px;height:22px}
.confetti .ic{width:1em;height:1em}
.footer-bottom .ic{width:11px;height:11px;margin-left:4px;vertical-align:-.1em}
.drawer-head button,.modal-x{display:grid;place-items:center}
.drawer-head button .ic,.modal-x .ic{width:16px;height:16px}
.qty button{display:grid;place-items:center}
.qty .ic{width:14px;height:14px}
.pw-toggle{display:grid;place-items:center;width:40px;height:40px;padding:0;color:#9c5d6d;border-radius:50%}
.pw-toggle .ic{width:19px;height:19px}
.pw-toggle.on{color:var(--rose);background:#fbeef2}
.pw-toggle.on::after{content:'';position:absolute;width:20px;height:1.6px;background:currentColor;transform:rotate(-45deg);border-radius:2px}
.order-card .chev .ic{width:18px;height:18px}
.crumbs .ic{width:11px;height:11px;opacity:.7}
.saved-item .si-actions button{display:inline-flex;align-items:center;gap:4px}
.saved-item .si-actions .ic{width:11px;height:11px}
.course-button .ic{width:20px;height:20px;color:#9f6c77;transition:transform .4s var(--ease)}
.course.open .course-button .ic{transform:rotate(45deg)}
.technical-map summary .ic{width:16px;height:16px;transition:transform .3s var(--ease)}
.technical-map[open] summary .ic{transform:rotate(45deg)}
.photo-eye-card-header .ic,.map-legend .ic,.realistic-eye-map + .ic{width:11px;height:11px}
.service-card a .ic,.course-content a .ic{width:12px;height:12px;margin-left:4px}
/* pseudo-element icons (were text glyphs) */
.faq-list summary::after,.faq-list details[open] summary::after,.accordion summary::after{content:'';flex:none;width:17px;height:17px;background:currentColor;-webkit-mask:var(--ic-plus) center/contain no-repeat;mask:var(--ic-plus) center/contain no-repeat;transition:transform .35s var(--ease);font-size:0;align-self:center}
.faq-list details[open] summary::after,.accordion details[open] summary::after{transform:rotate(45deg)}
.steps li.done::before{content:'';background:var(--plum);border-color:var(--plum)}
.steps .step-ic{position:absolute;top:4px;left:4px;width:10px;height:10px;color:#fff;z-index:2}
.acct-perks li::before,.teaser-copy li::before{content:'';display:inline-block;width:11px;height:11px;margin-right:12px;background:currentColor;color:#e3a6b5;-webkit-mask:var(--ic-sparkle) center/contain no-repeat;mask:var(--ic-sparkle) center/contain no-repeat;vertical-align:0}
.teaser-copy li::before{background:var(--rose)}
.acct-perks li::before{background:#e3a6b5}
/* custom set photo */
.custom-card .product-media img{object-fit:cover;object-position:60% 50%}
.custom-card .product-media{background:#f6eee9}
.bag-thumb img[src*="custom-lash"],.sum-thumb img[src*="custom-lash"]{object-fit:cover}
/* single-image product: thumbnail column stays reserved for future photos */
.pdp-gallery.single .pdp-thumbs{visibility:hidden}
@media(max-width:900px){.pdp-gallery.single .pdp-thumbs{display:none}}
/* page structure */
.crumb-bar{padding:18px max(5.4%,calc((100vw - 1460px)/2)) 0;background:transparent;position:relative;z-index:2}
.crumb-bar .crumbs{margin:0;align-items:center}
.crumb-bar + section{padding-top:clamp(40px,6vw,80px)}
.crumb-bar + .about,.crumb-bar + .campaign{padding-top:0;margin-top:18px}
.page-lash-studio .crumb-bar,.page-shop .crumb-bar{background:var(--paper)}
.page-contact .crumb-bar,.page-services .crumb-bar{background:transparent}
.page-contact .crumb-bar{background:#321d27}.page-contact .crumb-bar .crumbs,.page-contact .crumb-bar a{color:#d6a6b0}
.page-about .crumb-bar{background:var(--paper)}
.studio-cta{display:flex;justify-content:space-between;align-items:center;gap:30px;background:#2e1a23;color:#f8e5ea;padding:clamp(26px,4vw,48px);margin-top:4px}
.studio-cta h3{font-size:clamp(30px,3.4vw,48px);margin:8px 0 10px;color:#fff}
.studio-cta h3 em{color:#e3a6b5}
.studio-cta p{color:#d9b6bf;max-width:520px;margin:0;font-size:14px}
.studio-cta .small-overline{color:#e3a6b5}
.studio-cta-actions{display:flex;flex-direction:column;align-items:flex-start;gap:18px;flex:none}
.studio-cta-actions .underline-link{color:#f1d6dd}
.cta-band{background:linear-gradient(120deg,#2e1924 0%,#381d2a 48%,#4b2637 100%);color:#fbe9ee}
.cta-inner{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:40px;align-items:end}
.cta-band h2{color:#fff;margin-bottom:14px}.cta-band h2 em{color:#e3a6b5}
.cta-band p{color:#dcbcc5;max-width:520px;margin:0}
.cta-actions{display:grid;gap:12px;justify-items:start}
.cta-actions .btn{min-width:280px}
@media(max-width:800px){.studio-cta{flex-direction:column;align-items:flex-start}.cta-inner{grid-template-columns:1fr}.cta-actions .btn{min-width:0;width:100%}}
/* admin icon buttons */
.admin-top .tools a,.admin-top .tools button,.chip-btn{display:inline-flex;align-items:center;gap:7px}
.admin-top .tools .ic{width:14px;height:14px}
.studio-secondary button{display:inline-flex;align-items:center;gap:6px}
.studio-secondary .ic{width:14px;height:14px}
.pdp-perks .ic{display:block;width:20px;height:20px;color:var(--rose);margin-bottom:8px}
.contact-actions .chip-btn .ic{width:14px;height:14px}
img.img-missing{opacity:0}
.design-card .dc-art{padding:0;overflow:hidden;aspect-ratio:16/10}
.design-card .dc-art img{width:100%;height:100%;object-fit:cover;object-position:60% 50%;display:block;transition:transform .8s var(--ease)}
.design-card:hover .dc-art img{transform:scale(1.05)}
.zone-tools{display:flex;gap:12px;margin-top:8px}
.zone-tools button{display:inline-flex;align-items:center;gap:5px;border:0;background:none;padding:2px 0;font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:#8a4f62;text-decoration:underline;text-underline-offset:3px}
.zone-tools .ic{width:11px;height:11px}
.edit-zone h3{max-width:260px}
main section[id]{scroll-margin-top:84px}
.slider-num{white-space:nowrap}
