/* ============================================
   SCINTILLER - Complete Stylesheet
   ============================================ */

/* CSS Variables */
:root {
  --bg: #E6E0D6;
  --white: #ffffff;
  --obsidian: #111010;
  --gold: #b8956a;
  --gold-light: #cfa978;
  --gold-pale: #f3e8d4;
  --stone: #a89f96;
  --stone-light: #ddd6cc;
  --text-dark: #1a170f;
  --text-mid: #6b6057;
  --text-light: #9c9088;
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: 'DM Sans', system-ui, sans-serif;
}

/* Reset */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--sans);
  background: var(--bg);
  color: var(--text-dark);
  font-size: 15px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

img {
  display: block;
  max-width: 100%;
}

a {
  text-decoration: none;
  color: inherit;
}

ul {
  list-style: none;
}

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 48px;
}

.section {
  padding: 60px 0;
}

/* ─── HEADER ───────────────────────────────────────────────────────── */
.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: rgba(230, 224, 214, 0.95);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(184, 149, 106, 0.15);
  transition: box-shadow 0.3s ease, background 0.3s ease, transform 0.3s ease;
  will-change: box-shadow, background;
  transform: translateY(0);
}

.header.header-scrolled {
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.08);
  background: rgba(230, 224, 214, 0.98);
}

.header-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 48px;
  height: 70px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.logo {
  font-family: var(--serif);
  font-size: 1.6rem;
  font-weight: 400;
  color: var(--text-dark);
  letter-spacing: 0.02em;
}

.nav {
  display: flex;
  gap: 32px;
  align-items: center;
}

/* ─── NAV LINK ─────────────────────────────────────────────────────── */
.nav-link {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text-mid);
  transition: color 0.2s;
  padding: 8px 0;
  position: relative;
}

.nav-link:hover,
.nav-link.active {
  color: var(--gold);
}

.nav-link.active::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--gold);
}

/* ─── DROPDOWN WRAPPER ──────────────────────────────────────────────── */
.nav-item {
  position: relative;
  display: flex;
  align-items: center;
}

.nav-item > .nav-link {
  display: flex;
  align-items: center;
  gap: 5px;
}

.nav-link .nav-arrow {
  width: 10px;
  height: 10px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  transition: transform 0.3s ease;
  margin-top: 1px;
}

.nav-item:hover .nav-arrow {
  transform: rotate(180deg);
}

/* ─── MEGA DROPDOWN ─────────────────────────────────────────────────── */
.nav-dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  min-width: 200px;
  background: var(--white);
  border: 1px solid rgba(184, 149, 106, 0.15);
  box-shadow: 0 15px 50px rgba(0, 0, 0, 0.1), 0 5px 15px rgba(0, 0, 0, 0.04);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
  padding: 8px 0;
  z-index: 1001;
}

.nav-item:hover > .nav-dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.nav-dropdown::before {
  content: '';
  position: absolute;
  top: -14px;
  left: 0;
  right: 0;
  height: 14px;
}

/* ─── DROPDOWN ITEMS ────────────────────────────────────────────────── */
.dropdown-item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 24px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text-dark);
  transition: all 0.2s ease;
  white-space: nowrap;
  cursor: pointer;
}

.dropdown-item:hover {
  background: var(--gold-pale);
  color: var(--gold);
  padding-left: 28px;
}

.dropdown-item-icon {
  width: 14px;
  height: 14px;
  stroke: var(--stone);
  fill: none;
  stroke-width: 2;
  transition: stroke 0.2s ease, transform 0.2s ease;
  flex-shrink: 0;
}

.dropdown-item:hover .dropdown-item-icon {
  stroke: var(--gold);
  transform: translateX(3px);
}

.dropdown-item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 60%;
  background: var(--gold);
  transition: width 0.2s ease;
}

.dropdown-item:hover::before {
  width: 3px;
}

.dropdown-label {
  display: block;
  padding: 10px 24px 6px;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--text-light);
  pointer-events: none;
}

.dropdown-divider {
  height: 1px;
  background: rgba(184, 149, 106, 0.15);
  margin: 6px 16px;
}

.dropdown-footer {
  display: block;
  text-align: center;
  padding: 14px 24px 12px;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gold);
  border-top: 1px solid rgba(184, 149, 106, 0.1);
  margin-top: 4px;
  transition: all 0.2s ease;
}

.dropdown-footer:hover {
  background: var(--gold);
  color: white;
}

/* ─── SUB-DROPDOWN ──────────────────────────────────────────────────── */
.dropdown-sub {
  position: absolute;
  top: -8px;
  left: 100%;
  min-width: 220px;
  background: var(--white);
  border: 1px solid rgba(184, 149, 106, 0.15);
  box-shadow: 0 15px 50px rgba(0, 0, 0, 0.1), 0 5px 15px rgba(0, 0, 0, 0.04);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
  transform: translateX(8px);
  padding: 8px 0;
  z-index: 1002;
}

.dropdown-sub::before {
  content: '';
  position: absolute;
  top: 0;
  left: -10px;
  width: 10px;
  height: 100%;
}

.dropdown-item:hover > .dropdown-sub {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(0);
}

.dropdown-sub .sub-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 24px;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.5px;
  color: var(--text-dark);
  transition: all 0.2s ease;
  position: relative;
}

.dropdown-sub .sub-item:hover {
  background: var(--gold-pale);
  color: var(--gold);
  padding-left: 30px;
}

.dropdown-sub .sub-item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 60%;
  background: var(--gold);
  transition: width 0.2s ease;
}

.dropdown-sub .sub-item:hover::before {
  width: 3px;
}

.sub-item-icon {
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  flex-shrink: 0;
}

.sub-item-text {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.sub-item-name {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.sub-item-count {
  font-size: 10px;
  color: var(--text-light);
  letter-spacing: 0.5px;
}

/* ─── HEADER ACTIONS ────────────────────────────────────────────────── */
.header-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

.profile-icon {
  position: relative;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.profile-icon svg {
  width: 22px;
  height: 22px;
  stroke: var(--text-dark);
  fill: none;
  stroke-width: 1.5;
  transition: stroke 0.2s ease;
}

.profile-icon:hover svg {
  stroke: var(--gold);
}

.profile-initial {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--gold);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--serif);
  font-size: 14px;
  font-weight: 500;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.profile-icon:hover .profile-initial {
  transform: scale(1.1);
  box-shadow: 0 0 0 3px var(--gold-pale);
}

.cart-icon {
  position: relative;
  width: 24px;
  height: 24px;
}

.cart-icon svg {
  width: 24px;
  height: 24px;
  stroke: var(--text-dark);
  fill: none;
  stroke-width: 1.5;
}

.cart-count {
  position: absolute;
  top: -6px;
  right: -8px;
  background: var(--gold);
  color: white;
  font-size: 10px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mobile-menu-btn {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 5px;
}

.mobile-menu-btn span {
  width: 22px;
  height: 2px;
  background: var(--text-dark);
  transition: 0.3s;
}

/* ─── MOBILE MENU ───────────────────────────────────────────────────── */
.mobile-menu {
  display: none;
  flex-direction: column;
  background: var(--bg);
  border-top: 1px solid rgba(184, 149, 106, 0.15);
  padding: 16px 48px 24px;
  max-height: 80vh;
  overflow-y: auto;
}

.mobile-menu.active {
  display: flex;
}

.mobile-menu > a {
  padding: 14px 0;
  font-size: 14px;
  color: var(--text-dark);
  border-bottom: 1px solid rgba(184, 149, 106, 0.1);
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.mobile-submenu-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 0;
  font-size: 14px;
  color: var(--text-dark);
  border-bottom: 1px solid rgba(184, 149, 106, 0.1);
  cursor: pointer;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
  background: none;
  border-left: none;
  border-right: none;
  border-top: none;
  width: 100%;
  font-family: var(--sans);
}

.mobile-submenu-toggle svg {
  width: 14px;
  height: 14px;
  stroke: var(--text-mid);
  fill: none;
  stroke-width: 2;
  transition: transform 0.3s ease;
}

.mobile-submenu-toggle.open svg {
  transform: rotate(180deg);
}

.mobile-submenu {
  display: none;
  flex-direction: column;
  padding-left: 16px;
  border-left: 2px solid var(--gold-pale);
  margin-left: 4px;
}

.mobile-submenu.open {
  display: flex;
}

.mobile-submenu-label {
  padding: 10px 0 4px;
  font-size: 10px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 500;
}

.mobile-submenu a {
  padding: 9px 0;
  font-size: 13px;
  color: var(--text-mid);
  border-bottom: 1px solid rgba(184, 149, 106, 0.06);
  letter-spacing: 0.5px;
  text-transform: none;
  font-weight: 400;
}

.mobile-submenu a:hover {
  color: var(--gold);
}

.mobile-menu a {
  padding: 12px 0;
  font-size: 14px;
  color: var(--text-dark);
  border-bottom: 1px solid rgba(184, 149, 106, 0.1);
}

/* ─── BUTTONS ──────────────────────────────────────────────────────── */
.btn {
  display: inline-block;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  padding: 12px 28px;
  border: 1px solid currentColor;
  transition: all 0.25s ease;
  cursor: pointer;
  font-family: var(--sans);
  background: transparent;
  text-align: center;
}

.btn-light {
  color: #fff;
  border-color: rgba(255,255,255,0.7);
}

.btn-light:hover {
  background: #fff;
  color: var(--obsidian);
}

.btn-dark {
  color: var(--obsidian);
  border-color: var(--obsidian);
}

.btn-dark:hover {
  background: var(--obsidian);
  color: #fff;
}

.btn-gold {
  color: var(--gold);
  border-color: var(--gold);
}

.btn-gold:hover {
  background: var(--gold);
  color: #fff;
}

.btn-gold-fill {
  background: var(--gold);
  color: #fff;
  border-color: var(--gold);
}

.btn-gold-fill:hover {
  background: var(--gold-light);
  border-color: var(--gold-light);
}

.btn-large {
  padding: 16px 40px;
  font-size: 11px;
}

/* ─── SECTION HEADERS ──────────────────────────────────────────────── */
.section-header {
  text-align: center;
  margin-bottom: 40px;
}

.section-header h2 {
  font-family: var(--serif);
  font-size: clamp(1.6rem, 2.5vw, 2.2rem);
  font-weight: 300;
  color: var(--text-dark);
  margin-top: 6px;
}

.label-tag {
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--gold);
  display: block;
  margin-bottom: 8px;
}

.section-actions {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 24px;
}

.section-footer {
  text-align: center;
  margin-top: 40px;
}

/* ─── HERO ─────────────────────────────────────────────────────────── */
/* UPDATED: background-size initial, no-repeat, position left, gap fix */
.hero {
  position: relative;
  margin-top: 70px;
  overflow: hidden;
  background-color: #f0ebe3; /* fallback while image loads */
 
  /* ── Remove all old background-image properties ─────────────────── */
  background-image: none;
  background-size: unset;
  background-repeat: unset;
  background-position: unset;
 
  /* No fixed height — the <img> sets the height naturally */
  min-height: unset;
  height: auto;
  padding: 0;           /* no side padding on the section itself */
  line-height: 0;       /* prevents a 4px gap below the inline img */
  display: block;       /* override the old flex */
  align-items: unset;
}
 
/* ─── HERO IMAGE ────────────────────────────────────────────────────── */
/*
  On desktop the image fills the full container width and scales
  proportionally — no cropping, no zooming, no blank edges.
  The JS parallax only touched backgroundPositionY; since there is
  no CSS background anymore, it silently becomes a no-op.
*/
.hero-img {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: top; /* eliminates the default 4px baseline gap */
  user-select: none;
  pointer-events: none;
}
 
/* ─── GRADIENT OVERLAY ──────────────────────────────────────────────── */
/* Sits on top of the <img>, below the CTA button */
.hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(10, 9, 7, 0.45) 0%,
    rgba(10, 9, 7, 0.12) 35%,
    transparent 60%
  );
  pointer-events: none;
  line-height: normal; /* restore for this pseudo-element */
  z-index: 1;
}
 
/* ─── HERO CONTENT (Shop Now button) ────────────────────────────────── */
.hero-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2;              /* above the ::after overlay */
  max-width: 1200px;
  padding: 0 48px 60px;
  line-height: normal;     /* restore for real content */
  /* horizontally centred if hero is wider than max-width */
  margin-left: auto;
  margin-right: auto;
}

.hero-eyebrow {
  font-size: 11px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.65);
  margin-bottom: 16px;
}

.hero-title {
  font-family: var(--serif);
  font-size: clamp(3rem, 8vw, 6.5rem);
  font-weight: 300;
  color: #fff;
  line-height: 1.02;
  letter-spacing: -0.025em;
  margin-bottom: 36px;
}

.hero-title em {
  font-style: italic;
  color: var(--gold-light);
}

/* ─── MARQUEE ──────────────────────────────────────────────────────── */
/* UPDATED: display:block + line-height:0 kills the whitespace gap after hero */
.marquee {
  background: var(--obsidian);
  overflow: hidden;
  display: block;
  line-height: 0;
  margin: 0;     /* belt-and-braces: ensure no collapsing margin sneaks in */
  padding: 0;
}

.marquee-track {
  display: flex;
  width: max-content;
  animation: marquee 26s linear infinite;
  line-height: normal;
}

.marquee-track:hover {
  animation-play-state: paused;
}

.marquee-group {
  display: flex;
  align-items: center;
  padding: 12px 0;
  white-space: nowrap;
}

.marquee-group span {
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 3.5px;
  text-transform: uppercase;
  color: var(--stone);
  padding: 0 24px;
}

.marquee-group .dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--gold);
  flex-shrink: 0;
  padding: 0;
}

@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ─── CATEGORY CIRCLES ─────────────────────────────────────────────── */
.cats-section {
  padding: 80px 48px;
}

.cat-circles {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 115px;
  flex-wrap: wrap;
}

.cat-circle-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  width: 160px;
}

.cat-circle-item:hover .cat-circle-img {
  transform: scale(1.05);
  box-shadow: 0 12px 40px rgba(184,149,106,0.25);
}

.cat-circle-img {
  width: 160px;
  height: 160px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid rgba(184,149,106,0.3);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
  background: #fff;
}

.cat-circle-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.cat-circle-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 18px;
  gap: 6px;
}

.cat-circle-name {
  font-family: var(--serif);
  font-size: 1.1rem;
  font-weight: 400;
  color: var(--text-dark);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.cat-circle-sub {
  font-size: 9px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--text-light);
}

/* ─── PRODUCT GRID ─────────────────────────────────────────────────── */
.arrivals {
  padding: 60px 48px;
}

.product-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.product-card {
  background: var(--white);
  position: relative;
}

.product-card:hover .product-overlay {
  opacity: 1;
}

.product-card:hover .product-img img {
  transform: scale(1.05);
}

.product-img {
  aspect-ratio: 1/1;
  overflow: hidden;
  background: #ddd5c8;
  position: relative;
  display: block;
}

.product-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.product-overlay {
  position: absolute;
  inset: 0;
  background: rgba(10,9,7,0.3);
  opacity: 0;
  transition: opacity 0.25s;
  display: flex;
  align-items: flex-end;
  padding: 16px;
}

.product-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--obsidian);
  color: #fff;
  font-size: 8px;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 5px 10px;
  z-index: 2;
}

.product-badge.badge-bestseller {
  background: var(--gold);
}

.product-info {
  padding: 14px 12px 16px;
}

.product-name {
  font-family: var(--serif);
  font-size: 0.95rem;
  font-weight: 400;
  color: var(--text-dark);
  display: block;
  margin-bottom: 4px;
}

.product-price {
  font-size: 0.8rem;
  color: var(--text-mid);
}

.add-to-cart-btn {
  font-size: 9px;
  padding: 10px 18px;
}

/* ─── ABOUT SECTION ────────────────────────────────────────────────── */
.about-section {
  border-top: 1px solid rgba(184,149,106,0.2);
  border-bottom: 1px solid rgba(184,149,106,0.2);
  overflow: hidden;
}

.about-inner {
  display: grid;
  grid-template-columns: 52% 48%;
  min-height: 560px;
}

.about-img {
  overflow: hidden;
  background: #c8bfb3;
  position: relative;
}

.about-img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, transparent 70%, var(--bg) 100%);
  pointer-events: none;
}

.about-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.about-body {
  padding: 60px 60px 60px 50px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--bg);
  position: relative;
}

.about-body::before {
  content: '';
  position: absolute;
  left: 0;
  top: 15%;
  height: 70%;
  width: 1px;
  background: linear-gradient(to bottom, transparent, var(--gold-light), transparent);
}

.about-rule {
  width: 45px;
  height: 1px;
  background: var(--gold);
  margin-bottom: 24px;
}

.about-title {
  font-family: var(--serif);
  font-size: clamp(2rem, 3vw, 2.8rem);
  font-weight: 300;
  color: var(--text-dark);
  line-height: 1.1;
  margin-bottom: 12px;
}

.about-title em {
  font-style: italic;
  color: var(--gold);
}

.about-title-rule {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 28px;
}

.about-title-rule span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold);
}

.about-title-rule::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--stone-light);
}

.about-attrs {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 24px;
}

.about-attr {
  font-size: 10px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--text-mid);
  padding: 10px 16px;
  background: rgba(255,255,255,0.5);
  border-left: 2px solid var(--gold);
  transition: background 0.25s;
}

.about-attr:hover {
  background: var(--gold-pale);
}

.about-copy {
  font-size: 0.9rem;
  line-height: 1.85;
  color: var(--text-mid);
  margin-bottom: 32px;
  max-width: 380px;
}

.about-cta-row {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

.about-stat {
  display: flex;
  flex-direction: column;
}

.about-stat-num {
  font-family: var(--serif);
  font-size: 1.8rem;
  font-weight: 300;
  color: var(--text-dark);
  line-height: 1;
}

.about-stat-label {
  font-size: 8px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--text-light);
  margin-top: 4px;
}

/* ─── CRAFTED TO LAST ──────────────────────────────────────────────── */
/* ═══════════════════════════════════════════════════════════════════
   CRAFTED BANNER — FULLY ANIMATED CAROUSEL
   ═══════════════════════════════════════════════════════════════════ */

.crafted-banner {
  position: relative;
  min-height: 92vh;
  overflow: hidden;
  display: flex;
  align-items: stretch;
  border-top: 1px solid rgba(184,149,106,0.2);
  border-bottom: 1px solid rgba(184,149,106,0.2);
  background: var(--obsidian);
}

/* ── Slides ────────────────────────────────────────────────────────── */
.crafted-slides {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.crafted-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: scale(1.08);
  will-change: opacity, transform;
  transition: opacity 1.4s cubic-bezier(0.4, 0, 0.2, 1),
              transform 7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

.crafted-slide.active {
  opacity: 1;
  transform: scale(1);
}

/* ── Gradient overlay ──────────────────────────────────────────────── */
.crafted-gradient-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(
    105deg,
    rgba(17,16,16,0.78) 0%,
    rgba(17,16,16,0.55) 35%,
    rgba(17,16,16,0.3) 60%,
    rgba(17,16,16,0.12) 100%
  );
  pointer-events: none;
}

/* ── Gold particles ────────────────────────────────────────────────── */
.crafted-particles {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  overflow: hidden;
}

.crafted-particle {
  position: absolute;
  width: 3px;
  height: 3px;
  background: var(--gold);
  border-radius: 50%;
  opacity: 0;
  box-shadow: 0 0 6px var(--gold-light), 0 0 12px var(--gold);
  animation: particleFloat 8s linear infinite;
}

.crafted-particle:nth-child(1) { left: 15%; top: 80%; animation-delay: 0s;    animation-duration: 9s; }
.crafted-particle:nth-child(2) { left: 35%; top: 70%; animation-delay: 2s;    animation-duration: 7s; }
.crafted-particle:nth-child(3) { left: 55%; top: 85%; animation-delay: 4s;    animation-duration: 10s; }
.crafted-particle:nth-child(4) { left: 75%; top: 75%; animation-delay: 1s;    animation-duration: 8s; }
.crafted-particle:nth-child(5) { left: 90%; top: 90%; animation-delay: 3s;    animation-duration: 11s; }
.crafted-particle:nth-child(6) { left: 8%;  top: 60%; animation-delay: 5s;    animation-duration: 9s;  width: 4px; height: 4px; }
.crafted-particle:nth-child(7) { left: 48%; top: 55%; animation-delay: 6s;    animation-duration: 8s;  width: 2px; height: 2px; }
.crafted-particle:nth-child(8) { left: 68%; top: 45%; animation-delay: 2.5s;  animation-duration: 10s; }

@keyframes particleFloat {
  0%   { opacity: 0; transform: translateY(0)   translateX(0)   scale(0.6); }
  15%  { opacity: 0.9; }
  85%  { opacity: 0.5; }
  100% { opacity: 0; transform: translateY(-480px) translateX(36px) scale(1.2); }
}

/* ── Content overlay ────────────────────────────────────────────────── */
.crafted-content {
  position: relative;
  z-index: 5;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 120px 48px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: #fff;
}

.crafted-rule {
  width: 60px;
  height: 1px;
  background: var(--gold);
  margin-bottom: 28px;
  transform-origin: left;
  animation: drawLine 1.2s cubic-bezier(0.77, 0, 0.175, 1) both;
}

.crafted-eyebrow {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 5px;
  text-transform: uppercase;
  color: var(--gold-light);
  margin-bottom: 20px;
  display: block;
  opacity: 0;
  animation: fadeInUp 0.8s ease 0.3s forwards;
}

.crafted-title {
  font-family: var(--serif);
  font-size: clamp(2.8rem, 6vw, 5rem);
  font-weight: 300;
  color: #fff;
  line-height: 1;
  margin-bottom: 24px;
  max-width: 750px;
  opacity: 0;
  animation: fadeInUp 1s ease 0.5s forwards;
}

.crafted-title em {
  font-style: italic;
  color: var(--gold-light);
  position: relative;
  display: inline-block;
  white-space: nowrap;
}

.crafted-title em::after {
  content: '';
  position: absolute;
  bottom: 4px;
  left: 0;
  width: 100%;
  height: 1px;
  background: var(--gold-light);
  transform: scaleX(0);
  transform-origin: left;
  animation: drawLine 1s ease 1.2s forwards;
}

.crafted-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 32px;
  opacity: 0;
  animation: fadeInUp 0.8s ease 0.8s forwards;
}

.crafted-pill {
  font-size: 9px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.85);
  padding: 10px 18px;
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.2);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: all 0.3s ease;
  cursor: default;
}

.crafted-pill:hover {
  background: var(--gold);
  color: #fff;
  border-color: var(--gold);
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(184, 149, 106, 0.35);
}

.crafted-copy {
  font-size: 0.95rem;
  line-height: 1.85;
  color: rgba(255,255,255,0.8);
  max-width: 480px;
  margin-bottom: 40px;
  opacity: 0;
  animation: fadeInUp 0.8s ease 1s forwards;
}

.crafted-cta-row {
  display: flex;
  align-items: center;
  gap: 36px;
  flex-wrap: wrap;
  opacity: 0;
  animation: fadeInUp 0.8s ease 1.2s forwards;
}

.crafted-stat {
  display: flex;
  flex-direction: column;
}

.crafted-stat-num {
  font-family: var(--serif);
  font-size: 2rem;
  font-weight: 300;
  color: var(--gold-light);
  line-height: 1;
}

.crafted-stat-label {
  font-size: 8px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
  margin-top: 6px;
}

/* ── Arrow navigation ───────────────────────────────────────────────── */
.crafted-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.25);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 6;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: all 0.3s ease;
  font-size: 22px;
  font-family: var(--serif);
  line-height: 1;
  padding: 0;
}

.crafted-arrow:hover {
  background: var(--gold);
  border-color: var(--gold);
  transform: translateY(-50%) scale(1.1);
  box-shadow: 0 6px 20px rgba(184, 149, 106, 0.4);
}

.crafted-arrow--prev { left: 32px; }
.crafted-arrow--next { right: 32px; }

/* ── Slide dots ─────────────────────────────────────────────────────── */
.crafted-dots {
  position: absolute;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 6;
}

.crafted-dot {
  width: 28px;
  height: 2px;
  background: rgba(255,255,255,0.3);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

.crafted-dot.active {
  background: rgba(255,255,255,0.9);
  width: 48px;
}

.crafted-dot.active::after {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--gold);
  transform-origin: left;
  animation: dotFill 5s linear forwards;
}

@keyframes dotFill {
  to { transform: scaleX(1); }
}

/* ── Scroll hint ───────────────────────────────────────────────────── */
.crafted-scroll-hint {
  position: absolute;
  right: 48px;
  bottom: 40px;
  writing-mode: vertical-rl;
  font-size: 9px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  z-index: 6;
  display: flex;
  align-items: center;
  gap: 12px;
  pointer-events: none;
}

.crafted-scroll-hint::after {
  content: '';
  width: 1px;
  height: 50px;
  background: linear-gradient(to bottom, var(--gold-light), transparent);
  animation: scrollHintLine 2s ease-in-out infinite;
}

@keyframes scrollHintLine {
  0%, 100% { transform: scaleY(0.3); transform-origin: top; }
  50% { transform: scaleY(1); transform-origin: top; }
}


/* ─── EDITORIAL ────────────────────────────────────────────────────── */
.editorial {
  background: var(--bg);
  padding: 80px 48px;
  text-align: center;
  border-top: 1px solid rgba(184,149,106,0.2);
  display: flex;
  align-items: center;
  justify-content: center;
}

.editorial-inner {
  max-width: 480px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.editorial-ornament {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
  width: 120px;
}

.editorial-ornament::before,
.editorial-ornament::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--stone-light);
}

.editorial-ornament span {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--gold);
}

.editorial-title {
  font-family: var(--serif);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 300;
  color: var(--text-dark);
  line-height: 1.1;
  margin-bottom: 10px;
}

.editorial-title em {
  font-style: italic;
  color: var(--gold);
}

.editorial-sub {
  font-size: 9px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--text-light);
  margin-bottom: 28px;
}

/* ─── FEATURES ─────────────────────────────────────────────────────── */
.features {
  border-top: 1px solid rgba(184,149,106,0.2);
  padding: 80px 48px;
}

.features-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  max-width: 1200px;
  margin: 0 auto;
}

.feature-card {
  background: rgba(255,255,255,0.6);
  padding: 48px 36px;
  text-align: center;
  transition: box-shadow 0.3s;
}

.feature-card:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,0.08);
}

.feature-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(255,255,255,0.9);
  border: 1px solid rgba(184,149,106,0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
  transition: all 0.25s;
}

.feature-card:hover .feature-icon {
  background: var(--gold-pale);
  border-color: var(--gold-light);
}

.feature-icon svg {
  width: 22px;
  height: 22px;
  stroke: var(--gold);
  fill: none;
  stroke-width: 1.5;
}

.feature-card h4 {
  font-family: var(--serif);
  font-size: 1.15rem;
  font-weight: 400;
  margin-bottom: 10px;
  color: var(--text-dark);
}

.feature-card p {
  font-size: 0.85rem;
  color: var(--text-mid);
  line-height: 1.75;
  max-width: 220px;
  margin: 0 auto;
}

/* ─── REVIEWS ──────────────────────────────────────────────────────── */
.reviews {
  border-top: 1px solid rgba(184,149,106,0.2);
  padding: 80px 48px;
}

.reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  max-width: 1200px;
  margin: 0 auto;
}

.review-card {
  padding: 32px 28px;
  border: 1px solid rgba(184,149,106,0.2);
  background: rgba(255,255,255,0.6);
  transition: all 0.25s;
}

.review-card:hover {
  border-color: var(--gold-light);
  box-shadow: 0 8px 28px rgba(184,149,106,0.12);
}

.review-stars {
  color: var(--gold);
  font-size: 14px;
  letter-spacing: 2px;
  margin-bottom: 16px;
}

.review-text {
  font-family: var(--serif);
  font-size: 1rem;
  font-style: italic;
  line-height: 1.75;
  color: var(--text-dark);
  margin-bottom: 20px;
}

.review-author {
  display: flex;
  align-items: center;
  gap: 12px;
}

.review-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--gold-pale);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--serif);
  font-size: 0.9rem;
  color: var(--gold);
  font-weight: 500;
}

.review-name {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--text-dark);
  margin-bottom: 2px;
}

.review-verified {
  font-size: 0.72rem;
  color: var(--gold);
}

.review-product {
  font-size: 0.72rem;
  color: var(--text-light);
  margin-top: 2px;
}

/* ─── BESTSELLERS ──────────────────────────────────────────────────── */
.bestsellers {
  border-top: 1px solid rgba(184,149,106,0.2);
  padding: 80px 48px;
}

.bs-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  max-width: 1200px;
  margin: 0 auto;
}

.bs-card {
  display: block;
  position: relative;
  transition: transform 0.4s ease;
}

.bs-card:hover {
  transform: translateY(-6px);
}

.bs-img {
  aspect-ratio: 1/1;
  overflow: hidden;
  background: rgba(255,255,255,0.7);
  margin-bottom: 14px;
  position: relative;
  display: block;
}

.bs-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.bs-card:hover .bs-img img {
  transform: scale(1.05);
}

.bs-overlay {
  position: absolute;
  inset: 0;
  background: rgba(10,9,7,0.3);
  opacity: 0;
  transition: opacity 0.25s;
  display: flex;
  align-items: flex-end;
  padding: 16px;
}

.bs-card:hover .bs-overlay {
  opacity: 1;
}

.bs-rank {
  font-size: 8px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 4px;
}

.bs-name {
  font-family: var(--serif);
  font-size: 0.95rem;
  font-weight: 400;
  color: var(--text-dark);
  margin-bottom: 4px;
}

.bs-price {
  font-size: 0.78rem;
  color: var(--text-mid);
}

/* ─── TRUST BAR ────────────────────────────────────────────────────── */
.trust-bar {
  background: var(--bg);
  border-top: 1px solid rgba(184,149,106,0.2);
  border-bottom: 1px solid rgba(184,149,106,0.2);
}

.trust-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.trust-item {
  padding: 26px 28px;
  display: flex;
  align-items: center;
  gap: 16px;
  border-right: 1px solid rgba(184,149,106,0.2);
}

.trust-item:last-child {
  border-right: none;
}

.trust-icon-wrap {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--gold-pale);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.25s;
}

.trust-item:hover .trust-icon-wrap {
  background: rgba(184,149,106,0.25);
}

.trust-icon-wrap svg {
  width: 18px;
  height: 18px;
  stroke: var(--gold);
  fill: none;
  stroke-width: 1.5;
}

.trust-label {
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text-dark);
  margin-bottom: 3px;
}

.trust-sub {
  font-size: 0.75rem;
  color: var(--text-light);
}

/* ─── GALLERY ──────────────────────────────────────────────────────── */
.gallery {
  border-top: 1px solid rgba(184,149,106,0.2);
  padding: 80px 48px;
}

.gallery-title-row {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  margin-top: 8px;
}

.gallery-title-row h3 {
  font-family: var(--serif);
  font-size: 1.6rem;
  font-weight: 300;
  color: var(--text-dark);
}

.gallery-handle {
  font-size: 0.85rem;
  color: var(--gold);
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 4px;
  max-width: 1100px;
  margin: 0 auto;
}

.gallery-tile {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1;
  display: block;
}

.gallery-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease, filter 0.3s ease;
}

.gallery-tile:hover img {
  transform: scale(1.08);
  filter: brightness(0.6);
}

.gallery-tile-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.25s;
}

.gallery-tile:hover .gallery-tile-overlay {
  opacity: 1;
}

.ig-icon {
  width: 24px;
  height: 24px;
  stroke: #fff;
  fill: none;
  stroke-width: 1.5;
}

/* ─── FOOTER ───────────────────────────────────────────────────────── */
.footer {
  background: var(--obsidian);
  padding: 60px 48px 0;
}

.footer-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
  gap: 40px;
  padding-bottom: 50px;
}

.footer-brand h3 {
  font-family: var(--serif);
  font-size: 1.6rem;
  font-weight: 300;
  color: var(--gold-light);
  margin-bottom: 18px;
}

.footer-brand p {
  font-size: 0.85rem;
  color: var(--stone);
  line-height: 1.8;
  margin-bottom: 20px;
}

.footer-social {
  display: flex;
  gap: 14px;
}

.footer-social a {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.25s;
}

.footer-social a:hover {
  background: rgba(184,149,106,0.25);
}

.footer-social svg {
  width: 18px;
  height: 18px;
  stroke: var(--gold);
  fill: none;
  stroke-width: 1.5;
}

.footer-col h4 {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 20px;
}

.footer-col li {
  margin-bottom: 10px;
}

.footer-col a {
  font-size: 0.85rem;
  color: var(--stone);
  transition: color 0.2s;
}

.footer-col a:hover {
  color: var(--gold-light);
}

.footer-newsletter-text {
  font-size: 0.85rem;
  color: var(--stone);
  margin-bottom: 16px;
  line-height: 1.6;
}

.footer-newsletter {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.footer-newsletter input {
  padding: 12px 14px;
  font-size: 0.85rem;
  background: transparent;
  border: 1px solid rgba(255,255,255,0.2);
  color: #fff;
  outline: none;
  font-family: var(--sans);
}

.footer-newsletter input:focus {
  border-color: var(--gold-light);
}

.footer-newsletter input::placeholder {
  color: var(--stone);
}

.footer-newsletter button {
  padding: 12px;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  background: var(--gold);
  color: #fff;
  border: none;
  cursor: pointer;
  transition: background 0.25s;
  font-family: var(--sans);
}

.footer-newsletter button:hover {
  background: var(--gold-light);
}

.footer-bottom {
  max-width: 1200px;
  margin: 0 auto;
  padding: 28px 0;
  border-top: 1px solid rgba(255,255,255,0.1);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}

.footer-bottom p {
  font-size: 0.75rem;
  color: var(--stone);
}

.footer-bottom-links {
  display: flex;
  gap: 28px;
}

.footer-bottom-links a {
  font-size: 0.75rem;
  color: var(--stone);
  transition: color 0.2s;
}

.footer-bottom-links a:hover {
  color: var(--gold-light);
}

/* ─── CART NOTIFICATION ────────────────────────────────────────────── */
.cart-notification {
  position: fixed;
  bottom: 30px;
  right: 30px;
  background: var(--obsidian);
  color: #fff;
  padding: 16px 28px;
  border-radius: 4px;
  font-size: 14px;
  z-index: 9999;
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.3s ease;
  pointer-events: none;
}

.cart-notification.show {
  opacity: 1;
  transform: translateY(0);
}

/* ─── PAGE HEADER ──────────────────────────────────────────────────── */
.page-header {
  padding: 140px 48px 60px;
  text-align: center;
  background: var(--bg);
  border-bottom: 1px solid rgba(184,149,106,0.2);
}

.page-header h1 {
  font-family: var(--serif);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 300;
  color: var(--text-dark);
}

.page-header p {
  font-size: 0.9rem;
  color: var(--text-mid);
  margin-top: 10px;
}

/* ─── ANIMATIONS ───────────────────────────────────────────────────── */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(40px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInLeft {
  from { opacity: 0; transform: translateX(-50px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes fadeInRight {
  from { opacity: 0; transform: translateX(50px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.85); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes float {
  0%, 100% { transform: translate(-50%, -50%); }
  50% { transform: translate(-50%, -60%); }
}

@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  25% { transform: translateY(-8px); }
  50% { transform: translateY(0); }
  75% { transform: translateY(-4px); }
}

@keyframes glow {
  0%, 100% { box-shadow: 0 0 20px rgba(184, 149, 106, 0.3); }
  50% { box-shadow: 0 0 40px rgba(184, 149, 106, 0.6); }
}

@keyframes drawLine {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

/* Scroll reveal */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-left {
  opacity: 0;
  transform: translateX(-60px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.reveal-left.is-visible {
  opacity: 1;
  transform: translateX(0);
}

.reveal-right {
  opacity: 0;
  transform: translateX(60px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.reveal-right.is-visible {
  opacity: 1;
  transform: translateX(0);
}

.reveal-scale {
  opacity: 0;
  transform: scale(0.85);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.reveal-scale.is-visible {
  opacity: 1;
  transform: scale(1);
}

.delay-1 { transition-delay: 0.1s; }
.delay-2 { transition-delay: 0.2s; }
.delay-3 { transition-delay: 0.3s; }
.delay-4 { transition-delay: 0.4s; }
.delay-5 { transition-delay: 0.5s; }
.delay-6 { transition-delay: 0.6s; }

/* ─── ENHANCED HERO ─────────────────────────────────────────────────── */
.hero-eyebrow {
  position: relative;
  display: inline-block;
  padding-left: 30px;
  animation: fadeInUp 1s ease 0.2s both;
}

.hero-eyebrow::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 20px;
  height: 1px;
  background: rgba(255,255,255,0.5);
  transform: translateY(-50%);
}

.hero-title {
  animation: fadeInUp 1.2s ease 0.4s both;
}

.hero .btn {
  animation: fadeInUp 1s ease 0.8s both;
  position: relative;
  overflow: hidden;
}

.hero .btn::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: width 0.6s ease, height 0.6s ease;
}

.hero .btn:hover::before {
  width: 300px;
  height: 300px;
}

/* ─── ENHANCED MARQUEE ──────────────────────────────────────────────── */
.marquee::before,
.marquee::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100px;
  z-index: 2;
  pointer-events: none;
}

.marquee::before {
  left: 0;
  background: linear-gradient(to right, var(--obsidian), transparent);
}

.marquee::after {
  right: 0;
  background: linear-gradient(to left, var(--obsidian), transparent);
}

/* Need position:relative for the pseudo fades to work */
.marquee {
  position: relative;
}

.marquee-group span {
  position: relative;
  transition: color 0.3s ease;
  cursor: default;
}

.marquee-group span:hover {
  color: var(--gold-light);
}

.marquee-group .dot {
  transition: transform 0.3s ease, background 0.3s ease;
}

.marquee-group:hover .dot {
  transform: scale(1.5);
  background: var(--gold-light);
}

/* ─── ENHANCED CATEGORY CIRCLES ─────────────────────────────────────── */
.cat-circle-item {
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.cat-circle-img {
  position: relative;
}

.cat-circle-img::before {
  content: '';
  position: absolute;
  inset: -8px;
  border: 1px dashed rgba(184, 149, 106, 0.4);
  border-radius: 50%;
  opacity: 0;
  transform: scale(0.8) rotate(0deg);
  transition: all 0.6s ease;
  animation: spin 20s linear infinite;
  pointer-events: none;
}

.cat-circle-item:hover .cat-circle-img::before {
  opacity: 1;
  transform: scale(1) rotate(180deg);
}

.cat-circle-name {
  position: relative;
  display: inline-block;
}

.cat-circle-name::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100%;
  height: 1px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.4s ease;
}

.cat-circle-item:hover .cat-circle-name::after {
  transform: scaleX(1);
  transform-origin: left;
}

/* ─── ENHANCED PRODUCT CARDS ────────────────────────────────────────── */
.product-card {
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.product-card:hover {
  transform: translateY(-8px);
}

.product-card .product-img::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent 0%, rgba(184, 149, 106, 0.15) 50%, transparent 100%);
  opacity: 0;
  z-index: 1;
  transition: opacity 0.4s ease;
  pointer-events: none;
}

.product-card:hover .product-img::before {
  opacity: 1;
}

.product-badge {
  animation: bounce 2s ease-in-out infinite;
  transform-origin: center;
}

.product-info {
  position: relative;
}

.product-name {
  position: relative;
  display: inline-block;
  transition: color 0.3s ease;
}

.product-card:hover .product-name {
  color: var(--gold);
}

.product-price {
  transition: transform 0.3s ease;
}

.product-card:hover .product-price {
  transform: translateX(4px);
}

/* Dim the gift card background image */
.gift-card-img {
  filter: brightness(0.45);
  transition: filter 0.4s ease;
}

.gift-card:hover .gift-card-img {
  filter: brightness(0.35);
}

/* Make the text shine over the dimmed image */
.gift-card-title {
  color: #ffffff;
  text-shadow: 0 2px 12px rgba(0,0,0,0.3);
}

.gift-card-title em {
  color: #f0c97a;
  font-style: italic;
  text-shadow: 0 0 20px rgba(240,180,80,0.6), 0 2px 8px rgba(0,0,0,0.3);
}

.gift-card-tag {
  color: #f0c97a;
  opacity: 1;
}

.gift-card-desc {
  color: rgba(255,255,255,0.88);
  text-shadow: 0 1px 6px rgba(0,0,0,0.4);
}

.gift-card-cta {
  color: #f0c97a;
  border-color: rgba(240,180,80,0.6);
}
/* ─── ENHANCED BUTTONS ──────────────────────────────────────────────── */
.btn {
  position: relative;
  overflow: hidden;
}

.btn::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  background: currentColor;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: width 0.6s ease, height 0.6s ease;
  opacity: 0.1;
  pointer-events: none;
}

.btn:hover::before {
  width: 400px;
  height: 400px;
}

.btn-light:hover,
.btn-gold:hover,
.btn-gold-fill:hover,
.btn-dark:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}

.btn-gold:hover,
.btn-gold-fill:hover {
  box-shadow: 0 10px 25px rgba(184, 149, 106, 0.3);
}

/* ─── ENHANCED FEATURES ─────────────────────────────────────────────── */
.feature-card {
  position: relative;
  transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  overflow: hidden;
}

.feature-icon {
  position: relative;
  transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.feature-card:hover .feature-icon {
  transform: rotateY(360deg) scale(1.1);
}

/* ─── ENHANCED REVIEWS ──────────────────────────────────────────────── */
.review-card {
  position: relative;
  transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.review-card:hover {
  transform: translateY(-8px);
}

.review-card:hover .review-stars {
  animation: pulse 1s ease;
}

.review-avatar {
  transition: transform 0.3s ease, background 0.3s ease, color 0.3s ease;
}

.review-card:hover .review-avatar {
  transform: scale(1.15) rotate(5deg);
  background: var(--gold);
  color: white;
}

/* ─── ENHANCED BESTSELLERS ──────────────────────────────────────────── */
.bs-img {
  position: relative;
  overflow: hidden;
}

.bs-img::after {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: linear-gradient(45deg, transparent 40%, rgba(255, 255, 255, 0.3) 50%, transparent 60%);
  transform: rotate(45deg);
  opacity: 0;
  transition: opacity 0.4s ease;
  pointer-events: none;
}

.bs-card:hover .bs-img::after {
  opacity: 1;
  animation: shimmer 1.5s ease infinite;
}

/* ─── ENHANCED TRUST BAR ────────────────────────────────────────────── */
.trust-item {
  position: relative;
  transition: background 0.3s ease;
}

.trust-item::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 0;
  height: 2px;
  background: var(--gold);
  transform: translateX(-50%);
  transition: width 0.4s ease;
}

.trust-item:hover::before {
  width: 60%;
}

.trust-icon-wrap {
  transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.trust-item:hover .trust-icon-wrap {
  transform: scale(1.15) rotate(10deg);
  animation: glow 2s ease-in-out infinite;
}

/* ─── ENHANCED GALLERY ──────────────────────────────────────────────── */
.gallery-tile {
  transition: transform 0.4s ease;
}

.gallery-tile::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(184, 149, 106, 0.4) 0%, rgba(207, 169, 120, 0.2) 100%);
  opacity: 0;
  transition: opacity 0.4s ease;
  z-index: 1;
  pointer-events: none;
}

.gallery-tile:hover::before {
  opacity: 1;
}

.gallery-tile-overlay svg {
  transition: transform 0.4s ease;
}

.gallery-tile:hover .gallery-tile-overlay svg {
  transform: scale(1.3) rotate(15deg);
}

/* ─── ENHANCED EDITORIAL ────────────────────────────────────────────── */
.editorial-title em {
  position: relative;
  display: inline-block;
}

.editorial-title em::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.6s ease;
}

.editorial:hover .editorial-title em::after {
  transform: scaleX(1);
  transform-origin: left;
}

.editorial-ornament span {
  animation: pulse 2s ease-in-out infinite;
}

/* ─── ENHANCED ABOUT SECTION ────────────────────────────────────────── */
.about-img {
  position: relative;
  overflow: hidden;
}

.about-img::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(45deg, transparent 30%, rgba(184, 149, 106, 0.2) 50%, transparent 70%);
  background-size: 200% 200%;
  z-index: 1;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.4s ease;
}

.about-section:hover .about-img::before {
  opacity: 1;
  animation: shimmer 2s ease infinite;
}

.about-attr {
  position: relative;
  transition: all 0.3s ease;
  overflow: hidden;
  z-index: 1;
}

.about-attr::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 0;
  background: var(--gold);
  transition: width 0.4s ease;
  z-index: -1;
}

.about-attr:hover::before {
  width: 100%;
}

.about-attr:hover {
  color: white;
  padding-left: 24px;
}

/* ─── ENHANCED HEADER ───────────────────────────────────────────────── */
.logo {
  position: relative;
  display: inline-block;
  transition: transform 0.3s ease;
}

.logo::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--gold);
  transition: width 0.4s ease;
}

.logo:hover::after {
  width: 100%;
}

.logo:hover {
  transform: scale(1.05);
}

.nav-link {
  position: relative;
  overflow: hidden;
}

.nav-link::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(184, 149, 106, 0.2), transparent);
  transition: left 0.5s ease;
}

.nav-link:hover::before {
  left: 100%;
}

.cart-icon {
  transition: transform 0.3s ease;
}

.cart-icon:hover {
  transform: scale(1.15) rotate(-10deg);
}

.cart-icon:hover svg {
  stroke: var(--gold);
}

.cart-count {
  transition: transform 0.3s ease, background 0.3s ease;
}

.cart-count.bump {
  animation: pulse 0.5s ease;
}

/* ─── SHOP PAGE FILTER BAR ──────────────────────────────────────────── */
:root {
  --header-h: 70px;
}

.shop-filters {
  position: sticky;
  top: var(--header-h);
  z-index: 999;
  background: rgba(230, 224, 214, 0.98);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(184, 149, 106, 0.2);
  padding: 18px 0;
  margin-bottom: 0;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
  transition: box-shadow 0.3s ease, padding 0.3s ease;
}

.shop-filters.shop-filters-scrolled {
  box-shadow: 0 6px 30px rgba(0, 0, 0, 0.08);
  padding: 14px 0;
}

.shop-filters .container {
  padding: 0 48px;
}

.filter-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}

.filter-categories {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.filter-btn {
  background: transparent;
  border: 1px solid rgba(184, 149, 106, 0.3);
  padding: 10px 20px;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text-mid);
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  font-family: var(--sans);
  position: relative;
  overflow: hidden;
}

.filter-btn::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  background: var(--gold);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: width 0.4s ease, height 0.4s ease;
  z-index: -1;
}

.filter-btn:hover,
.filter-btn.active {
  background: var(--gold);
  border-color: var(--gold);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(184, 149, 106, 0.3);
}

.filter-btn:hover::before,
.filter-btn.active::before {
  width: 200px;
  height: 200px;
}

.filter-sort {
  display: flex;
  align-items: center;
  gap: 8px;
}

.filter-sort label {
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text-light);
}

.filter-sort select {
  padding: 10px 16px;
  font-size: 12px;
  letter-spacing: 1px;
  border: 1px solid rgba(184, 149, 106, 0.3);
  background: rgba(255, 255, 255, 0.5);
  color: var(--text-dark);
  font-family: var(--sans);
  cursor: pointer;
  transition: all 0.25s ease;
  outline: none;
}

.filter-sort select:hover,
.filter-sort select:focus {
  border-color: var(--gold);
  background: white;
}

.shop-products {
  padding: 60px 48px;
}

.shop-products .product-grid {
  grid-template-columns: repeat(4, 1fr);
}

/* ─── GIFT SECTION ──────────────────────────────────────────────────── */
.gifts-section {
  padding: 80px 0;
  background: linear-gradient(180deg, var(--bg) 0%, rgba(243, 232, 212, 0.3) 50%, var(--bg) 100%);
  position: relative;
  overflow: hidden;
}

.gifts-section::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(184, 149, 106, 0.08) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  border-radius: 50%;
  pointer-events: none;
  animation: float 6s ease-in-out infinite;
}

.gifts-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
}

.gift-card {
  position: relative;
  overflow: hidden;
  cursor: pointer;
  aspect-ratio: 5/4;
  background: var(--white);
  transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              box-shadow 0.5s ease;
}

.gift-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(184, 149, 106, 0.85) 0%, rgba(17, 16, 16, 0.7) 100%);
  z-index: 2;
  opacity: 0.4;
  transition: opacity 0.5s ease;
}

.gift-card::after {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: linear-gradient(45deg, transparent 40%, rgba(255, 255, 255, 0.15) 50%, transparent 60%);
  z-index: 3;
  opacity: 0;
  transition: opacity 0.4s ease;
  transform: rotate(45deg);
}

.gift-card:hover::before {
  opacity: 0.65;
}

.gift-card:hover::after {
  opacity: 1;
  animation: shimmer 1.5s ease infinite;
}

.gift-card:hover {
  transform: translateY(-8px) scale(1.01);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.2);
}

.gift-card-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.gift-card:hover .gift-card-img {
  transform: scale(1.1);
}

.gift-card-content {
  position: absolute;
  inset: 0;
  z-index: 4;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 40px;
  color: white;
}

.gift-card-tag {
  font-size: 10px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 14px;
  transform: translateY(10px);
  opacity: 0;
  transition: all 0.5s ease 0.1s;
}

.gift-card:hover .gift-card-tag {
  transform: translateY(0);
  opacity: 1;
}

.gift-card-title {
  font-family: var(--serif);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 300;
  color: white;
  line-height: 1.1;
  margin-bottom: 8px;
  transform: translateY(20px);
  transition: all 0.5s ease 0.2s;
}

.gift-card:hover .gift-card-title {
  transform: translateY(0);
}

.gift-card-title em {
  font-style: italic;
  color: var(--gold-light);
}

.gift-card-desc {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 24px;
  max-width: 320px;
  line-height: 1.6;
  transform: translateY(20px);
  opacity: 0;
  transition: all 0.5s ease 0.3s;
}

.gift-card:hover .gift-card-desc {
  transform: translateY(0);
  opacity: 1;
}

.gift-card-cta {
  display: inline-block;
  font-size: 10px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: white;
  border: 1px solid rgba(255, 255, 255, 0.7);
  padding: 12px 28px;
  transition: all 0.4s ease;
  transform: translateY(20px);
  opacity: 0;
}

.gift-card:hover .gift-card-cta {
  transform: translateY(0);
  opacity: 1;
  transition-delay: 0.4s;
}

.gift-card-cta:hover {
  background: white;
  color: var(--obsidian);
  border-color: white;
}

.gift-icon {
  position: absolute;
  top: 24px;
  right: 24px;
  z-index: 5;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  transition: all 0.4s ease;
}

.gift-card:hover .gift-icon {
  transform: rotate(15deg) scale(1.1);
  background: var(--gold);
}

.gift-icon svg {
  width: 22px;
  height: 22px;
  stroke: white;
  fill: none;
  stroke-width: 1.5;
}

.gift-badges {
  display: flex;
  justify-content: center;
  gap: 32px;
  margin-top: 48px;
  flex-wrap: wrap;
}

.gift-badge {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text-mid);
  cursor: default;
}

.gift-badge-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--gold-pale);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease, background 0.3s ease;
}

.gift-badge:hover .gift-badge-icon {
  transform: scale(1.15) rotate(10deg);
  background: var(--gold);
}

.gift-badge-icon svg {
  width: 14px;
  height: 14px;
  stroke: var(--gold);
  fill: none;
  stroke-width: 1.5;
  transition: stroke 0.3s ease;
}

.gift-badge:hover .gift-badge-icon svg {
  stroke: white;
}

/* ─── MAGAZINE GALLERY ──────────────────────────────────────────────── */
.mag-section {
  background: var(--bg);
  border-top: 1px solid rgba(184,149,106,0.2);
  padding: 80px 0;
  overflow: hidden;
}

.mag-header {
  text-align: center;
  padding: 0 48px 56px;
}

.mag-label {
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--gold);
  display: block;
  margin-bottom: 10px;
}

.mag-title {
  font-family: var(--serif);
  font-size: 2.4rem;
  font-weight: 300;
  color: var(--text-dark);
  line-height: 1.1;
}

.mag-title em { font-style: italic; color: var(--gold); }
.mag-desc { font-size: 0.85rem; color: var(--text-mid); margin-top: 10px; }

.mag-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-template-rows: 260px 260px;
  border-top: 1px solid rgba(0,0,0,0.06);
  border-bottom: 1px solid rgba(0,0,0,0.06);
}

.mag-tile, .mag-text {
  border-right: 1px solid rgba(0,0,0,0.06);
}

.cell-5, .cell-6, .cell-7, .cell-8 {
  border-top: 1px solid rgba(0,0,0,0.06);
}

.cell-1 { grid-column: 1 / 3; grid-row: 1 / 2; }
.cell-2 { grid-column: 3 / 4; grid-row: 1 / 2; }
.cell-3 { grid-column: 4 / 5; grid-row: 1 / 2; }
.cell-4 { grid-column: 5 / 7; grid-row: 1 / 2; }
.cell-5 { grid-column: 1 / 2; grid-row: 2 / 3; }
.cell-6 { grid-column: 2 / 4; grid-row: 2 / 3; }
.cell-7 { grid-column: 4 / 6; grid-row: 2 / 3; }
.cell-8 { grid-column: 6 / 7; grid-row: 2 / 3; }

.mag-tile {
  position: relative;
  overflow: hidden;
  cursor: pointer;
  background: #c8bfb3;
  display: block;
}

.mag-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.7s cubic-bezier(0.25,0.46,0.45,0.94), filter 0.4s ease;
}

.mag-tile:hover img { transform: scale(1.1); filter: brightness(0.45); }

.mag-tile-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.35s ease;
}

.mag-tile:hover .mag-tile-overlay { opacity: 1; }

.ig-ring {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,0.85);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.25s, border-color 0.25s;
}

.mag-tile:hover .ig-ring { background: var(--gold); border-color: var(--gold); }
.ig-ring svg { width: 20px; height: 20px; stroke: #fff; fill: none; stroke-width: 1.5; }

.mag-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 48px 40px;
  position: relative;
}

.mag-text--dark { background: var(--obsidian); }
.mag-text--cream { background: var(--gold-pale); }
.mag-text--gold { background: var(--gold); }

.mag-ornament {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}

.mag-ornament::before,
.mag-ornament::after { content: ''; flex: 1; height: 1px; }

.mag-ornament-d::before,
.mag-ornament-d::after { background: rgba(255,255,255,0.15); }

.mag-ornament-c::before,
.mag-ornament-c::after { background: rgba(184,149,106,0.35); }

.mag-ornament span { width: 5px; height: 5px; border-radius: 50%; flex-shrink: 0; }
.mag-ornament-d span { background: var(--gold); }
.mag-ornament-c span { background: var(--gold); }

.mag-eyebrow {
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 3.5px;
  text-transform: uppercase;
  margin-bottom: 12px;
  display: block;
}

.mag-eyebrow--d { color: rgba(255,255,255,0.45); }
.mag-eyebrow--c { color: var(--gold); }
.mag-eyebrow--g { color: rgba(255,255,255,0.7); }

.mag-headline { font-family: var(--serif); font-weight: 300; line-height: 1.08; }
.mag-headline--xl { font-size: 2.6rem; }
.mag-headline--lg { font-size: 2rem; }
.mag-headline--md { font-size: 1.5rem; }
.mag-headline--d { color: #fff; }
.mag-headline--c { color: var(--text-dark); }
.mag-headline--g { color: #fff; }
.mag-headline em { font-style: italic; }
.mag-headline--d em { color: var(--gold-light); }
.mag-headline--c em { color: var(--gold); }

.mag-body { font-size: 0.8rem; line-height: 1.75; margin-top: 12px; }
.mag-body--d { color: rgba(255,255,255,0.5); }

.mag-cta {
  display: inline-block;
  margin-top: 20px;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  padding: 11px 24px;
  transition: all 0.25s;
}

.mag-cta--d { color: #fff; border: 1px solid rgba(255,255,255,0.3); }
.mag-cta--d:hover { background: #fff; color: var(--obsidian); }
.mag-cta--c { color: var(--gold); border: 1px solid var(--gold); }
.mag-cta--c:hover { background: var(--gold); color: #fff; }
.mag-cta--g { color: #fff; border: 1px solid rgba(255,255,255,0.5); }
.mag-cta--g:hover { background: #fff; color: var(--obsidian); }

.mag-handle-tag {
  position: absolute;
  bottom: 20px;
  right: 20px;
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.mag-handle-tag--d { color: rgba(255,255,255,0.2); }
.mag-handle-tag--c { color: rgba(184,149,106,0.4); }

.mag-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 28px 48px 0;
  flex-wrap: wrap;
  gap: 16px;
}

.mag-bar-left { display: flex; align-items: center; gap: 28px; }
.mag-bar-stat { display: flex; flex-direction: column; }

.mag-bar-num {
  font-family: var(--serif);
  font-size: 1.6rem;
  font-weight: 300;
  color: var(--text-dark);
}

.mag-bar-label {
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text-light);
  margin-top: 2px;
}

.mag-bar-divider { width: 1px; height: 36px; background: rgba(184,149,106,0.25); }

.mag-follow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 12px 28px;
  border: 1px solid var(--obsidian);
  color: var(--obsidian);
  background: transparent;
  transition: all 0.25s;
  text-decoration: none;
}

.mag-follow:hover { background: var(--obsidian); color: #fff; }
.mag-follow svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 1.5; }

/* ─── RESPONSIVE ───────────────────────────────────────────────────── */

/* Tablet (≤ 1024px) */
@media (max-width: 1024px) {
  .container,
  .header-inner {
    padding: 0 24px;
  }

  .hero {
    height: calc(100vh - 70px);
    background-position: 65% center; /* shift right to keep the model in frame */
    padding: 0 24px 60px;
  }

  .cats-section,
  .arrivals,
  .features,
  .reviews,
  .bestsellers,
  .gallery,
  .editorial {
    padding-left: 24px;
    padding-right: 24px;
  }

  .footer {
    padding: 50px 24px 0;
  }

  .product-grid,
  .bs-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .features-grid,
  .reviews-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .about-inner {
    grid-template-columns: 1fr;
  }

  .about-img {
    height: 350px;
  }

  .about-img::after {
    background: linear-gradient(to top, var(--bg) 0%, transparent 30%);
  }

  .about-body {
    padding: 50px 36px;
  }

  .about-body::before {
    display: none;
  }

  .trust-inner {
    grid-template-columns: repeat(2, 1fr);
  }

  .gallery-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .footer-inner {
    grid-template-columns: repeat(2, 1fr);
  }

  .nav {
    display: none;
  }

  .mobile-menu-btn {
    display: flex;
  }

  .gifts-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .gift-card-content {
    padding: 30px 24px;
  }

  /* Crafted: collapse to single column on tablet */
  .crafted-content-wrap {
    padding: 0 24px 48px;
    margin-top: 24px;
  }

  .crafted-content {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .crafted-content > .crafted-rule,
  .crafted-content > .crafted-eyebrow,
  .crafted-content > .crafted-title {
    grid-column: 1 / -1;
  }

  .crafted-pills {
    grid-column: 1 / -1;
    grid-row: auto;
  }

  .crafted-img-wrap { max-height: 400px; }
  .crafted-img-wrap img { max-height: 400px; }

  .crafted-overlay {
    background: linear-gradient(to bottom, transparent 20%, rgba(230,224,214,0.7) 65%, rgba(230,224,214,1) 100%);
  }

  /* Mag grid tablet */
  .mag-grid {
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: 220px 220px 220px;
  }

  .cell-1 { grid-column: 1 / 3; grid-row: 1 / 2; }
  .cell-2 { grid-column: 3 / 5; grid-row: 1 / 2; }
  .cell-3 { grid-column: 1 / 2; grid-row: 2 / 3; }
  .cell-4 { grid-column: 2 / 4; grid-row: 2 / 3; }
  .cell-5 { grid-column: 4 / 5; grid-row: 2 / 3; }
  .cell-6 { grid-column: 1 / 3; grid-row: 3 / 4; }
  .cell-7 { grid-column: 3 / 5; grid-row: 3 / 4; }
  .cell-8 { display: none; }

  .mag-text { padding: 36px 28px; }
  .mag-headline--xl { font-size: 2rem; }

  /* Shop filters */
  .shop-filters .container {
    padding: 0 24px;
  }

  .shop-products {
    padding: 40px 24px;
  }

  .shop-products .product-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Mobile (≤ 600px) */
@media (max-width: 600px) {
  :root {
    --header-h: 60px;
  }

  .hero {
    height: 68vh !important;           /* your preferred perfect reduced banner size */
    min-height: 380px !important;
    max-height: 560px !important;
    width: 100vw !important;           /* forces full viewport width — kills side gaps */
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
    overflow: hidden !important;
    background: #111;
    left: 0 !important;
    right: 0 !important;
  }

  .hero picture {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 1;
  }

  .hero-img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 26% !important;  /* entire image visible + 100% height + width fill (no gaps) */
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 1;
  }

  .hero-content {
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: center !important;
    padding: 0 20px 42px !important;  /* "Shop Now" fully visible with breathing room */
    z-index: 2 !important;
  }

  .qv-img-wrap {
    width: 100%;
  }

  .cart-item-details{
    margin-left: 15px;
  }

  .hero-title {
    font-size: clamp(2.4rem, 10vw, 4rem);
  }

  .container,
  .header-inner {
    padding: 0 16px;
  }

  .header-inner {
    height: 60px;
  }

  .exception{
    padding-left: 25px;
  }
  

  .cats-section,
  .arrivals,
  .features,
  .reviews,
  .bestsellers,
  .gallery,
  .editorial {
    padding: 50px 16px;
  }

  .cat-circles {
    gap: 20px;
  }

  .cat-circle-item {
    width: 130px;
  }

  .cat-circle-img {
    width: 130px;
    height: 130px;
  }

  .product-grid,
  .bs-grid {
    gap: 10px;
  }

  .about-img {
    height: 280px;
  }

  .about-body {
    padding: 36px 16px;
  }

  .about-title {
    font-size: clamp(1.8rem, 6vw, 2.4rem);
  }

  .trust-inner {
    grid-template-columns: 1fr 1fr;
  }

  .trust-item {
    padding: 16px 14px;
    flex-direction: column;
    text-align: center;
    gap: 10px;
  }

  .footer {
    padding: 40px 16px 0;
  }

  .footer-inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .footer-bottom {
    flex-direction: column;
    text-align: center;
    padding: 24px 0;
  }

  .footer-bottom-links {
    gap: 20px;
    flex-wrap: wrap;
    justify-content: center;
  }

  .mobile-menu {
    padding: 16px;
  }

  .page-header {
    padding: 120px 16px 50px;
  }

  .gifts-section {
    padding: 50px 0;
  }

  .gift-card {
    aspect-ratio: 4/3;
  }

  .gift-card-content {
    padding: 24px 20px;
  }

  .gift-card-title {
    font-size: clamp(1.6rem, 6vw, 2rem);
  }

  .gift-badges {
    gap: 18px;
    margin-top: 32px;
  }

  /* Crafted: small mobile */
  .crafted-content-wrap {
    padding: 0 16px 40px;
    margin-top: 16px;
  }

  .crafted-content {
    padding-top: 32px;
    gap: 18px;
  }

  .crafted-img-wrap { max-height: 260px; }
  .crafted-img-wrap img { max-height: 260px; object-position: center 10%; }

  /* Mag grid mobile */
  .mag-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 180px 180px 200px;
  }

  .cell-1 { grid-column: 1 / 3; grid-row: 1 / 2; }
  .cell-2 { grid-column: 1 / 2; grid-row: 2 / 3; }
  .cell-3 { grid-column: 2 / 3; grid-row: 2 / 3; }
  .cell-4 { display: none; }
  .cell-5 { display: none; }
  .cell-6 { grid-column: 1 / 3; grid-row: 3 / 4; }
  .cell-7 { display: none; }
  .cell-8 { display: none; }

  .mag-text { padding: 28px 24px; }
  .mag-headline--xl { font-size: 1.7rem; }
  .mag-bar { flex-direction: column; align-items: flex-start; padding: 24px 24px 0; }

  /* Shop filters mobile */
  .shop-filters {
    padding: 14px 0;
    top: var(--header-h);
  }

  .shop-filters .container {
    padding: 0 16px;
  }

  .shop-products {
    padding: 30px 16px;
  }

  .filter-categories {
    width: 100%;
    justify-content: center;
  }

  .filter-btn {
    padding: 8px 14px;
    font-size: 9px;
  }

  .filter-sort {
    width: 100%;
    justify-content: center;
  }

  .filter-sort select {
    width: 100%;
  }
}