/** Shopify CDN: Minification failed

Line 2306:5 Unexpected "\"interim CSS written\""

**/
/* =====================================================
   GALLO JEWELRY — Site stylesheet
   ===================================================== */

/* -------- TOKENS -------- */
:root {
  --canvas-pure:#FFFFFF;
  --canvas-snow:#FAFAF7;
  --canvas-platinum:#F4F1EC;
  --canvas-pearl:#EDE8E0;
  --canvas-bone:#E8E2D5;
  --canvas-noir:#1A1A1A;

  --ink-noir:#1A1A1A;
  --ink-graphite:#2E2E2E;
  --ink-shadow:#525252;
  --ink-stone:#8A8A8A;
  --ink-mist:#B8B8B8;
  --ink-invert:#FFFFFF;

  --line-hair:#E5E5E5;
  --line-soft:#EFECE7;
  --line-strong:#D4D4D4;
  --line-noir:#1A1A1A;

  --accent-champagne:#B89968;
  --accent-success:#5B7361;
  --accent-error:#8E2F2F;

  --metal-yellow:#D4AF6A;
  --metal-rose:#D49B8B;
  --metal-white:#E8E8E5;
  --metal-platinum:#DEDDD9;

  --font-serif:"Cormorant Garamond","Times New Roman",Georgia,serif;
  --font-sans:"Inter","Helvetica Neue","Avenir Next",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,monospace;

  --z-announce:60;
  --z-utility:55;
  --z-header:50;
  --z-megamenu:45;
  --z-sticky:40;
  --z-modal:90;
  --z-toast:100;
}

/* -------- RESET -------- */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family:var(--font-sans);
  font-size:15px;
  color:var(--ink-graphite);
  background:var(--canvas-pure);
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
a { color:inherit; text-decoration:none; }
button { background:none; border:0; cursor:pointer; font:inherit; color:inherit; }
ul, ol { list-style:none; }
img { display:block; max-width:100%; }
input, textarea, select { font:inherit; color:inherit; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* -------- LAYOUT -------- */
.container { max-width:1440px; margin:0 auto; padding:0 48px; }
@media (max-width:1024px) { .container { padding:0 32px; } }
@media (max-width:768px)  { .container { padding:0 16px; } }

.section { padding:96px 0; }
.section-sm { padding:64px 0; }
@media (max-width:768px) { .section { padding:64px 0; } .section-sm { padding:48px 0; } }

.band-pure     { background:var(--canvas-pure); }
.band-snow     { background:var(--canvas-snow); }
.band-platinum { background:var(--canvas-platinum); }
.band-pearl    { background:var(--canvas-pearl); }
.band-noir     { background:var(--canvas-noir); color:var(--ink-invert); }

.center { text-align:center; }
.max-w-720 { max-width:720px; margin:0 auto; }
.max-w-560 { max-width:560px; margin:0 auto; }
.max-w-460 { max-width:460px; }
.max-w-540 { max-width:540px; }

.section-head { text-align:center; margin-bottom:64px; }
.section-head h2 { margin-top:12px; }
@media (max-width:768px) { .section-head { margin-bottom:40px; } }

/* -------- TYPOGRAPHY -------- */
.eyebrow      { font-size:.6875rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; line-height:1.2; color:var(--ink-shadow); }
.eyebrow-champ { font-size:.6875rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; line-height:1.2; color:var(--accent-champagne); }
.nav-link     { font-size:.8125rem; letter-spacing:.12em; text-transform:uppercase; line-height:1; }
.button-text  { font-size:.8125rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; line-height:1; }
.display-xl   { font-family:var(--font-serif); font-size:4.5rem; font-weight:400; line-height:1.05; letter-spacing:-.015em; color:var(--ink-noir); }
.display-lg   { font-family:var(--font-serif); font-size:3.5rem; font-weight:400; line-height:1.10; letter-spacing:-.01em; color:var(--ink-noir); }
.display-md   { font-family:var(--font-serif); font-size:2.5rem; font-weight:400; line-height:1.15; color:var(--ink-noir); }
.display-sm   { font-family:var(--font-serif); font-size:1.875rem; font-weight:400; line-height:1.2; color:var(--ink-noir); }
.body-lg      { font-size:1.0625rem; line-height:1.65; letter-spacing:.005em; }
.body-md      { font-size:.9375rem; line-height:1.6; letter-spacing:.01em; }
.body-sm      { font-size:.8125rem; line-height:1.55; letter-spacing:.015em; color:var(--ink-shadow); }
.mono         { font-family:var(--font-mono); font-size:.75rem; letter-spacing:0; }
.price-tk     { font-size:.9375rem; font-weight:500; letter-spacing:.01em; }

@media (max-width:768px) {
  .display-xl { font-size:2.75rem; }
  .display-lg { font-size:2.5rem; }
  .display-md { font-size:1.875rem; }
  .display-sm { font-size:1.5rem; }
}

.color-shadow { color:var(--ink-shadow); }
.color-stone  { color:var(--ink-stone); }
.color-noir   { color:var(--ink-noir); }
.color-champ  { color:var(--accent-champagne); }
.color-success { color:var(--accent-success); }

.mt-1 { margin-top:4px; } .mt-2 { margin-top:8px; } .mt-3 { margin-top:12px; }
.mt-4 { margin-top:16px; } .mt-5 { margin-top:20px; } .mt-6 { margin-top:24px; }
.mt-8 { margin-top:32px; } .mt-10 { margin-top:40px; } .mt-12 { margin-top:48px; }

/* -------- BUTTONS -------- */
.btn {
  display:inline-flex; align-items:center; justify-content:center;
  padding:0 32px; height:48px;
  border:1px solid transparent;
  transition:background 220ms ease, color 220ms ease, border-color 220ms ease;
  cursor:pointer; white-space:nowrap;
}
.btn-lg { height:56px; padding:0 32px; }
.btn-sm { height:36px; padding:0 16px; }
.btn-primary       { background:var(--canvas-noir); color:var(--ink-invert); }
.btn-primary:hover { background:var(--ink-graphite); }
.btn-primary-light       { background:var(--canvas-pure); color:var(--ink-noir); }
.btn-primary-light:hover { background:var(--canvas-snow); }
.btn-secondary       { background:transparent; color:var(--ink-noir); border-color:var(--line-noir); }
.btn-secondary:hover { background:var(--canvas-noir); color:var(--ink-invert); }
.btn-secondary-light       { background:transparent; color:var(--ink-invert); border-color:var(--ink-invert); }
.btn-secondary-light:hover { background:var(--ink-invert); color:var(--ink-noir); }
.btn-tertiary { padding:0; height:auto; border-bottom:1px solid currentColor; padding-bottom:4px; color:var(--ink-noir); display:inline-block; }
.btn-tertiary:hover { color:var(--accent-champagne); }
.btn-full { width:100%; }
.btn-disabled, .btn:disabled { opacity:.5; cursor:not-allowed; }

/* -------- INPUTS -------- */
.input, input[type=text], input[type=email], input[type=tel], input[type=number], select, textarea {
  width:100%; height:48px; padding:0 16px;
  background:var(--canvas-pure);
  border:1px solid var(--line-hair);
  color:var(--ink-noir);
  outline:0; transition:border-color 220ms ease;
}
.input:focus, input:focus, select:focus, textarea:focus { border-color:var(--line-noir); }
textarea { height:auto; padding:12px 16px; line-height:1.55; }
input::placeholder, textarea::placeholder { color:var(--ink-stone); }

.field { display:block; }
.field-label {
  display:flex; align-items:center; gap:8px;
  font-size:.6875rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  color:var(--ink-noir); margin-bottom:8px;
}
.req-dot { width:4px; height:4px; border-radius:999px; background:var(--accent-champagne); }

/* -------- ANNOUNCEMENT BAR -------- */
.announce {
  height:32px;
  background:var(--canvas-noir);
  color:var(--ink-invert);
  display:flex; align-items:center; justify-content:center;
  position:relative; z-index:var(--z-announce);
}
.announce p { font-size:.6875rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; }

/* -------- UTILITY BAR -------- */
.utility {
  height:40px;
  background:var(--canvas-pure);
  border-bottom:1px solid var(--line-hair);
  position:relative; z-index:var(--z-utility);
}
.utility-inner { height:100%; display:flex; align-items:center; justify-content:space-between; }
.utility ul { display:flex; gap:32px; }
.utility a, .utility span { color:var(--ink-shadow); font-size:.8125rem; letter-spacing:.015em; transition:color 220ms ease; }
.utility a:hover { color:var(--ink-noir); }
@media (max-width:768px) { .utility { display:none; } }

/* -------- HEADER -------- */
header.main {
  position:sticky; top:0; z-index:var(--z-header);
  background:var(--canvas-pure); border-bottom:1px solid var(--line-hair);
}
.logo-row { height:88px; position:relative; }
.logo-row-inner { height:100%; display:flex; align-items:center; justify-content:space-between; }
.wordmark { font-family:var(--font-serif); font-size:1.875rem; letter-spacing:.25em; color:var(--ink-noir); position:absolute; left:50%; transform:translateX(-50%); }
.icon-btn {
  width:40px; height:40px;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid transparent; transition:border-color 220ms ease;
  position:relative;
}
.icon-btn:hover { border-color:var(--line-hair); }
.icon-cluster { display:flex; gap:8px; }
.cart-count {
  position:absolute; top:-2px; right:-2px;
  width:16px; height:16px; border-radius:999px;
  background:var(--canvas-noir); color:var(--ink-invert);
  font-size:.625rem; font-weight:500;
  display:flex; align-items:center; justify-content:center;
}

.nav-row { height:48px; border-top:1px solid var(--line-hair); }
.nav-row ul { height:100%; display:flex; align-items:center; justify-content:center; gap:32px; color:var(--ink-noir); flex-wrap:nowrap; }
.nav-row a { font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; transition:color 220ms ease; white-space:nowrap; }
.nav-row a:hover, .nav-row a.active { color:var(--accent-champagne); }
@media (max-width:1100px){ .nav-row ul { gap:22px; } .nav-row a { font-size:.6875rem; letter-spacing:.1em; } }

@media (max-width:768px) {
  .logo-row { height:64px; }
  .wordmark { font-size:1.125rem; letter-spacing:.22em; }
  .nav-row { display:none; }
}

/* -------- MEGA MENU -------- */
.mega-menu {
  position:absolute; left:0; right:0; top:100%;
  background:var(--canvas-pure);
  border-top:1px solid var(--line-hair);
  border-bottom:1px solid var(--line-hair);
  z-index:var(--z-megamenu);
  opacity:0; visibility:hidden; transform:translateY(-4px);
  transition:opacity 220ms ease, visibility 220ms ease, transform 220ms ease;
}
.mega-menu.open { opacity:1; visibility:visible; transform:translateY(0); }

/* Multi-panel mega menu: only the active panel renders */
.mega-panel { display:none; }
.mega-menu[data-active="engagement"] [data-panel="engagement"],
.mega-menu[data-active="wedding"] [data-panel="wedding"],
.mega-menu[data-active="diamonds"] [data-panel="diamonds"],
.mega-menu[data-active="jewelry"] [data-panel="jewelry"],
.mega-menu[data-active="watches"] [data-panel="watches"],
.mega-menu[data-active="gemstones"] [data-panel="gemstones"] { display:block; }

/* Different panels have different column layouts */
.mega-inner { padding:48px 0; display:grid; grid-template-columns:200px 1fr 240px; gap:48px; }
[data-panel="wedding"] .mega-inner,
[data-panel="jewelry"] .mega-inner,
[data-panel="watches"] .mega-inner,
[data-panel="gemstones"] .mega-inner {
  grid-template-columns:1fr 1fr 1fr 240px;
}
[data-panel="diamonds"] .mega-inner {
  grid-template-columns:1fr 2fr 1fr;
}
.mega-feature img { width:100%; height:100%; object-fit:cover; display:block; }
.mega-col h4 { font-size:.6875rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-shadow); margin-bottom:24px; }
.mega-col li { padding:6px 0; }
.mega-col a { font-size:.9375rem; color:var(--ink-noir); transition:color 220ms ease; }
.mega-col a:hover { color:var(--accent-champagne); }
.mega-feature .feature-img { aspect-ratio:4/5; background:var(--canvas-platinum); margin-bottom:16px; position:relative; overflow:hidden; }
.mega-feature .feature-img svg { position:absolute; inset:0; width:100%; height:100%; }
.mega-feature .eyebrow { color:var(--ink-shadow); }
.mega-feature h5 { font-family:var(--font-serif); font-size:1.5rem; color:var(--ink-noir); margin-top:4px; }
.shape-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:14px 12px; }
.shape-item { display:flex; flex-direction:column; align-items:center; gap:6px; text-decoration:none; }
.shape-icon { width:48px; height:48px; display:flex; align-items:center; justify-content:center; }
.shape-icon img { width:40px; height:40px; object-fit:contain; display:block; }
.shape-item span { font-size:.6875rem; letter-spacing:.06em; color:var(--ink-graphite); text-transform:uppercase; }
.shape-item:hover span { color:var(--accent-champagne); }
.shape-item:hover .shape-icon img { transform:scale(1.08); }
.shape-icon img { transition:transform 220ms ease; }

/* ── Mega-menu upgrades (#1–#6) ─────────────────────────────────────────── */
/* #6 Active top-nav indicator while its panel is open */
[data-mega].mega-active { color:var(--accent-champagne); }
[data-mega] { position:relative; }
[data-mega].mega-active::after {
  content:''; position:absolute; left:0; right:0; bottom:-6px; height:1.5px;
  background:var(--accent-champagne);
}
/* #1 Visible keyboard focus (mouse users unaffected) */
[data-mega]:focus-visible,
.mega-menu a:focus-visible {
  outline:2px solid var(--accent-champagne); outline-offset:3px; border-radius:2px;
}
/* #2 "Shop all X →" link injected at the foot of every panel */
.mega-shopall {
  grid-column:1 / -1; justify-self:start; margin-top:28px;
  font-size:.8125rem; letter-spacing:.08em; text-transform:uppercase; font-weight:500;
  color:var(--ink-noir); display:inline-flex; align-items:center; gap:8px;
  padding-top:18px; border-top:1px solid var(--line-hair); width:100%;
}
.mega-shopall span { transition:transform 220ms ease; display:inline-block; }
.mega-shopall:hover { color:var(--accent-champagne); }
.mega-shopall:hover span { transform:translateX(4px); }
/* #5 Featured slot reads as a card: hover-zoom the image, lift the title */
.mega-feature .feature-img img,
.mega-feature .feature-img svg { transition:transform 500ms ease; }
.mega-feature:hover .feature-img img,
.mega-feature:hover .feature-img svg { transform:scale(1.05); }
.mega-feature h5 { transition:color 220ms ease; }
.mega-feature:hover h5 { color:var(--accent-champagne); }
/* #4 A small line-icon before every menu link (matches the live site) */
.mega-col li { position:relative; }
.mega-col li a { display:inline-flex; align-items:center; gap:10px; transition:color 220ms ease; }
/* Real icons from the Gallo theme sprite (rings, shapes, colored gemstones) */
.mega-licon {
  width:32px; height:32px; flex:none; display:inline-block;
  background-image:url('https://www.gallojewelry.com/cdn/shop/t/2/assets/tps-header-footer-sprite.svg');
  background-repeat:no-repeat; background-size:auto;
  transition:transform 200ms ease;
}
.mega-col li a:hover .mega-licon { transform:scale(1.08); }
/* Colored gemstones use their own PNG sprite (25px-wide cells) */
.mega-licon--gem {
  width:25px;
  background-image:url('https://www.gallojewelry.com/cdn/shop/t/2/assets/tps-gemstone-menu-sprite.png');
}
/* Shapes shown as an inline icon+label list (like the live "Shop by Shapes"), not a centered grid */
.mega-panel .shape-grid { grid-template-columns:1fr 1fr; gap:12px 20px; }
.mega-panel .shape-item { flex-direction:row; align-items:center; justify-content:flex-start; gap:10px; }
.mega-panel .shape-icon { width:30px; height:30px; }
.mega-panel .shape-icon img { width:28px; height:28px; }
.mega-panel .shape-item span {
  text-transform:none; letter-spacing:normal; font-size:.9375rem; color:var(--ink-noir);
}
.mega-panel .shape-item:hover span { color:var(--accent-champagne); }
/* #3 Consistency: staggered fade so every panel's columns reveal the same way */
.mega-menu.open .mega-inner > * { animation:megaColIn 320ms ease both; }
.mega-menu.open .mega-inner > *:nth-child(2) { animation-delay:40ms; }
.mega-menu.open .mega-inner > *:nth-child(3) { animation-delay:80ms; }
.mega-menu.open .mega-inner > .mega-shopall { animation-delay:120ms; }
@keyframes megaColIn { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce) {
  .mega-menu.open .mega-inner > * { animation:none; }
  .shape-icon img, .mega-feature .feature-img img, .mega-shopall span { transition:none; }
}

/* -------- HERO (clean image, copy on top with text-shadow for legibility) -------- */
.hero {
  position:relative; width:100%;
  height:clamp(560px,70vh,720px);
  overflow:hidden;
  background:#2a2620;
}
.hero-bg { display:none; }
.hero::after { display:none; }
.hero-inner { position:relative; z-index:2; height:100%; display:flex; align-items:flex-end; padding-left:0; max-width:none; padding-bottom:80px; }
.hero .container.hero-inner { padding-left:0; padding-right:24px; max-width:none; }
.hero-copy {
  max-width:520px; color:#1a1a1a; margin-left:96px;
  text-shadow:0 1px 2px rgba(255,255,255,.4);
}
@media (max-width:768px){ .hero-copy { margin-left:24px; max-width:none; } .hero .container.hero-inner { padding-left:0; padding-right:16px; padding-bottom:48px; } }
.hero-copy .display-xl { color:#0a0a0a; margin-top:18px; font-size:3rem; line-height:1.1; font-weight:500; }
.hero-copy .eyebrow { color:#1a1a1a; font-size:.6875rem; font-weight:600; letter-spacing:.18em; }
.hero-copy p.body-lg { margin-top:18px; max-width:440px; color:#1a1a1a; font-size:1rem; line-height:1.55; font-weight:500; }
.hero-ctas {
  display:flex; flex-direction:row; gap:12px; margin-top:28px;
  flex-wrap:nowrap; text-shadow:none;
}
.hero-ctas .btn { white-space:nowrap; }
@media (max-width:600px){
  .hero-copy .display-xl { font-size:2.125rem; }
  .hero-ctas { flex-wrap:wrap; }
}

/* -------- DUAL ENTRY BLOCK (image fills top, copy underneath) -------- */
.dual-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
@media (max-width:768px) { .dual-grid { grid-template-columns:1fr; } }
.dual-card {
  background:var(--canvas-pure);
  overflow:hidden;
  cursor:pointer; transition:background 220ms ease;
  display:flex; flex-direction:column;
  text-decoration:none;
}
.dual-card:hover { background:var(--canvas-pearl); }
.dual-card-illus {
  width:100%;
  aspect-ratio:4/3;
  overflow:hidden;
  display:block;
  background:var(--canvas-snow);
}
.dual-card-illus img {
  width:100%; height:100%;
  object-fit:cover; display:block;
  transition:transform 480ms ease-in-out;
}
.dual-card:hover .dual-card-illus img { transform:scale(1.04); }
.dual-card-content {
  padding:28px 32px 32px;
  display:flex; flex-direction:column;
}
.dual-card-bottom { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.dual-card-bottom .eyebrow { color:var(--ink-shadow); }
.dual-card-bottom h3 { color:var(--ink-noir); margin-top:6px; }
.dual-card-bottom p { color:var(--ink-shadow); margin-top:10px; max-width:320px; }
@media (max-width:768px) {
  .dual-card-illus { aspect-ratio:3/2; }
  .dual-card-content { padding:20px 22px 24px; }
}

/* -------- SHOP BY DIAMOND SHAPE -------- */
.shape-rail {
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:24px;
}
@media (max-width:768px){ .shape-rail{ grid-template-columns:repeat(3, 1fr); gap:16px; } }
@media (max-width:480px){ .shape-rail{ grid-template-columns:repeat(2, 1fr); gap:12px; } }

.shape-card {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:36px 16px;
  text-decoration:none;
  text-align:center;
  border:1px solid var(--line-hair);
  transition:all 220ms ease;
  cursor:pointer;
  background:var(--canvas-pure);
  min-height:200px;
  color:var(--ink-noir);
}
.shape-card:hover {
  border-color:var(--line-strong);
  background:var(--canvas-snow);
  color:var(--ink-noir);
}
.shape-card img {
  width:82px; height:82px;
  object-fit:contain;
  display:block;
  transition:transform 320ms ease;
}
.shape-card:hover img { transform:scale(1.08); }
.shape-card .label {
  font-size:.8125rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-noir);
  margin-top:22px;
  line-height:1;
}
@media (max-width:768px){
  .shape-card { padding:28px 12px; min-height:170px; }
  .shape-card img { width:72px; height:72px; }
  .shape-card .label { font-size:.75rem; margin-top:16px; }
}
@media (max-width:480px){
  .shape-card { padding:22px 8px; min-height:150px; }
  .shape-card img { width:64px; height:64px; }
}

/* -------- SHOP BY CATEGORY GRID -------- */
/* Widen the container only when it wraps the cat-grid so tiles get more room */
.container:has(> .cat-grid),
.container:has(> .section-head + .cat-grid),
#categories > .container { max-width:1800px; padding:0 24px; }
.cat-grid {
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:16px;
}
@media (max-width:1100px){ .cat-grid{ grid-template-columns:repeat(3, 1fr); } }
@media (max-width:768px){  .cat-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:480px){  .cat-grid{ grid-template-columns:repeat(2, 1fr); gap:8px; } }

.cat-card {
  display:block;
  text-decoration:none;
  cursor:pointer;
  text-align:center;
}
.cat-card > img {
  display:block;
  width:100%;
  aspect-ratio:1 / 1;
  object-fit:cover;
  background:var(--canvas-platinum);
  transition:transform 600ms ease-in-out;
}
.cat-card:hover > img { transform:scale(1.03); }
.cat-card-overlay {
  padding:20px 0 4px;
  background:none;
  color:#0a0a0a;
}
.cat-card-overlay .eyebrow { display:none; }
.cat-card-overlay h3 {
  font-family:'Inter', system-ui, sans-serif;
  font-weight:600;
  font-size:1rem;
  line-height:1.2;
  letter-spacing:.04em;
  color:#0a0a0a;
  margin:0;
}
.cat-card-arrow { display:none; }
.cat-grid { gap:10px; }
@media (max-width:1100px){ .cat-grid{ gap:10px; } }
@media (max-width:768px){  .cat-grid{ gap:8px; } }
@media (max-width:480px){
  .cat-card-overlay { padding:14px 0 2px; }
  .cat-card-overlay h3 { font-size:.875rem; }
  .cat-grid { gap:6px; }
}

/* -------- COLLECTION CARD GRID -------- */
.col-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
@media (max-width:1024px) { .col-grid { grid-template-columns:repeat(2,1fr); } }
.col-card { display:block; cursor:pointer; }
.col-card-img {
  aspect-ratio:4/5; background:var(--canvas-pure);
  overflow:hidden; position:relative;
}
.col-card-img .swatch { position:absolute; inset:0; transition:opacity 400ms ease-in-out; }
.col-card-img .swatch img { width:100%; height:100%; object-fit:cover; }
.col-card-img .alt { opacity:0; }
.col-card:hover .swatch:not(.alt) { opacity:0; }
.col-card:hover .alt { opacity:1; }
.gallery-cell img { width:100%; height:100%; object-fit:cover; }
/* Override removed — new dual-card-illus img rules above use object-fit:cover */
.line-img img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.editorial-image img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.editorial-image { position:relative; overflow:hidden; }
.col-card-info { padding-top:20px; text-align:center; }
.col-card-info h3 { font-family:var(--font-serif); font-size:1.875rem; color:var(--ink-noir); font-weight:400; }
.col-card-info p { color:var(--ink-shadow); font-size:.8125rem; margin-top:4px; }

/* -------- PRODUCT CARD (PLP) -------- */
.product-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:32px 32px; }
@media (max-width:1024px) { .product-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:768px)  { .product-grid { grid-template-columns:repeat(2,1fr); gap:24px 16px; } }
.pcard { display:block; }
.pcard-img {
  position:relative; aspect-ratio:4/5;
  background:var(--canvas-pure);
  border:1px solid var(--line-hair);
  overflow:hidden;
}
.pcard-img .primary, .pcard-img .alt {
  position:absolute; inset:0; transition:opacity 400ms ease-in-out;
  width:100%; height:100%; object-fit:cover;
}
.pcard-img .alt { opacity:0; }
.pcard:hover .primary { opacity:0; }
.pcard:hover .alt { opacity:1; }
.pcard-img img { background:var(--canvas-pure); }
.pcard-wishlist {
  position:absolute; top:16px; right:16px;
  width:32px; height:32px;
  display:flex; align-items:center; justify-content:center;
  background:var(--canvas-pure); border:1px solid var(--line-hair);
  opacity:0; transition:opacity 220ms ease;
  z-index:2;
}
.pcard:hover .pcard-wishlist { opacity:1; }
.pcard-wishlist:hover { color:var(--accent-champagne); }
.pcard-tag {
  position:absolute; top:16px; left:16px; z-index:2;
  background:var(--canvas-pure); padding:4px 8px;
  font-size:.6875rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  color:var(--accent-champagne);
}
.pcard-info { padding-top:16px; }
.pcard-info h3 { font-size:.9375rem; color:var(--ink-noir); font-weight:400; }
.pcard-info .price-tk { color:var(--ink-graphite); margin-top:4px; }
.pcard-metals { display:flex; gap:8px; margin-top:12px; }
.metal-dot {
  width:12px; height:12px; border-radius:999px;
  border:1px solid var(--line-strong);
  cursor:pointer; transition:transform 180ms ease;
}
.metal-dot:hover { transform:scale(1.15); }
.metal-dot.yellow   { background:var(--metal-yellow); }
.metal-dot.white    { background:var(--metal-white); }
.metal-dot.rose     { background:var(--metal-rose); }
.metal-dot.platinum { background:var(--metal-platinum); }

/* Ring background gradients */
.bg-yellow { background:radial-gradient(circle at 50% 50%,#fff 0%,#f8f4ec 30%,#e8dcc4 60%,#cdbb98 100%); }
.bg-yellow-2 { background:radial-gradient(circle at 45% 45%,#fff 0%,#f4ede0 25%,#dac8a4 60%,#b89968 100%); }
.bg-rose { background:radial-gradient(circle at 50% 50%,#fff 0%,#f8f4f0 30%,#dac4b8 60%,#b88a72 100%); }
.bg-white-metal { background:radial-gradient(circle at 50% 50%,#fff 0%,#f0eee8 30%,#d8d4cc 60%,#b8b4ac 100%); }
.bg-platinum { background:radial-gradient(circle at 50% 50%,#fff 0%,#f0efe8 30%,#cfcdc4 60%,#a8a59c 100%); }

/* -------- BREADCRUMB -------- */
.breadcrumb { padding:16px 0; color:var(--ink-shadow); font-size:.8125rem; }
.breadcrumb a { transition:color 220ms ease; }
.breadcrumb a:hover { color:var(--ink-noir); }
.breadcrumb .sep { padding:0 8px; }
.breadcrumb .current { color:var(--ink-noir); }

/* -------- FILTER BAR (PLP) -------- */
.filter-bar {
  position:sticky; top:96px; z-index:var(--z-sticky);
  background:var(--canvas-pure);
  border-top:1px solid var(--line-hair);
  border-bottom:1px solid var(--line-hair);
}
@media (max-width:768px) { .filter-bar { top:64px; } }
.filter-bar-inner { height:64px; display:flex; align-items:stretch; }
.filter-list { display:flex; flex:1; }
.filter-list li { border-right:1px solid var(--line-hair); }
.filter-trigger {
  height:100%; padding:0 24px;
  display:flex; align-items:center; gap:8px;
  font-size:.8125rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-noir); transition:color 220ms ease;
}
.filter-trigger:hover { color:var(--accent-champagne); }
.filter-count { color:var(--ink-stone); font-size:.75rem; }
.filter-sort { display:flex; align-items:center; padding-left:32px; border-left:1px solid var(--line-hair); }

.chips-row { padding:16px 0; display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.chip {
  display:inline-flex; align-items:center;
  padding:4px 12px 4px 16px;
  border:1px solid var(--line-hair); border-radius:999px;
  font-size:.8125rem; color:var(--ink-noir);
  transition:border-color 220ms ease;
}
.chip:hover { border-color:var(--line-strong); }
.chip button {
  margin-left:8px; width:16px; height:16px;
  display:inline-flex; align-items:center; justify-content:center;
}
.chips-clear {
  margin-left:auto; font-size:.8125rem; color:var(--ink-shadow);
  text-decoration:underline; text-underline-offset:4px; transition:color 220ms ease;
}
.chips-clear:hover { color:var(--ink-noir); }

@media (max-width:768px) {
  .filter-bar-inner { overflow-x:auto; }
  .filter-trigger { padding:0 16px; font-size:.6875rem; }
}

/* -------- PAGINATION -------- */
.pagination { margin-top:80px; display:flex; flex-direction:column; align-items:center; gap:16px; }

/* -------- PDP -------- */
.pdp-grid {
  display:grid;
  grid-template-columns:58% 42%;
  gap:64px;
  padding-bottom:96px;
}
@media (max-width:1024px) { .pdp-grid { grid-template-columns:1fr; gap:32px; } }

.gallery-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.gallery-cell {
  position:relative; aspect-ratio:1/1;
  background:var(--canvas-pure); overflow:hidden;
  cursor:zoom-in;
}
.gallery-cell.span2 { grid-column:span 2; aspect-ratio:16/12; }
.gallery-cell svg { position:absolute; inset:0; width:100%; height:100%; }
.gallery-cell .video-tag {
  position:absolute; bottom:12px; left:12px;
  background:rgba(26,26,26,.85); color:var(--ink-invert);
  padding:4px 8px;
  font-size:.6875rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
}

.pdp-config { position:sticky; top:120px; align-self:start; }
@media (max-width:1024px) { .pdp-config { position:static; } }
.pdp-config h1 { margin-top:12px; color:var(--ink-noir); }
.pdp-config .price { font-size:1.5rem; font-weight:500; color:var(--ink-graphite); margin-top:20px; letter-spacing:.01em; }
.pdp-config .price-sub { color:var(--ink-shadow); font-size:.8125rem; margin-top:4px; }
.pdp-divider { border-top:1px solid var(--line-hair); margin:24px 0; }
.pdp-cert { font-family:var(--font-mono); font-size:.75rem; color:var(--ink-shadow); }
.pdp-cert a { text-decoration:underline; text-underline-offset:4px; }
.pdp-cert a:hover { color:var(--accent-champagne); }

/* Strip browser default fieldset frame */
fieldset { border:0; padding:0; margin:0; min-width:0; }
legend { padding:0; }

.metals { display:flex; gap:18px; margin-bottom:12px; }
.metal-swatch {
  position:relative; width:32px; height:32px; border-radius:999px;
  border:0; padding:0; cursor:pointer;
  background:transparent;
  transition:box-shadow 180ms ease;
}
.metal-swatch .fill { position:absolute; inset:0; border-radius:999px; box-shadow:inset 0 0 0 1px rgba(0,0,0,.08); }
.metal-swatch.selected { box-shadow:0 0 0 3px var(--canvas-pure), 0 0 0 4px var(--ink-noir); }
.metal-swatch:not(.selected):hover { box-shadow:0 0 0 3px var(--canvas-pure), 0 0 0 4px var(--line-strong); }
.metal-name { color:var(--ink-noir); font-size:.8125rem; }

.shapes { display:flex; gap:18px; flex-wrap:wrap; margin-top:4px; }
.shape-pill {
  padding:6px 2px 0;
  border:0;
  background:transparent;
  color:var(--ink-graphite);
  font-size:.6875rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase;
  transition:color 220ms ease, opacity 220ms ease;
  cursor:pointer;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  min-width:auto;
  position:relative;
}
.shape-pill img { width:36px; height:36px; object-fit:contain; display:block; transition:transform 220ms ease; }
.shape-pill:hover img { transform:scale(1.08); }
.shape-pill.selected { color:var(--ink-noir); }
.shape-pill.selected::after {
  content:''; position:absolute; left:50%; right:auto; bottom:-6px;
  transform:translateX(-50%);
  width:24px; height:1px; background:var(--ink-noir);
}
.shape-pill:not(.selected):not(:disabled):hover { color:var(--ink-noir); }
.shape-pill:disabled { opacity:.35; cursor:not-allowed; }

.cta-stack { margin-top:40px; display:flex; flex-direction:column; gap:12px; }

.trust-strip {
  margin-top:32px; padding:16px 0;
  border-top:1px solid var(--line-hair); border-bottom:1px solid var(--line-hair);
  display:flex; justify-content:space-between; gap:16px;
  font-size:.8125rem; color:var(--ink-shadow);
  flex-wrap:wrap;
}

.accordion { margin-top:32px; }
.accordion details { border-top:1px solid var(--line-hair); padding:20px 0; }
.accordion details:last-child { border-bottom:1px solid var(--line-hair); }
.accordion summary {
  display:flex; justify-content:space-between; align-items:center;
  cursor:pointer;
  font-size:.6875rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  color:var(--ink-noir); list-style:none;
}
.accordion summary::-webkit-details-marker { display:none; }
.accordion summary .plus { transition:transform 220ms ease; }
.accordion details[open] summary .plus { transform:rotate(45deg); }
.spec-table {
  margin-top:16px;
  display:grid; grid-template-columns:200px 1fr; gap:12px 16px;
  font-size:.8125rem;
}
.spec-table dt { color:var(--ink-shadow); }
.spec-table dd { font-family:var(--font-mono); font-size:.75rem; color:var(--ink-noir); }
.spec-table dd a { text-decoration:underline; text-underline-offset:4px; }
.spec-table dd a:hover { color:var(--accent-champagne); }

/* -------- CUSTOMIZER STEPPER -------- */
.stepper {
  position:sticky; top:96px; z-index:var(--z-sticky);
  background:var(--canvas-pure);
  border-top:1px solid var(--line-hair); border-bottom:1px solid var(--line-hair);
}
@media (max-width:768px) { .stepper { top:64px; } }
.stepper-inner { position:relative; }
.stepper ol { display:grid; grid-template-columns:repeat(3,1fr); height:96px; }
.step-cell {
  padding:0 24px;
  display:flex; flex-direction:column; justify-content:center;
  text-align:left; width:100%; height:100%;
  border-bottom:2px solid transparent;
  cursor:pointer;
}
.step-cell.active { border-bottom-color:var(--ink-noir); }
.step-cell.disabled { opacity:.5; cursor:not-allowed; }
.step-cell .head { display:flex; align-items:center; gap:12px; margin-bottom:8px; }
.step-circle {
  display:inline-flex; align-items:center; justify-content:center;
  width:24px; height:24px; border-radius:999px;
  font-size:.8125rem; font-weight:500; border:1px solid;
}
.step-circle.pending   { border-color:var(--line-strong); color:var(--ink-stone); background:var(--canvas-pure); }
.step-circle.active    { border-color:var(--canvas-noir); background:var(--canvas-noir); color:var(--ink-invert); }
.step-circle.completed { border-color:var(--accent-champagne); background:var(--accent-champagne); color:var(--ink-invert); }
.step-label { font-size:.6875rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-noir); }
.step-label.muted { color:var(--ink-shadow); }
.step-value { font-family:var(--font-serif); font-size:1.5rem; color:var(--ink-noir); line-height:1.2; }
.step-value.muted { color:var(--ink-stone); }
.step-price { color:var(--ink-graphite); font-size:.9375rem; font-weight:500; margin-top:4px; }
.step-rail { position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--line-hair); }
.step-rail .fill { height:1px; background:var(--ink-noir); transition:width 400ms ease; }
@media (max-width:768px) {
  .stepper ol { height:auto; }
  .step-cell { padding:12px 12px; }
  .step-value { font-size:1rem; }
}

/* -------- DIAMOND TABLE (CUSTOMIZER STEP 2) -------- */
.dt-wrap { padding-bottom:64px; }
.dt-filter {
  background:var(--canvas-pure);
  border-top:1px solid var(--line-hair); border-bottom:1px solid var(--line-hair);
  margin-bottom:24px;
}
.dt-filter ul { display:flex; flex-wrap:wrap; }
.dt-filter li { border-right:1px solid var(--line-hair); }
.dt-filter button {
  height:56px; padding:0 24px;
  display:flex; align-items:center; gap:8px;
  font-size:.8125rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-noir); transition:color 220ms ease;
}
.dt-filter button:hover { color:var(--accent-champagne); }
.dt-filter .sort-li { margin-left:auto; border-right:0; border-left:1px solid var(--line-hair); }

table.dt { width:100%; border-collapse:collapse; }
table.dt thead { background:var(--canvas-snow); }
table.dt thead th {
  padding:16px 24px;
  font-size:.6875rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  color:var(--ink-shadow); text-align:left;
  border-bottom:1px solid var(--line-hair);
}
table.dt thead th.num { text-align:right; }
table.dt thead th.cent { text-align:center; }
table.dt tbody tr {
  border-bottom:1px solid var(--line-hair);
  transition:background 220ms ease;
}
table.dt tbody tr:hover { background:var(--canvas-snow); }
table.dt tbody tr.selected {
  background:var(--canvas-platinum);
  box-shadow:inset 2px 0 0 var(--accent-champagne);
}
table.dt td { padding:20px 24px; font-size:.9375rem; color:var(--ink-graphite); }
table.dt td.mono { font-family:var(--font-mono); font-size:.75rem; color:var(--ink-noir); }
table.dt td.num { text-align:right; }
table.dt td.cent { text-align:center; }
table.dt td.dt-empty { text-align:center; color:var(--ink-shadow); padding:48px 24px; }
table.dt .btn-sm { padding:6px 14px; font-size:.8125rem; }
table.dt tr.dt-row { cursor:pointer; }
table.dt tr.dt-row td:last-child { white-space:nowrap; text-align:right; }
.dt-view-btn {
  background:none; border:1px solid var(--line-hair); border-radius:4px;
  padding:6px 12px; font-size:.8125rem; margin-right:8px; cursor:pointer;
  color:var(--ink-graphite); transition:border-color .15s, color .15s;
}
.dt-view-btn:hover { border-color:var(--accent-champagne); color:var(--ink-noir); }

/* -------- VIEW TOGGLE (grid / list) -------- */
.dview-toggle { display:inline-flex; gap:0; border:1px solid var(--line-hair); border-radius:6px; overflow:hidden; margin-left:auto; }
.dview-btn {
  background:#fff; border:0; padding:7px 12px; font-size:1rem; line-height:1; cursor:pointer;
  color:var(--ink-shadow); transition:background .15s, color .15s;
}
.dview-btn + .dview-btn { border-left:1px solid var(--line-hair); }
.dview-btn.active { background:var(--ink-noir,#1a1a1a); color:#fff; }
.dfilter-toolbar .dfilter-sort { margin-left:16px; }

/* -------- DIAMOND GRID (Brilliant Earth style) -------- */
.dgrid {
  display:grid; grid-template-columns:repeat(4, 1fr);   /* 4 per row — larger cards, Brilliant Earth style */
  gap:24px; padding:8px 0 16px;
}
@media (max-width:1024px) { .dgrid { grid-template-columns:repeat(3, 1fr); } }
@media (max-width:680px)  { .dgrid { grid-template-columns:repeat(2, 1fr); } }
.dgrid[hidden] { display:none; }
.dgrid-empty { grid-column:1/-1; text-align:center; color:var(--ink-shadow); padding:56px 24px; }
.dcard {
  border:1px solid var(--line-hair); border-radius:10px; background:#fff; overflow:hidden;
  cursor:pointer; display:flex; flex-direction:column;
  transition:box-shadow .18s, transform .18s, border-color .18s;
}
.dcard:hover { box-shadow:0 12px 32px rgba(0,0,0,.12); transform:translateY(-3px); border-color:transparent; }
.dcard-media {
  position:relative; aspect-ratio:1/1; background:var(--canvas-snow,#f6f4f1);
  display:flex; align-items:center; justify-content:center;
}
.dcard-media img { width:100%; height:100%; object-fit:cover; -webkit-user-drag:none; user-select:none; }
/* CANVAS: we draw the real frame for each angle onto it (genuine image-sequence
   frame-swapping). Frames are stored together in one "film strip" image (loaded
   once = all preloaded), and we draw the exact cell per angle so the facets move. */
.dcard-media .dcard-canvas {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1;
  pointer-events:none;
  opacity:0; transition:opacity .12s ease;
}
/* The vendor's 360° viewer (same as the detail popup, chrome hidden). It takes
   the mouse so you can HOLD AND ROTATE the stone right in the card — which means
   clicks on the picture belong to the viewer; open details via the card text. */
.dcard-media iframe {
  position:absolute; inset:0; width:100%; height:100%; border:0; z-index:1;
  object-fit:cover; pointer-events:none;
  opacity:0; transition:opacity .12s ease;
}
.dcard-media.is-spinning .dcard-canvas,
.dcard-media.is-spinning iframe { opacity:1; pointer-events:auto; }
/* The viewer page is transparent and shorter than the square card — hide the
   static photo behind it so its bottom edge can't peek out below the rotation. */
.dcard-media.is-spinning > img { visibility:hidden; }
.dcard-noimg {
  position:absolute; inset:0; z-index:1;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  background:linear-gradient(160deg,#f3efe9,#e9e2d8);
  color:var(--ink-shadow); font-size:.75rem; text-transform:uppercase; letter-spacing:.08em;
}
.dcard-noimg::before {
  content:""; width:30px; height:30px; opacity:.5; background:var(--ink-shadow);
  -webkit-mask:no-repeat center/contain; mask:no-repeat center/contain;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.2'%3E%3Cpath d='M5 8 L9 3 H15 L19 8 L12 21 Z M5 8 H19 M9 3 L12 8 L15 3 M9.5 8 L12 21 L14.5 8'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.2'%3E%3Cpath d='M5 8 L9 3 H15 L19 8 L12 21 Z M5 8 H19 M9 3 L12 8 L15 3 M9.5 8 L12 21 L14.5 8'/%3E%3C/svg%3E");
}
.dcard-360 {
  position:absolute; top:10px; right:10px; z-index:3; background:rgba(0,0,0,.65); color:#fff;
  font-size:.6875rem; letter-spacing:.04em; padding:3px 7px; border-radius:20px;
}
.dcard-media.is-spinning .dcard-360 { background:var(--accent-champagne,#b8946a); }
.dcard-body { padding:16px; display:flex; flex-direction:column; gap:4px; flex:1; }
.dcard-title { font-size:.9375rem; font-weight:600; color:var(--ink-noir); margin:0; }
.dcard-specs { font-size:.8125rem; color:var(--ink-shadow); margin:0; }
.dcard-price { font-size:1.125rem; font-weight:600; color:var(--ink-noir); margin:6px 0 0; }
.dcard-actions { margin-top:12px; display:flex; flex-direction:column; gap:8px; }
.dcard-actions .btn { width:100%; text-align:center; }
.dcard-view {
  background:none; border:0; padding:2px; cursor:pointer; font-size:.8125rem;
  color:var(--accent-champagne,#b8946a); text-decoration:underline; text-underline-offset:3px;
}
table.dt[hidden] { display:none; }

/* -------- DIAMOND DETAIL MODAL -------- */
.ddetail-backdrop {
  position:fixed; inset:0; z-index:1000;
  background:rgba(20,18,16,.55); backdrop-filter:blur(3px);
  display:flex; align-items:center; justify-content:center; padding:24px;
}
.ddetail-backdrop[hidden] { display:none; }
.ddetail-panel {
  background:var(--canvas-pure,#fff); border-radius:10px; overflow:hidden;
  width:min(920px,100%); max-height:90vh; position:relative;
  box-shadow:0 24px 80px rgba(0,0,0,.35); display:flex; flex-direction:column;
}
.ddetail-close {
  position:absolute; top:12px; right:16px; z-index:2;
  background:rgba(255,255,255,.85); border:0; border-radius:50%;
  width:36px; height:36px; font-size:24px; line-height:1; cursor:pointer;
  color:var(--ink-noir); display:flex; align-items:center; justify-content:center;
}
.ddetail-close:hover { background:#fff; }
.ddetail-body { display:grid; grid-template-columns:1fr 1fr; overflow:auto; }
@media (max-width:760px){ .ddetail-body { grid-template-columns:1fr; } }
.ddetail-media { background:var(--canvas-snow,#f6f4f1); padding:24px; display:flex; flex-direction:column; gap:12px; }
.ddetail-media-stage {
  aspect-ratio:1/1; background:#fff; border-radius:6px; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.ddetail-media-stage img { width:100%; height:100%; object-fit:contain; }
.ddetail-media-stage iframe { width:100%; height:100%; border:0; }
.ddetail-noimg { color:var(--ink-shadow); font-size:.875rem; }
.ddetail-media-tabs { display:flex; gap:8px; }
.ddetail-tab {
  flex:1; padding:8px; border:1px solid var(--line-hair); background:#fff;
  border-radius:4px; cursor:pointer; font-size:.8125rem; color:var(--ink-graphite);
}
.ddetail-tab.active { border-color:var(--ink-noir); color:var(--ink-noir); font-weight:600; }
.ddetail-info { padding:32px; display:flex; flex-direction:column; }
.ddetail-eyebrow { font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; color:var(--accent-champagne,#b8946a); margin-bottom:6px; }
.ddetail-title { font-size:1.5rem; margin:0 0 8px; color:var(--ink-noir); }
.ddetail-price { font-size:1.75rem; font-weight:600; color:var(--ink-noir); margin:0 0 20px; }
.ddetail-specs { display:grid; grid-template-columns:1fr 1fr; gap:0 24px; margin-bottom:24px; }
.ddetail-spec { display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid var(--line-hair); font-size:.875rem; }
.ddetail-spec-l { color:var(--ink-shadow); }
.ddetail-spec-v { color:var(--ink-noir); font-weight:500; text-align:right; }
.ddetail-actions { display:flex; gap:12px; margin-top:auto; }
.ddetail-actions .btn { flex:1; text-align:center; }
.ddetail-note { font-size:.8125rem; color:var(--ink-shadow); margin-top:14px; }

/* Loading shimmer */
.dt-wrap { position:relative; }
.dt-wrap.dt-loading::after {
  content:'';
  position:absolute; inset:0;
  background:rgba(255,255,255,.65);
  z-index:10;
  border-radius:4px;
}
.dt-wrap.dt-loading #diamond-table tbody tr td { opacity:.4; transition:opacity .2s; }

/* -------- REVIEW PANEL (CUSTOMIZER STEP 3) -------- */
.review-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; }
@media (max-width:1024px) { .review-grid { grid-template-columns:1fr; gap:32px; } }
.composite-img {
  aspect-ratio:1/1; background:var(--canvas-platinum);
  display:flex; align-items:center; justify-content:center;
  color:var(--ink-shadow); font-size:.8125rem;
}
.composite-img svg { max-width:60%; max-height:60%; }
.row-summary { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.row-summary .col-title { color:var(--ink-noir); font-size:.9375rem; margin-top:4px; }
.row-summary .col-sub { color:var(--ink-shadow); font-family:var(--font-mono); font-size:.75rem; margin-top:4px; }
.row-summary .col-edit {
  display:inline-block; margin-top:4px;
  color:var(--ink-shadow); font-size:.8125rem;
  text-decoration:underline; text-underline-offset:4px;
  transition:color 220ms ease;
}
.row-summary .col-edit:hover { color:var(--ink-noir); }
.review-total { display:flex; justify-content:space-between; align-items:baseline; }
.review-total .label { font-size:.6875rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-noir); }
.review-total .amount { font-family:var(--font-serif); font-size:2.5rem; color:var(--ink-noir); }

/* -------- EDITORIAL BLOCK -------- */
.editorial { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media (max-width:768px) { .editorial { grid-template-columns:1fr; gap:32px; } }
.editorial-image {
  aspect-ratio:3/4; background:var(--canvas-platinum);
  display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden;
}

/* -------- TRUST ROW -------- */
.trust-row {
  display:grid; grid-template-columns:repeat(4,1fr);
}
@media (max-width:768px) { .trust-row { grid-template-columns:repeat(2,1fr); gap:32px 0; } }
.trust-cell { text-align:center; padding:0 24px; }
.trust-cell + .trust-cell { border-left:1px solid var(--line-hair); }
@media (max-width:768px) {
  .trust-cell + .trust-cell { border-left:0; }
  .trust-cell:nth-child(3) { border-left:0; }
}
.trust-cell svg { margin:0 auto 16px; color:var(--ink-noir); }

/* -------- NEWSLETTER -------- */
.newsletter-form {
  margin-top:32px;
  display:flex; border:1px solid var(--line-noir);
  background:var(--canvas-pure);
}
.newsletter-form input {
  flex:1; height:48px; padding:0 16px;
  background:transparent; border:0; outline:0;
  font-size:.9375rem; color:var(--ink-noir);
}
.newsletter-form button {
  height:48px; padding:0 32px;
  background:var(--canvas-noir); color:var(--ink-invert);
  font-size:.8125rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase;
  transition:background 220ms ease;
}
.newsletter-form button:hover { background:var(--ink-graphite); }

/* -------- FOOTER -------- */
footer.main {
  background:var(--canvas-pearl);
  padding:80px 0 32px;
  border-top:1px solid var(--line-hair);
}
.footer-grid {
  display:grid; grid-template-columns:1.5fr repeat(4,1fr);
  gap:48px; padding-bottom:64px;
}
@media (max-width:1024px) { .footer-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:768px)  { .footer-grid { grid-template-columns:repeat(2,1fr); gap:32px; } }
.footer-grid h5 {
  font-size:.6875rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  color:var(--ink-noir); margin-bottom:20px;
}
.footer-grid li { margin-top:12px; }
.footer-grid li:first-child { margin-top:0; }
.footer-grid a { color:var(--ink-shadow); font-size:.8125rem; transition:color 220ms ease; }
.footer-grid a:hover { color:var(--ink-noir); }
.footer-brand-name { font-family:var(--font-serif); font-size:1.5rem; letter-spacing:.25em; color:var(--ink-noir); }
.footer-brand-meta { color:var(--ink-shadow); font-size:.8125rem; margin-top:24px; line-height:1.6; }
.footer-bottom {
  border-top:1px solid var(--line-hair); padding-top:24px;
  display:flex; justify-content:space-between; align-items:center;
  color:var(--ink-shadow); font-size:.8125rem; flex-wrap:wrap; gap:12px;
}
.footer-bottom .legal { display:flex; gap:24px; }

/* -------- CART DRAWER -------- */
.drawer-backdrop {
  position:fixed; inset:0;
  background:rgba(26,26,26,0.4);
  opacity:0; pointer-events:none;
  transition:opacity 220ms ease;
  z-index:var(--z-modal);
}
.drawer-backdrop.open { opacity:1; pointer-events:auto; }

.cart-drawer {
  position:fixed; top:0; right:0; bottom:0;
  width:440px; max-width:100vw;
  background:var(--canvas-pure);
  box-shadow:-16px 0 48px rgba(26,26,26,0.08);
  z-index:calc(var(--z-modal) + 1);
  display:flex; flex-direction:column;
  transform:translateX(100%);
  transition:transform 280ms cubic-bezier(0.4,0,0.2,1);
}
.cart-drawer.open { transform:translateX(0); }
.cart-head {
  height:72px; padding:0 24px;
  display:flex; align-items:center; justify-content:space-between;
  border-bottom:1px solid var(--line-hair);
}
.cart-shipping {
  padding:12px 24px; background:var(--canvas-snow);
  border-bottom:1px solid var(--line-hair);
}
.cart-shipping .lbl { color:var(--accent-success); font-size:.8125rem; display:flex; align-items:center; gap:8px; }
.cart-shipping .bar { height:2px; background:var(--line-hair); margin-top:8px; }
.cart-shipping .fill { height:100%; background:var(--accent-success); }
.cart-body { flex:1; overflow-y:auto; padding:0 24px; }
.line-item { display:flex; gap:16px; padding:24px 0; border-bottom:1px solid var(--line-hair); }
.line-img {
  width:80px; height:80px; flex-shrink:0;
  background:var(--canvas-platinum); position:relative; overflow:hidden;
}
.line-img svg { position:absolute; inset:0; width:100%; height:100%; }
.line-body { flex:1; min-width:0; }
.line-title { color:var(--ink-noir); font-size:.9375rem; }
.line-meta { color:var(--ink-shadow); font-size:.8125rem; margin-top:4px; }
.edit-link {
  display:inline-block; margin-top:8px;
  color:var(--ink-noir); border-bottom:1px solid currentColor; padding-bottom:2px;
  font-size:.6875rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase;
}
.edit-link:hover { color:var(--accent-champagne); }
.line-row { display:flex; align-items:center; justify-content:space-between; margin-top:12px; }
.qty { display:flex; align-items:center; border:1px solid var(--line-hair); }
.qty button { width:32px; height:32px; display:flex; align-items:center; justify-content:center; transition:background 220ms ease; }
.qty button:hover { background:var(--canvas-snow); }
.qty .val { width:32px; height:32px; display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:.75rem; border-left:1px solid var(--line-hair); border-right:1px solid var(--line-hair); }
.remove { color:var(--ink-shadow); width:24px; height:24px; display:flex; align-items:center; justify-content:center; transition:color 220ms ease; margin-left:12px; }
.remove:hover { color:var(--accent-error); }

.cart-foot { border-top:1px solid var(--line-hair); padding:24px; background:var(--canvas-pure); }
.cart-totals .row { display:flex; justify-content:space-between; padding:4px 0; font-size:.9375rem; }
.cart-totals .row .mono { font-family:var(--font-mono); font-size:.75rem; }
.cart-totals .total { padding-top:16px; margin-top:8px; border-top:1px solid var(--line-hair); }
.cart-totals .total dt, .cart-totals .total dd { font-family:var(--font-serif); font-size:1.875rem; color:var(--ink-noir); }
.cart-trust { border-top:1px solid var(--line-hair); margin-top:24px; padding-top:16px; }
.cart-trust li { display:flex; align-items:center; gap:8px; color:var(--ink-shadow); font-size:.8125rem; padding:4px 0; }

.empty-cart { padding:64px 24px; text-align:center; }
.empty-cart svg { margin:0 auto 24px; color:var(--ink-stone); }
.empty-cart h3 { color:var(--ink-noir); }
.empty-cart p { color:var(--ink-shadow); margin-top:12px; }
.empty-cart .links { display:flex; flex-direction:column; gap:12px; margin-top:32px; }

/* -------- SEARCH OVERLAY -------- */
.search-overlay {
  position:fixed; inset:0;
  background:var(--canvas-pure);
  z-index:var(--z-modal);
  display:none; flex-direction:column;
}
.search-overlay.open { display:flex; }
.search-head { height:56px; padding:0 24px; display:flex; align-items:center; justify-content:flex-end; border-bottom:1px solid var(--line-hair); }
.search-body { padding:48px; flex:1; overflow:auto; max-width:1100px; margin:0 auto; width:100%; }
.search-input-wrap { display:flex; align-items:center; border-bottom:1px solid var(--line-hair); padding-bottom:12px; }
.search-input-wrap svg { margin-right:16px; color:var(--ink-shadow); }
.search-input-wrap input {
  flex:1; height:56px;
  border:0; background:transparent; outline:0;
  font-size:1.0625rem; color:var(--ink-noir);
}
.search-input-wrap input::placeholder { color:var(--ink-stone); }
.chip-row { margin-top:32px; }
.chip-row-label { font-size:.6875rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-shadow); margin-bottom:16px; }
.chip-row-items { display:flex; flex-wrap:wrap; gap:8px; }
.chip-pill {
  padding:8px 16px; border:1px solid var(--line-hair); border-radius:999px;
  font-size:.8125rem; background:var(--canvas-pure); cursor:pointer;
  transition:border-color 220ms ease;
}
.chip-pill:hover { border-color:var(--line-strong); }
.result-group { margin-top:48px; }
.result-group h4 { font-size:.6875rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-shadow); margin-bottom:16px; }
.result-group ul li { border-bottom:1px solid var(--line-hair); }
.result-product { display:flex; align-items:center; gap:16px; padding:12px 16px; cursor:pointer; transition:background 220ms ease; }
.result-product:hover { background:var(--canvas-snow); }
.result-product .thumb { width:56px; height:56px; background:var(--canvas-platinum); flex-shrink:0; position:relative; }
.result-product .thumb svg { position:absolute; inset:0; width:100%; height:100%; }
.result-product .title { flex:1; color:var(--ink-noir); }
.result-product .price { font-weight:500; }

/* -------- VISIT PAGE / APPOINTMENT FORM -------- */
.visit-hero {
  position:relative; height:60vh; min-height:480px; overflow:hidden;
  background:linear-gradient(135deg,#3a2f24 0%,#5a4a36 50%,#8a7250 100%);
}
.visit-hero::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(to right,rgba(0,0,0,.55) 0%,rgba(0,0,0,.2) 50%,transparent 80%);
  pointer-events:none;
}
.visit-hero-inner { position:relative; z-index:2; height:100%; display:flex; align-items:center; }
.visit-hero-copy { color:var(--ink-invert); max-width:540px; }
.visit-hero-copy .display-lg { color:var(--ink-invert); margin-top:16px; }
.visit-hero-copy .eyebrow { color:rgba(255,255,255,0.85); }
.visit-hero-copy p { color:rgba(255,255,255,0.85); margin-top:24px; }

.visit-info-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; }
@media (max-width:768px) { .visit-info-grid { grid-template-columns:1fr; gap:32px; } }
.visit-info h3 { color:var(--ink-noir); font-family:var(--font-serif); font-size:1.875rem; margin-bottom:16px; font-weight:400; }
.visit-info p { color:var(--ink-shadow); }
.map-placeholder {
  margin-top:24px; aspect-ratio:16/9; background:var(--canvas-platinum);
  display:flex; align-items:center; justify-content:center;
  color:var(--ink-shadow); font-size:.75rem; letter-spacing:.18em; text-transform:uppercase;
}

.expect-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
@media (max-width:768px) { .expect-grid { grid-template-columns:1fr; gap:24px; } }
.expect-card { padding:32px; border:1px solid var(--line-hair); background:var(--canvas-pure); }
.expect-card svg { color:var(--ink-noir); }
.expect-card h4 { color:var(--ink-noir); font-family:var(--font-serif); font-size:1.5rem; margin-top:16px; font-weight:400; }
.expect-card p { color:var(--ink-shadow); font-size:.9375rem; margin-top:12px; }

.booking-form { max-width:720px; margin:0 auto; }
.step-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:40px; }
.step-item { display:flex; align-items:center; gap:12px; }
.step-num {
  width:24px; height:24px; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:.8125rem; font-weight:500; border:1px solid;
}
.step-num.pending { border-color:var(--line-strong); color:var(--ink-stone); background:var(--canvas-pure); }
.step-num.active { border-color:var(--canvas-noir); background:var(--canvas-noir); color:var(--ink-invert); }
.step-num.done { border-color:var(--accent-champagne); background:var(--accent-champagne); color:var(--ink-invert); }
.step-label-form { font-size:.6875rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-stone); }
.step-label-form.active, .step-label-form.done { color:var(--ink-noir); }

.visit-types { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:768px) { .visit-types { grid-template-columns:1fr; } }
.visit-type-card {
  text-align:left; padding:24px;
  border:1px solid var(--line-hair); cursor:pointer;
  transition:all 220ms ease; background:var(--canvas-pure);
}
.visit-type-card:hover { border-color:var(--line-strong); }
.visit-type-card.selected { border-color:var(--canvas-noir); background:var(--canvas-snow); }
.visit-type-card .title { font-family:var(--font-serif); font-size:1.5rem; color:var(--ink-noir); font-weight:400; }
.visit-type-card .sub { color:var(--ink-shadow); font-size:.8125rem; margin-top:8px; }

.calendar { display:grid; grid-template-columns:repeat(7,1fr); gap:8px; }
.day-cell {
  aspect-ratio:1; border:1px solid var(--line-hair); background:var(--canvas-pure);
  cursor:pointer; transition:all 220ms ease;
  display:flex; flex-direction:column; justify-content:center; align-items:center; padding:8px;
}
.day-cell:hover:not(.disabled):not(.selected) { border-color:var(--line-strong); }
.day-cell.disabled { opacity:.4; cursor:not-allowed; }
.day-cell.today { border-color:var(--accent-champagne); }
.day-cell.selected { background:var(--canvas-noir); border-color:var(--canvas-noir); color:var(--ink-invert); }
.day-cell .dow { font-size:.6875rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; }
.day-cell .num { font-family:var(--font-serif); font-size:1.5rem; line-height:1; margin-top:4px; }

.time-slots { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.time-pill {
  padding:8px 16px; border:1px solid var(--line-hair); background:var(--canvas-pure);
  font-size:.8125rem; font-weight:500; letter-spacing:.06em; text-transform:uppercase;
  cursor:pointer; transition:all 220ms ease;
}
.time-pill:hover:not(.selected) { border-color:var(--line-strong); }
.time-pill.selected { background:var(--canvas-noir); color:var(--ink-invert); border-color:var(--canvas-noir); }

.form-row { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
@media (max-width:768px) { .form-row { grid-template-columns:1fr; } }
.lux-input { height:56px; }
.step-nav { display:flex; justify-content:space-between; margin-top:32px; gap:16px; flex-wrap:wrap; }

/* -------- TOAST -------- */
.toast {
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px);
  background:var(--canvas-noir); color:var(--ink-invert);
  padding:14px 24px;
  font-size:.8125rem; font-weight:500; letter-spacing:.05em;
  opacity:0; transition:opacity 220ms ease, transform 220ms ease;
  z-index:var(--z-toast);
  pointer-events:none;
  white-space:nowrap;
}
.toast.show { opacity:1; transform:translateX(-50%) translateY(0); }

/* -------- HELPERS -------- */
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media (max-width:768px) { .grid-2 { grid-template-columns:1fr; gap:32px; } }
.flex { display:flex; }
.flex-1 { flex:1; }
.gap-2 { gap:8px; } .gap-3 { gap:12px; } .gap-4 { gap:16px; } .gap-6 { gap:24px; }

/* -------- HOMEPAGE OVERLAY ILLUSTRATION HELPERS -------- */
.illus-ring { width:240px; height:200px; }
.illus-diamond { width:160px; height:200px; }
.editorial-svg { width:60%; max-width:280px; height:auto; }

/* ==========================================================
   NEW COMPONENTS (Journal, FAQ, Categories, Conversion CTAs)
   ========================================================== */

/* PAGE HERO (shared by category pages) */
.page-hero { padding:64px 0 48px; }
.page-hero .breadcrumb { font-size:.75rem; letter-spacing:.06em; margin-bottom:24px; color:var(--ink-shadow); }
.page-hero .breadcrumb a { color:var(--ink-shadow); }
.page-hero .breadcrumb .sep { margin:0 8px; }
.page-hero .breadcrumb .current { color:var(--ink-noir); }
.page-hero .eyebrow { margin-bottom:16px; }
.page-hero .lede { font-size:1.0625rem; line-height:1.55; max-width:640px; color:var(--ink-graphite); margin-top:16px; }
.page-hero .hero-ctas { margin-top:32px; display:flex; gap:12px; flex-wrap:wrap; }
.center { text-align:center; }

/* TRUST BAND */
.trust-band { background:var(--canvas-snow); border-top:1px solid var(--line-hair); border-bottom:1px solid var(--line-hair); padding:28px 0; }
.trust-band-inner { display:grid; grid-template-columns:repeat(5, 1fr); gap:24px; text-align:center; }
.trust-tile strong { display:block; font-size:.8125rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-noir); margin-bottom:6px; }
.trust-tile span { display:block; font-size:.75rem; color:var(--ink-shadow); line-height:1.4; }
@media (max-width:900px){ .trust-band-inner { grid-template-columns:repeat(2, 1fr); } }
@media (max-width:480px){ .trust-band-inner { grid-template-columns:1fr; gap:16px; } }

/* STICKY APPOINTMENT CTA */
.sticky-cta {
  position:fixed; right:24px; bottom:92px;   /* stacks ABOVE the chat fab (bottom-right) */
  background:var(--ink-noir); color:var(--ink-invert);
  padding:14px 22px; border-radius:999px;
  font-size:.8125rem; letter-spacing:.12em; text-transform:uppercase; font-weight:500;
  display:flex; align-items:center; gap:8px;
  box-shadow:0 8px 24px rgba(20,20,20,.18);
  z-index:50;
  transition:transform 220ms ease, box-shadow 220ms ease, opacity 220ms ease;
}
.sticky-cta:hover { transform:translateY(-2px); box-shadow:0 12px 28px rgba(20,20,20,.24); color:var(--ink-invert); }
@media (max-width:768px){ .sticky-cta { right:16px; bottom:80px; padding:12px 18px; font-size:.6875rem; } }
/* Below ~1560px the 1440px content column runs under the pill, so the full
   label sits on top of cards mid-scroll — collapse to an icon-only dot
   (the aria-label still announces it). .is-off hides it while the footer,
   which carries the same booking link, is in view. */
@media (max-width:1560px) and (min-width:769px){
  .sticky-cta { padding:0; width:48px; height:48px; justify-content:center; }
  .sticky-cta svg { width:18px; height:18px; }
  .sticky-cta span { display:none; }
}
.sticky-cta.is-off { opacity:0; pointer-events:none; transform:translateY(10px); }

/* FOOTER */
.site-footer { background:var(--canvas-snow); border-top:1px solid var(--line-hair); padding:64px 0 32px; margin-top:80px; }
.footer-inner { display:grid; grid-template-columns:2fr 1fr 1fr 1fr 1fr; gap:48px; }
.footer-brand .wordmark-sm { font-family:'Cormorant Garamond', serif; font-size:1.0625rem; letter-spacing:.22em; margin-bottom:16px; }
.footer-tag { font-style:italic; color:var(--ink-graphite); margin-bottom:20px; line-height:1.55; }
.footer-addr, .footer-hours { font-size:.8125rem; color:var(--ink-shadow); line-height:1.65; margin-bottom:12px; }
.footer-col h5 { font-size:.6875rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; margin-bottom:18px; color:var(--ink-noir); }
.footer-col ul li { margin-bottom:10px; }
.footer-col a { font-size:.875rem; color:var(--ink-graphite); transition:color 220ms ease; }
.footer-col a:hover { color:var(--accent-champagne); }
.footer-bottom { display:flex; justify-content:space-between; padding-top:32px; margin-top:48px; border-top:1px solid var(--line-hair); font-size:.75rem; color:var(--ink-shadow); }
.footer-bottom-links { display:flex; gap:24px; }
.footer-bottom-links a { font-size:.75rem; color:var(--ink-shadow); }
@media (max-width:900px){ .footer-inner { grid-template-columns:1fr 1fr; gap:32px; } .footer-brand { grid-column:1 / -1; } }
@media (max-width:480px){ .footer-inner { grid-template-columns:1fr; } .footer-bottom { flex-direction:column; gap:12px; } }

/* JOURNAL */
.journal-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:40px; }
.journal-card { display:flex; flex-direction:column; }
.journal-card-img { aspect-ratio:4/3; overflow:hidden; margin-bottom:20px; background:var(--canvas-snow); }
.journal-card-img img { width:100%; height:100%; object-fit:cover; transition:transform 480ms ease; }
.journal-card:hover .journal-card-img img { transform:scale(1.04); }
.journal-card h3 { font-family:'Cormorant Garamond', serif; font-size:1.5rem; line-height:1.2; margin:8px 0 10px; color:var(--ink-noir); }
.journal-deck { color:var(--ink-graphite); line-height:1.5; margin-bottom:14px; font-size:.9375rem; }
.link-arrow { font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-champagne); }
@media (max-width:900px){ .journal-grid { grid-template-columns:1fr 1fr; gap:28px; } }
@media (max-width:600px){ .journal-grid { grid-template-columns:1fr; } }

/* ARTICLE / BLOG POST */
.article { padding:48px 0 0; }
.article-narrow { max-width:720px; margin:0 auto; }
.article .breadcrumb { font-size:.75rem; letter-spacing:.06em; margin-bottom:24px; color:var(--ink-shadow); }
.article-eyebrow { margin:0 0 16px; }
.article-deck { font-size:1.25rem; line-height:1.5; color:var(--ink-graphite); margin:20px 0 32px; font-style:italic; }
.article-hero { max-width:1100px; margin:0 auto 48px; padding:0; }
.article-hero img { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }
.article-body { font-size:1.0625rem; line-height:1.75; color:var(--ink-graphite); }
.article-intro { font-size:1.125rem; line-height:1.65; margin-bottom:40px; color:var(--ink-noir); }
.article-section { margin-bottom:36px; }
.article-section h2 { font-family:'Cormorant Garamond', serif; font-size:1.75rem; line-height:1.2; color:var(--ink-noir); margin:24px 0 14px; }
.article-section p { margin-bottom:16px; }
.key-takeaways { background:var(--canvas-snow); padding:32px; margin:48px 0; border-left:3px solid var(--accent-champagne); }
.key-takeaways h3 { font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; margin-bottom:12px; }
.key-takeaways p { font-size:.9375rem; line-height:1.65; margin:0; color:var(--ink-noir); }
.article-cta { background:var(--canvas-pure); border:1px solid var(--line-hair); padding:40px; text-align:center; margin:48px 0; }
.article-cta h3 { font-family:'Cormorant Garamond', serif; font-size:1.5rem; margin-bottom:8px; }
.article-cta p { margin-bottom:24px; color:var(--ink-graphite); }
.cta-row { display:flex; gap:12px; justify-content:flex-start; flex-wrap:wrap; }
.cta-row.center { justify-content:center; }

/* RELATED */
.related-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:32px; }
.related-card { display:flex; flex-direction:column; }
.related-img { aspect-ratio:4/3; overflow:hidden; margin-bottom:14px; background:var(--canvas-snow); }
.related-img img { width:100%; height:100%; object-fit:cover; }
.related-card h4 { font-family:'Cormorant Garamond', serif; font-size:1.125rem; line-height:1.3; margin-top:6px; color:var(--ink-noir); }
@media (max-width:768px){ .related-grid { grid-template-columns:1fr; gap:24px; } }

/* FAQ */
.faq-item { padding:20px 0; border-bottom:1px solid var(--line-hair); }
.faq-item summary { font-size:1.0625rem; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; color:var(--ink-noir); font-weight:500; }
.faq-item summary::after { content:'+'; font-size:1.5rem; font-weight:300; transition:transform 220ms ease; }
.faq-item[open] summary::after { transform:rotate(45deg); }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item p { margin-top:14px; line-height:1.65; color:var(--ink-graphite); font-size:.9375rem; }
.faq-section { margin-bottom:48px; }
.faq-section h2 { font-family:'Cormorant Garamond', serif; font-size:1.5rem; padding-bottom:14px; border-bottom:2px solid var(--ink-noir); margin-bottom:8px; }
.see-all-faq { margin-top:24px; text-align:center; }

/* PLP TOOLBAR + PRODUCT GRID */
.plp-toolbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:32px; padding-bottom:16px; border-bottom:1px solid var(--line-hair); }
.plp-count { font-size:.8125rem; color:var(--ink-shadow); }
.plp-sort label { font-size:.75rem; color:var(--ink-shadow); margin-right:8px; }
.plp-sort select { border:1px solid var(--line-hair); padding:6px 10px; background:transparent; font-size:.8125rem; }

/* Widen the container ONLY when it wraps a product grid so 4 columns fit
   at the same image size we had at 3 columns previously */
.container:has(> .product-grid) { max-width:1880px; }
.product-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:32px; }
.product-card { display:flex; flex-direction:column; text-decoration:none; }
.product-img { aspect-ratio:1; overflow:hidden; margin-bottom:16px; background:var(--canvas-snow); }
.product-img img { width:100%; height:100%; object-fit:cover; transition:transform 480ms ease; }
.product-card:hover .product-img img { transform:scale(1.04); }
.product-name { font-family:'Cormorant Garamond', serif; font-size:1.125rem; color:var(--ink-noir); margin-bottom:4px; line-height:1.3; }
.product-sub { font-size:.8125rem; color:var(--ink-shadow); margin-bottom:8px; }
.product-price { font-size:.875rem; color:var(--ink-noir); font-weight:500; letter-spacing:.04em; }
@media (max-width:1280px){ .product-grid { grid-template-columns:repeat(3, 1fr); } .container:has(> .product-grid) { max-width:1440px; } }
@media (max-width:900px){ .product-grid { grid-template-columns:1fr 1fr; gap:24px; } }
@media (max-width:600px){ .product-grid { grid-template-columns:1fr; } }

/* WHY GRID */
.why-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:32px; }
.why-grid h4 { font-family:'Cormorant Garamond', serif; font-size:1.25rem; margin-bottom:10px; color:var(--ink-noir); }
.why-grid p { font-size:.9375rem; line-height:1.6; color:var(--ink-graphite); }
@media (max-width:900px){ .why-grid { grid-template-columns:1fr 1fr; gap:24px; } }
@media (max-width:600px){ .why-grid { grid-template-columns:1fr; } }

/* COMPARE (lab vs natural) */
.compare-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; max-width:880px; margin:0 auto; }
.compare-card { background:var(--canvas-pure); padding:32px; border:1px solid var(--line-hair); }
.compare-card h3 { font-family:'Cormorant Garamond', serif; font-size:1.5rem; margin-bottom:6px; }
.compare-tag { font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-shadow); margin-bottom:20px; }
.compare-list { list-style:none; padding:0; margin:0 0 28px; }
.compare-list li { padding:8px 0; border-bottom:1px solid var(--line-hair); font-size:.9375rem; color:var(--ink-graphite); }
.compare-list li:last-child { border-bottom:0; }
.compare-note { text-align:center; margin-top:32px; color:var(--ink-shadow); font-size:.9375rem; }
@media (max-width:768px){ .compare-grid { grid-template-columns:1fr; } }

/* 4Cs */
.four-cs-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:24px; }
.four-cs-grid > div { padding:24px; background:var(--canvas-snow); }
.four-cs-grid strong { display:block; font-family:'Cormorant Garamond', serif; font-size:1.75rem; color:var(--ink-noir); margin-bottom:10px; }
.four-cs-grid p { font-size:.875rem; line-height:1.6; color:var(--ink-graphite); }
.four-cs-grid a { color:var(--accent-champagne); display:block; margin-top:8px; font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; }
@media (max-width:900px){ .four-cs-grid { grid-template-columns:1fr 1fr; } }

/* GEMSTONE CARDS */
.gem-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:32px; }
.gem-card { background:var(--canvas-snow); padding:32px; }
.gem-card h3 { font-family:'Cormorant Garamond', serif; font-size:1.5rem; margin-bottom:6px; }
.gem-meta { font-size:.6875rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-shadow); margin-bottom:14px; }
.gem-card p { font-size:.9375rem; line-height:1.6; color:var(--ink-graphite); }
@media (max-width:900px){ .gem-grid { grid-template-columns:1fr; } }

/* EDUCATION CARDS */
.edu-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:32px; }
.edu-card { display:block; padding:32px; border:1px solid var(--line-hair); background:var(--canvas-pure); transition:all 220ms ease; }
.edu-card:hover { border-color:var(--ink-noir); transform:translateY(-2px); }
.edu-card h3 { font-family:'Cormorant Garamond', serif; font-size:1.375rem; margin:6px 0 10px; color:var(--ink-noir); }
.edu-card p { font-size:.9375rem; line-height:1.6; color:var(--ink-graphite); }
@media (max-width:900px){ .edu-grid { grid-template-columns:1fr 1fr; gap:24px; } }
@media (max-width:600px){ .edu-grid { grid-template-columns:1fr; } }

/* CONTACT */
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; }
.contact-info h2 { margin-bottom:24px; }
.contact-line { margin-bottom:14px; line-height:1.6; color:var(--ink-graphite); }
.contact-info h3 { font-family:'Cormorant Garamond', serif; font-size:1.25rem; color:var(--ink-noir); margin-bottom:12px; }
.contact-list { list-style:none; padding:0; }
.contact-list li { padding:10px 0; border-bottom:1px solid var(--line-hair); font-size:.9375rem; color:var(--ink-graphite); }
.contact-form label { display:block; margin-bottom:20px; font-size:.8125rem; color:var(--ink-noir); }
.contact-form input, .contact-form select, .contact-form textarea { display:block; width:100%; padding:12px; border:1px solid var(--line-hair); background:var(--canvas-pure); margin-top:6px; font-family:inherit; font-size:.9375rem; }
.contact-form button { margin-top:8px; }
.form-note { margin-top:16px; font-size:.75rem; color:var(--ink-shadow); }
@media (max-width:768px){ .contact-grid { grid-template-columns:1fr; gap:48px; } }
.mt-8 { margin-top:32px; }
.mt-3 { margin-top:12px; }

/* POLICIES */
.policy-toc { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:48px; padding:16px; background:var(--canvas-snow); }
.policy-toc a { font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; padding:6px 12px; background:var(--canvas-pure); border:1px solid var(--line-hair); color:var(--ink-noir); }
.policy-toc a:hover { background:var(--ink-noir); color:var(--ink-invert); }
.policy-section { margin-bottom:48px; padding-top:24px; border-top:1px solid var(--line-hair); }
.policy-section h2 { font-family:'Cormorant Garamond', serif; font-size:1.75rem; margin-bottom:18px; color:var(--ink-noir); }
.policy-section p, .policy-section ul { line-height:1.65; color:var(--ink-graphite); margin-bottom:14px; font-size:.9375rem; }
.policy-section ul li { padding:6px 0 6px 24px; position:relative; }
.policy-section ul li::before { content:'·'; position:absolute; left:8px; font-weight:bold; color:var(--ink-noir); }

/* DIRECTIONS GRID (Contact) */
.directions-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:24px; }
.directions-grid h4 { font-family:'Cormorant Garamond', serif; font-size:1.125rem; margin-bottom:8px; color:var(--ink-noir); }
.directions-grid p { font-size:.875rem; line-height:1.55; color:var(--ink-graphite); }
@media (max-width:900px){ .directions-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .directions-grid { grid-template-columns:1fr; } }

/* CAT TILES (jewelry, generic categories) */
.cat-tile { display:block; text-decoration:none; transition:transform 220ms ease; }
.cat-tile:hover { transform:translateY(-2px); }
.cat-tile-img { aspect-ratio:4/3; overflow:hidden; margin-bottom:14px; background:var(--canvas-snow); }
.cat-tile-img img { width:100%; height:100%; object-fit:cover; }
.cat-tile h3 { font-family:'Cormorant Garamond', serif; font-size:1.25rem; color:var(--ink-noir); }
.cat-tile:has(h3:only-child) { padding:32px; background:var(--canvas-snow); text-align:center; }
.cat-tile:has(h3:only-child) h3 { margin:0; }


/* ==========================================================
   STYLE RAIL (Brilliant Earth pattern — horizontal at top of PLP)
   ========================================================== */
.style-rail-section { padding:32px 0 24px; border-bottom:1px solid var(--line-hair); }
.style-rail-scroller {
  display:flex; gap:24px; overflow-x:auto; overflow-y:hidden;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  padding-bottom:8px;
  scrollbar-width:thin;
}
.style-rail-scroller::-webkit-scrollbar { height:4px; }
.style-rail-scroller::-webkit-scrollbar-thumb { background:var(--line-strong); border-radius:2px; }
.style-rail-tile {
  flex:0 0 auto; width:110px;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  text-decoration:none;
  scroll-snap-align:start;
  transition:transform 220ms ease;
}
.style-rail-tile:hover { transform:translateY(-2px); }
.style-rail-img {
  width:110px; height:110px;
  background:var(--canvas-snow); overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  border-radius:0;
}
.style-rail-img img { width:100%; height:100%; object-fit:cover; transition:transform 320ms ease; }
.style-rail-tile:hover .style-rail-img img { transform:scale(1.08); }
/* Diamond-shape PNGs (transparent) on the diamonds page get padding instead of filling */
[data-shape-tile] .style-rail-img img,
.style-rail-img img[src*="_medium.png"] { object-fit:contain; width:78%; height:78%; }
.style-rail-label {
  font-size:.75rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-noir); text-align:center;
  line-height:1.2;
  font-weight:500;
}
@media (max-width:600px){
  .style-rail-tile { width:88px; }
  .style-rail-img { width:88px; height:88px; }
  .style-rail-label { font-size:.6875rem; }
}

/* ==========================================================
   PLP TOOLBAR (Filters button + sort dropdown)
   ========================================================== */
.plp-toolbar-bar { border-bottom:1px solid var(--line-hair); background:var(--canvas-pure); padding:16px 0; }
.plp-toolbar-inner { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.filter-btn {
  display:inline-flex; align-items:center; gap:10px;
  padding:10px 18px;
  background:var(--ink-noir); color:var(--ink-invert);
  border:0; cursor:pointer;
  font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500;
  transition:background 220ms ease;
}
.filter-btn:hover { background:#000; }
.plp-results-count { font-size:.8125rem; color:var(--ink-shadow); }
.plp-sort-wrap { display:flex; align-items:center; gap:10px; }
.plp-sort-wrap label { font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-shadow); }
.plp-sort {
  border:1px solid var(--line-hair); padding:8px 14px;
  background:var(--canvas-pure); font-size:.8125rem;
  font-family:inherit; color:var(--ink-noir); cursor:pointer;
}
@media (max-width:600px){
  .plp-toolbar-inner { gap:8px; }
  .plp-results-count { display:none; }
  .filter-btn { padding:8px 14px; font-size:.6875rem; }
  .plp-sort { font-size:.75rem; padding:6px 10px; }
}

/* ==========================================================
   FILTER DRAWER (slides in from right)
   ========================================================== */
.filter-drawer {
  position:fixed; top:0; right:0; bottom:0;
  width:min(420px, 100vw);
  background:var(--canvas-pure);
  z-index:90;
  transform:translateX(100%);
  transition:transform 320ms cubic-bezier(.4, 0, .2, 1);
  display:flex; flex-direction:column;
  box-shadow:-12px 0 32px rgba(20,20,20,.12);
}
.filter-drawer.open { transform:translateX(0); }
.filter-backdrop {
  position:fixed; inset:0;
  background:rgba(20,20,20,.32);
  z-index:89;
  opacity:0; visibility:hidden;
  transition:opacity 320ms ease, visibility 320ms ease;
}
.filter-backdrop.open { opacity:1; visibility:visible; }
.filter-drawer-inner { display:flex; flex-direction:column; height:100%; }
.filter-drawer-head {
  display:flex; justify-content:space-between; align-items:center;
  padding:24px 28px; border-bottom:1px solid var(--line-hair);
}
.filter-drawer-head h3 { font-family:'Cormorant Garamond', serif; font-size:1.5rem; margin:0; }
.filter-drawer-actions { display:flex; gap:14px; align-items:center; }
.filter-reset { background:transparent; border:0; cursor:pointer; font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-graphite); padding:6px 8px; }
.filter-reset:hover { color:var(--ink-noir); }
.filter-close { background:transparent; border:0; cursor:pointer; padding:6px; color:var(--ink-noir); }

.filter-drawer-body { flex:1; overflow-y:auto; padding:8px 28px 28px; }
.filter-section { padding:20px 0; border-bottom:1px solid var(--line-hair); }
.filter-section summary {
  list-style:none; cursor:pointer;
  display:flex; justify-content:space-between; align-items:center;
  font-size:.8125rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500;
  color:var(--ink-noir);
}
.filter-section summary::after { content:'−'; font-size:1.25rem; font-weight:300; transition:transform 220ms ease; }
.filter-section:not([open]) summary::after { content:'+'; }
.filter-section summary::-webkit-details-marker { display:none; }
.filter-checks { list-style:none; padding:0; margin:16px 0 0; }
.filter-checks li { padding:8px 0; }
.filter-checks label { display:flex; align-items:center; gap:10px; cursor:pointer; font-size:.9375rem; color:var(--ink-graphite); }
.filter-checks input[type="checkbox"] { accent-color:var(--ink-noir); width:16px; height:16px; cursor:pointer; }
.filter-checks label:hover { color:var(--ink-noir); }
.filter-range { display:flex; gap:12px; margin-top:16px; }
.filter-range label { flex:1; display:block; font-size:.75rem; color:var(--ink-shadow); }
.filter-range input { display:block; width:100%; margin-top:4px; padding:10px; border:1px solid var(--line-hair); background:var(--canvas-pure); font-size:.9375rem; font-family:inherit; }

.filter-drawer-foot {
  padding:20px 28px; border-top:1px solid var(--line-hair);
  background:var(--canvas-pure);
}
.filter-drawer-foot .btn { width:100%; }

/* ==========================================================
   GOOGLE REVIEWS (homepage bottom)
   ========================================================== */
.reviews-head {
  display:flex; justify-content:space-between; align-items:flex-end; gap:32px;
  margin-bottom:48px; flex-wrap:wrap;
}
.reviews-summary { text-align:right; display:flex; flex-direction:column; gap:8px; align-items:flex-end; }
.reviews-stars { display:inline-flex; gap:3px; }
.reviews-meta { font-size:.9375rem; color:var(--ink-graphite); }
.reviews-meta strong { color:var(--ink-noir); }
.reviews-google {
  display:inline-flex; align-items:center; gap:6px;
  font-size:.75rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-noir); border-bottom:1px solid var(--ink-noir); padding-bottom:2px;
}
.reviews-google:hover { color:var(--accent-champagne); border-color:var(--accent-champagne); }

.reviews-grid {
  display:grid; grid-template-columns:repeat(3, 1fr); gap:24px;
}
.review-card {
  background:var(--canvas-snow); padding:28px;
  display:flex; flex-direction:column; gap:14px;
  border:1px solid var(--line-hair);
}
.review-stars { color:#E5A845; font-size:.9375rem; letter-spacing:.04em; }
.review-text { font-size:.9375rem; line-height:1.6; color:var(--ink-graphite); margin:0; flex:1; }
.review-author { font-size:.8125rem; margin:0; }
.review-author strong { color:var(--ink-noir); display:block; }
.review-author span { color:var(--ink-shadow); font-size:.75rem; }
.reviews-cta { text-align:center; margin-top:40px; }
@media (max-width:900px){
  .reviews-grid { grid-template-columns:1fr 1fr; }
  .reviews-head { flex-direction:column; align-items:flex-start; }
  .reviews-summary { text-align:left; align-items:flex-start; }
}
@media (max-width:600px){
  .reviews-grid { grid-template-columns:1fr; }
}

/* ==========================================================
   INSTAGRAM GRID (homepage bottom)
   ========================================================== */
.ig-head { text-align:center; margin-bottom:40px; }
.ig-head h2 a { color:var(--accent-champagne); border-bottom:1px solid var(--accent-champagne); padding-bottom:2px; }
.ig-head h2 a:hover { color:var(--ink-noir); border-color:var(--ink-noir); }
.ig-head .lede { font-size:1rem; color:var(--ink-graphite); margin-top:12px; max-width:520px; margin-left:auto; margin-right:auto; }

.ig-grid {
  display:grid; grid-template-columns:repeat(6, 1fr); gap:4px;
}
.ig-tile {
  position:relative; aspect-ratio:1; overflow:hidden; background:var(--canvas-snow);
  display:block;
}
.ig-tile img {
  width:100%; height:100%; object-fit:cover;
  transition:transform 480ms ease, opacity 220ms ease;
}
.ig-overlay {
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  background:rgba(20,20,20,.4);
  color:#fff;
  opacity:0; transition:opacity 220ms ease;
}
.ig-tile:hover img { transform:scale(1.06); }
.ig-tile:hover .ig-overlay { opacity:1; }

.ig-cta { text-align:center; margin-top:40px; }
@media (max-width:900px){ .ig-grid { grid-template-columns:repeat(3, 1fr); } }
@media (max-width:480px){ .ig-grid { grid-template-columns:repeat(2, 1fr); } }

/* ==========================================================
   DIAMOND SEARCH (Brilliant Earth pattern on customizer step 2)
   ========================================================== */

/* Natural / Lab toggle */
.diamond-type-toggle {
  display:inline-flex; gap:0; margin-top:24px;
  border:1px solid var(--line-strong); border-radius:999px;
  overflow:hidden;
}
.diamond-type-pill {
  background:transparent; border:0; padding:10px 28px; cursor:pointer;
  font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500;
  color:var(--ink-graphite);
  transition:background 220ms ease, color 220ms ease;
}
.diamond-type-pill.active { background:var(--ink-noir); color:var(--ink-invert); }

/* Shape rail */
.diamond-shape-rail { padding:24px 0; border-bottom:1px solid var(--line-hair); background:var(--canvas-pure); }
.dshape-scroller {
  display:flex; gap:18px; overflow-x:auto; padding-bottom:6px;
  scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
}
.dshape-tile {
  flex:0 0 auto; width:90px;
  background:transparent; border:0; cursor:pointer;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  scroll-snap-align:start;
  padding:8px 4px;
  position:relative;
  transition:transform 180ms ease;
}
.dshape-tile:hover { transform:translateY(-2px); }
.dshape-tile img {
  width:64px; height:64px; object-fit:contain; opacity:.55;
  transition:opacity 220ms ease;
}
.dshape-tile span {
  font-size:.6875rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-graphite); font-weight:500;
}
.dshape-tile.selected img { opacity:1; }
.dshape-tile.selected span { color:var(--ink-noir); }
.dshape-tile.selected::after {
  content:''; position:absolute; bottom:-2px; left:50%; transform:translateX(-50%);
  width:36px; height:2px; background:var(--ink-noir);
}

/* Filter panel */
.diamond-filter-panel { padding:36px 0 28px; background:var(--canvas-snow); border-bottom:1px solid var(--line-hair); }
.dfilter-grid {
  display:grid; grid-template-columns:repeat(3, 1fr); gap:32px 48px;
}
@media (max-width:900px){ .dfilter-grid { grid-template-columns:1fr 1fr; gap:24px; } }
@media (max-width:600px){ .dfilter-grid { grid-template-columns:1fr; } }

.dfilter-block { display:flex; flex-direction:column; gap:10px; }
.dfilter-head { display:flex; justify-content:space-between; align-items:baseline; gap:10px; }
.dfilter-head h3 {
  font-family:'Inter', sans-serif; font-size:.75rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ink-noir); margin:0;
}
.dfilter-val { font-size:.75rem; color:var(--ink-shadow); }

/* Pill row */
.dfilter-pills { display:flex; gap:6px; flex-wrap:wrap; }
.dpill {
  background:var(--canvas-pure); border:1px solid var(--line-hair);
  color:var(--ink-graphite); padding:8px 14px; cursor:pointer;
  font-size:.75rem; letter-spacing:.04em; font-weight:500;
  transition:all 180ms ease;
  min-width:40px; text-align:center;
}
.dpill:hover { border-color:var(--line-strong); color:var(--ink-noir); }
.dpill.selected { background:var(--ink-noir); color:var(--ink-invert); border-color:var(--ink-noir); }
.dfilter-pills-grade .dpill { min-width:42px; padding:8px 10px; font-family:'Inter', sans-serif; }

/* Range slider */
.range-wrap { position:relative; height:32px; }
.range-track { position:absolute; top:50%; left:0; right:0; height:2px; background:var(--line-hair); transform:translateY(-50%); border-radius:2px; }
.range-fill { position:absolute; top:0; bottom:0; background:var(--ink-noir); border-radius:2px; }
.range-wrap input[type="range"] {
  position:absolute; top:0; left:0; right:0;
  width:100%; height:32px; background:transparent;
  pointer-events:none; -webkit-appearance:none; appearance:none;
  margin:0;
}
.range-wrap input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance:none; appearance:none;
  width:18px; height:18px; border-radius:50%;
  background:var(--canvas-pure); border:2px solid var(--ink-noir);
  cursor:pointer; pointer-events:auto;
  box-shadow:0 1px 4px rgba(0,0,0,.18);
}
.range-wrap input[type="range"]::-moz-range-thumb {
  width:18px; height:18px; border-radius:50%;
  background:var(--canvas-pure); border:2px solid var(--ink-noir);
  cursor:pointer; pointer-events:auto;
  box-shadow:0 1px 4px rgba(0,0,0,.18);
}
.range-labels { display:flex; justify-content:space-between; font-size:.6875rem; color:var(--ink-shadow); letter-spacing:.08em; text-transform:uppercase; }

.range-row { display:flex; gap:8px; }
.range-row label { flex:1; display:block; font-size:.6875rem; color:var(--ink-shadow); letter-spacing:.06em; text-transform:uppercase; }
.range-row input { display:block; width:100%; margin-top:4px; padding:8px; border:1px solid var(--line-hair); background:var(--canvas-pure); font-family:'Inter', sans-serif; font-size:.875rem; }

/* Advanced details */
.dfilter-advanced { margin-top:28px; padding-top:24px; border-top:1px dashed var(--line-hair); }
.dfilter-advanced summary {
  list-style:none; cursor:pointer;
  font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500;
  color:var(--ink-noir); padding:6px 0;
  display:inline-flex; align-items:center; gap:8px;
}
.dfilter-advanced summary::-webkit-details-marker { display:none; }
.dfilter-advanced .caret { transition:transform 220ms ease; display:inline-block; }
.dfilter-advanced[open] .caret { transform:rotate(180deg); }
.dfilter-advanced > .dfilter-grid { margin-top:24px; }

/* Filter toolbar (reset + count + sort) */
.dfilter-toolbar {
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding-top:28px; margin-top:32px; border-top:1px solid var(--line-hair);
  flex-wrap:wrap;
}
.dfilter-reset {
  background:transparent; border:0; cursor:pointer;
  font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-graphite);
  padding:6px 8px;
}
.dfilter-reset:hover { color:var(--ink-noir); }
.dfilter-count { font-size:.875rem; color:var(--ink-noir); }
.dfilter-count strong { font-weight:600; }
.dfilter-sort { display:flex; align-items:center; gap:10px; }
.dfilter-sort label { font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-shadow); }
.dfilter-sort select {
  padding:8px 14px; border:1px solid var(--line-hair); background:var(--canvas-pure);
  font-family:'Inter', sans-serif; font-size:.8125rem; cursor:pointer; color:var(--ink-noir);
}

/* ==========================================================
   LAB-GROWN EMPHASIS (diamonds.html)
   ========================================================== */
.lab-emphasis {
  display:grid; grid-template-columns:1fr 1fr; gap:32px;
  max-width:1000px; margin:0 auto;
}
.lab-emphasis-card {
  background:var(--canvas-pure); padding:32px; border:1px solid var(--line-hair);
}
.lab-emphasis-card h3 {
  font-family:'Cormorant Garamond', serif; font-size:1.375rem;
  color:var(--ink-noir); margin-bottom:12px; line-height:1.25;
}
.lab-emphasis-card p { font-size:.9375rem; line-height:1.65; color:var(--ink-graphite); margin:0; }
@media (max-width:768px){ .lab-emphasis { grid-template-columns:1fr; gap:20px; max-width:560px; } }

/* Post notice banner */
.post-notice {
  background:var(--canvas-snow); border-left:3px solid var(--accent-champagne);
  padding:20px 24px; margin:32px 0;
}
.post-notice p { font-size:.9375rem; line-height:1.55; margin:0; color:var(--ink-noir); }
.post-notice a { color:var(--accent-champagne); border-bottom:1px solid var(--accent-champagne); }

/* ==========================================================
   PAGE HERO WITH BANNER IMAGE
   ========================================================== */
.hero-with-image {
  display:flex; align-items:center;
  position:relative;
  border-bottom:1px solid var(--line-hair);
  padding:80px 0 64px;
}
.hero-with-image .container { position:relative; z-index:1; }
.hero-with-image .breadcrumb { color:#fff; text-shadow:0 1px 4px rgba(0,0,0,.6); }
.hero-with-image .breadcrumb a { color:#fff; }
.hero-with-image h1 { color:#fff; text-shadow:0 2px 10px rgba(0,0,0,.75), 0 1px 2px rgba(0,0,0,.9); max-width:640px; }
.hero-with-image .lede { color:#fff; text-shadow:0 1px 6px rgba(0,0,0,.7); max-width:560px; }
@media (max-width:768px){ .hero-with-image { min-height:320px !important; padding:48px 0 40px; } }

/* ==========================================================
   JOURNAL — Brilliant Earth-style guide directory
   ========================================================== */

/* Breadcrumb */
.guide-breadcrumb {
  padding:24px 48px 16px;
  font-size:.8125rem;
  color:var(--ink-shadow);
  letter-spacing:.04em;
}
.guide-breadcrumb a { color:var(--ink-shadow); text-decoration:none; }
.guide-breadcrumb a:hover { color:var(--ink-noir); }
.guide-breadcrumb .sep { margin:0 8px; }
.guide-breadcrumb .current { color:var(--ink-noir); }

/* Hero featured */
.guide-hero {
  width:100%;
  max-width:1600px;
  margin:0 auto 64px;
  padding:0 48px;
}
.guide-hero-link {
  display:block;
  position:relative;
  width:100%;
  aspect-ratio:21/9;
  overflow:hidden;
  background:var(--canvas-snow);
  text-decoration:none;
}
.guide-hero-img { position:absolute; inset:0; }
.guide-hero-img img {
  width:100%; height:100%; object-fit:cover;
  transition:transform 600ms ease-in-out;
}
.guide-hero-link:hover .guide-hero-img img { transform:scale(1.03); }
.guide-hero-overlay {
  position:absolute; inset:0;
  display:flex; flex-direction:column; align-items:flex-start; justify-content:center;
  text-align:left; padding:48px 48px 48px 64px;
  background:linear-gradient(90deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.25) 45%, rgba(0,0,0,0) 70%);
}
.guide-hero-overlay h2 {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(2rem, 4vw, 3.5rem);
  color:#fff; font-weight:400; line-height:1.1;
  text-shadow:0 2px 12px rgba(0,0,0,.4);
  max-width:760px;
  margin:0;
}
.guide-hero-overlay .learn-more {
  margin-top:24px;
  font-size:.875rem; letter-spacing:.16em; text-transform:uppercase;
  color:#fff; font-weight:500;
  border-bottom:1px solid #fff;
  padding-bottom:4px;
}
@media (max-width:768px){
  .guide-hero { padding:0 16px; margin-bottom:40px; }
  .guide-hero-link { aspect-ratio:4/3; }
  .guide-hero-overlay h2 { font-size:1.625rem; }
}

/* Section headlines (H2) */
.guide-section-h2 {
  font-family:'Cormorant Garamond', serif;
  font-size:2.25rem; font-weight:400; line-height:1.15;
  color:var(--ink-noir);
  text-align:center;
  margin-bottom:40px;
}
@media (max-width:768px){ .guide-section-h2 { font-size:1.625rem; margin-bottom:28px; } }

/* 4-card image+headline grid */
.guide-grid {
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:32px;
  margin-bottom:48px;
}
.guide-card {
  display:flex; flex-direction:column;
  text-decoration:none;
  color:var(--ink-noir);
}
.guide-card-img {
  width:100%;
  aspect-ratio:4/5;
  overflow:hidden;
  background:var(--canvas-snow);
  margin-bottom:16px;
}
.guide-card-img img {
  width:100%; height:100%; object-fit:cover;
  transition:transform 480ms ease-in-out;
}
.guide-card:hover .guide-card-img img { transform:scale(1.04); }
.guide-card h4 {
  font-family:'Cormorant Garamond', serif;
  font-size:1.25rem; line-height:1.25;
  font-weight:400;
  color:var(--ink-noir);
  margin:0; text-align:center;
  padding:0 12px;
}
.guide-card:hover h4 { color:var(--accent-champagne); }
@media (max-width:900px){ .guide-grid { grid-template-columns:1fr 1fr; gap:24px; } }
@media (max-width:480px){ .guide-grid { grid-template-columns:1fr 1fr; gap:16px; } .guide-card h4 { font-size:1rem; } }

/* Explore More text-link list */
.explore-more {
  max-width:1100px;
  margin:48px auto 0;
  padding:32px 24px 0;
  border-top:1px solid var(--line-hair);
}
.explore-more.no-margin { margin-top:0; padding-top:0; border-top:0; }
.explore-more h3 {
  font-family:'Cormorant Garamond', serif;
  font-size:1.5rem; font-weight:400;
  color:var(--ink-noir);
  text-align:center;
  margin-bottom:24px;
}
.explore-list {
  list-style:none; padding:0;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:12px 32px;
  max-width:900px; margin:0 auto;
}
.explore-list.two-col { grid-template-columns:repeat(2, 1fr); }
.explore-list li {
  padding:8px 0;
  border-bottom:1px solid var(--line-hair);
}
.explore-list a {
  font-size:.9375rem;
  color:var(--ink-graphite);
  text-decoration:none;
}
.explore-list a:hover { color:var(--accent-champagne); }
@media (max-width:768px){
  .explore-list { grid-template-columns:1fr; gap:0; }
  .explore-list.two-col { grid-template-columns:1fr; }
}

.mx-auto { margin-left:auto; margin-right:auto; }

/* ==========================================================
   SHOP BY DIAMOND SHAPE — preview-swap on hover (BE style)
   ========================================================== */
.shape-explorer {
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);
  gap:40px;
  align-items:start;
  max-width:1200px;
  margin:0 auto;
}
.shape-preview {
  display:block;
  position:relative;
  width:100%;
  aspect-ratio:1;
  overflow:hidden;
  background:var(--canvas-pure);
  text-decoration:none;
}
.shape-preview img {
  width:100%; height:100%;
  object-fit:cover;
  display:block;
  transition:opacity 280ms ease;
}
.shape-preview-cta {
  position:absolute; left:50%; bottom:24px;
  transform:translateX(-50%);
  background:rgba(20,20,20,.85);
  color:var(--ink-invert);
  padding:12px 28px;
  font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500;
  opacity:0; transition:opacity 220ms ease;
  white-space:nowrap;
}
.shape-preview:hover .shape-preview-cta { opacity:1; }

.shape-explorer-rail {
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:14px;
  align-content:start;
}
.shape-explorer-tile {
  display:flex; flex-direction:column; align-items:center; gap:8px;
  padding:14px 6px;
  background:transparent;
  border:1px solid transparent;
  text-decoration:none;
  cursor:pointer;
  transition:all 220ms ease;
}
.shape-explorer-tile img {
  width:54px; height:54px;
  object-fit:contain;
  opacity:.55;
  transition:opacity 220ms ease, transform 220ms ease;
}
.shape-explorer-tile span {
  font-size:.6875rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-graphite); font-weight:500;
}
.shape-explorer-tile:hover img,
.shape-explorer-tile.active img { opacity:1; transform:scale(1.08); }
.shape-explorer-tile:hover span,
.shape-explorer-tile.active span { color:var(--ink-noir); }
.shape-explorer-tile.active { border-color:var(--ink-noir); background:var(--canvas-pure); }

@media (max-width:768px){
  .shape-explorer { grid-template-columns:1fr; gap:24px; max-width:520px; }
  .shape-explorer-rail { grid-template-columns:repeat(5,1fr); gap:8px; }
  .shape-explorer-tile img { width:42px; height:42px; }
  .shape-preview-cta { font-size:.625rem; padding:10px 18px; }
}
@media (max-width:480px){
  .shape-explorer-rail { grid-template-columns:repeat(5, 1fr); }
}

/* ==========================================================
   SHOP DIAMONDS BY SHAPE — Brilliant Earth proportions
   Single row, 10 shapes, top-down silhouette icons, image above label
   ========================================================== */
.shop-shapes-h2 {
  font-family:'Cormorant Garamond', serif;
  font-size:2.25rem; font-weight:400; line-height:1.1;
  color:var(--ink-noir);
  margin-bottom:48px;
}
@media (max-width:768px){ .shop-shapes-h2 { font-size:1.625rem; margin-bottom:28px; } }

.be-shape-row {
  display:grid;
  grid-template-columns:repeat(10, 1fr);
  gap:12px;
  max-width:1100px;
  margin:0 auto;
  align-items:end;
}
.be-shape-tile {
  display:flex; flex-direction:column; align-items:center; gap:14px;
  padding:8px 0;
  text-decoration:none;
  transition:transform 220ms ease;
}
.be-shape-tile img {
  width:80px; height:80px;
  object-fit:contain;
  display:block;
  transition:transform 220ms ease;
}
.be-shape-tile span {
  font-size:.75rem;
  letter-spacing:.04em;
  color:var(--ink-noir);
  font-weight:400;
  text-align:center;
  line-height:1.2;
}
.be-shape-tile:hover img { transform:scale(1.08); }
.be-shape-tile:hover span { color:var(--accent-champagne); }

@media (max-width:900px){
  .be-shape-row { grid-template-columns:repeat(5, 1fr); gap:20px 12px; }
  .be-shape-tile img { width:72px; height:72px; }
}
@media (max-width:480px){
  .be-shape-row { grid-template-columns:repeat(5, 1fr); gap:16px 4px; }
  .be-shape-tile img { width:54px; height:54px; }
  .be-shape-tile span { font-size:.6875rem; }
}

/* ==========================================================
   WATCHES PAGE — left-aligned hero, no overlay, bigger filter tiles,
   taller product cards so the full watch + strap is visible
   ========================================================== */

/* Hero — image fills the right side, copy sits on the left with no overlay */
.watches-hero {
  position:relative;
  width:100%;
  min-height:520px;
  background:var(--canvas-snow);
  overflow:hidden;
}
.watches-hero-bg {
  position:absolute; inset:0;
  z-index:0;
}
.watches-hero-bg img {
  width:100%; height:100%;
  object-fit:cover;
  object-position:right center;
  display:block;
}
.watches-hero-inner {
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  min-height:520px;
  padding:64px 0;
  max-width:none;
  padding-left:0;
}
.watches-hero-copy {
  background:transparent;
  padding:0;
  max-width:520px;
  margin-left:48px;
  text-shadow:0 2px 8px rgba(0,0,0,.7), 0 1px 2px rgba(0,0,0,.85);
}
.watches-hero-copy .breadcrumb {
  font-size:.75rem;
  letter-spacing:.06em;
  color:rgba(255,255,255,.85);
  margin-bottom:18px;
}
.watches-hero-copy .breadcrumb a { color:rgba(255,255,255,.85); }
.watches-hero-copy .breadcrumb .current { color:#fff; }
.watches-hero-copy .eyebrow { color:var(--accent-champagne); font-weight:600; }
.watches-hero-copy h1 {
  color:#fff;
  margin-top:14px;
  font-size:2.75rem;
  line-height:1.1;
  font-weight:500;
}
.watches-hero-copy .lede {
  color:#fff;
  margin-top:16px;
  font-size:1rem;
  line-height:1.55;
  font-weight:500;
}
.watches-hero-copy .hero-ctas {
  display:flex; gap:12px; margin-top:28px; flex-wrap:wrap;
}
@media (max-width:900px){
  .watches-hero { min-height:auto; }
  .watches-hero-bg img { object-position:center; }
  .watches-hero-inner { padding:32px 0; min-height:auto; }
  .watches-hero-copy { margin-left:16px; margin-right:16px; padding:28px 24px; max-width:none; }
  .watches-hero-copy h1 { font-size:1.875rem; }
}

/* Bigger filter tiles on the watches page — show the actual watch */
.watches.html .style-rail-tile,
.watches-bigger .style-rail-tile,
body.watches-page .style-rail-tile { /* fallback */ }

/* Simpler: page-scoped via attribute selector won't work without HTML attr,
   so target by being inside the watches.html style-rail by checking the
   neighborhood OR simply make the rule apply only when a wrapper class is present.
   Here we apply only on watches.html by adding rules and bumping the tile size. */
section[id="grid"] .style-rail-section .style-rail-tile { width:160px; }
section[id="grid"] .style-rail-section .style-rail-img {
  width:160px; height:160px;
  background:var(--canvas-snow);
  overflow:hidden;
}
section[id="grid"] .style-rail-section .style-rail-img img {
  width:100%; height:100%;
  object-fit:cover;
  display:block;
}
section[id="grid"] .style-rail-section .style-rail-label {
  margin-top:14px;
  font-size:.8125rem;
  font-weight:500;
  letter-spacing:.08em;
}
@media (max-width:768px){
  section[id="grid"] .style-rail-section .style-rail-tile { width:120px; }
  section[id="grid"] .style-rail-section .style-rail-img { width:120px; height:120px; }
}

/* Watch product cards — taller aspect so face + strap fit, just like
   gallojewelry.com/collections/bulova does. Page-scoped to the watches
   PLP only so engagement/jewelry stay square. */
body[data-page="watches"] .product-img,
section[id="grid"] + script,
.product-grid.watches-grid .product-img {
  aspect-ratio:3/4;
}
/* Without modifying HTML, scope by being inside the watches PLP product-grid
   that has 4+ cards whose handles start with bulova- or sfj/seiko */
PYEOF
echo "interim CSS written"

/* ----- WATCHES PAGE: scoped via [data-page="watches"] ----- */
[data-page="watches"] .style-rail-tile { width:160px; }
[data-page="watches"] .style-rail-img {
  width:160px; height:160px;
  background:var(--canvas-snow);
  border-radius:0;
}
[data-page="watches"] .style-rail-img img {
  width:100%; height:100%;
  object-fit:cover;
  display:block;
}
[data-page="watches"] .style-rail-label {
  margin-top:14px;
  font-size:.8125rem;
  font-weight:500;
  letter-spacing:.08em;
}
@media (max-width:768px){
  [data-page="watches"] .style-rail-tile { width:120px; }
  [data-page="watches"] .style-rail-img { width:120px; height:120px; }
}

/* Taller watch product cards so the full watch (face + strap) is visible */
[data-page="watches"] .product-img {
  aspect-ratio:3/4;
  background:var(--canvas-pure);
}
[data-page="watches"] .product-img img {
  object-fit:contain;
  padding:14px;
}

/* Brand-page hero — high-contrast secondary button (Repair & Service) on dark imagery */
.watches-hero .hero-ctas .btn-secondary {
  background: rgba(255,255,255,.08);
  color: #fff;
  border-color: rgba(255,255,255,.65);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}
.watches-hero .hero-ctas .btn-secondary:hover {
  background: #fff;
  color: #1a1a1a;
  border-color: #fff;
}
/* Also brighten the primary button on dark hero for parity */
.watches-hero .hero-ctas .btn-primary {
  box-shadow: 0 6px 24px rgba(0,0,0,.35);
}

/* Brand-page hero text overrides — white-on-dark gradient for legibility */
.hero-with-image .eyebrow { color: var(--accent-champagne); text-shadow:0 1px 4px rgba(0,0,0,.7); }
.hero-with-image .breadcrumb .current { color:#fff; }
.hero-with-image .breadcrumb .sep { color: rgba(255,255,255,.7); }
.hero-with-image .hero-ctas .btn-secondary {
  background: rgba(255,255,255,.10);
  color:#fff; border-color: rgba(255,255,255,.65);
}
.hero-with-image .hero-ctas .btn-secondary:hover {
  background:#fff; color:#1a1a1a; border-color:#fff;
}

/* Force page-hero copy block to the actual left edge of the screen */
.hero-with-image .container {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 96px;
  padding-right: 24px;
  width: 100%;
}
.hero-with-image .container > * {
  max-width: 640px;
}
@media (max-width: 768px) {
  .hero-with-image .container {
    padding-left: 24px;
    padding-right: 16px;
  }
}

/* ==========================================================
   JEWELRY PAGE — Brilliant Earth-style tile grid
   ========================================================== */
.be-crumb { padding:18px 0; background:var(--canvas-snow); border-bottom:1px solid var(--line-hair); font-size:.8125rem; }
.be-crumb a { color:var(--ink-shadow); text-decoration:none; }
.be-crumb a:hover { color:var(--ink-noir); }
.be-crumb .sep { margin:0 10px; color:var(--ink-shadow); }
.be-crumb .current { color:var(--ink-noir); }

/* Full-bleed hero */
.be-hero-full {
  position:relative; min-height:560px; display:flex; align-items:flex-end;
  padding:48px 0 64px;
  background-color:#2a241c;
}
.be-hero-full::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(to bottom, transparent 50%, rgba(0,0,0,.55) 100%);
  pointer-events:none;
}
.be-hero-inner {
  position:relative; z-index:2;
  max-width:1280px; margin:0 auto; width:100%;
  padding:0 48px;
  color:#fff;
}
.be-hero-inner .eyebrow { color:rgba(255,255,255,.85); text-shadow:0 1px 4px rgba(0,0,0,.6); margin-bottom:14px; }
.be-hero-inner .be-hero-h1 {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(2.5rem, 5vw, 4.25rem);
  line-height:1.05; font-weight:400;
  color:#fff; text-shadow:0 2px 12px rgba(0,0,0,.5);
  margin:0 0 28px;
  max-width:680px;
}
.be-hero-full .btn-light {
  background:#fff; color:#1a1a1a; border:1px solid #fff;
  padding:14px 32px; font-size:.8125rem; letter-spacing:.16em; text-transform:uppercase; font-weight:500;
}
.be-hero-full .btn-light:hover { background:transparent; color:#fff; }

/* Section heading centered */
.section-head.center { text-align:center; margin-bottom:48px; }
.section-head.center .display-md { color:var(--ink-noir); font-family:'Cormorant Garamond', serif; font-weight:400; font-size:clamp(1.75rem, 3vw, 2.5rem); }

/* 4-up category grid (Shop by Category) */
.be-cat-grid-4 {
  display:grid; grid-template-columns:repeat(4, 1fr); gap:20px;
}
@media (max-width:900px){ .be-cat-grid-4 { grid-template-columns:repeat(2, 1fr); } }
.be-cat-grid-3 {
  display:grid; grid-template-columns:repeat(3, 1fr); gap:20px;
}
@media (max-width:900px){ .be-cat-grid-3 { grid-template-columns:repeat(2, 1fr); } }
@media (max-width:560px){ .be-cat-grid-3 { grid-template-columns:1fr; } }

/* Each tile: square image + label under it */
.be-cat-tile { display:block; text-decoration:none; color:inherit; }
.be-cat-img {
  width:100%; aspect-ratio:1/1; overflow:hidden;
  background:#f9f7f3;
}
.be-cat-img img {
  width:100%; height:100%; object-fit:cover;
  transition:transform 600ms ease-in-out;
}
.be-cat-tile:hover .be-cat-img img { transform:scale(1.03); }
.be-cat-tile h3 {
  margin:16px 0 0;
  font-family:'Cormorant Garamond', serif;
  font-size:1.25rem; font-weight:400;
  color:var(--ink-noir);
  text-align:center;
  letter-spacing:.02em;
}

/* Best Sellers row */
.be-bestseller-row {
  display:grid; grid-template-columns:repeat(4, 1fr); gap:20px;
}
@media (max-width:900px){ .be-bestseller-row { grid-template-columns:repeat(2, 1fr); } }
.be-bestseller {
  display:block; padding:24px 20px;
  background:var(--canvas-snow); border:1px solid var(--line-hair);
  font-family:'Cormorant Garamond', serif;
  font-size:1.125rem; color:var(--ink-noir); text-decoration:none;
  text-align:center;
  transition:background 200ms ease;
}
.be-bestseller:hover { background:#fff; }

/* Featured Collections — 3 stacked wide cards */
.be-feature-stack { display:flex; flex-direction:column; gap:32px; }
.be-feature-card {
  display:grid; grid-template-columns:1fr 1fr;
  background:#fff; border:1px solid var(--line-hair);
  text-decoration:none; color:inherit;
  overflow:hidden;
}
@media (max-width:768px){ .be-feature-card { grid-template-columns:1fr; } }
.be-feature-img { aspect-ratio:16/10; overflow:hidden; background:#f9f7f3; }
.be-feature-img img { width:100%; height:100%; object-fit:cover; transition:transform 600ms ease; }
.be-feature-card:hover .be-feature-img img { transform:scale(1.03); }
.be-feature-info { padding:48px; display:flex; flex-direction:column; justify-content:center; }
.be-feature-info h3 {
  font-family:'Cormorant Garamond', serif;
  font-size:2rem; font-weight:400; color:var(--ink-noir);
  margin:0 0 16px;
}
.be-feature-info p { color:var(--ink-shadow); margin:0 0 24px; line-height:1.55; }
.be-feature-info .cta-link {
  font-size:.8125rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-noir); font-weight:500;
  border-bottom:1px solid var(--ink-noir); padding-bottom:4px;
  align-self:flex-start;
}

/* Shop by Style — 5 tiles in a single row */
.be-cat-grid-5 {
  display:grid; grid-template-columns:repeat(5, 1fr); gap:20px;
}
@media (max-width:1100px){ .be-cat-grid-5 { grid-template-columns:repeat(3, 1fr); } }
@media (max-width:700px){  .be-cat-grid-5 { grid-template-columns:repeat(2, 1fr); } }

/* ==========================================================
   Filter options — icons, swatches, scroll indicator
   ========================================================== */
.fopt-icon, .fopt-swatch {
  display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; flex-shrink:0;
  margin-right:10px;
}
.fopt-icon svg { width:22px; height:22px; color:var(--ink-noir); }
.fopt-swatch {
  border-radius:50%;
  border:1px solid rgba(0,0,0,.15);
  box-shadow:inset 0 1px 2px rgba(255,255,255,.4);
}
.fopt-label { flex:1; }
.filter-checks label {
  display:flex; align-items:center; gap:0;
}
/* Stone-Shape grid: 4 columns of icon tiles */
.fopt-grid {
  display:grid !important; grid-template-columns:repeat(4, 1fr); gap:10px;
  list-style:none; padding:0; margin:16px 0 0;
}
.fopt-grid li { padding:0 !important; }
.fopt-grid label {
  display:flex; flex-direction:column; align-items:center;
  padding:10px 4px; border:1px solid var(--line-hair);
  cursor:pointer; font-size:.75rem; text-align:center;
  background:var(--canvas-pure);
  transition:background 160ms ease, border-color 160ms ease;
}
.fopt-grid label:hover { background:var(--canvas-snow); border-color:var(--ink-noir); }
.fopt-grid input[type="checkbox"] { display:none; }
.fopt-grid input[type="checkbox"]:checked + .fopt-icon + .fopt-label {
  font-weight:600;
}
.fopt-grid input[type="checkbox"]:checked ~ * { /* nudge selected look */ }
.fopt-grid label:has(input:checked) {
  background:var(--ink-noir); color:#fff; border-color:var(--ink-noir);
}
.fopt-grid label:has(input:checked) .fopt-icon svg { color:#fff; }

/* Scroll-arrow indicator at the bottom of the filter drawer body */
.filter-drawer-body {
  position:relative;
}
.filter-drawer-body::after {
  content:""; position:sticky; bottom:0; left:0; right:0; display:block;
  height:48px; pointer-events:none;
  background:linear-gradient(to bottom, transparent, var(--canvas-pure) 80%);
  margin-top:-48px;
}
.filter-scroll-hint {
  position:absolute; bottom:12px; left:50%; transform:translateX(-50%);
  width:32px; height:32px; border-radius:50%;
  background:var(--ink-noir); color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 12px rgba(0,0,0,.18);
  cursor:pointer; z-index:5;
  animation:scroll-bounce 1.6s ease-in-out infinite;
}
.filter-scroll-hint svg { width:14px; height:14px; }
@keyframes scroll-bounce {
  0%, 100% { transform:translateX(-50%) translateY(0); opacity:.85; }
  50%      { transform:translateX(-50%) translateY(4px); opacity:1; }
}
.filter-drawer.scrolled-bottom .filter-scroll-hint { opacity:0; pointer-events:none; transition:opacity 200ms ease; }

/* ==========================================================
   Filter — Category tiles (Brilliant Earth Type pattern)
   ========================================================== */
.filter-types {
  display:grid; grid-template-columns:repeat(2, 1fr); gap:10px;
  list-style:none; padding:0; margin:16px 0 0;
}
.filter-types li { padding:0 !important; }
.ftype-tile {
  display:flex; align-items:center; gap:12px;
  padding:8px 10px; border:1px solid var(--line-hair);
  background:var(--canvas-pure); text-decoration:none; color:var(--ink-noir);
  transition:background 160ms ease, border-color 160ms ease, transform 160ms ease;
  border-radius:2px;
}
.ftype-tile:hover { background:var(--canvas-snow); border-color:var(--ink-noir); transform:translateY(-1px); }
.ftype-tile[aria-current="page"] {
  background:var(--ink-noir); color:#fff; border-color:var(--ink-noir);
}
.ftype-thumb {
  width:42px; height:42px; flex-shrink:0;
  border-radius:50%; overflow:hidden;
  background:#f9f7f3;
}
.ftype-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.ftype-label {
  font-size:.8125rem; font-weight:500; letter-spacing:.02em;
  font-family:var(--font-sans);
}
@media (max-width:560px){
  .filter-types { grid-template-columns:1fr; }
}

/* ==========================================================
   Product card — metal color dots + hover image swap
   ========================================================== */
.product-card .card-metals {
  display:flex; gap:8px; justify-content:center;
  margin-top:8px;
}
.card-metal-dot {
  width:16px; height:16px; border-radius:50%;
  background:#e8e6e1;
  border:1.5px solid rgba(0,0,0,.18);
  padding:0; cursor:pointer;
  transition:transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}
.card-metal-dot[data-metal="yellow"] { background:linear-gradient(135deg,#f4d27a,#d6a743); }
.card-metal-dot[data-metal="white"]  { background:linear-gradient(135deg,#e8e6e1,#b7b3aa); }
.card-metal-dot[data-metal="rose"]   { background:linear-gradient(135deg,#f0c4b6,#c98a73); }

.card-metal-dot:hover,
.card-metal-dot.active {
  transform:scale(1.18);
  border-color:#1a1a1a;
  box-shadow:0 0 0 2px rgba(255,255,255,.9), 0 0 0 3px #1a1a1a;
}

/* Image tinting when hovering a metal dot.
   The :has selector lets the card know which dot is hovered, so the image
   filter changes without JavaScript. */
/* ==========================================================
   Product card — metal color dots + hover image swap (BE style)
   ========================================================== */
.product-card .card-metals,
.pcard .card-metals {
  display:flex; gap:6px; justify-content:flex-start; align-items:center;
  margin:10px 0 0;
  padding:0;
}
.card-metal-dot {
  width:13px; height:13px; border-radius:50%;
  padding:0; cursor:pointer;
  border:1px solid rgba(0,0,0,.25);
  position:relative;
  background:transparent;
  transition:box-shadow 180ms ease, transform 180ms ease;
}
.card-metal-dot[data-metal="yellow"] { background:#d8b25c; border-color:rgba(0,0,0,.3); }
.card-metal-dot[data-metal="white"]  { background:#dcdad4; border-color:rgba(0,0,0,.3); }
.card-metal-dot[data-metal="rose"]   { background:#d6a08a; border-color:rgba(0,0,0,.3); }
.card-metal-dot:hover,
.card-metal-dot.active {
  box-shadow:0 0 0 1.5px #fff, 0 0 0 2.5px #1a1a1a;
}
.card-metal-dot:focus { outline:none; box-shadow:0 0 0 1.5px #fff, 0 0 0 2.5px #1a1a1a; }

/* ==========================================================
   Split Hero — Wedding Bands her/him pattern (BE-style)
   ========================================================== */
.split-hero {
  display:grid; grid-template-columns:1fr 1fr;
  min-height:380px; max-height:440px; width:100%;
}
.split-hero-half {
  position:relative; display:block; overflow:hidden;
  text-decoration:none; color:inherit;
}
.split-hero-half img {
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 700ms ease;
}
.split-hero-half:hover img { transform:scale(1.04); }
.split-hero-half::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(to bottom, transparent 40%, rgba(0,0,0,.55) 100%);
}
.split-hero-overlay {
  position:absolute; left:0; right:0; bottom:0;
  z-index:2; padding:32px 40px;
  color:#fff;
  display:flex; flex-direction:column; align-items:flex-start; gap:10px;
}
.split-hero-overlay .eyebrow {
  color:rgba(255,255,255,.85);
  text-shadow:0 1px 4px rgba(0,0,0,.6);
}
.split-hero-h1 {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(1.625rem, 3vw, 2.5rem);
  font-weight:400; line-height:1.1;
  color:#fff; text-shadow:0 2px 12px rgba(0,0,0,.55);
  margin:0;
}
.split-hero .btn-light {
  background:#fff; color:#1a1a1a; border:1px solid #fff;
  padding:10px 22px; font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500;
}
.split-hero-half:hover .btn-light {
  background:transparent; color:#fff;
}
@media (max-width:768px){
  .split-hero { grid-template-columns:1fr; min-height:auto; }
  .split-hero-half { aspect-ratio:4/5; }
  .split-hero-overlay { padding:32px; }
}

/* ==========================================================
   Product Detail Page — star rating + reviews (compact one-row)
   ========================================================== */
.pdp-rating {
  display:flex; align-items:center; gap:10px;
  margin:8px 0 16px;
}
.pdp-stars { display:inline-flex; gap:2px; color:#d4a843; }
.pdp-rating-num { font-weight:500; color:var(--ink-noir); font-size:.875rem; }
.pdp-rating-count {
  font-size:.8125rem; color:var(--ink-shadow);
  text-decoration:underline; text-underline-offset:3px;
}
.pdp-rating-count:hover { color:var(--ink-noir); }

#reviews { padding:48px 0 56px; }
#reviews .container { max-width:1280px; }

/* Top header — summary stats side by side */
.reviews-head {
  display:grid;
  grid-template-columns:auto auto auto 1fr auto;
  align-items:center; gap:18px 24px;
  margin:18px 0 24px;
  padding:18px 22px;
  background:var(--canvas-snow);
  border:1px solid var(--line-hair);
  border-radius:2px;
}
.reviews-summary { display:contents; }
.reviews-summary .eyebrow { display:none; }
.reviews-big { display:flex; align-items:baseline; gap:10px; margin:0; }
.reviews-bignum { font-family:'Cormorant Garamond', serif; font-size:2.25rem; font-weight:500; line-height:1; color:var(--ink-noir); }
.reviews-bigmeta { display:flex; flex-direction:column; gap:2px; }
.reviews-bigmeta .pdp-stars svg { width:14px; height:14px; }
.reviews-count { font-size:.75rem; color:var(--ink-shadow); margin:0; }
.reviews-bars {
  list-style:none; padding:0; margin:0;
  display:flex; flex-direction:column; gap:3px;
  min-width:160px;
}
.reviews-bars li {
  display:grid; grid-template-columns:24px 1fr 22px;
  align-items:center; gap:6px;
  font-size:.6875rem; color:var(--ink-shadow);
}
.reviews-bar { display:block; height:4px; background:var(--canvas-platinum); border-radius:2px; overflow:hidden; }
.reviews-bar-fill { display:block; height:100%; background:#d4a843; border-radius:2px; }
.reviews-bar-count { text-align:right; }
.reviews-head .btn { white-space:nowrap; padding:8px 16px; font-size:.6875rem; }

/* Single horizontal row of reviews */
.reviews-list {
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:14px;
}
@media (max-width:1100px){ .reviews-list { grid-template-columns:repeat(2, 1fr); } }
@media (max-width:600px){  .reviews-list { grid-template-columns:1fr; } }
.review-card {
  padding:16px;
  background:var(--canvas-pure);
  border:1px solid var(--line-hair);
  border-radius:2px;
}
.review-head { display:flex; flex-direction:column; gap:6px; margin-bottom:6px; }
.review-head .pdp-stars svg { width:11px; height:11px; }
.review-head h4 {
  font-family:'Cormorant Garamond', serif;
  font-size:.9375rem; font-weight:500;
  color:var(--ink-noir); margin:0; line-height:1.25;
}
.review-meta { font-size:.6875rem; color:var(--ink-shadow); margin:0 0 8px; letter-spacing:.02em; }
.review-meta strong { color:var(--ink-noir); font-weight:500; }
.review-body {
  font-size:.8125rem; line-height:1.55; color:var(--ink-graphite); margin:0;
  display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden;
}
.reviews-list + .btn { margin:20px auto 0; display:block; font-size:.6875rem; padding:10px 22px; }

/* NAP — visible local SEO block above the footer */
.nap-band {
  background: var(--canvas-snow);
  border-top: 1px solid var(--line-hair);
  border-bottom: 1px solid var(--line-hair);
  padding: 28px 0;
}
.nap-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  font-size: .875rem;
}
@media (max-width: 700px) { .nap-grid { grid-template-columns: 1fr; gap: 18px; } }
.nap-eyebrow {
  margin: 0 0 6px;
  font-size: .6875rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-shadow);
  font-weight: 500;
}
.nap-col p, .nap-col address {
  margin: 0;
  font-style: normal;
  line-height: 1.6;
  color: var(--ink-graphite);
}
.nap-col strong { color: var(--ink-noir); font-weight: 500; }
.nap-col a { color: var(--ink-noir); text-decoration: none; }
.nap-col a:hover { text-decoration: underline; }

/* ==========================================================
   Watch Product Page (watch-product.html)
   ========================================================== */
.watch-pdp-grid {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:56px;
}
@media (max-width:900px){ .watch-pdp-grid { grid-template-columns:1fr; gap:32px; } }

.watch-gallery-main {
  background:#f9f7f3;
  aspect-ratio:1/1;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
  border:1px solid var(--line-hair);
}
.watch-gallery-main img { width:88%; height:88%; object-fit:contain; }
.watch-gallery-thumbs {
  display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:12px;
}
.watch-thumb {
  background:#f9f7f3; border:1px solid var(--line-hair); padding:0;
  aspect-ratio:1/1; cursor:pointer; transition:border-color 160ms ease;
}
.watch-thumb img { width:100%; height:100%; object-fit:contain; }
.watch-thumb:hover { border-color:var(--ink-graphite); }
.watch-thumb.active { border-color:var(--ink-noir); border-width:2px; padding:0; }

.watch-info { padding-top:8px; }
.watch-pdp-title {
  font-family:'Cormorant Garamond', serif;
  font-size:2rem; font-weight:500; line-height:1.15;
  color:var(--ink-noir); margin:6px 0 6px;
}
.watch-pdp-ref {
  font-size:.8125rem; letter-spacing:.06em;
  color:var(--ink-shadow); margin:0 0 12px;
  font-family:'JetBrains Mono', monospace;
}
.watch-pdp-price {
  font-size:1.625rem; font-weight:500; color:var(--ink-noir);
  margin:20px 0 6px;
}
.watch-pdp-price-sub {
  font-size:.8125rem; color:var(--ink-shadow); margin:0 0 24px;
}
.watch-availability {
  display:flex; align-items:center; gap:10px;
  background:var(--canvas-snow); padding:12px 14px;
  border-left:3px solid #2a8d4e; margin-bottom:24px;
  font-size:.8125rem; color:var(--ink-graphite);
}
.watch-stock-dot {
  width:8px; height:8px; border-radius:50%; background:#2a8d4e;
  box-shadow:0 0 0 3px rgba(42,141,78,.18);
  display:inline-block;
}
.watch-actions { margin-bottom:32px; }
.watch-spec-block {
  border-top:1px solid var(--line-hair);
  padding:18px 0;
}
.watch-spec-block summary {
  font-family:'Cormorant Garamond', serif;
  font-size:1.125rem; font-weight:500; color:var(--ink-noir);
  cursor:pointer; list-style:none;
  display:flex; justify-content:space-between; align-items:center;
}
.watch-spec-block summary::after {
  content:'+'; font-size:1.5rem; font-weight:300;
}
.watch-spec-block[open] summary::after { content:'\2212'; }
.watch-specs {
  width:100%; margin-top:14px; font-size:.875rem; border-collapse:collapse;
}
.watch-specs tr { border-bottom:1px solid var(--line-hair); }
.watch-specs td { padding:8px 0; color:var(--ink-graphite); }
.watch-specs td:first-child { color:var(--ink-shadow); width:42%; }
.watch-spec-list {
  list-style:none; padding:0; margin:14px 0 0;
  font-size:.875rem; color:var(--ink-graphite);
}
.watch-spec-list li { padding:6px 0; border-bottom:1px solid var(--line-hair); }
.watch-spec-list li:last-child { border-bottom:0; }

/* Jewelry PDP — metal picker */
.pdp-metal-pick { border:0; padding:0; margin:0 0 16px; }
.pdp-metal-pick legend {
  font-size:.75rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-shadow); padding:0 0 8px;
}
.pdp-metal-row { display:flex; gap:8px; flex-wrap:wrap; }
.pdp-metal-btn {
  display:inline-flex; align-items:center; gap:8px;
  background:#fff; border:1px solid var(--line-hair);
  padding:8px 14px; cursor:pointer;
  font-size:.8125rem; color:var(--ink-noir);
  transition:border-color 160ms ease;
}
.pdp-metal-btn:hover { border-color:var(--ink-graphite); }
.pdp-metal-btn.active { border-color:var(--ink-noir); border-width:2px; padding:7px 13px; }
.pdp-metal-swatch {
  width:14px; height:14px; border-radius:50%; border:1px solid rgba(0,0,0,.18);
  display:inline-block;
}

/* Account & Wishlist header icons have no function yet — hidden until wired.
   (Remove this rule to bring them back.) */
.icon-btn[aria-label="Account"] { display:none; }

/* -------- SPLIT HERO (homepage, Brilliant-Earth style) --------
   Two equal full-bleed panels, white serif headline low-centered,
   white pill button; whole panel is the link. */
.hero-split { display:grid; grid-template-columns:1fr 1fr; }
.hero-panel {
  position:relative; min-height:595px;
  background-size:cover; background-position:center;
  display:flex; align-items:flex-end; justify-content:center;
  padding-bottom:52px; text-decoration:none; overflow:hidden;
}
.hero-panel::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,.20) 60%, rgba(0,0,0,.58) 100%);
}
.hero-panel-content { position:relative; text-align:center; padding:0 24px; }
.hero-panel h1, .hero-panel .hero-panel-title {
  font-family:var(--font-serif); font-size:clamp(2rem, 2.75vw, 3.25rem);
  font-weight:400; line-height:1.1; color:#fff; margin:0 0 20px;
}
.hero-panel-btn {
  display:inline-flex; align-items:center; justify-content:center;
  height:44px; padding:0 22px; background:#fff; color:#2C2C2C;
  font-size:.875rem; transition:background 180ms ease;
}
.hero-panel:hover .hero-panel-btn { background:var(--canvas-snow,#f6f4f1); }
@media (max-width:768px) {
  .hero-split { grid-template-columns:1fr; }
  .hero-panel { min-height:420px; padding-bottom:36px; }
}

/* Logo: original style, scaled up (was 1.875rem) */
.wordmark { font-size:2.25rem; }

/* -------- OBSESSION-WORTHY RINGS (BE-exact: full width, 32px sides, 8px gaps,
   image ratio 298:344, caption 18px/500 16px below) -------- */
.ow-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:8px; padding:0 32px; }
.ow-tile { text-decoration:none; text-align:center; }
.ow-img { aspect-ratio:298/344; overflow:hidden; background:var(--canvas-snow,#f6f4f1); }
.ow-img img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.ow-tile:hover .ow-img img { transform:scale(1.04); }
.ow-tile span { display:block; margin-top:16px; font-size:1.125rem; font-weight:500; color:var(--ink-noir); }
@media (max-width:1024px){ .ow-grid { grid-template-columns:repeat(3,1fr); padding:0 16px; } }
@media (max-width:560px){ .ow-grid { grid-template-columns:repeat(2,1fr); } }

/* -------- 2026 TREND REPORT (BE-exact: full-bleed, 8px gaps,
   image ratio 624:789, serif titles 30px) -------- */
.tr-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.tr-card { text-decoration:none; text-align:center; }
.tr-img { aspect-ratio:624/789; overflow:hidden; background:var(--canvas-snow,#f6f4f1); }
.tr-img img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.tr-card:hover .tr-img img { transform:scale(1.03); }
.tr-card h3 { font-family:var(--font-serif); font-weight:400; font-size:1.875rem; color:var(--ink-noir); margin:18px 0 6px; }
.tr-cta { font-size:.875rem; color:var(--accent-champagne,#b8946a); text-decoration:underline; text-underline-offset:3px; }
@media (max-width:768px){ .tr-grid { grid-template-columns:1fr; } }

/* Real-catalog product badges */
.product-img { position:relative; }
.product-badge {
  position:absolute; top:10px; left:10px; z-index:2;
  background:var(--ink-noir,#1a1a1a); color:#fff;
  font-size:.6875rem; letter-spacing:.06em; text-transform:uppercase;
  padding:4px 9px;
}
.pdp-financing { font-size:.875rem; color:var(--ink-graphite); margin:6px 0 0; }
.pdp-financing a { color:var(--accent-champagne,#b8946a); }

/* -------- MOBILE NAVIGATION -------- */
.mobile-nav-btn { display:none; }
@media (max-width:768px) { .mobile-nav-btn { display:inline-flex; } }
.mobile-nav {
  position:fixed; top:0; left:0; bottom:0; width:min(320px, 85vw);
  background:#fff; z-index:1200; transform:translateX(-103%);
  transition:transform .28s ease; display:flex; flex-direction:column;
  box-shadow:8px 0 40px rgba(0,0,0,.18);
}
.mobile-nav.open { transform:none; }
.mobile-nav-head { display:flex; justify-content:space-between; align-items:center; padding:16px 20px; border-bottom:1px solid var(--line-hair); font-size:.8125rem; letter-spacing:.1em; font-weight:600; }
.mobile-nav nav { overflow:auto; flex:1; }
.mobile-nav ul { list-style:none; margin:0; padding:6px 0; }
.mobile-nav li a { display:block; padding:14px 22px; font-size:1rem; color:var(--ink-noir); text-decoration:none; border-bottom:1px solid var(--line-hair); min-height:48px; }
.mobile-nav-backdrop { position:fixed; inset:0; background:rgba(20,18,16,.45); opacity:0; pointer-events:none; transition:opacity .25s; z-index:1190; }
.mobile-nav-backdrop.open { opacity:1; pointer-events:auto; }

/* -------- WISHLIST -------- */
.pcard-wishlist.active, .pcard-wishlist.active svg { color:#b3403a; fill:#b3403a; }
@media (hover:none) { .pcard .pcard-wishlist { opacity:1 !important; visibility:visible !important; } }
.ddetail-wish { background:none; border:0; padding:4px 0; cursor:pointer; font-size:.875rem; color:var(--accent-champagne,#b8946a); text-align:left; }

/* -------- RECENTLY VIEWED STONES -------- */
.recent-row { display:flex; gap:12px; overflow-x:auto; padding-bottom:6px; -webkit-overflow-scrolling:touch; }
.recent-stone { flex:0 0 auto; width:116px; background:#fff; border:1px solid var(--line-hair); padding:8px; cursor:pointer; text-align:center; }
.recent-stone img { width:100%; aspect-ratio:1/1; object-fit:cover; display:block; }
.recent-stone span { display:block; font-size:.75rem; margin-top:6px; color:var(--ink-graphite); }
.recent-stone .price-tk { color:var(--ink-noir); }

/* -------- TOUCH TAP TARGETS -------- */
@media (max-width:768px) {
  .dfilter-pills .dpill { padding:11px 13px; min-height:42px; }
  .dfilter-pills { gap:8px; }
}
.card-metal-dot { position:relative; }
.card-metal-dot::after { content:''; position:absolute; inset:-9px; }

/* FAQ accordions (engagement/wedding/customize) */
.faq-accordion { border-bottom:1px solid var(--line-hair); padding:14px 0; }
.faq-accordion summary { cursor:pointer; font-weight:600; font-size:1rem; color:var(--ink-noir); list-style:none; display:flex; justify-content:space-between; align-items:center; }
.faq-accordion summary::after { content:'+'; font-size:1.25rem; color:var(--accent-champagne,#b8946a); }
.faq-accordion[open] summary::after { content:'–'; }

/* Footer payment / trust row */
.payment-row { display:flex; flex-wrap:wrap; gap:10px 14px; align-items:center; justify-content:center; padding:18px 16px; border-top:1px solid rgba(255,255,255,.12); margin-top:24px; }
.payment-row span { font-size:.75rem; letter-spacing:.04em; color:inherit; opacity:.75; border:1px solid currentColor; border-radius:4px; padding:3px 8px; }
.payment-row .secure { border:0; opacity:.85; }

/* Hero secondary (ghost) button + button row */
.hero-panel-btns { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.hero-panel-btn { text-decoration:none; }
.hero-panel-btn--ghost { background:transparent; color:#fff; border:1px solid rgba(255,255,255,.85); }
.hero-panel:hover .hero-panel-btn--ghost { background:rgba(255,255,255,.14); }

/* PDP secondary actions: one tidy centered row instead of stacked links */
.pdp-secondary-actions { display:flex; gap:10px; justify-content:center; align-items:center; margin:4px 0 0; font-size:.875rem; }
.pdp-secondary-actions span { color:var(--line-hair); }

/* Price index page */
.pi-headline { padding:8px 0 4px; }
.pi-5k { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
.pi-chip { display:flex; flex-direction:column; align-items:center; gap:2px; border:1px solid var(--line-hair); padding:14px 20px; text-decoration:none; min-width:96px; }
.pi-chip strong { font-size:1.25rem; color:var(--ink-noir); }
.pi-chip span { font-size:.8125rem; color:var(--ink-shadow); }
#pi-table td a { color:var(--ink-noir); text-decoration:underline; text-underline-offset:3px; }

/* Skeleton loaders (diamond grid) */
.dcard-skel { background:#fff; border:1px solid var(--line-hair); padding-bottom:14px; }
.dcard-skel .i { aspect-ratio:1/1; background:linear-gradient(100deg,#eee 30%,#f6f4f1 50%,#eee 70%); background-size:200% 100%; animation:skel 1.1s infinite; }
.dcard-skel .l { height:12px; margin:12px 14px 0; background:#eee; border-radius:3px; animation:skel 1.1s infinite; background:linear-gradient(100deg,#eee 30%,#f6f4f1 50%,#eee 70%); background-size:200% 100%; }
.dcard-skel .l.s { width:50%; }
@keyframes skel { to { background-position:-200% 0; } }

/* Compare stones */
.dcard-compare { position:absolute; bottom:10px; left:10px; z-index:3; background:rgba(255,255,255,.92); border:1px solid var(--line-hair); font-size:.6875rem; letter-spacing:.04em; padding:4px 9px; cursor:pointer; border-radius:20px; }
.dcard-compare.on { background:var(--ink-noir); color:#fff; border-color:var(--ink-noir); }
#compare-bar { position:fixed; bottom:18px; left:50%; transform:translateX(-50%); z-index:1100; background:var(--ink-noir); color:#fff; border:0; padding:13px 22px; font-size:.875rem; letter-spacing:.03em; border-radius:30px; cursor:pointer; box-shadow:0 10px 30px rgba(0,0,0,.3); }

/* Ring reveal (builder review) */
.ring-reveal { display:flex; align-items:center; justify-content:center; gap:16px; margin:4px 0 10px; }
.ring-reveal figure { margin:0; text-align:center; }
.ring-reveal img { width:128px; height:128px; object-fit:cover; border-radius:6px; border:1px solid var(--line-hair); }
.ring-reveal figcaption { font-size:.75rem; color:var(--ink-shadow); margin-top:6px; }
.rr-plus { font-size:1.5rem; color:var(--accent-champagne,#b8946a); }

/* Sticky Your Ring bar */
#ring-bar { position:fixed; left:0; right:0; bottom:0; z-index:1150; background:#fff; border-top:1px solid var(--line-hair); box-shadow:0 -8px 30px rgba(0,0,0,.08); display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 20px; flex-wrap:wrap; }
#ring-bar .rb-items { display:flex; gap:10px; align-items:center; font-size:.875rem; flex-wrap:wrap; }
#ring-bar .rb-sep { color:var(--accent-champagne,#b8946a); }
#ring-bar .muted { color:var(--ink-shadow); }
#ring-bar .rb-right { display:flex; gap:14px; align-items:center; }
#ring-bar .rb-total { font-weight:600; font-size:1.05rem; }
body.has-ring-bar { padding-bottom:74px; }
body.has-ring-bar .sticky-cta { bottom:160px; }
body.has-ring-bar #text-jeweler { bottom:88px; }

/* Mobile sticky add-to-cart */
#m-atc { display:none; }
@media (max-width:768px) {
  #m-atc { position:fixed; left:0; right:0; bottom:0; z-index:1140; background:#fff; border-top:1px solid var(--line-hair); padding:10px 16px; display:flex; align-items:center; justify-content:space-between; gap:12px; transform:translateY(110%); transition:transform .25s ease; }
  #m-atc.show { transform:none; }
  #m-atc .p { font-weight:600; font-size:1.05rem; }
  #m-atc .btn { padding:12px 18px; }
}

/* Text a Jeweler */
#text-jeweler { position:fixed; right:24px; bottom:18px; z-index:1160; }
#text-jeweler .tj-btn { display:flex; align-items:center; gap:8px; background:var(--accent-champagne,#b8946a); color:#fff; border:0; border-radius:30px; padding:13px 18px; font-size:.875rem; letter-spacing:.03em; cursor:pointer; box-shadow:0 10px 28px rgba(0,0,0,.25); }
#text-jeweler .tj-menu { position:absolute; bottom:58px; right:0; background:#fff; border:1px solid var(--line-hair); border-radius:10px; box-shadow:0 18px 50px rgba(0,0,0,.18); padding:8px; width:230px; }
#text-jeweler .tj-menu a { display:block; padding:11px 12px; color:var(--ink-noir); text-decoration:none; font-size:.9375rem; border-radius:6px; }
#text-jeweler .tj-menu a:hover { background:var(--canvas-snow,#f6f4f1); }
#text-jeweler .tj-menu p { font-size:.75rem; color:var(--ink-shadow); padding:6px 12px 4px; margin:0; border-top:1px solid var(--line-hair); }
@media (max-width:768px) { #text-jeweler { bottom:74px; } #text-jeweler .tj-btn span { display:none; } #text-jeweler .tj-btn { padding:14px; border-radius:50%; } }

/* Card metal dots — colored, only rendered when the product has metal variants */
.card-metals { display:flex; gap:6px; padding:10px 16px 0; }
.product-card .card-metals { padding:10px 0 0; }
.card-metal-dot { width:16px; height:16px; border-radius:50%; border:1px solid rgba(0,0,0,.18); padding:0; cursor:pointer; position:relative; }
.card-metal-dot[data-metal="white"]   { background:var(--metal-white,#e6e6e6); }
.card-metal-dot[data-metal="yellow"]  { background:var(--metal-yellow,#e3c16f); }
.card-metal-dot[data-metal="rose"]    { background:var(--metal-rose,#e0a899); }
.card-metal-dot[data-metal="platinum"]{ background:var(--metal-platinum,#d9d9da); }
.card-metal-dot.active { box-shadow:0 0 0 2px #fff, 0 0 0 3px var(--ink-noir,#1a1a1a); }


/* ---- (1) Hero trust bar ---- */
.trust-bar { background:var(--ink-noir,#1a1a1a); color:#fff; }
.trust-bar-inner { display:flex; flex-wrap:wrap; justify-content:center; gap:14px 40px; padding:16px 24px; text-align:center; }
.trust-bar span { font-size:.8125rem; letter-spacing:.04em; color:rgba(255,255,255,.8); }
.trust-bar b { color:#fff; font-weight:600; }
@media (max-width:600px){ .trust-bar-inner { gap:8px 20px; padding:14px 16px; } .trust-bar span { font-size:.6875rem; } }

/* ---- (2) Product card polish: lift + shadow + financing line ---- */
.product-card { transition:transform .2s ease; }
.product-card:hover { transform:translateY(-4px); }
.product-card .product-img { transition:box-shadow .25s ease; }
.product-card:hover .product-img { box-shadow:0 14px 34px rgba(20,18,16,.13); }
.product-mo { font-size:.75rem; color:var(--ink-shadow); margin-top:3px; letter-spacing:.02em; }

/* ---- (3) Editorial line-length cap on section intros ---- */
.section-head > .body-md, .section-head > .body-lg, .section-head > p { max-width:640px; margin-left:auto; margin-right:auto; }

/* ---- (6) Mobile floating-element stacking (no overlaps) ---- */
@media (max-width:768px){
  .sticky-cta { display:none; }                 /* redundant: Text-a-Jeweler + menu Book cover this */
  /* when a full-width bottom bar is up, lift Text-a-Jeweler above it */
  body.has-ring-bar #text-jeweler { bottom:84px; }
  body:has(#m-atc.show) #text-jeweler { bottom:78px; }
  body:has(#m-atc.show) #compare-bar { bottom:74px; }
}


/* ---- (4) Homepage live diamond strip ---- */
.home-dcard { text-decoration:none; display:block; color:inherit; }
.home-dcard .dcard-media iframe { pointer-events:none; }   /* whole card stays a link */
.home-dia-stat strong { color:var(--ink-noir,#1a1a1a); }
#home-diamonds .home-dia-grid { margin-top:8px; }

/* ===========================================================
   REVIEWS REFRESH — real Google data, avatars, verified, lift
   (placed last to override earlier conflicting review blocks)
   =========================================================== */
#reviews .reviews-head {
  display:flex; justify-content:space-between; align-items:flex-end; gap:28px;
  flex-wrap:wrap; background:none; border:0; border-radius:0; padding:0; margin:0 0 40px;
}
#reviews .reviews-summary { display:flex; align-items:center; gap:14px; text-align:left; }
#reviews .reviews-summary .eyebrow { display:none; }
#reviews .reviews-glogo { flex:none; }
#reviews .reviews-stars { display:inline-flex; align-items:center; gap:4px; }
#reviews .reviews-score { font-family:'Cormorant Garamond',serif; font-size:1.85rem; font-weight:600; color:var(--ink-noir); margin-right:6px; line-height:1; }
#reviews .reviews-meta { font-size:.8125rem; color:var(--ink-shadow); margin:6px 0 0; }
#reviews .reviews-meta strong { color:var(--ink-noir); font-weight:600; }
#reviews .reviews-google { display:inline; border:0; padding:0; text-transform:none; letter-spacing:0; font-size:.8125rem; color:var(--accent-champagne); }
#reviews .reviews-google:hover { color:var(--ink-noir); }

#reviews .reviews-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media (max-width:900px){ #reviews .reviews-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ #reviews .reviews-grid { grid-template-columns:1fr; } }
#reviews .review-card {
  position:relative; overflow:hidden;
  background:var(--canvas-pure); border:1px solid var(--line-hair); border-radius:4px;
  padding:26px 24px 20px; box-shadow:0 1px 3px rgba(20,20,20,.05);
  display:flex; flex-direction:column; gap:14px;
  transition:box-shadow .22s ease, transform .22s ease;
}
#reviews .review-card:hover { box-shadow:0 14px 32px rgba(20,20,20,.10); transform:translateY(-2px); }
#reviews .review-card::before {
  content:'\201C'; position:absolute; top:-22px; right:16px;
  font-family:'Cormorant Garamond',serif; font-size:6rem; line-height:1;
  color:var(--accent-champagne); opacity:.15; pointer-events:none;
}
#reviews .review-stars { color:#E5A845; letter-spacing:2px; font-size:.95rem; }
#reviews .review-text { font-size:.9375rem; line-height:1.65; color:var(--ink-graphite); margin:0; flex:1; }
#reviews .review-author {
  display:flex; align-items:center; gap:12px; margin:0; padding-top:14px;
  border-top:1px solid var(--line-hair);
}
#reviews .review-avatar {
  flex:none; width:40px; height:40px; border-radius:50%;
  background:linear-gradient(135deg,#cdb38c,#b8946a); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:.8125rem; font-weight:600; letter-spacing:.03em;
}
#reviews .review-byline { display:flex; flex-direction:column; gap:2px; min-width:0; }
#reviews .review-byline strong { color:var(--ink-noir); font-size:.875rem; display:block; }
#reviews .review-verified { display:inline-flex; align-items:center; gap:5px; font-size:.6875rem; color:var(--ink-shadow); }
#reviews .review-verified svg { flex:none; }
