/** Shopify CDN: Minification failed

Line 2474:2 Unexpected "="
Line 2476:36 Unterminated string token

**/
/* ==========================================================================
   Carat Story — brand design system
   Layered on top of Dawn's base.css
   ========================================================================== */

:root {
  --cs-wine: #8b2331;
  --cs-wine-dark: #6d1a26;
  --cs-wine-tint: #f7eef0;
  --cs-wine-light: #fef5f6;
  --cs-ink: #0f0f0f;
  --cs-muted: #7b7b7b;
  --cs-line: #e7e2e0;
  --cs-cream: #faf7f4;
  --cs-gold: #c9a227;
  --cs-gold-soft: #f4dba5;
  --cs-gold-gradient: linear-gradient(135deg, #d4af37 0%, #f4e5b0 50%, #d4af37 100%);
  --cs-white: #ffffff;
  --cs-shadow-sm: 0 2px 8px rgba(15, 15, 15, 0.05);
  --cs-shadow-md: 0 4px 20px rgba(15, 15, 15, 0.08);
  --cs-shadow-lg: 0 8px 32px rgba(15, 15, 15, 0.12);
  --cs-shadow-xl: 0 16px 48px rgba(15, 15, 15, 0.15);

  --cs-max: 1312px;
  --cs-gutter: 2rem;
  --cs-radius: 22px;
  --cs-radius-sm: 14px;
  --cs-radius-pill: 999px;

  --cs-gap: 4rem;
  --cs-gap-sm: 2.4rem;

  --cs-transition-fast: 0.2s ease;
  --cs-transition-base: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --cs-transition-slow: 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

@media screen and (max-width: 749px) {
  :root {
    --cs-gutter: 1.6rem;
    --cs-radius: 18px;
    --cs-gap: 2.8rem;
  }
}

/* ---------- Shared layout primitives ---------- */

.cs-section {
  padding: var(--cs-gap) 0;
}
.cs-section--tight { padding: var(--cs-gap-sm) 0; }
.cs-section--flush { padding: 0; }

.cs-container {
  max-width: var(--cs-max);
  margin: 0 auto;
  padding: 0 var(--cs-gutter);
}
.cs-container--wide { max-width: 1600px; }

/* ---------- Section headings ---------- */

.cs-head {
  text-align: center;
  margin-bottom: 3.2rem;
  position: relative;
}
.cs-head::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -1.2rem;
  transform: translateX(-50%);
  width: 4rem;
  height: 2px;
  background: var(--cs-gold-gradient);
  border-radius: 1px;
}
.cs-head--left { 
  text-align: left; 
}
.cs-head--left::after {
  left: 0;
  transform: translateX(0);
}

.cs-eyebrow {
  display: block;
  font-size: 1.1rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--cs-wine);
  font-weight: 600;
  margin: 0 0 1rem;
  opacity: 0.9;
}

.cs-title {
  font-family: var(--font-heading-family);
  font-weight: var(--font-heading-weight);
  font-size: clamp(2.6rem, 3.4vw, 4.2rem);
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0;
  color: rgb(var(--color-foreground));
  background: linear-gradient(135deg, rgb(var(--color-foreground)) 0%, rgba(var(--color-foreground), 0.75) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.cs-sub {
  margin: 1.2rem auto 0;
  max-width: 62ch;
  color: rgba(var(--color-foreground), 0.7);
  font-size: 1.5rem;
  line-height: 1.7;
}
.cs-head--left .cs-sub { margin-inline: 0; }

/* ---------- Buttons ---------- */

.cs-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  padding: 1.4rem 3.2rem;
  border-radius: var(--cs-radius-pill);
  background: var(--cs-wine);
  color: #fff;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid var(--cs-wine);
  transition: all var(--cs-transition-base);
  cursor: pointer;
  position: relative;
  overflow: hidden;
  box-shadow: var(--cs-shadow-sm);
}
.cs-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%);
  opacity: 0;
  transition: opacity var(--cs-transition-fast);
}
.cs-btn:hover { 
  background: var(--cs-wine-dark); 
  border-color: var(--cs-wine-dark); 
  color: #fff; 
  transform: translateY(-2px); 
  box-shadow: var(--cs-shadow-md);
}
.cs-btn:hover::before { opacity: 1; }
.cs-btn:active { transform: translateY(0); }

.cs-btn--ghost { background: transparent; color: currentColor; border-color: currentColor; }
.cs-btn--ghost:hover { background: currentColor; color: var(--cs-white); }

.cs-btn--light { background: #fff; color: var(--cs-ink); border-color: #fff; }
.cs-btn--light:hover { background: var(--cs-cream); color: var(--cs-ink); border-color: var(--cs-cream); }

.cs-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 1.3rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--cs-wine);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 0.3rem;
}

/* ---------- Horizontal scroller (shared by carousels) ---------- */

.cs-scroller {
  display: flex;
  gap: 2rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 0.5rem;
}
.cs-scroller::-webkit-scrollbar { display: none; }
.cs-scroller > * { scroll-snap-align: start; flex: 0 0 auto; }

.cs-scroller-wrap { position: relative; }

.cs-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 4.4rem;
  height: 4.4rem;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--cs-line);
  display: none;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.08);
  transition: background 0.2s ease;
}
.cs-arrow:hover { background: var(--cs-cream); }
.cs-arrow[hidden] { display: none !important; }
.cs-arrow--prev { left: -2.2rem; }
.cs-arrow--next { right: -2.2rem; }
.cs-arrow svg { width: 1.4rem; height: 1.4rem; }

@media screen and (min-width: 990px) {
  .cs-arrow { display: flex; }
}

/* ==========================================================================
   USP / trust bar
   ========================================================================== */

.cs-usp {
  border-block: 1px solid var(--cs-line);
  background: var(--cs-cream);
}
.cs-usp__grid {
  display: grid;
  /* auto-fit so 3, 4 or 5 promises all fill the row without leaving gaps */
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: 1rem;
}
.cs-usp__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1rem;
  padding: 2.4rem 1rem;
  position: relative;
}
.cs-usp__item + .cs-usp__item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 25%;
  height: 50%;
  width: 1px;
  background: var(--cs-line);
}
.cs-usp__icon { width: 3.4rem; height: 3.4rem; color: var(--cs-wine); }
.cs-usp__icon svg { width: 100%; height: 100%; }
.cs-usp__icon img { width: 100%; height: 100%; object-fit: contain; }
.cs-usp__label {
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.4;
  text-transform: uppercase;
}

@media screen and (max-width: 989px) {
  .cs-usp__grid { grid-template-columns: repeat(3, 1fr); }
  .cs-usp__item:nth-child(3n + 1)::before { display: none; }
}
@media screen and (max-width: 749px) {
  .cs-usp__grid { grid-template-columns: repeat(2, 1fr); gap: 0; }
  .cs-usp__item { padding: 1.8rem 0.8rem; }
  .cs-usp__item::before { display: none !important; }
  .cs-usp__icon { width: 2.8rem; height: 2.8rem; }
  .cs-usp__label { font-size: 1.1rem; }
}

/* ==========================================================================
   Shape picker
   ========================================================================== */

.cs-shapes__track { justify-content: center; }
.cs-shape {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  width: 10rem;
  text-decoration: none;
  color: inherit;
}
.cs-shape__disc {
  width: 8.4rem;
  height: 8.4rem;
  border-radius: 50%;
  border: 2px solid var(--cs-line);
  background: linear-gradient(135deg, var(--cs-white) 0%, var(--cs-cream) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all var(--cs-transition-base);
  position: relative;
  box-shadow: var(--cs-shadow-sm);
}
.cs-shape__disc::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  background: var(--cs-gold-gradient);
  opacity: 0;
  transition: opacity var(--cs-transition-base);
  z-index: -1;
}
.cs-shape:hover .cs-shape__disc {
  border-color: transparent;
  background: var(--cs-wine-light);
  transform: translateY(-4px) scale(1.05);
  box-shadow: var(--cs-shadow-md);
}
.cs-shape:hover .cs-shape__disc::before { opacity: 1; }
.cs-shape__disc svg { 
  width: 4rem; 
  height: 4rem;
  transition: all var(--cs-transition-base);
  color: var(--cs-muted);
}
.cs-shape:hover .cs-shape__disc svg { 
  color: var(--cs-wine);
  transform: rotate(5deg) scale(1.1);
}
.cs-shape__disc img { width: 5rem; height: 5rem; object-fit: contain; }
.cs-shape__name {
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 500;
  text-align: center;
}

@media screen and (max-width: 749px) {
  .cs-shapes__track { justify-content: flex-start; gap: 1.4rem; }
  .cs-shape { width: 7.6rem; }
  .cs-shape__disc { width: 6.6rem; height: 6.6rem; }
  .cs-shape__disc svg { width: 3.2rem; height: 3.2rem; }
  .cs-shape__name { font-size: 1.05rem; }
}

/* ==========================================================================
   Category tiles
   ========================================================================== */

.cs-cats__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2.4rem;
}
.cs-cat {
  display: block;
  text-decoration: none;
  color: inherit;
  text-align: center;
  position: relative;
}
.cs-cat__media {
  position: relative;
  overflow: hidden;
  border-radius: var(--cs-radius);
  background: linear-gradient(135deg, var(--cs-cream) 0%, #ffffff 100%);
  aspect-ratio: 1 / 1;
  box-shadow: var(--cs-shadow-sm);
  transition: all var(--cs-transition-slow);
}
.cs-cat__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(139, 35, 49, 0) 0%, rgba(139, 35, 49, 0.05) 100%);
  opacity: 0;
  transition: opacity var(--cs-transition-base);
}
.cs-cat__media img,
.cs-cat__media svg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--cs-transition-slow);
}
.cs-cat:hover .cs-cat__media { 
  transform: translateY(-4px); 
  box-shadow: var(--cs-shadow-lg);
}
.cs-cat:hover .cs-cat__media::after { opacity: 1; }
.cs-cat:hover .cs-cat__media img { transform: scale(1.08) rotate(1deg); }
.cs-cat__name {
  margin: 1.4rem 0 0;
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: color var(--cs-transition-fast);
}
.cs-cat:hover .cs-cat__name { color: var(--cs-wine); }

@media screen and (max-width: 989px) { .cs-cats__grid { grid-template-columns: repeat(3, 1fr); gap: 1.6rem; } }
@media screen and (max-width: 749px) {
  .cs-cats__grid { grid-template-columns: repeat(2, 1fr); gap: 1.4rem; }
  .cs-cat__name { font-size: 1.2rem; }
}

/* ==========================================================================
   Prestige collection (editorial tiles)
   ========================================================================== */

.cs-prestige__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}
.cs-prestige__item {
  position: relative;
  display: block;
  border-radius: var(--cs-radius);
  overflow: hidden;
  aspect-ratio: 3 / 4;
  text-decoration: none;
  background: var(--cs-cream);
}
.cs-prestige__item img,
.cs-prestige__item svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.cs-prestige__item:hover img { transform: scale(1.05); }
.cs-prestige__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.62) 0%, rgba(0, 0, 0, 0.12) 48%, rgba(0, 0, 0, 0) 75%);
}
.cs-prestige__label {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 2.2rem;
  text-align: center;
  color: #fff;
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 0 1rem;
}

@media screen and (max-width: 749px) {
  .cs-prestige__grid { grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
  .cs-prestige__label { font-size: 1.15rem; bottom: 1.4rem; letter-spacing: 0.12em; }
}

/* ==========================================================================
   Tabbed product carousel
   ========================================================================== */

.cs-tabs__nav {
  display: flex;
  gap: 0.8rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 3rem;
}
.cs-tabs__btn {
  appearance: none;
  border: 1px solid var(--cs-line);
  background: transparent;
  border-radius: var(--cs-radius-pill);
  padding: 1rem 2.2rem;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  color: rgba(var(--color-foreground), 0.75);
  transition: all 0.2s ease;
  white-space: nowrap;
}
.cs-tabs__btn:hover { border-color: var(--cs-wine); color: var(--cs-wine); }
.cs-tabs__btn[aria-selected='true'] {
  background: var(--cs-wine);
  border-color: var(--cs-wine);
  color: #fff;
}
.cs-tabs__panel[hidden] { display: none; }

@media screen and (max-width: 749px) {
  .cs-tabs__nav {
    flex-wrap: nowrap;
    overflow-x: auto;
    justify-content: flex-start;
    scrollbar-width: none;
    margin-inline: calc(var(--cs-gutter) * -1);
    padding-inline: var(--cs-gutter);
  }
  .cs-tabs__nav::-webkit-scrollbar { display: none; }
  .cs-tabs__btn { padding: 0.9rem 1.8rem; font-size: 1.15rem; }
}

/* Product card sizing inside scrollers */
.cs-prod-track > li { width: 26rem; }
@media screen and (max-width: 749px) {
  .cs-prod-track > li { width: 60vw; max-width: 24rem; }
}

/* Savings badge */
.cs-save-badge {
  position: absolute;
  top: 1.2rem;
  left: 1.2rem;
  z-index: 2;
  background: var(--cs-wine);
  color: #fff;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.5rem 1rem;
  border-radius: var(--cs-radius-pill);
}

/* ==========================================================================
   Logo marquee ("As seen in")
   ========================================================================== */

.cs-marquee {
  overflow: hidden;
  position: relative;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
}
.cs-marquee__track {
  display: flex;
  gap: 6rem;
  width: max-content;
  animation: cs-scroll var(--cs-marquee-speed, 30s) linear infinite;
}
.cs-marquee:hover .cs-marquee__track { animation-play-state: paused; }
.cs-marquee__item {
  flex: 0 0 auto;
  height: 4.4rem;
  display: flex;
  align-items: center;
}
.cs-marquee__item img {
  height: 100%;
  width: auto;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.6;
  transition: filter 0.2s ease, opacity 0.2s ease;
}
.cs-marquee__item:hover img { filter: grayscale(0); opacity: 1; }
.cs-marquee__text {
  font-family: var(--font-heading-family);
  font-size: 2.2rem;
  letter-spacing: 0.06em;
  color: rgba(var(--color-foreground), 0.5);
  white-space: nowrap;
}

@keyframes cs-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .cs-marquee__track { animation: none; }
  .cs-marquee { -webkit-mask-image: none; mask-image: none; overflow-x: auto; }
}
@media screen and (max-width: 749px) {
  .cs-marquee__track { gap: 3.4rem; }
  .cs-marquee__item { height: 3.2rem; }
  .cs-marquee__text { font-size: 1.6rem; }
}

/* ==========================================================================
   Custom design CTA
   ========================================================================== */

.cs-design {
  background: var(--cs-cream);
}
.cs-design__inner {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 5rem;
  align-items: center;
}
.cs-design__media {
  border-radius: var(--cs-radius);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #fff;
}
.cs-design__media img,
.cs-design__media svg { width: 100%; height: 100%; object-fit: cover; }

.cs-design__points {
  list-style: none;
  margin: 2.6rem 0 3rem;
  padding: 0;
  display: grid;
  gap: 1.2rem;
}
.cs-design__points li {
  display: flex;
  gap: 1.2rem;
  align-items: flex-start;
  font-size: 1.45rem;
  line-height: 1.5;
}
.cs-design__points li::before {
  content: '';
  flex: 0 0 auto;
  width: 1.1rem;
  height: 1.1rem;
  margin-top: 0.55rem;
  background: var(--cs-wine);
  transform: rotate(45deg);
  border-radius: 2px;
}
.cs-design__actions { display: flex; gap: 1.2rem; flex-wrap: wrap; }

@media screen and (max-width: 989px) {
  .cs-design__inner { grid-template-columns: 1fr; gap: 3rem; }
  .cs-design__actions { justify-content: flex-start; }
}

/* ==========================================================================
   Social proof / customer gallery
   ========================================================================== */

.cs-proof__count {
  font-family: var(--font-heading-family);
  font-size: clamp(3.2rem, 5vw, 5.6rem);
  line-height: 1;
  color: var(--cs-wine);
  margin: 0;
}
.cs-proof__track > * { width: 24rem; }
.cs-proof__card {
  border-radius: var(--cs-radius);
  overflow: hidden;
  aspect-ratio: 1 / 1;
  background: var(--cs-cream);
}
.cs-proof__card img,
.cs-proof__card svg { width: 100%; height: 100%; object-fit: cover; }

@media screen and (max-width: 749px) {
  .cs-proof__track > * { width: 62vw; max-width: 24rem; }
}

/* ==========================================================================
   Promo banner
   ========================================================================== */

.cs-promo {
  position: relative;
  border-radius: var(--cs-radius);
  overflow: hidden;
  min-height: 30rem;
  display: flex;
  align-items: center;
  background: var(--cs-wine);
}
.cs-promo__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cs-promo__veil { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.34); }
.cs-promo__content {
  position: relative;
  z-index: 1;
  padding: 4.5rem var(--cs-gutter);
  color: #fff;
  text-align: center;
  width: 100%;
}
.cs-promo__title {
  font-family: var(--font-heading-family);
  font-size: clamp(2.4rem, 3.6vw, 4rem);
  margin: 0 0 1.2rem;
  line-height: 1.2;
}
.cs-promo__code {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  border: 1px dashed rgba(255, 255, 255, 0.8);
  border-radius: var(--cs-radius-pill);
  padding: 0.9rem 2rem;
  font-size: 1.3rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 2rem;
}

/* ==========================================================================
   Process / video section
   ========================================================================== */

.cs-process__inner {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 5rem;
  align-items: center;
}
.cs-video {
  position: relative;
  border-radius: var(--cs-radius);
  overflow: hidden;
  aspect-ratio: 16 / 10;
  background: var(--cs-ink);
  cursor: pointer;
  border: 0;
  padding: 0;
  width: 100%;
  display: block;
}
.cs-video img,
.cs-video svg { width: 100%; height: 100%; object-fit: cover; }
.cs-video iframe,
.cs-video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: cover; }
.cs-video__play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 7.2rem;
  height: 7.2rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.94);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s ease;
  pointer-events: none;
}
.cs-video:hover .cs-video__play { transform: translate(-50%, -50%) scale(1.08); }
.cs-video__play svg { width: 2.4rem; height: 2.4rem; color: var(--cs-wine); }

@media screen and (max-width: 989px) {
  .cs-process__inner { grid-template-columns: 1fr; gap: 2.8rem; }
}

/* ==========================================================================
   Certification
   ========================================================================== */

.cs-cert__grid {
  display: grid;
  /* auto-fit so 2 or 3 cards both fill the row cleanly */
  grid-template-columns: repeat(auto-fit, minmax(28rem, 1fr));
  gap: 2.4rem;
}
.cs-cert__card {
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius);
  padding: 3.4rem;
  background: var(--cs-white);
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
}
.cs-cert__badge { height: 5.4rem; width: auto; align-self: flex-start; }
.cs-cert__badge img { height: 100%; width: auto; object-fit: contain; }
.cs-cert__badge svg { height: 100%; width: auto; color: var(--cs-wine); }
.cs-cert__title {
  font-family: var(--font-heading-family);
  font-size: 2.4rem;
  margin: 0;
}
.cs-cert__body { margin: 0; color: rgba(var(--color-foreground), 0.72); line-height: 1.65; font-size: 1.45rem; }

@media screen and (max-width: 749px) {
  .cs-cert__grid { grid-template-columns: 1fr; }
  .cs-cert__card { padding: 2.4rem; }
}

/* ==========================================================================
   Impact banner
   ========================================================================== */

.cs-impact {
  position: relative;
  border-radius: var(--cs-radius);
  overflow: hidden;
  color: #fff;
  background: var(--cs-ink);
  text-align: center;
}
.cs-impact__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.55; }
.cs-impact__content { position: relative; z-index: 1; padding: 6rem var(--cs-gutter); }
.cs-impact__headline {
  font-family: var(--font-heading-family);
  font-size: clamp(2.8rem, 4.4vw, 4.8rem);
  margin: 0.6rem 0 1.6rem;
  line-height: 1.15;
}
.cs-impact .cs-eyebrow { color: var(--cs-gold-soft); }

/* ==========================================================================
   FAQ
   ========================================================================== */

.cs-faq__list { max-width: 88rem; margin: 0 auto; }
.cs-faq__item {
  border-bottom: 1px solid var(--cs-line);
}
.cs-faq__item summary {
  list-style: none;
  cursor: pointer;
  padding: 2.2rem 4rem 2.2rem 0;
  position: relative;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.45;
}
.cs-faq__item summary::-webkit-details-marker { display: none; }
.cs-faq__item summary::after {
  content: '';
  position: absolute;
  right: 0.6rem;
  top: 50%;
  width: 1.2rem;
  height: 1.2rem;
  border-right: 2px solid var(--cs-wine);
  border-bottom: 2px solid var(--cs-wine);
  transform: translateY(-70%) rotate(45deg);
  transition: transform 0.25s ease;
}
.cs-faq__item[open] summary::after { transform: translateY(-20%) rotate(-135deg); }
.cs-faq__answer {
  padding: 0 4rem 2.4rem 0;
  margin: 0;
  color: rgba(var(--color-foreground), 0.72);
  line-height: 1.7;
  font-size: 1.45rem;
}

/* ==========================================================================
   Visit store
   ========================================================================== */

.cs-store__inner {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 4rem;
  align-items: center;
}
.cs-store__media {
  border-radius: var(--cs-radius);
  overflow: hidden;
  aspect-ratio: 16 / 11;
  background: var(--cs-cream);
}
.cs-store__media img,
.cs-store__media svg,
.cs-store__media iframe { width: 100%; height: 100%; object-fit: cover; border: 0; display: block; }
.cs-store__meta { list-style: none; padding: 0; margin: 2.4rem 0 3rem; display: grid; gap: 1.4rem; }
.cs-store__meta li { display: flex; gap: 1.2rem; align-items: flex-start; font-size: 1.45rem; line-height: 1.55; }
.cs-store__meta svg { flex: 0 0 auto; width: 1.9rem; height: 1.9rem; color: var(--cs-wine); margin-top: 0.2rem; }
.cs-store__meta a { color: inherit; }

@media screen and (max-width: 989px) {
  .cs-store__inner { grid-template-columns: 1fr; gap: 2.6rem; }
}

/* ==========================================================================
   Global refinements over Dawn
   ========================================================================== */

/* Softer, pill-shaped buttons site-wide */
.button,
.shopify-challenge__button,
.customer button,
button.shopify-payment-button__button--unbranded {
  border-radius: var(--cs-radius-pill);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-size: 1.3rem;
  font-weight: 600;
  min-height: 4.8rem;
}

/* Rounded media everywhere */
.card__inner,
.card--card,
.media--hover-effect,
.global-media-settings {
  border-radius: var(--cs-radius-sm);
  overflow: hidden;
}

/* Product card typography */
.card__heading a,
.card-information .card__heading {
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.01em;
}
.price { font-weight: 600; }
.price--on-sale .price-item--regular { opacity: 0.55; }

/* Section heading font treatment */
.title,
.title-wrapper h2,
.collection__title h2 {
  font-family: var(--font-heading-family);
  letter-spacing: -0.01em;
}

/* Announcement bar */
.announcement-bar {
  font-size: 1.25rem;
  letter-spacing: 0.08em;
}
.announcement-bar__message { padding: 1.2rem 1rem; }

/* Header */
.header {
  padding-top: 1.4rem;
  padding-bottom: 1.4rem;
}
.header__menu-item {
  font-size: 1.3rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  font-weight: 600;
}
.header__menu-item:hover span { text-decoration-thickness: 1px; text-underline-offset: 0.4rem; }
.header__heading-logo { max-height: 6rem; }

/* Hero / slideshow copy */
.banner__heading {
  font-family: var(--font-heading-family);
  letter-spacing: -0.015em;
}
.banner__buttons .button { padding-inline: 3rem; }

/* Footer */
.footer {
  border-top: 1px solid var(--cs-line);
}
.footer-block__heading {
  font-size: 1.3rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 700;
  font-family: var(--font-body-family);
}
.footer-block__details-content .list-menu__item--link,
.footer-block__details-content a {
  font-size: 1.4rem;
  line-height: 1.9;
}
.footer__content-bottom { border-top: 1px solid var(--cs-line); }

/* Newsletter */
.newsletter-form__field-wrapper .field__input { border-radius: var(--cs-radius-pill); }

/* Focus visibility keeps Dawn's accessible outline but tints it on brand */
:focus-visible { outline-color: var(--cs-wine); }

/* Video facade element sizing */
carat-video { display: block; }
.cs-video--playing { cursor: default; }

/* ==========================================================================
   Product page — buy column
   ========================================================================== */

.cs-pdp-save {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 0.8rem;
}
.cs-pdp-save__pct {
  background: var(--cs-wine);
  color: #fff;
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.5rem 1.1rem;
  border-radius: var(--cs-radius-pill);
}
.cs-pdp-save__amt {
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--cs-wine);
}

.cs-pdp-offer {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  background: var(--cs-wine-tint);
  border: 1px dashed var(--cs-wine);
  border-radius: var(--cs-radius-sm);
  padding: 1.2rem 1.6rem;
  margin: 1.6rem 0;
}
.cs-pdp-offer__text { font-size: 1.35rem; font-weight: 600; color: var(--cs-wine-dark); }
.cs-pdp-offer__code {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: var(--cs-wine);
  color: #fff;
  padding: 0.4rem 1rem;
  border-radius: var(--cs-radius-pill);
}

.cs-pdp-trust {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2rem 1.8rem;
  margin: 2rem 0;
  padding: 1.8rem 0;
  border-block: 1px solid var(--cs-line);
}
.cs-pdp-trust__item {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  font-size: 1.25rem;
  line-height: 1.35;
}
.cs-pdp-trust__item svg {
  flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  color: var(--cs-wine);
}

.cs-pdp-delivery {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  background: var(--cs-cream);
  border-radius: var(--cs-radius-sm);
  padding: 1.4rem 1.6rem;
  margin: 1.6rem 0;
  font-size: 1.35rem;
  line-height: 1.45;
}
.cs-pdp-delivery svg { flex: 0 0 auto; width: 2.2rem; height: 2.2rem; color: var(--cs-wine); }

.cs-pdp-support { margin: 2rem 0; }
.cs-pdp-support__heading {
  display: block;
  font-size: 1.15rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(var(--color-foreground), 0.6);
  margin-bottom: 1rem;
}
.cs-pdp-support__links { display: flex; gap: 1rem; flex-wrap: wrap; }
.cs-pdp-support__links a {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius-pill);
  padding: 0.9rem 1.6rem;
  font-size: 1.25rem;
  font-weight: 600;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s ease, color 0.2s ease;
}
.cs-pdp-support__links a:hover { border-color: var(--cs-wine); color: var(--cs-wine); }
.cs-pdp-support__links svg { width: 1.7rem; height: 1.7rem; color: var(--cs-wine); }

@media screen and (max-width: 749px) {
  .cs-pdp-trust { grid-template-columns: 1fr; gap: 1rem; }
}

/* ==========================================================================
   Product page — spec tables
   ========================================================================== */

.cs-specs__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(30rem, 1fr));
  gap: 2.4rem;
}
.cs-specs__card {
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius);
  padding: 2.8rem;
  background: var(--cs-white);
}
.cs-specs__title {
  font-family: var(--font-heading-family);
  font-size: 2.2rem;
  margin: 0 0 1.8rem;
}
.cs-specs__table { width: 100%; border-collapse: collapse; }
.cs-specs__table th,
.cs-specs__table td {
  text-align: left;
  padding: 1.1rem 0;
  border-bottom: 1px solid var(--cs-line);
  font-size: 1.4rem;
  line-height: 1.5;
  vertical-align: top;
}
.cs-specs__table tr:last-child th,
.cs-specs__table tr:last-child td { border-bottom: 0; }
.cs-specs__table th {
  font-weight: 500;
  color: rgba(var(--color-foreground), 0.62);
  width: 48%;
  padding-right: 1.6rem;
}
.cs-specs__table td { font-weight: 600; }

/* Price breakup */
.cs-breakup { max-width: 72rem; margin: 0 auto; }
.cs-breakup__table { width: 100%; border-collapse: collapse; }
.cs-breakup__table th,
.cs-breakup__table td {
  padding: 1.3rem 1.2rem;
  border-bottom: 1px solid var(--cs-line);
  font-size: 1.4rem;
  text-align: left;
}
.cs-breakup__table td:last-child,
.cs-breakup__table th:last-child { text-align: right; }
.cs-breakup__table thead th {
  font-size: 1.15rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground), 0.6);
  font-weight: 600;
}
.cs-breakup__total td {
  border-bottom: 0;
  border-top: 2px solid var(--cs-ink);
  font-weight: 700;
  font-size: 1.6rem;
}
.cs-breakup__note {
  margin: 1.6rem 0 0;
  font-size: 1.25rem;
  color: rgba(var(--color-foreground), 0.6);
}

/* ==========================================================================
   Process steps / services / reviews
   ========================================================================== */

.cs-steps__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2.4rem;
}
.cs-step { text-align: center; position: relative; }
.cs-step__num {
  width: 5.4rem;
  height: 5.4rem;
  margin: 0 auto 1.6rem;
  border-radius: 50%;
  border: 1px solid var(--cs-wine);
  color: var(--cs-wine);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading-family);
  font-size: 2.2rem;
  background: var(--cs-white);
}
.cs-step__title { font-size: 1.5rem; font-weight: 600; margin: 0 0 0.8rem; }
.cs-step__text { margin: 0; font-size: 1.35rem; line-height: 1.6; color: rgba(var(--color-foreground), 0.68); }

.cs-services__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}
.cs-service {
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius);
  padding: 2.6rem 2.2rem;
  text-decoration: none;
  color: inherit;
  display: block;
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.cs-service:hover { border-color: var(--cs-wine); transform: translateY(-2px); }
.cs-service svg { width: 2.8rem; height: 2.8rem; color: var(--cs-wine); margin-bottom: 1.4rem; }
.cs-service__title { font-size: 1.5rem; font-weight: 600; margin: 0 0 0.6rem; }
.cs-service__text { margin: 0; font-size: 1.3rem; line-height: 1.55; color: rgba(var(--color-foreground), 0.68); }

.cs-reviews__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.4rem;
}
.cs-review {
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius);
  padding: 2.6rem;
  background: var(--cs-white);
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.cs-review__stars { color: var(--cs-gold); letter-spacing: 0.2em; font-size: 1.5rem; }
.cs-review__text { margin: 0; font-size: 1.4rem; line-height: 1.7; }
.cs-review__author { margin: 0; font-size: 1.25rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; }

@media screen and (max-width: 989px) {
  .cs-steps__grid,
  .cs-services__grid { grid-template-columns: repeat(2, 1fr); }
  .cs-reviews__grid { grid-template-columns: repeat(2, 1fr); }
}
@media screen and (max-width: 749px) {
  .cs-reviews__grid { grid-template-columns: 1fr; }
  .cs-specs__card { padding: 2rem; }
}

/* ==========================================================================
   Ad landing page
   ========================================================================== */

.cs-accent,
.cs-lp-hero__title em {
  font-style: italic;
  font-family: var(--font-heading-family);
  color: var(--cs-gold-soft);
}
.cs-accent { color: var(--cs-wine); }

/* ---------- Hero ---------- */

.cs-lp-hero {
  position: relative;
  overflow: hidden;
  background: var(--cs-ink);
  color: #fff;
  text-align: center;
  min-height: min(88vh, 78rem);
  display: flex;
  align-items: center;
}
.cs-lp-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cs-lp-hero__veil { position: absolute; inset: 0; background: #000; }
.cs-lp-hero__inner { position: relative; z-index: 1; padding-block: 8rem; }
.cs-lp-hero__logo { height: 4.4rem; width: auto; margin: 0 auto 3.2rem; display: block; }

.cs-lp-hero__title {
  font-family: var(--font-heading-family);
  font-size: clamp(3.6rem, 6.4vw, 7.2rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
  margin: 0 0 2rem;
  color: #fff;
}
.cs-lp-hero__title em { display: block; }

.cs-lp-hero__sub {
  max-width: 60ch;
  margin: 0 auto 1.6rem;
  font-size: clamp(1.5rem, 1.9vw, 1.8rem);
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.82);
}
.cs-lp-hero__anchor {
  margin: 0 0 3.2rem;
  font-size: 1.35rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cs-gold-soft);
}

.cs-lp-hero__actions {
  display: flex;
  gap: 1.2rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 4rem;
}
.cs-lp-hero__actions .cs-btn svg { width: 1.8rem; height: 1.8rem; }
.cs-lp-hero__actions .cs-btn--ghost { color: #fff; border-color: rgba(255, 255, 255, 0.55); }
.cs-lp-hero__actions .cs-btn--ghost:hover { background: #fff; color: var(--cs-ink); border-color: #fff; }

.cs-lp-hero__badges {
  display: flex;
  gap: 1rem 3rem;
  justify-content: center;
  flex-wrap: wrap;
  margin: 0;
  font-size: 1.2rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.78);
}

@media screen and (max-width: 749px) {
  .cs-lp-hero { min-height: auto; }
  .cs-lp-hero__inner { padding-block: 6rem; }
  .cs-lp-hero__actions { flex-direction: column; align-items: stretch; }
  .cs-lp-hero__badges { gap: 0.8rem 2rem; font-size: 1.05rem; }
}

/* ---------- Product grid ---------- */

.cs-lp-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem 2.4rem;
  margin: 0;
}
.cs-lp-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius);
  overflow: hidden;
  background: var(--cs-white);
  transition: all var(--cs-transition-base);
  position: relative;
}
.cs-lp-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: var(--cs-radius);
  padding: 1px;
  background: linear-gradient(135deg, transparent 0%, var(--cs-wine) 50%, transparent 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity var(--cs-transition-base);
}
.cs-lp-card:hover { 
  box-shadow: var(--cs-shadow-xl); 
  transform: translateY(-6px);
  border-color: transparent;
}
.cs-lp-card:hover::before { opacity: 1; }

.cs-lp-card__media {
  position: relative;
  aspect-ratio: 1 / 1;
  background: linear-gradient(135deg, var(--cs-cream) 0%, #ffffff 100%);
  overflow: hidden;
}
.cs-lp-card__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.3) 0%, transparent 60%);
  opacity: 0;
  transition: opacity var(--cs-transition-slow);
}
.cs-lp-card:hover .cs-lp-card__media::after { opacity: 1; }
.cs-lp-card__media img,
.cs-lp-card__media svg { 
  width: 100%; 
  height: 100%; 
  object-fit: cover;
  transition: transform var(--cs-transition-slow);
}
.cs-lp-card:hover .cs-lp-card__media img { transform: scale(1.06); }
.cs-lp-card__badge {
  position: absolute;
  top: 1.2rem;
  left: 1.2rem;
  background: linear-gradient(135deg, var(--cs-wine) 0%, var(--cs-wine-dark) 100%);
  color: #fff;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.5rem 1.1rem;
  border-radius: var(--cs-radius-pill);
  box-shadow: var(--cs-shadow-md);
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.85; }
}

.cs-lp-card__body {
  padding: 2.2rem;
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  flex: 1 1 auto;
}
.cs-lp-card__title {
  font-family: var(--font-heading-family);
  font-size: 2rem;
  line-height: 1.25;
  margin: 0;
}
.cs-lp-card__meta {
  display: flex;
  gap: 1.4rem;
  flex-wrap: wrap;
  margin: 0;
  font-size: 1.15rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground), 0.6);
}
.cs-lp-card__price {
  margin: 0;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
}
.cs-lp-card__now { font-size: 1.9rem; font-weight: 700; color: var(--cs-wine); }
.cs-lp-card__was {
  font-size: 1.4rem;
  font-weight: 500;
  color: rgba(var(--color-foreground), 0.5);
  text-decoration-thickness: 1px;
}
.cs-lp-card__save {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
  background: var(--cs-wine);
  padding: 0.35rem 0.9rem;
  border-radius: var(--cs-radius-pill);
}
.cs-lp-card__text {
  margin: 0;
  font-size: 1.35rem;
  line-height: 1.6;
  color: rgba(var(--color-foreground), 0.7);
}
.cs-lp-card__cta { margin-top: auto; width: 100%; }
.cs-lp-card__cta svg { width: 1.7rem; height: 1.7rem; }

@media screen and (max-width: 989px) { .cs-lp-grid { grid-template-columns: repeat(2, 1fr); } }
@media screen and (max-width: 649px) {
  .cs-lp-grid { grid-template-columns: 1fr; gap: 2rem; }
  .cs-lp-card__body { padding: 1.8rem; }
}

/* ---------- Lead form ---------- */

.cs-lp-form__panel {
  max-width: 68rem;
  margin: 0 auto;
  background: var(--cs-white);
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius);
  padding: 3.6rem;
}
.cs-lead__row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.6rem;
  margin-bottom: 1.6rem;
}
.cs-lead__field { display: flex; flex-direction: column; gap: 0.7rem; }
.cs-lead__field label {
  font-size: 1.15rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(var(--color-foreground), 0.65);
}
.cs-lead__field input,
.cs-lead__field select {
  width: 100%;
  padding: 1.4rem 1.6rem;
  font-size: 1.5rem;
  font-family: inherit;
  color: rgb(var(--color-foreground));
  background: var(--cs-white);
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius-sm);
  transition: border-color 0.2s ease;
}
.cs-lead__field input:focus,
.cs-lead__field select:focus { border-color: var(--cs-wine); outline: 2px solid var(--cs-wine); outline-offset: 1px; }

.cs-lead__submit { width: 100%; margin-top: 0.8rem; }
.cs-lead__note {
  margin: 1.4rem 0 0;
  text-align: center;
  font-size: 1.2rem;
  color: rgba(var(--color-foreground), 0.6);
}
.cs-lead__direct {
  margin: 2rem 0 0;
  text-align: center;
  font-size: 1.35rem;
  color: rgba(var(--color-foreground), 0.7);
}
.cs-lead__direct a { color: var(--cs-wine); font-weight: 600; }

.cs-lead__errors {
  border: 1px solid var(--cs-wine);
  background: var(--cs-wine-tint);
  border-radius: var(--cs-radius-sm);
  padding: 1.4rem 1.6rem;
  margin-bottom: 1.8rem;
  font-size: 1.35rem;
  color: var(--cs-wine-dark);
}
.cs-lead__errors ul { margin: 0; padding-left: 1.8rem; }

.cs-lead__success { text-align: center; padding: 1.2rem 0; }
.cs-lead__success-title {
  font-family: var(--font-heading-family);
  font-size: 2.6rem;
  margin: 0 0 1rem;
}
.cs-lead__success-text {
  margin: 0 0 2.4rem;
  font-size: 1.45rem;
  line-height: 1.6;
  color: rgba(var(--color-foreground), 0.72);
}
.cs-lead__success-cta svg { width: 1.8rem; height: 1.8rem; }

@media screen and (max-width: 749px) {
  .cs-lp-form__panel { padding: 2.2rem; }
  .cs-lead__row { grid-template-columns: 1fr; gap: 1.4rem; }
}

/* ==========================================================================
   Collection page
   ========================================================================== */

.collection-hero {
  padding-block: 6rem 3.2rem;
  border-bottom: 1px solid var(--cs-line);
}
.collection-hero__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.4rem;
}
.collection-hero__title {
  font-family: var(--font-heading-family);
  font-size: clamp(3rem, 4.4vw, 5rem);
  line-height: 1.1;
  letter-spacing: -0.015em;
  margin: 0;
}
.collection-hero__description {
  max-width: 62ch;
  margin: 0;
  font-size: 1.5rem;
  line-height: 1.7;
  color: rgba(var(--color-foreground), 0.68);
}
.collection-hero__image-container { border-radius: var(--cs-radius); overflow: hidden; }

@media screen and (max-width: 749px) {
  .collection-hero { padding-block: 3.6rem 2.4rem; }
}

/* ---------- Filter + sort bar ---------- */

.facets-container {
  padding-block: 2.4rem;
  border-bottom: 1px solid var(--cs-line);
  margin-bottom: 3.2rem;
}
.facets__disclosure .facets__summary,
.facet-filters__field .select {
  border-radius: var(--cs-radius-pill);
}
.facets__summary {
  font-size: 1.3rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
}
.facets__label,
.facet-filters__label {
  font-size: 1.15rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground), 0.6);
}
.product-count__text,
.product-count {
  font-size: 1.25rem;
  letter-spacing: 0.06em;
  color: rgba(var(--color-foreground), 0.6);
}

/* Active filter chips */
.active-facets__button {
  border-radius: var(--cs-radius-pill);
  border: 1px solid var(--cs-line);
  padding: 0.6rem 1.4rem;
  font-size: 1.2rem;
  transition: border-color 0.2s ease, color 0.2s ease;
}
.active-facets__button:hover { border-color: var(--cs-wine); color: var(--cs-wine); }
.active-facets__button-remove { text-decoration: none; }

/* ---------- Product grid ---------- */

.product-grid { row-gap: 4rem; }
.collection .card__inner { border-radius: var(--cs-radius-sm); }
.collection .card__heading a { font-size: 1.45rem; }
.collection .card-information { padding-top: 1.2rem; }

/* Empty state */
.collection--empty .title-wrapper {
  padding-block: 6rem;
  text-align: center;
}

/* ==========================================================================
   Footer
   ========================================================================== */

.footer {
  border-top: 1px solid var(--cs-line);
  margin-top: 0;
}
.footer__content-top { padding-block: 5.6rem 4rem; }

.footer__blocks-wrapper { row-gap: 4rem; column-gap: 3rem; }

.footer-block__heading {
  font-family: var(--font-body-family);
  font-size: 1.15rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(var(--color-foreground), 0.55);
  margin-bottom: 1.8rem;
}

.footer-block__details-content .list-menu__item--link,
.footer-block__details-content a {
  font-size: 1.4rem;
  line-height: 2.1;
  color: rgba(var(--color-foreground), 0.85);
  text-decoration: none;
  transition: color 0.2s ease;
}
.footer-block__details-content a:hover { color: var(--cs-wine); }

.footer-block__brand-info {
  font-size: 1.45rem;
  line-height: 1.75;
  color: rgba(var(--color-foreground), 0.75);
  max-width: 42ch;
}
.footer-block__brand-info .footer__list-social { margin-top: 2rem; justify-content: flex-start; }

.footer__list-social .list-social__item .icon {
  width: 2rem;
  height: 2rem;
}
.footer__list-social .list-social__link:hover .icon { color: var(--cs-wine); }

/* Newsletter inside the footer */
.footer-block--newsletter { margin-top: 0; }
.footer__newsletter .field__input { border-radius: var(--cs-radius-pill); }
.footer__newsletter .newsletter-form__button { border-radius: 50%; }

/* Bottom bar */
.footer__content-bottom {
  border-top: 1px solid var(--cs-line);
  padding-block: 2.4rem;
}
.footer__content-bottom-wrapper { align-items: center; gap: 1.6rem; }
.footer__copyright {
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  color: rgba(var(--color-foreground), 0.55);
}
.footer__payment { margin-top: 0; }
.footer__payment .list-payment__item { padding: 0 0.4rem; }

@media screen and (max-width: 989px) {
  .footer__content-top { padding-block: 4rem 3rem; }
  .footer__blocks-wrapper { row-gap: 3.2rem; }
  .footer-block__heading { margin-bottom: 1.2rem; }
}

/* ==========================================================================
   360° spin viewer
   ========================================================================== */

.cs-spin {
  display: block;
  max-width: 64rem;
  margin: 0 auto;
}
.cs-spin__stage {
  position: relative;
  aspect-ratio: 1 / 1;
  border-radius: var(--cs-radius);
  overflow: hidden;
  background: var(--cs-white);
  border: 1px solid var(--cs-line);
  cursor: grab;
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
}
.cs-spin.is-dragging .cs-spin__stage { cursor: grabbing; }

.cs-spin__frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0;
  pointer-events: none;
}
.cs-spin__frame.is-active { opacity: 1; }

.cs-spin__hint {
  position: absolute;
  left: 50%;
  bottom: 1.8rem;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.8rem 1.6rem;
  border-radius: var(--cs-radius-pill);
  background: rgba(15, 15, 15, 0.78);
  color: #fff;
  font-size: 1.2rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.cs-spin__hint svg { width: 1.5rem; height: 1.5rem; }
.cs-spin__hint.is-hidden { opacity: 0; }

.cs-spin__range {
  display: block;
  width: 100%;
  max-width: 32rem;
  margin: 2rem auto 0;
  accent-color: var(--cs-wine);
  cursor: pointer;
}

@media screen and (max-width: 749px) {
  .cs-spin__hint { bottom: 1.2rem; font-size: 1.05rem; }
}

/* ==========================================================================
   Footer (carat-footer)
   ========================================================================== */

.cs-foot {
  border-top: 1px solid var(--cs-line);
  font-size: 1.4rem;
}

/* ---------- Signup band ---------- */

.cs-foot__signup {
  background: var(--cs-ink);
  color: #fff;
}
.cs-foot__signup-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
  flex-wrap: wrap;
  padding-block: 3.6rem;
}
.cs-foot__signup-title {
  font-family: var(--font-heading-family);
  font-size: clamp(2rem, 2.6vw, 2.8rem);
  margin: 0 0 0.6rem;
  line-height: 1.2;
}
.cs-foot__signup-text {
  margin: 0;
  font-size: 1.4rem;
  color: rgba(255, 255, 255, 0.7);
  max-width: 46ch;
}

.cs-foot__form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  align-items: center;
  min-width: min(100%, 38rem);
}
.cs-foot__form input[type='email'] {
  flex: 1 1 20rem;
  padding: 1.3rem 1.8rem;
  font-size: 1.4rem;
  font-family: inherit;
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: var(--cs-radius-pill);
}
.cs-foot__form input::placeholder { color: rgba(255, 255, 255, 0.5); }
.cs-foot__form input:focus {
  outline: 2px solid var(--cs-gold-soft);
  outline-offset: 1px;
  border-color: transparent;
}
.cs-foot__form button {
  padding: 1.3rem 2.6rem;
  border: 0;
  border-radius: var(--cs-radius-pill);
  background: #fff;
  color: var(--cs-ink);
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s ease;
}
.cs-foot__form button:hover { background: var(--cs-gold-soft); }
.cs-foot__form-note {
  flex: 1 0 100%;
  margin: 0.4rem 0 0;
  font-size: 1.25rem;
  color: var(--cs-gold-soft);
}
.cs-foot__form-note--error { color: #ffb4b4; }

/* ---------- Trust strip ---------- */

.cs-foot__trust { border-bottom: 1px solid var(--cs-line); }
.cs-foot__trust-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1.4rem 2.4rem;
  padding-block: 2rem;
}
.cs-foot__trust-item {
  display: inline-flex;
  align-items: center;
  gap: 0.9rem;
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 500;
  color: rgba(var(--color-foreground), 0.78);
}
.cs-foot__trust-item svg { width: 2rem; height: 2rem; color: var(--cs-wine); flex: 0 0 auto; }

/* ---------- Main columns ---------- */

.cs-foot__main {
  display: grid;
  grid-template-columns: minmax(26rem, 1.3fr) 2.4fr;
  gap: 4rem 5rem;
  padding-block: 5rem 4rem;
}
.cs-foot__logo { height: 4.4rem; width: auto; display: block; margin-bottom: 1.8rem; }
.cs-foot__wordmark {
  font-family: var(--font-heading-family);
  font-size: 2.4rem;
  margin: 0 0 1.4rem;
}
.cs-foot__blurb {
  margin: 0;
  line-height: 1.75;
  color: rgba(var(--color-foreground), 0.72);
  max-width: 44ch;
}

.cs-foot__social { display: flex; gap: 1rem; margin: 2.2rem 0 0; }
.cs-foot__social a {
  width: 4rem;
  height: 4rem;
  border: 1px solid var(--cs-line);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: inherit;
  transition: border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.cs-foot__social a:hover { border-color: var(--cs-wine); color: var(--cs-wine); transform: translateY(-2px); }
.cs-foot__social svg { width: 1.8rem; height: 1.8rem; }

.cs-foot__cols {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: 3rem 2.4rem;
}
.cs-foot__group { min-width: 0; }
.cs-foot__group-title {
  list-style: none;
  font-size: 1.15rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(var(--color-foreground), 0.55);
  margin-bottom: 1.6rem;
}
.cs-foot__group-title::-webkit-details-marker { display: none; }

.cs-foot__list { margin: 0; display: grid; gap: 1rem; }
.cs-foot__list a {
  color: rgba(var(--color-foreground), 0.85);
  text-decoration: none;
  transition: color 0.2s ease;
}
.cs-foot__list a:hover { color: var(--cs-wine); }

.cs-foot__list--contact li {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  line-height: 1.6;
  color: rgba(var(--color-foreground), 0.78);
}
.cs-foot__list--contact svg { width: 1.8rem; height: 1.8rem; color: var(--cs-wine); flex: 0 0 auto; margin-top: 0.2rem; }
.cs-foot__cta { margin-top: 1.8rem; padding: 1.1rem 2.2rem; font-size: 1.2rem; }

/* ---------- Bottom bar ---------- */

.cs-foot__bottom { border-top: 1px solid var(--cs-line); }
.cs-foot__bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1.4rem 2.4rem;
  padding-block: 2.2rem;
}
.cs-foot__copy {
  margin: 0;
  font-size: 1.2rem;
  color: rgba(var(--color-foreground), 0.55);
}
.cs-foot__policies { display: flex; flex-wrap: wrap; gap: 0.6rem 1.8rem; margin: 0; }
.cs-foot__policies a {
  font-size: 1.2rem;
  color: rgba(var(--color-foreground), 0.6);
  text-decoration: none;
}
.cs-foot__policies a:hover { color: var(--cs-wine); text-decoration: underline; text-underline-offset: 0.3rem; }
.cs-foot__pay { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 0; align-items: center; }
.cs-foot__pay svg { height: 2.2rem; width: auto; }

/* ---------- Mobile: columns collapse ---------- */

@media screen and (max-width: 749px) {
  .cs-foot__signup-inner { padding-block: 2.8rem; gap: 1.8rem; }
  .cs-foot__form { min-width: 100%; }
  .cs-foot__form input[type='email'],
  .cs-foot__form button { flex: 1 0 100%; }

  .cs-foot__trust-inner { justify-content: flex-start; gap: 1.2rem 2rem; padding-block: 1.6rem; }
  .cs-foot__trust-item { font-size: 1.1rem; }

  .cs-foot__main { grid-template-columns: 1fr; gap: 2.4rem; padding-block: 3.2rem 2rem; }
  .cs-foot__cols { grid-template-columns: 1fr; gap: 0; }

  /* Accordion — carat.js removes [open] below this width */
  .cs-foot__group {
    border-bottom: 1px solid var(--cs-line);
    padding-block: 1.4rem;
  }
  .cs-foot__group-title {
    cursor: pointer;
    position: relative;
    margin-bottom: 0;
    padding-right: 3rem;
    font-size: 1.25rem;
    color: rgb(var(--color-foreground));
  }
  .cs-foot__group-title::after {
    content: '';
    position: absolute;
    right: 0.4rem;
    top: 50%;
    width: 0.9rem;
    height: 0.9rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-70%) rotate(45deg);
    transition: transform 0.25s ease;
  }
  .cs-foot__group[open] .cs-foot__group-title::after { transform: translateY(-20%) rotate(-135deg); }
  .cs-foot__group[open] .cs-foot__list { margin-top: 1.4rem; }

  .cs-foot__bottom-inner { justify-content: flex-start; padding-block: 1.8rem; }
}

/* ---------- 360° overlay inside the product media gallery ---------- */

.product__media-item { position: relative; }

.cs-spin--overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  max-width: none;
  margin: 0;
  border-radius: inherit;
  overflow: hidden;
}
.cs-spin--overlay .cs-spin__stage {
  height: 100%;
  aspect-ratio: auto;
  border: 0;
  border-radius: inherit;
  background: transparent;
}
.cs-spin--overlay .cs-spin__frame { object-fit: contain; }

.cs-spin__badge {
  position: absolute;
  top: 1.4rem;
  left: 1.4rem;
  z-index: 2;
  background: rgba(15, 15, 15, 0.82);
  color: #fff;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  padding: 0.5rem 1.1rem;
  border-radius: var(--cs-radius-pill);
  pointer-events: none;
}
.cs-spin--overlay .cs-spin__hint { bottom: 1.4rem; }

@media screen and (max-width: 749px) {
  .cs-spin__badge { top: 1rem; left: 1rem; font-size: 1rem; }
}

/* ==========================================================================
   Breadcrumbs
   ========================================================================== */

.cs-crumbs {
  max-width: var(--cs-max);
  margin: 0 auto;
  padding: 2rem var(--cs-gutter) 0;
}
.cs-crumbs__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.8rem;
  margin: 0;
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  color: rgba(var(--color-foreground), 0.55);
}
.cs-crumbs__list li { display: inline-flex; align-items: center; gap: 0.8rem; }
.cs-crumbs__list li + li::before {
  content: '';
  width: 0.5rem;
  height: 0.5rem;
  border-right: 1px solid currentColor;
  border-top: 1px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.6;
}
.cs-crumbs__list a { color: inherit; text-decoration: none; }
.cs-crumbs__list a:hover { color: var(--cs-wine); text-decoration: underline; text-underline-offset: 0.3rem; }
.cs-crumbs__list [aria-current='page'] { color: rgb(var(--color-foreground)); font-weight: 500; }

@media screen and (max-width: 749px) {
  .cs-crumbs { padding-top: 1.4rem; }
  .cs-crumbs__list { font-size: 1.1rem; }
}

/* ==========================================================================
   Collection: vertical filter sidebar
   ========================================================================== */

@media screen and (min-width: 990px) {
  .facets-vertical .facets-wrapper {
    position: sticky;
    top: 2rem;
    align-self: start;
    max-height: calc(100vh - 4rem);
    overflow-y: auto;
    padding-right: 1.2rem;
    scrollbar-width: thin;
  }
  .facets-vertical .facets__disclosure-vertical {
    border-bottom: 1px solid var(--cs-line);
  }
  .facets-vertical .facets__summary {
    padding-block: 1.6rem;
    font-size: 1.25rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 600;
  }
}

.facets__heading,
.facets-vertical .facets__heading {
  font-size: 1.15rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground), 0.55);
}

/* Checkbox rows read better with a little more air */
.facets__label { padding: 0.8rem 0; font-size: 1.35rem; text-transform: none; letter-spacing: 0; }
.facets__label .facet-checkbox__text-label { line-height: 1.4; }

/* Price range inputs */
.facets__price .field__input { border-radius: var(--cs-radius-sm); }

/* ==========================================================================
   Ring size guide
   ========================================================================== */

.cs-size {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 4rem;
  align-items: start;
}
.cs-size__method { display: flex; gap: 1.6rem; margin-bottom: 2.2rem; }
.cs-size__step {
  flex: 0 0 auto;
  width: 3.6rem;
  height: 3.6rem;
  border-radius: 50%;
  border: 1px solid var(--cs-wine);
  color: var(--cs-wine);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading-family);
  font-size: 1.6rem;
}
.cs-size__method-title { margin: 0 0 0.5rem; font-size: 1.5rem; font-weight: 600; }
.cs-size__method-text {
  margin: 0;
  font-size: 1.4rem;
  line-height: 1.65;
  color: rgba(var(--color-foreground), 0.72);
}
.cs-size__note {
  margin: 2.4rem 0 0;
  padding: 1.4rem 1.8rem;
  border-radius: var(--cs-radius-sm);
  background: var(--cs-wine-tint);
  font-size: 1.35rem;
  line-height: 1.6;
  color: var(--cs-wine-dark);
}
.cs-size__cta { margin-top: 2rem; }
.cs-size__cta svg { width: 1.7rem; height: 1.7rem; }

.cs-size__chart-wrap {
  overflow-x: auto;
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius);
  background: var(--cs-white);
}
.cs-size__chart { width: 100%; border-collapse: collapse; min-width: 34rem; }
.cs-size__chart th,
.cs-size__chart td {
  padding: 1.1rem 1.4rem;
  text-align: left;
  font-size: 1.35rem;
  border-bottom: 1px solid var(--cs-line);
}
.cs-size__chart thead th {
  font-size: 1.1rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(var(--color-foreground), 0.55);
  background: var(--cs-cream);
  position: sticky;
  top: 0;
}
.cs-size__chart tbody th { font-weight: 700; }
.cs-size__chart tbody tr:last-child th,
.cs-size__chart tbody tr:last-child td { border-bottom: 0; }
.cs-size__chart tbody tr:hover { background: var(--cs-cream); }

@media screen and (max-width: 989px) {
  .cs-size { grid-template-columns: 1fr; gap: 2.6rem; }
}

/* ==========================================================================
   Product gallery — two-column grid
   ========================================================================== */

@media screen and (min-width: 750px) {
  .product--columns .product__media-list {
    display: flex;
    flex-wrap: wrap;
    gap: 1.2rem;
    margin: 0;
  }

  /* First image runs full width as a hero, the rest sit two-up beneath it */
  .product--columns .product__media-list > .product__media-item:first-child:not(:only-child) {
    max-width: 100%;
    width: 100%;
  }
  .product--columns .product__media-list > .product__media-item:not(:first-child):not(:only-child) {
    max-width: calc(50% - 0.6rem);
    width: calc(50% - 0.6rem);
    margin: 0;
  }

  .product--columns .product__media-item .product__media,
  .product--columns .product__media-item .media {
    border-radius: var(--cs-radius-sm);
    overflow: hidden;
    background: var(--cs-cream);
  }

  /* A quiet lift on hover, so it reads as clickable for the lightbox */
  .product--columns .product__media-item .media img {
    transition: transform 0.5s ease;
  }
  .product--columns .product__media-item:hover .media img {
    transform: scale(1.03);
  }
}

/* Two-up on mobile as well */
@media screen and (max-width: 749px) {
  .product--mobile-columns .product__media-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
  }
  .product--mobile-columns .product__media-list > .product__media-item:first-child:not(:only-child) {
    width: 100%;
    max-width: 100%;
  }
  .product--mobile-columns .product__media-item .media {
    border-radius: var(--cs-radius-sm);
    overflow: hidden;
  }
}

/* ---------- Price breakup: variant-aware table ---------- */

.cs-breakup__scroll {
  overflow-x: auto;
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius);
  background: var(--cs-white);
}
.cs-breakup__scroll .cs-breakup__table { min-width: 42rem; margin: 0; }
.cs-breakup__table th,
.cs-breakup__table td { padding: 1.3rem 1.6rem; }
.cs-breakup__table tbody th { font-weight: 600; }
.cs-breakup__sub {
  display: inline-block;
  margin-left: 0.6rem;
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
  background: var(--cs-wine);
  padding: 0.2rem 0.7rem;
  border-radius: var(--cs-radius-pill);
  vertical-align: middle;
}
.cs-breakup__table tfoot .cs-breakup__total td {
  border-top: 2px solid var(--cs-ink);
  border-bottom: 0;
  font-weight: 700;
  font-size: 1.6rem;
}
.cs-breakup__table tfoot .cs-breakup__total td:last-child { color: var(--cs-wine); }

/* Multi-line spec block (e.g. custom.product_spec) */
.cs-specs__card--text { grid-column: 1 / -1; }
.cs-specs__body p {
  margin: 0 0 1rem;
  font-size: 1.45rem;
  line-height: 1.7;
  color: rgba(var(--color-foreground), 0.78);
}
.cs-specs__body p:last-child { margin-bottom: 0; }

/* Product specification inside the buy column */
.cs-pdp-spec {
  margin: 2rem 0;
  padding: 1.8rem 0 0;
  border-top: 1px solid var(--cs-line);
}
.cs-pdp-spec__heading {
  display: block;
  font-size: 1.15rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(var(--color-foreground), 0.55);
  margin-bottom: 1rem;
}
.cs-pdp-spec__body p {
  margin: 0 0 0.8rem;
  font-size: 1.4rem;
  line-height: 1.65;
  color: rgba(var(--color-foreground), 0.8);
}
.cs-pdp-spec__body p:last-child { margin-bottom: 0; }

/* ==========================================================================
   Quote price (replaces cart on an enquiry-led product page)
   ========================================================================== */

.cs-quote { margin: 1.6rem 0 2rem; }
.cs-quote__label {
  display: block;
  font-size: 1.15rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(var(--color-foreground), 0.55);
  margin-bottom: 0.6rem;
}
.cs-quote__price {
  margin: 0;
  font-family: var(--font-heading-family);
  font-size: clamp(3rem, 4vw, 4.2rem);
  line-height: 1.1;
  color: var(--cs-wine);
}
.cs-quote__note {
  margin: 0.8rem 0 0;
  font-size: 1.25rem;
  line-height: 1.55;
  color: rgba(var(--color-foreground), 0.6);
  max-width: 44ch;
}
.cs-quote__cta {
  margin-top: 1.8rem;
  width: 100%;
  padding-block: 1.6rem;
  font-size: 1.35rem;
}
.cs-quote__cta svg { width: 1.9rem; height: 1.9rem; }

/* ==========================================================================
   Header logo — keep a square/tall logo from inflating the header
   ========================================================================== */

.header__heading-logo-wrapper { display: flex; align-items: center; }
.header__heading-logo {
  max-height: 5.6rem;
  width: auto;
  object-fit: contain;
}
@media screen and (max-width: 749px) {
  .header__heading-logo { max-height: 4.2rem; }
}

/* ==========================================================================
   Hero slideshow — image always covers its frame
   ========================================================================== */

.banner__media,
.slideshow__media {
  overflow: hidden;
}
.banner__media img,
.slideshow__media img,
.banner__media > img,
.banner__media .media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* ==========================================================================
   Card "Get a quote" — replaces add-to-cart on an enquiry-led store
   ========================================================================== */

.cs-card-quote {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  width: 100%;
  margin-top: 1.2rem;
  padding: 1.1rem 1.4rem;
  border: 1px solid var(--cs-wine);
  border-radius: var(--cs-radius-pill);
  background: transparent;
  color: var(--cs-wine);
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}
.cs-card-quote:hover,
.cs-card-quote:focus-visible {
  background: var(--cs-wine);
  color: #fff;
}
.cs-card-quote svg { width: 1.6rem; height: 1.6rem; flex: 0 0 auto; }

@media screen and (max-width: 749px) {
  .cs-card-quote { font-size: 1.1rem; padding: 0.9rem 1rem; letter-spacing: 0.06em; }
}

/* ==========================================================================
   No cart on this store — hide the header cart entry point entirely.
   display:none also removes it from the tab order, unlike visibility.
   ========================================================================== */

.header__icon--cart,
#cart-icon-bubble,
.header__icons .header__icon--cart { display: none !important; }

* ==========================================================================
   Carat Story — brand design system
   Layered on top of Dawn's base.css
   ========================================================================== */

:root {
  --cs-wine: #8b2331;
  --cs-wine-dark: #6d1a26;
  --cs-wine-tint: #f7eef0;
  --cs-wine-light: #fef5f6;
  --cs-ink: #0f0f0f;
  --cs-muted: #7b7b7b;
  --cs-line: #e7e2e0;
  --cs-cream: #faf7f4;
  --cs-gold: #c9a227;
  --cs-gold-soft: #f4dba5;
  --cs-gold-gradient: linear-gradient(135deg, #d4af37 0%, #f4e5b0 50%, #d4af37 100%);
  --cs-white: #ffffff;
  --cs-shadow-sm: 0 2px 8px rgba(15, 15, 15, 0.05);
  --cs-shadow-md: 0 4px 20px rgba(15, 15, 15, 0.08);
  --cs-shadow-lg: 0 8px 32px rgba(15, 15, 15, 0.12);
  --cs-shadow-xl: 0 16px 48px rgba(15, 15, 15, 0.15);

  --cs-max: 1312px;
  --cs-gutter: 2rem;
  --cs-radius: 22px;
  --cs-radius-sm: 14px;
  --cs-radius-pill: 999px;

  --cs-gap: 4rem;
  --cs-gap-sm: 2.4rem;

  --cs-transition-fast: 0.2s ease;
  --cs-transition-base: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --cs-transition-slow: 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

@media screen and (max-width: 749px) {
  :root {
    --cs-gutter: 1.6rem;
    --cs-radius: 18px;
    --cs-gap: 2.8rem;
  }
}

/* ---------- Shared layout primitives ---------- */

.cs-section {
  padding: var(--cs-gap) 0;
}
.cs-section--tight { padding: var(--cs-gap-sm) 0; }
.cs-section--flush { padding: 0; }

.cs-container {
  max-width: var(--cs-max);
  margin: 0 auto;
  padding: 0 var(--cs-gutter);
}
.cs-container--wide { max-width: 1600px; }

/* ---------- Section headings ---------- */

.cs-head {
  text-align: center;
  margin-bottom: 3.2rem;
  position: relative;
}
.cs-head::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -1.2rem;
  transform: translateX(-50%);
  width: 4rem;
  height: 2px;
  background: var(--cs-gold-gradient);
  border-radius: 1px;
}
.cs-head--left { 
  text-align: left; 
}
.cs-head--left::after {
  left: 0;
  transform: translateX(0);
}

.cs-eyebrow {
  display: block;
  font-size: 1.1rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--cs-wine);
  font-weight: 600;
  margin: 0 0 1rem;
  opacity: 0.9;
}

.cs-title {
  font-family: var(--font-heading-family);
  font-weight: var(--font-heading-weight);
  font-size: clamp(2.6rem, 3.4vw, 4.2rem);
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0;
  color: rgb(var(--color-foreground));
  background: linear-gradient(135deg, rgb(var(--color-foreground)) 0%, rgba(var(--color-foreground), 0.75) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.cs-sub {
  margin: 1.2rem auto 0;
  max-width: 62ch;
  color: rgba(var(--color-foreground), 0.7);
  font-size: 1.5rem;
  line-height: 1.7;
}
.cs-head--left .cs-sub { margin-inline: 0; }

/* ---------- Buttons ---------- */

.cs-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  padding: 1.4rem 3.2rem;
  border-radius: var(--cs-radius-pill);
  background: var(--cs-wine);
  color: #fff;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid var(--cs-wine);
  transition: all var(--cs-transition-base);
  cursor: pointer;
  position: relative;
  overflow: hidden;
  box-shadow: var(--cs-shadow-sm);
}
.cs-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%);
  opacity: 0;
  transition: opacity var(--cs-transition-fast);
}
.cs-btn:hover { 
  background: var(--cs-wine-dark); 
  border-color: var(--cs-wine-dark); 
  color: #fff; 
  transform: translateY(-2px); 
  box-shadow: var(--cs-shadow-md);
}
.cs-btn:hover::before { opacity: 1; }
.cs-btn:active { transform: translateY(0); }

.cs-btn--ghost { background: transparent; color: currentColor; border-color: currentColor; }
.cs-btn--ghost:hover { background: currentColor; color: var(--cs-white); }

.cs-btn--light { background: #fff; color: var(--cs-ink); border-color: #fff; }
.cs-btn--light:hover { background: var(--cs-cream); color: var(--cs-ink); border-color: var(--cs-cream); }

.cs-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 1.3rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--cs-wine);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 0.3rem;
}

/* ---------- Horizontal scroller (shared by carousels) ---------- */

.cs-scroller {
  display: flex;
  gap: 2rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 0.5rem;
}
.cs-scroller::-webkit-scrollbar { display: none; }
.cs-scroller > * { scroll-snap-align: start; flex: 0 0 auto; }

.cs-scroller-wrap { position: relative; }

.cs-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 4.4rem;
  height: 4.4rem;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--cs-line);
  display: none;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.08);
  transition: background 0.2s ease;
}
.cs-arrow:hover { background: var(--cs-cream); }
.cs-arrow[hidden] { display: none !important; }
.cs-arrow--prev { left: -2.2rem; }
.cs-arrow--next { right: -2.2rem; }
.cs-arrow svg { width: 1.4rem; height: 1.4rem; }

@media screen and (min-width: 990px) {
  .cs-arrow { display: flex; }
}

/* ==========================================================================
   USP / trust bar
   ========================================================================== */

.cs-usp {
  border-block: 1px solid var(--cs-line);
  background: var(--cs-cream);
}
.cs-usp__grid {
  display: grid;
  /* auto-fit so 3, 4 or 5 promises all fill the row without leaving gaps */
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: 1rem;
}
.cs-usp__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1rem;
  padding: 2.4rem 1rem;
  position: relative;
}
.cs-usp__item + .cs-usp__item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 25%;
  height: 50%;
  width: 1px;
  background: var(--cs-line);
}
.cs-usp__icon { width: 3.4rem; height: 3.4rem; color: var(--cs-wine); }
.cs-usp__icon svg { width: 100%; height: 100%; }
.cs-usp__icon img { width: 100%; height: 100%; object-fit: contain; }
.cs-usp__label {
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.4;
  text-transform: uppercase;
}

@media screen and (max-width: 989px) {
  .cs-usp__grid { grid-template-columns: repeat(3, 1fr); }
  .cs-usp__item:nth-child(3n + 1)::before { display: none; }
}
@media screen and (max-width: 749px) {
  .cs-usp__grid { grid-template-columns: repeat(2, 1fr); gap: 0; }
  .cs-usp__item { padding: 1.8rem 0.8rem; }
  .cs-usp__item::before { display: none !important; }
  .cs-usp__icon { width: 2.8rem; height: 2.8rem; }
  .cs-usp__label { font-size: 1.1rem; }
}

/* ==========================================================================
   Shape picker
   ========================================================================== */

.cs-shapes__track { justify-content: center; }
.cs-shape {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  width: 10rem;
  text-decoration: none;
  color: inherit;
}
.cs-shape__disc {
  width: 8.4rem;
  height: 8.4rem;
  border-radius: 50%;
  border: 2px solid var(--cs-line);
  background: linear-gradient(135deg, var(--cs-white) 0%, var(--cs-cream) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all var(--cs-transition-base);
  position: relative;
  box-shadow: var(--cs-shadow-sm);
}
.cs-shape__disc::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  background: var(--cs-gold-gradient);
  opacity: 0;
  transition: opacity var(--cs-transition-base);
  z-index: -1;
}
.cs-shape:hover .cs-shape__disc {
  border-color: transparent;
  background: var(--cs-wine-light);
  transform: translateY(-4px) scale(1.05);
  box-shadow: var(--cs-shadow-md);
}
.cs-shape:hover .cs-shape__disc::before { opacity: 1; }
.cs-shape__disc svg { 
  width: 4rem; 
  height: 4rem;
  transition: all var(--cs-transition-base);
  color: var(--cs-muted);
}
.cs-shape:hover .cs-shape__disc svg { 
  color: var(--cs-wine);
  transform: rotate(5deg) scale(1.1);
}
.cs-shape__disc img { width: 5rem; height: 5rem; object-fit: contain; }
.cs-shape__name {
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 500;
  text-align: center;
}

@media screen and (max-width: 749px) {
  .cs-shapes__track { justify-content: flex-start; gap: 1.4rem; }
  .cs-shape { width: 7.6rem; }
  .cs-shape__disc { width: 6.6rem; height: 6.6rem; }
  .cs-shape__disc svg { width: 3.2rem; height: 3.2rem; }
  .cs-shape__name { font-size: 1.05rem; }
}

/* ==========================================================================
   Category tiles
   ========================================================================== */

.cs-cats__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2.4rem;
}
.cs-cat {
  display: block;
  text-decoration: none;
  color: inherit;
  text-align: center;
  position: relative;
}
.cs-cat__media {
  position: relative;
  overflow: hidden;
  border-radius: var(--cs-radius);
  background: linear-gradient(135deg, var(--cs-cream) 0%, #ffffff 100%);
  aspect-ratio: 1 / 1;
  box-shadow: var(--cs-shadow-sm);
  transition: all var(--cs-transition-slow);
}
.cs-cat__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(139, 35, 49, 0) 0%, rgba(139, 35, 49, 0.05) 100%);
  opacity: 0;
  transition: opacity var(--cs-transition-base);
}
.cs-cat__media img,
.cs-cat__media svg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--cs-transition-slow);
}
.cs-cat:hover .cs-cat__media { 
  transform: translateY(-4px); 
  box-shadow: var(--cs-shadow-lg);
}
.cs-cat:hover .cs-cat__media::after { opacity: 1; }
.cs-cat:hover .cs-cat__media img { transform: scale(1.08) rotate(1deg); }
.cs-cat__name {
  margin: 1.4rem 0 0;
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: color var(--cs-transition-fast);
}
.cs-cat:hover .cs-cat__name { color: var(--cs-wine); }

@media screen and (max-width: 989px) { .cs-cats__grid { grid-template-columns: repeat(3, 1fr); gap: 1.6rem; } }
@media screen and (max-width: 749px) {
  .cs-cats__grid { grid-template-columns: repeat(2, 1fr); gap: 1.4rem; }
  .cs-cat__name { font-size: 1.2rem; }
}

/* ==========================================================================
   Prestige collection (editorial tiles)
   ========================================================================== */

.cs-prestige__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}
.cs-prestige__item {
  position: relative;
  display: block;
  border-radius: var(--cs-radius);
  overflow: hidden;
  aspect-ratio: 3 / 4;
  text-decoration: none;
  background: var(--cs-cream);
}
.cs-prestige__item img,
.cs-prestige__item svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.cs-prestige__item:hover img { transform: scale(1.05); }
.cs-prestige__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.62) 0%, rgba(0, 0, 0, 0.12) 48%, rgba(0, 0, 0, 0) 75%);
}
.cs-prestige__label {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 2.2rem;
  text-align: center;
  color: #fff;
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 0 1rem;
}

@media screen and (max-width: 749px) {
  .cs-prestige__grid { grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
  .cs-prestige__label { font-size: 1.15rem; bottom: 1.4rem; letter-spacing: 0.12em; }
}

/* ==========================================================================
   Tabbed product carousel
   ========================================================================== */

.cs-tabs__nav {
  display: flex;
  gap: 0.8rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 3rem;
}
.cs-tabs__btn {
  appearance: none;
  border: 1px solid var(--cs-line);
  background: transparent;
  border-radius: var(--cs-radius-pill);
  padding: 1rem 2.2rem;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  color: rgba(var(--color-foreground), 0.75);
  transition: all 0.2s ease;
  white-space: nowrap;
}
.cs-tabs__btn:hover { border-color: var(--cs-wine); color: var(--cs-wine); }
.cs-tabs__btn[aria-selected='true'] {
  background: var(--cs-wine);
  border-color: var(--cs-wine);
  color: #fff;
}
.cs-tabs__panel[hidden] { display: none; }

@media screen and (max-width: 749px) {
  .cs-tabs__nav {
    flex-wrap: nowrap;
    overflow-x: auto;
    justify-content: flex-start;
    scrollbar-width: none;
    margin-inline: calc(var(--cs-gutter) * -1);
    padding-inline: var(--cs-gutter);
  }
  .cs-tabs__nav::-webkit-scrollbar { display: none; }
  .cs-tabs__btn { padding: 0.9rem 1.8rem; font-size: 1.15rem; }
}

/* Product card sizing inside scrollers */
.cs-prod-track > li { width: 26rem; }
@media screen and (max-width: 749px) {
  .cs-prod-track > li { width: 60vw; max-width: 24rem; }
}

/* Savings badge */
.cs-save-badge {
  position: absolute;
  top: 1.2rem;
  left: 1.2rem;
  z-index: 2;
  background: var(--cs-wine);
  color: #fff;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.5rem 1rem;
  border-radius: var(--cs-radius-pill);
}

/* ==========================================================================
   Logo marquee ("As seen in")
   ========================================================================== */

.cs-marquee {
  overflow: hidden;
  position: relative;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
}
.cs-marquee__track {
  display: flex;
  gap: 6rem;
  width: max-content;
  animation: cs-scroll var(--cs-marquee-speed, 30s) linear infinite;
}
.cs-marquee:hover .cs-marquee__track { animation-play-state: paused; }
.cs-marquee__item {
  flex: 0 0 auto;
  height: 4.4rem;
  display: flex;
  align-items: center;
}
.cs-marquee__item img {
  height: 100%;
  width: auto;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.6;
  transition: filter 0.2s ease, opacity 0.2s ease;
}
.cs-marquee__item:hover img { filter: grayscale(0); opacity: 1; }
.cs-marquee__text {
  font-family: var(--font-heading-family);
  font-size: 2.2rem;
  letter-spacing: 0.06em;
  color: rgba(var(--color-foreground), 0.5);
  white-space: nowrap;
}

@keyframes cs-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .cs-marquee__track { animation: none; }
  .cs-marquee { -webkit-mask-image: none; mask-image: none; overflow-x: auto; }
}
@media screen and (max-width: 749px) {
  .cs-marquee__track { gap: 3.4rem; }
  .cs-marquee__item { height: 3.2rem; }
  .cs-marquee__text { font-size: 1.6rem; }
}

/* ==========================================================================
   Custom design CTA
   ========================================================================== */

.cs-design {
  background: var(--cs-cream);
}
.cs-design__inner {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 5rem;
  align-items: center;
}
.cs-design__media {
  border-radius: var(--cs-radius);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #fff;
}
.cs-design__media img,
.cs-design__media svg { width: 100%; height: 100%; object-fit: cover; }

.cs-design__points {
  list-style: none;
  margin: 2.6rem 0 3rem;
  padding: 0;
  display: grid;
  gap: 1.2rem;
}
.cs-design__points li {
  display: flex;
  gap: 1.2rem;
  align-items: flex-start;
  font-size: 1.45rem;
  line-height: 1.5;
}
.cs-design__points li::before {
  content: '';
  flex: 0 0 auto;
  width: 1.1rem;
  height: 1.1rem;
  margin-top: 0.55rem;
  background: var(--cs-wine);
  transform: rotate(45deg);
  border-radius: 2px;
}
.cs-design__actions { display: flex; gap: 1.2rem; flex-wrap: wrap; }

@media screen and (max-width: 989px) {
  .cs-design__inner { grid-template-columns: 1fr; gap: 3rem; }
  .cs-design__actions { justify-content: flex-start; }
}

/* ==========================================================================
   Social proof / customer gallery
   ========================================================================== */

.cs-proof__count {
  font-family: var(--font-heading-family);
  font-size: clamp(3.2rem, 5vw, 5.6rem);
  line-height: 1;
  color: var(--cs-wine);
  margin: 0;
}
.cs-proof__track > * { width: 24rem; }
.cs-proof__card {
  border-radius: var(--cs-radius);
  overflow: hidden;
  aspect-ratio: 1 / 1;
  background: var(--cs-cream);
}
.cs-proof__card img,
.cs-proof__card svg { width: 100%; height: 100%; object-fit: cover; }

@media screen and (max-width: 749px) {
  .cs-proof__track > * { width: 62vw; max-width: 24rem; }
}

/* ==========================================================================
   Promo banner
   ========================================================================== */

.cs-promo {
  position: relative;
  border-radius: var(--cs-radius);
  overflow: hidden;
  min-height: 30rem;
  display: flex;
  align-items: center;
  background: var(--cs-wine);
}
.cs-promo__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cs-promo__veil { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.34); }
.cs-promo__content {
  position: relative;
  z-index: 1;
  padding: 4.5rem var(--cs-gutter);
  color: #fff;
  text-align: center;
  width: 100%;
}
.cs-promo__title {
  font-family: var(--font-heading-family);
  font-size: clamp(2.4rem, 3.6vw, 4rem);
  margin: 0 0 1.2rem;
  line-height: 1.2;
}
.cs-promo__code {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  border: 1px dashed rgba(255, 255, 255, 0.8);
  border-radius: var(--cs-radius-pill);
  padding: 0.9rem 2rem;
  font-size: 1.3rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 2rem;
}

/* ==========================================================================
   Process / video section
   ========================================================================== */

.cs-process__inner {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 5rem;
  align-items: center;
}
.cs-video {
  position: relative;
  border-radius: var(--cs-radius);
  overflow: hidden;
  aspect-ratio: 16 / 10;
  background: var(--cs-ink);
  cursor: pointer;
  border: 0;
  padding: 0;
  width: 100%;
  display: block;
}
.cs-video img,
.cs-video svg { width: 100%; height: 100%; object-fit: cover; }
.cs-video iframe,
.cs-video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: cover; }
.cs-video__play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 7.2rem;
  height: 7.2rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.94);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s ease;
  pointer-events: none;
}
.cs-video:hover .cs-video__play { transform: translate(-50%, -50%) scale(1.08); }
.cs-video__play svg { width: 2.4rem; height: 2.4rem; color: var(--cs-wine); }

@media screen and (max-width: 989px) {
  .cs-process__inner { grid-template-columns: 1fr; gap: 2.8rem; }
}

/* ==========================================================================
   Certification
   ========================================================================== */

.cs-cert__grid {
  display: grid;
  /* auto-fit so 2 or 3 cards both fill the row cleanly */
  grid-template-columns: repeat(auto-fit, minmax(28rem, 1fr));
  gap: 2.4rem;
}
.cs-cert__card {
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius);
  padding: 3.4rem;
  background: var(--cs-white);
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
}
.cs-cert__badge { height: 5.4rem; width: auto; align-self: flex-start; }
.cs-cert__badge img { height: 100%; width: auto; object-fit: contain; }
.cs-cert__badge svg { height: 100%; width: auto; color: var(--cs-wine); }
.cs-cert__title {
  font-family: var(--font-heading-family);
  font-size: 2.4rem;
  margin: 0;
}
.cs-cert__body { margin: 0; color: rgba(var(--color-foreground), 0.72); line-height: 1.65; font-size: 1.45rem; }

@media screen and (max-width: 749px) {
  .cs-cert__grid { grid-template-columns: 1fr; }
  .cs-cert__card { padding: 2.4rem; }
}

/* ==========================================================================
   Impact banner
   ========================================================================== */

.cs-impact {
  position: relative;
  border-radius: var(--cs-radius);
  overflow: hidden;
  color: #fff;
  background: var(--cs-ink);
  text-align: center;
}
.cs-impact__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.55; }
.cs-impact__content { position: relative; z-index: 1; padding: 6rem var(--cs-gutter); }
.cs-impact__headline {
  font-family: var(--font-heading-family);
  font-size: clamp(2.8rem, 4.4vw, 4.8rem);
  margin: 0.6rem 0 1.6rem;
  line-height: 1.15;
}
.cs-impact .cs-eyebrow { color: var(--cs-gold-soft); }

/* ==========================================================================
   FAQ
   ========================================================================== */

.cs-faq__list { max-width: 88rem; margin: 0 auto; }
.cs-faq__item {
  border-bottom: 1px solid var(--cs-line);
}
.cs-faq__item summary {
  list-style: none;
  cursor: pointer;
  padding: 2.2rem 4rem 2.2rem 0;
  position: relative;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.45;
}
.cs-faq__item summary::-webkit-details-marker { display: none; }
.cs-faq__item summary::after {
  content: '';
  position: absolute;
  right: 0.6rem;
  top: 50%;
  width: 1.2rem;
  height: 1.2rem;
  border-right: 2px solid var(--cs-wine);
  border-bottom: 2px solid var(--cs-wine);
  transform: translateY(-70%) rotate(45deg);
  transition: transform 0.25s ease;
}
.cs-faq__item[open] summary::after { transform: translateY(-20%) rotate(-135deg); }
.cs-faq__answer {
  padding: 0 4rem 2.4rem 0;
  margin: 0;
  color: rgba(var(--color-foreground), 0.72);
  line-height: 1.7;
  font-size: 1.45rem;
}

/* ==========================================================================
   Visit store
   ========================================================================== */

.cs-store__inner {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 4rem;
  align-items: center;
}
.cs-store__media {
  border-radius: var(--cs-radius);
  overflow: hidden;
  aspect-ratio: 16 / 11;
  background: var(--cs-cream);
}
.cs-store__media img,
.cs-store__media svg,
.cs-store__media iframe { width: 100%; height: 100%; object-fit: cover; border: 0; display: block; }
.cs-store__meta { list-style: none; padding: 0; margin: 2.4rem 0 3rem; display: grid; gap: 1.4rem; }
.cs-store__meta li { display: flex; gap: 1.2rem; align-items: flex-start; font-size: 1.45rem; line-height: 1.55; }
.cs-store__meta svg { flex: 0 0 auto; width: 1.9rem; height: 1.9rem; color: var(--cs-wine); margin-top: 0.2rem; }
.cs-store__meta a { color: inherit; }

@media screen and (max-width: 989px) {
  .cs-store__inner { grid-template-columns: 1fr; gap: 2.6rem; }
}

/* ==========================================================================
   Global refinements over Dawn
   ========================================================================== */

/* Softer, pill-shaped buttons site-wide */
.button,
.shopify-challenge__button,
.customer button,
button.shopify-payment-button__button--unbranded {
  border-radius: var(--cs-radius-pill);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-size: 1.3rem;
  font-weight: 600;
  min-height: 4.8rem;
}

/* Rounded media everywhere */
.card__inner,
.card--card,
.media--hover-effect,
.global-media-settings {
  border-radius: var(--cs-radius-sm);
  overflow: hidden;
}

/* Product card typography */
.card__heading a,
.card-information .card__heading {
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.01em;
}
.price { font-weight: 600; }
.price--on-sale .price-item--regular { opacity: 0.55; }

/* Section heading font treatment */
.title,
.title-wrapper h2,
.collection__title h2 {
  font-family: var(--font-heading-family);
  letter-spacing: -0.01em;
}

/* Announcement bar */
.announcement-bar {
  font-size: 1.25rem;
  letter-spacing: 0.08em;
}
.announcement-bar__message { padding: 1.2rem 1rem; }

/* Header */
.header {
  padding-top: 1.4rem;
  padding-bottom: 1.4rem;
}
.header__menu-item {
  font-size: 1.3rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  font-weight: 600;
}
.header__menu-item:hover span { text-decoration-thickness: 1px; text-underline-offset: 0.4rem; }
.header__heading-logo { max-height: 6rem; }

/* Hero / slideshow copy */
.banner__heading {
  font-family: var(--font-heading-family);
  letter-spacing: -0.015em;
}
.banner__buttons .button { padding-inline: 3rem; }

/* Footer */
.footer {
  border-top: 1px solid var(--cs-line);
}
.footer-block__heading {
  font-size: 1.3rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 700;
  font-family: var(--font-body-family);
}
.footer-block__details-content .list-menu__item--link,
.footer-block__details-content a {
  font-size: 1.4rem;
  line-height: 1.9;
}
.footer__content-bottom { border-top: 1px solid var(--cs-line); }

/* Newsletter */
.newsletter-form__field-wrapper .field__input { border-radius: var(--cs-radius-pill); }

/* Focus visibility keeps Dawn's accessible outline but tints it on brand */
:focus-visible { outline-color: var(--cs-wine); }

/* Video facade element sizing */
carat-video { display: block; }
.cs-video--playing { cursor: default; }

/* ==========================================================================
   Product page — buy column
   ========================================================================== */

.cs-pdp-save {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 0.8rem;
}
.cs-pdp-save__pct {
  background: var(--cs-wine);
  color: #fff;
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.5rem 1.1rem;
  border-radius: var(--cs-radius-pill);
}
.cs-pdp-save__amt {
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--cs-wine);
}

.cs-pdp-offer {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  background: var(--cs-wine-tint);
  border: 1px dashed var(--cs-wine);
  border-radius: var(--cs-radius-sm);
  padding: 1.2rem 1.6rem;
  margin: 1.6rem 0;
}
.cs-pdp-offer__text { font-size: 1.35rem; font-weight: 600; color: var(--cs-wine-dark); }
.cs-pdp-offer__code {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: var(--cs-wine);
  color: #fff;
  padding: 0.4rem 1rem;
  border-radius: var(--cs-radius-pill);
}

.cs-pdp-trust {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2rem 1.8rem;
  margin: 2rem 0;
  padding: 1.8rem 0;
  border-block: 1px solid var(--cs-line);
}
.cs-pdp-trust__item {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  font-size: 1.25rem;
  line-height: 1.35;
}
.cs-pdp-trust__item svg {
  flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  color: var(--cs-wine);
}

.cs-pdp-delivery {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  background: var(--cs-cream);
  border-radius: var(--cs-radius-sm);
  padding: 1.4rem 1.6rem;
  margin: 1.6rem 0;
  font-size: 1.35rem;
  line-height: 1.45;
}
.cs-pdp-delivery svg { flex: 0 0 auto; width: 2.2rem; height: 2.2rem; color: var(--cs-wine); }

.cs-pdp-support { margin: 2rem 0; }
.cs-pdp-support__heading {
  display: block;
  font-size: 1.15rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(var(--color-foreground), 0.6);
  margin-bottom: 1rem;
}
.cs-pdp-support__links { display: flex; gap: 1rem; flex-wrap: wrap; }
.cs-pdp-support__links a {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius-pill);
  padding: 0.9rem 1.6rem;
  font-size: 1.25rem;
  font-weight: 600;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s ease, color 0.2s ease;
}
.cs-pdp-support__links a:hover { border-color: var(--cs-wine); color: var(--cs-wine); }
.cs-pdp-support__links svg { width: 1.7rem; height: 1.7rem; color: var(--cs-wine); }

@media screen and (max-width: 749px) {
  .cs-pdp-trust { grid-template-columns: 1fr; gap: 1rem; }
}

/* ==========================================================================
   Product page — spec tables
   ========================================================================== */

.cs-specs__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(30rem, 1fr));
  gap: 2.4rem;
}
.cs-specs__card {
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius);
  padding: 2.8rem;
  background: var(--cs-white);
}
.cs-specs__title {
  font-family: var(--font-heading-family);
  font-size: 2.2rem;
  margin: 0 0 1.8rem;
}
.cs-specs__table { width: 100%; border-collapse: collapse; }
.cs-specs__table th,
.cs-specs__table td {
  text-align: left;
  padding: 1.1rem 0;
  border-bottom: 1px solid var(--cs-line);
  font-size: 1.4rem;
  line-height: 1.5;
  vertical-align: top;
}
.cs-specs__table tr:last-child th,
.cs-specs__table tr:last-child td { border-bottom: 0; }
.cs-specs__table th {
  font-weight: 500;
  color: rgba(var(--color-foreground), 0.62);
  width: 48%;
  padding-right: 1.6rem;
}
.cs-specs__table td { font-weight: 600; }

/* Price breakup */
.cs-breakup { max-width: 72rem; margin: 0 auto; }
.cs-breakup__table { width: 100%; border-collapse: collapse; }
.cs-breakup__table th,
.cs-breakup__table td {
  padding: 1.3rem 1.2rem;
  border-bottom: 1px solid var(--cs-line);
  font-size: 1.4rem;
  text-align: left;
}
.cs-breakup__table td:last-child,
.cs-breakup__table th:last-child { text-align: right; }
.cs-breakup__table thead th {
  font-size: 1.15rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground), 0.6);
  font-weight: 600;
}
.cs-breakup__total td {
  border-bottom: 0;
  border-top: 2px solid var(--cs-ink);
  font-weight: 700;
  font-size: 1.6rem;
}
.cs-breakup__note {
  margin: 1.6rem 0 0;
  font-size: 1.25rem;
  color: rgba(var(--color-foreground), 0.6);
}

/* ==========================================================================
   Process steps / services / reviews
   ========================================================================== */

.cs-steps__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2.4rem;
}
.cs-step { text-align: center; position: relative; }
.cs-step__num {
  width: 5.4rem;
  height: 5.4rem;
  margin: 0 auto 1.6rem;
  border-radius: 50%;
  border: 1px solid var(--cs-wine);
  color: var(--cs-wine);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading-family);
  font-size: 2.2rem;
  background: var(--cs-white);
}
.cs-step__title { font-size: 1.5rem; font-weight: 600; margin: 0 0 0.8rem; }
.cs-step__text { margin: 0; font-size: 1.35rem; line-height: 1.6; color: rgba(var(--color-foreground), 0.68); }

.cs-services__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}
.cs-service {
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius);
  padding: 2.6rem 2.2rem;
  text-decoration: none;
  color: inherit;
  display: block;
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.cs-service:hover { border-color: var(--cs-wine); transform: translateY(-2px); }
.cs-service svg { width: 2.8rem; height: 2.8rem; color: var(--cs-wine); margin-bottom: 1.4rem; }
.cs-service__title { font-size: 1.5rem; font-weight: 600; margin: 0 0 0.6rem; }
.cs-service__text { margin: 0; font-size: 1.3rem; line-height: 1.55; color: rgba(var(--color-foreground), 0.68); }

.cs-reviews__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.4rem;
}
.cs-review {
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius);
  padding: 2.6rem;
  background: var(--cs-white);
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.cs-review__stars { color: var(--cs-gold); letter-spacing: 0.2em; font-size: 1.5rem; }
.cs-review__text { margin: 0; font-size: 1.4rem; line-height: 1.7; }
.cs-review__author { margin: 0; font-size: 1.25rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; }

@media screen and (max-width: 989px) {
  .cs-steps__grid,
  .cs-services__grid { grid-template-columns: repeat(2, 1fr); }
  .cs-reviews__grid { grid-template-columns: repeat(2, 1fr); }
}
@media screen and (max-width: 749px) {
  .cs-reviews__grid { grid-template-columns: 1fr; }
  .cs-specs__card { padding: 2rem; }
}

/* ==========================================================================
   Ad landing page
   ========================================================================== */

.cs-accent,
.cs-lp-hero__title em {
  font-style: italic;
  font-family: var(--font-heading-family);
  color: var(--cs-gold-soft);
}
.cs-accent { color: var(--cs-wine); }

/* ---------- Hero ---------- */

.cs-lp-hero {
  position: relative;
  overflow: hidden;
  background: var(--cs-ink);
  color: #fff;
  text-align: center;
  min-height: min(88vh, 78rem);
  display: flex;
  align-items: center;
}
.cs-lp-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cs-lp-hero__veil { position: absolute; inset: 0; background: #000; }
.cs-lp-hero__inner { position: relative; z-index: 1; padding-block: 8rem; }
.cs-lp-hero__logo { height: 4.4rem; width: auto; margin: 0 auto 3.2rem; display: block; }

.cs-lp-hero__title {
  font-family: var(--font-heading-family);
  font-size: clamp(3.6rem, 6.4vw, 7.2rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
  margin: 0 0 2rem;
  color: #fff;
}
.cs-lp-hero__title em { display: block; }

.cs-lp-hero__sub {
  max-width: 60ch;
  margin: 0 auto 1.6rem;
  font-size: clamp(1.5rem, 1.9vw, 1.8rem);
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.82);
}
.cs-lp-hero__anchor {
  margin: 0 0 3.2rem;
  font-size: 1.35rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cs-gold-soft);
}

.cs-lp-hero__actions {
  display: flex;
  gap: 1.2rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 4rem;
}
.cs-lp-hero__actions .cs-btn svg { width: 1.8rem; height: 1.8rem; }
.cs-lp-hero__actions .cs-btn--ghost { color: #fff; border-color: rgba(255, 255, 255, 0.55); }
.cs-lp-hero__actions .cs-btn--ghost:hover { background: #fff; color: var(--cs-ink); border-color: #fff; }

.cs-lp-hero__badges {
  display: flex;
  gap: 1rem 3rem;
  justify-content: center;
  flex-wrap: wrap;
  margin: 0;
  font-size: 1.2rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.78);
}

@media screen and (max-width: 749px) {
  .cs-lp-hero { min-height: auto; }
  .cs-lp-hero__inner { padding-block: 6rem; }
  .cs-lp-hero__actions { flex-direction: column; align-items: stretch; }
  .cs-lp-hero__badges { gap: 0.8rem 2rem; font-size: 1.05rem; }
}

/* ---------- Product grid ---------- */

.cs-lp-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem 2.4rem;
  margin: 0;
}
.cs-lp-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius);
  overflow: hidden;
  background: var(--cs-white);
  transition: all var(--cs-transition-base);
  position: relative;
}
.cs-lp-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: var(--cs-radius);
  padding: 1px;
  background: linear-gradient(135deg, transparent 0%, var(--cs-wine) 50%, transparent 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity var(--cs-transition-base);
}
.cs-lp-card:hover { 
  box-shadow: var(--cs-shadow-xl); 
  transform: translateY(-6px);
  border-color: transparent;
}
.cs-lp-card:hover::before { opacity: 1; }

.cs-lp-card__media {
  position: relative;
  aspect-ratio: 1 / 1;
  background: linear-gradient(135deg, var(--cs-cream) 0%, #ffffff 100%);
  overflow: hidden;
}
.cs-lp-card__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.3) 0%, transparent 60%);
  opacity: 0;
  transition: opacity var(--cs-transition-slow);
}
.cs-lp-card:hover .cs-lp-card__media::after { opacity: 1; }
.cs-lp-card__media img,
.cs-lp-card__media svg { 
  width: 100%; 
  height: 100%; 
  object-fit: cover;
  transition: transform var(--cs-transition-slow);
}
.cs-lp-card:hover .cs-lp-card__media img { transform: scale(1.06); }
.cs-lp-card__badge {
  position: absolute;
  top: 1.2rem;
  left: 1.2rem;
  background: linear-gradient(135deg, var(--cs-wine) 0%, var(--cs-wine-dark) 100%);
  color: #fff;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.5rem 1.1rem;
  border-radius: var(--cs-radius-pill);
  box-shadow: var(--cs-shadow-md);
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.85; }
}

.cs-lp-card__body {
  padding: 2.2rem;
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  flex: 1 1 auto;
}
.cs-lp-card__title {
  font-family: var(--font-heading-family);
  font-size: 2rem;
  line-height: 1.25;
  margin: 0;
}
.cs-lp-card__meta {
  display: flex;
  gap: 1.4rem;
  flex-wrap: wrap;
  margin: 0;
  font-size: 1.15rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground), 0.6);
}
.cs-lp-card__price {
  margin: 0;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
}
.cs-lp-card__now { font-size: 1.9rem; font-weight: 700; color: var(--cs-wine); }
.cs-lp-card__was {
  font-size: 1.4rem;
  font-weight: 500;
  color: rgba(var(--color-foreground), 0.5);
  text-decoration-thickness: 1px;
}
.cs-lp-card__save {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
  background: var(--cs-wine);
  padding: 0.35rem 0.9rem;
  border-radius: var(--cs-radius-pill);
}
.cs-lp-card__text {
  margin: 0;
  font-size: 1.35rem;
  line-height: 1.6;
  color: rgba(var(--color-foreground), 0.7);
}
.cs-lp-card__cta { margin-top: auto; width: 100%; }
.cs-lp-card__cta svg { width: 1.7rem; height: 1.7rem; }

@media screen and (max-width: 989px) { .cs-lp-grid { grid-template-columns: repeat(2, 1fr); } }
@media screen and (max-width: 649px) {
  .cs-lp-grid { grid-template-columns: 1fr; gap: 2rem; }
  .cs-lp-card__body { padding: 1.8rem; }
}

/* ---------- Lead form ---------- */

.cs-lp-form__panel {
  max-width: 68rem;
  margin: 0 auto;
  background: var(--cs-white);
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius);
  padding: 3.6rem;
}
.cs-lead__row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.6rem;
  margin-bottom: 1.6rem;
}
.cs-lead__field { display: flex; flex-direction: column; gap: 0.7rem; }
.cs-lead__field label {
  font-size: 1.15rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(var(--color-foreground), 0.65);
}
.cs-lead__field input,
.cs-lead__field select {
  width: 100%;
  padding: 1.4rem 1.6rem;
  font-size: 1.5rem;
  font-family: inherit;
  color: rgb(var(--color-foreground));
  background: var(--cs-white);
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius-sm);
  transition: border-color 0.2s ease;
}
.cs-lead__field input:focus,
.cs-lead__field select:focus { border-color: var(--cs-wine); outline: 2px solid var(--cs-wine); outline-offset: 1px; }

.cs-lead__submit { width: 100%; margin-top: 0.8rem; }
.cs-lead__note {
  margin: 1.4rem 0 0;
  text-align: center;
  font-size: 1.2rem;
  color: rgba(var(--color-foreground), 0.6);
}
.cs-lead__direct {
  margin: 2rem 0 0;
  text-align: center;
  font-size: 1.35rem;
  color: rgba(var(--color-foreground), 0.7);
}
.cs-lead__direct a { color: var(--cs-wine); font-weight: 600; }

.cs-lead__errors {
  border: 1px solid var(--cs-wine);
  background: var(--cs-wine-tint);
  border-radius: var(--cs-radius-sm);
  padding: 1.4rem 1.6rem;
  margin-bottom: 1.8rem;
  font-size: 1.35rem;
  color: var(--cs-wine-dark);
}
.cs-lead__errors ul { margin: 0; padding-left: 1.8rem; }

.cs-lead__success { text-align: center; padding: 1.2rem 0; }
.cs-lead__success-title {
  font-family: var(--font-heading-family);
  font-size: 2.6rem;
  margin: 0 0 1rem;
}
.cs-lead__success-text {
  margin: 0 0 2.4rem;
  font-size: 1.45rem;
  line-height: 1.6;
  color: rgba(var(--color-foreground), 0.72);
}
.cs-lead__success-cta svg { width: 1.8rem; height: 1.8rem; }

@media screen and (max-width: 749px) {
  .cs-lp-form__panel { padding: 2.2rem; }
  .cs-lead__row { grid-template-columns: 1fr; gap: 1.4rem; }
}

/* ==========================================================================
   Collection page
   ========================================================================== */

.collection-hero {
  padding-block: 6rem 3.2rem;
  border-bottom: 1px solid var(--cs-line);
}
.collection-hero__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.4rem;
}
.collection-hero__title {
  font-family: var(--font-heading-family);
  font-size: clamp(3rem, 4.4vw, 5rem);
  line-height: 1.1;
  letter-spacing: -0.015em;
  margin: 0;
}
.collection-hero__description {
  max-width: 62ch;
  margin: 0;
  font-size: 1.5rem;
  line-height: 1.7;
  color: rgba(var(--color-foreground), 0.68);
}
.collection-hero__image-container { border-radius: var(--cs-radius); overflow: hidden; }

@media screen and (max-width: 749px) {
  .collection-hero { padding-block: 3.6rem 2.4rem; }
}

/* ---------- Filter + sort bar ---------- */

.facets-container {
  padding-block: 2.4rem;
  border-bottom: 1px solid var(--cs-line);
  margin-bottom: 3.2rem;
}
.facets__disclosure .facets__summary,
.facet-filters__field .select {
  border-radius: var(--cs-radius-pill);
}
.facets__summary {
  font-size: 1.3rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
}
.facets__label,
.facet-filters__label {
  font-size: 1.15rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground), 0.6);
}
.product-count__text,
.product-count {
  font-size: 1.25rem;
  letter-spacing: 0.06em;
  color: rgba(var(--color-foreground), 0.6);
}

/* Active filter chips */
.active-facets__button {
  border-radius: var(--cs-radius-pill);
  border: 1px solid var(--cs-line);
  padding: 0.6rem 1.4rem;
  font-size: 1.2rem;
  transition: border-color 0.2s ease, color 0.2s ease;
}
.active-facets__button:hover { border-color: var(--cs-wine); color: var(--cs-wine); }
.active-facets__button-remove { text-decoration: none; }

/* ---------- Product grid ---------- */

.product-grid { row-gap: 4rem; }
.collection .card__inner { border-radius: var(--cs-radius-sm); }
.collection .card__heading a { font-size: 1.45rem; }
.collection .card-information { padding-top: 1.2rem; }

/* Empty state */
.collection--empty .title-wrapper {
  padding-block: 6rem;
  text-align: center;
}

/* ==========================================================================
   Footer
   ========================================================================== */

.footer {
  border-top: 1px solid var(--cs-line);
  margin-top: 0;
}
.footer__content-top { padding-block: 5.6rem 4rem; }

.footer__blocks-wrapper { row-gap: 4rem; column-gap: 3rem; }

.footer-block__heading {
  font-family: var(--font-body-family);
  font-size: 1.15rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(var(--color-foreground), 0.55);
  margin-bottom: 1.8rem;
}

.footer-block__details-content .list-menu__item--link,
.footer-block__details-content a {
  font-size: 1.4rem;
  line-height: 2.1;
  color: rgba(var(--color-foreground), 0.85);
  text-decoration: none;
  transition: color 0.2s ease;
}
.footer-block__details-content a:hover { color: var(--cs-wine); }

.footer-block__brand-info {
  font-size: 1.45rem;
  line-height: 1.75;
  color: rgba(var(--color-foreground), 0.75);
  max-width: 42ch;
}
.footer-block__brand-info .footer__list-social { margin-top: 2rem; justify-content: flex-start; }

.footer__list-social .list-social__item .icon {
  width: 2rem;
  height: 2rem;
}
.footer__list-social .list-social__link:hover .icon { color: var(--cs-wine); }

/* Newsletter inside the footer */
.footer-block--newsletter { margin-top: 0; }
.footer__newsletter .field__input { border-radius: var(--cs-radius-pill); }
.footer__newsletter .newsletter-form__button { border-radius: 50%; }

/* Bottom bar */
.footer__content-bottom {
  border-top: 1px solid var(--cs-line);
  padding-block: 2.4rem;
}
.footer__content-bottom-wrapper { align-items: center; gap: 1.6rem; }
.footer__copyright {
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  color: rgba(var(--color-foreground), 0.55);
}
.footer__payment { margin-top: 0; }
.footer__payment .list-payment__item { padding: 0 0.4rem; }

@media screen and (max-width: 989px) {
  .footer__content-top { padding-block: 4rem 3rem; }
  .footer__blocks-wrapper { row-gap: 3.2rem; }
  .footer-block__heading { margin-bottom: 1.2rem; }
}

/* ==========================================================================
   360° spin viewer
   ========================================================================== */

.cs-spin {
  display: block;
  max-width: 64rem;
  margin: 0 auto;
}
.cs-spin__stage {
  position: relative;
  aspect-ratio: 1 / 1;
  border-radius: var(--cs-radius);
  overflow: hidden;
  background: var(--cs-white);
  border: 1px solid var(--cs-line);
  cursor: grab;
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
}
.cs-spin.is-dragging .cs-spin__stage { cursor: grabbing; }

.cs-spin__frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0;
  pointer-events: none;
}
.cs-spin__frame.is-active { opacity: 1; }

.cs-spin__hint {
  position: absolute;
  left: 50%;
  bottom: 1.8rem;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.8rem 1.6rem;
  border-radius: var(--cs-radius-pill);
  background: rgba(15, 15, 15, 0.78);
  color: #fff;
  font-size: 1.2rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.cs-spin__hint svg { width: 1.5rem; height: 1.5rem; }
.cs-spin__hint.is-hidden { opacity: 0; }

.cs-spin__range {
  display: block;
  width: 100%;
  max-width: 32rem;
  margin: 2rem auto 0;
  accent-color: var(--cs-wine);
  cursor: pointer;
}

@media screen and (max-width: 749px) {
  .cs-spin__hint { bottom: 1.2rem; font-size: 1.05rem; }
}

/* ==========================================================================
   Footer (carat-footer)
   ========================================================================== */

.cs-foot {
  border-top: 1px solid var(--cs-line);
  font-size: 1.4rem;
}

/* ---------- Signup band ---------- */

.cs-foot__signup {
  background: var(--cs-ink);
  color: #fff;
}
.cs-foot__signup-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
  flex-wrap: wrap;
  padding-block: 3.6rem;
}
.cs-foot__signup-title {
  font-family: var(--font-heading-family);
  font-size: clamp(2rem, 2.6vw, 2.8rem);
  margin: 0 0 0.6rem;
  line-height: 1.2;
}
.cs-foot__signup-text {
  margin: 0;
  font-size: 1.4rem;
  color: rgba(255, 255, 255, 0.7);
  max-width: 46ch;
}

.cs-foot__form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  align-items: center;
  min-width: min(100%, 38rem);
}
.cs-foot__form input[type='email'] {
  flex: 1 1 20rem;
  padding: 1.3rem 1.8rem;
  font-size: 1.4rem;
  font-family: inherit;
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: var(--cs-radius-pill);
}
.cs-foot__form input::placeholder { color: rgba(255, 255, 255, 0.5); }
.cs-foot__form input:focus {
  outline: 2px solid var(--cs-gold-soft);
  outline-offset: 1px;
  border-color: transparent;
}
.cs-foot__form button {
  padding: 1.3rem 2.6rem;
  border: 0;
  border-radius: var(--cs-radius-pill);
  background: #fff;
  color: var(--cs-ink);
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s ease;
}
.cs-foot__form button:hover { background: var(--cs-gold-soft); }
.cs-foot__form-note {
  flex: 1 0 100%;
  margin: 0.4rem 0 0;
  font-size: 1.25rem;
  color: var(--cs-gold-soft);
}
.cs-foot__form-note--error { color: #ffb4b4; }

/* ---------- Trust strip ---------- */

.cs-foot__trust { border-bottom: 1px solid var(--cs-line); }
.cs-foot__trust-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1.4rem 2.4rem;
  padding-block: 2rem;
}
.cs-foot__trust-item {
  display: inline-flex;
  align-items: center;
  gap: 0.9rem;
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 500;
  color: rgba(var(--color-foreground), 0.78);
}
.cs-foot__trust-item svg { width: 2rem; height: 2rem; color: var(--cs-wine); flex: 0 0 auto; }

/* ---------- Main columns ---------- */

.cs-foot__main {
  display: grid;
  grid-template-columns: minmax(26rem, 1.3fr) 2.4fr;
  gap: 4rem 5rem;
  padding-block: 5rem 4rem;
}
.cs-foot__logo { height: 4.4rem; width: auto; display: block; margin-bottom: 1.8rem; }
.cs-foot__wordmark {
  font-family: var(--font-heading-family);
  font-size: 2.4rem;
  margin: 0 0 1.4rem;
}
.cs-foot__blurb {
  margin: 0;
  line-height: 1.75;
  color: rgba(var(--color-foreground), 0.72);
  max-width: 44ch;
}

.cs-foot__social { display: flex; gap: 1rem; margin: 2.2rem 0 0; }
.cs-foot__social a {
  width: 4rem;
  height: 4rem;
  border: 1px solid var(--cs-line);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: inherit;
  transition: border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.cs-foot__social a:hover { border-color: var(--cs-wine); color: var(--cs-wine); transform: translateY(-2px); }
.cs-foot__social svg { width: 1.8rem; height: 1.8rem; }

.cs-foot__cols {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: 3rem 2.4rem;
}
.cs-foot__group { min-width: 0; }
.cs-foot__group-title {
  list-style: none;
  font-size: 1.15rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(var(--color-foreground), 0.55);
  margin-bottom: 1.6rem;
}
.cs-foot__group-title::-webkit-details-marker { display: none; }

.cs-foot__list { margin: 0; display: grid; gap: 1rem; }
.cs-foot__list a {
  color: rgba(var(--color-foreground), 0.85);
  text-decoration: none;
  transition: color 0.2s ease;
}
.cs-foot__list a:hover { color: var(--cs-wine); }

.cs-foot__list--contact li {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  line-height: 1.6;
  color: rgba(var(--color-foreground), 0.78);
}
.cs-foot__list--contact svg { width: 1.8rem; height: 1.8rem; color: var(--cs-wine); flex: 0 0 auto; margin-top: 0.2rem; }
.cs-foot__cta { margin-top: 1.8rem; padding: 1.1rem 2.2rem; font-size: 1.2rem; }

/* ---------- Bottom bar ---------- */

.cs-foot__bottom { border-top: 1px solid var(--cs-line); }
.cs-foot__bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1.4rem 2.4rem;
  padding-block: 2.2rem;
}
.cs-foot__copy {
  margin: 0;
  font-size: 1.2rem;
  color: rgba(var(--color-foreground), 0.55);
}
.cs-foot__policies { display: flex; flex-wrap: wrap; gap: 0.6rem 1.8rem; margin: 0; }
.cs-foot__policies a {
  font-size: 1.2rem;
  color: rgba(var(--color-foreground), 0.6);
  text-decoration: none;
}
.cs-foot__policies a:hover { color: var(--cs-wine); text-decoration: underline; text-underline-offset: 0.3rem; }
.cs-foot__pay { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 0; align-items: center; }
.cs-foot__pay svg { height: 2.2rem; width: auto; }

/* ---------- Mobile: columns collapse ---------- */

@media screen and (max-width: 749px) {
  .cs-foot__signup-inner { padding-block: 2.8rem; gap: 1.8rem; }
  .cs-foot__form { min-width: 100%; }
  .cs-foot__form input[type='email'],
  .cs-foot__form button { flex: 1 0 100%; }

  .cs-foot__trust-inner { justify-content: flex-start; gap: 1.2rem 2rem; padding-block: 1.6rem; }
  .cs-foot__trust-item { font-size: 1.1rem; }

  .cs-foot__main { grid-template-columns: 1fr; gap: 2.4rem; padding-block: 3.2rem 2rem; }
  .cs-foot__cols { grid-template-columns: 1fr; gap: 0; }

  /* Accordion — carat.js removes [open] below this width */
  .cs-foot__group {
    border-bottom: 1px solid var(--cs-line);
    padding-block: 1.4rem;
  }
  .cs-foot__group-title {
    cursor: pointer;
    position: relative;
    margin-bottom: 0;
    padding-right: 3rem;
    font-size: 1.25rem;
    color: rgb(var(--color-foreground));
  }
  .cs-foot__group-title::after {
    content: '';
    position: absolute;
    right: 0.4rem;
    top: 50%;
    width: 0.9rem;
    height: 0.9rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-70%) rotate(45deg);
    transition: transform 0.25s ease;
  }
  .cs-foot__group[open] .cs-foot__group-title::after { transform: translateY(-20%) rotate(-135deg); }
  .cs-foot__group[open] .cs-foot__list { margin-top: 1.4rem; }

  .cs-foot__bottom-inner { justify-content: flex-start; padding-block: 1.8rem; }
}

/* ---------- 360° overlay inside the product media gallery ---------- */

.product__media-item { position: relative; }

.cs-spin--overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  max-width: none;
  margin: 0;
  border-radius: inherit;
  overflow: hidden;
}
.cs-spin--overlay .cs-spin__stage {
  height: 100%;
  aspect-ratio: auto;
  border: 0;
  border-radius: inherit;
  background: transparent;
}
.cs-spin--overlay .cs-spin__frame { object-fit: contain; }

.cs-spin__badge {
  position: absolute;
  top: 1.4rem;
  left: 1.4rem;
  z-index: 2;
  background: rgba(15, 15, 15, 0.82);
  color: #fff;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  padding: 0.5rem 1.1rem;
  border-radius: var(--cs-radius-pill);
  pointer-events: none;
}
.cs-spin--overlay .cs-spin__hint { bottom: 1.4rem; }

@media screen and (max-width: 749px) {
  .cs-spin__badge { top: 1rem; left: 1rem; font-size: 1rem; }
}

/* ==========================================================================
   Breadcrumbs
   ========================================================================== */

.cs-crumbs {
  max-width: var(--cs-max);
  margin: 0 auto;
  padding: 2rem var(--cs-gutter) 0;
}
.cs-crumbs__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.8rem;
  margin: 0;
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  color: rgba(var(--color-foreground), 0.55);
}
.cs-crumbs__list li { display: inline-flex; align-items: center; gap: 0.8rem; }
.cs-crumbs__list li + li::before {
  content: '';
  width: 0.5rem;
  height: 0.5rem;
  border-right: 1px solid currentColor;
  border-top: 1px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.6;
}
.cs-crumbs__list a { color: inherit; text-decoration: none; }
.cs-crumbs__list a:hover { color: var(--cs-wine); text-decoration: underline; text-underline-offset: 0.3rem; }
.cs-crumbs__list [aria-current='page'] { color: rgb(var(--color-foreground)); font-weight: 500; }

@media screen and (max-width: 749px) {
  .cs-crumbs { padding-top: 1.4rem; }
  .cs-crumbs__list { font-size: 1.1rem; }
}

/* ==========================================================================
   Collection: vertical filter sidebar
   ========================================================================== */

@media screen and (min-width: 990px) {
  .facets-vertical .facets-wrapper {
    position: sticky;
    top: 2rem;
    align-self: start;
    max-height: calc(100vh - 4rem);
    overflow-y: auto;
    padding-right: 1.2rem;
    scrollbar-width: thin;
  }
  .facets-vertical .facets__disclosure-vertical {
    border-bottom: 1px solid var(--cs-line);
  }
  .facets-vertical .facets__summary {
    padding-block: 1.6rem;
    font-size: 1.25rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 600;
  }
}

.facets__heading,
.facets-vertical .facets__heading {
  font-size: 1.15rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground), 0.55);
}

/* Checkbox rows read better with a little more air */
.facets__label { padding: 0.8rem 0; font-size: 1.35rem; text-transform: none; letter-spacing: 0; }
.facets__label .facet-checkbox__text-label { line-height: 1.4; }

/* Price range inputs */
.facets__price .field__input { border-radius: var(--cs-radius-sm); }

/* ==========================================================================
   Ring size guide
   ========================================================================== */

.cs-size {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 4rem;
  align-items: start;
}
.cs-size__method { display: flex; gap: 1.6rem; margin-bottom: 2.2rem; }
.cs-size__step {
  flex: 0 0 auto;
  width: 3.6rem;
  height: 3.6rem;
  border-radius: 50%;
  border: 1px solid var(--cs-wine);
  color: var(--cs-wine);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading-family);
  font-size: 1.6rem;
}
.cs-size__method-title { margin: 0 0 0.5rem; font-size: 1.5rem; font-weight: 600; }
.cs-size__method-text {
  margin: 0;
  font-size: 1.4rem;
  line-height: 1.65;
  color: rgba(var(--color-foreground), 0.72);
}
.cs-size__note {
  margin: 2.4rem 0 0;
  padding: 1.4rem 1.8rem;
  border-radius: var(--cs-radius-sm);
  background: var(--cs-wine-tint);
  font-size: 1.35rem;
  line-height: 1.6;
  color: var(--cs-wine-dark);
}
.cs-size__cta { margin-top: 2rem; }
.cs-size__cta svg { width: 1.7rem; height: 1.7rem; }

.cs-size__chart-wrap {
  overflow-x: auto;
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius);
  background: var(--cs-white);
}
.cs-size__chart { width: 100%; border-collapse: collapse; min-width: 34rem; }
.cs-size__chart th,
.cs-size__chart td {
  padding: 1.1rem 1.4rem;
  text-align: left;
  font-size: 1.35rem;
  border-bottom: 1px solid var(--cs-line);
}
.cs-size__chart thead th {
  font-size: 1.1rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(var(--color-foreground), 0.55);
  background: var(--cs-cream);
  position: sticky;
  top: 0;
}
.cs-size__chart tbody th { font-weight: 700; }
.cs-size__chart tbody tr:last-child th,
.cs-size__chart tbody tr:last-child td { border-bottom: 0; }
.cs-size__chart tbody tr:hover { background: var(--cs-cream); }

@media screen and (max-width: 989px) {
  .cs-size { grid-template-columns: 1fr; gap: 2.6rem; }
}

/* ==========================================================================
   Product gallery — two-column grid
   ========================================================================== */

@media screen and (min-width: 750px) {
  .product--columns .product__media-list {
    display: flex;
    flex-wrap: wrap;
    gap: 1.2rem;
    margin: 0;
  }

  /* First image runs full width as a hero, the rest sit two-up beneath it */
  .product--columns .product__media-list > .product__media-item:first-child:not(:only-child) {
    max-width: 100%;
    width: 100%;
  }
  .product--columns .product__media-list > .product__media-item:not(:first-child):not(:only-child) {
    max-width: calc(50% - 0.6rem);
    width: calc(50% - 0.6rem);
    margin: 0;
  }

  .product--columns .product__media-item .product__media,
  .product--columns .product__media-item .media {
    border-radius: var(--cs-radius-sm);
    overflow: hidden;
    background: var(--cs-cream);
  }

  /* A quiet lift on hover, so it reads as clickable for the lightbox */
  .product--columns .product__media-item .media img {
    transition: transform 0.5s ease;
  }
  .product--columns .product__media-item:hover .media img {
    transform: scale(1.03);
  }
}

/* Two-up on mobile as well */
@media screen and (max-width: 749px) {
  .product--mobile-columns .product__media-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
  }
  .product--mobile-columns .product__media-list > .product__media-item:first-child:not(:only-child) {
    width: 100%;
    max-width: 100%;
  }
  .product--mobile-columns .product__media-item .media {
    border-radius: var(--cs-radius-sm);
    overflow: hidden;
  }
}

/* ---------- Price breakup: variant-aware table ---------- */

.cs-breakup__scroll {
  overflow-x: auto;
  border: 1px solid var(--cs-line);
  border-radius: var(--cs-radius);
  background: var(--cs-white);
}
.cs-breakup__scroll .cs-breakup__table { min-width: 42rem; margin: 0; }
.cs-breakup__table th,
.cs-breakup__table td { padding: 1.3rem 1.6rem; }
.cs-breakup__table tbody th { font-weight: 600; }
.cs-breakup__sub {
  display: inline-block;
  margin-left: 0.6rem;
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
  background: var(--cs-wine);
  padding: 0.2rem 0.7rem;
  border-radius: var(--cs-radius-pill);
  vertical-align: middle;
}
.cs-breakup__table tfoot .cs-breakup__total td {
  border-top: 2px solid var(--cs-ink);
  border-bottom: 0;
  font-weight: 700;
  font-size: 1.6rem;
}
.cs-breakup__table tfoot .cs-breakup__total td:last-child { color: var(--cs-wine); }

/* Multi-line spec block (e.g. custom.product_spec) */
.cs-specs__card--text { grid-column: 1 / -1; }
.cs-specs__body p {
  margin: 0 0 1rem;
  font-size: 1.45rem;
  line-height: 1.7;
  color: rgba(var(--color-foreground), 0.78);
}
.cs-specs__body p:last-child { margin-bottom: 0; }

/* Product specification inside the buy column */
.cs-pdp-spec {
  margin: 2rem 0;
  padding: 1.8rem 0 0;
  border-top: 1px solid var(--cs-line);
}
.cs-pdp-spec__heading {
  display: block;
  font-size: 1.15rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(var(--color-foreground), 0.55);
  margin-bottom: 1rem;
}
.cs-pdp-spec__body p {
  margin: 0 0 0.8rem;
  font-size: 1.4rem;
  line-height: 1.65;
  color: rgba(var(--color-foreground), 0.8);
}
.cs-pdp-spec__body p:last-child { margin-bottom: 0; }

/* ==========================================================================
   Quote price (replaces cart on an enquiry-led product page)
   ========================================================================== */

.cs-quote { margin: 1.6rem 0 2rem; }
.cs-quote__label {
  display: block;
  font-size: 1.15rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(var(--color-foreground), 0.55);
  margin-bottom: 0.6rem;
}
.cs-quote__price {
  margin: 0;
  font-family: var(--font-heading-family);
  font-size: clamp(3rem, 4vw, 4.2rem);
  line-height: 1.1;
  color: var(--cs-wine);
}
.cs-quote__note {
  margin: 0.8rem 0 0;
  font-size: 1.25rem;
  line-height: 1.55;
  color: rgba(var(--color-foreground), 0.6);
  max-width: 44ch;
}
.cs-quote__cta {
  margin-top: 1.8rem;
  width: 100%;
  padding-block: 1.6rem;
  font-size: 1.35rem;
}
.cs-quote__cta svg { width: 1.9rem; height: 1.9rem; }

/* ==========================================================================
   Header logo — keep a square/tall logo from inflating the header
   ========================================================================== */

.header__heading-logo-wrapper { display: flex; align-items: center; }
.header__heading-logo {
  max-height: 5.6rem;
  width: auto;
  object-fit: contain;
}
@media screen and (max-width: 749px) {
  .header__heading-logo { max-height: 4.2rem; }
}

/* ==========================================================================
   Hero slideshow — image always covers its frame
   ========================================================================== */

.banner__media,
.slideshow__media {
  overflow: hidden;
}
.banner__media img,
.slideshow__media img,
.banner__media > img,
.banner__media .media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* ==========================================================================
   Card "Get a quote" — replaces add-to-cart on an enquiry-led store
   ========================================================================== */

.cs-card-quote {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  width: 100%;
  margin-top: 1.2rem;
  padding: 1.1rem 1.4rem;
  border: 1px solid var(--cs-wine);
  border-radius: var(--cs-radius-pill);
  background: transparent;
  color: var(--cs-wine);
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}
.cs-card-quote:hover,
.cs-card-quote:focus-visible {
  background: var(--cs-wine);
  color: #fff;
}
.cs-card-quote svg { width: 1.6rem; height: 1.6rem; flex: 0 0 auto; }

@media screen and (max-width: 749px) {
  .cs-card-quote { font-size: 1.1rem; padding: 0.9rem 1rem; letter-spacing: 0.06em; }
}

/* ==========================================================================
   No cart on this store — hide the header cart entry point entirely.
   display:none also removes it from the tab order, unlike visibility.
   ========================================================================== */

.header__icon--cart,
#cart-icon-bubble,
.header__icons .header__icon--cart { display: none !important; }

/* ==========================================================================
   Product gallery: no dead tap target on mobile
   --------------------------------------------------------------------------
   Dawn lays a full-size invisible button over every gallery image to open the
   lightbox. With the two-column grid every image is already shown at full
   width on a phone, so the lightbox adds nothing — but the button still looks
   tappable and reads as broken when it does not respond.

   Below 750px the images are just images. Desktop keeps the lightbox.
   ========================================================================== */

@media screen and (max-width: 749px) {
  .product__media-toggle,
  .product__media-icon {
    display: none !important;
  }
  .product__modal-opener {
    pointer-events: none;
  }
  /* the image itself must still scroll and pinch normally */
  .product__modal-opener img,
  .product__modal-opener .media {
    pointer-events: auto;
  }
}

/* ==========================================================================
   Mobile gallery: one swipeable row, tap to zoom
   --------------------------------------------------------------------------
   Desktop keeps the two-column grid. On a phone the media list becomes a
   horizontal filmstrip — one row, snap scrolling, with the next image peeking
   so it reads as scrollable. Dawn's lightbox handles the tap.
   ========================================================================== */

@media screen and (max-width: 749px) {
  .product__media-list {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.8rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 0.4rem;
  }
  .product__media-list::-webkit-scrollbar { display: none; }

  .product__media-list > .product__media-item {
    flex: 0 0 auto;
    /* a sliver of the next image signals that the row scrolls */
    width: 86%;
    max-width: 86%;
    scroll-snap-align: center;
  }

  .product__media-item .media,
  .product__media-item .product__media {
    border-radius: var(--cs-radius-sm);
    overflow: hidden;
  }

  /* the zoom affordance, visible rather than invisible */
  .product__media-icon {
    opacity: 1;
    background: rgba(255, 255, 255, 0.92);
    border-radius: 50%;
    width: 3.4rem;
    height: 3.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
  }
  .product__media-icon .icon { width: 1.5rem; height: 1.5rem; }
}
