:root {
  --brand-green: #2d4a2b;
  --brand-green-light: #4a7548;
  --cream: #faf7f2;
  --cream-dark: #ece6d8;
  --ochre: #c9a875;
  --terracotta: #8a6038;
  --ink: #1a1a1a;
  --ink-muted: #6b6b6b;
  --success: #2d4a2b;
  --warning: #8a6038;
  --error: #c0392b;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-sheet: 24px;
}

html { color: var(--ink); background: var(--cream); }
body { font-family: 'Inter', system-ui, -apple-system, sans-serif; -webkit-font-smoothing: antialiased; }

.font-serif { font-family: 'Cormorant Garamond', Georgia, serif; font-feature-settings: "liga" on; letter-spacing: -0.005em; }
.tabular-nums { font-variant-numeric: tabular-nums; }

.safe-bottom { padding-bottom: env(safe-area-inset-bottom, 0); }
.pb-nav { padding-bottom: calc(72px + env(safe-area-inset-bottom, 0)); }

.scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.scroll-x::-webkit-scrollbar { display: none; }
.snap-x { scroll-snap-type: x mandatory; scroll-padding-inline: 1rem; }
.snap-start { scroll-snap-align: start; }

.sticky-shadow { box-shadow: 0 -10px 30px rgba(0,0,0,0.08); }

[x-cloak] { display: none !important; }

[data-wishlist-slug].is-wished { color: #c0392b; }

/* ─── Editorial utilities ─────────────────────────────────── */

/* Eyebrow — small uppercase tracking label. */
.eyebrow {
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--terracotta);
}
.eyebrow-rule {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
}
.eyebrow-rule::before {
  content: "";
  width: 24px;
  height: 1px;
  background: currentColor;
  opacity: 0.45;
}

/* Italian tricolor — tiny accent rule (green/white/red) */
span.italian-rule, .italian-rule {
  display: inline-block !important;
  width: 28px !important;
  height: 3px !important;
  border-radius: 2px;
  flex: none;
  background: linear-gradient(to right,
    #2d4a2b 0%, #2d4a2b 33.33%,
    #f5efe0 33.33%, #f5efe0 66.66%,
    #8a1f2b 66.66%, #8a1f2b 100%);
}

/* Ornamental divider used in typographic fallback cards */
.ornament {
  display: inline-block;
  line-height: 1;
  font-family: 'Cormorant Garamond', serif;
  color: var(--ochre);
}

/* Scroll hint edge-fade used inside carousels */
.fade-edges {
  mask-image: linear-gradient(to right, transparent 0, black 3%, black 97%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0, black 3%, black 97%, transparent 100%);
}

/* Subtle grain overlay — paper texture for cream surfaces */
.grain::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.035;
  mix-blend-mode: multiply;
  background-image:
    radial-gradient(rgba(0,0,0,0.8) 1px, transparent 1px),
    radial-gradient(rgba(0,0,0,0.5) 1px, transparent 1px);
  background-size: 3px 3px, 7px 7px;
  background-position: 0 0, 1px 1px;
}

/* Soft ambient shadow for elevated cards */
.shadow-editorial {
  box-shadow:
    0 1px 2px rgba(26, 18, 8, 0.04),
    0 8px 24px rgba(26, 18, 8, 0.07);
}
.shadow-editorial-lg {
  box-shadow:
    0 2px 4px rgba(26, 18, 8, 0.05),
    0 16px 40px rgba(26, 18, 8, 0.10);
}

/* Story-circle gradient ring (refined) */
.ring-italian {
  background: conic-gradient(from 210deg,
    #c9a875 0%, #e0c090 20%, #8a6038 50%,
    #5a3a20 70%, #c9a875 100%);
}

/* Carousel → grid on desktop (md+) */
@media (min-width: 768px) {
  .md-grid { overflow: visible !important; scroll-snap-type: none !important; }
}

/* Slight scale-on-hover for editorial cards */
.lift { transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s; }
.lift:hover { transform: translateY(-2px); }

/* Smooth hover for image zoom inside cards */
.zoom-img { transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.group:hover .zoom-img, a:hover .zoom-img { transform: scale(1.06); }
