/* =========================================================
   B2B Gifts — shared stylesheet
   Brand: maroon/pink accent, white, soft pink section backgrounds
   ========================================================= */

:root{
  --brand: #9e0959;
  --brand-light: #c81c74;
  --brand-dark: #000000;
  --brand-gradient: linear-gradient(135deg, #b3106a 0%, #7a0846 100%);
  --text: #5f5f5f;
  --heading: #262626;
  --bg-soft: #f8f1f1;
  --bg-soft-2: #f5f2ea;
  --white: #ffffff;
  --radius: 15px;
  --radius-sm: 8px;
  --container: 1280px;
  --gap: 25px;
  --shadow-sm: 0 2px 10px rgba(20,10,15,.05);
  --shadow-md: 0 10px 30px rgba(20,10,15,.08);
  --shadow-lg: 0 25px 50px rgba(20,10,15,.14);
  --ease: cubic-bezier(.22,1,.36,1);
}

*{ box-sizing:border-box; margin:0; padding:0; }

html{ scroll-behavior:smooth; }

body{
  font-family:"Manrope", Arial, sans-serif;
  font-size:15px;
  color:var(--text);
  line-height:1.7;
  background:var(--white);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

h1,h2,h3,h4,h5,h6{
  font-family:"Manrope", Arial, sans-serif;
  font-weight:800;
  color:var(--heading);
  line-height:1.2;
  letter-spacing:-.02em;
}

h3{ font-size:38px; }
h4{ font-size:20px; }

a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
ul{ list-style:none; }

::selection{ background:var(--brand); color:#fff; }

a, button{ transition:color .25s var(--ease), background .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease); }

:focus-visible{ outline:2px solid var(--brand); outline-offset:3px; border-radius:4px; }

.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 15px;
}

.section{ padding:70px 0; }

/* ---------- Scroll-reveal ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in-view{ opacity:1; transform:translateY(0); }
.reveal-stagger.in-view > *{ animation:fadeUp .6s var(--ease) both; }
.reveal-stagger.in-view > *:nth-child(1){ animation-delay:.05s; }
.reveal-stagger.in-view > *:nth-child(2){ animation-delay:.12s; }
.reveal-stagger.in-view > *:nth-child(3){ animation-delay:.19s; }
.reveal-stagger.in-view > *:nth-child(4){ animation-delay:.26s; }
.reveal-stagger.in-view > *:nth-child(5){ animation-delay:.33s; }
.reveal-stagger.in-view > *:nth-child(6){ animation-delay:.40s; }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(22px); } to{ opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion: reduce){
  .reveal, .reveal-stagger > *{ opacity:1 !important; transform:none !important; animation:none !important; transition:none !important; }
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;
  background:var(--brand-gradient);
  color:#fff;
  font-weight:700;
  text-transform:uppercase;
  font-size:13px;
  letter-spacing:.4px;
  padding:13px 28px;
  border-radius:var(--radius-sm);
  border:none;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(158,9,89,.25);
  transition:background .3s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease), color .25s var(--ease);
}
.btn:hover{ background:var(--brand-dark); transform:translateY(-3px); box-shadow:0 14px 26px rgba(0,0,0,.22); }
.btn:active{ transform:translateY(-1px); }
.btn-lg{ padding:16px 36px; font-size:14px; }

/* ---------- Top utility bar ---------- */
.topbar{
  background:var(--brand-gradient);
  color:#fff;
  font-size:13px;
}
.topbar .container{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-top:8px;
  padding-bottom:8px;
  flex-wrap:wrap;
  gap:10px;
}
.topbar .social a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;height:28px;
  border-radius:50%;
  background:rgba(255,255,255,.12);
  color:#fff;
  margin-right:8px;
  font-size:13px;
}
.topbar .social a:hover{ background:#fff; color:var(--brand); transform:translateY(-2px); }
.topbar .contacts{ display:flex; gap:25px; flex-wrap:wrap; }
.topbar .contacts a{ color:#fff; opacity:.92; }
.topbar .contacts a:hover{ opacity:1; }
.topbar .contacts i{ margin-right:6px; }

/* ---------- Main header ---------- */
.header{
  background:rgba(255,255,255,.97);
  padding:12px 0;
  box-shadow:0 2px 10px rgba(0,0,0,.04);
  position:sticky; top:0; z-index:500;
  transition:box-shadow .3s var(--ease), padding .3s var(--ease);
}
.header.is-scrolled{ box-shadow:var(--shadow-md); padding:8px 0; }
.header .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.logo img{ height:64px; width:auto; transition:height .3s var(--ease); }

.main-nav ul{ display:flex; gap:18px; flex-wrap:wrap; }
.main-nav a{
  font-weight:800;
  font-size:13px;
  text-transform:uppercase;
  color:#000;
  padding:6px 2px;
  position:relative;
}
.main-nav a::after{
  content:""; position:absolute; left:0; bottom:-2px; width:0; height:2px;
  background:var(--brand-gradient); transition:width .3s var(--ease);
}
.main-nav a:hover, .main-nav .current a{ color:var(--brand); }
.main-nav a:hover::after, .main-nav .current a::after{ width:100%; }
.main-nav li{ position:relative; }
.main-nav .has-dropdown:hover .dropdown{ display:block; }
.dropdown{
  display:none;
  position:absolute;
  top:100%; left:0;
  background:#fff;
  min-width:200px;
  box-shadow:0 10px 25px rgba(0,0,0,.08);
  border-radius:10px;
  padding:10px 0;
  z-index:50;
}
.dropdown a{
  display:block;
  padding:8px 18px;
  font-size:12px;
  text-transform:none;
  font-weight:600;
  color:#000;
}
.dropdown a:hover{ background:var(--bg-soft); color:var(--brand); }

.header-icons{ display:flex; align-items:center; gap:18px; font-size:17px; color:#000; }
.header-icons a{ position:relative; display:inline-flex; transition:color .2s, transform .2s; }
.header-icons a:hover{ color:var(--brand); transform:translateY(-2px); }
.cart-count{
  position:absolute; top:-8px; right:-10px;
  background:var(--brand-gradient); color:#fff;
  font-size:10px; width:17px;height:17px;
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  box-shadow:0 2px 6px rgba(158,9,89,.4);
}

.mobile-toggle{ display:none; background:none; border:none; font-size:24px; cursor:pointer; color:#000; }
.mobile-toggle:hover{ color:var(--brand); }

/* ---------- Hero slider ---------- */
.hero{
  position:relative;
  min-height:560px;
  display:flex; align-items:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 85% 20%, rgba(158,9,89,.08), transparent 55%),
    radial-gradient(circle at 10% 90%, rgba(158,9,89,.06), transparent 50%),
    var(--bg-soft);
}
.hero-slide{
  display:none;
  width:100%;
  position:relative;
}
.hero-slide.active{ display:block; animation:heroFade .8s var(--ease); }
@keyframes heroFade{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:translateY(0); } }
.hero-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  padding:60px 15px;
  max-width:var(--container);
  margin:0 auto;
  flex-wrap:wrap;
}
.hero-text{ flex:1 1 420px; }
.hero-text .eyebrow{ color:var(--brand); font-weight:800; margin-bottom:14px; letter-spacing:1px; text-transform:uppercase; font-size:13px; }
.hero-text h2{ font-size:50px; margin-bottom:18px; letter-spacing:-.03em; }
.hero-text p{ margin-bottom:28px; max-width:460px; font-size:16px; }
.hero-img{ flex:1 1 400px; text-align:center; }
.hero-img img{ margin:0 auto; max-height:430px; animation:heroFloat 5s ease-in-out infinite; filter:drop-shadow(0 30px 40px rgba(20,10,15,.18)); }
@keyframes heroFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-16px); } }
.hero-arrows{
  position:absolute; top:50%; width:100%;
  display:flex; justify-content:space-between;
  padding:0 25px; transform:translateY(-50%);
  pointer-events:none;
  z-index:5;
}
.hero-arrows button{
  pointer-events:all;
  width:48px;height:48px; border-radius:50%;
  background:#fff; border:none; color:var(--brand);
  font-size:18px; cursor:pointer; box-shadow:var(--shadow-md);
}
.hero-arrows button:hover{ background:var(--brand); color:#fff; transform:scale(1.08); }

.hero-dots{
  position:absolute; bottom:22px; left:0; right:0;
  display:flex; justify-content:center; gap:10px; z-index:5;
}
.hero-dots button{
  width:10px; height:10px; border-radius:50%; border:none;
  background:rgba(158,9,89,.25); cursor:pointer; padding:0;
}
.hero-dots button.active{ background:var(--brand); width:26px; border-radius:6px; }

/* ---------- Category banners ---------- */
.cat-title{ text-align:left; font-size:32px; margin-bottom:30px; }
.cat-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--gap);
}
.cat-grid.row2{ margin-top:var(--gap); }
.banner{
  position:relative;
  border-radius:var(--radius);
  min-height:280px;
  background-size:cover;
  background-position:center;
  display:flex; align-items:center; justify-content:space-between;
  padding:25px;
  overflow:hidden;
  color:#fff;
  box-shadow:var(--shadow-sm);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.banner:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.banner::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.4) 32%, rgba(0,0,0,0) 62%);
  pointer-events:none;
  z-index:1;
}
.banner .badge{
  background:#fff; color:var(--brand);
  font-weight:800; text-transform:uppercase;
  width:70px;height:70px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  text-align:center; font-size:11px; line-height:1.25;
  position:absolute; top:20px; right:20px;
  box-shadow:0 6px 16px rgba(0,0,0,.15);
  z-index:3;
}
/* Always keep the text on the left and the product photo on the right,
   regardless of the order the image/info markup is written in — this is
   what was letting text land under the badge on some cards. */
.banner .info{ position:relative; z-index:2; order:-1; text-shadow:0 1px 4px rgba(0,0,0,.55); }
.banner .info h3{ color:#fff; font-size:26px; text-transform:uppercase; }
.banner .info span{ display:block; text-transform:uppercase; font-weight:700; margin-bottom:6px; }
.banner .info a{ text-decoration:underline; font-weight:700; text-transform:uppercase; color:#fff; }
.banner img.banner-img{ max-height:230px; position:relative; z-index:2; order:2; transition:transform .4s var(--ease); }
.banner:hover img.banner-img{ transform:scale(1.06) translateY(-4px); }

/* ---------- Product grid ---------- */
.products-title{ text-align:center; font-size:32px; margin-bottom:35px; text-transform:capitalize; }
.product-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:var(--gap);
}
.product-card{ text-align:center; transition:transform .35s var(--ease); }
.product-card:hover{ transform:translateY(-6px); }
.product-thumb{
  background:#fff;
  border-radius:var(--radius);
  height:230px;
  display:flex; align-items:center; justify-content:center;
  padding:10px;
  border:1px solid #eee;
  overflow:hidden;
  transition:box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.product-card:hover .product-thumb{ box-shadow:var(--shadow-md); border-color:transparent; }
.product-thumb img{ max-height:100%; object-fit:contain; transition:transform .4s var(--ease); }
.product-card h4{
  font-size:14px; font-weight:600; color:#000;
  margin-top:14px; margin-bottom:6px;
  transition:color .25s;
}
.product-card:hover h4{ color:var(--brand); }
.view-all{ text-align:center; margin-top:40px; }

/* ---------- Icon boxes / features ---------- */
.icon-box-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--gap);
}
.icon-box{
  display:flex; gap:20px; align-items:center;
  padding:20px; border-radius:var(--radius); transition:box-shadow .35s var(--ease), transform .35s var(--ease);
}
.icon-box:hover{ box-shadow:var(--shadow-md); transform:translateY(-4px); }
.icon-box .icon{
  background:var(--bg-soft);
  color:var(--brand);
  width:65px;height:65px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:26px; flex-shrink:0;
  transition:transform .35s var(--ease), background .35s var(--ease), color .35s var(--ease);
}
.icon-box:hover .icon{ background:var(--brand-gradient); color:#fff; transform:rotate(-8deg) scale(1.08); }
.icon-box h4{ margin-bottom:4px; font-size:16px; }
.icon-box p{ font-size:13px; }

/* ---------- Process section ---------- */
.process-wrap{
  display:flex; gap:60px; align-items:flex-start; flex-wrap:wrap;
}
.process-left{ flex:1 1 480px; }
.process-right{ flex:1 1 380px; }
.process-right img{ border-radius:15px; border-top:8px solid #000; border-left:8px solid #000; box-shadow:var(--shadow-lg); }
.steps{ margin:30px 0; position:relative; }
.steps::before{
  content:""; position:absolute; left:25px; top:8px; bottom:8px; width:2px;
  background:linear-gradient(var(--brand) 0%, rgba(158,9,89,.12) 100%);
}
.step{ display:flex; gap:20px; margin-bottom:22px; position:relative; }
.step .num{
  width:50px;height:50px; border-radius:50%;
  background:var(--brand-gradient); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-weight:700; flex-shrink:0; position:relative; z-index:2;
  box-shadow:0 6px 16px rgba(158,9,89,.3);
  transition:transform .3s var(--ease);
}
.step:hover .num{ transform:scale(1.1); }
.step h4{ font-size:16px; margin-bottom:4px; }
.step p{ font-size:13px; }

/* ---------- Testimonial ---------- */
.testimonial-wrap{
  display:flex; gap:var(--gap); align-items:center; flex-wrap:wrap;
}
.testimonial-img{ flex:1 1 45%; }
.testimonial-img img{ border-radius:var(--radius); width:100%; box-shadow:var(--shadow-lg); }
.testimonial-content{
  flex:1 1 50%;
  background:var(--bg-soft-2);
  border-radius:var(--radius);
  padding:40px;
  display:flex; gap:25px; align-items:flex-start; flex-wrap:wrap;
  position:relative;
  box-shadow:var(--shadow-sm);
}
.testimonial-content::before{
  content:"\201C"; position:absolute; top:10px; right:28px;
  font-family:Georgia, serif; font-size:90px; color:rgba(158,9,89,.12); line-height:1;
}
.testimonial-content blockquote{ font-size:15px; margin:14px 0; font-style:italic; color:var(--heading); position:relative; z-index:1; }
.testimonial-content .avatar{ display:flex; gap:14px; align-items:center; }
.testimonial-content .avatar img{ width:60px;height:60px; border-radius:50%; object-fit:cover; box-shadow:0 4px 12px rgba(0,0,0,.12); }

/* ---------- CTA strip ---------- */
.cta-strip{
  position:relative;
  background-size:cover; background-position:center;
  border-radius:var(--radius);
  padding:36px 30px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  flex-wrap:wrap;
  color:#fff;
  margin-top:50px;
  box-shadow:var(--shadow-lg);
  overflow:hidden;
}
.cta-strip::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(120deg, rgba(122,8,70,.92), rgba(158,9,89,.85));
}
.cta-strip > *{ position:relative; z-index:1; }
.cta-strip h4{ color:#fff; font-size:20px; }
.cta-strip .btn{ background:#fff; color:var(--brand); box-shadow:none; }
.cta-strip .btn:hover{ background:var(--heading); color:#fff; }

/* ---------- Blog cards ---------- */
.blog-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap);
}
.blog-card{ border-radius:var(--radius); transition:transform .35s var(--ease), box-shadow .35s var(--ease); }
.blog-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.blog-card .blog-img{ border-radius:var(--radius); height:220px; overflow:hidden; margin-bottom:16px; }
.blog-card .blog-img img{ height:100%; width:100%; object-fit:cover; transition:transform .5s var(--ease); }
.blog-card:hover .blog-img img{ transform:scale(1.08); }
.blog-card img{ border-radius:var(--radius); height:220px; width:100%; object-fit:cover; margin-bottom:16px; }
.blog-card h5{ margin-bottom:8px; font-size:17px; }
.blog-card p{ font-size:13px; margin-bottom:10px; }
.blog-card .read-more{ color:var(--brand); font-weight:700; display:inline-flex; align-items:center; gap:6px; }
.blog-card .read-more span{ transition:transform .25s var(--ease); }
.blog-card .read-more:hover span{ transform:translateX(4px); }

/* ---------- Page header / breadcrumb ---------- */
.page-hero{
  height:220px;
  background-size:cover; background-position:center;
  position:relative;
  display:flex; align-items:flex-end;
}
.page-hero::before{
  content:""; position:absolute; inset:0; background:rgba(0,0,0,.35);
}
.breadcrumb{
  position:relative; z-index:2;
  color:#fff; font-weight:600; font-size:14px;
  padding-bottom:20px;
}
.breadcrumb a{ color:#fff; }
.breadcrumb span.sep{ margin:0 8px; opacity:.7; }
.breadcrumb span.current{ opacity:.85; }

/* ---------- About page ---------- */
.about-flex{ display:flex; gap:50px; align-items:flex-start; flex-wrap:wrap; }
.about-flex .col{ flex:1 1 420px; }
.about-flex img{ border-radius:var(--radius); width:100%; }
.about-flex p{ margin-bottom:16px; font-size:14px; }

.mission-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:20px; }
.mission-item{ text-align:center; }
.mission-item{ padding:20px; border-radius:var(--radius); transition:box-shadow .3s var(--ease), transform .3s var(--ease); }
.mission-item:hover{ box-shadow:var(--shadow-md); transform:translateY(-5px); }
.mission-item .icon{
  width:70px;height:70px; border-radius:50%;
  background:var(--bg-soft); color:var(--brand);
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 15px; font-size:26px;
  transition:transform .3s var(--ease), background .3s var(--ease), color .3s var(--ease);
}
.mission-item:hover .icon{ background:var(--brand-gradient); color:#fff; transform:scale(1.08); }
.mission-item h4{ text-transform:uppercase; margin-bottom:8px; }
.mission-item p{ font-size:13px; }

/* ---------- Notebook / catalog page ---------- */
.tabs-nav{ display:flex; gap:12px; flex-wrap:wrap; justify-content:center; margin-bottom:35px; }
.tab-btn{
  padding:10px 22px; border-radius:50px; background:#f5f5f5;
  border:none; font-weight:600; font-size:13px; cursor:pointer;
}
.tab-btn.active{ background:var(--brand); color:#fff; }
.tab-panel{ display:none; }
.tab-panel.active{ display:block; }
.catalog-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gap);
}
.catalog-item{
  border:1px solid #e0e0e0;
  border-radius:12px;
  box-shadow:0 0 12px rgba(0,0,0,.03);
  height:250px;
  display:flex; align-items:center; justify-content:center;
  padding:10px;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.catalog-item:hover{ transform:translateY(-5px); box-shadow:var(--shadow-md); border-color:transparent; }
.catalog-item img{ max-height:100%; object-fit:contain; transition:transform .4s var(--ease); }
.catalog-item:hover img{ transform:scale(1.05); }
.tab-btn{ transition:transform .25s var(--ease), box-shadow .25s var(--ease); }
.tab-btn:hover{ transform:translateY(-2px); }
.tab-btn.active{ box-shadow:0 8px 18px rgba(158,9,89,.3); }

/* ---------- N04 Hardcover collection (enhanced cards) ---------- */
.n04-intro{ text-align:center; max-width:720px; margin:0 auto 35px; }
.n04-intro h4{ text-transform:uppercase; letter-spacing:.5px; margin-bottom:10px; }
.n04-intro p{ font-size:14px; color:#666; }
.n04-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gap);
}
.n04-card{
  background:#fff; border:1px solid #e0e0e0; border-radius:var(--radius);
  overflow:hidden; box-shadow:var(--shadow-sm);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
  display:flex; flex-direction:column;
}
.n04-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:transparent; }
.n04-card-img{
  position:relative; height:270px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(180deg,#faf7f7 0%,#f1eded 100%); padding:18px; overflow:hidden;
}
.n04-card-img img{ max-height:100%; object-fit:contain; transition:transform .5s var(--ease); }
.n04-card:hover .n04-card-img img{ transform:scale(1.06); }
.n04-badge{
  position:absolute; top:12px; left:12px; background:var(--brand-gradient); color:#fff;
  font-size:10px; font-weight:700; letter-spacing:.5px; text-transform:uppercase;
  padding:5px 11px; border-radius:50px; box-shadow:0 4px 10px rgba(158,9,89,.25);
}
.n04-card-body{ padding:18px 20px 20px; border-top:1px solid #f0f0f0; }
.n04-card-body h5{ font-size:15px; margin:0 0 3px; }
.n04-card-body .n04-model{ font-size:12px; color:var(--brand); font-weight:700; margin-bottom:10px; }
.n04-specs{ list-style:none; margin:0; padding:0; font-size:12px; color:#666; }
.n04-specs li{ display:flex; align-items:center; gap:6px; padding:3px 0; }
.n04-specs li i{ color:var(--brand); font-size:10px; width:12px; text-align:center; }
@media (max-width:900px){ .n04-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .n04-grid{ grid-template-columns:1fr; } }
.n04-note{ text-align:center; font-size:12px; color:#999; margin-top:18px; }

/* ---------- Click-to-enlarge lightbox ---------- */
.img-lightbox{
  position:fixed; inset:0; background:rgba(10,10,10,.88);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity .25s var(--ease);
  z-index:9999; padding:40px;
}
.img-lightbox.open{ opacity:1; visibility:visible; }
.img-lightbox img{
  max-width:90vw; max-height:85vh; object-fit:contain;
  border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.5);
  cursor:default;
  transform:scale(.96); transition:transform .25s var(--ease);
}
.img-lightbox.open img{ transform:scale(1); }
.img-lightbox-close{
  position:absolute; top:20px; right:28px; color:#fff; font-size:34px;
  line-height:1; cursor:pointer; font-weight:300; user-select:none;
}

/* ---------- Contact page ---------- */
.contact-wrap{ display:flex; gap:50px; flex-wrap:wrap; align-items:stretch; }
.contact-map{ flex:1 1 45%; min-height:400px; border-radius:var(--radius); overflow:hidden; }
.contact-map iframe{ width:100%; height:100%; border:0; min-height:400px; }
.contact-form-wrap{ flex:1 1 45%; }
.contact-form-wrap h3{ margin-bottom:20px; }
.field{ margin-bottom:16px; }
.field input, .field textarea{
  width:100%; padding:14px 16px; border:1px solid #ddd; border-radius:var(--radius-sm);
  font-family:inherit; font-size:14px; color:#212121;
}
.field textarea{ min-height:130px; resize:vertical; }

.contact-info-grid{
  margin-top:60px; background:#fffafd; padding:50px 30px; border-radius:var(--radius);
  display:grid; grid-template-columns:repeat(3,1fr); gap:40px;
}
.contact-info-grid .mission-item .icon{ background:#fff; }

.form-status{ margin-top:14px; font-weight:600; }
.form-status.ok{ color:#2e7d32; }
.form-status.err{ color:#c62828; }

/* ---------- Footer ---------- */
.footer{
  background:#f8f4f1;
  padding-top:60px;
}
.footer-top{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;
  gap:var(--gap);
  padding-bottom:40px;
}
.footer h4{ font-size:16px; margin-bottom:16px; }
.footer .newsletter p{ font-size:13px; margin-bottom:16px; color:#757575; }
.newsletter-form{ display:flex; }
.newsletter-form input{
  flex:1; border:none; border-radius:5px 0 0 5px; padding:0 15px;
  line-height:43px; font-family:inherit;
}
.newsletter-form button{
  border-radius:0 5px 5px 0; background:var(--brand); color:#fff; border:none;
  padding:0 18px; cursor:pointer;
}
.footer ul li{ margin-bottom:10px; }
.footer ul a{ color:#757575; font-size:13px; position:relative; }
.footer ul a:hover{ color:var(--brand); padding-left:4px; }
.footer .contact-list li{ display:flex; gap:10px; align-items:flex-start; font-size:13px; }
.footer .contact-list i{ color:var(--brand); margin-top:3px; }

.footer-bottom{
  border-top:1px solid #e5dede;
  padding:30px 0;
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px;
}
.footer-bottom .logo img{ height:60px; }
.footer-bottom .social{ display:flex; gap:12px; }
.footer-bottom .social a{
  width:34px;height:34px; border-radius:50%; background:#fff;
  display:flex; align-items:center; justify-content:center; color:#5c5c5c;
  box-shadow:var(--shadow-sm);
}
.footer-bottom .social a:hover{ background:var(--brand-gradient); color:#fff; transform:translateY(-3px); }
.footer-bottom .copy{ font-size:13px; color:#757575; text-align:right; }

.whatsapp-fab{
  position:fixed; right:20px; bottom:20px;
  width:54px;height:54px; border-radius:50%;
  background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:24px; box-shadow:0 6px 18px rgba(37,211,102,.45); z-index:600;
  animation:pulseFab 2.6s ease-in-out infinite;
}
.whatsapp-fab:hover{ transform:scale(1.08); animation-play-state:paused; }
@keyframes pulseFab{
  0%,100%{ box-shadow:0 6px 18px rgba(37,211,102,.45); }
  50%{ box-shadow:0 6px 24px rgba(37,211,102,.75), 0 0 0 8px rgba(37,211,102,.12); }
}

.back-to-top{
  position:fixed; right:20px; bottom:84px;
  width:44px;height:44px; border-radius:50%;
  background:#fff; color:var(--brand); border:1px solid #eee;
  display:flex; align-items:center; justify-content:center;
  font-size:16px; box-shadow:var(--shadow-md); z-index:600;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .3s var(--ease), transform .3s var(--ease), visibility .3s;
  cursor:pointer;
}
.back-to-top.show{ opacity:1; visibility:visible; transform:translateY(0); }
.back-to-top:hover{ background:var(--brand); color:#fff; }
@media (prefers-reduced-motion: reduce){ .whatsapp-fab{ animation:none; } }

/* ---------- Responsive ---------- */
@media (max-width: 1300px){
  /* Fits all 7 nav items (incl. Diary) on one line on laptop-width
     screens by freeing up the space the search box was taking and
     tightening the nav's own spacing slightly. */
  .header-search{ display:none; }
  .main-nav ul{ gap:12px; }
  .main-nav a{ font-size:12px; }
  .header-icons{ gap:12px; }
}
@media (max-width: 991px){
  .cat-grid, .cat-grid.row2{ grid-template-columns:repeat(2,1fr); }
  .product-grid{ grid-template-columns:repeat(3,1fr); }
  .footer-top{ grid-template-columns:1fr 1fr; }
  .catalog-grid{ grid-template-columns:repeat(3,1fr); }
  .icon-box-grid, .mission-grid, .contact-info-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 767px){
  .main-nav{ display:none; }
  .mobile-toggle{ display:block; }
  .hero-text h2{ font-size:34px; }
  .cat-grid, .cat-grid.row2{ grid-template-columns:1fr; }
  .product-grid{ grid-template-columns:repeat(2,1fr); }
  .blog-grid, .icon-box-grid, .mission-grid, .contact-info-grid{ grid-template-columns:1fr; }
  .catalog-grid{ grid-template-columns:repeat(2,1fr); }
  .about-flex, .contact-wrap, .process-wrap, .testimonial-wrap{ flex-direction:column; }
  .footer-top{ grid-template-columns:1fr; }
  .footer-bottom{ flex-direction:column; text-align:center; }
  .footer-bottom .copy{ text-align:center; }
}

/* Mobile nav (JS toggled) */
.main-nav.open{
  display:flex; position:fixed; inset:0; background:#fff; z-index:900;
  flex-direction:column; padding:80px 30px; gap:22px; overflow-y:auto;
  animation:navSlideIn .35s var(--ease);
}
@keyframes navSlideIn{ from{ opacity:0; transform:translateX(30px); } to{ opacity:1; transform:translateX(0); } }
.main-nav.open ul{ flex-direction:column; gap:22px; }
.main-nav.open a{ font-size:16px; }
.nav-close{
  display:none; position:absolute; top:24px; right:24px; font-size:26px; background:none; border:none; cursor:pointer; color:#000;
}
.nav-close:hover{ color:var(--brand); }
.main-nav.open .nav-close{ display:block; }

/* =========================================================
   B2B GIFTS — UPGRADE PACK
   Mega menu, search, shop/PDP/cart/checkout, featured products,
   pagination, empty states. Appended only — nothing above this
   line was changed, so the original design is untouched.
   ========================================================= */

/* ---------- Category dropdown (parent list + small flyout sub-dropdown) ---------- */
.main-nav .has-mega{ position:relative; }
/*.main-nav .has-mega > a{ display:flex; align-items:center; gap:6px; cursor:pointer; }*/
.main-nav .has-mega > a i{ font-size:9px; transition:transform .2s; }
.main-nav .has-mega:hover > a i, .main-nav .has-mega.mega-open > a i{ transform:rotate(180deg); }

.cat-dropdown{
  display:none;
  position:absolute; left:0; top:100%;
  width:270px;
  background:#fff;
  box-shadow:0 20px 45px rgba(20,10,15,.14);
  border-top:3px solid var(--brand);
  border-radius:0 0 10px 10px;
  z-index:600;
  padding:8px 0;
}
.main-nav .has-mega:hover .cat-dropdown{ display:block; }

.cat-dropdown-list{ max-height:60vh; overflow-y:auto; display:block !important; }
.cat-item{ position:relative; }
.main-nav .cat-item-link{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:11px 20px !important;
  font-size:13px; font-weight:600 !important; text-transform:none !important;
  line-height:1.3;
  color:var(--text) !important;
}
.cat-item-arrow{ font-size:10px; color:#ccc; flex-shrink:0; }
.cat-item:hover > .cat-item-link, .cat-item.sub-open > .cat-item-link{
  background:var(--bg-soft); color:var(--brand) !important;
}
.cat-item:hover > .cat-item-link .cat-item-arrow, .cat-item.sub-open > .cat-item-link .cat-item-arrow{ color:var(--brand); }
.main-nav .cat-item-link::after{ display:none !important; }

/* Small sub-dropdown flyout. Uses position:fixed (with its exact
   coordinates set by JS on hover) so it can escape the scrollable
   parent list's clipping box — a plain absolute position here would
   get cut off by that list's overflow-y:auto. */
.cat-submenu{
  display:none;
  position:fixed; left:0; top:0;
  min-width:220px; max-width:260px;
  background:#fff;
  box-shadow:0 20px 45px rgba(20,10,15,.14);
  border-radius:10px;
  padding:8px 0;
  z-index:601;
}
.cat-item:hover > .cat-submenu, .cat-item.sub-open > .cat-submenu{ display:block; }

.main-nav .cat-submenu-title{
  display:block; font-weight:800 !important; font-size:11px !important; text-transform:uppercase !important;
  letter-spacing:.02em;
  color:var(--brand) !important; padding:10px 18px 10px !important; margin-bottom:4px; border-bottom:1px solid #f0e3e3;
}
.cat-submenu ul{ display:block !important; }
.cat-submenu ul li{ line-height:1.3; }
.main-nav .cat-submenu ul a{
  display:block; padding:9px 18px !important; font-size:13px !important; font-weight:500 !important;
  text-transform:none !important; color:var(--text) !important; line-height:1.3;
}
.cat-submenu ul a:hover{ background:var(--bg-soft); color:var(--brand) !important; }

.cat-dropdown-footer{
  border-top:1px solid #f0e3e3; margin-top:6px; padding:14px 20px 6px; text-align:center;
}
.cat-dropdown-footer p{ font-size:12px; margin-bottom:10px; color:var(--heading); font-weight:600; }
.cat-dropdown-footer .btn{ display:block; margin-bottom:8px; font-size:11px; padding:10px 14px; }
.cat-dropdown-footer .btn.outline{ background:#fff; color:var(--brand); border:1px solid var(--brand); }

/* Thin, unobtrusive scrollbar for long parent-category lists */
.cat-dropdown-list::-webkit-scrollbar{ width:6px; }
.cat-dropdown-list::-webkit-scrollbar-thumb{ background:#e6d3d3; border-radius:6px; }

/* ---------- Header search ---------- */
.header-search{ display:flex; align-items:center; background:var(--bg-soft); border-radius:30px; padding:6px 6px 6px 16px; }
.header-search input{ border:none; background:transparent; outline:none; font-size:13px; width:150px; font-family:inherit; }
.header-search button{ border:none; background:var(--brand); color:#fff; width:30px; height:30px; border-radius:50%; cursor:pointer; }

/* ---------- Buttons (additional variants) ---------- */
.btn.outline{ background:transparent; color:var(--brand); border:1.5px solid var(--brand); box-shadow:none; }
.btn.outline:hover{ background:var(--brand); color:#fff; box-shadow:0 10px 20px rgba(158,9,89,.25); }
.btn.gold{ background:var(--heading); color:#fff; }
.btn.small{ padding:9px 18px; font-size:12px; }
.btn.full{ display:block; text-align:center; width:100%; margin-top:10px; }

/* ---------- Popup promo banner (dynamic, Admin > Banners) ---------- */
.popup-overlay{
  position:fixed; inset:0; background:rgba(15,37,64,.55); z-index:9999;
  display:none; align-items:center; justify-content:center; padding:20px;
}
.popup-overlay.show{ display:flex; }
.popup-box{
  position:relative; background:#fff; border-radius:14px; max-width:420px; width:100%;
  box-shadow:var(--shadow-lg); overflow:hidden; animation:popupIn .35s var(--ease);
}
@keyframes popupIn{ from{ opacity:0; transform:translateY(16px) scale(.97); } to{ opacity:1; transform:translateY(0) scale(1); } }
.popup-close{
  position:absolute; top:10px; right:10px; width:32px; height:32px; border-radius:50%;
  border:none; background:rgba(0,0,0,.06); font-size:20px; line-height:1; cursor:pointer;
  color:#333; z-index:2;
}
.popup-close:hover{ background:rgba(0,0,0,.12); }
.popup-img img{ width:100%; display:block; max-height:220px; object-fit:cover; }
.popup-body{ padding:24px 26px 28px; text-align:center; }
.popup-body h3{ margin:0 0 10px; font-size:22px; }
.popup-body p{ margin:0 0 18px; color:#555; font-size:14px; }

/* ---------- Page banner / breadcrumb ---------- */
.page-banner{ background:var(--bg-soft); padding:46px 0; text-align:center; }
.page-banner h1{ font-size:32px; margin-bottom:10px; }
.breadcrumb{ font-size:13px; color:var(--text); }
.breadcrumb a{ color:var(--text); }
.breadcrumb a:hover{ color:var(--brand); }
.breadcrumb span{ margin:0 6px; }

/* ---------- Section head w/ eyebrow ---------- */
.section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:30px; flex-wrap:wrap; }
.eyebrow{ display:block; font-size:12px; font-weight:800; letter-spacing:1px; text-transform:uppercase; color:var(--brand); margin-bottom:6px; }
.featured-section .products-title{ text-align:left; margin-bottom:0; }

/* ---------- Product cards (shop grid — extends existing .product-card) ---------- */
.product-thumb{ position:relative; overflow:hidden; }
.product-thumb img{ transition:transform .3s; }
.product-card:hover .product-thumb img{ transform:scale(1.06); }
.product-thumb .badge{ position:absolute; top:10px; left:10px; background:var(--brand); color:#fff; font-size:10px; font-weight:800; text-transform:uppercase; padding:5px 10px; border-radius:20px; }
.no-image{ display:flex; align-items:center; justify-content:center; width:100%; height:100%; font-size:34px; color:#ddd; }
.no-image.big{ height:420px; background:var(--bg-soft); border-radius:var(--radius); font-size:60px; }
.no-image.small{ width:56px; height:56px; background:var(--bg-soft); border-radius:8px; font-size:18px; }
.product-info{ text-align:center; padding-top:6px; }
.product-cat{ font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:var(--brand); font-weight:700; }
.product-price{ font-weight:800; color:var(--heading); font-size:16px; margin:6px 0 4px; }
.product-price .old-price{ font-weight:500; font-size:13px; color:#aaa; text-decoration:line-through; margin-left:8px; }
.product-moq{ font-size:11px; color:#999; margin-bottom:10px; }

/* ---------- Shop layout (products.php) ---------- */
.shop-section{ padding-top:50px; }
.shop-layout{ display:grid; grid-template-columns:250px 1fr; gap:36px; align-items:start; }
.shop-sidebar{ position:sticky; top:100px; }
.sidebar-block{ background:#fff; border:1px solid #f0e3e3; border-radius:var(--radius); padding:22px; margin-bottom:20px; }
.sidebar-block h4{ font-size:15px; margin-bottom:16px; }
.cat-tree li{ margin-bottom:10px; font-size:13px; }
.cat-tree > li > a{ font-weight:700; color:var(--heading); }
.cat-tree li.active > a{ color:var(--brand); }
.cat-tree ul{ margin:8px 0 0 14px; }
.cat-tree ul li{ margin-bottom:8px; font-weight:500; }
.price-row{ display:flex; gap:8px; margin-bottom:12px; }
.price-row input{ width:50%; padding:9px; border:1px solid #eee; border-radius:6px; font-size:12px; font-family:inherit; }
.sidebar-cta p{ font-size:12px; margin-bottom:14px; }

.shop-toolbar{ display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; flex-wrap:wrap; gap:14px; }
.result-count{ font-size:13px; color:var(--text); }
.sort-form{ display:flex; align-items:center; gap:8px; font-size:13px; }
.sort-form select{ padding:8px 12px; border:1px solid #eee; border-radius:6px; font-family:inherit; font-size:13px; }
.shop-main .product-grid{ grid-template-columns:repeat(3,1fr); }

.pagination{ display:flex; gap:8px; justify-content:center; margin-top:40px; }
.page-link{ width:38px; height:38px; display:flex; align-items:center; justify-content:center; border:1px solid #eee; border-radius:8px; font-size:13px; font-weight:600; }
.page-link.active, .page-link:hover{ background:var(--brand); color:#fff; border-color:var(--brand); }

.empty-state{ text-align:center; padding:70px 20px; background:var(--bg-soft); border-radius:var(--radius); }
.empty-state i{ font-size:42px; color:var(--brand); margin-bottom:16px; }
.empty-state h3{ margin-bottom:10px; }
.empty-state p{ max-width:440px; margin:0 auto; }
.empty-state.success i{ color:#1e7d34; }

/* ---------- Product detail page ---------- */
.pdp-layout{ display:grid; grid-template-columns:1fr 1fr; gap:50px; }
.pdp-main-image{ background:var(--bg-soft); border-radius:var(--radius); overflow:hidden; height:460px; display:flex; align-items:center; justify-content:center; }
.pdp-main-image img{ max-height:100%; max-width:100%; object-fit:contain; }
.pdp-thumbs{ display:flex; gap:10px; margin-top:14px; }
.pdp-thumb{ width:70px; height:70px; border:1px solid #eee; border-radius:8px; padding:4px; background:#fff; cursor:pointer; }
.pdp-thumb img{ width:100%; height:100%; object-fit:contain; }
.pdp-info h1{ font-size:28px; margin:8px 0 6px; }
.pdp-sku{ font-size:12px; color:#aaa; margin-bottom:14px; }
.pdp-price{ font-size:28px; font-weight:800; color:var(--brand); margin-bottom:14px; }
.pdp-price .old-price{ font-size:16px; color:#aaa; text-decoration:line-through; margin-left:10px; font-weight:500; }
.pdp-short-desc{ margin-bottom:18px; }
.pdp-meta{ margin-bottom:20px; }
.pdp-meta li{ font-size:13px; margin-bottom:8px; color:var(--text); }
.pdp-meta li i{ width:18px; color:var(--brand); }
.pdp-branding{ background:var(--bg-soft); border-radius:var(--radius-sm); padding:16px 18px; margin-bottom:20px; }
.pdp-branding h4{ font-size:14px; margin-bottom:10px; }
.branding-opt{ display:flex; align-items:center; gap:10px; font-size:13px; font-weight:500; margin-bottom:8px; }
.branding-opt input{ width:auto; }
.branding-opt span{ color:var(--brand); font-weight:700; margin-left:auto; }
.pdp-actions{ display:flex; align-items:center; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
.qty-box{ display:flex; align-items:center; gap:8px; font-size:12px; font-weight:700; }
.qty-box input{ width:70px; padding:11px; border:1px solid #eee; border-radius:8px; font-family:inherit; }
.pdp-actions .btn{ flex:1; min-width:140px; justify-content:center; display:inline-flex; align-items:center; gap:8px; }
.pdp-tabs{ margin-top:60px; display:grid; grid-template-columns:1fr 1fr; gap:50px; }
.pdp-tab-block h3{ font-size:20px; margin-bottom:16px; }
.pdp-tab-block h5{ font-size:13px; text-transform:uppercase; color:var(--brand); margin:16px 0 8px; }
.pdp-desc{ font-size:14px; line-height:1.8; }
.spec-table{ width:100%; border-collapse:collapse; font-size:13px; margin-bottom:10px; }
.spec-table td{ padding:9px 12px; border-bottom:1px solid #f0e3e3; }
.spec-table td:first-child{ color:#999; width:40%; }
.cat-title.small{ font-size:24px; margin-top:60px; }

/* ---------- Cart / Checkout ---------- */
.cart-layout{ display:grid; grid-template-columns:1fr 340px; gap:30px; align-items:start; }
.cart-table-wrap{ background:#fff; border:1px solid #f0e3e3; border-radius:var(--radius); padding:20px; overflow-x:auto; }
.cart-table{ width:100%; border-collapse:collapse; min-width:520px; }
.cart-table th{ text-align:left; font-size:11px; text-transform:uppercase; color:#aaa; padding:10px; border-bottom:1px solid #f0e3e3; }
.cart-table td{ padding:14px 10px; border-bottom:1px solid #f6ecec; font-size:13px; vertical-align:middle; }
.cart-product{ display:flex; align-items:center; gap:12px; }
.cart-product img{ width:56px; height:56px; object-fit:cover; border-radius:8px; }
.cart-product a{ font-weight:700; color:var(--heading); }
.cart-branding{ font-size:11px; color:#999; margin-top:2px; }
.cart-moq{ font-size:11px; color:#bbb; margin-top:2px; }
.qty-input{ width:64px; padding:8px; border:1px solid #eee; border-radius:6px; font-family:inherit; }
.cart-remove{ color:#c0392b; font-size:15px; }
.cart-summary{ background:var(--bg-soft); border-radius:var(--radius); padding:24px; position:sticky; top:100px; }
.cart-summary h4{ margin-bottom:16px; }
.summary-row{ display:flex; justify-content:space-between; font-size:13px; color:var(--text); padding:8px 0; border-bottom:1px solid #ecdede; }
.summary-row.total{ font-size:18px; font-weight:800; color:var(--heading); border-bottom:none; padding-top:14px; }

.checkout-layout{ display:grid; grid-template-columns:1.3fr 1fr; gap:36px; align-items:start; }
.checkout-form{ background:#fff; border:1px solid #f0e3e3; border-radius:var(--radius); padding:28px; }
.checkout-form h3{ margin-bottom:18px; }
.checkout-form label{ display:block; font-size:12px; font-weight:700; margin:14px 0 6px; }
.checkout-form input[type=text], .checkout-form input[type=email], .checkout-form textarea{
  width:100%; padding:12px; border:1px solid #eee; border-radius:8px; font-family:inherit; font-size:13px;
}
.form-row-2{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.payment-options label{ display:flex; align-items:center; gap:8px; font-weight:500; font-size:13px; margin-top:8px; }
.payment-options input{ width:auto; }
.form-error{ background:#fce8e6; color:#b3261e; padding:14px 18px; border-radius:8px; margin-bottom:20px; font-size:13px; }

/* ---------- Responsive additions ---------- */
@media (max-width: 991px){
  .shop-layout, .pdp-layout, .pdp-tabs, .cart-layout, .checkout-layout{ grid-template-columns:1fr; }
  .shop-sidebar{ position:static; }
  .shop-main .product-grid{ grid-template-columns:repeat(2,1fr); }
  .header-search{ display:none; }
}
@media (max-width: 767px){
  .form-row-2{ grid-template-columns:1fr; }
  .pdp-main-image{ height:300px; }
  .shop-main .product-grid{ grid-template-columns:1fr 1fr; }

  /* Category dropdown becomes a full-width, two-level tap-to-expand
     accordion inside the mobile nav panel (no hover, no flyouts). */
  .cat-dropdown{
    display:none; position:static; width:auto; box-shadow:none; border-top:none;
    border-radius:0; padding:4px 0 0; margin-top:4px;
  }
  .main-nav .has-mega.mega-open .cat-dropdown{ display:block; }
  .main-nav .has-mega:hover .cat-dropdown{ display:none; }
  .main-nav .has-mega.mega-open:hover .cat-dropdown{ display:block; }

  .cat-dropdown-list{ max-height:none; overflow-y:visible; }
  .cat-item-link{ padding:12px 4px; font-size:14px; }
  .cat-item:hover > .cat-item-link{ background:none; color:var(--text); }
  .cat-item.sub-open > .cat-item-link{ color:var(--brand); background:none; }

  /* Sub-dropdown becomes an inline collapsible panel, not a flyout */
  .cat-submenu{
    display:none; position:static; min-width:0; max-width:none;
    box-shadow:none; border-radius:0;
    background:var(--bg-soft); padding:4px 0; margin:2px 0 6px; border:none;
  }
  .cat-item.sub-open > .cat-submenu{ display:block; }
  .cat-submenu-title{ padding:8px 14px 8px 20px; }
  .cat-submenu ul a{ padding:9px 14px 9px 30px; }
  .cat-dropdown-footer{ text-align:left; padding:14px 4px 6px; }
}

/* =========================================================
   SHOP + PDP — Jasani-style redesign (matches DNG shop/product pages)
   Toolbar-based filtering (search + category dropdown + sort),
   ribbon-badge product cards with live stock indicator, and a
   PDP variant-swatch row. Colours use the existing brand vars
   above so it stays on-brand (maroon/pink) instead of copying
   DNG's navy/gold literally.
   ========================================================= */

.shop-page{ max-width:1300px; }

/* ---------- Toolbar ---------- */
.shop-toolbar{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:16px; margin-bottom:34px; padding-bottom:18px; border-bottom:1px solid #f0e3e3;
}
.toolbar-left{ display:flex; flex-wrap:wrap; align-items:center; gap:12px; flex:1 1 60%; }
.toolbar-search{
  display:flex; align-items:center; background:var(--bg-soft); border-radius:999px;
  padding:2px 6px 2px 18px; flex:1 1 220px; max-width:320px; transition:.2s;
}
.toolbar-search:focus-within{ background:#fff; box-shadow:0 0 0 3px rgba(158,9,89,.15); }
.toolbar-search input{ border:none; background:transparent; padding:11px 0; font-size:14px; width:100%; outline:none; font-family:inherit; }
.toolbar-search button{ background:none; border:none; padding:8px 14px; cursor:pointer; color:var(--brand); font-size:14px; }
.category-filter select{
  padding:11px 34px 11px 18px; border:1px solid #eee; border-radius:999px; background:#fff;
  font-size:14px; cursor:pointer; outline:none; appearance:none; -webkit-appearance:none;
  font-family:inherit; color:var(--heading);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239e0959' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center; min-width:170px;
}
.category-filter select:focus{ border-color:var(--brand); box-shadow:0 0 0 3px rgba(158,9,89,.12); }
.toolbar-right{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.sort-dropdown{ display:flex; align-items:center; gap:8px; }
.sort-dropdown label{ font-size:13px; color:var(--text); }
.sort-dropdown select{
  padding:9px 16px; border:1px solid #eee; border-radius:999px; background:#fff;
  font-size:13px; cursor:pointer; outline:none; font-family:inherit; color:var(--heading);
}
.sort-dropdown select:focus{ border-color:var(--brand); }

/* ---------- Product cards: ribbon + stock ---------- */
.product-thumb{ position:relative; }
.ribbon{
  position:absolute; top:12px; left:12px; padding:4px 12px; font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:.5px; border-radius:999px; color:#fff; z-index:2;
}
.ribbon-sale{ background:#e74c3c; }
.ribbon-new{ background:#2ecc71; }
.variant-badge{
  position:absolute; bottom:12px; right:12px; background:rgba(0,0,0,.7); color:#fff;
  font-size:11px; padding:4px 10px; border-radius:999px; letter-spacing:.3px;
}
.stock{ font-size:12px; display:flex; align-items:center; gap:6px; margin:6px 0; }
.stock .dot{ display:inline-block; width:8px; height:8px; border-radius:50%; }
.stock-in .dot{ background:#2ecc71; }
.stock-low .dot{ background:#f39c12; }
.stock-out .dot{ background:#e74c3c; }
.stock-in{ color:#1e8e4f; }
.stock-low{ color:#b06e00; }
.stock-out{ color:#c0392b; }

/* ---------- PDP variant swatches ---------- */
.pdp-variants{ margin-bottom:18px; }
.pdp-variants h4{ font-size:14px; margin-bottom:10px; }
.variant-swatches{ display:flex; flex-wrap:wrap; gap:10px; }
.variant-swatch{
  display:block; width:56px; height:56px; border-radius:10px; border:2px solid #eee;
  overflow:hidden; padding:0; background:#fafafa;
}
.variant-swatch img{ width:100%; height:100%; object-fit:cover; }
.variant-swatch .no-image{ display:flex; align-items:center; justify-content:center; height:100%; color:#ccc; }
.variant-swatch.active{ border-color:var(--brand); box-shadow:0 0 0 2px rgba(158,9,89,.15); }
.variant-swatch:hover{ border-color:var(--brand); }

@media (max-width: 767px){
  .shop-toolbar{ flex-direction:column; align-items:stretch; }
  .toolbar-left{ flex-wrap:wrap; gap:10px; }
  .toolbar-search{ max-width:none; flex:1 1 100%; }
  .category-filter select{ min-width:140px; width:100%; }
  .toolbar-right{ justify-content:space-between; }
}