/* ==========================================================================
   PERFETTO — Этап 1: витрина (главная страница)
   Дизайн-система + вёрстка по разделу 1 технического задания.
   ========================================================================== */

:root{
  /* Brand palette */
  --color-bg:#ffffff;
  --color-topbar:#f3ddd8;
  --color-rose:#b76e79;
  --color-rose-dark:#9c5760;
  --color-rose-pale:#f7eeec;
  --color-ink:#1a1a1a;
  --color-ink-soft:#3a3a3a;
  --color-grey:#6b6b6b;
  --color-grey-light:#e7e2df;
  --color-border:#e9e2df;
  --color-sale:#d64545;
  --color-success:#3f8f5f;
  --color-warning:#c98a2c;
  --color-white:#ffffff;

  --font-serif:'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-sans:'Manrope', 'Segoe UI', Arial, sans-serif;

  --container:1320px;
  --radius-sm:6px;
  --radius-md:12px;
  --radius-lg:20px;
  --shadow-card:0 4px 24px rgba(26,26,26,.06);
  --transition:.25s ease;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  margin:0;
  font-family:var(--font-sans);
  color:var(--color-ink);
  background:var(--color-bg);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
button{font-family:inherit;cursor:pointer;}
input,button{font-size:1rem;}
.container{max-width:var(--container);margin:0 auto;padding:0 32px;}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:15px 30px;border-radius:2px;border:1px solid transparent;
  font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;
  transition:var(--transition);white-space:nowrap;
}
.btn-dark,.btn-primary{background:var(--color-ink);color:#fff;}
.btn-dark:hover,.btn-primary:hover{background:var(--color-rose-dark);}
.btn-outline{background:transparent;color:var(--color-ink);border-color:var(--color-ink);}
.btn-outline:hover{background:var(--color-ink);color:#fff;}
.btn-rose{background:var(--color-rose);color:#fff;}
.btn-rose:hover{background:var(--color-rose-dark);}
.btn-block{width:100%;}

/* ==========================================================================
   TOPBAR
   ========================================================================== */
.topbar{background:var(--color-topbar);font-size:.8rem;color:var(--color-ink-soft);}
.topbar .container{display:flex;align-items:center;justify-content:space-between;height:40px;gap:24px;}
.topbar__left{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.topbar__mid{flex:1;display:flex;justify-content:center;gap:28px;overflow:hidden;}
.topbar__mid span{white-space:nowrap;}
.topbar__mid .sale{color:var(--color-sale);font-weight:600;}
.topbar__right{display:flex;align-items:center;gap:20px;flex-shrink:0;}
.topbar__right a{white-space:nowrap;}
.topbar__right a:hover{color:var(--color-rose-dark);}
.lang-switch{position:relative;}
.lang-switch__btn{display:flex;align-items:center;gap:4px;background:none;border:0;color:inherit;font-size:.8rem;}
.lang-switch__menu{
  position:absolute;top:100%;right:0;background:#fff;box-shadow:var(--shadow-card);
  border-radius:var(--radius-sm);min-width:64px;padding:6px 0;display:none;z-index:60;
}
.lang-switch__menu.open{display:block;}
.lang-switch__menu button{
  display:block;width:100%;text-align:left;padding:8px 14px;background:none;border:0;
  color:var(--color-ink);font-size:.82rem;
}
.lang-switch__menu button:hover{background:var(--color-rose-pale);}
.lang-switch__menu button[aria-current="true"]{color:var(--color-rose);font-weight:700;}

/* Мультивалютність (розділ 18.5 ТЗ) — той самий патерн, що й перемикач мови */
.currency-switch{position:relative;}
.currency-switch__btn{display:flex;align-items:center;gap:4px;background:none;border:0;color:inherit;font-size:.8rem;}
.currency-switch__menu{
  position:absolute;top:100%;right:0;background:#fff;box-shadow:var(--shadow-card);
  border-radius:var(--radius-sm);min-width:84px;padding:6px 0;display:none;z-index:60;
}
.currency-switch__menu.open{display:block;}
.currency-switch__menu button{
  display:block;width:100%;text-align:left;padding:8px 14px;background:none;border:0;
  color:var(--color-ink);font-size:.82rem;white-space:nowrap;
}
.currency-switch__menu button:hover{background:var(--color-rose-pale);}
.currency-switch__menu button[aria-current="true"]{color:var(--color-rose);font-weight:700;}

/* ==========================================================================
   HEADER
   ========================================================================== */
.site-header{background:#fff;border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:50;}
.site-header .container{display:flex;align-items:center;justify-content:space-between;height:92px;gap:32px;}
.logo{font-family:var(--font-serif);font-size:1.9rem;line-height:1;}
.logo small{display:block;font-family:var(--font-sans);font-size:.6rem;letter-spacing:.28em;color:var(--color-grey);font-weight:600;margin-top:4px;}

.main-nav{display:flex;}
.main-nav ul{display:flex;gap:34px;}
.main-nav a{font-size:.92rem;font-weight:600;letter-spacing:.02em;position:relative;padding:6px 0;}
.main-nav a:hover{color:var(--color-rose);}
.main-nav .has-dropdown{}
.main-nav .sale-link{color:var(--color-sale);}
.dropdown-caret{width:9px;height:9px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);display:inline-block;vertical-align:middle;margin-left:4px;margin-top:-3px;}

.header-icons{display:flex;align-items:center;gap:22px;}
.icon-btn{position:relative;display:inline-flex;color:var(--color-ink);}
.icon-btn svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.6;}
.icon-badge{
  position:absolute;top:-8px;right:-9px;background:var(--color-rose);color:#fff;
  font-size:.62rem;font-weight:700;min-width:16px;height:16px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;padding:0 3px;
}
.burger-btn{display:none;background:none;border:0;color:var(--color-ink);}
.burger-btn svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.7;}

/* ==========================================================================
   HERO SLIDER
   ========================================================================== */
.hero{position:relative;background:var(--color-rose-pale);overflow:hidden;}
.hero__track{display:flex;transition:transform .6s cubic-bezier(.65,0,.35,1);}
.hero__slide{position:relative;flex:0 0 100%;width:100%;aspect-ratio:16/7;}
.hero__slide img{width:100%;height:100%;object-fit:cover;}
.hero__caption{
  position:absolute;left:0;top:0;height:100%;width:100%;display:flex;align-items:center;
}
.hero__caption .container{width:100%;}
.hero__caption-inner{max-width:460px;position:relative;z-index:0;padding:28px 26px;margin:-28px -26px;}
.hero__caption-inner::before{
  content:"";position:absolute;inset:0;z-index:-1;border-radius:6px;
  background:radial-gradient(ellipse 100% 100% at 30% 50%, rgba(255,255,255,.72) 0%, rgba(255,255,255,.4) 55%, rgba(255,255,255,0) 100%);
}
.hero__eyebrow{font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-soft);margin-bottom:14px;}
.hero__title{font-family:var(--font-serif);font-size:3.4rem;line-height:1.05;margin:0 0 16px;}
.hero__subtitle{font-size:1.05rem;color:var(--color-ink-soft);margin:0 0 28px;}
.hero__arrow{
  position:absolute;top:50%;translate:0 -50%;width:48px;height:48px;border-radius:50%;
  background:rgba(255,255,255,.85);display:flex;align-items:center;justify-content:center;
  border:0;z-index:5;box-shadow:var(--shadow-card);color:var(--color-ink);
}
.hero__arrow svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;}
.hero__arrow--prev{left:28px;}
.hero__arrow--next{right:28px;}
.hero__dots{position:absolute;bottom:22px;left:0;width:100%;display:flex;justify-content:center;gap:9px;z-index:5;}
.hero__dots button{width:8px;height:8px;border-radius:50%;background:rgba(26,26,26,.28);border:0;padding:0;}
.hero__dots button.active{background:var(--color-ink);width:22px;border-radius:4px;transition:var(--transition);}

/* ==========================================================================
   CATEGORY TILES (desktop)
   ========================================================================== */
.categories{padding:56px 0 8px;}
.categories__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;}
.cat-tile{position:relative;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:7/9;color:#fff;}
.cat-tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.cat-tile:hover img{transform:scale(1.06);}
.cat-tile::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(20,15,14,.55) 100%);
}
.cat-tile__label{position:absolute;left:20px;bottom:20px;z-index:2;}
.cat-tile__label h3{font-family:var(--font-serif);font-size:1.15rem;margin:0 0 4px;font-weight:600;}
.cat-tile__label span{font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;display:inline-flex;align-items:center;gap:4px;opacity:.92;}

/* Mobile category avatar rail (hidden on desktop) */
.cat-rail{display:none;}

/* ==========================================================================
   BENEFITS STRIP
   ========================================================================== */
.benefits{padding:52px 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);margin-top:52px;}
.benefits__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;text-align:center;}
.benefit{display:flex;flex-direction:column;align-items:center;gap:12px;}
.benefit__icon{
  width:52px;height:52px;border-radius:50%;background:var(--color-rose-pale);
  display:flex;align-items:center;justify-content:center;color:var(--color-rose-dark);
}
.benefit__icon svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.6;}
.benefit h4{font-size:.92rem;margin:0;font-weight:700;}
.benefit p{font-size:.78rem;color:var(--color-grey);margin:0;}

/* ==========================================================================
   PROMO STRIP (Lookbook / Subscribe / Sale)
   ========================================================================== */
.promo-strip{padding:56px 0;}
.promo-strip__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.promo-card{position:relative;border-radius:var(--radius-md);overflow:hidden;min-height:300px;display:flex;align-items:flex-end;}
.promo-card--photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.promo-card--photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(15,10,10,.6) 100%);}
.promo-card__body{position:relative;z-index:2;padding:28px;color:#fff;}
.promo-card__body h3{font-family:var(--font-serif);font-size:1.5rem;margin:0 0 8px;}
.promo-card__body p{margin:0 0 16px;font-size:.92rem;opacity:.92;}
.promo-card__link{font-size:.85rem;font-weight:700;display:inline-flex;align-items:center;gap:6px;text-decoration:underline;text-underline-offset:4px;}

.promo-card--subscribe{background:var(--color-rose-pale);color:var(--color-ink);align-items:stretch;}
.promo-card--subscribe .promo-card__body{color:var(--color-ink);padding:32px 28px;display:flex;flex-direction:column;justify-content:center;flex:1;min-width:0;}
.promo-card--subscribe h3{color:var(--color-ink);font-size:1.28rem;overflow-wrap:break-word;}
.promo-card--subscribe p{color:var(--color-ink-soft);overflow-wrap:break-word;}
.subscribe-form{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;}
.subscribe-form input{flex:1 1 160px;min-width:0;padding:13px 16px;border:1px solid var(--color-grey-light);border-radius:2px;background:#fff;}
.subscribe-form button{flex:0 0 auto;}
.subscribe-form input:focus{outline:2px solid var(--color-rose);}
.form-msg{font-size:.78rem;margin-top:10px;color:var(--color-success);min-height:1em;}

/* ==========================================================================
   POPULAR / RECOMMENDED PRODUCTS
   ========================================================================== */
.section-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:24px;}
.section-heading h2{font-family:var(--font-serif);font-size:1.7rem;margin:0;}
.section-heading a{font-size:.85rem;font-weight:700;display:inline-flex;align-items:center;gap:6px;}
.section-heading a:hover{color:var(--color-rose);}

.products{padding:56px 0;}
.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}

.product-card{position:relative;}
.product-card__media{display:block;position:relative;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:7/9;background:var(--color-rose-pale);}
.product-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.product-card:hover .product-card__media img{transform:scale(1.05);}
.product-card__badges{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;gap:6px;z-index:2;}
.badge{font-size:.68rem;font-weight:700;letter-spacing:.03em;padding:4px 9px;border-radius:2px;color:#fff;text-transform:uppercase;}
.badge--new{background:var(--color-ink);}
.badge--sale{background:var(--color-sale);}
.badge--vip{background:linear-gradient(135deg,#8a6d3b,#c9a75c);letter-spacing:.06em;}
.product-card--vip .product-card__media{outline:1px solid #c9a75c;outline-offset:-1px;}
.wishlist-toggle{
  position:absolute;top:12px;right:12px;z-index:2;width:34px;height:34px;border-radius:50%;
  background:rgba(255,255,255,.9);border:0;display:flex;align-items:center;justify-content:center;
}
.wishlist-toggle svg{width:17px;height:17px;stroke:var(--color-ink);fill:none;stroke-width:1.6;transition:var(--transition);}
.wishlist-toggle.active svg{fill:var(--color-sale);stroke:var(--color-sale);}
.product-card__swatches{display:flex;gap:5px;margin-top:10px;}
.swatch{width:14px;height:14px;border-radius:50%;border:1px solid rgba(0,0,0,.15);}
.product-card__title{display:block;font-size:.9rem;margin:10px 0 4px;font-weight:600;}
.product-card__price{font-size:.92rem;font-weight:700;}
.product-card__price .old{color:var(--color-grey);text-decoration:line-through;font-weight:500;margin-right:8px;font-size:.82rem;}

.product-carousel{display:grid;grid-auto-flow:column;grid-auto-columns:calc(25% - 17px);gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;scrollbar-width:none;}
.product-carousel::-webkit-scrollbar{display:none;}
.product-carousel .product-card{scroll-snap-align:start;}
.carousel-wrap{position:relative;}
.carousel-nav{
  position:absolute;top:38%;translate:0 -50%;width:42px;height:42px;border-radius:50%;background:#fff;
  box-shadow:var(--shadow-card);border:0;display:flex;align-items:center;justify-content:center;z-index:5;color:var(--color-ink);
}
.carousel-nav svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;}
.carousel-nav--prev{left:-21px;}
.carousel-nav--next{right:-21px;}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer{background:var(--color-ink);color:#cfcac8;padding:64px 0 0;margin-top:40px;}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1.1fr;gap:32px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.12);}
.footer-brand .logo{color:#fff;}
.footer-brand p{font-size:.85rem;line-height:1.6;color:#a9a4a1;margin:16px 0 20px;max-width:260px;}
.social-row{display:flex;gap:10px;}
.social-row a{
  width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.25);
  display:flex;align-items:center;justify-content:center;color:#fff;
}
.social-row a:hover{background:var(--color-rose);border-color:var(--color-rose);}
.social-row svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.6;}
.footer-col h5{font-size:.82rem;letter-spacing:.05em;text-transform:uppercase;color:#fff;margin:0 0 18px;}
.footer-col ul li{margin-bottom:11px;}
.footer-col a{font-size:.86rem;color:#b7b2af;}
.footer-col a:hover{color:#fff;}
.footer-contacts p{font-size:.86rem;color:#b7b2af;margin:0 0 10px;}
.footer-contacts .btn{margin-top:10px;}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;padding:22px 0;font-size:.78rem;color:#8d8886;flex-wrap:wrap;gap:12px;}
.footer-bottom__links{display:flex;gap:18px;}
.footer-bottom__links a:hover{color:#fff;}
.payment-icons{display:flex;gap:8px;}
.payment-icons span{
  border:1px solid rgba(255,255,255,.2);border-radius:4px;padding:4px 9px;font-size:.68rem;
  font-weight:700;letter-spacing:.02em;color:#cfcac8;
}

/* Mobile footer accordion (collapsed by default via CSS on small screens) */
.footer-accordion-toggle{display:none;}

/* ==========================================================================
   MOBILE BOTTOM TAB BAR — hidden on desktop
   ========================================================================== */
.bottom-tabbar{display:none;}

/* ==========================================================================
   MOBILE OFF-CANVAS MENU — hidden on desktop
   ========================================================================== */
.mobile-menu-overlay{display:none;}

/* ==========================================================================
   RESPONSIVE — breakpoints per раздел 5.1 ТЗ
   ========================================================================== */

/* Laptop / small desktop: 1200–1439 */
@media (max-width:1439px){
  .container{padding:0 24px;}
  .hero__title{font-size:2.8rem;}
}

/* Tablet landscape: 992–1199 */
@media (max-width:1199px){
  .categories__grid{grid-template-columns:repeat(4,1fr);}
  .categories__grid .cat-tile:last-child{display:none;}
  .product-grid{grid-template-columns:repeat(3,1fr);}
  .product-carousel{grid-auto-columns:calc(33.333% - 15px);}
  .footer-top{grid-template-columns:1.3fr 1fr 1fr 1fr;}
  .footer-contacts{display:none;}
  .main-nav ul{gap:22px;}
}

/* Tablet portrait: 768–991 — switch to mobile-style chrome */
@media (max-width:991px){
  .topbar__mid{display:none;}
  .site-header .container{height:76px;}
  .main-nav{display:none;}
  .burger-btn{display:inline-flex;}
  .header-icons{gap:16px;}
  .header-icons .icon-btn--account{display:none;}

  .hero__title{font-size:2.2rem;}
  .hero__caption-inner{max-width:340px;}
  .hero__arrow{width:38px;height:38px;}

  .categories{display:none;}
  .cat-rail{
    display:flex;gap:18px;overflow-x:auto;padding:22px 0 4px;scrollbar-width:none;
  }
  .cat-rail::-webkit-scrollbar{display:none;}
  .cat-rail__item{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:8px;width:78px;text-align:center;}
  .cat-rail__avatar{width:64px;height:64px;border-radius:50%;overflow:hidden;border:1px solid var(--color-border);}
  .cat-rail__avatar img{width:100%;height:100%;object-fit:cover;}
  .cat-rail__item span{font-size:.72rem;line-height:1.2;font-weight:600;}

  .benefits{display:none;}

  .promo-strip__grid{grid-template-columns:1fr;}

  .product-grid{grid-template-columns:repeat(2,1fr);gap:14px;}
  .section-heading h2{font-size:1.35rem;}

  .footer-top{grid-template-columns:1fr;gap:0;padding-bottom:0;border-bottom:0;}
  .footer-brand{padding-bottom:24px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:6px;}
  .footer-col{border-bottom:1px solid rgba(255,255,255,.12);}
  .footer-col h5{
    cursor:pointer;display:flex;align-items:center;justify-content:space-between;
    padding:18px 0;margin:0;
  }
  .footer-col h5::after{content:"+";font-size:1.1rem;font-weight:400;transition:var(--transition);}
  .footer-col.open h5::after{content:"–";}
  .footer-col ul{max-height:0;overflow:hidden;transition:max-height .3s ease;}
  .footer-col.open ul{max-height:400px;padding-bottom:16px;}

  .bottom-tabbar{
    display:flex;position:fixed;left:0;bottom:0;width:100%;height:64px;background:#fff;
    border-top:1px solid var(--color-border);z-index:70;padding-bottom:env(safe-area-inset-bottom);
  }
  body{padding-bottom:64px;}
  .bottom-tabbar a{
    flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    font-size:.64rem;color:var(--color-grey);position:relative;font-weight:600;
  }
  .bottom-tabbar a svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.6;}
  .bottom-tabbar a.active{color:var(--color-rose);}
  .bottom-tabbar .tab-badge{
    position:absolute;top:2px;right:26%;background:var(--color-rose);color:#fff;font-size:.58rem;
    min-width:14px;height:14px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  }

  /* Off-canvas mobile menu */
  .mobile-menu-overlay{
    display:block;position:fixed;inset:0;background:rgba(15,10,10,.4);z-index:90;
    opacity:0;pointer-events:none;transition:opacity var(--transition);
  }
  .mobile-menu-overlay.open{opacity:1;pointer-events:auto;}
  .mobile-menu{
    position:fixed;top:0;left:0;height:100%;width:82%;max-width:340px;background:#fff;z-index:95;
    transform:translateX(-100%);transition:transform .3s ease;overflow-y:auto;
  }
  .mobile-menu-overlay.open .mobile-menu{transform:translateX(0);}
  .mobile-menu__head{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--color-border);}
  .mobile-menu__close{background:none;border:0;}
  .mobile-menu__close svg{width:22px;height:22px;stroke:var(--color-ink);fill:none;stroke-width:1.7;}
  .mobile-menu nav ul li a{display:block;padding:16px 20px;border-bottom:1px solid var(--color-border);font-weight:600;}
  .mobile-menu nav ul li a.sale-link{color:var(--color-sale);}
  .mobile-menu__foot{padding:20px;display:flex;flex-direction:column;gap:14px;}
  .mobile-menu__foot a{font-size:.85rem;color:var(--color-grey);}
}

/* Large phone: 480–767 */
@media (max-width:767px){
  .container{padding:0 18px;}
  .site-header .container{height:64px;}
  .logo{font-size:1.5rem;}
  .hero__title{font-size:1.6rem;}
  .hero__eyebrow{font-size:.7rem;margin-bottom:8px;}
  .hero__subtitle{font-size:.88rem;margin-bottom:18px;}
  .hero__slide{aspect-ratio:3/4;}
  .hero__arrow{display:none;}
  .btn{padding:13px 22px;font-size:.78rem;}

  .promo-card{min-height:220px;}
  .products{padding:36px 0;}
  .product-grid{grid-template-columns:repeat(2,1fr);gap:12px;}
  .product-carousel{grid-auto-columns:62%;gap:14px;}
  .carousel-nav{display:none;}

  .topbar .container{height:34px;font-size:.7rem;}
  .topbar__left span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .topbar__right{gap:12px;}
  .topbar__right a{display:none;}
}

/* Small phone: <480 */
@media (max-width:420px){
  .hero__title{font-size:1.35rem;}
  .product-grid{grid-template-columns:1fr 1fr;gap:10px;}
}

/* Print / very large desktop niceties */
@media (min-width:1600px){
  .container{max-width:1440px;}
}

/* ==========================================================================
   BREADCRUMB / PAGE HEAD (catalog, product, cart, checkout)
   ========================================================================== */
.breadcrumb{display:flex;align-items:center;gap:8px;padding:20px 0;font-size:.82rem;color:var(--color-grey);flex-wrap:wrap;}
.breadcrumb a{color:var(--color-grey);}
.breadcrumb a:hover{color:var(--color-rose);}
.breadcrumb span:last-child{color:var(--color-ink);font-weight:600;}
.page-head{padding:4px 0 28px;}
.page-head h1{font-family:var(--font-serif);font-size:2.1rem;margin:0;}

/* ==========================================================================
   CATALOG
   ========================================================================== */
.catalog-layout{display:flex;align-items:flex-start;gap:36px;padding-bottom:70px;}
.catalog-filters{width:272px;flex:0 0 272px;background:#fff;}
.catalog-filters__head{display:none;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--color-border);}
.catalog-filters__head h3{font-family:var(--font-serif);font-size:1.2rem;margin:0;}
.catalog-filters__close{background:none;border:0;}
.catalog-filters__close svg{width:22px;height:22px;stroke:var(--color-ink);fill:none;stroke-width:1.7;}
.filter-block{padding:20px 0;border-bottom:1px solid var(--color-border);}
.catalog-filters__head + .filter-block{padding-top:20px;}
.filter-block:first-child{padding-top:0;}
.filter-block h4{font-size:.86rem;text-transform:uppercase;letter-spacing:.04em;margin:0 0 14px;font-weight:700;}
.filter-list{display:flex;flex-direction:column;gap:11px;}
.filter-list label{display:flex;align-items:center;gap:9px;font-size:.88rem;cursor:pointer;color:var(--color-ink-soft);}
.filter-list input[type="checkbox"]{width:16px;height:16px;accent-color:var(--color-rose);}
.filter-list .count{margin-left:auto;color:var(--color-grey);font-size:.78rem;}
.price-range{display:flex;align-items:center;gap:10px;}
.price-range input{width:100%;min-width:0;padding:10px 12px;border:1px solid var(--color-grey-light);border-radius:2px;font-size:.85rem;}
.price-range span{color:var(--color-grey);flex-shrink:0;}
.color-filter{display:flex;flex-wrap:wrap;gap:9px;}
.swatch-filter{width:26px;height:26px;border-radius:50%;border:2px solid transparent;padding:0;box-shadow:0 0 0 1px rgba(0,0,0,.12) inset;position:relative;}
.swatch-filter.active{border-color:var(--color-rose);}
.size-filter{display:flex;flex-wrap:wrap;gap:8px;}
.size-chip{min-width:42px;height:36px;padding:0 10px;border:1px solid var(--color-grey-light);border-radius:2px;background:#fff;font-size:.8rem;font-weight:600;color:var(--color-ink-soft);}
.size-chip.active{background:var(--color-ink);color:#fff;border-color:var(--color-ink);}
.filter-block--checks{display:flex;flex-direction:column;gap:12px;}
.filter-block--checks label{display:flex;align-items:center;gap:9px;font-size:.88rem;cursor:pointer;}
.filter-block--checks input{width:16px;height:16px;accent-color:var(--color-rose);}
.catalog-filters__actions{display:none;padding:16px 20px;gap:10px;flex-direction:column;position:sticky;bottom:0;background:#fff;border-top:1px solid var(--color-border);}

.catalog-main{flex:1;min-width:0;}
.catalog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap;}
.catalog-results-count{font-size:.86rem;color:var(--color-grey);}
.filters-btn-mobile{display:none;align-items:center;gap:8px;background:none;border:1px solid var(--color-ink);border-radius:2px;padding:10px 16px;font-size:.82rem;font-weight:600;}
.filters-btn-mobile svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;}
.catalog-sort select{
  padding:11px 34px 11px 14px;border:1px solid var(--color-grey-light);border-radius:2px;font-size:.84rem;
  background:#fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6 9l6 6 6-6" stroke="%231a1a1a" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg>') no-repeat right 10px center/12px;
  appearance:none;-webkit-appearance:none;color:var(--color-ink);cursor:pointer;
}
.catalog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.catalog-empty{text-align:center;padding:70px 20px;color:var(--color-grey);font-size:.95rem;}
.catalog-loadmore-wrap{display:flex;justify-content:center;margin-top:38px;}

/* ==========================================================================
   PRODUCT DETAIL
   ========================================================================== */
.product-detail{display:grid;grid-template-columns:minmax(0,56%) 1fr;gap:52px;padding-bottom:70px;align-items:flex-start;}
.product-gallery__main{position:relative;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:7/9;background:var(--color-rose-pale);}
.product-gallery__main img{width:100%;height:100%;object-fit:cover;}
.product-gallery__badges{position:absolute;top:16px;left:16px;display:flex;flex-direction:column;gap:6px;z-index:2;}
.product-gallery__thumbs{display:flex;gap:12px;margin-top:14px;}
.product-gallery__thumbs button{
  width:84px;height:104px;border-radius:var(--radius-sm);overflow:hidden;border:2px solid transparent;padding:0;flex-shrink:0;background:var(--color-rose-pale);
}
.product-gallery__thumbs button.active{border-color:var(--color-ink);}
.product-gallery__thumbs img{width:100%;height:100%;object-fit:cover;}

.product-info__brand{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--color-grey);margin-bottom:8px;}
.product-info__title{font-family:var(--font-serif);font-size:2rem;margin:0 0 14px;line-height:1.15;}
.product-info__price{font-size:1.4rem;font-weight:700;margin-bottom:20px;}
.product-info__price .old{color:var(--color-grey);text-decoration:line-through;font-weight:500;margin-right:10px;font-size:1.05rem;}
.option-block{margin-bottom:24px;}
.option-block__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.option-block__head h4{font-size:.86rem;text-transform:uppercase;letter-spacing:.04em;margin:0;font-weight:700;}
.option-block__head .selected-value{font-size:.84rem;color:var(--color-grey);font-weight:500;text-transform:none;letter-spacing:0;}
.option-block__head a{font-size:.78rem;color:var(--color-grey);text-decoration:underline;text-underline-offset:3px;}
.color-options{display:flex;gap:10px;}
.color-option{width:36px;height:36px;border-radius:50%;border:2px solid transparent;padding:0;box-shadow:0 0 0 1px rgba(0,0,0,.12) inset;}
.color-option.active{border-color:var(--color-rose);}
.size-options{display:flex;flex-wrap:wrap;gap:9px;}
.size-option{min-width:48px;height:44px;padding:0 12px;border:1px solid var(--color-grey-light);border-radius:2px;background:#fff;font-size:.85rem;font-weight:600;}
.size-option.active{background:var(--color-ink);color:#fff;border-color:var(--color-ink);}
.qty-stepper{display:inline-flex;align-items:center;border:1px solid var(--color-grey-light);border-radius:2px;}
.qty-stepper button{width:40px;height:44px;background:none;border:0;font-size:1.1rem;color:var(--color-ink);}
.qty-stepper input{width:44px;height:44px;border:0;border-left:1px solid var(--color-grey-light);border-right:1px solid var(--color-grey-light);text-align:center;font-size:.92rem;-moz-appearance:textfield;}
.qty-stepper input::-webkit-outer-spin-button,.qty-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.product-actions{display:flex;align-items:center;gap:14px;margin:26px 0 8px;}
.product-actions .btn{flex:1;}
.product-actions .wishlist-toggle{position:static;width:52px;height:52px;flex:0 0 52px;background:var(--color-rose-pale);}
.product-actions .wishlist-toggle svg{width:20px;height:20px;}
.form-msg--product{font-size:.82rem;color:var(--color-success);min-height:1.2em;margin-bottom:6px;}
.product-meta-list{font-size:.84rem;color:var(--color-grey);display:flex;flex-direction:column;gap:6px;margin:18px 0;}
.product-meta-list b{color:var(--color-ink-soft);font-weight:600;}

.product-tabs{margin-top:30px;border-top:1px solid var(--color-border);}
.tab-nav{display:flex;gap:30px;border-bottom:1px solid var(--color-border);}
.tab-nav button{background:none;border:0;padding:16px 0;font-size:.88rem;font-weight:700;color:var(--color-grey);position:relative;}
.tab-nav button.active{color:var(--color-ink);}
.tab-nav button.active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--color-ink);}
.tab-panel{display:none;padding:22px 0;font-size:.92rem;line-height:1.7;color:var(--color-ink-soft);max-width:640px;}
.tab-panel.active{display:block;}

/* ==========================================================================
   CART
   ========================================================================== */
.cart-layout{display:grid;grid-template-columns:1fr 380px;gap:44px;align-items:flex-start;padding-bottom:70px;}
.cart-table__head{display:grid;grid-template-columns:2.4fr 1fr 1fr 1fr auto;gap:14px;padding:0 0 14px;border-bottom:1px solid var(--color-border);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-grey);font-weight:700;}
.cart-item{display:grid;grid-template-columns:2.4fr 1fr 1fr 1fr auto;gap:14px;align-items:center;padding:22px 0;border-bottom:1px solid var(--color-border);}
.cart-item__product{display:flex;gap:16px;align-items:center;}
.cart-item__media{width:88px;height:110px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;background:var(--color-rose-pale);}
.cart-item__media img{width:100%;height:100%;object-fit:cover;}
.cart-item__name{font-size:.92rem;font-weight:600;margin-bottom:6px;}
.cart-item__opts{font-size:.8rem;color:var(--color-grey);display:flex;align-items:center;gap:8px;}
.cart-item__opts .swatch{width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.15);display:inline-block;}
.cart-item__price{font-size:.9rem;font-weight:600;}
.cart-item__total{font-size:.95rem;font-weight:700;}
.cart-item__remove{background:none;border:0;color:var(--color-grey);width:32px;height:32px;display:flex;align-items:center;justify-content:center;}
.cart-item__remove svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7;}
.cart-item__remove:hover{color:var(--color-sale);}
.cart-actions-row{display:flex;justify-content:space-between;align-items:center;padding-top:22px;flex-wrap:wrap;gap:14px;}

.cart-summary{background:var(--color-rose-pale);border-radius:var(--radius-md);padding:28px;position:sticky;top:112px;}
.cart-summary h3{font-family:var(--font-serif);font-size:1.25rem;margin:0 0 20px;}
.summary-row{display:flex;justify-content:space-between;font-size:.9rem;margin-bottom:12px;color:var(--color-ink-soft);}
.summary-row.total{font-size:1.05rem;font-weight:700;color:var(--color-ink);border-top:1px solid rgba(26,26,26,.12);padding-top:14px;margin-top:6px;}
.summary-row .value--success{color:var(--color-success);font-weight:600;}
.free-shipping-hint{font-size:.78rem;color:var(--color-grey);margin:-4px 0 14px;line-height:1.5;}
.free-shipping-hint.reached{color:var(--color-success);font-weight:600;}
.promo-row{display:flex;gap:8px;margin:18px 0;}
.promo-row input{flex:1;min-width:0;padding:12px 14px;border:1px solid var(--color-grey-light);border-radius:2px;background:#fff;}
.promo-msg{font-size:.78rem;min-height:1.2em;margin:-10px 0 10px;}
.promo-msg.success{color:var(--color-success);}
.promo-msg.error{color:var(--color-sale);}

.cart-empty{text-align:center;padding:90px 20px;}
.cart-empty svg{width:64px;height:64px;stroke:var(--color-grey);fill:none;stroke-width:1.3;margin-bottom:20px;}
.cart-empty h2{font-family:var(--font-serif);font-size:1.5rem;margin:0 0 10px;}
.cart-empty p{color:var(--color-grey);margin:0 0 24px;}

/* ==========================================================================
   CHECKOUT
   ========================================================================== */
.checkout-layout{display:grid;grid-template-columns:1fr 380px;gap:44px;align-items:flex-start;padding-bottom:70px;}
.checkout-section{margin-bottom:32px;}
.checkout-section h3{font-family:var(--font-serif);font-size:1.15rem;margin:0 0 18px;display:flex;align-items:center;gap:10px;}
.checkout-section h3 .step-num{width:26px;height:26px;border-radius:50%;background:var(--color-ink);color:#fff;font-size:.78rem;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-sans);font-weight:700;}
.form-group{margin-bottom:16px;}
.form-group label{display:block;font-size:.82rem;font-weight:600;margin-bottom:7px;color:var(--color-ink-soft);}
.form-group input,.form-group textarea,.form-group select{
  width:100%;padding:13px 15px;border:1px solid var(--color-grey-light);border-radius:2px;font-size:.9rem;font-family:inherit;background:#fff;
}
.form-group select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b6b6b' stroke-width='2'><path d='m6 9 6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:38px;}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:2px solid var(--color-rose);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-row--3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;}
.radio-card-group{display:flex;flex-direction:column;gap:10px;}
.radio-card{border:1px solid var(--color-grey-light);border-radius:var(--radius-sm);padding:16px;cursor:pointer;}
.radio-card.active{border-color:var(--color-ink);background:var(--color-rose-pale);}
.radio-card__row{display:flex;align-items:center;gap:12px;cursor:pointer;}
.radio-card__row input{width:17px;height:17px;accent-color:var(--color-rose);flex-shrink:0;}
.radio-card__label{font-size:.9rem;font-weight:600;}
.radio-card__sub{font-size:.78rem;color:var(--color-grey);margin-top:2px;}
.radio-card__extra{margin-top:14px;display:none;grid-template-columns:1fr 1fr;gap:12px;}
.radio-card.active .radio-card__extra{display:grid;}
.radio-card__extra--single{grid-template-columns:1fr;}

.checkout-summary{background:var(--color-rose-pale);border-radius:var(--radius-md);padding:28px;position:sticky;top:112px;}
.checkout-summary h3{font-family:var(--font-serif);font-size:1.2rem;margin:0 0 18px;}
.checkout-summary__items{display:flex;flex-direction:column;gap:14px;margin-bottom:18px;max-height:280px;overflow-y:auto;}
.checkout-summary__item{display:flex;gap:12px;align-items:center;}
.checkout-summary__item img{width:52px;height:64px;object-fit:cover;border-radius:4px;flex-shrink:0;background:#fff;}
.checkout-summary__item .name{font-size:.84rem;font-weight:600;}
.checkout-summary__item .opts{font-size:.74rem;color:var(--color-grey);}
.checkout-summary__item .qty{font-size:.74rem;color:var(--color-grey);}
.checkout-summary__item .price{margin-left:auto;font-size:.86rem;font-weight:700;white-space:nowrap;}

.checkout-success{text-align:center;padding:90px 20px;max-width:480px;margin:0 auto;}
.checkout-success .success-icon{
  width:76px;height:76px;border-radius:50%;background:var(--color-success);color:#fff;display:flex;align-items:center;
  justify-content:center;margin:0 auto 24px;
}
.checkout-success .success-icon svg{width:34px;height:34px;stroke:currentColor;fill:none;stroke-width:2.2;}
.checkout-success h2{font-family:var(--font-serif);font-size:1.7rem;margin:0 0 12px;}
.checkout-success p{color:var(--color-grey);margin:0 0 8px;line-height:1.6;}
.checkout-success .order-number{font-weight:700;color:var(--color-ink);}

/* ==========================================================================
   RESPONSIVE — catalog / product / cart / checkout
   ========================================================================== */
@media (max-width:1199px){
  .catalog-grid{grid-template-columns:repeat(2,1fr);}
  .product-detail{grid-template-columns:1fr;gap:32px;}
  .cart-layout{grid-template-columns:1fr;}
  .cart-summary{position:static;}
  .checkout-layout{grid-template-columns:1fr;}
  .checkout-summary{position:static;order:-1;}
}
@media (max-width:991px){
  .catalog-layout{gap:0;}
  .filters-btn-mobile{display:inline-flex;}
  .catalog-filters__head{display:flex;}
  .catalog-filters__actions{display:flex;}
  .filters-overlay{
    position:fixed;inset:0;background:rgba(15,10,10,.4);z-index:90;opacity:0;pointer-events:none;transition:opacity var(--transition);
  }
  .filters-overlay.open{opacity:1;pointer-events:auto;}
  .catalog-filters{
    position:fixed;top:0;left:0;height:100%;width:86%;max-width:340px;z-index:95;
    transform:translateX(-100%);transition:transform .3s ease;overflow-y:auto;display:flex;flex-direction:column;
  }
  .filters-overlay.open .catalog-filters{transform:translateX(0);}
  .filter-block{padding:18px 20px;}
  .catalog-filters__actions{margin-top:auto;}

  .cart-table__head{display:none;}
  .cart-item{grid-template-columns:1fr auto;grid-template-areas:"product remove" "opts opts" "qty total";row-gap:10px;}
  .cart-item__product{grid-area:product;}
  .cart-item__remove{grid-area:remove;}
  .cart-item__price{display:none;}
  .cart-item__qty{grid-area:qty;}
  .cart-item__total{grid-area:total;text-align:right;}

  .form-row,.form-row--3{grid-template-columns:1fr;}
  .radio-card__extra{grid-template-columns:1fr;}
}
@media (max-width:767px){
  .catalog-grid{grid-template-columns:repeat(2,1fr);gap:12px;}
  .page-head h1{font-size:1.6rem;}
  .product-info__title{font-size:1.5rem;}
  .product-actions{flex-wrap:wrap;}
  .product-actions .btn{flex:1 1 100%;order:1;}
  .product-actions .wishlist-toggle{order:2;}
  .checkout-summary__items{max-height:none;}
}

/* ==========================================================================
   AUTH (login / register)
   ========================================================================== */
.auth-page{display:flex;justify-content:center;padding:56px 20px 100px;}
.auth-card{width:100%;max-width:440px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:40px;}
.auth-card h1{font-family:var(--font-serif);font-size:1.9rem;margin:0 0 6px;text-align:center;}
.auth-card__subtitle{color:var(--color-grey);font-size:.9rem;text-align:center;margin:0 0 24px;}
.auth-demo-notice{background:var(--color-rose-pale);border-radius:var(--radius-sm);padding:14px 16px;font-size:.8rem;color:var(--color-ink-soft);margin-bottom:24px;line-height:1.5;}
.auth-footer{text-align:center;margin-top:22px;font-size:.88rem;color:var(--color-grey);}
.auth-row-between{display:flex;justify-content:space-between;align-items:center;margin:-6px 0 16px;font-size:.82rem;}
.auth-row-between a{color:var(--color-rose-dark);font-weight:600;}
.checkbox-row{display:flex;gap:10px;align-items:flex-start;font-size:.82rem;color:var(--color-ink-soft);margin-bottom:20px;line-height:1.5;}
.checkbox-row input{width:17px;height:17px;flex-shrink:0;margin-top:2px;accent-color:var(--color-rose);}
.form-error{color:var(--color-sale);font-size:.82rem;margin:-8px 0 14px;min-height:1em;}

/* ==========================================================================
   ACCOUNT SHELL — sidebar + main content grid
   ========================================================================== */
.account-layout{display:grid;grid-template-columns:280px 1fr;gap:32px;padding-bottom:80px;align-items:flex-start;}
.account-sidebar{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;position:sticky;top:112px;}
.account-sidebar__customer{padding:22px;display:flex;gap:14px;align-items:center;border-bottom:1px solid var(--color-border);}
.account-avatar{width:52px;height:52px;border-radius:50%;background:var(--color-rose);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-weight:700;font-size:1.05rem;flex-shrink:0;}
.account-sidebar__customer .name{font-weight:700;font-size:.92rem;}
.account-sidebar__customer .meta{font-size:.76rem;color:var(--color-grey);margin-top:2px;word-break:break-word;}
.account-nav{padding:8px 0;}
.account-nav a{display:flex;align-items:center;gap:12px;padding:12px 22px;font-size:.86rem;font-weight:600;color:var(--color-ink-soft);border-left:3px solid transparent;position:relative;}
.account-nav a svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.6;flex-shrink:0;}
.account-nav a:hover{background:var(--color-rose-pale);}
.account-nav a.active{color:var(--color-ink);background:var(--color-rose-pale);border-left-color:var(--color-rose);}
.account-nav a .nav-badge{margin-left:auto;background:var(--color-rose);color:#fff;font-size:.66rem;font-weight:700;min-width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0 4px;}
.account-nav a.logout{color:var(--color-sale);border-top:1px solid var(--color-border);margin-top:6px;padding-top:16px;}
.account-help-card{margin:14px;padding:18px;background:var(--color-rose-pale);border-radius:var(--radius-sm);text-align:center;}
.account-help-card p{font-size:.8rem;color:var(--color-ink-soft);margin:0 0 12px;font-weight:600;}

.account-main{min-width:0;}
.account-greeting h1{font-family:var(--font-serif);font-size:1.8rem;margin:0 0 4px;}
.account-greeting p{color:var(--color-grey);margin:0 0 28px;font-size:.92rem;}
.account-page-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:24px;gap:14px;flex-wrap:wrap;}
.account-page-head h1{font-family:var(--font-serif);font-size:1.6rem;margin:0;}

/* ---- Stat cards ---- */
.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px;}
.stat-card{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:20px;}
.stat-card__icon{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.stat-card__icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;}
.stat-card--orders .stat-card__icon{background:#e8eef5;color:#2f5c8a;}
.stat-card--processing .stat-card__icon{background:#fbefd1;color:#9c6b12;}
.stat-card--bonus .stat-card__icon{background:#dceedb;color:#2e7d46;}
.stat-card--discount .stat-card__icon{background:var(--color-rose-pale);color:var(--color-rose-dark);}
.stat-card__value{font-size:1.4rem;font-weight:700;font-family:var(--font-serif);line-height:1;}
.stat-card__label{font-size:.78rem;color:var(--color-grey);margin:6px 0 10px;}
.stat-card__link{font-size:.76rem;font-weight:700;}
.stat-card__link:hover{color:var(--color-rose);}

/* ---- two-column dashboard blocks ---- */
.account-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:22px;margin-bottom:32px;align-items:start;}
.account-panel{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:22px 24px;}
.account-panel__head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px;}
.account-panel__head h2{font-family:var(--font-serif);font-size:1.1rem;margin:0;}
.account-panel__head a{font-size:.78rem;font-weight:700;}
.account-panel__head a:hover{color:var(--color-rose);}

/* ---- order row (dashboard + full list) ---- */
.order-row{display:flex;gap:14px;align-items:center;padding:15px 0;border-bottom:1px solid var(--color-border);}
.order-row:last-child{border-bottom:0;}
.order-row__media{width:52px;height:66px;border-radius:6px;overflow:hidden;flex-shrink:0;background:var(--color-rose-pale);position:relative;}
.order-row__media img{width:100%;height:100%;object-fit:cover;}
.order-row__media .more{position:absolute;inset:0;background:rgba(26,26,26,.55);color:#fff;font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center;}
.order-row__info{flex:1;min-width:0;}
.order-row__number{font-weight:700;font-size:.88rem;}
.order-row__meta{font-size:.76rem;color:var(--color-grey);margin-top:3px;}
.order-row__right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;}
.order-row__amount{font-size:.88rem;font-weight:700;white-space:nowrap;}
.order-row__link{font-size:.76rem;font-weight:700;color:var(--color-grey);}
.order-row__link:hover{color:var(--color-ink);}

.order-status{display:inline-flex;align-items:center;padding:4px 11px;border-radius:20px;font-size:.7rem;font-weight:700;white-space:nowrap;}
.order-status--new{background:#e8eef5;color:#2f5c8a;}
.order-status--processing{background:#fbefd1;color:#9c6b12;}
.order-status--shipped{background:#e0e7f7;color:#3949ab;}
.order-status--delivered{background:#dceedb;color:#2e7d46;}
.order-status--cancelled{background:#f5e0e0;color:#a13a3a;}
.order-status--returned{background:#ececec;color:#6b6b6b;}

/* ---- wishlist mini tiles (dashboard) ---- */
.wishlist-mini-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:18px;}
.wishlist-mini img{width:100%;aspect-ratio:7/9;object-fit:cover;border-radius:6px;background:var(--color-rose-pale);display:block;}
.wishlist-mini .name{font-size:.76rem;font-weight:600;margin-top:6px;}
.wishlist-mini .price{font-size:.76rem;font-weight:700;}

/* ---- promo block ---- */
.account-promo{background:linear-gradient(135deg,var(--color-rose-pale),#fff);border-radius:var(--radius-sm);padding:20px;text-align:center;}
.account-promo h4{font-family:var(--font-serif);font-size:1rem;margin:0 0 8px;}
.account-promo p{font-size:.78rem;color:var(--color-ink-soft);margin:0 0 14px;}
.promo-code-box{display:flex;align-items:center;justify-content:center;gap:10px;background:#fff;border:1px dashed var(--color-rose);border-radius:4px;padding:10px 14px;font-weight:700;letter-spacing:.05em;margin-bottom:12px;}
.promo-code-box button{background:none;border:0;color:var(--color-rose-dark);font-size:.76rem;font-weight:700;}
.account-promo__link{font-size:.78rem;font-weight:700;}
.account-promo--referral{margin-top:16px;background:linear-gradient(135deg,#f4ecd8,#fff);}
.account-promo--referral .promo-code-box{font-size:.8rem;letter-spacing:0;word-break:break-all;border-color:#c9a75c;}
.account-promo__hint{font-size:.74rem;color:var(--color-grey);margin:0;}

/* Багаторівнева програма лояльності (розділ 18.2 ТЗ) */
.loyalty-badge{display:inline-block;font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 10px;border-radius:20px;vertical-align:middle;}
.loyalty-badge--silver{background:#e9e9ec;color:#5a5a63;}
.loyalty-badge--gold{background:#f4e3b0;color:#8a6a15;}
.loyalty-badge--club{background:#1a1a1a;color:#f4e3b0;}
.account-promo--loyalty{margin-top:16px;background:linear-gradient(135deg,#efe6f2,#fff);}
.account-promo--loyalty h4{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;}
.loyalty-priority-support{margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border);font-size:.78rem;}
.loyalty-priority-support strong{display:block;margin-bottom:4px;}
.loyalty-priority-support a{font-weight:700;color:var(--color-rose-dark);}

/* ---- status filter tabs (orders list) ---- */
.status-filter-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px;}
.status-filter-tabs button{padding:9px 16px;border-radius:20px;border:1px solid var(--color-grey-light);background:#fff;font-size:.8rem;font-weight:600;color:var(--color-ink-soft);}
.status-filter-tabs button.active{background:var(--color-ink);color:#fff;border-color:var(--color-ink);}

/* ---- order timeline (order detail) ---- */
.order-timeline{display:flex;justify-content:space-between;margin:26px 0 34px;position:relative;}
.order-timeline::before{content:"";position:absolute;top:13px;left:20px;right:20px;height:2px;background:var(--color-border);}
.order-timeline__step{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:8px;flex:1;text-align:center;}
.order-timeline__dot{width:26px;height:26px;border-radius:50%;background:#fff;border:2px solid var(--color-border);display:flex;align-items:center;justify-content:center;color:var(--color-grey-light);}
.order-timeline__dot svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:3;}
.order-timeline__step.done .order-timeline__dot{background:var(--color-success);border-color:var(--color-success);color:#fff;}
.order-timeline__step.current .order-timeline__dot{border-color:var(--color-rose);background:var(--color-rose);color:#fff;}
.order-timeline__label{font-size:.7rem;color:var(--color-grey);max-width:88px;}
.order-timeline__step.done .order-timeline__label,
.order-timeline__step.current .order-timeline__label{color:var(--color-ink);font-weight:700;}
.order-timeline--cancelled .order-timeline__dot{border-color:var(--color-sale);}

.order-detail-grid{display:grid;grid-template-columns:1fr 320px;gap:28px;align-items:start;}
.order-item{display:flex;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--color-border);}
.order-item:last-child{border-bottom:0;}
.order-item__media{width:68px;height:86px;border-radius:6px;overflow:hidden;flex-shrink:0;background:var(--color-rose-pale);}
.order-item__media img{width:100%;height:100%;object-fit:cover;}
.order-item__info{flex:1;min-width:0;}
.order-item__name{font-weight:600;font-size:.9rem;}
.order-item__opts{font-size:.78rem;color:var(--color-grey);margin-top:4px;display:flex;align-items:center;gap:8px;}
.order-item__opts .swatch{width:11px;height:11px;border-radius:50%;border:1px solid rgba(0,0,0,.15);display:inline-block;}
.order-item__price{font-size:.9rem;font-weight:700;white-space:nowrap;}

.order-info-card{background:var(--color-rose-pale);border-radius:var(--radius-md);padding:22px;margin-bottom:18px;}
.order-info-card h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;color:var(--color-ink-soft);}
.order-info-card p{font-size:.86rem;margin:0 0 4px;color:var(--color-ink);line-height:1.5;}

/* ---- generic data card list (addresses / payment) ---- */
.data-card-list{display:flex;flex-direction:column;gap:14px;}
.data-card{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:20px 22px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;}
.data-card__body{flex:1;min-width:200px;display:flex;gap:14px;}
.data-card__title{font-weight:700;font-size:.92rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.data-card__badge{font-size:.66rem;font-weight:700;background:var(--color-rose-pale);color:var(--color-rose-dark);padding:3px 9px;border-radius:20px;text-transform:uppercase;letter-spacing:.02em;}
.data-card__meta{font-size:.85rem;color:var(--color-ink-soft);margin-top:6px;line-height:1.5;}
.data-card__actions{display:flex;gap:14px;flex-shrink:0;}
.data-card__actions button{background:none;border:0;font-size:.8rem;font-weight:700;color:var(--color-grey);padding:0;}
.data-card__actions button:hover{color:var(--color-ink);}
.data-card__actions button.danger:hover{color:var(--color-sale);}
.card-brand-icon{width:40px;height:27px;border-radius:4px;background:var(--color-ink);color:#fff;font-size:.58rem;font-weight:800;display:flex;align-items:center;justify-content:center;letter-spacing:.02em;flex-shrink:0;}

.empty-state{text-align:center;padding:64px 20px;color:var(--color-grey);}
.empty-state svg{width:48px;height:48px;stroke:var(--color-grey);fill:none;stroke-width:1.3;margin-bottom:18px;}
.empty-state p{margin:0 0 20px;font-size:.92rem;}

/* ---- bonuses page ---- */
.bonus-hero{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:28px;}
.bonus-hero-card{background:var(--color-rose-pale);border-radius:var(--radius-md);padding:26px;text-align:center;}
.bonus-hero-card .value{font-family:var(--font-serif);font-size:1.9rem;font-weight:700;}
.bonus-hero-card .label{font-size:.84rem;color:var(--color-ink-soft);margin-top:6px;}
.bonus-explainer{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:20px 22px;font-size:.88rem;color:var(--color-ink-soft);line-height:1.6;margin-bottom:28px;}
.bonus-tx-list{display:flex;flex-direction:column;}
.bonus-tx{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--color-border);gap:14px;}
.bonus-tx:last-child{border-bottom:0;}
.bonus-tx__desc{font-size:.87rem;}
.bonus-tx__date{font-size:.76rem;color:var(--color-grey);margin-top:3px;}
.bonus-tx__amount{font-weight:700;font-size:.92rem;white-space:nowrap;}
.bonus-tx__amount.positive{color:var(--color-success);}
.bonus-tx__amount.negative{color:var(--color-sale);}

/* ---- notifications toggles ---- */
.toggle-row{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--color-border);gap:16px;}
.toggle-row:last-child{border-bottom:0;}
.toggle-row__label{font-size:.9rem;font-weight:600;}
.toggle-row__sub{font-size:.78rem;color:var(--color-grey);margin-top:2px;}
.toggle-switch{position:relative;width:44px;height:24px;flex-shrink:0;display:inline-block;}
.toggle-switch input{opacity:0;width:100%;height:100%;margin:0;position:absolute;cursor:pointer;z-index:1;}
.toggle-switch .track{position:absolute;inset:0;background:var(--color-grey-light);border-radius:20px;transition:var(--transition);pointer-events:none;}
.toggle-switch .thumb{position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;transition:var(--transition);box-shadow:0 1px 3px rgba(0,0,0,.2);pointer-events:none;}
.toggle-switch input:checked ~ .track{background:var(--color-rose);}
.toggle-switch input:checked ~ .thumb{transform:translateX(20px);}

/* ==========================================================================
   RESPONSIVE — account section
   ========================================================================== */
@media (max-width:1199px){
  .account-grid{grid-template-columns:1fr;}
  .order-detail-grid{grid-template-columns:1fr;}
  .order-detail-grid .order-info-card{margin-bottom:0;}
}
@media (max-width:991px){
  .account-layout{grid-template-columns:1fr;gap:20px;}
  .account-sidebar{position:static;}
  .stat-cards{grid-template-columns:repeat(2,1fr);}
  .bonus-hero{grid-template-columns:1fr 1fr;}
}
@media (max-width:767px){
  .auth-card{padding:28px 22px;}
  .stat-cards{gap:8px;grid-template-columns:repeat(4,1fr);}
  .stat-card{padding:10px 6px;text-align:center;}
  .stat-card__icon{width:28px;height:28px;margin:0 auto 8px;}
  .stat-card__value{font-size:.98rem;}
  .stat-card__label{font-size:.62rem;margin:3px 0 0;line-height:1.25;}
  .stat-card__link{display:none;}
  .account-greeting h1{font-size:1.4rem;}
  .account-sidebar__customer{position:relative;}
  .account-sidebar__customer::after{content:"";position:absolute;right:20px;top:50%;width:9px;height:9px;border-right:2px solid var(--color-grey);border-bottom:2px solid var(--color-grey);transform:translateY(-50%) rotate(-45deg);}
  .wishlist-mini-grid{grid-template-columns:repeat(2,1fr);}
  .data-card{flex-direction:column;}
  .data-card__actions{width:100%;justify-content:flex-start;}
  .order-row{flex-wrap:wrap;}
  .order-row__right{width:100%;flex-direction:row;justify-content:space-between;align-items:center;}
  .bonus-hero{grid-template-columns:1fr;}
}

/* ==========================================================================
   ЭТАП 3 — АДМІН-ПАНЕЛЬ (розділ 15 ТЗ)
   Окрема "оболонка" (сайдбар + топбар), що не використовує шапку/футер
   вітрини — адмінка є самостійним застосунком в тій же кольоровій гамі.
   ========================================================================== */
.admin-body{background:#f6f4f3;}

.admin-shell{display:flex;min-height:100vh;}

/* ---- sidebar (тёмна — «один в один» за референс-скріншотом розділу 15.1) ---- */
.admin-sidebar{
  width:264px;flex-shrink:0;background:var(--color-ink);color:#e8e6e4;
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;transition:var(--transition);
}
.admin-shell.collapsed .admin-sidebar{width:76px;}
.admin-shell.collapsed .admin-sidebar__logo small,
.admin-shell.collapsed .admin-nav a span,
.admin-shell.collapsed .admin-nav__submenu,
.admin-shell.collapsed .admin-sidebar__profile .who,
.admin-shell.collapsed .admin-sidebar__profile__kebab{display:none;}
.admin-shell.collapsed .admin-nav a{justify-content:center;}
.admin-sidebar__logo{padding:26px 22px 18px;border-bottom:1px solid rgba(255,255,255,.08);}
.admin-sidebar__logo .logo{font-family:var(--font-serif);font-size:1.3rem;font-weight:600;color:#fff;display:flex;flex-direction:column;line-height:1.1;}
.admin-sidebar__logo .logo small{font-family:var(--font-sans);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:#8d8b89;font-weight:600;margin-top:3px;}

.admin-nav{flex:1;overflow-y:auto;padding:14px 0;}
.admin-nav a,.admin-nav button.admin-nav__toggle{
  display:flex;align-items:center;gap:13px;width:100%;padding:12px 22px;
  font-size:.86rem;font-weight:600;color:#d8d6d4;border-left:3px solid transparent;
  background:none;border-top:0;border-bottom:0;border-right:0;text-align:left;position:relative;
}
.admin-nav a svg,.admin-nav button.admin-nav__toggle svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.6;flex-shrink:0;}
.admin-nav a:hover,.admin-nav button.admin-nav__toggle:hover{background:rgba(255,255,255,.06);color:#fff;}
.admin-nav a.active,.admin-nav__toggle.active{color:#fff;border-left-color:var(--color-rose);}
.admin-nav .nav-chev{margin-left:auto;width:14px;height:14px;stroke:#77746f;flex-shrink:0;}
.admin-nav .nav-badge{margin-left:auto;background:var(--color-rose);color:#fff;font-size:.66rem;font-weight:700;min-width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0 4px;}
.admin-nav__toggle .chev{margin-left:auto;width:14px;height:14px;stroke:#9c9a97;transition:var(--transition);}
.admin-nav__group.open .admin-nav__toggle .chev{transform:rotate(180deg);}
.admin-nav__submenu{display:none;padding:2px 0 6px;}
.admin-nav__group.open .admin-nav__submenu{display:block;}
.admin-nav__submenu a{padding:9px 22px 9px 53px;font-size:.82rem;font-weight:600;color:#b3b1ae;}
.admin-nav__submenu a::before{content:"";width:5px;height:5px;border-radius:50%;background:#5c5a58;position:absolute;left:38px;top:50%;transform:translateY(-50%);}
.admin-nav__submenu a.active,.admin-nav__submenu a:hover{color:var(--color-rose);}
.admin-nav__submenu a.active::before{background:var(--color-rose);}

.admin-sidebar__profile{border-top:1px solid rgba(255,255,255,.08);padding:16px 20px;position:relative;}
.admin-sidebar__profile__row{display:flex;align-items:center;gap:12px;cursor:pointer;}
.admin-avatar{width:38px;height:38px;border-radius:50%;background:var(--color-rose);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-weight:700;font-size:.9rem;flex-shrink:0;overflow:hidden;}
.admin-sidebar__profile .who{flex:1;min-width:0;}
.admin-sidebar__profile .who .name{font-size:.84rem;font-weight:700;color:#fff;}
.admin-sidebar__profile .who .email{font-size:.72rem;color:#8d8b89;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.admin-sidebar__profile__kebab{flex-shrink:0;color:#8d8b89;width:16px;height:16px;}
.admin-profile-menu{position:absolute;bottom:calc(100% + 6px);left:16px;right:16px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);padding:6px;display:none;z-index:20;}
.admin-profile-menu.open{display:block;}
.admin-profile-menu a,.admin-profile-menu button{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;font-size:.82rem;font-weight:600;color:var(--color-ink-soft);background:none;border:0;text-align:left;border-radius:4px;}
.admin-profile-menu a:hover,.admin-profile-menu button:hover{background:var(--color-rose-pale);}

/* ---- content-area footer (© + версія — під контентом, не в сайдбарі) ---- */
.admin-content-footer{display:flex;justify-content:space-between;gap:16px;font-size:.72rem;color:var(--color-grey);padding:18px 2px 4px;flex-wrap:wrap;}

/* ---- topbar ---- */
.admin-main{flex:1;min-width:0;display:flex;flex-direction:column;}
.admin-topbar{
  display:flex;align-items:center;gap:18px;background:#fff;border-bottom:1px solid var(--color-border);
  padding:14px 28px;position:sticky;top:0;z-index:15;
}
.admin-topbar__collapse{background:none;border:0;width:34px;height:34px;display:flex;align-items:center;justify-content:center;color:var(--color-ink);flex-shrink:0;border-radius:6px;}
.admin-topbar__collapse:hover{background:var(--color-rose-pale);}
.admin-topbar__collapse svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;}
.admin-topbar__title{font-family:var(--font-sans);font-weight:800;font-size:1.15rem;margin:0;white-space:nowrap;}
.admin-topbar__search{flex:1;max-width:360px;position:relative;}
.admin-topbar__search input{width:100%;height:40px;border:1px solid var(--color-border);border-radius:8px;padding:0 16px 0 38px;font-size:.84rem;background:#fff;}
.admin-topbar__search input:focus{outline:2px solid var(--color-rose);}
.admin-topbar__search svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:16px;height:16px;stroke:var(--color-grey);fill:none;stroke-width:2;}
.admin-topbar__notif{position:relative;width:34px;height:34px;flex-shrink:0;background:none;border:0;display:flex;align-items:center;justify-content:center;}
.admin-topbar__notif svg{width:20px;height:20px;stroke:var(--color-ink);fill:none;stroke-width:1.7;}
.admin-topbar__notif .nav-badge{position:absolute;top:-2px;right:-2px;background:var(--color-rose);color:#fff;font-size:.64rem;font-weight:700;min-width:17px;height:17px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.admin-topbar__gotosite{margin-left:auto;flex-shrink:0;display:flex;align-items:center;gap:7px;font-size:.84rem;font-weight:700;color:var(--color-ink);white-space:nowrap;}
.admin-topbar__gotosite svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;}
.admin-topbar__gotosite:hover{color:var(--color-rose-dark);}

/* Перемикач мови адмінки — той самий компонент .lang-switch, що й на вітрині,
   але тут оформлений як повноцінна кнопка топбара (як collapse/notif), а не
   як плоский текст: інакше на білому тлі топбара він виглядає незавершеним. */
.admin-topbar .lang-switch{flex-shrink:0;}
.admin-topbar .lang-switch__btn{
  height:34px;padding:0 10px;border:1px solid var(--color-border);border-radius:8px;
  background:#fff;color:var(--color-ink);font-weight:700;font-size:.78rem;letter-spacing:.02em;
}
.admin-topbar .lang-switch__btn svg{stroke:var(--color-grey);}
.admin-topbar .lang-switch__btn:hover{background:var(--color-rose-pale);border-color:var(--color-rose-pale);}
.admin-topbar .lang-switch__menu{top:calc(100% + 6px);min-width:88px;}

.admin-content{padding:26px 28px 60px;max-width:1400px;width:100%;}

/* ---- cards / page head ---- */
.admin-page-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap;}
.admin-page-head h1{font-family:var(--font-sans);font-weight:800;font-size:1.4rem;margin:0;}
.admin-page-head__actions{display:flex;gap:10px;flex-wrap:wrap;}
.admin-card{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:22px 24px;margin-bottom:22px;}
.admin-card__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px;flex-wrap:wrap;}
.admin-card__head h2,.admin-card__head h3{font-family:var(--font-sans);font-weight:700;font-size:1rem;margin:0;}
.admin-card__head a{font-size:.78rem;font-weight:700;}

/* ---- KPI cards (reuses .stat-cards/.stat-card pattern from account) ---- */
.admin-content .stat-cards{grid-template-columns:repeat(4,1fr);}
.admin-content .stat-cards--5{grid-template-columns:repeat(5,1fr);}
.stat-card--sales .stat-card__icon{background:#e8eef5;color:#2f5c8a;}
.stat-card--avg .stat-card__icon{background:var(--color-rose-pale);color:var(--color-rose-dark);}
.stat-card--conversion .stat-card__icon{background:#dceedb;color:#2e7d46;}
.stat-card--abandoned .stat-card__icon{background:#fbefd1;color:#9c6b12;}

/* ---- generic data table ---- */
.admin-table-wrap{overflow-x:auto;}
.admin-table{width:100%;border-collapse:collapse;font-size:.85rem;}
.admin-table th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-grey);padding:11px 14px;border-bottom:2px solid var(--color-border);white-space:nowrap;}
.admin-table td{padding:13px 14px;border-bottom:1px solid var(--color-border);vertical-align:middle;}
.admin-table tbody tr:hover{background:var(--color-rose-pale);}
.admin-table td.num,.admin-table th.num{text-align:right;}
.admin-table__subnote{font-size:.74rem;color:var(--color-grey);margin-top:3px;font-weight:400;}
.admin-table__thumb{width:44px;height:56px;border-radius:6px;overflow:hidden;background:var(--color-rose-pale);flex-shrink:0;}
.admin-table__thumb img{width:100%;height:100%;object-fit:cover;}
.admin-table__actions{display:flex;gap:12px;justify-content:flex-end;}
.admin-table__actions button,.admin-table__actions a{background:none;border:0;font-size:.78rem;font-weight:700;color:var(--color-grey);padding:0;}
.admin-table__actions button:hover,.admin-table__actions a:hover{color:var(--color-ink);}
.admin-table__actions .danger:hover{color:var(--color-sale);}
.admin-table__checkbox{width:34px;}

/* ---- status pill (generic, reused for order/product/review/promo states) ---- */
.pill{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:20px;font-size:.7rem;font-weight:700;white-space:nowrap;}
.pill--grey{background:#ececec;color:#6b6b6b;}
.pill--blue{background:#e8eef5;color:#2f5c8a;}
.pill--yellow{background:#fbefd1;color:#9c6b12;}
.pill--indigo{background:#e0e7f7;color:#3949ab;}
.pill--green{background:#dceedb;color:#2e7d46;}
.pill--red{background:#f5e0e0;color:#a13a3a;}
.pill--rose{background:var(--color-rose-pale);color:var(--color-rose-dark);}

/* ---- dashboard: two-col grid, bar chart, mini-lists ---- */
.admin-dash-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:22px;align-items:start;margin-bottom:0;}
.sales-chart{display:flex;align-items:flex-end;gap:5px;height:170px;}
.sales-chart__col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;}
.sales-chart__bar{width:100%;max-width:24px;background:var(--color-rose-pale);border-radius:4px 4px 0 0;transition:background .15s;min-height:3px;}
.sales-chart__col:hover .sales-chart__bar{background:var(--color-rose);}
.sales-chart__label{font-size:.6rem;color:var(--color-grey);margin-top:7px;white-space:nowrap;}
.mini-list{display:flex;flex-direction:column;}
.mini-list__row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--color-border);}
.mini-list__row:last-child{border-bottom:0;}
.mini-list__thumb{width:36px;height:46px;border-radius:5px;overflow:hidden;flex-shrink:0;background:var(--color-rose-pale);}
.mini-list__thumb img{width:100%;height:100%;object-fit:cover;}
.mini-list__info{flex:1;min-width:0;}
.mini-list__name{font-size:.83rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mini-list__meta{font-size:.74rem;color:var(--color-grey);margin-top:2px;}
.mini-list__value{font-size:.83rem;font-weight:700;flex-shrink:0;text-align:right;}
.mini-list__value small{display:block;font-weight:500;color:var(--color-grey);font-size:.68rem;}
@media (max-width:991px){
  .admin-dash-grid{grid-template-columns:1fr;}
}

/* ---- underline tabs (product-edit tabs, settings tabs) ---- */
.admin-tabs{display:flex;gap:4px;border-bottom:1px solid var(--color-border);margin-bottom:22px;overflow-x:auto;}
.admin-tabs button{padding:13px 18px;font-size:.84rem;font-weight:600;color:var(--color-grey);background:none;border:0;border-bottom:2px solid transparent;white-space:nowrap;margin-bottom:-1px;}
.admin-tabs button.active{color:var(--color-ink);border-bottom-color:var(--color-rose);}
.admin-tab-panel{display:none;}
.admin-tab-panel.active{display:block;}

/* ---- product-edit specific ---- */
.admin-actionbar{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap;}
.admin-actionbar__cancel{font-size:.82rem;font-weight:700;color:var(--color-grey);}
.admin-editor-layout{display:grid;grid-template-columns:1fr 320px;gap:22px;align-items:start;}
.admin-editor-layout > div{min-width:0;}
.pe-grid{display:grid;grid-template-columns:1.7fr 1fr 1.1fr;gap:22px;align-items:start;}
.pe-grid > div{min-width:0;}
.req{color:var(--color-rose-dark);margin-left:2px;}
.admin-card__head .icon-btn{width:26px;height:26px;border-radius:50%;background:none;border:0;color:var(--color-grey);display:flex;align-items:center;justify-content:center;}
.admin-card__head .icon-btn:hover{background:var(--color-rose-pale);color:var(--color-rose-dark);}
.admin-card__head .icon-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;}
.save-dropdown{position:relative;display:inline-flex;}
.save-dropdown__toggle{padding:0 10px !important;border-left:1px solid rgba(255,255,255,.25) !important;}
.save-dropdown__menu{position:absolute;top:calc(100% + 6px);right:0;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);padding:6px;min-width:230px;display:none;z-index:20;}
.save-dropdown__menu.open{display:block;}
.save-dropdown__menu button{display:block;width:100%;text-align:left;padding:9px 10px;font-size:.82rem;font-weight:600;color:var(--color-ink-soft);background:none;border:0;border-radius:4px;}
.save-dropdown__menu button:hover{background:var(--color-rose-pale);}
.pe-field-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 0;border-bottom:1px solid var(--color-border);}
.pe-field-row:last-child{border-bottom:0;}
.pe-field-row label{font-size:.84rem;color:var(--color-ink-soft);flex-shrink:0;}
.pe-field-row select,.pe-field-row input{max-width:320px;}
@media (max-width:1300px){
  .pe-grid{grid-template-columns:1fr 1fr;}
  .pe-grid > :last-child{grid-column:1 / -1;}
}
@media (max-width:900px){
  .pe-grid{grid-template-columns:1fr;}
  .pe-grid > :last-child{grid-column:auto;}
}
.wysiwyg-toolbar{display:flex;gap:2px;flex-wrap:wrap;border:1px solid var(--color-border);border-bottom:0;border-radius:6px 6px 0 0;padding:7px;background:#faf9f8;}
.wysiwyg-toolbar button{width:30px;height:30px;border:0;background:none;border-radius:4px;font-size:.8rem;font-weight:700;color:var(--color-ink-soft);}
.wysiwyg-toolbar button:hover{background:var(--color-rose-pale);}
.wysiwyg-body{border:1px solid var(--color-border);border-radius:0 0 6px 6px;padding:14px;min-height:110px;font-size:.88rem;color:var(--color-ink-soft);line-height:1.6;}
.wysiwyg-body[contenteditable]:focus{outline:2px solid var(--color-rose);}
.chip-input{display:flex;flex-wrap:wrap;gap:7px;border:1px solid var(--color-border);border-radius:4px;padding:9px 10px;min-height:44px;align-items:center;}
.chip-input input{border:0;flex:1;min-width:100px;font-size:.85rem;}
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--color-rose-pale);color:var(--color-rose-dark);font-size:.76rem;font-weight:700;padding:4px 8px 4px 11px;border-radius:20px;}
.chip button{background:none;border:0;color:inherit;font-size:.9rem;line-height:1;padding:0;}

.admin-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px;}
.admin-image-tile{position:relative;aspect-ratio:4/5;border-radius:8px;overflow:hidden;background:var(--color-rose-pale);border:1px solid var(--color-border);}
.admin-image-tile img{width:100%;height:100%;object-fit:cover;}
.admin-image-tile .main-badge{position:absolute;top:6px;left:6px;background:var(--color-ink);color:#fff;font-size:.6rem;font-weight:700;padding:3px 7px;border-radius:3px;text-transform:uppercase;}
.admin-image-tile__menu{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.9);border:0;font-weight:900;font-size:.85rem;color:var(--color-ink);}
.admin-image-add{aspect-ratio:4/5;border:2px dashed var(--color-grey-light);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--color-grey);background:none;font-size:.7rem;text-align:center;padding:10px;}
.admin-image-add svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.6;}
.admin-image-add:hover{border-color:var(--color-rose);color:var(--color-rose-dark);}

.variant-swatches{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.variant-swatch-add,.variant-size-add{width:26px;height:26px;border-radius:50%;border:1px dashed var(--color-grey-light);background:none;color:var(--color-grey);font-size:1rem;line-height:1;}
.variant-sizes{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}

.checkbox-inline{display:flex;align-items:center;gap:8px;font-size:.84rem;font-weight:600;color:var(--color-ink-soft);margin:0 0 12px;}
.checkbox-inline input{width:16px;height:16px;accent-color:var(--color-rose);}

.social-preview-card{border:1px solid var(--color-border);border-radius:8px;padding:14px;font-size:.8rem;color:var(--color-ink-soft);background:#faf9f8;line-height:1.6;}

/* ---- reference-data / settings tables ---- */
.color-dot{width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.15);display:inline-block;vertical-align:middle;}

/* ---- responsive ---- */
@media (max-width:1199px){
  .admin-editor-layout{grid-template-columns:1fr;}
  .admin-content .stat-cards{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:991px){
  .admin-topbar__search{display:none;}
  .admin-sidebar{position:fixed;left:0;top:0;z-index:40;transform:translateX(-100%);box-shadow:0 0 0 100vmax rgba(0,0,0,0);}
  .admin-shell.mobile-open .admin-sidebar{transform:translateX(0);box-shadow:0 0 40px rgba(0,0,0,.25);}
  .admin-shell.collapsed .admin-sidebar{width:264px;}
  .admin-shell.collapsed .admin-sidebar__logo small,
  .admin-shell.collapsed .admin-nav a span,
  .admin-shell.collapsed .admin-sidebar__profile .who,
  .admin-shell.collapsed .admin-sidebar__footer{display:block;}
  .admin-content{padding:20px 16px 50px;}
  .admin-topbar{padding:12px 16px;}
}
@media (max-width:767px){
  .admin-content .stat-cards{grid-template-columns:1fr 1fr;}
  .admin-topbar__title{font-size:1rem;}
  .admin-topbar__gotosite{display:none;}
  .admin-topbar .lang-switch__btn{padding:0 8px;}
}

/* ==========================================================================
   ПЛАВАЮЩИЙ ВИДЖЕТ КАНАЛІВ ЗВ'ЯЗКУ — раздел 13.1 ТЗ.
   Каналы и их вкл/выкл-состояние приходят из data/admin.json + правок,
   сделанных в адмінці (Налаштування → Канали зв'язку) — common.js читает
   тот же localStorage-слой overrides, поэтому виджет живо отражает то,
   что владелец магазина включил/выключил в адмін-панелі.
   ========================================================================== */
.contact-widget{position:fixed;right:20px;bottom:24px;z-index:80;}
.contact-widget__panel{position:absolute;right:0;bottom:70px;display:flex;flex-direction:column;gap:8px;align-items:flex-end;opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity var(--transition),transform var(--transition);}
.contact-widget.open .contact-widget__panel{opacity:1;pointer-events:auto;transform:translateY(0);}
.contact-widget__item{display:flex;align-items:center;gap:10px;text-decoration:none;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;}
.contact-widget__label{background:var(--color-ink);color:#fff;font-size:.78rem;font-weight:700;padding:6px 12px;border-radius:8px;white-space:nowrap;box-shadow:var(--shadow-card);opacity:0;transform:translateX(6px);transition:opacity var(--transition),transform var(--transition);pointer-events:none;}
.contact-widget__item:hover .contact-widget__label,
.contact-widget__item:focus-visible .contact-widget__label{opacity:1;transform:translateX(0);}
.contact-widget__icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 6px 18px rgba(26,26,26,.22);border:none;cursor:pointer;flex-shrink:0;transition:transform var(--transition);}
.contact-widget__item:hover .contact-widget__icon,.contact-widget__icon:hover{transform:scale(1.07);}
.contact-widget__icon svg{width:22px;height:22px;fill:currentColor;}
.contact-widget__icon--phone{background:var(--color-ink);}
.contact-widget__icon--telegram{background:#29a9e0;}
.contact-widget__icon--whatsapp{background:#25d366;}
.contact-widget__icon--viber{background:#7360f2;}
.contact-widget__icon--messenger{background:#5b7cf5;}
.contact-widget__icon--chat{background:var(--color-rose);}
.contact-widget__icon--callback{background:var(--color-ink-soft);}
.contact-widget__icon--email{background:var(--color-grey);}
.contact-widget__fab{width:58px;height:58px;border-radius:50%;background:var(--color-rose);color:#fff;border:none;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(183,110,121,.45);cursor:pointer;transition:transform var(--transition),background var(--transition);}
.contact-widget__fab:hover{background:var(--color-rose-dark);}
.contact-widget__fab svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--transition);}
.contact-widget__fab .icon-close{display:none;}
.contact-widget.open .contact-widget__fab .icon-chat{display:none;}
.contact-widget.open .contact-widget__fab .icon-close{display:block;}

.contact-widget__form{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:16px;width:260px;}
.contact-widget__form h6{font-family:var(--font-sans);font-weight:800;font-size:.9rem;margin:0 0 10px;}
.contact-widget__form input,.contact-widget__form textarea{width:100%;padding:9px 11px;border:1px solid var(--color-border);border-radius:8px;font-size:.84rem;margin-bottom:8px;font-family:inherit;}
.contact-widget__form button{width:100%;background:var(--color-ink);color:#fff;border:none;border-radius:8px;padding:10px;font-weight:700;font-size:.84rem;cursor:pointer;}
.contact-widget__form button:hover{background:var(--color-ink-soft);}
.contact-widget__success{font-size:.82rem;color:var(--color-success);font-weight:600;display:flex;align-items:center;gap:6px;}
.contact-widget__back{background:none;border:none;color:var(--color-grey);font-size:.76rem;cursor:pointer;padding:0 0 8px;text-decoration:underline;}

@media (max-width:991px){
  .contact-widget{bottom:80px;right:14px;}
}
@media (max-width:480px){
  .contact-widget__form{width:220px;}
}

/* ==========================================================================
   Мікроанімації «відчуття люксу» (розділ 18.8 ТЗ) — плавні переходи й
   ненав'язливий fade-in для карток/банерів; вимикається для тих, хто
   попросив систему зменшити рух.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {
  @keyframes pfFadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
  .product-card, .promo-card, .admin-card, .lookbook-look, .ugc-item, .hero-slide.active { animation: pfFadeIn .55s ease both; }
  a, button, .btn, input, select, .product-card__media img { transition: background-color .18s ease, color .18s ease, border-color .18s ease, box-shadow .2s ease, transform .15s ease, opacity .25s ease; }
  button:active, .btn:active { transform: scale(.97); }
}
img { transition: opacity .3s ease; }

/* ==========================================================================
   Спливаюче вікно збору контактів для ретаргетингу (розділ 16.2 ТЗ) —
   показується один раз за сесію відвідувача вітрини, з промокодом за
   підписку на розсилку.
   ========================================================================== */
.newsletter-popup{position:fixed;inset:0;background:rgba(20,15,15,.5);z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .25s ease;}
.newsletter-popup.open{opacity:1;pointer-events:auto;}
.newsletter-popup__card{background:#fff;border-radius:var(--radius-md);max-width:420px;width:100%;padding:36px 32px 30px;position:relative;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.25);}
.newsletter-popup__close{position:absolute;top:12px;right:12px;background:none;border:0;color:var(--color-grey);cursor:pointer;padding:6px;line-height:0;}
.newsletter-popup__close svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;}
.newsletter-popup__card h3{font-family:var(--font-serif);font-size:1.4rem;margin:0 0 10px;}
.newsletter-popup__card p{color:var(--color-ink-soft);font-size:.9rem;margin:0 0 20px;}
.newsletter-popup__card form{display:flex;gap:8px;}
.newsletter-popup__card input[type="email"]{flex:1;padding:12px 14px;border:1px solid var(--color-border);border-radius:8px;font-size:.88rem;font-family:inherit;}
.newsletter-popup__card button[type="submit"]{background:var(--color-ink);color:#fff;border:none;border-radius:8px;padding:12px 18px;font-weight:700;font-size:.85rem;cursor:pointer;white-space:nowrap;}
.newsletter-popup__card button[type="submit"]:hover{background:var(--color-ink-soft);}
.newsletter-popup__success{color:var(--color-success);font-weight:600;font-size:.9rem;}
@media (max-width:480px){
  .newsletter-popup__card form{flex-direction:column;}
}

/* ==========================================================================
   Картка товару: бейдж автентичності, підказка розміру, вкладка «Відгуки»
   з фото (розділи 18.1 / 18.4 ТЗ)
   ========================================================================== */
.trust-badge{display:flex;align-items:flex-start;gap:12px;background:var(--color-rose-pale);border-radius:var(--radius-sm);padding:14px 16px;margin:18px 0;}
.trust-badge svg{width:26px;height:26px;flex:none;stroke:var(--color-rose-dark);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.trust-badge b{display:block;font-size:.85rem;margin-bottom:2px;}
.trust-badge span{display:block;font-size:.78rem;color:var(--color-ink-soft);}

.size-suggestion{font-size:.8rem;color:var(--color-rose-dark);margin:10px 0 0;display:flex;align-items:center;gap:6px;}
.size-suggestion::before{content:"✨";}

.reviews-summary{display:flex;align-items:center;gap:24px;padding:18px 0;border-bottom:1px solid var(--color-border);margin-bottom:18px;flex-wrap:wrap;}
.reviews-summary__score{font-family:var(--font-serif);font-size:2.4rem;font-weight:600;line-height:1;}
.reviews-summary__stars{color:var(--color-warning);font-size:1rem;letter-spacing:2px;margin:4px 0;}
.reviews-summary__count{font-size:.8rem;color:var(--color-grey);}
.reviews-filter{display:flex;gap:8px;margin-bottom:18px;}
.reviews-filter button{background:none;border:1px solid var(--color-border);border-radius:20px;padding:7px 14px;font-size:.78rem;cursor:pointer;color:var(--color-ink-soft);}
.reviews-filter button.active{background:var(--color-ink);border-color:var(--color-ink);color:#fff;}
.review-card{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--color-border);}
.review-card__avatar{width:38px;height:38px;border-radius:50%;background:var(--color-rose-pale);color:var(--color-rose-dark);display:flex;align-items:center;justify-content:center;font-weight:700;flex:none;font-size:.85rem;}
.review-card__body{flex:1;min-width:0;}
.review-card__head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px;}
.review-card__name{font-weight:700;font-size:.86rem;}
.review-card__stars{color:var(--color-warning);font-size:.82rem;letter-spacing:1px;}
.review-card__date{font-size:.74rem;color:var(--color-grey);}
.review-card__text{font-size:.86rem;color:var(--color-ink-soft);margin:0 0 8px;}
.review-card__photo{width:64px;height:80px;object-fit:cover;border-radius:8px;display:block;}
.review-form{background:var(--color-bg-soft,#faf7f5);border-radius:var(--radius-sm);padding:18px;margin-top:22px;}
.review-form h5{margin:0 0 12px;font-size:.9rem;}
.review-form .star-rating{display:flex;gap:4px;margin-bottom:12px;font-size:1.3rem;}
.review-form .star-rating button{background:none;border:0;cursor:pointer;color:var(--color-border);padding:0;}
.review-form .star-rating button.active,.review-form .star-rating button:hover{color:var(--color-warning);}
.review-form textarea{width:100%;border:1px solid var(--color-border);border-radius:8px;padding:10px 12px;font-family:inherit;font-size:.85rem;min-height:80px;margin-bottom:10px;}
.review-form input[type="file"]{font-size:.78rem;margin-bottom:12px;}
.review-form__hint{font-size:.74rem;color:var(--color-grey);margin-top:8px;}

/* ==========================================================================
   «Пошук за фото» — UI-заглушка (розділ 18.1 ТЗ)
   ========================================================================== */
.photo-search__card h3{margin-bottom:8px;}
.photo-search__drop{display:flex;flex-direction:column;align-items:center;gap:8px;border:1.5px dashed var(--color-border);border-radius:var(--radius-sm);padding:28px 16px;cursor:pointer;color:var(--color-ink-soft);font-size:.85rem;transition:border-color .2s ease,background-color .2s ease;}
.photo-search__drop:hover{border-color:var(--color-rose);background:var(--color-rose-pale);}
.photo-search__drop svg{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.trust-badge--vip{background:linear-gradient(135deg,#f4ecd8,#e9dcb8);}
.trust-badge--vip svg{stroke:#8a6d3b;}

/* ==========================================================================
   Lookbook — «Shop the look» (розділ 18.3 ТЗ)
   ========================================================================== */
.lookbook-intro{color:var(--color-ink-soft);font-size:.92rem;max-width:640px;margin-top:6px;}
.lookbook-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;padding:28px 0 70px;}
.lookbook-look__media{position:relative;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:3/4;}
.lookbook-look__media img{width:100%;height:100%;object-fit:cover;display:block;}
.lookbook-look__caption{padding-top:14px;}
.lookbook-look__caption h3{font-family:var(--font-serif);font-size:1.15rem;margin:0 0 4px;}
.lookbook-look__caption p{color:var(--color-ink-soft);font-size:.86rem;margin:0;}
.lookbook-hotspot{position:absolute;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.92);border:1.5px solid var(--color-ink);color:var(--color-ink);font-size:1rem;line-height:1;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.25);animation:pfPulse 2.2s ease infinite;z-index:3;}
.lookbook-hotspot:hover{background:var(--color-ink);color:#fff;}
@keyframes pfPulse{0%,100%{box-shadow:0 2px 10px rgba(0,0,0,.25),0 0 0 0 rgba(255,255,255,.5);}50%{box-shadow:0 2px 10px rgba(0,0,0,.25),0 0 0 8px rgba(255,255,255,0);}}
.lookbook-popover{position:absolute;transform:translate(-50%,10px);background:#fff;border-radius:var(--radius-sm);box-shadow:var(--shadow-card);padding:10px;width:190px;opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:4;}
.lookbook-popover.open{opacity:1;pointer-events:auto;}
.lookbook-popover__link{display:flex;gap:10px;align-items:center;color:var(--color-ink);}
.lookbook-popover__link img{width:44px;height:56px;object-fit:cover;border-radius:6px;flex:none;}
.lookbook-popover__link span{display:flex;flex-direction:column;gap:2px;min-width:0;}
.lookbook-popover__link b{font-size:.78rem;font-weight:700;line-height:1.25;}
.lookbook-popover__link em{font-style:normal;font-size:.78rem;color:var(--color-rose-dark);font-weight:700;}
.lookbook-popover__link .old{display:block;color:var(--color-grey);text-decoration:line-through;font-weight:500;font-size:.72rem;}
@media (max-width:767px){
  .lookbook-grid{grid-template-columns:1fr;gap:26px;}
}

/* Розширена гарантія/страхування доставки для дорогих замовлень (розділ 18.4 ТЗ) */
.warranty-note{display:flex;gap:10px;align-items:flex-start;background:var(--color-rose-pale);border-radius:var(--radius-sm);padding:12px 14px;margin-top:14px;}
.warranty-note svg{width:20px;height:20px;flex:none;stroke:var(--color-rose-dark);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin-top:1px;}
.warranty-note b{display:block;font-size:.8rem;margin-bottom:2px;}
.warranty-note span{display:block;font-size:.76rem;color:var(--color-ink-soft);}
.order-row__reorder{background:none;border:0;padding:0;margin:0;font:inherit;cursor:pointer;}

/* Подарункова упаковка на чекауті (розділ 18.2 ТЗ) */
.checkout-gift__toggle{display:flex;align-items:center;gap:10px;font-size:.9rem;font-weight:600;cursor:pointer;}
.checkout-gift__toggle input{width:18px;height:18px;accent-color:var(--color-ink);}
.checkout-gift__toggle em{font-style:normal;font-weight:400;color:var(--color-grey);}
.checkout-gift__message{margin-top:14px;}
.checkout-success__gift{background:var(--color-rose-pale);border-radius:var(--radius-sm);padding:10px 16px;font-size:.84rem;display:inline-block;margin-top:6px;}

/* Запис на консультацію зі стилістом (розділ 18.2 ТЗ) */
.stylist-booking{margin-top:22px;}
.stylist-booking__text{font-size:.85rem;color:var(--color-ink-soft);margin:0 0 16px;max-width:560px;}
.stylist-booking__form{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:560px;}
.stylist-booking__form input,.stylist-booking__form textarea{border:1px solid var(--color-border);border-radius:8px;padding:10px 12px;font-family:inherit;font-size:.85rem;}
.stylist-booking__form textarea{grid-column:1/-1;min-height:70px;}
.stylist-booking__form button{grid-column:1/-1;justify-self:start;}
@media (max-width:600px){
  .stylist-booking__form{grid-template-columns:1fr;}
}

/* ==========================================================================
   Галерея образів покупців — UGC (розділ 18.7 ТЗ)
   ========================================================================== */
.ugc-subtitle{color:var(--color-ink-soft);font-size:.88rem;margin:4px 0 0;}
.ugc-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;padding:20px 0 50px;}
.ugc-item{position:relative;display:block;border-radius:var(--radius-sm);overflow:hidden;aspect-ratio:1/1;}
.ugc-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease;}
.ugc-item:hover img{transform:scale(1.06);}
.ugc-item__handle{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.55);color:#fff;font-size:.68rem;font-weight:600;padding:3px 8px;border-radius:20px;}
@media (max-width:991px){
  .ugc-grid{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:480px){
  .ugc-grid{grid-template-columns:repeat(2,1fr);}
}

/* ==========================================================================
   Perfetto Magazine — журнал бренду (розділ 18.3 ТЗ)
   ========================================================================== */
.magazine-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;padding:6px 0 60px;}
.magazine-card{display:block;cursor:pointer;border-radius:var(--radius-md);overflow:hidden;background:#fff;box-shadow:var(--shadow-card);transition:transform .25s ease,box-shadow .25s ease;}
.magazine-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(0,0,0,.1);}
.magazine-card__media{aspect-ratio:16/10;overflow:hidden;}
.magazine-card__media img{width:100%;height:100%;object-fit:cover;display:block;}
.magazine-card__body{padding:20px 22px 24px;}
.magazine-card__meta{display:flex;justify-content:space-between;align-items:center;font-size:.72rem;color:var(--color-grey);margin-bottom:10px;}
.magazine-card__cat{text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--color-rose-dark);}
.magazine-card__body h3{font-family:var(--font-serif);font-size:1.2rem;margin:0 0 8px;line-height:1.3;}
.magazine-card__body p{color:var(--color-ink-soft);font-size:.86rem;line-height:1.55;margin:0 0 12px;}
.magazine-card__link{font-size:.8rem;font-weight:700;}
@media (max-width:767px){ .magazine-grid{grid-template-columns:1fr;gap:20px;} }

.magazine-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:40px 16px;}
.magazine-modal[hidden]{display:none;}
.magazine-modal__backdrop{position:fixed;inset:0;background:rgba(20,18,16,.6);}
.magazine-modal__panel{position:relative;background:#fff;border-radius:var(--radius-md);max-width:680px;width:100%;padding:36px;z-index:1;}
.magazine-modal__close{position:absolute;top:16px;right:16px;width:34px;height:34px;border-radius:50%;border:1px solid var(--color-line);background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.magazine-modal__close svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;}
.magazine-article h2{font-family:var(--font-serif);font-size:1.5rem;margin:6px 0 18px;line-height:1.3;}
.magazine-article__hero{width:100%;border-radius:var(--radius-sm);margin-bottom:18px;display:block;}
.magazine-article p{color:var(--color-ink-soft);font-size:.92rem;line-height:1.7;margin:0 0 14px;}
.magazine-modal__related{margin-top:22px;border-top:1px solid var(--color-line);padding-top:18px;}
.magazine-modal__related h4{font-size:.86rem;margin:0 0 12px;}
.magazine-modal__related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:14px;}

/* Вкладка "Відео" на картці товару (розділ 18.3 ТЗ) — заглушка плеєра */
.product-video-stub{text-align:center;padding:10px 0;}
.product-video-stub__frame{position:relative;max-width:420px;margin:0 auto;border-radius:var(--radius-sm);overflow:hidden;aspect-ratio:4/5;}
.product-video-stub__frame img{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(.75);}
.product-video-stub__play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;border-radius:50%;background:rgba(255,255,255,.94);border:0;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.product-video-stub__play svg{width:24px;height:24px;fill:var(--color-ink);margin-left:3px;}
.product-video-stub__note{margin-top:16px;color:var(--color-grey);font-size:.85rem;}

/* Історія та походження товару — плашка над вкладками (розділ 18.3 ТЗ) */
.provenance-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;background:var(--color-bg-soft,#f7f4f1);border-radius:var(--radius-sm);padding:16px 18px;margin:18px 0;}
.provenance-strip__item{display:flex;gap:10px;align-items:flex-start;}
.provenance-strip__item svg{width:20px;height:20px;flex:none;stroke:var(--color-ink-soft);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;margin-top:1px;}
.provenance-strip__item div{display:flex;flex-direction:column;gap:2px;min-width:0;}
.provenance-strip__item b{font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-grey);font-weight:700;}
.provenance-strip__item span{font-size:.82rem;color:var(--color-ink);line-height:1.4;}
@media (max-width:767px){ .provenance-strip{grid-template-columns:1fr;gap:12px;} }

/* Підписка "Повідомити про надходження / зниження ціни" (розділ 18.5 ТЗ) */
.stock-subscribe{margin-top:14px;}
.stock-subscribe__toggle{background:none;border:0;padding:0;font-size:.84rem;font-weight:700;color:var(--color-ink);cursor:pointer;text-decoration:underline;text-underline-offset:3px;}
.stock-subscribe__toggle:disabled{color:var(--color-grey);text-decoration:none;cursor:default;}
.stock-subscribe__form{margin-top:12px;background:var(--color-bg-soft,#f7f4f1);border-radius:var(--radius-sm);padding:16px;}
.stock-subscribe__form input[type=email]{width:100%;padding:10px 12px;border:1px solid var(--color-line);border-radius:var(--radius-sm);font:inherit;margin:4px 0 12px;}

/* Розширена таблиця розмірів UA/RU/EU/US/UK (розділ 18.5 ТЗ) */
.size-guide-modal__panel{max-width:740px;}
.size-guide-modal__panel h2{font-family:var(--font-serif);font-size:1.4rem;margin:6px 0 10px;}
.size-guide-modal__panel > p{color:var(--color-ink-soft);font-size:.88rem;line-height:1.6;margin:0 0 18px;}
.size-guide-table-wrap{overflow-x:auto;}
.size-guide-table{width:100%;border-collapse:collapse;font-size:.84rem;}
.size-guide-table th,.size-guide-table td{padding:10px 12px;text-align:center;border-bottom:1px solid var(--color-line);white-space:nowrap;}
.size-guide-table thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-grey);font-weight:700;}
.size-guide-table tbody td:first-child{font-weight:700;}
.size-guide-table__row--active{background:var(--color-rose-pale);}
.size-guide-hint{margin:18px 0 0;font-size:.8rem;color:var(--color-grey);}

/* Безкоштовний забір кур'єром при поверненні (розділ 18.4 ТЗ) */
.courier-pickup-note{display:inline-block;margin-top:4px;color:var(--color-rose-dark);font-weight:600;font-size:.78rem;}

/* Резерв товару для примірки в магазині (розділ 18.6 ТЗ) */
.reserve-fitting{margin-top:10px;}
.reserve-fitting__btn{background:none;border:1px solid var(--color-line);border-radius:var(--radius-sm);padding:9px 14px;font-size:.82rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:8px;color:var(--color-ink);}
.reserve-fitting__btn:hover{border-color:var(--color-ink);}
.reserve-fitting__btn:disabled{color:var(--color-grey);border-color:var(--color-line);cursor:default;}

/* PWA: install-банер (розділ 18.8 ТЗ) */
.pwa-install-banner{position:fixed;left:16px;right:16px;bottom:16px;max-width:520px;margin:0 auto;background:#fff;border-radius:var(--radius-md);box-shadow:0 16px 40px rgba(0,0,0,.22);padding:14px 16px;display:flex;align-items:center;gap:12px;z-index:180;transform:translateY(120%);opacity:0;transition:transform .3s ease,opacity .3s ease;}
.pwa-install-banner.open{transform:translateY(0);opacity:1;}
.pwa-install-banner__icon{font-size:1.6rem;flex:none;}
.pwa-install-banner__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.pwa-install-banner__text b{font-size:.86rem;}
.pwa-install-banner__text span{font-size:.76rem;color:var(--color-grey);}
.pwa-install-banner .btn{padding:8px 16px;font-size:.78rem;flex:none;}
.pwa-install-banner__close{background:none;border:0;padding:4px;flex:none;cursor:pointer;color:var(--color-grey);}
.pwa-install-banner__close svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;}
@media (max-width:600px){
  .pwa-install-banner{bottom:70px;left:10px;right:10px;padding:12px;flex-wrap:wrap;}
  .pwa-install-banner__text{width:100%;order:2;}
  .pwa-install-banner .btn{order:3;margin-left:auto;}
}

/* Адмінка: прогноз залишків + A/B-тест-заглушка + UTM-звіт (розділ 18.8, 16.2 ТЗ) */
.forecast-note{font-size:.7rem;color:var(--color-grey);margin-top:4px;text-align:right;}
.ab-test-stub{display:flex;flex-direction:column;gap:8px;}
.ab-test-stub__row{display:flex;justify-content:space-between;align-items:center;font-size:.84rem;background:var(--color-rose-pale);border-radius:var(--radius-sm);padding:8px 12px;}
.ab-test-stub__row b{font-family:var(--font-serif);}
.ab-test-stub .pill{align-self:flex-start;margin-top:2px;}

/* Подарунковий гід: фільтри за приводом/бюджетом + електронний сертифікат (розділ 18.7 ТЗ) */
.giftguide-filters{display:flex;flex-wrap:wrap;gap:26px;margin:4px 0 30px;}
.giftguide-filter-group{display:flex;flex-direction:column;gap:8px;}
.giftguide-filter-group__label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-grey);}
.filter-pill-row{display:flex;flex-wrap:wrap;gap:8px;}
.filter-pill{background:#fff;border:1px solid var(--color-line);border-radius:20px;padding:8px 16px;font-size:.8rem;font-weight:600;color:var(--color-ink);cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease;}
.filter-pill:hover{border-color:var(--color-ink);}
.filter-pill.active{background:var(--color-ink);border-color:var(--color-ink);color:#fff;}
.empty-state{text-align:center;color:var(--color-ink-soft);padding:40px 0;font-size:.9rem;}

.giftcert{margin-top:64px;padding-top:48px;border-top:1px solid var(--color-border);display:grid;grid-template-columns:380px 1fr;gap:48px;align-items:start;}
.giftcert__visual{position:sticky;top:24px;}
.giftcert__card{background:linear-gradient(135deg,#1a1a1a,#3a2e33 60%,#8a6a15);border-radius:var(--radius-md);padding:32px 26px;color:#fff;min-height:220px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 18px 40px rgba(0,0,0,.22);}
.giftcert__card-logo{font-family:var(--font-serif);font-size:1.3rem;letter-spacing:.02em;}
.giftcert__card-label{font-size:.78rem;opacity:.8;margin-top:26px;}
.giftcert__card-amount{font-family:var(--font-serif);font-size:2rem;margin-top:6px;}
.giftcert__form-wrap h2{font-family:var(--font-serif);font-size:1.5rem;margin:0 0 8px;}
.giftcert__custom-input{margin-top:10px;max-width:220px;}
.giftcert__success{background:var(--color-rose-pale);border-radius:var(--radius-md);padding:26px 28px;}
.giftcert__success h3{font-family:var(--font-serif);margin:0 0 8px;}
.giftcert__code-box{display:flex;align-items:center;gap:12px;background:#fff;border-radius:var(--radius-sm);padding:12px 16px;margin:14px 0 18px;font-size:.8rem;}
.giftcert__code-box strong{font-family:var(--font-serif);font-size:1.1rem;letter-spacing:.04em;}
@media (max-width:900px){
  .giftcert{grid-template-columns:1fr;}
  .giftcert__visual{position:static;}
}
