/* ============================================================
   CJ GIFTS — CORE STYLESHEET
   Red + White happy gifts theme
   ============================================================ */

:root{
  --navy: #a10d2c;
  --navy-2: #c8102e;
  --navy-light: #e11d48;
  --gold: #e11d48;
  --gold-light: #ff7a93;
  --gold-dark: #b3122f;
  --white: #ffffff;
  --gray-50: #fff5f7;
  --gray-100: #ffebef;
  --gray-200: #ffd6de;
  --gray-400: #ffc9d4;
  --gray-600: #8a4a58;
  --gray-800: #4a1826;
  --danger: #d64545;
  --success: #2e9e5b;
  --radius: 14px;
  --radius-sm: 8px;
  --shadow-soft: 0 8px 30px rgba(161,13,44,0.08);
  --shadow-card: 0 4px 18px rgba(161,13,44,0.10);
  --shadow-gold: 0 0 24px rgba(225,29,72,0.45);
  --transition: all .35s cubic-bezier(.4,0,.2,1);
  --maxw: 1240px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--gray-50);
  color:var(--navy);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:'Playfair Display',Georgia,serif;
  margin:0 0 .5em;
  color:var(--navy);
  font-weight:700;
  letter-spacing:.2px;
}
p{margin:0 0 1em;color:var(--gray-600);}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}
ul{list-style:none;margin:0;padding:0;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
input,select,textarea{font-family:inherit;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
.section{padding:70px 0;}
.section-head{text-align:center;max-width:640px;margin:0 auto 44px;}
.section-head .eyebrow{
  color:var(--gold-dark);
  text-transform:uppercase;
  letter-spacing:2.5px;
  font-size:12px;
  font-weight:700;
  display:inline-block;
  margin-bottom:10px;
}
.section-head h2{font-size:clamp(28px,4vw,40px);}
.section-head p{font-size:16px;}
.text-center{text-align:center;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 30px;border-radius:999px;font-weight:700;font-size:14.5px;
  letter-spacing:.4px;transition:var(--transition);position:relative;overflow:hidden;
  white-space:nowrap;
}
.btn-gold{
  background:linear-gradient(135deg,var(--gold-light),var(--gold) 55%,var(--gold-dark));
  color:var(--navy);
  box-shadow:0 6px 20px rgba(225,29,72,.35);
}
.btn-gold:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 30px rgba(225,29,72,.55), var(--shadow-gold);
}
.btn-navy{
  background:var(--navy);
  color:var(--white);
  box-shadow:0 6px 18px rgba(161,13,44,.25);
}
.btn-navy:hover{
  transform:translateY(-3px);
  background:var(--navy-light);
  box-shadow:0 10px 26px rgba(161,13,44,.4);
}
.btn-outline{
  background:transparent;
  color:var(--navy);
  border:1.5px solid var(--navy);
}
.btn-outline:hover{background:var(--navy);color:var(--white);transform:translateY(-3px);}
.btn-outline-gold{
  background:transparent;color:var(--gold-dark);border:1.5px solid var(--gold);
}
.btn-outline-gold:hover{background:var(--gold);color:var(--navy);transform:translateY(-3px);}
.btn-sm{padding:9px 18px;font-size:13px;}
.btn-block{width:100%;}
.btn-danger{background:var(--danger);color:#fff;}
.btn-danger:hover{filter:brightness(1.1);transform:translateY(-2px);}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none!important;}

/* shimmer sweep on gold buttons */
.btn-gold::after{
  content:'';position:absolute;top:0;left:-75%;width:50%;height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-20deg);
}
.btn-gold:hover::after{animation:sweep .9s ease forwards;}
@keyframes sweep{ to{left:125%;} }

/* ============================================================
   HEADER
   ============================================================ */
#site-header{position:sticky;top:0;z-index:1000;}
.topbar{
  background:var(--navy-2);color:var(--gray-400);font-size:12.5px;
  padding:7px 0;letter-spacing:.3px;
}
.topbar .container{display:flex;justify-content:space-between;align-items:center;}
.topbar span.gold-txt{color:var(--gold);}

.main-header{
  background:linear-gradient(180deg,var(--navy),var(--navy-2));
  box-shadow:0 4px 22px rgba(0,0,0,.18);
}
.main-header .container{
  display:flex;align-items:center;justify-content:space-between;
  padding-top:16px;padding-bottom:16px;gap:24px;
}
.logo{
  display:flex;align-items:center;gap:10px;font-family:'Playfair Display',serif;
  font-size:24px;font-weight:800;color:var(--white);
}
.logo .mark{
  width:38px;height:38px;border-radius:10px;
  background:linear-gradient(135deg,var(--gold-light),var(--gold-dark));
  display:flex;align-items:center;justify-content:center;
  color:var(--navy);font-size:18px;font-weight:900;
  box-shadow:0 0 18px rgba(225,29,72,.6);
  animation:glowPulse 3s ease-in-out infinite;
}
.logo span.accent{color:var(--gold);}
.logo .logo-image{
  width:54px;height:40px;object-fit:contain;border-radius:5px;
  box-shadow:0 0 18px rgba(225,29,72,.35);
  animation:glowPulse 3s ease-in-out infinite,heartbeat 1.8s ease-in-out infinite;
}
.logo:hover .logo-image{animation-duration:3s,.7s;}

.main-nav{display:flex;gap:28px;align-items:center;}
.main-nav a{
  color:#fff;font-size:14.5px;font-weight:600;letter-spacing:.2px;
  position:relative;padding:6px 0;transition:var(--transition);
}
.main-nav a::after{
  content:'';position:absolute;left:0;bottom:-2px;width:0;height:2px;
  background:var(--gold);transition:width .3s ease;
}
.main-nav a:hover,.main-nav a.active{color:var(--gold);}
.main-nav a:hover::after,.main-nav a.active::after{width:100%;}

.header-actions{display:flex;align-items:center;gap:18px;}
.icon-btn{
  position:relative;color:#fff;font-size:19px;width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;border-radius:50%;
  transition:var(--transition);
}
.icon-btn:hover{background:rgba(225,29,72,.15);color:var(--gold);}
.cart-count{
  position:absolute;top:-2px;right:-2px;background:var(--gold);color:var(--navy);
  font-size:10.5px;font-weight:800;width:18px;height:18px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 8px rgba(225,29,72,.8);
}
.search-box{
  display:flex;align-items:center;background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:8px 16px;
  max-width:260px;transition:var(--transition);
}
.search-box:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px rgba(225,29,72,.18);}
.search-box input{
  background:transparent;border:none;outline:none;color:#fff;font-size:13.5px;width:100%;
}
.search-box input::placeholder{color:var(--gray-400);}
.search-box svg{flex-shrink:0;color:var(--gray-400);margin-right:8px;}

.hamburger{display:none;flex-direction:column;gap:5px;width:26px;cursor:pointer;}
.hamburger span{height:2px;background:#fff;border-radius:2px;transition:var(--transition);}

.mobile-nav{
  display:none;position:fixed;inset:0;background:var(--navy);z-index:2000;
  padding:24px;flex-direction:column;transform:translateX(100%);transition:transform .4s ease;
}
.mobile-nav.open{display:flex;transform:translateX(0);}
.mobile-nav .close-mobile{align-self:flex-end;color:#fff;font-size:28px;margin-bottom:20px;}
.mobile-nav a{
  color:#fff;font-size:19px;font-weight:600;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.08);
}
.mobile-nav a:hover{color:var(--gold);}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  background:linear-gradient(180deg,#ffffff, var(--gray-50));
  padding:80px 0 60px;position:relative;overflow:hidden;
}
.hero .container{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center;}
.hero-badge{
  display:inline-flex;align-items:center;gap:8px;background:#fff;
  border:1px solid var(--gray-200);padding:8px 16px;border-radius:999px;
  font-size:12.5px;font-weight:700;color:var(--gold-dark);margin-bottom:20px;
  box-shadow:var(--shadow-card);
}
.hero-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--gold);animation:glowPulse 1.6s infinite;}
.hero h1{font-size:clamp(34px,5vw,58px);line-height:1.08;margin-bottom:18px;}
.hero h1 .shine{
  background:linear-gradient(90deg,var(--gold-dark),var(--gold),var(--gold-light),var(--gold));
  background-size:300% auto;-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:shine 4s linear infinite;
}
.hero p.lead{font-size:17px;max-width:480px;margin-bottom:30px;}
.hero-cta{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:36px;}
.hero-stats{display:flex;gap:32px;}
.hero-stats div{border-left:2px solid var(--gold);padding-left:14px;}
.hero-stats strong{display:block;font-size:22px;font-family:'Playfair Display',serif;color:var(--navy);}
.hero-stats span{font-size:12.5px;color:var(--gray-600);}

.hero-visual{position:relative;height:460px;}
.hero-visual .card-float{
  position:absolute;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-soft);
  animation:float 5s ease-in-out infinite;
}
.hero-visual .c1{width:64%;top:0;right:0;height:60%;animation-delay:0s;}
.hero-visual .c2{width:52%;bottom:0;left:0;height:52%;animation-delay:1s;}
.hero-visual .glow-orb{
  position:absolute;width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle,rgba(225,29,72,.5),transparent 70%);
  filter:blur(10px);top:30%;left:20%;animation:glowPulse 3.5s ease-in-out infinite;z-index:-1;
}
.hero-visual .badge-offer{
  position:absolute;bottom:20px;right:20px;background:var(--navy);color:#fff;
  padding:14px 18px;border-radius:var(--radius-sm);box-shadow:var(--shadow-gold);
  font-size:13px;font-weight:700;animation:float 4s ease-in-out infinite;animation-delay:.5s;
}
.hero-visual .badge-offer .gold{color:var(--gold);display:block;font-size:18px;font-family:'Playfair Display',serif;}

/* ============================================================
   CATEGORY SECTION
   ============================================================ */
.category-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.cat-card{
  position:relative;border-radius:var(--radius);overflow:hidden;height:320px;
  display:flex;align-items:flex-end;padding:34px;color:#fff;
  transition:var(--transition);box-shadow:var(--shadow-card);
}
.cat-card::before{
  content:'';position:absolute;inset:0;background-size:cover;background-position:center;
  transition:transform .6s ease;background-image:var(--bg);
}
.cat-card::after{
  content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(161,13,44,.15),rgba(161,13,44,.88));
}
.cat-card:hover::before{transform:scale(1.08);}
.cat-card:hover{box-shadow:0 16px 40px rgba(161,13,44,.35), var(--shadow-gold);transform:translateY(-6px);}
.cat-card .cat-content{position:relative;z-index:2;}
.cat-card .cat-icon{font-size:34px;margin-bottom:10px;display:block;}
.cat-card h3{color:#fff;font-size:26px;margin-bottom:6px;}
.cat-card p{color:var(--gray-400);margin-bottom:14px;font-size:14px;}
.cat-card .cat-link{
  color:var(--gold);font-weight:700;font-size:13.5px;display:inline-flex;align-items:center;gap:6px;
}
.cat-card .cat-link svg{transition:transform .3s ease;}
.cat-card:hover .cat-link svg{transform:translateX(5px);}

/* ============================================================
   PRODUCT CARDS
   ============================================================ */
.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
.product-card{
  background:#fff;border-radius:var(--radius);overflow:hidden;border:1px solid var(--gray-200);
  transition:var(--transition);position:relative;display:flex;flex-direction:column;
}
.product-card:hover{
  transform:translateY(-8px);box-shadow:0 18px 36px rgba(161,13,44,.14), 0 0 0 1px rgba(225,29,72,.3);
  border-color:transparent;
}
.product-card .pc-img{
  position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--gray-100);
}
.product-card .pc-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.pc-img-empty{display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,var(--gray-100),#fff);}
.pc-img-empty::after{content:'Photo unavailable';color:var(--gray-400);font-size:12px;font-weight:600;letter-spacing:.04em;}
.pc-img-placeholder{color:var(--gray-400);font-size:13px;font-weight:700;letter-spacing:.08em;}
.product-card:hover .pc-img img{transform:scale(1.08);}
.pc-badge{
  position:absolute;top:12px;left:12px;background:var(--danger);color:#fff;font-size:11px;
  font-weight:800;padding:5px 10px;border-radius:6px;letter-spacing:.3px;
}
.pc-badge.featured{background:var(--navy);}
.pc-wish{
  position:absolute;top:10px;right:10px;background:#fff;width:34px;height:34px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-card);
  opacity:0;transform:translateY(-6px);transition:var(--transition);color:var(--navy);
}
.product-card:hover .pc-wish{opacity:1;transform:translateY(0);}
.pc-wish.active{color:var(--danger);opacity:1;transform:none;}
.pc-quick{
  position:absolute;bottom:-50px;left:0;right:0;padding:12px;transition:var(--transition);
}
.product-card:hover .pc-quick{bottom:0;}
.pc-body{padding:18px;flex:1;display:flex;flex-direction:column;}
.pc-cat{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--gold-dark);font-weight:700;margin-bottom:4px;}
.pc-name{font-size:15.5px;font-weight:700;color:var(--navy);margin-bottom:8px;line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:42px;}
.pc-price{display:flex;flex-direction:column;align-items:flex-start;gap:0;margin-top:auto;margin-bottom:12px;}
.pc-price .now{font-size:18px;font-weight:800;color:var(--navy);}
.pc-price .was{font-size:13.5px;color:var(--gray-400);text-decoration:line-through;}
.pc-stock{font-size:12px;color:var(--success);font-weight:600;margin-bottom:10px;}
.pc-stock.out{color:var(--danger);}
.pc-actions{display:flex;gap:8px;}
.pc-actions .btn{flex:1;padding:10px 12px;font-size:13px;}

/* skeleton loader */
.skeleton{background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-200) 37%,var(--gray-100) 63%);
  background-size:400% 100%;animation:skeletonShine 1.4s ease infinite;border-radius:var(--radius);}
.skeleton-card{height:340px;}

/* ============================================================
   SPECIAL OFFERS (dark section)
   ============================================================ */
.offers-section{
  background:radial-gradient(circle at 20% 20%,var(--navy-light),var(--navy) 60%);
  color:#fff;position:relative;overflow:hidden;
}
.offers-section::before{
  content:'';position:absolute;width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle,rgba(225,29,72,.18),transparent 70%);
  top:-150px;right:-100px;animation:glowPulse 5s ease-in-out infinite;
}
.offers-section .section-head h2{color:#fff;}
.offers-section .section-head p{color:var(--gray-400);}
.offers-section .section-head .eyebrow{color:var(--gold);}
.offers-section .product-card{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1);}
.offers-section .product-card:hover{box-shadow:0 18px 40px rgba(0,0,0,.4), var(--shadow-gold);}
.offers-section .pc-name{color:#fff;}
.offers-section .pc-price .now{color:var(--gold-light);}
.offers-section .pc-img{background:rgba(255,255,255,.05);}

/* ============================================================
   FILTERS / SHOP LAYOUT
   ============================================================ */
.shop-layout{display:grid;grid-template-columns:260px 1fr;gap:36px;align-items:flex-start;}
.filters-panel{
  background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);padding:24px;
  position:sticky;top:110px;
}
.filters-panel h4{font-size:14px;text-transform:uppercase;letter-spacing:1px;margin-bottom:14px;color:var(--navy);}
.filter-group{margin-bottom:26px;}
.filter-group label{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--gray-600);padding:5px 0;cursor:pointer;}
.filter-group input[type=checkbox],.filter-group input[type=radio]{accent-color:var(--gold-dark);width:16px;height:16px;}
.price-range{display:flex;gap:10px;}
.price-range input{width:100%;padding:8px 10px;border:1px solid var(--gray-200);border-radius:6px;font-size:13px;}

.toolbar{
  display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:14px;
}
.toolbar select, .toolbar input[type=search]{
  padding:10px 14px;border:1px solid var(--gray-200);border-radius:8px;font-size:13.5px;background:#fff;
}
.result-count{color:var(--gray-600);font-size:13.5px;}

/* ============================================================
   BREADCRUMB / PAGE HEADER (banner)
   ============================================================ */
.page-banner{
  background:linear-gradient(135deg,var(--navy),var(--navy-2));
  color:#fff;padding:56px 0;text-align:center;position:relative;overflow:hidden;
}
.page-banner::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);}
.page-banner h1{color:#fff;font-size:clamp(28px,4vw,42px);margin-bottom:8px;}
.page-banner .crumb{color:var(--gray-400);font-size:13.5px;}
.page-banner .crumb a{color:var(--gold);}

/* ============================================================
   PRODUCT DETAIL
   ============================================================ */
.pd-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
.pd-gallery-main{
  aspect-ratio:1/1;border-radius:var(--radius);overflow:hidden;background:var(--gray-100);
  box-shadow:var(--shadow-card);margin-bottom:14px;
}
.pd-gallery-main img{width:100%;height:100%;object-fit:cover;}
.pd-gallery-main.pd-gallery-empty{display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,var(--gray-100),#fff);}
.pd-gallery-main.pd-gallery-empty::after{content:'Photo unavailable';color:var(--gray-400);font-size:14px;font-weight:600;letter-spacing:.04em;}
.pd-thumbs{display:flex;gap:10px;}
.pd-thumbs img{
  width:76px;height:76px;object-fit:cover;border-radius:8px;cursor:pointer;border:2px solid transparent;
  transition:var(--transition);
}
.pd-thumbs img:hover,.pd-thumbs img.active{border-color:var(--gold);box-shadow:0 0 10px rgba(225,29,72,.5);}
.pd-cat{color:var(--gold-dark);text-transform:uppercase;font-size:12px;font-weight:700;letter-spacing:1px;}
.pd-title{font-size:30px;margin:8px 0 12px;}
.pd-price{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.pd-price .now{font-size:28px;font-weight:800;color:var(--navy);}
.pd-price .was{font-size:17px;color:var(--gray-400);text-decoration:line-through;}
.pd-price .off{background:rgba(214,69,69,.1);color:var(--danger);font-weight:700;font-size:12.5px;padding:4px 10px;border-radius:6px;}
.pd-meta{display:flex;gap:22px;font-size:13.5px;color:var(--gray-600);margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--gray-200);}
.pd-meta b{color:var(--navy);}
.pd-desc{margin-bottom:22px;}
.variant-block{margin-bottom:22px;}
.variant-block h5{font-size:13.5px;text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px;color:var(--navy);}
.variant-opts{display:flex;gap:10px;flex-wrap:wrap;}
.variant-opt{
  padding:9px 18px;border:1.5px solid var(--gray-200);border-radius:999px;font-size:13.5px;font-weight:600;
  cursor:pointer;transition:var(--transition);
}
.variant-opt:hover{border-color:var(--gold);}
.variant-opt.selected{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:0 0 14px rgba(161,13,44,.4);}
.swatch{width:26px;height:26px;border-radius:50%;display:inline-block;border:2px solid #fff;box-shadow:0 0 0 1.5px var(--gray-300,#ddd);cursor:pointer;transition:var(--transition);}
.swatch.selected{box-shadow:0 0 0 2px var(--gold), 0 0 10px rgba(225,29,72,.6);transform:scale(1.12);}

.qty-selector{display:flex;align-items:center;border:1.5px solid var(--gray-200);border-radius:999px;width:fit-content;}
.qty-selector button{width:38px;height:38px;font-size:18px;color:var(--navy);}
.qty-selector input{width:44px;text-align:center;border:none;font-size:15px;font-weight:700;}
.pd-actions{display:flex;gap:14px;margin:24px 0;}
.pd-actions .btn{flex:1;}
.pd-stock-msg{font-size:13.5px;font-weight:700;color:var(--success);margin-bottom:6px;}
.pd-stock-msg.out{color:var(--danger);}

/* ============================================================
   CART / CHECKOUT
   ============================================================ */
.cart-wrap{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:40px;align-items:start;}
.cart-wrap>div:first-child{min-width:0;}
.cart-table{width:100%;border-collapse:collapse;}
.cart-table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--gray-600);
  padding:12px 10px;border-bottom:2px solid var(--gray-200);}
.cart-table td{padding:18px 10px;border-bottom:1px solid var(--gray-200);vertical-align:middle;}
.cart-item-info{display:flex;gap:14px;align-items:center;}
.cart-item-info img{width:70px;height:70px;object-fit:cover;border-radius:8px;}
.cart-item-info .ci-name{font-weight:700;color:var(--navy);font-size:14.5px;}
.cart-item-info .ci-variant{font-size:12.5px;color:var(--gray-600);}
.remove-item{color:var(--danger);font-size:13px;font-weight:600;}
.summary-card{
  background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);padding:26px;
  position:sticky;top:110px;
}
.summary-row{display:flex;justify-content:space-between;font-size:14.5px;color:var(--gray-600);padding:8px 0;}
.summary-row.total{border-top:2px solid var(--gray-200);margin-top:8px;padding-top:16px;font-size:19px;font-weight:800;color:var(--navy);}
.summary-row>span{min-width:0;}
.summary-row.total>span:last-child{text-align:right;overflow-wrap:anywhere;}
.promo-badge{color:var(--success);font-weight:700;}

.checkout-grid{display:grid;grid-template-columns:1.3fr .9fr;gap:44px;}
.form-group{margin-bottom:18px;}
.form-group label{display:block;font-size:13px;font-weight:700;color:var(--navy);margin-bottom:7px;}
.form-group input,.form-group select,.form-group textarea{
  width:100%;padding:13px 15px;border:1.5px solid var(--gray-200);border-radius:8px;font-size:14.5px;
  transition:var(--transition);background:#fff;
}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{
  outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(225,29,72,.16);
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-error{color:var(--danger);font-size:12.5px;margin-top:5px;display:none;}
.form-group.invalid input,.form-group.invalid select{border-color:var(--danger);}
.form-group.invalid .form-error{display:block;}

/* ============================================================
   AUTH PAGES
   ============================================================ */
.auth-wrap{
  min-height:70vh;display:flex;align-items:center;justify-content:center;padding:60px 20px;
  background:linear-gradient(160deg,var(--navy),var(--navy-2) 60%,var(--navy-light));
  position:relative;overflow:hidden;
}
.auth-wrap::before{content:'';position:absolute;width:600px;height:600px;border-radius:50%;
  background:radial-gradient(circle,rgba(225,29,72,.14),transparent 70%);top:-200px;left:-150px;
  animation:glowPulse 6s ease-in-out infinite;}
.auth-card{
  background:#fff;border-radius:var(--radius);padding:44px;max-width:440px;width:100%;
  box-shadow:0 30px 80px rgba(0,0,0,.35);position:relative;z-index:2;
  animation:fadeInUp .6s ease both;
}
.auth-card h2{text-align:center;}
.auth-card .sub{text-align:center;margin-bottom:26px;}
.auth-switch{text-align:center;margin-top:18px;font-size:14px;color:var(--gray-600);}
.auth-switch a{color:var(--gold-dark);font-weight:700;}

/* ============================================================
   ADMIN
   ============================================================ */
.admin-body{background:var(--gray-100);}
.admin-shell{display:flex;min-height:100vh;}
.admin-sidebar{
  width:250px;background:linear-gradient(180deg,var(--navy),var(--navy-2));color:#fff;
  flex-shrink:0;padding:26px 0;position:sticky;top:0;height:100vh;
}
.admin-sidebar .logo{padding:0 24px 26px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:16px;}
.admin-sidebar nav a{
  display:flex;align-items:center;gap:12px;padding:13px 24px;color:var(--gray-400);font-size:14.5px;font-weight:600;
  border-left:3px solid transparent;transition:var(--transition);
}
.admin-sidebar nav a:hover{background:rgba(255,255,255,.05);color:#fff;}
.admin-sidebar nav a.active{color:var(--gold);border-left-color:var(--gold);background:rgba(225,29,72,.08);}
.admin-main{flex:1;padding:32px 36px;}
.admin-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;}
.admin-topbar h1{font-size:24px;margin:0;}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:32px;}
.stat-card{
  background:#fff;border-radius:var(--radius);padding:22px;border:1px solid var(--gray-200);
  transition:var(--transition);position:relative;overflow:hidden;
}
.stat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft);}
.stat-card .stat-icon{
  width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--gold-light),var(--gold-dark));color:var(--navy);font-size:20px;margin-bottom:14px;
  box-shadow:0 0 16px rgba(225,29,72,.35);
}
.stat-card .stat-value{font-size:26px;font-weight:800;color:var(--navy);font-family:'Playfair Display',serif;}
.stat-card .stat-label{font-size:13px;color:var(--gray-600);}

.admin-panel{background:#fff;border-radius:var(--radius);border:1px solid var(--gray-200);padding:26px;margin-bottom:26px;}
.order-item-list{display:grid;gap:4px;min-width:150px;margin:0;padding:0;list-style:none;}
.order-item-list li{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;font-size:12.5px;line-height:1.4;}
.order-item-list li span{min-width:0;overflow-wrap:anywhere;}
.order-item-list li strong{flex:none;color:var(--gray-600);font-size:12px;}
.order-items-empty{font-size:12px;color:var(--gray-600);}
.admin-panel h3{font-size:17px;margin-bottom:18px;}
.data-table{width:100%;border-collapse:collapse;}
.data-table th{text-align:left;font-size:12px;text-transform:uppercase;color:var(--gray-600);letter-spacing:.6px;padding:10px;border-bottom:2px solid var(--gray-200);}
.data-table td{padding:14px 10px;border-bottom:1px solid var(--gray-200);font-size:14px;}
.data-table tr:hover{background:var(--gray-50);}
.data-table img{width:42px;height:42px;border-radius:6px;object-fit:cover;}
.badge{padding:4px 10px;border-radius:6px;font-size:11.5px;font-weight:700;letter-spacing:.3px;}
.badge.pending{background:#fff4d6;color:#946c00;}
.badge.paid{background:#dbf5e6;color:var(--success);}
.badge.processing{background:#dce8ff;color:#2757c9;}
.badge.shipped{background:#e6dcff;color:#6b34c9;}
.badge.delivered{background:#dbf5e6;color:var(--success);}
.badge.cancelled{background:#fddede;color:var(--danger);}
.badge.published{background:#dbf5e6;color:var(--success);}
.badge.draft{background:var(--gray-200);color:var(--gray-600);}
.table-actions{display:flex;gap:10px;}
.table-actions a,.table-actions button{color:var(--navy);font-size:13px;font-weight:700;}
.table-actions .del{color:var(--danger);}

.admin-form-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:26px;}
.checkbox-row{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.checkbox-row input{width:18px;height:18px;accent-color:var(--gold-dark);}
.image-upload-zone{
  border:2px dashed var(--gray-200);border-radius:var(--radius-sm);padding:26px;text-align:center;
  cursor:pointer;transition:var(--transition);
}
.image-upload-zone:hover{border-color:var(--gold);background:rgba(225,29,72,.04);}
.image-preview-grid{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;}
.image-preview-grid .img-item{position:relative;width:80px;height:80px;border-radius:8px;overflow:hidden;}
.image-preview-grid .img-item img{width:100%;height:100%;object-fit:cover;}
.image-preview-grid .img-item .rm{
  position:absolute;top:2px;right:2px;background:rgba(0,0,0,.6);color:#fff;width:20px;height:20px;
  border-radius:50%;font-size:12px;display:flex;align-items:center;justify-content:center;
}
.variant-row{display:flex;gap:10px;margin-bottom:10px;align-items:center;}
.variant-row input{flex:1;padding:9px 12px;border:1px solid var(--gray-200);border-radius:6px;font-size:13.5px;}

/* ============================================================
   FOOTER
   ============================================================ */
#site-footer{background:var(--navy);color:var(--gray-400);position:relative;overflow:hidden;}
.footer-top{padding:64px 0 40px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;}
.footer-grid h4{color:#fff;font-size:15px;text-transform:uppercase;letter-spacing:1px;margin-bottom:18px;}
.footer-grid ul li{margin-bottom:11px;}
.footer-grid a{font-size:14px;transition:var(--transition);}
.footer-grid a:hover{color:var(--gold);padding-left:3px;}
.footer-brand p{max-width:280px;font-size:14px;color:#fff;}
.social-row{display:flex;gap:12px;margin-top:16px;}
.social-row a{
  width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.06);
  display:flex;align-items:center;justify-content:center;transition:var(--transition);
}
.social-row a:hover{background:var(--gold);color:var(--navy);box-shadow:0 0 14px rgba(225,29,72,.6);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:20px 0;font-size:13px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}
.footer-bottom a{margin-left:18px;}

/* ============================================================
   MISC: newsletter, empty states, toasts, badges
   ============================================================ */
.newsletter{background:var(--gray-50);padding:50px 0;text-align:center;border-top:1px solid var(--gray-200);border-bottom:1px solid var(--gray-200);}
.newsletter form{display:flex;max-width:440px;margin:20px auto 0;gap:10px;}
.newsletter input{flex:1;padding:13px 18px;border-radius:999px;border:1.5px solid var(--gray-200);font-size:14px;}

.empty-state{text-align:center;padding:80px 20px;}
.empty-state .icon{font-size:56px;margin-bottom:16px;opacity:.5;}
.empty-state h3{margin-bottom:8px;}
.empty-state p{margin-bottom:24px;}

.toast{
  position:fixed;bottom:26px;right:26px;background:var(--navy);color:#fff;padding:16px 22px;
  border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.3);display:flex;align-items:center;gap:12px;
  z-index:5000;transform:translateY(30px);opacity:0;transition:var(--transition);
  border-left:4px solid var(--gold);
}
.toast.show{transform:translateY(0);opacity:1;}
.toast .tick{color:var(--gold);font-size:18px;}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1;transform:translateY(0);}

/* ============================================================
   ANIMATIONS (excess, glow themed)
   ============================================================ */
@keyframes glowPulse{
  0%,100%{box-shadow:0 0 8px rgba(225,29,72,.4);}
  50%{box-shadow:0 0 26px rgba(225,29,72,.85);}
}
@keyframes float{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-14px);}
}
@keyframes shine{
  to{background-position:300% center;}
}
@keyframes skeletonShine{
  0%{background-position:100% 0;}
  100%{background-position:0 0;}
}
@keyframes fadeInUp{
  from{opacity:0;transform:translateY(24px);}
  to{opacity:1;transform:translateY(0);}
}
@keyframes spin{to{transform:rotate(360deg);}}
.spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:var(--gold);border-radius:50%;animation:spin .7s linear infinite;}

/* Soft page transition with orbiting loading dots */
.cj-loader{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;overflow:hidden;background:rgba(18,22,32,.2);-webkit-backdrop-filter:blur(8px) saturate(.82);backdrop-filter:blur(8px) saturate(.82);opacity:0;visibility:hidden;transition:opacity .18s ease,visibility .18s ease;}
.cj-loader.visible{opacity:1;visibility:visible;}
.cj-loader.dismissed{opacity:0;visibility:hidden;}
.loader-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.loader-dots{position:relative;width:42px;height:42px;animation:loader-orbit .65s linear infinite;filter:drop-shadow(0 3px 8px rgba(25,20,30,.2));}
.loader-dots i{position:absolute;top:2px;left:17px;width:8px;height:8px;border-radius:50%;background:var(--gold);}
.loader-dots i:nth-child(2){top:26px;left:3px;background:#d66b82;}
.loader-dots i:nth-child(3){top:26px;left:31px;background:var(--navy);}
@keyframes loader-orbit{to{transform:rotate(360deg);}}
html.cj-loading,html.cj-loading body{overflow:hidden;}
@media (prefers-reduced-motion:reduce){.cj-loader,.loader-dots{transition:none;animation:none;}}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1080px){
  .product-grid{grid-template-columns:repeat(3,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width: 900px){
  .search-box{display:none;}
  .main-nav{display:none;}
  .hamburger{display:flex;}
  .hero .container{grid-template-columns:1fr;}
  .hero-visual{height:320px;margin-top:20px;}
  .category-grid{grid-template-columns:1fr;}
  .shop-layout{grid-template-columns:1fr;}
  .cart-wrap{grid-template-columns:minmax(0,1fr);gap:26px;}
  .cart-wrap .summary-card{position:static;top:auto;width:100%;min-width:0;}
  .filters-panel{position:static;}
  .pd-grid{grid-template-columns:1fr;gap:30px;}
  .checkout-grid{grid-template-columns:1fr;}
  .admin-sidebar{position:fixed;left:-260px;z-index:1500;transition:var(--transition);}
  .admin-sidebar.open{left:0;}
  .admin-topbar .hamburger{display:flex!important;}
  .admin-topbar .hamburger span{background:var(--navy);}
  .stat-grid{grid-template-columns:1fr 1fr;}
  .admin-form-grid{grid-template-columns:1fr;}
}
@media (max-width: 640px){
  .product-grid{grid-template-columns:repeat(2,1fr);gap:14px;}
  .section{padding:46px 0;}
  .footer-grid{grid-template-columns:1fr;}
  .stat-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .hero-stats{flex-wrap:wrap;gap:18px;}
  .cart-wrap{gap:22px;}
  .cart-table,.cart-table tbody{display:block;width:100%;}
  .cart-table thead{display:none;}
  .cart-table tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 14px;padding:16px 0;border-bottom:1px solid var(--gray-200);}
  .cart-table td{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:0;border:0;font-size:13px;}
  .cart-table td:first-child{grid-column:1/-1;justify-content:flex-start;}
  .cart-table td:nth-child(2)::before{content:'Price';color:var(--gray-600);font-size:11px;font-weight:700;}
  .cart-table td:nth-child(3)::before{content:'Qty';color:var(--gray-600);font-size:11px;font-weight:700;}
  .cart-table td:nth-child(4){grid-column:1/-1;border-top:1px solid var(--gray-100);padding-top:8px;font-weight:700;}
  .cart-table td:nth-child(4)::before{content:'Item total';color:var(--gray-600);font-size:11px;font-weight:700;}
  .cart-item-info{gap:11px;min-width:0;}
  .cart-item-info img{width:58px;height:58px;flex:none;}
  .cart-item-info>div{min-width:0;overflow-wrap:anywhere;}
  .cart-item-info .ci-name{font-size:13.5px;}
  .qty-selector button{width:32px;height:34px;}
  .qty-selector input{width:32px;font-size:14px;}
  .summary-card{padding:20px;}
  .summary-row.total{font-size:clamp(17px,5vw,19px);gap:12px;}
  .summary-row.total>span:last-child{max-width:62%;}
}

/* ============================================================
   RED & WHITE HEARTS THEME — for every occasion
   ============================================================ */
body{color:#3a0f1a;background:#fff;}
::selection{background:#e11d48;color:#fff;}

/* white-on-red fixes (old navy text sat on gold) */
.btn-gold,.logo .mark,.cart-count,.btn-outline-gold:hover,.social-row a:hover,.stat-card .stat-icon{color:#fff;}
.btn-gold{background:linear-gradient(135deg,#ff5c7a,#e11d48 55%,#b3122f);background-size:200% 200%;animation:shiftGrad 5s ease infinite;}
.pc-badge{background:linear-gradient(135deg,#ff5c7a,#e11d48);}

/* accents that sit on red backgrounds become soft pink/white */
.topbar .gold-txt,.main-header .logo span.accent,#site-footer .logo span.accent,.cat-card .cat-link,
.offers-section .section-head .eyebrow,.page-banner .crumb a,.footer-grid a:hover,.admin-sidebar nav a.active,
.hero-visual .badge-offer .gold,.toast .tick,.admin-sidebar .logo span.accent{color:#ffe0e7;}
.admin-sidebar nav a.active{border-left-color:#fff;background:rgba(255,255,255,.14);}
.main-nav a::after{background:#fff;}
.offers-section .pc-price .now{color:#fff;}

/* ---------- floating hearts (all pages) ---------- */
.love-hearts{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:1;}
.love-hearts span{position:absolute;bottom:-40px;left:var(--x);font-size:var(--s);color:#ff5c7a;opacity:0;
  animation:heartRise var(--d) linear var(--dl) infinite;filter:drop-shadow(0 2px 6px rgba(225,29,72,.25));}
.love-hearts span:nth-child(3n){color:#e11d48;}
.love-hearts span:nth-child(4n){color:#ffb3c1;}
@keyframes heartRise{
  0%{transform:translate(0,0) rotate(-12deg) scale(.6);opacity:0;}
  10%{opacity:.55;}
  50%{transform:translate(var(--sw),-55vh) rotate(12deg) scale(1);}
  90%{opacity:.35;}
  100%{transform:translate(calc(var(--sw) * -1),-115vh) rotate(-10deg) scale(1.15);opacity:0;}
}

/* ---------- keyframes ---------- */
@keyframes heartbeat{0%,100%{transform:scale(1);}14%{transform:scale(1.22);}28%{transform:scale(1);}42%{transform:scale(1.16);}70%{transform:scale(1);}}
@keyframes shiftGrad{0%,100%{background-position:0% 50%;}50%{background-position:100% 50%;}}
@keyframes blobDrift{0%,100%{transform:translate(0,0) scale(1);}33%{transform:translate(40px,-30px) scale(1.15);}66%{transform:translate(-30px,25px) scale(.92);}}
@keyframes ringPulse{0%{box-shadow:0 0 0 0 rgba(225,29,72,.55);}100%{box-shadow:0 0 0 18px rgba(225,29,72,0);}}
@keyframes wiggle{0%,100%{transform:rotate(0);}25%{transform:rotate(-8deg);}75%{transform:rotate(8deg);}}
@keyframes twinkle{0%,100%{opacity:.15;transform:scale(.6) rotate(0);}50%{opacity:1;transform:scale(1.2) rotate(25deg);}}
@keyframes stripeMove{to{background-position:60px 0;}}
@keyframes popIn{0%{opacity:0;transform:translateY(26px) scale(.94);}60%{transform:translateY(-4px) scale(1.02);}100%{opacity:1;transform:none;}}
@keyframes underlineGrow{from{width:0;}to{width:64px;}}
@keyframes tilt{0%,100%{transform:rotate(-1.5deg);}50%{transform:rotate(1.5deg);}}
@keyframes waveShift{to{background-position:200px 0;}}

/* ---------- top bar & header ---------- */
.topbar{background:linear-gradient(90deg,#a10d2c,#e11d48,#a10d2c);background-size:200% 100%;animation:shiftGrad 8s linear infinite;color:#fff;}
.main-header{background:linear-gradient(180deg,#e11d48,#c8102e);position:sticky;top:0;z-index:50;box-shadow:0 6px 24px rgba(161,13,44,.35);}
.logo .mark{background:#fff;color:#e11d48;box-shadow:0 0 18px rgba(255,255,255,.7);animation:heartbeat 1.8s ease-in-out infinite;}
.logo:hover .mark{animation-duration:.7s;}
.logo{position:relative;}
.logo::after{content:'\2665';position:absolute;top:-8px;right:-14px;font-size:13px;color:#ffe0e7;animation:heartbeat 1.8s ease-in-out .3s infinite;}
.icon-btn{transition:var(--transition);}
.icon-btn:hover{animation:wiggle .5s ease;background:rgba(255,255,255,.18);}
.cart-count{background:#fff;color:#e11d48;animation:heartbeat 2.2s ease-in-out infinite;}
.search-box:focus-within{box-shadow:0 0 0 4px rgba(255,255,255,.35);transition:var(--transition);}

/* ---------- hero ---------- */
.hero{background:linear-gradient(135deg,#fff 0%,#fff0f3 45%,#ffd6de 100%);background-size:200% 200%;animation:shiftGrad 12s ease infinite;}
.hero::before,.hero::after{content:'';position:absolute;border-radius:50%;filter:blur(40px);z-index:0;animation:blobDrift 14s ease-in-out infinite;}
.hero::before{width:380px;height:380px;background:rgba(255,92,122,.28);top:-120px;left:-100px;}
.hero::after{width:320px;height:320px;background:rgba(225,29,72,.18);bottom:-120px;right:8%;animation-delay:-6s;}
.hero .container{position:relative;z-index:2;}
.hero-badge{border-color:#ffb3c1;}
.hero-badge::before{content:'\2665';color:#e11d48;animation:heartbeat 1.4s infinite;}
.hero h1 .shine{background:linear-gradient(90deg,#b3122f,#e11d48,#ff7a93,#e11d48,#b3122f);background-size:300% auto;-webkit-background-clip:text;background-clip:text;color:transparent;}
.hero h1 .shine:first-of-type::after{content:' \2665';-webkit-text-fill-color:#e11d48;display:inline-block;animation:heartbeat 1.6s infinite;}
.hero-cta .btn-gold{animation:shiftGrad 5s ease infinite,ringPulse 2s ease-out infinite;}
.hero-stats div{border-left-color:#e11d48;}
.hero-visual .card-float{border:6px solid #fff;box-shadow:0 18px 40px rgba(225,29,72,.28);}
.hero-visual .c1{animation:float 5s ease-in-out infinite,tilt 7s ease-in-out infinite;}
.hero-visual .c2{animation:float 5s ease-in-out 1s infinite,tilt 8s ease-in-out infinite reverse;}
.hero-visual .glow-orb{background:radial-gradient(circle,rgba(255,92,122,.65),transparent 70%);}
.hero-visual .badge-offer{background:linear-gradient(135deg,#e11d48,#a10d2c);border-radius:50%;width:104px;height:104px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0;font-size:11px;line-height:1.2;animation:heartbeat 2s ease-in-out infinite;box-shadow:0 0 0 6px #fff,0 12px 30px rgba(225,29,72,.5);}

/* ---------- headings ---------- */
.section-head .eyebrow{color:#e11d48;}
.section-head .eyebrow::before,.section-head .eyebrow::after{content:'\2665';display:inline-block;margin:0 8px;font-size:.9em;animation:heartbeat 1.8s infinite;}
.section-head h2{position:relative;padding-bottom:14px;}
.section-head h2::after{content:'';position:absolute;left:50%;bottom:0;height:3px;width:64px;transform:translateX(-50%);border-radius:3px;
  background:linear-gradient(90deg,transparent,#e11d48,transparent);animation:underlineGrow 1.2s ease both;}
.offers-section .section-head h2::after{background:linear-gradient(90deg,transparent,#fff,transparent);}

/* ---------- categories & products ---------- */
.cat-card::after{background:linear-gradient(180deg,rgba(161,13,44,.1),rgba(120,8,32,.85));}
.cat-card .cat-icon{display:inline-block;animation:heartbeat 2.2s ease-in-out infinite;}
.cat-card:hover .cat-icon{animation:wiggle .6s ease infinite;}
.cat-card .cat-content::before{content:'';position:absolute;top:-140px;left:-60px;width:60px;height:400px;background:rgba(255,255,255,.22);transform:rotate(20deg) translateX(-200px);transition:transform .9s ease;}
.cat-card:hover .cat-content::before{transform:rotate(20deg) translateX(700px);}
.product-card{border:1px solid #ffd6de;animation:popIn .7s ease both;}
.product-grid .product-card:nth-child(2){animation-delay:.08s;}.product-grid .product-card:nth-child(3){animation-delay:.16s;}
.product-grid .product-card:nth-child(4){animation-delay:.24s;}.product-grid .product-card:nth-child(n+5){animation-delay:.32s;}
.product-card:hover{transform:translateY(-8px) rotate(-.4deg);box-shadow:0 18px 40px rgba(225,29,72,.25);border-color:#ff9db1;}
.pc-badge{animation:wiggle 3s ease-in-out infinite;transform-origin:left top;}
.pc-wish{color:#e11d48;}
.pc-wish:hover{animation:heartbeat .8s infinite;background:#ffe0e7;}
.pc-price .now,.pd-price .now{color:#e11d48;}

/* ---------- offers ---------- */
.offers-section{background:radial-gradient(circle at 20% 20%,#ff5c7a,#e11d48 40%,#a10d2c 90%);background-size:150% 150%;animation:shiftGrad 10s ease infinite;}
.offers-section::after{content:'\2665  \2726  \2665     \2726  \2665  \2726';position:absolute;inset:0;color:#fff;font-size:22px;letter-spacing:70px;line-height:120px;overflow:hidden;opacity:.18;animation:twinkle 4s ease-in-out infinite;pointer-events:none;}
.offers-section .container{position:relative;z-index:2;}
.offers-section .product-card{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3);backdrop-filter:blur(4px);}

/* ---------- banners, newsletter, footer ---------- */
.page-banner{background:linear-gradient(135deg,#c8102e,#e11d48,#a10d2c);background-size:200% 200%;animation:shiftGrad 9s ease infinite;}
.page-banner::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.07) 0 20px,transparent 20px 40px);background-size:60px 100%;animation:stripeMove 3s linear infinite;}
.page-banner>*{position:relative;z-index:1;}
.page-banner::after{background:linear-gradient(90deg,transparent,#fff,transparent);}
.newsletter{background:linear-gradient(180deg,#fff5f7,#ffe0e7);border-color:#ffd6de;}
.newsletter h3::before,.newsletter h3::after{content:'\2665';color:#e11d48;display:inline-block;margin:0 10px;animation:heartbeat 1.6s infinite;}
.newsletter input:focus{outline:none;border-color:#e11d48;box-shadow:0 0 0 4px rgba(225,29,72,.15);}
.newsletter .btn-gold{animation:shiftGrad 5s ease infinite,ringPulse 2.4s ease-out infinite;}
#site-footer{background:linear-gradient(180deg,#a10d2c,#7a0a21);color:#ffd6de;}
#site-footer::before{content:'';position:absolute;top:0;left:0;right:0;height:6px;background:repeating-linear-gradient(90deg,#fff 0 12px,#ff5c7a 12px 24px);background-size:48px 6px;animation:waveShift 6s linear infinite;}
.footer-bottom{color:#ffd6de;}
.social-row a:hover{background:#fff;color:#e11d48;animation:heartbeat .8s infinite;}

/* ---------- forms, toasts, loaders ---------- */
input:focus,select:focus,textarea:focus{outline:none;border-color:#e11d48!important;box-shadow:0 0 0 4px rgba(225,29,72,.15);}
.toast{border-left:4px solid #ff5c7a;}
.toast.show{animation:popIn .5s ease;}
.spinner{border-color:#ffd6de;border-top-color:#e11d48;}
.auth-card,.summary-card{border:1px solid #ffd6de;box-shadow:0 14px 40px rgba(225,29,72,.14);}
.auth-card{animation:popIn .8s ease both;}
.variant-opt.selected{background:#e11d48;border-color:#e11d48;}
.btn-outline{border-color:#e11d48;color:#e11d48;}
.btn-outline:hover{background:#e11d48;color:#fff;box-shadow:0 8px 22px rgba(225,29,72,.35);}
.main-nav a:hover{text-shadow:0 0 12px rgba(255,255,255,.7);}

/* ---------- accessibility: respect reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;}
  .love-hearts{display:none;}
}
@media (max-width:700px){.love-hearts span:nth-child(n+9){display:none;}.hero-visual .badge-offer{width:88px;height:88px;}}

/* ============================================================
   LAYOUT V2 — white two-tier header, collage hero, trust bar,
   gift-type tiles, promo banner, how-it-works, refined cards
   ============================================================ */
body{background:#fff;}
.section{padding:64px 0;}
.soft-section{background:linear-gradient(180deg,#fff5f7,#fff0f3);}

/* ----- header ----- */
.main-header{background:#fff;box-shadow:0 4px 24px rgba(161,13,44,.12);}
.main-header .container.top-row{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;gap:32px;align-items:center;padding-top:14px;padding-bottom:14px;}
.main-header .logo{color:#a10d2c;}
.main-header .logo .mark{background:linear-gradient(135deg,#ff5c7a,#c8102e);color:#fff;box-shadow:0 6px 16px rgba(225,29,72,.4);}
.main-header .logo span.accent{color:#e11d48;}
.logo::after{color:#e11d48;}
.top-row .search-box{max-width:none;width:100%;background:#fff5f7;border:2px solid #ffd6de;padding:11px 20px;}
.top-row .search-box:focus-within{border-color:#e11d48;background:#fff;}
.top-row .search-box input{color:#3a0f1a;font-size:14.5px;}
.top-row .search-box input::placeholder,.top-row .search-box svg{color:#c47a8b;}
.main-header .icon-btn{color:#a10d2c;background:#fff0f3;width:44px;height:44px;}
.main-header .icon-btn:hover{background:#ffe0e7;}
.main-header .cart-count{background:#e11d48;color:#fff;}
.hamburger span{background:#a10d2c;}
.nav-bar{background:linear-gradient(90deg,#c8102e,#e11d48,#c8102e);background-size:200% 100%;animation:shiftGrad 10s linear infinite;}
.main-header .nav-bar .container{display:flex;justify-content:center;padding-top:0;padding-bottom:0;}
.nav-bar .main-nav{gap:8px;}
.nav-bar .main-nav a{padding:13px 18px;font-size:14px;color:#fff;}
.nav-bar .main-nav a::after{bottom:0;height:3px;background:#fff;border-radius:3px 3px 0 0;}
.nav-bar .main-nav a.active,.nav-bar .main-nav a:hover{background:rgba(255,255,255,.14);}
@media (max-width:900px){
  .main-header .container.top-row{grid-template-columns:1fr auto;}
  .top-row .search-box,.nav-bar{display:none;}
}

/* ----- hero collage ----- */
.hero{padding:72px 0 96px;}
.hero-visual{height:500px;}
.hero-visual .c1{width:56%;height:80%;top:0;right:4%;border-radius:220px 220px 26px 26px;}
.hero-visual .c2{width:44%;height:42%;bottom:0;left:0;border-radius:26px;}
.hero-visual .c3{width:30%;aspect-ratio:1;bottom:2%;right:0;border-radius:50%;animation:float 6s ease-in-out .6s infinite;}
.hero-visual .badge-offer{top:6%;left:4%;bottom:auto;right:auto;}
.hero-visual .card-float img{width:100%;height:100%;object-fit:cover;}

/* ----- trust bar ----- */
.trust-wrap{margin-top:-52px;position:relative;z-index:3;}
.trust-bar{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-radius:22px;box-shadow:0 18px 50px rgba(225,29,72,.18);border:1px solid #ffd6de;overflow:hidden;}
.trust-bar>div{display:flex;align-items:center;gap:14px;padding:22px 24px;border-right:1px solid #ffe0e7;transition:var(--transition);}
.trust-bar>div:last-child{border-right:none;}
.trust-bar>div:hover{background:#fff5f7;}
.trust-bar .t-ic{width:48px;height:48px;border-radius:50%;background:#ffe0e7;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;animation:float 4s ease-in-out infinite;}
.trust-bar strong{display:block;color:#a10d2c;font-size:15px;}
.trust-bar small{color:#8a4a58;font-size:12.5px;}

/* ----- gift-type tiles ----- */
.occ-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:18px;}
.occ-tile{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;}
.occ-circle{width:92px;height:92px;border-radius:50%;background:linear-gradient(145deg,#fff,#ffe0e7);border:2px solid #ffc9d4;display:flex;align-items:center;justify-content:center;font-size:38px;box-shadow:0 8px 20px rgba(225,29,72,.14);transition:var(--transition);}
.occ-tile:hover .occ-circle{background:linear-gradient(145deg,#ff7a93,#e11d48);border-color:#e11d48;transform:translateY(-8px) scale(1.08) rotate(-4deg);box-shadow:0 16px 30px rgba(225,29,72,.35);}
.occ-label{font-weight:700;font-size:13.5px;color:#a10d2c;}

/* ----- section rows ----- */
.section-row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:32px;flex-wrap:wrap;}
.section-row h2{margin:0;font-size:clamp(26px,3.4vw,38px);}
.eyebrow-l{display:block;color:#e11d48;text-transform:uppercase;letter-spacing:2px;font-size:12.5px;font-weight:800;margin-bottom:6px;}
.eyebrow-l::before{content:'\2665';margin-right:8px;display:inline-block;animation:heartbeat 1.8s infinite;}
.see-all{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:#e11d48;border-bottom:2px solid #ffc9d4;padding-bottom:3px;transition:var(--transition);}
.see-all:hover{gap:14px;border-color:#e11d48;}

/* ----- product cards ----- */
.product-card{border-radius:22px;background:#fff;box-shadow:0 6px 22px rgba(161,13,44,.08);overflow:hidden;}
.product-card .pc-img{aspect-ratio:1/1;height:auto;}
.pc-wish{opacity:1;transform:none;box-shadow:0 4px 14px rgba(225,29,72,.25);}
.pc-body{padding:18px 20px 20px;}
.pc-actions{display:grid;grid-template-columns:1fr auto;gap:8px;}
.pc-actions .btn-gold{width:100%;}
.pc-actions .btn-outline{padding:10px 16px;}
.pc-actions .btn-gold{min-width:0;min-height:42px;display:flex;align-items:center;justify-content:center;white-space:nowrap;}
.pc-price .was{color:#c47a8b;}

/* ----- promo banner ----- */
.promo-banner{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:30px;border-radius:32px;padding:48px 56px;color:#fff;position:relative;overflow:hidden;
  background:radial-gradient(circle at 15% 20%,#ff5c7a,#e11d48 45%,#a10d2c);background-size:140% 140%;animation:shiftGrad 10s ease infinite;box-shadow:0 24px 60px rgba(225,29,72,.35);}
.promotion-feature{padding-top:36px;padding-bottom:36px;}
.promo-banner{border:1px solid rgba(255,255,255,.38);}
.promo-text h2{text-shadow:0 2px 16px rgba(95,0,24,.24);}
.promo-text p strong{color:#fff;font-weight:800;white-space:nowrap;}
.promo-banner::before{content:'\2665  \2726  \2665  \2726  \2665';position:absolute;inset:0;font-size:26px;letter-spacing:60px;line-height:90px;opacity:.12;overflow:hidden;animation:twinkle 5s ease-in-out infinite;}
.promo-text{position:relative;z-index:2;}
.promo-text h2{color:#fff;font-size:clamp(28px,3.6vw,42px);}
.promo-text p{color:#ffe0e7;font-size:17px;}
.promo-tag{display:inline-block;background:#fff;color:#e11d48;font-weight:800;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;padding:6px 14px;border-radius:999px;margin-bottom:16px;animation:heartbeat 2s infinite;}
.btn-white{background:#fff;color:#e11d48;box-shadow:0 8px 22px rgba(0,0,0,.18);}
.btn-white:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,0,0,.25);}
.promo-img{position:relative;z-index:2;}
.promo-img img{width:100%;height:280px;object-fit:cover;border-radius:24px;border:6px solid #fff;transform:rotate(3deg);box-shadow:0 20px 40px rgba(0,0,0,.25);animation:tilt 7s ease-in-out infinite;}
.promo-pct{position:absolute;top:-16px;left:-10px;width:92px;height:92px;border-radius:50%;background:#fff;color:#e11d48;font-family:'Playfair Display',serif;font-weight:800;font-size:26px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;box-shadow:0 10px 24px rgba(0,0,0,.25);animation:heartbeat 2s infinite;}
.promo-pct small{font-family:Inter,sans-serif;font-size:11px;letter-spacing:1.5px;}
.promo-pct{width:124px;height:124px;font-size:22px;text-align:center;}
.promo-pct small{max-width:96px;font-size:8px;line-height:1.35;letter-spacing:.7px;margin-top:5px;}
.offers-grid{grid-template-columns:repeat(3,1fr);}

/* ----- how it works ----- */
.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;position:relative;max-width:980px;margin:0 auto;text-align:center;}
.how-grid::before{content:'';position:absolute;top:34px;left:16%;right:16%;border-top:3px dashed #ffb3c1;z-index:0;}
.how-grid>div{position:relative;z-index:1;}
.how-num{width:68px;height:68px;border-radius:50%;background:linear-gradient(135deg,#ff5c7a,#c8102e);color:#fff;font-family:'Playfair Display',serif;font-size:28px;font-weight:800;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;box-shadow:0 0 0 8px #fff0f3,0 12px 26px rgba(225,29,72,.35);animation:heartbeat 2.4s infinite;}
.how-grid h3{font-size:20px;}

/* ----- gift CTA ----- */
.gift-cta{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;background:linear-gradient(120deg,#fff0f3,#ffd6de);border:2px dashed #ff9db1;border-radius:28px;padding:38px 46px;}
.gift-cta h2{margin-bottom:6px;font-size:clamp(24px,3vw,34px);}
.gift-cta p{margin:0;}

/* ----- inner pages: airy banner, filters ----- */
.page-banner{background:linear-gradient(135deg,#fff5f7,#ffd6de);animation:none;color:#a10d2c;padding:48px 0;border-bottom:1px solid #ffc9d4;}
.page-banner::before{background:radial-gradient(circle at 85% 30%,rgba(225,29,72,.16),transparent 45%),radial-gradient(circle at 10% 80%,rgba(255,92,122,.18),transparent 40%);animation:none;}
.page-banner h1{color:#a10d2c;}
.page-banner p{color:#8a4a58;}
.page-banner .crumb,.page-banner .crumb a{color:#e11d48;}
.page-banner::after{background:linear-gradient(90deg,transparent,#e11d48,transparent);}
.filters-panel{border:1px solid #ffd6de;border-radius:22px;box-shadow:0 8px 26px rgba(161,13,44,.08);top:150px;}
.toolbar{border-radius:16px;}

@media (max-width:1080px){.occ-grid{grid-template-columns:repeat(4,1fr);row-gap:26px;}.offers-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:900px){
  .hero{padding:48px 0 84px;}.hero-visual{height:380px;}
  .trust-bar{grid-template-columns:1fr 1fr;}.trust-bar>div:nth-child(2){border-right:none;}.trust-bar>div:nth-child(-n+2){border-bottom:1px solid #ffe0e7;}
  .promo-banner{grid-template-columns:1fr;padding:36px 28px;}
  .how-grid{grid-template-columns:1fr;gap:30px;}.how-grid::before{display:none;}
}
@media (max-width:640px){
  .promotion-feature{padding-top:20px;padding-bottom:24px;}
  .promo-banner{gap:22px;padding:30px 22px;border-radius:24px;}
  .promo-text h2{font-size:clamp(27px,8vw,36px);}
  .promo-text p{font-size:15px;line-height:1.65;}
  .promo-img{margin:6px 8px 0 12px;}
  .promo-img img{height:210px;border-width:4px;}
  .promo-pct{top:-12px;left:-12px;width:104px;height:104px;font-size:19px;}
  .promo-pct small{max-width:80px;font-size:7px;}
  .occ-grid{grid-template-columns:repeat(4,1fr);gap:10px;}.occ-circle{width:64px;height:64px;font-size:26px;}.occ-label{font-size:11.5px;}
  .trust-bar>div{padding:16px 14px;}.trust-bar .t-ic{width:38px;height:38px;font-size:18px;}
  .offers-grid{grid-template-columns:repeat(2,1fr);}.gift-cta{padding:28px 24px;}
}

/* ---------- persistent dark theme ---------- */
:root[data-theme="dark"]{
  color-scheme:dark;
  --navy:#f5dfe6;
  --navy-2:#3c1d29;
  --navy-light:#ff7894;
  --gray-50:#171316;
  --gray-100:#211a1e;
  --gray-200:#49353e;
  --gray-400:#c8aeb7;
  --gray-600:#d9c7cd;
  --gray-800:#f7edf0;
  --shadow-soft:0 8px 30px rgba(0,0,0,.22);
  --shadow-card:0 4px 18px rgba(0,0,0,.28);
}
:root[data-theme="dark"] body{background:#171316;color:#f5e9ed;}
:root[data-theme="dark"] h1,
:root[data-theme="dark"] h2,
:root[data-theme="dark"] h3,
:root[data-theme="dark"] h4{color:#f5dfe6;}
:root[data-theme="dark"] .main-header{background:#21191e;box-shadow:0 4px 24px rgba(0,0,0,.35);}
:root[data-theme="dark"] .main-header .logo{color:#f5dfe6;}
:root[data-theme="dark"] .main-header .icon-btn{color:#f5dfe6;background:#39232c;}
:root[data-theme="dark"] .main-header .icon-btn:hover{background:#52303d;}
:root[data-theme="dark"] .top-row .search-box{background:#171316;border-color:#49353e;}
:root[data-theme="dark"] .top-row .search-box:focus-within{background:#211a1e;}
:root[data-theme="dark"] .top-row .search-box input{color:#f7edf0;}
:root[data-theme="dark"] .top-row .search-box input::placeholder{color:#c8aeb7;}
:root[data-theme="dark"] .hero{background-color:#21191e;}
:root[data-theme="dark"] .hero-visual .card-float{border-color:#30232a;}
:root[data-theme="dark"] .page-banner{background:linear-gradient(135deg,#21191e,#38232c);border-color:#49353e;color:#f5dfe6;}
:root[data-theme="dark"] .page-banner h1{color:#f5dfe6;}
:root[data-theme="dark"] .page-banner p{color:#d9c7cd;}
:root[data-theme="dark"] .soft-section,
:root[data-theme="dark"] .product-card,
:root[data-theme="dark"] .trust-bar,
:root[data-theme="dark"] .filters-panel,
:root[data-theme="dark"] .summary-card,
:root[data-theme="dark"] .admin-panel,
:root[data-theme="dark"] .auth-card,
:root[data-theme="dark"] .stat-card{background:#241b20;border-color:#49353e;color:#f5e9ed;}
:root[data-theme="dark"] .trust-bar{box-shadow:0 18px 50px rgba(0,0,0,.24);}
:root[data-theme="dark"] .trust-bar>div{border-color:#49353e;}
:root[data-theme="dark"] .trust-bar>div:hover{background:#30232a;}
:root[data-theme="dark"] .trust-bar strong,
:root[data-theme="dark"] .occ-label{color:#f5dfe6;}
:root[data-theme="dark"] .trust-bar small{color:#d9c7cd;}
:root[data-theme="dark"] .occ-circle{background:linear-gradient(145deg,#30232a,#472832);border-color:#65404d;}
:root[data-theme="dark"] .gift-cta{background:linear-gradient(120deg,#30232a,#472832);border-color:#8b4057;}
:root[data-theme="dark"] .variant-opt,
:root[data-theme="dark"] .qty-selector,
:root[data-theme="dark"] .price-range input,
:root[data-theme="dark"] .toolbar select,
:root[data-theme="dark"] .form-group input,
:root[data-theme="dark"] .form-group select,
:root[data-theme="dark"] .form-group textarea,
:root[data-theme="dark"] .newsletter input,
:root[data-theme="dark"] .search-box{background:#171316;color:#f7edf0;border-color:#49353e;}
:root[data-theme="dark"] input::placeholder,
:root[data-theme="dark"] textarea::placeholder{color:#b99da7;}
:root[data-theme="dark"] .newsletter{background:#211a1e;border-color:#49353e;}
:root[data-theme="dark"] .data-table th,
:root[data-theme="dark"] .data-table td,
:root[data-theme="dark"] .cart-table th,
:root[data-theme="dark"] .cart-table td{border-color:#49353e;}
:root[data-theme="dark"] .data-table tr:hover{background:#30232a;}
:root[data-theme="dark"] #site-footer{background:#21151b;}
:root[data-theme="dark"] .admin-body{background:#171316;}
.mobile-theme-toggle{display:none;}
:root[data-theme="dark"] .mobile-nav{background:#21191e;}
@media (max-width:900px){
  .main-header #themeToggle{display:none;}
  .mobile-nav .mobile-theme-toggle{display:flex;align-items:center;gap:12px;width:100%;padding:14px 0;
    border-bottom:1px solid rgba(255,255,255,.12);border-radius:0;color:#fff;text-align:left;font-size:19px;font-weight:600;}
}
@media (max-width:640px){
  .main-header .container.top-row{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding-left:16px;padding-right:16px;}
  .main-header .logo{gap:7px;font-size:21px;}
  .main-header .logo .mark{width:34px;height:34px;font-size:16px;}
  .main-header .logo .logo-image{width:46px;height:34px;}
  .header-actions{gap:8px;}
  .main-header .icon-btn{width:36px;height:36px;}
  .hamburger{width:24px;}
}

/* ---------- responsive homepage hero backgrounds ---------- */
.hero{
  display:flex;align-items:center;min-height:680px;padding:72px 0 96px;
  background-image:linear-gradient(90deg,rgba(35,10,17,.88) 0%,rgba(35,10,17,.62) 48%,rgba(35,10,17,.12) 100%),url("../../nef.png");
  background-position:center;background-size:cover;background-repeat:no-repeat;
}
.hero::before,.hero::after{display:none;}
.hero .container{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:24px;align-items:center;position:relative;z-index:2;width:100%;}
.hero .container>div:first-child{max-width:660px;}
.hero-visual{position:relative;width:100%;height:500px;}
.hero-visual .card-float{border:6px solid rgba(255,255,255,.88);box-shadow:0 18px 40px rgba(0,0,0,.28);}
.hero-visual .c1{width:56%;height:80%;top:0;right:4%;border-radius:180px 180px 24px 24px;}
.hero-visual .c2{width:44%;height:42%;bottom:0;left:0;border-radius:24px;}
.hero-visual .c3{width:30%;height:auto;aspect-ratio:1;bottom:2%;right:0;border-radius:50%;}
.hero-visual .badge-offer{z-index:4;}
.hero h1{color:#fff;}
.hero p.lead,.hero-stats span{color:#fff;}
.hero .btn-outline{color:#fff;border-color:rgba(255,255,255,.8);}
.hero .btn-outline:hover{background:#fff;color:#a10d2c;}
.hero-stats strong{color:#fff;}
@media (max-width:700px){
  .hero .container{grid-template-columns:minmax(0,1fr);gap:6px;}
  .hero{
    min-height:680px;padding:48px 0 84px;
    background-image:linear-gradient(180deg,rgba(35,10,17,.24) 0%,rgba(35,10,17,.62) 42%,rgba(35,10,17,.92) 100%),url("../../neg.png");
    background-position:center;background-size:cover;
  }
  .hero .container>div:first-child{max-width:540px;}
  .hero-visual{height:300px;max-width:480px;margin:0 auto;}
  .hero-visual .badge-offer{width:auto;height:auto;}
  .hero h1{font-size:clamp(34px,5vw,46px);}
}

/* Premium checkout and order preparation */
.checkout-page{background:#fff9f7;color:#34252a;--checkout-burgundy:#c21845;--checkout-deep:#941033;--checkout-blush:#fce7ef;--checkout-gold:#d4af75;--checkout-ink:#34252a;--checkout-muted:#7d6d71;--checkout-line:#f0e1e4;}
.checkout-hero{position:relative;overflow:hidden;padding:52px 0 40px;background:radial-gradient(ellipse at 85% -15%,rgba(255,255,255,.16),transparent 38%),linear-gradient(125deg,#941033,#aa1740 55%,#c21845);color:#fff;}
.checkout-hero::after{content:"✦";position:absolute;right:8%;top:8px;color:rgba(255,255,255,.1);font-size:190px;line-height:1;transform:rotate(12deg);pointer-events:none;}
.checkout-hero-inner{position:relative;z-index:1;}
.checkout-eyebrow{display:block;margin-bottom:8px;color:var(--checkout-gold);font-size:10px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;}
.checkout-hero h1{margin:0 0 14px;color:#fff;font:600 clamp(32px,4vw,44px)/1.15 "Playfair Display",Georgia,serif;letter-spacing:-.5px;}
.checkout-crumb{display:flex;gap:10px;align-items:center;color:rgba(255,255,255,.72);font-size:12px;}
.checkout-crumb a{color:rgba(255,255,255,.78);text-decoration:none;}.checkout-crumb a:hover{color:#fff;}.checkout-crumb strong{color:#fff;font-weight:600;}
.checkout-progress{display:flex;align-items:center;gap:11px;margin-top:32px;max-width:500px;color:rgba(255,255,255,.65);font-size:11px;font-weight:600;}
.checkout-progress>span{display:flex;align-items:center;gap:7px;white-space:nowrap;}.checkout-progress i{display:grid;width:21px;height:21px;place-items:center;border:1px solid rgba(255,255,255,.38);border-radius:50%;font-size:10px;font-style:normal;}
.checkout-progress .done,.checkout-progress .active{color:#fff;}.checkout-progress .done i{border-color:var(--checkout-gold);background:var(--checkout-gold);color:#5c2432;}.checkout-progress .active i{border-color:#fff;background:#fff;color:var(--checkout-deep);}
.checkout-progress>b{height:1px;flex:1;background:rgba(255,255,255,.26);}
.checkout-main{padding:42px 0 84px;}.checkout-grid{display:grid;grid-template-columns:minmax(0,1.48fr) minmax(300px,.82fr);gap:30px;align-items:start;}
.checkout-form{display:grid;gap:17px;min-width:0;}.checkout-card,.checkout-summary{border:1px solid var(--checkout-line);border-radius:18px;background:#fff;box-shadow:0 12px 34px rgba(93,36,53,.055);}
.checkout-card{padding:25px 28px 9px;}.checkout-section-heading{display:flex;align-items:flex-start;gap:14px;margin:0 0 23px;}
.checkout-step{display:grid;width:34px;height:34px;flex:0 0 34px;place-items:center;border:1px solid #f0d9e0;border-radius:50%;background:#fff8fa;color:var(--checkout-burgundy);font-size:10px;font-weight:700;letter-spacing:.4px;}
.checkout-section-heading h2,.summary-heading h2{margin:0;color:var(--checkout-ink);font:600 21px/1.25 "Playfair Display",Georgia,serif;}.checkout-section-heading p{margin:4px 0 0;color:var(--checkout-muted);font-size:12px;}
.checkout-form .form-group{margin-bottom:16px;}.checkout-form .form-group label{margin-bottom:7px;color:#49343b;font-size:12px;font-weight:650;}.checkout-form .form-group label em{color:var(--checkout-burgundy);font-style:normal;}.checkout-form .form-group label span{color:#95858a;font-size:11px;font-weight:400;}
.checkout-form .form-group input,.checkout-form .form-group select,.checkout-form .form-group textarea{min-height:48px;border:1px solid #e8dadd;border-radius:10px;background:#fff;color:#38282e;font:400 13px Inter,"DM Sans",sans-serif;box-shadow:0 1px 2px rgba(50,20,30,.025);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;}
.checkout-form .form-group textarea{min-height:92px;resize:vertical;padding-top:13px;}.checkout-form .form-group input::placeholder,.checkout-form .form-group textarea::placeholder{color:#b1a2a6;}
.checkout-form .form-group input:focus,.checkout-form .form-group select:focus,.checkout-form .form-group textarea:focus{border-color:var(--checkout-burgundy);outline:0;background:#fff;box-shadow:0 0 0 3px rgba(194,24,69,.1);}
.checkout-form .form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;}.checkout-form .form-group.invalid input,.checkout-form .form-group.invalid select,.checkout-form .form-group.invalid textarea{border-color:#c83e59;background:#fffafb;box-shadow:0 0 0 3px rgba(200,62,89,.08);}.checkout-form .form-error{margin-top:5px;color:#b02d49;font-size:11px;}.field-hint{display:block;margin-top:6px;color:#918186;font-size:10px;}
.country-select-wrap{position:relative;}.country-select-wrap select{appearance:none;padding-left:44px!important;padding-right:42px!important;cursor:pointer;}.country-select-wrap::after{position:absolute;right:17px;top:50%;color:#897078;content:"⌄";font-size:19px;transform:translateY(-58%);pointer-events:none;}.country-indicator{position:absolute;z-index:1;left:14px;top:50%;width:22px;color:var(--checkout-burgundy);font-size:17px;text-align:center;transform:translateY(-50%);pointer-events:none;}
.checkout-private-note{display:flex;align-items:center;gap:8px;margin:-4px 0 13px;color:#856d75;font-size:11px;}.checkout-private-note span{color:var(--checkout-gold);}
.checkout-payment-card{padding-bottom:23px;}.payment-assurance{display:flex;align-items:center;gap:13px;padding:16px;border:1px solid #f0e4e6;border-radius:12px;background:linear-gradient(110deg,#fffaf8,#fff);}.payment-assurance[hidden],.checkout-submit[hidden]{display:none!important;}.payment-lock{display:grid;width:36px;height:36px;flex:0 0 36px;place-items:center;border-radius:50%;background:var(--checkout-blush);color:var(--checkout-deep);font-size:20px;}.payment-assurance strong{color:#49343b;font-size:12px;}.payment-assurance p{margin:4px 0 0;color:#807176;font-size:10px;line-height:1.55;}.payment-wordmark{margin-left:auto;color:#21836b;font-size:9px;font-weight:800;letter-spacing:1px;}
.checkout-submit{display:flex;min-height:56px;align-items:center;justify-content:space-between;padding:0 21px;border:0;border-radius:11px;background:linear-gradient(110deg,#941033,#c21845);box-shadow:0 10px 22px rgba(148,16,51,.2);color:#fff;font-size:13px;font-weight:700;letter-spacing:.2px;transition:transform .2s ease,box-shadow .2s ease;}.checkout-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 28px rgba(148,16,51,.25);}.checkout-submit:focus-visible,.admin-order-view-button:focus-visible{outline:3px solid rgba(212,175,117,.55);outline-offset:3px;}.checkout-submit:disabled{cursor:wait;opacity:.75;}.checkout-form-message{margin:0;padding:12px 14px;border:1px solid #f1c8d0;border-radius:9px;background:#fff5f6;color:#a52b43;font-size:12px;}.checkout-terms{margin:-5px 0 0;color:#95858a;font-size:10px;text-align:center;}.checkout-terms a{color:var(--checkout-deep);text-decoration:underline;text-underline-offset:2px;}
.checkout-summary{position:sticky;top:105px;overflow:hidden;padding:25px 24px;}.summary-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;}.summary-heading h2{font-size:23px;}.summary-heading .checkout-eyebrow{margin-bottom:5px;font-size:9px;}.summary-gift-mark{color:var(--checkout-gold);font-size:32px;}
.checkout-summary-items{max-height:380px;overflow:auto;border-top:1px solid #f2e7e9;border-bottom:1px solid #f2e7e9;}.checkout-summary-item{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:11px;align-items:center;padding:14px 0;border-bottom:1px solid #f5edef;}.checkout-summary-item:last-child{border-bottom:0;}.checkout-item-thumb{display:grid;width:42px;height:48px;place-items:center;border:1px solid #f0dfe3;border-radius:9px;background:linear-gradient(145deg,#fff6f7,#fce7ef);color:var(--checkout-deep);font:600 18px "Playfair Display",Georgia,serif;}.checkout-item-copy{min-width:0;}.checkout-item-copy strong{display:block;overflow:hidden;color:#443239;font-size:11px;text-overflow:ellipsis;white-space:nowrap;}.checkout-item-copy small{display:block;margin-top:3px;color:#8d727a;font-size:9px;}.checkout-item-copy>span{display:block;margin-top:4px;color:#9a8a8e;font-size:9px;}.checkout-item-price{color:#4f343c;font-size:10px;white-space:nowrap;}
.summary-totals{padding-top:12px;}.summary-totals .summary-row{align-items:center;padding:8px 0;color:#796970;font-size:11px;}.summary-totals .summary-row>span:last-child{color:#49353c;font-weight:600;}.summary-totals .summary-row .promo-badge{color:#33836e;}.summary-totals .summary-row.total{margin-top:9px;padding-top:15px;border-top:1px solid #eadcdf;color:#3f2931;font-size:14px;font-weight:700;}.summary-totals .summary-row.total>span{color:#3f2931;}.summary-totals .summary-row.total>span:last-child{color:var(--checkout-deep);font-size:19px;}.summary-totals .summary-row.total small{margin-left:4px;color:#a39297;font-size:8px;font-weight:600;letter-spacing:.7px;}.shipping-note{margin:0;color:#99898e;font-size:9px;line-height:1.5;text-align:right;}.summary-reassurance{display:flex;align-items:center;gap:9px;margin-top:18px;padding:11px;border-radius:9px;background:#fff8f5;color:#897078;}.summary-reassurance span{color:#c39a5e;font-size:18px;}.summary-reassurance p{margin:0;font-size:10px;}
.checkout-empty{padding:76px 20px 90px;}.checkout-empty h2{color:var(--checkout-ink);font:600 30px "Playfair Display",Georgia,serif;}.checkout-empty p{color:var(--checkout-muted);}.checkout-empty-mark{color:var(--checkout-gold);font-size:40px;}
.admin-orders-table-wrap{overflow-x:auto;}.admin-order-view-button{padding:7px 10px;border:1px solid #e7d3d9;border-radius:7px;background:#fff;color:#941033;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;}.admin-order-view-button:hover{border-color:#c21845;background:#fff7f9;}.admin-order-dialog{width:min(860px,calc(100vw - 26px));max-height:min(88vh,900px);padding:0;border:1px solid #ead9dd;border-radius:16px;background:#fff9f7;color:#34252a;box-shadow:0 24px 90px rgba(37,13,22,.34);}.admin-order-dialog::backdrop{background:rgba(34,12,20,.58);backdrop-filter:blur(3px);}.admin-order-dialog-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:20px 25px;border-bottom:1px solid #f0e1e4;background:#fff;}.admin-order-dialog-head h2{margin:0;color:#34252a;font:600 23px "Playfair Display",Georgia,serif;}.admin-order-dialog-close{width:34px;height:34px;border:1px solid #ead9dd;border-radius:50%;background:#fff;color:#941033;font-size:23px;line-height:1;cursor:pointer;}.admin-order-details{padding:20px 24px 25px;}.admin-order-detail-banner{display:flex;align-items:center;gap:18px;justify-content:space-between;margin-bottom:17px;padding:13px 15px;border:1px solid #f0e0e4;border-radius:10px;background:#fff;}.admin-order-detail-banner>div{display:grid;gap:4px;}.admin-order-detail-banner>div span{color:#89777e;font-size:9px;text-transform:uppercase;letter-spacing:.6px;}.admin-order-detail-banner>div strong{color:#4b333b;font-size:11px;}.admin-order-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}.admin-order-detail-section{min-width:0;padding:16px;border:1px solid #efe1e4;border-radius:11px;background:#fff;}.admin-order-detail-section h3{margin:0 0 12px;color:#941033;font:600 15px "Playfair Display",Georgia,serif;}.admin-order-detail-section dl{display:grid;grid-template-columns:minmax(100px,.75fr) minmax(0,1.25fr);gap:8px 10px;margin:0;font-size:10px;}.admin-order-detail-section dt{color:#8c7c81;}.admin-order-detail-section dd{margin:0;color:#45343a;font-weight:600;overflow-wrap:anywhere;}.admin-order-detail-section address{display:grid;gap:3px;color:#49373d;font-size:11px;font-style:normal;line-height:1.5;}.admin-order-detail-section p{color:#73646a;font-size:10px;line-height:1.55;}.admin-order-detail-section p strong{color:#4c373e;}.admin-order-prep-list{display:grid;gap:10px;margin:0;padding:0;list-style:none;}.admin-order-prep-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding-bottom:9px;border-bottom:1px solid #f3e9eb;font-size:10px;}.admin-order-prep-list li:last-child{padding-bottom:0;border-bottom:0;}.admin-order-prep-list li div{display:grid;gap:4px;}.admin-order-prep-list li small{color:#8f7d83;font-size:9px;}.admin-order-grand-total{padding-top:7px;border-top:1px solid #eadcdf;color:#941033!important;font-size:12px;font-weight:800!important;}
@media (max-width:900px){.checkout-grid{grid-template-columns:minmax(0,1fr) minmax(280px,.78fr);gap:18px;}.checkout-card{padding-right:21px;padding-left:21px;}.checkout-summary{padding:21px 18px;}}
@media (max-width:700px){.checkout-hero{padding:37px 0 28px;}.checkout-hero::after{right:-20px;top:18px;font-size:135px;}.checkout-progress{gap:7px;margin-top:24px;font-size:9px;}.checkout-progress>span{gap:5px;}.checkout-progress i{width:19px;height:19px;}.checkout-main{padding:23px 0 55px;}.checkout-grid{grid-template-columns:minmax(0,1fr);gap:16px;}.checkout-form{gap:13px;}.checkout-card{padding:20px 17px 5px;border-radius:14px;}.checkout-section-heading{gap:11px;margin-bottom:18px;}.checkout-section-heading h2{font-size:19px;}.checkout-form .form-row{grid-template-columns:minmax(0,1fr);gap:0;}.checkout-form .form-group{margin-bottom:14px;}.checkout-summary{position:static;top:auto;grid-row:1;padding:20px 17px;border-radius:14px;}.checkout-summary-items{max-height:none;}.checkout-summary-item{grid-template-columns:40px minmax(0,1fr) auto;}.checkout-submit{min-height:54px;}.admin-order-dialog{max-height:92vh;}.admin-order-dialog-head{padding:17px;}.admin-order-details{padding:14px;}.admin-order-detail-grid{grid-template-columns:minmax(0,1fr);}.admin-order-detail-banner{flex-wrap:wrap;justify-content:flex-start;}.admin-order-detail-banner>.badge{margin-left:auto;}}
@media (max-width:390px){.checkout-progress{gap:4px;font-size:8px;}.checkout-progress i{width:17px;height:17px;font-size:9px;}.checkout-card{padding-right:14px;padding-left:14px;}.checkout-summary{padding-right:14px;padding-left:14px;}.payment-wordmark{display:none;}}

/* Dedicated, protected admin authentication pages */
.admin-auth-page{min-height:100vh;margin:0;color:#19213c;background:linear-gradient(135deg,#fff8f7 0%,#fff3f8 52%,#f6f3ff 100%);font-family:'DM Sans',Inter,Arial,sans-serif;}
.admin-auth-main{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px 28px;position:relative;isolation:isolate;overflow:hidden;}
.admin-auth-main::before,.admin-auth-main::after{content:"";position:absolute;z-index:-1;border-radius:50%;pointer-events:none;}
.admin-auth-main::before{width:390px;height:390px;left:-210px;top:7%;background:radial-gradient(circle,#f8dce7 0,rgba(248,220,231,0) 72%);}
.admin-auth-main::after{width:420px;height:420px;right:-250px;bottom:4%;background:radial-gradient(circle,#e9e3fa 0,rgba(233,227,250,0) 72%);}
.admin-auth-card{width:min(100%,470px);padding:39px 44px 36px;border:1px solid rgba(135,79,104,.13);border-radius:22px;background:rgba(255,255,255,.96);box-shadow:0 24px 70px rgba(76,35,63,.12),0 3px 12px rgba(76,35,63,.04);position:relative;overflow:hidden;}
.admin-auth-card-compact{padding-top:31px;padding-bottom:29px;}
.admin-auth-brand{display:flex;align-items:center;justify-content:center;gap:12px;color:inherit;text-decoration:none;}
.admin-auth-brand-mark{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:#fff0f5;color:#b5164a;}
.admin-auth-brand-mark svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.admin-auth-brand-copy{display:grid;gap:1px;}
.admin-auth-brand-copy strong{font-family:'Playfair Display',Georgia,serif;font-size:23px;line-height:1.15;letter-spacing:-.3px;color:#941033;}
.admin-auth-brand-copy small{font-size:11px;letter-spacing:.08em;color:#73768a;}
.admin-auth-rule{height:1px;margin:25px 0 24px;background:linear-gradient(90deg,transparent,#eadde4 18%,#eadde4 82%,transparent);}
.admin-auth-kicker{display:block;text-align:center;color:#b5164a;font-size:10px;font-weight:700;letter-spacing:.19em;margin-bottom:8px;}
.admin-auth-card h1{margin:0;text-align:center;color:#18213c;font-family:'Playfair Display',Georgia,serif;font-size:34px;line-height:1.18;letter-spacing:-.5px;}

/* First-visit customer welcome screen */
.welcome-screen{position:relative;isolation:isolate;width:100%;height:100vh;height:100svh;min-height:0;overflow:hidden;background:#38101f;color:#fff;}
.welcome-background,.welcome-shade{position:absolute;inset:0;z-index:-2;}
.welcome-background img{width:100%;height:100%;object-fit:cover;object-position:center 54%;}
.welcome-background{animation:welcome-scene-drift 28s ease-in-out infinite alternate;}
.welcome-shade{z-index:-1;background:linear-gradient(180deg,rgba(31,5,23,.38) 0%,rgba(47,8,30,.25) 43%,rgba(30,5,20,.63) 100%),radial-gradient(ellipse at 50% 43%,rgba(22,4,18,.26) 0%,rgba(30,5,20,.08) 60%,rgba(30,5,20,.26) 100%);}
.welcome-floaters{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;}
.welcome-floaters i{position:absolute;display:block;bottom:-8vh;left:var(--left);opacity:0;animation:welcome-rise var(--duration) linear var(--delay) infinite;}
.welcome-petal{width:11px;height:17px;border-radius:85% 10% 85% 10%;background:linear-gradient(145deg,#ffd1df 2%,#ff6f9e 58%,#c21845 100%);box-shadow:0 0 15px rgba(255,111,158,.46);}
.welcome-glint{width:5px;height:5px;border-radius:50%;background:#ffe8b5;box-shadow:0 0 8px 3px rgba(255,225,172,.68),0 0 22px 5px rgba(255,119,158,.4);}
.welcome-floaters i:nth-child(1){--left:5%;--duration:17s;--delay:-12s;--drift:44px;}
.welcome-floaters i:nth-child(2){--left:12%;--duration:13s;--delay:-4s;--drift:-28px;}
.welcome-floaters i:nth-child(3){--left:21%;--duration:20s;--delay:-16s;--drift:30px;}
.welcome-floaters i:nth-child(4){--left:29%;--duration:15s;--delay:-8s;--drift:-42px;}
.welcome-floaters i:nth-child(5){--left:38%;--duration:18s;--delay:-2s;--drift:36px;}
.welcome-floaters i:nth-child(6){--left:45%;--duration:12s;--delay:-10s;--drift:-30px;}
.welcome-floaters i:nth-child(7){--left:54%;--duration:19s;--delay:-14s;--drift:48px;}
.welcome-floaters i:nth-child(8){--left:61%;--duration:14s;--delay:-6s;--drift:-35px;}
.welcome-floaters i:nth-child(9){--left:69%;--duration:21s;--delay:-18s;--drift:34px;}
.welcome-floaters i:nth-child(10){--left:76%;--duration:16s;--delay:-3s;--drift:-44px;}
.welcome-floaters i:nth-child(11){--left:83%;--duration:13s;--delay:-9s;--drift:29px;}
.welcome-floaters i:nth-child(12){--left:91%;--duration:20s;--delay:-15s;--drift:-36px;}
.welcome-floaters i:nth-child(13){--left:97%;--duration:15s;--delay:-5s;--drift:40px;}
.welcome-floaters i:nth-child(14){--left:33%;--duration:22s;--delay:-19s;--drift:38px;}
.welcome-floaters i:nth-child(15){--left:73%;--duration:17s;--delay:-11s;--drift:-32px;}
.welcome-floaters i:nth-child(16){--left:16%;--duration:19s;--delay:-1s;--drift:42px;}
.welcome-content{position:relative;z-index:1;width:min(100%,680px);height:100%;margin:0 auto;padding:max(30px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;text-align:center;}
.welcome-brand{grid-row:1;display:flex;align-items:center;justify-content:center;gap:11px;margin:0 auto;color:#fff;font-family:'Playfair Display',Georgia,serif;font-size:clamp(29px,5vw,36px);font-weight:700;letter-spacing:.01em;text-shadow:0 2px 16px rgba(35,4,20,.58);}
.welcome-gift-mark{width:46px;height:46px;flex:none;color:#ff6f9e;filter:drop-shadow(0 2px 9px rgba(255,79,139,.45));}
.welcome-tagline{grid-row:2;margin:3px auto 0;color:rgba(255,235,242,.95);font-size:12px;font-weight:500;letter-spacing:.055em;text-shadow:0 2px 12px rgba(35,4,20,.58);}
.welcome-message{grid-row:3;align-self:center;justify-self:center;width:100%;margin:0;padding:12px 0;animation:welcome-content-float 7s ease-in-out infinite;}
.welcome-message h1{margin:0;color:#fff;font-family:'Playfair Display',Georgia,serif;font-size:clamp(40px,8.4vw,64px);font-weight:700;line-height:1.08;letter-spacing:-.035em;text-shadow:0 4px 24px rgba(35,4,20,.44);}
.welcome-message h1 span{color:#ff6f9e;}
.welcome-heart{display:block;margin:15px 0 14px;color:#fff;font-size:22px;line-height:1;text-shadow:0 2px 16px rgba(255,103,151,.55);animation:welcome-heartbeat 2.8s ease-in-out infinite;}
.welcome-description{max-width:360px;margin:0 auto;color:rgba(255,247,248,.95);font-size:clamp(15px,2.3vw,17px);line-height:1.6;text-shadow:0 2px 12px rgba(35,4,20,.5);}
.welcome-cta{grid-row:4;align-self:end;width:min(100%,220px);min-height:50px;margin:0 auto 24px;padding:0 24px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:linear-gradient(135deg,#fa397a,#e71961);box-shadow:0 9px 24px rgba(76,6,36,.42),inset 0 1px rgba(255,255,255,.3);color:#fff;font-size:15px;font-weight:700;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;animation:welcome-button-float 3.8s ease-in-out infinite;}
.welcome-cta span{font-size:20px;line-height:1;}
.welcome-cta:hover{transform:translateY(-2px);filter:brightness(1.06);box-shadow:0 13px 30px rgba(76,6,36,.5),inset 0 1px rgba(255,255,255,.3);}
.welcome-cta:focus-visible{outline:3px solid #ffd1df;outline-offset:5px;}
.welcome-footer{grid-row:5;align-self:end;padding-top:12px;color:rgba(255,243,247,.83);font-size:10px;font-weight:500;letter-spacing:.13em;text-shadow:0 2px 12px rgba(35,7,22,.55);animation:welcome-footer-glow 5s ease-in-out infinite;}
.welcome-footer span{padding:0 5px;color:#ff9ab6;}
@keyframes welcome-rise{0%{transform:translate3d(0,12vh,0) rotate(0deg);opacity:0}12%{opacity:.82}80%{opacity:.6}100%{transform:translate3d(var(--drift),-112vh,0) rotate(620deg);opacity:0}}
@keyframes welcome-scene-drift{0%{transform:scale(1) translate3d(0,0,0)}100%{transform:scale(1.075) translate3d(-1.2%,.6%,0)}}
@keyframes welcome-content-float{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-5px,0)}}
@keyframes welcome-heartbeat{0%,100%{transform:scale(1);filter:drop-shadow(0 0 0 rgba(255,111,158,0))}48%{transform:scale(1.18);filter:drop-shadow(0 0 8px rgba(255,111,158,.7))}60%{transform:scale(1.08)}}
@keyframes welcome-button-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes welcome-footer-glow{0%,100%{opacity:.76}50%{opacity:1}}
@media(min-width:701px){
  .welcome-content{width:min(100%,760px);}
  .welcome-background img{object-position:center 58%;}
  .welcome-message h1{font-size:clamp(58px,6.2vw,82px);}
  .welcome-description{max-width:440px;font-size:18px;}
  .welcome-cta{width:238px;min-height:54px;margin-bottom:30px;font-size:16px;}
  .welcome-footer{font-size:11px;}
}
@media(max-width:700px){
  .welcome-background img{object-position:center center;}
  .welcome-shade{background:linear-gradient(180deg,rgba(28,5,24,.48) 0%,rgba(39,5,26,.23) 38%,rgba(34,5,23,.5) 70%,rgba(29,5,20,.68) 100%),radial-gradient(ellipse at 50% 45%,rgba(25,4,20,.12),rgba(30,5,20,.24));}
  .welcome-content{width:100%;padding:max(30px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));}
  .welcome-brand{gap:9px;font-size:29px;}
  .welcome-gift-mark{width:42px;height:42px;}
  .welcome-tagline{margin-top:4px;font-size:11px;}
  .welcome-message h1{font-size:clamp(34px,9.4vw,52px);line-height:1.11;letter-spacing:-.04em;}
  .welcome-heart{margin:13px 0 12px;font-size:20px;}
  .welcome-description{max-width:290px;font-size:14px;line-height:1.55;}
  .welcome-cta{width:min(100%,202px);min-height:46px;margin-bottom:20px;font-size:14px;}
  .welcome-footer{font-size:9px;letter-spacing:.12em;}
}
@media(max-height:650px){
  .welcome-message{padding:4px 0;}
  .welcome-content{padding-top:max(20px,env(safe-area-inset-top));}
  .welcome-brand{gap:7px;font-size:25px;}
  .welcome-gift-mark{width:35px;height:35px;}
  .welcome-tagline{margin-top:2px;font-size:9px;}
  .welcome-message h1{font-size:clamp(32px,7.8vh,48px);}
  .welcome-heart{margin:8px 0;font-size:18px;}
  .welcome-cta{min-height:42px;margin-bottom:12px;}
  .welcome-description{font-size:13px;}
}
@media(prefers-reduced-motion:reduce){.welcome-background,.welcome-floaters i,.welcome-message,.welcome-heart,.welcome-cta,.welcome-footer{animation:none!important;transition:none}}
.admin-auth-intro{max-width:340px;margin:10px auto 20px;text-align:center;color:#70768b;font-size:14px;line-height:1.6;}
.admin-auth-notice{margin:0 0 20px;padding:10px 12px;border:1px solid #f3e3ea;border-radius:10px;background:#fff9fb;color:#776575;font-size:11.5px;line-height:1.5;text-align:center;}
.admin-auth-message{margin:0 0 16px;padding:11px 13px;border:1px solid #f1c7d2;border-radius:10px;background:#fff4f5;color:#8d1839;font-size:13px;line-height:1.45;}
.admin-auth-message[hidden]{display:none;}
.admin-auth-form{display:grid;gap:16px;}
.admin-auth-field{min-width:0;}
.admin-auth-field label{display:block;margin:0 0 7px;color:#29314b;font-size:12.5px;font-weight:700;}
.admin-auth-input{height:49px;display:flex;align-items:center;gap:10px;padding:0 13px;border:1px solid #e4e4eb;border-radius:10px;background:#fff;transition:border-color .18s,box-shadow .18s,background .18s;}
.admin-auth-input:focus-within{border-color:#c21858;box-shadow:0 0 0 3px rgba(194,24,69,.1);background:#fffefe;}
.admin-auth-input>svg{width:17px;height:17px;flex:none;fill:none;stroke:#a5a2b2;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.admin-auth-input input{width:100%;min-width:0;height:100%;padding:0;border:0;outline:0;background:transparent;color:#222840;font:500 13px 'DM Sans',Inter,Arial,sans-serif;}
.admin-auth-input input::placeholder{color:#a5a6b2;}
.admin-auth-eye{width:32px;height:34px;flex:none;display:grid;place-items:center;border:0;border-radius:7px;background:transparent;color:#8e8291;cursor:pointer;}
.admin-auth-eye:hover{background:#fff0f5;color:#a80e43;}
.admin-auth-eye:focus-visible,.admin-auth-primary:focus-visible,.admin-auth-secondary:focus-visible{outline:3px solid rgba(194,24,69,.28);outline-offset:2px;}
.admin-auth-eye svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.admin-auth-primary{min-height:49px;margin-top:4px;padding:0 18px;display:flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:10px;background:linear-gradient(105deg,#c21845,#a70f43);box-shadow:0 8px 18px rgba(166,15,67,.19);color:#fff;font:700 14px 'DM Sans',Inter,Arial,sans-serif;cursor:pointer;transition:transform .18s,box-shadow .18s,filter .18s;}
.admin-auth-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 11px 22px rgba(166,15,67,.24);filter:saturate(1.08);}
.admin-auth-primary:disabled{opacity:.68;cursor:wait;}
.admin-auth-primary svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.admin-auth-separator{display:flex;align-items:center;gap:12px;margin:22px 0 15px;color:#828395;}
.admin-auth-separator span{height:1px;flex:1;background:#ece8ed;}
.admin-auth-separator small{font-size:11px;white-space:nowrap;}
.admin-auth-secondary{min-height:45px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #c21858;border-radius:10px;color:#ad154a;text-decoration:none;font-size:13px;font-weight:700;transition:background .18s,color .18s;}
.admin-auth-secondary:hover{background:#fff2f6;color:#8f1038;}
.admin-auth-signin{margin:18px 0 0;text-align:center;color:#74788b;font-size:12.5px;}
.admin-auth-signin a{color:#ad154a;font-weight:700;text-decoration:none;}
.admin-auth-signin a:hover{text-decoration:underline;}
.admin-auth-requirements{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin:-3px 0 0;padding:11px 13px;border-radius:9px;background:#fff8fa;list-style:none;color:#77778a;font-size:10.5px;}
.admin-auth-requirements li{position:relative;padding-left:15px;line-height:1.4;}
.admin-auth-requirements li::before{content:"○";position:absolute;left:0;color:#b8a5b0;}
.admin-auth-requirements li.is-met{color:#507967;}
.admin-auth-requirements li.is-met::before{content:"✓";color:#4c9472;font-weight:700;}
.admin-auth-footer{width:min(100%,470px);min-height:64px;margin-top:18px;display:flex;align-items:center;justify-content:center;gap:10px;position:relative;color:#982348;font-size:10px;font-weight:700;letter-spacing:.16em;}
.admin-auth-footer::before{content:"";position:absolute;z-index:-1;inset:0 -34px;border-radius:50% 50% 0 0 / 38% 38% 0 0;background:linear-gradient(180deg,rgba(248,220,231,.45),rgba(255,240,246,.15));}
.admin-auth-footer-gift{width:21px;height:21px;display:grid;place-items:center;border:1px solid rgba(194,24,69,.3);border-radius:6px;color:#b5164a;font-size:12px;}
.admin-auth-footer-gift svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.admin-auth-footer i{padding:0 3px;color:#d4af75;font-style:normal;}
@media(max-width:540px){.admin-auth-main{justify-content:flex-start;padding:26px 14px 18px;}.admin-auth-card,.admin-auth-card-compact{padding:29px 22px 25px;border-radius:18px;}.admin-auth-rule{margin:20px 0;}.admin-auth-card h1{font-size:30px;}.admin-auth-intro{font-size:13px;margin-bottom:17px;}.admin-auth-form{gap:14px;}.admin-auth-footer{margin-top:14px;min-height:58px;font-size:9px;letter-spacing:.12em;}.admin-auth-footer::before{inset:0 -14px;}}
@media(max-width:360px){.admin-auth-card,.admin-auth-card-compact{padding-right:17px;padding-left:17px;}.admin-auth-requirements{grid-template-columns:1fr;}}
@media(prefers-reduced-motion:reduce){.admin-auth-input,.admin-auth-primary,.admin-auth-secondary{transition:none;}}

/* Customer login and account creation */
.customer-auth-page{background:#fff5f7;color:#4a1826;}
.customer-auth-shell{max-width:1440px;margin:0 auto;padding:30px clamp(14px,3vw,42px) 48px;}
.customer-auth-split{min-height:680px;display:grid;grid-template-columns:minmax(0,1.04fr) minmax(400px,.96fr);overflow:hidden;border:1px solid rgba(161,13,44,.12);border-radius:24px;background:#fff;box-shadow:0 24px 75px rgba(161,13,44,.13);}
.customer-auth-visual{position:relative;isolation:isolate;display:flex;min-width:0;overflow:hidden;background:radial-gradient(ellipse at 50% 49%,rgba(255,255,255,.98),rgba(255,245,247,.84) 52%,rgba(255,214,222,.8)),linear-gradient(145deg,#fff,#ffebef);}
.customer-auth-visual::before,.customer-auth-visual::after{content:"";position:absolute;z-index:-1;border:1px solid rgba(200,16,46,.09);border-radius:50%;pointer-events:none;}
.customer-auth-visual::before{width:450px;height:450px;left:-245px;top:-200px;box-shadow:0 0 0 35px rgba(225,29,72,.025),0 0 0 74px rgba(225,29,72,.02);}
.customer-auth-visual::after{width:310px;height:310px;right:-190px;bottom:-150px;background:rgba(255,122,147,.08);}
.customer-auth-visual-inner{width:100%;max-width:660px;min-height:680px;margin:0 auto;padding:34px clamp(26px,4.5vw,64px) 27px;display:flex;flex-direction:column;position:relative;}
.customer-auth-brand{display:inline-flex;align-items:center;gap:12px;align-self:flex-start;color:inherit;text-decoration:none;}
.customer-auth-brand img{width:54px;height:54px;object-fit:contain;border-radius:50%;background:#fff;box-shadow:0 3px 12px rgba(161,13,44,.1);}
.customer-auth-brand span{display:grid;gap:1px;}
.customer-auth-brand strong{font:700 24px/1.1 'Playfair Display',Georgia,serif;color:#a10d2c;}
.customer-auth-brand small{color:#8a4a58;font-size:10px;letter-spacing:.035em;}
.customer-auth-copy{position:relative;z-index:1;margin-top:40px;max-width:440px;}
.customer-auth-eyebrow,.customer-auth-form-kicker{color:#b3122f;font-size:9px;font-weight:800;letter-spacing:.17em;}
.customer-auth-copy h1{margin:8px 0 10px;color:#4a1826;font:700 clamp(36px,4vw,50px)/1.12 'Playfair Display',Georgia,serif;letter-spacing:-.6px;}
.customer-auth-copy h1 span{color:#e11d48;}
.customer-auth-page .customer-auth-copy h1{color:#4a1826;}
.customer-auth-page .customer-auth-form-card h2{color:#4a1826;}
.customer-auth-copy p{max-width:390px;margin:0;color:#8a4a58;font-size:14px;line-height:1.7;}
.customer-auth-illustration{width:min(100%,590px);height:auto;max-height:390px;object-fit:contain;align-self:center;margin:auto 0 0;filter:drop-shadow(0 17px 14px rgba(161,13,44,.09));}
.customer-auth-benefits{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin-top:6px;}
.customer-auth-benefits span{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid rgba(200,16,46,.1);border-radius:999px;background:rgba(255,255,255,.72);color:#8a4a58;font-size:10px;font-weight:650;}
.customer-auth-benefits i{width:15px;height:15px;display:grid;place-items:center;border-radius:50%;background:#e11d48;color:#fff;font-size:9px;font-style:normal;}
.customer-auth-form-side{display:grid;place-items:center;min-width:0;padding:42px clamp(25px,5vw,74px);background:linear-gradient(145deg,#fff 25%,#fffafb 100%);}
.customer-auth-form-card{width:100%;max-width:430px;}
.customer-auth-form-kicker{display:block;margin-bottom:9px;}
.customer-auth-form-card h2{margin:0;color:#4a1826;font:700 clamp(27px,3vw,34px)/1.2 'Playfair Display',Georgia,serif;letter-spacing:-.3px;}
.customer-auth-form-intro{margin:8px 0 27px;color:#8a4a58;font-size:13px;}
.customer-auth-error{margin:0 0 16px;padding:11px 13px;border:1px solid #f0b9c5;border-radius:9px;background:#fff4f6;color:#9e1733;font-size:12px;line-height:1.5;}
.customer-auth-form{display:grid;gap:17px;}
.customer-auth-form .form-group{min-width:0;margin:0;}
.customer-auth-form .form-group label{display:block;margin:0 0 7px;color:#4a1826;font-size:12px;font-weight:700;}
.customer-auth-form .form-group label span{color:#9a7b83;font-size:10px;font-weight:500;}
.customer-auth-input{height:49px;display:flex;align-items:center;gap:10px;padding:0 13px;border:1px solid #f0cdd5;border-radius:9px;background:#fff;transition:border-color .18s,box-shadow .18s;}
.customer-auth-input:focus-within{border-color:#e11d48;box-shadow:0 0 0 3px rgba(225,29,72,.11);}
.customer-auth-input>svg{width:17px;height:17px;flex:none;fill:none;stroke:#b77988;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.customer-auth-input input{width:100%;min-width:0;height:100%;padding:0;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;color:#4a1826;font:500 13px Inter,Arial,sans-serif;}
.customer-auth-input input::placeholder{color:#b4979f;}
.customer-auth-toggle{width:32px;height:34px;display:grid;flex:none;place-items:center;border:0;border-radius:7px;background:transparent;color:#8a4a58;cursor:pointer;}
.customer-auth-toggle:hover{background:#fff0f3;color:#a10d2c;}
.customer-auth-toggle:focus-visible,.customer-auth-submit:focus-visible,.customer-auth-address summary:focus-visible{outline:3px solid rgba(225,29,72,.28);outline-offset:2px;}
.customer-auth-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.customer-auth-submit{min-height:50px;margin-top:3px;display:flex;align-items:center;justify-content:center;gap:12px;border:0;border-radius:9px;font-size:14px;box-shadow:0 9px 20px rgba(161,13,44,.17);}
.customer-auth-submit span{font-size:19px;line-height:1;transition:transform .18s;}
.customer-auth-submit:hover span{transform:translateX(3px);}
.customer-auth-switch{margin:22px 0 0;text-align:center;color:#8a4a58;font-size:12px;}
.customer-auth-switch a{color:#b3122f;font-weight:750;text-decoration:none;}
.customer-auth-switch a:hover{text-decoration:underline;text-underline-offset:3px;}
.customer-auth-security{display:flex;align-items:center;justify-content:center;gap:7px;margin:25px 0 0;padding-top:16px;border-top:1px solid #f7e6ea;color:#9a7b83;font-size:10px;text-align:center;}
.customer-auth-security svg{width:15px;height:15px;fill:none;stroke:#b3122f;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
@media(max-width:920px){.customer-auth-shell{padding:20px 16px 35px;}.customer-auth-split{grid-template-columns:minmax(0,.95fr) minmax(360px,1.05fr);}.customer-auth-visual-inner{padding-right:28px;padding-left:28px;}.customer-auth-form-side{padding-right:30px;padding-left:30px;}}
@media(max-width:740px){.customer-auth-shell{padding:15px 12px 28px;}.customer-auth-split{grid-template-columns:minmax(0,1fr);border-radius:18px;}.customer-auth-visual-inner{min-height:0;padding:23px 24px 17px;}.customer-auth-brand img{width:46px;height:46px;}.customer-auth-copy{margin-top:24px;}.customer-auth-copy h1{font-size:37px;}.customer-auth-copy p{max-width:460px;font-size:13px;}.customer-auth-illustration{width:min(90%,440px);max-height:260px;margin-top:0;}.customer-auth-benefits{margin-top:8px;}.customer-auth-form-side{padding:34px 24px 35px;}.customer-auth-form-card{max-width:480px;}}
@media(max-width:430px){.customer-auth-shell{padding:10px 9px 22px;}.customer-auth-visual-inner{padding:20px 18px 15px;}.customer-auth-copy{margin-top:20px;}.customer-auth-copy h1{font-size:33px;}.customer-auth-copy p{font-size:12px;}.customer-auth-illustration{width:100%;max-height:225px;}.customer-auth-benefits{gap:6px;}.customer-auth-benefits span{padding:6px 8px;font-size:9px;}.customer-auth-form-side{padding:29px 19px 30px;}.customer-auth-form-card h2{font-size:27px;}.customer-auth-form-intro{margin-bottom:21px;}}
@media(prefers-reduced-motion:reduce){.customer-auth-input,.customer-auth-submit span{transition:none;}}
.customer-auth-reference-panel{padding:0;background:#a10d2c;}
.customer-auth-reference{display:block;width:100%;height:100%;min-height:100%;object-fit:cover;object-position:center;}
@media(max-width:740px){.customer-auth-reference-panel{aspect-ratio:4/3;min-height:0;}.customer-auth-reference{height:100%;min-height:0;}}
.checkout-item-thumb{overflow:hidden;}.checkout-item-thumb img{width:100%;height:100%;object-fit:cover;}
.whatsapp-fab{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:1100;width:58px;height:58px;display:grid;place-items:center;border:2px solid rgba(255,255,255,.9);border-radius:50%;background:#25d366;color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.24);transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;}
.whatsapp-fab svg{width:31px;height:31px;}
.whatsapp-fab:hover{transform:translateY(-3px) scale(1.04);background:#20bd5a;box-shadow:0 12px 28px rgba(0,0,0,.3);}
.whatsapp-fab:focus-visible{outline:3px solid #fff;outline-offset:4px;}
@media(max-width:600px){.whatsapp-fab{right:max(14px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));width:54px;height:54px}.whatsapp-fab svg{width:29px;height:29px}}
@media(prefers-reduced-motion:reduce){.whatsapp-fab{transition:none}}
