/* Supraclass design system — build 3.7.0 */
/* ==========================================================================
   SUPRACLASS CLOTHIERS — Design System
   Display: Poppins  |  Text + UI: Inter
   Signature device: the tape-measure rule (.sc-rule)
   All selectors are prefixed .sc- to avoid collisions with the theme.
   ========================================================================== */

:root {
  --sc-orchid: #A72092;
  --sc-mulberry: #BC5F9D;
  --sc-oxblood: #880005;
  --sc-paper: #FFFFFF;
  --sc-ink: #171014;
  --sc-ink-soft: #3B2F37;
  --sc-veil: #FBF4F9;
  --sc-sand: #F6F2EE;
  --sc-line: #E7DAE4;
  --sc-muted: #6F626B;

  --sc-display: "Poppins", "Helvetica Neue", Arial, sans-serif;
  --sc-text: "Inter", "Helvetica Neue", Arial, sans-serif;

  --sc-h1: clamp(2.05rem, 4.4vw, 3.7rem);
  --sc-h2: clamp(1.75rem, 3.2vw, 2.7rem);
  --sc-h3: clamp(1.28rem, 1.9vw, 1.65rem);
  --sc-body: clamp(1.06rem, 1.05vw, 1.2rem);
  --sc-micro: .82rem;
  --sc-build: "3.7.0";

  --sc-gap: clamp(1.25rem, 3vw, 2.5rem);
  --sc-pad: clamp(1.15rem, 5vw, 5.5rem);
  --sc-section: clamp(3.75rem, 8vw, 8rem);
  --sc-max: 1400px;

  --sc-ease: cubic-bezier(.22, .61, .36, 1);
  --sc-header-h: 112px;
}

/* ---------- Base ---------------------------------------------------------- */

.sc-scope, .sc-scope * { box-sizing: border-box; }

.sc-scope {
  font-family: var(--sc-text);
  font-size: var(--sc-body);
  line-height: 1.68;
  color: var(--sc-ink-soft);
  background: var(--sc-paper);
  -webkit-font-smoothing: antialiased;
}

.sc-scope img, .sc-scope video { max-width: 100%; display: block; }

.sc-scope h1, .sc-scope h2, .sc-scope h3, .sc-scope h4 {
  font-family: var(--sc-display);
  font-weight: 600;
  color: var(--sc-ink);
  line-height: 1.02;
  letter-spacing: -0.035em;
  margin: 0 0 .6em;
}
.sc-scope h1 { font-size: var(--sc-h1); }
.sc-scope h2 { font-size: var(--sc-h2); }
.sc-scope h3 { font-size: var(--sc-h3); line-height: 1.2; }
.sc-scope p { margin: 0 0 1.15em; }
.sc-scope a { color: inherit; text-decoration: none; }

.sc-em { font-style: normal; color: var(--sc-orchid); }
.sc-ink-invert { color: var(--sc-paper); }

.sc-wrap { width: 100%; max-width: var(--sc-max); margin-inline: auto; padding-inline: var(--sc-pad); }
.sc-section { padding-block: var(--sc-section); }
.sc-section--tight { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.sc-section--veil { background: var(--sc-veil); }
.sc-section--sand { background: var(--sc-sand); }
.sc-section--ink { background: var(--sc-ink); color: #D8CCD4; }
.sc-section--ink h2, .sc-section--ink h3 { color: var(--sc-paper); }

.sc-lede { font-size: clamp(1.05rem, 1.5vw, 1.25rem); color: var(--sc-ink-soft); max-width: 62ch; }
.sc-measure { max-width: 68ch; }
.sc-center { text-align: center; margin-inline: auto; }

/* ---------- Signature: the tape-measure rule ------------------------------ */

.sc-rule {
  height: 13px;
  border-bottom: 1px solid var(--sc-line);
  background-image:
    linear-gradient(to right, var(--sc-orchid) 1px, transparent 1px),
    linear-gradient(to right, var(--sc-line) 1px, transparent 1px);
  background-size: 60px 9px, 12px 5px;
  background-position: 0 100%, 0 100%;
  background-repeat: repeat-x;
}
.sc-rule--short { width: 132px; }
.sc-rule--invert {
  border-bottom-color: rgba(255, 255, 255, .28);
  background-image:
    linear-gradient(to right, var(--sc-mulberry) 1px, transparent 1px),
    linear-gradient(to right, rgba(255, 255, 255, .28) 1px, transparent 1px);
}

.sc-eyebrow {
  font-size: 0.789rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--sc-orchid);
  margin: 0 0 1rem;
  display: block;
}
.sc-eyebrow--muted { color: var(--sc-muted); }
.sc-eyebrow--invert { color: var(--sc-mulberry); }

.sc-head { margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.sc-head .sc-rule { margin-top: 1.5rem; max-width: 220px; }
.sc-head.sc-center .sc-rule { margin-inline: auto; }

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

.sc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  font-family: var(--sc-text);
  font-size: 0.835rem; font-weight: 500; letter-spacing: .22em; text-transform: uppercase;
  padding: 1.05rem 2.1rem;
  border: 1px solid var(--sc-ink);
  background: var(--sc-ink); color: var(--sc-paper);
  cursor: pointer; text-align: center;
  transition: background .35s var(--sc-ease), color .35s var(--sc-ease), border-color .35s var(--sc-ease);
}
.sc-btn:hover { background: var(--sc-orchid); border-color: var(--sc-orchid); color: #fff; }
.sc-btn[disabled] { opacity: .45; cursor: not-allowed; }

.sc-btn--orchid { background: var(--sc-orchid); border-color: var(--sc-orchid); }
.sc-btn--orchid:hover { background: var(--sc-oxblood); border-color: var(--sc-oxblood); }
.sc-btn--outline { background: transparent; color: var(--sc-ink); }
.sc-btn--outline:hover { background: var(--sc-ink); color: var(--sc-paper); }
.sc-btn--light { background: transparent; border-color: rgba(255,255,255,.55); color: #fff; }
.sc-btn--light:hover { background: #fff; color: var(--sc-ink); border-color: #fff; }
.sc-btn--block { width: 100%; }
.sc-btn--sm { padding: .78rem 1.4rem; font-size: 0.766rem; }

.sc-link {
  display: inline-flex; align-items: center; gap: .55rem;
  font-size: 0.835rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 500;
  color: var(--sc-ink); padding-bottom: .35rem;
  border-bottom: 1px solid var(--sc-orchid);
  transition: gap .3s var(--sc-ease), color .3s var(--sc-ease);
}
.sc-link:hover { gap: 1.05rem; color: var(--sc-orchid); }
.sc-link--light { color: #fff; border-bottom-color: rgba(255,255,255,.6); }
.sc-link--light:hover { color: #fff; }
.sc-link svg { width: 15px; height: 9px; }

.sc-btn:focus-visible, .sc-link:focus-visible, .sc-scope a:focus-visible,
.sc-scope button:focus-visible, .sc-scope input:focus-visible,
.sc-scope select:focus-visible, .sc-scope textarea:focus-visible {
  outline: 2px solid var(--sc-orchid); outline-offset: 3px;
}

/* ---------- Header -------------------------------------------------------- */

.sc-header {
  position: relative; z-index: 900;
  background: rgba(255,255,255,.96);
  backdrop-filter: saturate(160%) blur(10px);
  border-bottom: 1px solid var(--sc-line);
  font-family: var(--sc-text);
}
.sc-announce {
  background: var(--sc-ink); color: #fff;
  font-size: 0.766rem; letter-spacing: .24em; text-transform: uppercase;
  text-align: center; padding: .62rem 1rem;
}
.sc-announce a { border-bottom: 1px solid var(--sc-mulberry); }

.sc-header__bar {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  gap: 1rem; padding: 1.05rem var(--sc-pad); max-width: var(--sc-max); margin-inline: auto;
}
.sc-header__logo { justify-self: center; }
.sc-header__logo img { height: 42px; width: auto; }
.sc-header__left, .sc-header__right { display: flex; align-items: center; gap: .35rem; }
.sc-header__right { justify-content: flex-end; }

.sc-iconbtn {
  display: inline-flex; align-items: center; gap: .5rem;
  background: none; border: 0; cursor: pointer; padding: .55rem .7rem;
  color: var(--sc-ink); font-family: var(--sc-text);
  font-size: 0.789rem; letter-spacing: .18em; text-transform: uppercase;
  transition: color .3s var(--sc-ease);
}
.sc-iconbtn:hover { color: var(--sc-orchid); }
.sc-iconbtn svg { width: 19px; height: 19px; stroke: currentColor; fill: none; stroke-width: 1.4; }
.sc-iconbtn__label { display: none; }
@media (min-width: 900px) { .sc-iconbtn__label { display: inline; } }

.sc-count {
  min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px;
  background: var(--sc-orchid); color: #fff;
  font-size: 0.719rem; letter-spacing: 0; font-weight: 500;
  display: inline-flex; align-items: center; justify-content: center;
}

/* Desktop navigation */
.sc-nav { display: none; border-top: 1px solid var(--sc-line); }
@media (min-width: 1080px) { .sc-nav { display: block; } }
.sc-nav__list {
  display: flex; justify-content: center; align-items: center; flex-wrap: wrap;
  gap: clamp(1.2rem, 2.4vw, 2.6rem);
  list-style: none; margin: 0; padding: .95rem var(--sc-pad);
}
.sc-nav__link {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: 0.824rem; letter-spacing: .22em; text-transform: uppercase; font-weight: 500;
  color: var(--sc-ink); padding: .35rem 0; position: relative;
  background: none; border: 0; cursor: pointer; font-family: var(--sc-text);
}
.sc-nav__link::after {
  content: ""; position: absolute; left: 0; right: 100%; bottom: -2px; height: 1px;
  background: var(--sc-orchid); transition: right .35s var(--sc-ease);
}
.sc-nav__link:hover::after, .sc-nav__item.is-open .sc-nav__link::after { right: 0; }
.sc-nav__link svg { width: 9px; height: 9px; stroke: currentColor; fill: none; stroke-width: 2; transition: transform .3s var(--sc-ease); }
.sc-nav__item.is-open .sc-nav__link svg { transform: rotate(180deg); }
.sc-nav__item { position: static; }

/* Mega menu */
.sc-mega {
  position: absolute; left: 0; right: 0; top: 100%; z-index: 950;
  background: var(--sc-paper); border-top: 1px solid var(--sc-line);
  border-bottom: 1px solid var(--sc-line);
  box-shadow: 0 30px 60px -30px rgba(23,16,20,.28);
  opacity: 0; visibility: hidden; transform: translateY(-8px);
  transition: opacity .3s var(--sc-ease), transform .3s var(--sc-ease), visibility .3s;
}
.sc-nav__item.is-open .sc-mega { opacity: 1; visibility: visible; transform: translateY(0); }
.sc-mega__inner {
  max-width: var(--sc-max); margin-inline: auto; padding: 3rem var(--sc-pad);
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) 300px; gap: 3rem;
}
.sc-mega__col h4 {
  font-family: var(--sc-text); font-size: 0.766rem; letter-spacing: .28em;
  text-transform: uppercase; color: var(--sc-muted); font-weight: 500; margin-bottom: 1.2rem;
}
.sc-mega__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .78rem; }
.sc-mega__col a {
  font-size: 0.951rem; letter-spacing: .06em; color: var(--sc-ink-soft);
  display: inline-block; transition: color .25s var(--sc-ease), transform .25s var(--sc-ease);
}
.sc-mega__col a:hover { color: var(--sc-orchid); transform: translateX(5px); }
.sc-mega__feature { border-left: 1px solid var(--sc-line); padding-left: 2.4rem; }
.sc-mega__feature img { aspect-ratio: 4/5; object-fit: cover; width: 100%; margin-bottom: 1rem; }

/* Mobile navigation */
.sc-burger { display: inline-flex; }
@media (min-width: 1080px) { .sc-burger { display: none; } }

.sc-mobilenav {
  position: fixed; inset: 0 0 0 auto; width: min(420px, 88vw); z-index: 1000;
  background: var(--sc-paper); transform: translateX(100%);
  transition: transform .45s var(--sc-ease);
  display: flex; flex-direction: column; overflow-y: auto;
}
.sc-mobilenav.is-open { transform: translateX(0); }
.sc-mobilenav__head { display: flex; justify-content: space-between; align-items: center; padding: 1.35rem 1.5rem; border-bottom: 1px solid var(--sc-line); }
.sc-mobilenav__body { padding: 1rem 1.5rem 3rem; }
.sc-acc { border-bottom: 1px solid var(--sc-line); }
.sc-acc__head {
  width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  background: none; border: 0; padding: 1.15rem 0; cursor: pointer;
  font-family: var(--sc-text); font-size: 0.905rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--sc-ink); text-align: left;
}
.sc-acc__head svg { width: 12px; height: 12px; stroke: currentColor; fill: none; stroke-width: 1.6; flex: none; transition: transform .3s var(--sc-ease); }
.sc-acc.is-open .sc-acc__head svg { transform: rotate(45deg); }
.sc-acc__panel { display: none; padding: 0 0 1.2rem .2rem; }
.sc-acc.is-open .sc-acc__panel { display: block; }
.sc-acc__panel ul { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .7rem; }
.sc-acc__panel a { font-size: 0.974rem; color: var(--sc-ink-soft); }
.sc-acc__group { font-size: 0.719rem; letter-spacing: .26em; text-transform: uppercase; color: var(--sc-orchid); margin: .4rem 0 .7rem; }

/* ---------- Overlays: search, drawers, modals ----------------------------- */

.sc-veil-bg {
  position: fixed; inset: 0; z-index: 900;
  background: rgba(23,16,20,.5); backdrop-filter: blur(3px);
  opacity: 0; visibility: hidden; transition: opacity .4s var(--sc-ease), visibility .4s;
}
.sc-veil-bg.is-open { opacity: 1; visibility: visible; }

.sc-search {
  position: fixed; inset: 0 0 auto 0; z-index: 1000; background: var(--sc-paper);
  transform: translateY(-100%); transition: transform .45s var(--sc-ease);
  max-height: 100vh; overflow-y: auto; padding-bottom: 2rem;
}
.sc-search.is-open { transform: translateY(0); }
.sc-search__bar { display: flex; align-items: center; gap: 1rem; padding: 2rem var(--sc-pad) 1.2rem; max-width: var(--sc-max); margin-inline: auto; }
.sc-search__input {
  flex: 1; border: 0; border-bottom: 1px solid var(--sc-line); background: none;
  font-family: var(--sc-display); font-size: clamp(1.4rem, 3.4vw, 2.4rem);
  padding: .5rem 0; color: var(--sc-ink);
}
.sc-search__input::placeholder { color: #C9BCC5; }
.sc-search__results { max-width: var(--sc-max); margin-inline: auto; padding: 0 var(--sc-pad); }

/* Right-side drawer (cart + checkout) */
.sc-drawer {
  position: fixed; top: 0; right: 0; bottom: 0; z-index: 1000;
  width: min(480px, 100vw); background: var(--sc-paper);
  transform: translateX(100%); transition: transform .45s var(--sc-ease);
  display: flex; flex-direction: column; box-shadow: -30px 0 60px -30px rgba(23,16,20,.4);
}
.sc-drawer.is-open { transform: translateX(0); }
.sc-drawer__head {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1.5rem; border-bottom: 1px solid var(--sc-line);
}
.sc-drawer__title { font-family: var(--sc-display); font-size: 1.512rem; color: var(--sc-ink); margin: 0; }
.sc-drawer__body { flex: 1; overflow-y: auto; padding: 1.5rem; }
.sc-drawer__foot { border-top: 1px solid var(--sc-line); padding: 1.35rem 1.5rem calc(1.35rem + env(safe-area-inset-bottom)); background: var(--sc-veil); }
.sc-drawer__row { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: .55rem; font-size: 1.021rem; }
.sc-drawer__row strong { font-family: var(--sc-display); font-size: 1.458rem; color: var(--sc-ink); }
.sc-drawer__note { font-size: 0.835rem; color: var(--sc-muted); margin: .9rem 0 0; text-align: center; }

.sc-lineitem { display: grid; grid-template-columns: 84px 1fr; gap: 1rem; padding-bottom: 1.35rem; margin-bottom: 1.35rem; border-bottom: 1px solid var(--sc-line); }
.sc-lineitem img { aspect-ratio: 3/4; object-fit: cover; width: 100%; background: var(--sc-veil); }
.sc-lineitem__name { font-family: var(--sc-display); font-size: 1.102rem; color: var(--sc-ink); margin: 0 0 .2rem; line-height: 1.25; }
.sc-lineitem__meta { font-size: 0.835rem; color: var(--sc-muted); margin: 0 0 .55rem; letter-spacing: .04em; }
.sc-lineitem__foot { display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
.sc-qty { display: inline-flex; align-items: center; border: 1px solid var(--sc-line); }
.sc-qty button { width: 30px; height: 30px; background: none; border: 0; cursor: pointer; color: var(--sc-ink); font-size: 1.08rem; line-height: 1; }
.sc-qty button:hover { color: var(--sc-orchid); }
.sc-qty span { min-width: 30px; text-align: center; font-size: 0.951rem; }
.sc-remove { background: none; border: 0; padding: 0; cursor: pointer; font-size: 0.789rem; letter-spacing: .16em; text-transform: uppercase; color: var(--sc-muted); border-bottom: 1px solid var(--sc-line); }
.sc-remove:hover { color: var(--sc-oxblood); border-bottom-color: var(--sc-oxblood); }

.sc-empty { text-align: center; padding: 3.5rem 1rem; }
.sc-empty p { color: var(--sc-muted); }

/* Modal (product detail + account) */
.sc-modal {
  position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center;
  padding: clamp(0rem, 3vw, 2.5rem); opacity: 0; visibility: hidden;
  transition: opacity .35s var(--sc-ease), visibility .35s;
}
.sc-modal.is-open { opacity: 1; visibility: visible; }
.sc-modal__panel {
  background: var(--sc-paper); width: min(1120px, 100%); max-height: 100%;
  overflow-y: auto; position: relative; transform: translateY(18px);
  transition: transform .45s var(--sc-ease);
}
.sc-modal.is-open .sc-modal__panel { transform: translateY(0); }
.sc-modal__panel--sm { width: min(480px, 100%); }
.sc-modal__close {
  position: absolute; top: 1rem; right: 1rem; z-index: 3;
  width: 42px; height: 42px; border-radius: 999px; border: 1px solid var(--sc-line);
  background: rgba(255,255,255,.92); cursor: pointer; display: grid; place-items: center; color: var(--sc-ink);
}
.sc-modal__close:hover { background: var(--sc-ink); color: #fff; border-color: var(--sc-ink); }
.sc-modal__close svg { width: 15px; height: 15px; stroke: currentColor; stroke-width: 1.6; fill: none; }

/* Product detail layout inside modal */
.sc-pd { display: grid; grid-template-columns: 1fr; }
@media (min-width: 860px) { .sc-pd { grid-template-columns: 1.05fr 1fr; } }
.sc-pd__media { background: var(--sc-veil); padding: clamp(1rem, 2vw, 1.6rem); }
.sc-pd__stage { position: relative; aspect-ratio: 3/4; background: #fff; overflow: hidden; }
.sc-pd__stage img, .sc-pd__stage video { width: 100%; height: 100%; object-fit: cover; }
.sc-pd__thumbs { display: flex; gap: .6rem; margin-top: .8rem; overflow-x: auto; padding-bottom: .3rem; }
.sc-pd__thumb {
  flex: 0 0 66px; aspect-ratio: 3/4; border: 1px solid transparent; padding: 0;
  background: #fff; cursor: pointer; position: relative; overflow: hidden;
}
.sc-pd__thumb.is-active { border-color: var(--sc-orchid); }
.sc-pd__thumb img { width: 100%; height: 100%; object-fit: cover; }
.sc-pd__thumb--video::after {
  content: ""; position: absolute; inset: 0; margin: auto; width: 0; height: 0;
  border-left: 12px solid rgba(255,255,255,.95); border-top: 8px solid transparent; border-bottom: 8px solid transparent;
  filter: drop-shadow(0 1px 3px rgba(0,0,0,.5));
}
.sc-pd__info { padding: clamp(1.6rem, 3.5vw, 3rem); }
.sc-pd__price { font-family: var(--sc-display); font-size: 1.65rem; color: var(--sc-orchid); margin: 0 0 1.2rem; }
.sc-pd__price del { color: var(--sc-muted); font-size: 1.134rem; margin-right: .6rem; }
.sc-pd__stock { display: inline-flex; align-items: center; gap: .5rem; font-size: 0.835rem; letter-spacing: .16em; text-transform: uppercase; color: var(--sc-muted); margin-bottom: 1.5rem; }
.sc-pd__stock i { width: 7px; height: 7px; border-radius: 999px; background: #2E9E5B; display: inline-block; }
.sc-pd__stock.is-out i { background: var(--sc-oxblood); }

.sc-field { margin-bottom: 1.35rem; }
.sc-field__label { font-size: 0.766rem; letter-spacing: .24em; text-transform: uppercase; color: var(--sc-muted); display: block; margin-bottom: .65rem; }
.sc-swatches { display: flex; flex-wrap: wrap; gap: .5rem; }
.sc-swatch {
  min-width: 52px; padding: .6rem .85rem; border: 1px solid var(--sc-line); background: #fff;
  font-family: var(--sc-text); font-size: 0.858rem; letter-spacing: .1em; text-transform: uppercase;
  cursor: pointer; color: var(--sc-ink-soft); transition: all .25s var(--sc-ease);
}
.sc-swatch:hover { border-color: var(--sc-mulberry); }
.sc-swatch.is-active { border-color: var(--sc-ink); background: var(--sc-ink); color: #fff; }
.sc-swatch[disabled] { opacity: .35; cursor: not-allowed; text-decoration: line-through; }

.sc-input, .sc-select, .sc-textarea {
  width: 100%; border: 1px solid var(--sc-line); background: #fff; padding: .92rem 1rem;
  font-family: var(--sc-text); font-size: 1.044rem; color: var(--sc-ink);
}
.sc-input:focus, .sc-select:focus, .sc-textarea:focus { border-color: var(--sc-orchid); outline: none; }
.sc-textarea { min-height: 130px; resize: vertical; }
.sc-form__grid { display: grid; gap: 1.1rem; }
@media (min-width: 700px) { .sc-form__grid--2 { grid-template-columns: 1fr 1fr; } }

.sc-toggle { display: flex; align-items: flex-start; gap: .7rem; padding: 1rem; border: 1px solid var(--sc-line); background: var(--sc-veil); margin-bottom: 1.35rem; }
.sc-toggle input { margin-top: .35rem; accent-color: var(--sc-orchid); }
.sc-toggle span { font-size: 0.951rem; }
.sc-toggle small { display: block; color: var(--sc-muted); font-size: 0.858rem; line-height: 1.5; }

.sc-pd__desc { border-top: 1px solid var(--sc-line); padding-top: 1.5rem; margin-top: 1.75rem; font-size: 1.067rem; }
.sc-pd__desc ul { padding-left: 1.1rem; }
.sc-pd__actions { display: grid; gap: .7rem; }

/* ---------- Floating controls -------------------------------------------- */

.sc-fabs {
  position: fixed; right: clamp(.7rem, 2vw, 1.5rem); bottom: clamp(.9rem, 3vw, 2rem);
  z-index: 700; display: flex; flex-direction: column; align-items: flex-end; gap: .7rem;
}
.sc-fab {
  display: inline-flex; align-items: center; gap: .6rem; cursor: pointer;
  border: 1px solid var(--sc-ink); background: var(--sc-ink); color: #fff;
  padding: .95rem 1.25rem; font-family: var(--sc-text);
  font-size: 0.789rem; letter-spacing: .2em; text-transform: uppercase;
  box-shadow: 0 14px 30px -14px rgba(23,16,20,.55);
  transition: transform .3s var(--sc-ease), background .3s var(--sc-ease);
}
.sc-fab:hover { transform: translateY(-2px); background: var(--sc-orchid); border-color: var(--sc-orchid); }
.sc-fab svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.sc-fab--wa { background: #25D366; border-color: #25D366; color: #08331A; }
.sc-fab--wa svg { fill: currentColor; stroke: none; width: 21px; height: 21px; }
.sc-fab--wa:hover { background: #1EBE5B; border-color: #1EBE5B; }
.sc-fab--cart[hidden], .sc-currency[hidden] { display: none; }

.sc-currency {
  display: inline-flex; border: 1px solid var(--sc-ink); background: #fff;
  box-shadow: 0 14px 30px -16px rgba(23,16,20,.45); overflow: hidden;
}
.sc-currency button {
  border: 0; background: none; cursor: pointer; padding: .72rem .95rem;
  font-family: var(--sc-text); font-size: 0.766rem; letter-spacing: .16em; text-transform: uppercase;
  color: var(--sc-ink-soft); transition: background .25s var(--sc-ease), color .25s var(--sc-ease);
}
.sc-currency button + button { border-left: 1px solid var(--sc-line); }
.sc-currency button.is-active { background: var(--sc-ink); color: #fff; }

/* Toast */
.sc-toast {
  position: fixed; left: 50%; bottom: 2rem; transform: translate(-50%, 130%);
  z-index: 1100; background: var(--sc-ink); color: #fff;
  padding: .95rem 1.5rem; font-size: 0.858rem; letter-spacing: .14em; text-transform: uppercase;
  transition: transform .45s var(--sc-ease); max-width: 90vw; text-align: center;
}
.sc-toast:not(.is-open) { opacity: 0; visibility: hidden; pointer-events: none; }
.sc-toast.is-open { transform: translate(-50%, 0); opacity: 1; visibility: visible; }
.sc-toast--error { background: var(--sc-oxblood); }

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

.sc-hero {
  position: relative; min-height: clamp(560px, 88vh, 940px);
  display: flex; align-items: flex-end;
  background-color: var(--sc-ink); background-size: cover; background-position: center;
  color: #fff; overflow: hidden;
}
.sc-hero::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(23,16,20,.45) 0%, rgba(23,16,20,.12) 38%, rgba(23,16,20,.86) 100%);
}
.sc-hero__inner { position: relative; z-index: 2; width: 100%; max-width: var(--sc-max); margin-inline: auto; padding: 0 var(--sc-pad) clamp(3rem, 8vw, 6rem); }
.sc-hero h1 { color: #fff; max-width: 17ch; }
.sc-hero h1 em { font-style: normal; font-weight: 700; color: var(--sc-mulberry); }
.sc-hero__sub { max-width: 46ch; color: rgba(255,255,255,.9); font-size: clamp(1.12rem, 1.5vw, 1.4rem); font-weight: 400; }
.sc-hero__cta { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.sc-hero .sc-rule { max-width: 200px; margin-bottom: 1.6rem; }

.sc-marquee { background: var(--sc-orchid); color: #fff; overflow: hidden; padding: .85rem 0; }
.sc-marquee__track { display: flex; gap: 3rem; width: max-content; animation: sc-slide 34s linear infinite; }
.sc-marquee span { font-size: 0.86rem; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; white-space: nowrap; }
@keyframes sc-slide { to { transform: translateX(-50%); } }

/* ---------- Editorial split ----------------------------------------------- */

.sc-split { display: grid; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
@media (min-width: 900px) { .sc-split { grid-template-columns: 1fr 1fr; } .sc-split--wide { grid-template-columns: 1.15fr 1fr; } }
.sc-split__media { position: relative; }
.sc-split__media .sc-figure { aspect-ratio: 4/5; background: var(--sc-veil) center/cover; }
.sc-split--flip .sc-split__media { order: 2; }
@media (max-width: 899px) { .sc-split--flip .sc-split__media { order: 0; } }
.sc-stat {
  position: absolute; right: -1rem; bottom: -1.5rem; background: var(--sc-ink); color: #fff;
  padding: 1.4rem 1.8rem; max-width: 210px;
}
.sc-stat strong { display: block; font-family: var(--sc-display); font-size: 2.3rem; line-height: 1; color: #fff; }
.sc-stat span { font-size: 0.742rem; letter-spacing: .22em; text-transform: uppercase; color: var(--sc-mulberry); }

/* ---------- Services index (signature layout) ----------------------------- */

.sc-index { border-top: 1px solid var(--sc-line); }
.sc-index__row { position: relative; border-bottom: 1px solid var(--sc-line); overflow: hidden; }
.sc-index__row::before {
  content: ""; position: absolute; inset: 0; background: var(--sc-ink) center/cover;
  opacity: 0; transition: opacity .5s var(--sc-ease);
}
.sc-index__row::after {
  content: ""; position: absolute; inset: 0; background: rgba(23,16,20,.62);
  opacity: 0; transition: opacity .5s var(--sc-ease);
}
.sc-index__link {
  position: relative; z-index: 2; display: grid; gap: .4rem 2rem; align-items: baseline;
  padding: clamp(1.6rem, 3.4vw, 2.6rem) 0;
  transition: padding .45s var(--sc-ease), color .45s var(--sc-ease);
}
@media (min-width: 900px) { .sc-index__link { grid-template-columns: 62px minmax(0, 1fr) minmax(0, 1.1fr) auto; } }
.sc-index__no { font-family: var(--sc-text); font-size: 0.789rem; letter-spacing: .2em; color: var(--sc-orchid); }
.sc-index__name { font-family: var(--sc-display); font-size: clamp(1.5rem, 2.7vw, 2.3rem); color: var(--sc-ink); margin: 0; line-height: 1.1; transition: color .45s var(--sc-ease); }
.sc-index__desc { font-size: 1.067rem; color: var(--sc-muted); margin: 0; transition: color .45s var(--sc-ease); }
.sc-index__go { font-size: 0.766rem; letter-spacing: .2em; text-transform: uppercase; color: var(--sc-muted); white-space: nowrap; }
@media (hover: hover) {
  .sc-index__row:hover::before, .sc-index__row:hover::after { opacity: 1; }
  .sc-index__row:hover .sc-index__link { padding-inline: clamp(1rem, 2.5vw, 2.5rem); }
  .sc-index__row:hover .sc-index__name { color: #fff; }
  .sc-index__row:hover .sc-index__desc, .sc-index__row:hover .sc-index__go { color: rgba(255,255,255,.8); }
  .sc-index__row:hover .sc-index__no { color: var(--sc-mulberry); }
}

/* ---------- Category mosaic ----------------------------------------------- */

.sc-mosaic { display: grid; gap: 10px; grid-template-columns: 1fr; }
@media (min-width: 760px) { .sc-mosaic { grid-template-columns: repeat(4, 1fr); grid-auto-rows: minmax(210px, auto); } }
.sc-tile {
  position: relative; display: flex; align-items: flex-end; min-height: 260px;
  background: var(--sc-ink) center/cover; color: #fff; overflow: hidden; padding: clamp(1.2rem, 2.4vw, 2rem);
}
.sc-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(23,16,20,0) 30%, rgba(23,16,20,.82) 100%); transition: background .5s var(--sc-ease); }
.sc-tile:hover::after { background: linear-gradient(180deg, rgba(167,32,146,.25) 0%, rgba(23,16,20,.88) 100%); }
.sc-tile > * { position: relative; z-index: 2; }
.sc-tile__eyebrow { font-size: 0.719rem; letter-spacing: .26em; text-transform: uppercase; color: var(--sc-mulberry); display: block; margin-bottom: .5rem; }
.sc-tile__title { font-family: var(--sc-display); font-size: clamp(1.3rem, 2vw, 1.85rem); color: #fff; margin: 0 0 .7rem; }
@media (min-width: 760px) {
  .sc-tile--tall { grid-column: span 2; grid-row: span 2; min-height: 430px; }
  .sc-tile--wide { grid-column: span 2; }
}

/* ---------- Product grid + cards ------------------------------------------ */

.sc-grid { display: grid; gap: clamp(1.1rem, 2.2vw, 2rem) clamp(.8rem, 1.6vw, 1.5rem); grid-template-columns: repeat(2, 1fr); }
@media (min-width: 760px) { .sc-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .sc-grid--4 { grid-template-columns: repeat(4, 1fr); } }

.sc-card { position: relative; display: flex; flex-direction: column; }
.sc-card__media { position: relative; aspect-ratio: 3/4; overflow: hidden; background: var(--sc-veil); cursor: pointer; }
.sc-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--sc-ease), opacity .5s var(--sc-ease); }
.sc-card__media img.sc-card__alt { position: absolute; inset: 0; opacity: 0; }
.sc-card:hover .sc-card__media img.sc-card__alt { opacity: 1; }
.sc-card:hover .sc-card__media img { transform: scale(1.045); }
.sc-card__badge {
  position: absolute; top: 12px; left: 12px; z-index: 3; background: var(--sc-paper); color: var(--sc-ink);
  font-size: 0.673rem; letter-spacing: .2em; text-transform: uppercase; padding: .42rem .7rem;
}
.sc-card__badge--sale { background: var(--sc-oxblood); color: #fff; }
.sc-card__badge--out { background: rgba(23,16,20,.82); color: #fff; }
.sc-card__body { padding: .95rem .2rem 0; text-align: center; }
.sc-card__cat { font-size: 0.673rem; letter-spacing: .22em; text-transform: uppercase; color: var(--sc-muted); display: block; margin-bottom: .4rem; }
.sc-card__name { font-family: var(--sc-display); font-size: 1.102rem; line-height: 1.25; color: var(--sc-ink); margin: 0 0 .4rem; }
.sc-card__price { font-size: 1.021rem; color: var(--sc-orchid); letter-spacing: .04em; }
.sc-card__price del { color: var(--sc-muted); margin-right: .45rem; }

.sc-skeleton { background: linear-gradient(100deg, var(--sc-veil) 30%, #F4E9F1 50%, var(--sc-veil) 70%); background-size: 220% 100%; animation: sc-shimmer 1.3s infinite linear; }
@keyframes sc-shimmer { to { background-position: -220% 0; } }
.sc-skeleton__card { aspect-ratio: 3/4; }

/* ---------- Shop layout --------------------------------------------------- */

.sc-shop { display: grid; gap: clamp(1.5rem, 3vw, 3rem); }
@media (min-width: 1000px) { .sc-shop { grid-template-columns: 250px minmax(0, 1fr); align-items: start; } }
.sc-filters { border: 1px solid var(--sc-line); padding: 1.5rem; }
@media (min-width: 1000px) { .sc-filters { position: relative; border: 0; padding: 0; } }
.sc-filters__group { border-bottom: 1px solid var(--sc-line); padding-bottom: 1.35rem; margin-bottom: 1.35rem; }
.sc-filters__group:last-child { border-bottom: 0; }
.sc-filters h4 { font-family: var(--sc-text); font-size: 0.742rem; letter-spacing: .26em; text-transform: uppercase; color: var(--sc-muted); margin-bottom: 1rem; }
.sc-filters ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.sc-filters__link { background: none; border: 0; padding: .16rem 0; cursor: pointer; font-family: var(--sc-text); font-size: 0.974rem; color: var(--sc-ink-soft); text-align: left; }
.sc-filters__link:hover { color: var(--sc-orchid); }
.sc-filters__link.is-active { color: var(--sc-orchid); font-weight: 500; }
.sc-filters__sub { padding-left: .9rem; border-left: 1px solid var(--sc-line); margin: .5rem 0 .5rem .1rem; }
.sc-shop__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: 1.35rem; margin-bottom: 1.75rem; border-bottom: 1px solid var(--sc-line); }
.sc-shop__count { font-size: 0.858rem; letter-spacing: .16em; text-transform: uppercase; color: var(--sc-muted); }
.sc-shop__sort { display: flex; align-items: center; gap: .7rem; }
.sc-shop__sort select { border: 1px solid var(--sc-line); padding: .6rem .9rem; font-family: var(--sc-text); font-size: 0.905rem; background: #fff; color: var(--sc-ink); }
.sc-filters__toggle { display: inline-flex; }
@media (min-width: 1000px) { .sc-filters__toggle { display: none; } }
@media (max-width: 999px) { .sc-filters { display: none; } .sc-filters.is-open { display: block; } }
.sc-pager { display: flex; justify-content: center; gap: .5rem; margin-top: 3rem; }
.sc-pager button {
  min-width: 42px; height: 42px; border: 1px solid var(--sc-line); background: #fff; cursor: pointer;
  font-family: var(--sc-text); font-size: 0.928rem; color: var(--sc-ink);
}
.sc-pager button.is-active, .sc-pager button:hover { background: var(--sc-ink); color: #fff; border-color: var(--sc-ink); }

/* ---------- Page hero (inner pages) --------------------------------------- */

.sc-pagehero { background: var(--sc-ink); color: #fff; padding: clamp(3.5rem, 8vw, 6.5rem) 0 clamp(3rem, 6vw, 5rem); position: relative; overflow: hidden; }
.sc-pagehero--image { background: var(--sc-ink) center/cover; }
.sc-pagehero--image::before { content: ""; position: absolute; inset: 0; background: rgba(23,16,20,.72); }
.sc-pagehero__inner { position: relative; z-index: 2; }
.sc-pagehero h1 { color: #fff; max-width: 20ch; }
.sc-pagehero p { color: rgba(255,255,255,.78); max-width: 58ch; }
.sc-crumbs { font-size: 0.766rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.6); margin-bottom: 1.5rem; }
.sc-crumbs a:hover { color: #fff; }

/* ---------- Prose / policy pages ------------------------------------------ */

.sc-prose { max-width: 74ch; }
.sc-prose h2 { font-size: clamp(1.5rem, 2.4vw, 2.05rem); margin-top: 2.75rem; }
.sc-prose h2:first-child { margin-top: 0; }
.sc-prose h3 { font-size: 1.274rem; margin-top: 2rem; font-family: var(--sc-text); font-weight: 500; letter-spacing: .02em; }
.sc-prose ul, .sc-prose ol { padding-left: 1.25rem; margin: 0 0 1.35rem; }
.sc-prose li { margin-bottom: .5rem; }
.sc-prose a { color: var(--sc-orchid); border-bottom: 1px solid var(--sc-line); }
.sc-prose__aside { border-left: 2px solid var(--sc-orchid); padding: .3rem 0 .3rem 1.35rem; margin: 2rem 0; font-style: italic; color: var(--sc-ink); }

.sc-toc { position: relative; }
.sc-toc ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.sc-toc a { font-size: 0.928rem; color: var(--sc-muted); }
.sc-toc a:hover { color: var(--sc-orchid); }
.sc-doc { display: grid; gap: clamp(2rem, 4vw, 4rem); }
@media (min-width: 1000px) { .sc-doc { grid-template-columns: 230px minmax(0, 1fr); } }

/* ---------- Cards, values, FAQ, tables ------------------------------------ */

.sc-cards { display: grid; gap: clamp(1rem, 2vw, 1.6rem); grid-template-columns: 1fr; }
@media (min-width: 640px) { .sc-cards--2 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 860px) { .sc-cards--3 { grid-template-columns: repeat(3, 1fr); } .sc-cards--4 { grid-template-columns: repeat(4, 1fr); } }
.sc-panel { border: 1px solid var(--sc-line); padding: clamp(1.5rem, 3vw, 2.2rem); background: #fff; height: 100%; }
.sc-panel h3 { font-size: 1.35rem; }
.sc-panel p:last-child { margin-bottom: 0; }
.sc-panel--ink { background: var(--sc-ink); border-color: var(--sc-ink); color: #D8CCD4; }
.sc-panel--ink h3 { color: #fff; }
.sc-panel__no { font-size: 0.766rem; letter-spacing: .22em; color: var(--sc-orchid); display: block; margin-bottom: .9rem; }

.sc-faq { border-top: 1px solid var(--sc-line); }
.sc-faq__item { border-bottom: 1px solid var(--sc-line); }
.sc-faq__q {
  width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem;
  background: none; border: 0; cursor: pointer; padding: 1.5rem 0; text-align: left;
  font-family: var(--sc-display); font-size: clamp(1.05rem, 1.6vw, 1.28rem); color: var(--sc-ink);
}
.sc-faq__q svg { width: 14px; height: 14px; flex: none; stroke: var(--sc-orchid); stroke-width: 1.6; fill: none; transition: transform .35s var(--sc-ease); }
.sc-faq__item.is-open .sc-faq__q svg { transform: rotate(45deg); }
.sc-faq__a { display: none; padding: 0 0 1.75rem; max-width: 72ch; }
.sc-faq__item.is-open .sc-faq__a { display: block; }
.sc-faq__a ul { padding-left: 1.15rem; }

.sc-table { width: 100%; border-collapse: collapse; font-size: 1.021rem; }
.sc-table th, .sc-table td { border: 1px solid var(--sc-line); padding: .85rem 1rem; text-align: left; }
.sc-table th { background: var(--sc-veil); font-family: var(--sc-text); font-weight: 500; font-size: 0.789rem; letter-spacing: .18em; text-transform: uppercase; color: var(--sc-ink); }
.sc-table tr:nth-child(even) td { background: #FDFAFC; }
.sc-tablewrap { overflow-x: auto; border: 1px solid var(--sc-line); }
.sc-tablewrap .sc-table { border: 0; min-width: 620px; }

.sc-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2.5rem; border-bottom: 1px solid var(--sc-line); }
.sc-tab {
  background: none; border: 0; border-bottom: 2px solid transparent; cursor: pointer;
  padding: .9rem 1.2rem; font-family: var(--sc-text);
  font-size: 0.835rem; letter-spacing: .2em; text-transform: uppercase; color: var(--sc-muted);
}
.sc-tab.is-active { color: var(--sc-ink); border-bottom-color: var(--sc-orchid); }
.sc-tabpanel[hidden] { display: none; }

/* ---------- Blog ---------------------------------------------------------- */

.sc-post { display: flex; flex-direction: column; }
.sc-post__media { aspect-ratio: 4/3; background: var(--sc-veil) center/cover; margin-bottom: 1.1rem; overflow: hidden; }
.sc-post__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--sc-ease); }
.sc-post:hover .sc-post__media img { transform: scale(1.05); }
.sc-post__meta { font-size: 0.719rem; letter-spacing: .22em; text-transform: uppercase; color: var(--sc-orchid); margin-bottom: .6rem; }
.sc-post h3 { font-size: 1.35rem; margin-bottom: .5rem; }
.sc-post p { font-size: 1.044rem; color: var(--sc-muted); }

/* ---------- Footer -------------------------------------------------------- */

.sc-footer { background: var(--sc-ink); color: #A99AA4; padding-top: clamp(3rem, 6vw, 5rem); font-family: var(--sc-text); }
.sc-footer a { color: #C9BBC4; transition: color .25s var(--sc-ease); }
.sc-footer a:hover { color: #fff; }
.sc-footer__assure { display: grid; gap: 2rem; padding-bottom: clamp(2.5rem, 5vw, 4rem); border-bottom: 1px solid rgba(255,255,255,.12); grid-template-columns: 1fr; }
@media (min-width: 700px) { .sc-footer__assure { grid-template-columns: repeat(4, 1fr); } }
.sc-assure h4 { font-family: var(--sc-display); color: #fff; font-size: 1.188rem; margin-bottom: .45rem; }
.sc-assure p { font-size: 0.951rem; margin: 0; }
.sc-footer__cols { display: grid; gap: 2.5rem; padding-block: clamp(2.5rem, 5vw, 4rem); grid-template-columns: 1fr; }
@media (min-width: 700px) { .sc-footer__cols { grid-template-columns: 1.4fr repeat(3, 1fr); } }
.sc-footer h5 { font-size: 0.742rem; letter-spacing: .26em; text-transform: uppercase; color: #fff; margin: 0 0 1.25rem; font-weight: 500; }
.sc-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; font-size: 0.986rem; }
.sc-footer__brand img { height: 40px; margin-bottom: 1.35rem; }
.sc-footer__brand p { font-size: 0.998rem; max-width: 34ch; }
.sc-newsletter { display: flex; border: 1px solid rgba(255,255,255,.22); margin-top: 1.35rem; max-width: 340px; }
.sc-newsletter input { flex: 1; background: none; border: 0; padding: .85rem 1rem; color: #fff; font-family: var(--sc-text); font-size: 0.974rem; }
.sc-newsletter input::placeholder { color: #8A7C86; }
.sc-newsletter button { background: var(--sc-orchid); border: 0; color: #fff; padding: 0 1.2rem; cursor: pointer; font-size: 0.742rem; letter-spacing: .2em; text-transform: uppercase; }
.sc-newsletter button:hover { background: var(--sc-mulberry); }
.sc-social { display: flex; gap: .8rem; margin-top: 1.5rem; }
.sc-social a { width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.22); display: grid; place-items: center; }
.sc-social a:hover { background: var(--sc-orchid); border-color: var(--sc-orchid); }
.sc-social svg { width: 16px; height: 16px; fill: currentColor; }
.sc-footer__base {
  border-top: 1px solid rgba(255,255,255,.12); padding-block: 1.5rem;
  display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: space-between;
  font-size: 0.835rem; letter-spacing: .1em;
}
.sc-pay { display: flex; flex-wrap: wrap; gap: .5rem; }
.sc-pay span { border: 1px solid rgba(255,255,255,.2); padding: .3rem .6rem; font-size: 0.696rem; letter-spacing: .14em; text-transform: uppercase; }

/* ---------- Utility / motion ---------------------------------------------- */

.sc-reveal { opacity: 0; transform: translateY(22px); transition: opacity .8s var(--sc-ease), transform .8s var(--sc-ease); }
.sc-reveal.is-in { opacity: 1; transform: none; }
.sc-lock { overflow: hidden; }
.sc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

@media (prefers-reduced-motion: reduce) {
  .sc-scope *, .sc-header *, .sc-drawer, .sc-modal, .sc-mobilenav, .sc-search {
    animation-duration: .001ms !important; transition-duration: .001ms !important;
  }
  .sc-reveal { opacity: 1; transform: none; }
  .sc-marquee__track { animation: none; }
}

/* ==========================================================================
   V2 — structure, weight, hover colour, and Elementor armour
   Loaded last on purpose: everything below wins over the rules above and,
   where marked, over Elementor's and the theme's global styles too.
   ========================================================================== */

/* ---------- Editorial structure ------------------------------------------ */

.sc-eyebrow {
  font-size: var(--sc-micro);
  letter-spacing: .26em;
  font-weight: 600;
  display: flex; align-items: center; gap: .8rem;
}
.sc-eyebrow::before {
  content: ""; flex: 0 0 34px; height: 3px; background: currentColor;
}
.sc-center .sc-eyebrow, .sc-head.sc-center .sc-eyebrow { justify-content: center; }

/* The tape-measure rule, heavier so it reads as a structural line. */
.sc-rule {
  height: 16px;
  border-bottom: 2px solid var(--sc-ink);
  background-size: 64px 11px, 16px 6px;
}
.sc-rule--invert { border-bottom-color: rgba(255,255,255,.5); }

/* Section headings get an optional stacked, all-caps treatment. */
.sc-head h2 { letter-spacing: -.04em; }
.sc-head--split {
  display: grid; gap: 1.5rem; align-items: end;
  grid-template-columns: 1fr;
  border-top: 2px solid var(--sc-ink);
  padding-top: 1.6rem;
}
@media (min-width: 900px) {
  .sc-head--split { grid-template-columns: minmax(0, 1fr) auto; }
}
.sc-head--split .sc-rule { display: none; }
.sc-section--ink .sc-head--split { border-top-color: rgba(255,255,255,.35); }

.sc-shout {
  text-transform: uppercase;
  letter-spacing: -.02em;
  font-weight: 700;
}

/* Numbered structure marker for sequenced content. */
.sc-marker {
  font-family: var(--sc-display); font-weight: 700;
  font-size: clamp(2.2rem, 4vw, 3.4rem); line-height: 1;
  color: transparent; -webkit-text-stroke: 1.5px var(--sc-orchid);
  display: block; margin-bottom: .9rem;
}

/* ---------- Buttons: obvious colour on hover ------------------------------ */

.sc-btn {
  font-weight: 600; letter-spacing: .16em; border-width: 2px; border-radius: 0;
  transition: background .3s var(--sc-ease), color .3s var(--sc-ease),
              border-color .3s var(--sc-ease), transform .3s var(--sc-ease),
              box-shadow .3s var(--sc-ease);
}
.sc-btn:hover, .sc-btn:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 12px 26px -14px rgba(167, 32, 146, .75);
}
.sc-btn:active { transform: translateY(0); box-shadow: none; }

.sc-link { font-weight: 600; border-bottom-width: 2px; }
.sc-link:hover { border-bottom-color: var(--sc-oxblood); }

/* ---------- Cards and tiles: framed, not floating ------------------------- */

.sc-card { border: 1px solid var(--sc-line); background: #fff; transition: border-color .3s var(--sc-ease), box-shadow .3s var(--sc-ease), transform .3s var(--sc-ease); }
.sc-card:hover { border-color: var(--sc-orchid); box-shadow: 0 22px 44px -30px rgba(23,16,20,.55); transform: translateY(-3px); }
.sc-card__body { padding: 1.1rem 1.15rem 1.3rem; border-top: 1px solid var(--sc-line); }
.sc-card:hover .sc-card__name { color: var(--sc-orchid); }
.sc-card__name { transition: color .3s var(--sc-ease); font-weight: 600; }
.sc-card__cat { font-weight: 500; letter-spacing: .2em; }
.sc-card__badge { font-weight: 600; letter-spacing: .14em; border-radius: 0; }

.sc-tile { border: 1px solid transparent; transition: border-color .35s var(--sc-ease); }
.sc-tile:hover { border-color: var(--sc-orchid); }
.sc-tile__title { font-weight: 600; }

.sc-index__name { font-weight: 600; }
.sc-index__row:hover .sc-index__no { color: #fff; }

/* ---------- Everything clickable answers back ----------------------------- */

.sc-nav__link { font-weight: 500; position: relative; }
.sc-nav__link::after {
  content: ""; position: absolute; left: 0; right: 100%; bottom: -2px;
  height: 2px; background: var(--sc-orchid);
  transition: right .35s var(--sc-ease);
}
.sc-nav__item:hover > .sc-nav__link::after,
.sc-nav__link:focus-visible::after { right: 0; }

.sc-mega__col a, .sc-footer a, .sc-filters__link, .sc-mobilenav a {
  transition: color .25s var(--sc-ease);
}
.sc-mega__col a:hover, .sc-filters__link:hover, .sc-mobilenav a:hover { color: var(--sc-orchid); }
.sc-footer a:hover { color: var(--sc-mulberry); }
.sc-filters__link.is-active { color: var(--sc-orchid); font-weight: 600; }

.sc-iconbtn:hover svg { stroke: var(--sc-orchid); }

/* ---------- Type weight pass ---------------------------------------------- */

.sc-lede { font-size: clamp(1.15rem, 1.6vw, 1.42rem); line-height: 1.6; color: var(--sc-ink-soft); }
.sc-prose { font-size: var(--sc-body); }
.sc-prose h3 { font-weight: 600; font-size: 1.32rem; }
.sc-stat strong { font-weight: 700; }
.sc-table th { font-weight: 600; }
.sc-scope strong, .sc-scope b { font-weight: 600; color: var(--sc-ink); }

/* ==========================================================================
   ELEMENTOR / THEME ARMOUR
   Elementor's kit typography and button styles are injected with high
   specificity. These rules restate ours with more specificity than Elementor
   can generate, so nothing on this site repaints our buttons or fields.
   ========================================================================== */

.sc-scope .sc-btn,
.sc-scope a.sc-btn,
.sc-scope button.sc-btn,
.sc-header .sc-btn, .sc-drawer .sc-btn, .sc-modal .sc-btn, .sc-footer .sc-btn,
.elementor .sc-scope .sc-btn,
.elementor-widget-container .sc-scope .sc-btn,
body .sc-scope .sc-btn {
  font-family: var(--sc-text) !important;
  font-size: .835rem !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  text-shadow: none !important;
  border-radius: 0 !important;
  border-style: solid !important;
  border-width: 2px !important;
  padding: 1.05rem 2.1rem !important;
  min-height: 0 !important;
  background-image: none !important;
  background-color: var(--sc-ink) !important;
  border-color: var(--sc-ink) !important;
  color: var(--sc-paper) !important;
  fill: currentColor !important;
}

body .sc-scope .sc-btn--sm, .sc-header .sc-btn--sm, .sc-drawer .sc-btn--sm,
.sc-modal .sc-btn--sm, .elementor-widget-container .sc-scope .sc-btn--sm {
  padding: .8rem 1.45rem !important;
  font-size: .765rem !important;
}

body .sc-scope .sc-btn--orchid, .sc-drawer .sc-btn--orchid, .sc-modal .sc-btn--orchid,
.sc-footer .sc-btn--orchid, .elementor-widget-container .sc-scope .sc-btn--orchid {
  background-color: var(--sc-orchid) !important;
  border-color: var(--sc-orchid) !important;
  color: #fff !important;
}
body .sc-scope .sc-btn--outline, .sc-modal .sc-btn--outline,
.elementor-widget-container .sc-scope .sc-btn--outline {
  background-color: transparent !important;
  border-color: var(--sc-ink) !important;
  color: var(--sc-ink) !important;
}
body .sc-scope .sc-btn--light, .elementor-widget-container .sc-scope .sc-btn--light {
  background-color: transparent !important;
  border-color: rgba(255,255,255,.7) !important;
  color: #fff !important;
}

/* Hover and focus states, armoured to match. */
body .sc-scope .sc-btn:hover, body .sc-scope .sc-btn:focus-visible,
.sc-header .sc-btn:hover, .sc-drawer .sc-btn:hover, .sc-modal .sc-btn:hover,
.sc-footer .sc-btn:hover,
.elementor-widget-container .sc-scope .sc-btn:hover {
  background-color: var(--sc-orchid) !important;
  border-color: var(--sc-orchid) !important;
  color: #fff !important;
}
body .sc-scope .sc-btn--orchid:hover, .sc-drawer .sc-btn--orchid:hover,
.sc-modal .sc-btn--orchid:hover, .sc-footer .sc-btn--orchid:hover,
.elementor-widget-container .sc-scope .sc-btn--orchid:hover {
  background-color: var(--sc-oxblood) !important;
  border-color: var(--sc-oxblood) !important;
  color: #fff !important;
}
body .sc-scope .sc-btn--outline:hover,
.elementor-widget-container .sc-scope .sc-btn--outline:hover {
  background-color: var(--sc-ink) !important;
  border-color: var(--sc-ink) !important;
  color: #fff !important;
}
body .sc-scope .sc-btn--light:hover,
.elementor-widget-container .sc-scope .sc-btn--light:hover {
  background-color: #fff !important;
  border-color: #fff !important;
  color: var(--sc-ink) !important;
}
body .sc-scope .sc-btn[disabled], body .sc-scope .sc-btn[disabled]:hover {
  background-color: var(--sc-muted) !important;
  border-color: var(--sc-muted) !important;
  color: #fff !important;
  transform: none !important; box-shadow: none !important;
}

/* Links, fields and headings inside our markup keep our type, not the kit's. */
body .sc-scope .sc-link, .elementor-widget-container .sc-scope .sc-link {
  font-family: var(--sc-text) !important;
  font-size: .835rem !important;
  font-weight: 600 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border-radius: 0 !important;
}
body .sc-scope .sc-link:hover { color: var(--sc-orchid) !important; }

body .sc-scope h1, body .sc-scope h2, body .sc-scope h3, body .sc-scope h4,
.elementor-widget-container .sc-scope h1, .elementor-widget-container .sc-scope h2,
.elementor-widget-container .sc-scope h3, .elementor-widget-container .sc-scope h4 {
  font-family: var(--sc-display) !important;
  font-weight: 600 !important;
  text-transform: none !important;
}
body .sc-scope, .elementor-widget-container .sc-scope,
body .sc-scope p, body .sc-scope li, body .sc-scope td, body .sc-scope th {
  font-family: var(--sc-text) !important;
}
body .sc-scope .sc-shout, body .sc-scope .sc-eyebrow { text-transform: uppercase !important; }

body .sc-scope input, body .sc-scope select, body .sc-scope textarea,
.sc-drawer input, .sc-modal input, .sc-search input, .sc-footer input,
.elementor-widget-container .sc-scope input {
  font-family: var(--sc-text) !important;
  font-size: 1rem !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Elementor sometimes adds its own container padding around an HTML widget. */
.elementor-widget-html > .elementor-widget-container > .sc-scope { margin: 0; }
.sc-scope > .sc-section:first-child { margin-top: 0; }

/* Sample pieces shown while the shop is still being filled. */
.sc-card__badge--demo { background: var(--sc-ink) !important; color: #fff !important; }

/* ---------- Facts band: hard-ruled, no decoration ------------------------- */

.sc-facts {
  display: grid; gap: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 2px solid var(--sc-ink);
  border-bottom: 2px solid var(--sc-ink);
}
@media (min-width: 860px) { .sc-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.sc-fact {
  padding: 2rem 1.6rem;
  border-right: 1px solid var(--sc-line);
  border-bottom: 1px solid var(--sc-line);
}
.sc-fact:last-child { border-right: 0; }
@media (min-width: 860px) {
  .sc-fact { border-bottom: 0; }
  .sc-fact:last-child { border-right: 0; }
}
.sc-fact strong {
  display: block;
  font-family: var(--sc-display); font-weight: 700;
  font-size: clamp(2.4rem, 4.6vw, 3.6rem); line-height: 1;
  letter-spacing: -.04em; color: var(--sc-orchid);
  margin-bottom: .7rem;
}
.sc-fact span {
  display: block; font-size: .95rem; line-height: 1.5;
  color: var(--sc-ink-soft); max-width: 24ch;
}

/* Hero: bigger, heavier, with a hard rule holding the type block. */
.sc-hero h1 { font-weight: 700; letter-spacing: -.045em; max-width: 15ch; }
.sc-hero__inner::before {
  content: ""; position: absolute; width: 3px; background: var(--sc-orchid);
  left: calc(var(--sc-pad) - 20px); top: 0; bottom: clamp(3rem, 8vw, 6rem);
}
@media (max-width: 720px) { .sc-hero__inner::before { left: 0; width: 2px; } }
.sc-hero__cta { gap: .9rem; }

/* ---------- Product card: the action sits under the price, always on ------ */

.sc-card { display: flex; flex-direction: column; }
.sc-card__body {
  padding: 1.15rem 1.15rem 1.3rem !important;
  text-align: center;
  display: flex; flex-direction: column; flex: 1 1 auto;
}
.sc-card__price { margin: 0 0 1.05rem; font-weight: 600; }
.sc-card__cta { margin-top: auto; }
body .sc-scope .sc-card__cta, .elementor-widget-container .sc-scope .sc-card__cta {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
  display: inline-flex !important;
  width: 100% !important;
}

/* ==========================================================================
   TEXT COLOUR ARMOUR
   Elementor's global kit sets colours on body, p, li, a and h1–h6, which can
   repaint our markup once it is pasted into an HTML widget — usually as grey
   or brand-coloured text where we want ink, or dark text on our dark bands.
   These rules restate every colour we rely on. Light-on-dark comes last so it
   always wins inside the dark sections.
   ========================================================================== */

body .sc-scope, .elementor-widget-container .sc-scope,
body .sc-scope p, body .sc-scope li, body .sc-scope span, body .sc-scope small,
body .sc-scope td, body .sc-scope dd, body .sc-scope dt, body .sc-scope figcaption,
.elementor-widget-container .sc-scope p, .elementor-widget-container .sc-scope li {
  color: var(--sc-ink-soft) !important;
}
body .sc-scope h1, body .sc-scope h2, body .sc-scope h3,
body .sc-scope h4, body .sc-scope h5, body .sc-scope h6,
body .sc-scope th, body .sc-scope strong, body .sc-scope b,
.elementor-widget-container .sc-scope h1, .elementor-widget-container .sc-scope h2,
.elementor-widget-container .sc-scope h3, .elementor-widget-container .sc-scope h4 {
  color: var(--sc-ink) !important;
}
body .sc-scope a:not(.sc-btn), .elementor-widget-container .sc-scope a:not(.sc-btn) {
  color: inherit !important;
  text-decoration: none !important;
}
body .sc-scope .sc-eyebrow, body .sc-scope .sc-em,
body .sc-scope .sc-card__price, body .sc-scope .sc-pd__price,
body .sc-scope .sc-fact strong, body .sc-scope .sc-panel__no,
body .sc-scope .sc-index__no, body .sc-scope .sc-prose a {
  color: var(--sc-orchid) !important;
}
body .sc-scope .sc-eyebrow--muted { color: var(--sc-muted) !important; }
body .sc-scope .sc-card__cat, body .sc-scope .sc-toc a,
body .sc-scope .sc-muted { color: var(--sc-muted) !important; }
body .sc-scope .sc-link { color: var(--sc-ink) !important; }
body .sc-scope .sc-link:hover, body .sc-scope .sc-nav__link:hover,
body .sc-scope .sc-toc a:hover, body .sc-scope .sc-filters__link:hover {
  color: var(--sc-orchid) !important;
}

/* --- Light on dark. Every rule here outranks the block above. ------------- */

body .sc-scope .sc-hero, body .sc-scope .sc-hero p, body .sc-scope .sc-hero span,
body .sc-scope .sc-hero h1, body .sc-scope .sc-hero h2, body .sc-scope .sc-hero a,
body .sc-scope .sc-hero .sc-hero__sub,
body .sc-scope .sc-pagehero, body .sc-scope .sc-pagehero p, body .sc-scope .sc-pagehero span,
body .sc-scope .sc-pagehero h1, body .sc-scope .sc-pagehero h2, body .sc-scope .sc-pagehero a,
body .sc-scope .sc-section--ink, body .sc-scope .sc-section--ink p,
body .sc-scope .sc-section--ink li, body .sc-scope .sc-section--ink span,
body .sc-scope .sc-section--ink h2, body .sc-scope .sc-section--ink h3,
body .sc-scope .sc-section--ink h4, body .sc-scope .sc-section--ink a,
body .sc-scope .sc-panel--ink, body .sc-scope .sc-panel--ink p,
body .sc-scope .sc-panel--ink li, body .sc-scope .sc-panel--ink h3,
body .sc-scope .sc-panel--ink span, body .sc-scope .sc-panel--ink a,
body .sc-scope .sc-tile, body .sc-scope .sc-tile h3, body .sc-scope .sc-tile span,
body .sc-scope .sc-tile p, body .sc-scope .sc-tile a,
body .sc-scope .sc-stat, body .sc-scope .sc-stat strong, body .sc-scope .sc-stat span,
body .sc-scope .sc-marquee, body .sc-scope .sc-marquee span,
body .sc-scope .sc-ink-invert,
.sc-footer, .sc-footer p, .sc-footer li, .sc-footer span, .sc-footer h4, .sc-footer h5,
.sc-announce, .sc-announce a {
  color: #fff !important;
}
body .sc-scope .sc-hero .sc-hero__sub, body .sc-scope .sc-pagehero p {
  color: rgba(255,255,255,.9) !important;
}
body .sc-scope .sc-crumbs, body .sc-scope .sc-crumbs a { color: rgba(255,255,255,.72) !important; }
body .sc-scope .sc-eyebrow--invert, body .sc-scope .sc-hero h1 em,
body .sc-scope .sc-tile__eyebrow { color: var(--sc-mulberry) !important; }
.sc-footer, .sc-footer p, .sc-footer li, .sc-footer a { color: #C9BDC5 !important; }
.sc-footer h4, .sc-footer h5, .sc-footer strong { color: #fff !important; }
.sc-footer a:hover { color: var(--sc-mulberry) !important; }
body .sc-scope .sc-index__row.is-active .sc-index__name,
body .sc-scope .sc-index__row:hover .sc-index__name,
body .sc-scope .sc-index__row:hover .sc-index__no,
body .sc-scope .sc-index__row:hover p { color: #fff !important; }

/* The tape-measure divider is retired — hide any that survive in old markup. */
.sc-rule { display: none !important; }

/* Prices are markup-inside-markup, so the inner span and del need naming too. */
body .sc-scope .sc-card__price span, body .sc-scope .sc-card__price del,
body .sc-scope .sc-pd__price span, body .sc-scope .sc-pd__price del,
.sc-drawer .sc-lineitem__price span, .sc-drawer .sc-drawer__row strong {
  color: var(--sc-orchid) !important;
}
body .sc-scope .sc-card__price del, body .sc-scope .sc-pd__price del {
  color: var(--sc-muted) !important;
  margin-right: .55rem;
  text-decoration: line-through !important;
}

/* ==========================================================================
   ARMOUR, ROUND TWO
   The theme's heading rules were still winning: headings took the kit's size
   (product names ballooning) and the kit's colour (dark text on our dark
   bands). Everything below repeats its classes to push specificity past
   anything a theme or Elementor kit can generate, so ours lands last.
   ========================================================================== */

/* ---------- Heading sizes are ours, not the kit's ------------------------- */

html body .sc-scope h1 { font-size: var(--sc-h1) !important; line-height: 1.04 !important; }
html body .sc-scope h2 { font-size: var(--sc-h2) !important; line-height: 1.06 !important; }
html body .sc-scope h3 { font-size: var(--sc-h3) !important; line-height: 1.15 !important; }
html body .sc-scope h4 { font-size: 1.12rem !important; line-height: 1.3 !important; }
html body .sc-scope h5 { font-size: .95rem !important; }

/* Component headings, each more specific than the blanket sizes above. */
html body .sc-scope .sc-card__name.sc-card__name {
  font-size: 1.02rem !important;
  line-height: 1.32 !important;
  letter-spacing: -.015em !important;
  margin: 0 0 .45rem !important;
}
html body .sc-scope .sc-card__cat.sc-card__cat { font-size: .7rem !important; }
html body .sc-scope .sc-card__price.sc-card__price { font-size: .97rem !important; }
html body .sc-scope .sc-tile__title.sc-tile__title { font-size: clamp(1.15rem, 1.9vw, 1.5rem) !important; }
html body .sc-scope .sc-index__name.sc-index__name { font-size: clamp(1.3rem, 2.6vw, 2rem) !important; }
html body .sc-scope .sc-panel h3.sc-panel h3 { font-size: 1.3rem !important; }
html body .sc-scope .sc-prose h2.sc-prose h2 { font-size: clamp(1.45rem, 2.2vw, 1.95rem) !important; }
html body .sc-scope .sc-prose h3.sc-prose h3 { font-size: 1.2rem !important; }
html body .sc-scope .sc-faq__q.sc-faq__q { font-size: clamp(1.02rem, 1.5vw, 1.22rem) !important; }
html body .sc-scope .sc-fact strong { font-size: clamp(2.2rem, 4vw, 3.2rem) !important; }
.sc-drawer .sc-drawer__title, .sc-modal #sc-product-title { font-size: 1.4rem !important; }
.sc-footer h4, .sc-footer h5 { font-size: .92rem !important; }

/* ---------- Light on dark, settled once and for all ---------------------- */

html body .sc-scope .sc-hero.sc-hero.sc-hero,
html body .sc-scope .sc-pagehero.sc-pagehero.sc-pagehero,
html body .sc-scope .sc-section--ink.sc-section--ink.sc-section--ink,
html body .sc-scope .sc-panel--ink.sc-panel--ink.sc-panel--ink,
html body .sc-scope .sc-tile.sc-tile.sc-tile,
html body .sc-scope .sc-stat.sc-stat.sc-stat,
html body .sc-scope .sc-marquee.sc-marquee.sc-marquee,
html body .sc-footer.sc-footer.sc-footer,
html body .sc-announce.sc-announce.sc-announce {
  color: #fff !important;
}

/* Every descendant inherits that white, whatever the theme has to say. */
html body .sc-scope .sc-hero.sc-hero.sc-hero *,
html body .sc-scope .sc-pagehero.sc-pagehero.sc-pagehero *,
html body .sc-scope .sc-section--ink.sc-section--ink.sc-section--ink *,
html body .sc-scope .sc-panel--ink.sc-panel--ink.sc-panel--ink *,
html body .sc-scope .sc-tile.sc-tile.sc-tile *,
html body .sc-scope .sc-stat.sc-stat.sc-stat *,
html body .sc-scope .sc-marquee.sc-marquee.sc-marquee *,
html body .sc-footer.sc-footer.sc-footer *,
html body .sc-announce.sc-announce.sc-announce * {
  color: inherit !important;
}

/* Then the accents inside those dark areas, more specific again. */
html body .sc-scope .sc-hero.sc-hero.sc-hero .sc-eyebrow,
html body .sc-scope .sc-pagehero.sc-pagehero.sc-pagehero .sc-eyebrow,
html body .sc-scope .sc-section--ink.sc-section--ink.sc-section--ink .sc-eyebrow,
html body .sc-scope .sc-panel--ink.sc-panel--ink.sc-panel--ink .sc-eyebrow,
html body .sc-scope .sc-tile.sc-tile.sc-tile .sc-tile__eyebrow,
html body .sc-scope .sc-hero.sc-hero.sc-hero h1 em,
html body .sc-scope .sc-stat.sc-stat.sc-stat strong {
  color: var(--sc-mulberry) !important;
}
html body .sc-scope .sc-hero.sc-hero.sc-hero .sc-hero__sub,
html body .sc-scope .sc-pagehero.sc-pagehero.sc-pagehero p {
  color: rgba(255,255,255,.9) !important;
}
html body .sc-scope .sc-pagehero.sc-pagehero.sc-pagehero .sc-crumbs,
html body .sc-scope .sc-pagehero.sc-pagehero.sc-pagehero .sc-crumbs a {
  color: rgba(255,255,255,.72) !important;
}
html body .sc-footer.sc-footer.sc-footer p,
html body .sc-footer.sc-footer.sc-footer li,
html body .sc-footer.sc-footer.sc-footer a { color: #C9BDC5 !important; }
html body .sc-footer.sc-footer.sc-footer a:hover { color: var(--sc-mulberry) !important; }

/* Buttons sitting on a dark background keep their own colours. */
html body .sc-scope .sc-hero.sc-hero.sc-hero .sc-btn--orchid,
html body .sc-scope .sc-section--ink.sc-section--ink.sc-section--ink .sc-btn--orchid,
html body .sc-scope .sc-pagehero.sc-pagehero.sc-pagehero .sc-btn--orchid,
html body .sc-footer.sc-footer.sc-footer .sc-btn--orchid { color: #fff !important; }
html body .sc-scope .sc-hero.sc-hero.sc-hero .sc-btn--light:hover,
html body .sc-scope .sc-pagehero.sc-pagehero.sc-pagehero .sc-btn--light:hover {
  color: var(--sc-ink) !important;
}

/* ---------- Hero: smaller, tighter, fitted to the band ------------------- */

html body .sc-scope .sc-hero.sc-hero.sc-hero h1 {
  font-size: clamp(1.95rem, 4vw, 3.35rem) !important;
  line-height: 1.06 !important;
  max-width: 18ch !important;
  margin-bottom: .9rem !important;
}
html body .sc-scope .sc-hero.sc-hero.sc-hero .sc-hero__sub {
  font-size: clamp(1rem, 1.2vw, 1.16rem) !important;
  max-width: 44ch !important;
}
html body .sc-scope .sc-hero.sc-hero.sc-hero .sc-hero__cta { margin-top: 1.5rem; }
html body .sc-scope .sc-hero.sc-hero.sc-hero .sc-eyebrow { margin-bottom: .9rem; }

/* Accents that must survive inside a dark band. */
html body .sc-scope .sc-hero.sc-hero.sc-hero .sc-accent,
html body .sc-scope .sc-pagehero.sc-pagehero.sc-pagehero .sc-accent,
html body .sc-scope .sc-section--ink.sc-section--ink.sc-section--ink .sc-accent,
html body .sc-scope .sc-panel--ink.sc-panel--ink.sc-panel--ink .sc-accent,
html body .sc-scope .sc-accent {
  color: var(--sc-mulberry) !important;
}
html body .sc-scope .sc-card__name.sc-card__name { overflow-wrap: break-word; hyphens: none; }

/* ==========================================================================
   V3 — less line, more space
   The horizontal rules were doing the work that spacing and imagery should
   do. They are gone; sections are separated by air instead.
   ========================================================================== */

.sc-eyebrow::before { content: none !important; }
.sc-eyebrow { display: block; }
.sc-head--split { border-top: 0 !important; padding-top: 0 !important; }
html body .sc-scope hr { display: none !important; }

/* ---------- Rails: scroll to explore, and they drift on their own -------- */

.sc-railwrap { position: relative; }

.sc-rail {
  display: flex !important;
  gap: 18px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-padding-left: var(--sc-pad);
  padding-bottom: .6rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.sc-rail::-webkit-scrollbar { display: none; }
.sc-rail > * {
  scroll-snap-align: start;
  flex: 0 0 78%;
  max-width: 78%;
}
@media (min-width: 620px) { .sc-rail > * { flex-basis: 46%; max-width: 46%; } }
@media (min-width: 900px) { .sc-rail > * { flex-basis: 30%; max-width: 30%; } }
@media (min-width: 1180px) { .sc-rail > * { flex-basis: 23.2%; max-width: 23.2%; } }

.sc-railnav { display: none; gap: .5rem; }
@media (min-width: 900px) { .sc-railnav { display: flex; } }
.sc-railnav button {
  width: 44px; height: 44px; border: 2px solid var(--sc-ink);
  background: transparent; color: var(--sc-ink); cursor: pointer;
  display: grid; place-items: center;
  transition: background .25s var(--sc-ease), color .25s var(--sc-ease), opacity .25s var(--sc-ease);
}
.sc-railnav button:hover:not(:disabled) { background: var(--sc-orchid); border-color: var(--sc-orchid); color: #fff; }
.sc-railnav button:disabled { opacity: .25; cursor: default; }
.sc-railnav svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; }

.sc-railhint {
  display: flex; align-items: center; justify-content: center; gap: .7rem;
  font-size: .76rem; letter-spacing: .24em; text-transform: uppercase;
  color: var(--sc-muted); margin-top: 1.4rem;
}
.sc-railhint svg { width: 26px; height: 8px; fill: none; stroke: currentColor; stroke-width: 1.4; }
@media (min-width: 900px) { .sc-railhint { display: none; } }

/* ---------- Star ratings -------------------------------------------------- */

.sc-stars { display: inline-flex; align-items: center; gap: 2px; margin: 0 0 .5rem; }
.sc-star { width: 14px; height: 14px; }
.sc-star--full { fill: var(--sc-orchid); }
.sc-star--half { fill: var(--sc-mulberry); }
.sc-star--empty { fill: #E2D8DF; }
.sc-stars__count { font-size: .74rem; color: var(--sc-muted); margin-left: .4rem; }

/* ---------- Small tag above a section heading ---------------------------- */

.sc-tag {
  display: inline-block;
  font-size: .68rem; letter-spacing: .26em; text-transform: uppercase;
  font-weight: 600; color: var(--sc-orchid);
  border: 1px solid currentColor; padding: .32rem .7rem; margin-bottom: .9rem;
}

/* ---------- Five ways: icon columns you scroll through ------------------- */

.sc-ways { padding-bottom: .4rem; }
.sc-ways > * { flex-basis: 62%; max-width: 62%; }
@media (min-width: 620px) { .sc-ways > * { flex-basis: 38%; max-width: 38%; } }
@media (min-width: 980px) { .sc-ways > * { flex-basis: 18.4%; max-width: 18.4%; } }

.sc-way {
  display: block; text-align: center; text-decoration: none;
  border: 1px solid var(--sc-line); background: #fff;
  padding: 2.1rem 1.2rem 1.9rem;
  transition: border-color .3s var(--sc-ease), transform .3s var(--sc-ease), box-shadow .3s var(--sc-ease);
}
.sc-way:hover { border-color: var(--sc-orchid); transform: translateY(-3px); box-shadow: 0 20px 40px -30px rgba(23,16,20,.5); }
.sc-way__icon { display: grid; place-items: center; margin: 0 auto 1.1rem; width: 52px; height: 52px; }
.sc-way__icon svg { width: 40px; height: 40px; fill: none; stroke: var(--sc-orchid); stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }
.sc-way h3 { margin: 0 0 .5rem; }
.sc-way p { font-size: .92rem; margin: 0; }
.sc-way--static { pointer-events: none; }

/* ---------- Reviews ------------------------------------------------------- */

.sc-reviews > * { flex-basis: 84%; max-width: 84%; }
@media (min-width: 760px) { .sc-reviews > * { flex-basis: 48%; max-width: 48%; } }
@media (min-width: 1100px) { .sc-reviews > * { flex-basis: 32%; max-width: 32%; } }

.sc-review {
  background: #fff; border: 1px solid var(--sc-line);
  padding: 2rem 1.8rem; display: flex; flex-direction: column; height: 100%;
}
.sc-review p { font-size: .97rem; line-height: 1.68; margin: 0 0 1.4rem; }
.sc-review__who {
  margin-top: auto; font-family: var(--sc-display); font-weight: 600;
  color: var(--sc-ink); font-size: 1rem;
}
.sc-section--veil .sc-review { border-color: rgba(23,16,20,.09); }

/* ---------- Equal-size CTA trio ------------------------------------------ */

.sc-ctatrio {
  display: grid; gap: 14px; margin-top: 2rem;
  grid-template-columns: 1fr;
}
@media (min-width: 720px) { .sc-ctatrio { grid-template-columns: repeat(3, 1fr); } }
.sc-ctatrio--two { max-width: 640px; }
@media (min-width: 720px) { .sc-ctatrio--two { grid-template-columns: repeat(2, 1fr); } }
.sc-ctatrio.sc-center { margin-inline: auto; }

html body .sc-scope .sc-ctatrio .sc-btn,
.elementor-widget-container .sc-scope .sc-ctatrio .sc-btn {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  min-height: 62px !important;
  padding: 1rem 1.2rem !important;
  margin: 0 !important;
}

/* ---------- Newsletter band ----------------------------------------------- */

.sc-signup { display: grid; gap: 2rem; align-items: center; grid-template-columns: 1fr; }
@media (min-width: 900px) { .sc-signup { grid-template-columns: 1.05fr 1fr; gap: 3.5rem; } }
.sc-signup__form { display: flex; flex-wrap: wrap; gap: 12px; }
.sc-signup__form .sc-input { flex: 1 1 240px; }
html body .sc-scope .sc-signup__form .sc-btn { flex: 0 0 auto; padding: 1.05rem 2rem !important; }
.sc-signup__note { font-size: .82rem; color: var(--sc-muted); margin: .9rem 0 0; }

/* ---------- Two-way chooser (services page) ------------------------------ */

.sc-choose { display: grid; gap: 18px; grid-template-columns: 1fr; }
@media (min-width: 820px) { .sc-choose { grid-template-columns: repeat(2, 1fr); } }
.sc-choose__box {
  display: flex; flex-direction: column;
  border: 1px solid var(--sc-line); background: #fff;
  padding: clamp(1.8rem, 3vw, 2.8rem); text-decoration: none;
  min-height: 320px;
  transition: border-color .3s var(--sc-ease), transform .3s var(--sc-ease), box-shadow .3s var(--sc-ease);
}
.sc-choose__box:hover { border-color: var(--sc-orchid); transform: translateY(-3px); box-shadow: 0 26px 50px -34px rgba(23,16,20,.55); }
.sc-choose__box h3 { margin: 0 0 .8rem; }
.sc-choose__box p { flex: 1 1 auto; margin: 0 0 1.4rem; }
.sc-choose__icon { width: 46px; height: 46px; margin-bottom: 1.2rem; }
.sc-choose__icon svg { width: 100%; height: 100%; fill: none; stroke: var(--sc-orchid); stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Plain page header (no image) --------------------------------- */

.sc-pagehead {
  padding: clamp(3.4rem, 8vw, 6rem) 0 clamp(2rem, 4vw, 3rem);
  background: var(--sc-veil);
}
.sc-pagehead--sand { background: var(--sc-sand); }

/* ---------- Bag drawer policy links --------------------------------------- */

.sc-drawer__policies {
  display: flex; flex-wrap: wrap; gap: .35rem 1rem;
  margin: 1rem 0 0; font-size: .78rem;
}
.sc-drawer__policies a { color: var(--sc-muted) !important; text-decoration: underline !important; }
.sc-drawer__policies a:hover { color: var(--sc-orchid) !important; }

/* ---------- Since / 1997 stacked ------------------------------------------ */

.sc-stat { text-align: center; }
.sc-stat .sc-stat__label {
  display: block; font-size: .72rem; letter-spacing: .3em; text-transform: uppercase;
  margin-bottom: .3rem; opacity: .85;
}

/* ---------- Core values with icons ---------------------------------------- */

.sc-values { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 620px) { .sc-values { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1020px) { .sc-values { grid-template-columns: repeat(4, 1fr); } }

.sc-value {
  border: 1px solid rgba(255,255,255,.16);
  padding: 2.1rem 1.5rem;
  text-align: center;
  transition: border-color .3s var(--sc-ease), background .3s var(--sc-ease);
}
.sc-value:hover { border-color: var(--sc-mulberry); background: rgba(255,255,255,.04); }
.sc-value__icon { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 1.2rem; }
.sc-value__icon svg { width: 42px; height: 42px; stroke: var(--sc-mulberry); }
.sc-value h3 { margin: 0 0 .5rem; }
.sc-value p { font-size: .93rem; margin: 0; }

/* The values sit on the ink band, so they inherit its white text. */
html body .sc-scope .sc-section--ink.sc-section--ink.sc-section--ink .sc-value__icon svg {
  stroke: var(--sc-mulberry) !important;
}

/* ==========================================================================
   RAIL CARD SIZING — fixes collapsed product cards
   In the old grid the card's height came from the grid row, so the image box
   could resolve its aspect ratio. In a horizontal flex rail there is no such
   row: the card's height comes from its content, the image asked for 100% of
   a height that did not exist yet, and every card collapsed to nothing.
   Pinning the image to its ratio box gives the card a real height in any
   container — grid, rail or on its own.
   ========================================================================== */

html body .sc-scope .sc-card { min-width: 0; }

html body .sc-scope .sc-card__media {
  flex: 0 0 auto !important;
  width: 100% !important;
  aspect-ratio: 3 / 4 !important;
  min-height: 220px;
  position: relative !important;
  display: block !important;
}
html body .sc-scope .sc-card__media img,
html body .sc-scope .sc-card__media img.sc-card__alt {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* Rails hold their children at a real height and never squash them. */
.sc-rail { align-items: stretch; }
.sc-rail > * { min-width: 0; height: auto; }
.sc-rail .sc-empty { flex: 1 1 100%; max-width: 100%; text-align: center; }
.sc-rail .sc-skeleton__card { min-height: 320px; }

/* The rail lives inside a padded wrap, so the last card needs breathing room. */
.sc-rail { padding-right: 2px; }

/* ==========================================================================
   V4 — carousels with dots, lighter furniture
   ========================================================================== */

/* ---------- Dots ---------------------------------------------------------- */

.sc-dots {
  display: flex; justify-content: center; align-items: center;
  gap: 9px; margin-top: 1.6rem; min-height: 12px;
}
.sc-dot {
  width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%;
  background: rgba(23,16,20,.2); cursor: pointer;
  transition: background .3s var(--sc-ease), transform .3s var(--sc-ease), width .3s var(--sc-ease);
}
.sc-dot:hover { background: rgba(23,16,20,.4); }
.sc-dot.is-on { background: var(--sc-orchid); width: 22px; border-radius: 6px; }
.sc-section--ink .sc-dot, .sc-pagehero .sc-dot { background: rgba(255,255,255,.3); }
.sc-section--ink .sc-dot.is-on, .sc-pagehero .sc-dot.is-on { background: #fff; }
.sc-railhint { display: none !important; }

/* ---------- Five ways: tinted boxes --------------------------------------- */

.sc-way { background: var(--sc-veil) !important; border-color: rgba(167,32,146,.14) !important; }
.sc-way:hover { background: #fff !important; }

/* ---------- Hero: no vertical rule, tighter buttons on mobile ------------- */

.sc-hero__inner::before { content: none !important; }

@media (max-width: 720px) {
  html body .sc-scope .sc-ctatrio { gap: 10px; }
  html body .sc-scope .sc-ctatrio .sc-btn,
  .elementor-widget-container .sc-scope .sc-ctatrio .sc-btn {
    min-height: 48px !important;
    padding: .78rem .9rem !important;
    font-size: .72rem !important;
    letter-spacing: .1em !important;
  }
  html body .sc-scope .sc-hero .sc-ctatrio { grid-template-columns: 1fr 1fr; }
  html body .sc-scope .sc-hero .sc-ctatrio .sc-btn { font-size: .68rem !important; padding: .74rem .6rem !important; }
}

/* ---------- Chat button: small and out of the way ------------------------ */

.sc-fab--wa {
  padding: .6rem .95rem !important;
  font-size: .72rem !important;
  letter-spacing: .12em !important;
  gap: .45rem !important;
}
.sc-fab--wa svg { width: 17px !important; height: 17px !important; }

/* ---------- Newsletter: the invitation leads ----------------------------- */

html body .sc-scope .sc-signup .sc-eyebrow {
  font-family: var(--sc-display);
  font-size: clamp(1.7rem, 3vw, 2.4rem) !important;
  font-weight: 600 !important;
  letter-spacing: -.03em !important;
  text-transform: none !important;
  color: var(--sc-ink) !important;
  margin-bottom: .6rem;
}
html body .sc-scope .sc-signup h2 {
  font-size: 1.02rem !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  color: var(--sc-ink-soft) !important;
  line-height: 1.55 !important;
}

/* ---------- Services chooser: colour, no icons --------------------------- */

.sc-choose__box--rtw, .sc-choose__box--custom { border: 0 !important; }
.sc-choose__box--rtw { background: var(--sc-orchid) !important; }
.sc-choose__box--custom { background: var(--sc-ink) !important; }
.sc-choose__box--rtw:hover { background: #93187f !important; }
.sc-choose__box--custom:hover { background: var(--sc-oxblood) !important; }

html body .sc-scope .sc-choose__box--rtw,
html body .sc-scope .sc-choose__box--rtw *,
html body .sc-scope .sc-choose__box--custom,
html body .sc-scope .sc-choose__box--custom * {
  color: #fff !important;
}
html body .sc-scope .sc-choose__box .sc-choose__title {
  font-size: clamp(1.9rem, 3.4vw, 2.7rem) !important;
  line-height: 1.04 !important;
  margin: 0 0 .5rem !important;
}
html body .sc-scope .sc-choose__box .sc-choose__sub {
  font-size: 1.02rem !important;
  letter-spacing: .04em !important;
  text-transform: none !important;
  margin: 0 0 1.4rem !important;
  opacity: .92;
}
.sc-choose__box .sc-link { border-bottom-color: rgba(255,255,255,.5) !important; }

/* ---------- Plain page headers in brand colour --------------------------- */

.sc-pagehead--ink { background: var(--sc-ink); }
.sc-pagehead--orchid { background: var(--sc-orchid); }
html body .sc-scope .sc-pagehead--ink, html body .sc-scope .sc-pagehead--ink *,
html body .sc-scope .sc-pagehead--orchid, html body .sc-scope .sc-pagehead--orchid * {
  color: #fff !important;
}
html body .sc-scope .sc-pagehead--ink .sc-crumbs a,
html body .sc-scope .sc-pagehead--orchid .sc-crumbs a { color: rgba(255,255,255,.75) !important; }

/* ---------- Image bands need a readable overlay -------------------------- */

.sc-pagehero--image::before {
  background: linear-gradient(90deg, rgba(23,16,20,.88) 0%, rgba(23,16,20,.66) 52%, rgba(136,0,5,.42) 100%) !important;
}
.sc-pagehero--image > * { position: relative; z-index: 2; }

/* ==========================================================================
   V5 — continuous carousels, quieter headings, more air
   ========================================================================== */

/* ---------- Marquee: seamless, never stops ------------------------------- */

.sc-marquee { padding: 1rem 0; }
.sc-marquee__track { animation-duration: 42s; }
.sc-marquee span { display: inline-flex; align-items: center; gap: 3rem; }
.sc-marquee span::after {
  content: ""; width: 5px; height: 5px; border-radius: 50%;
  background: rgba(255,255,255,.6); display: inline-block;
}
.sc-marquee span:last-child::after { content: none; }

/* ---------- Cloned rail items are decoration, not content ---------------- */

.sc-rail > [data-clone] { pointer-events: auto; }

/* ---------- Section headings: a quiet rule, not a slab ------------------- */

html body .sc-scope .sc-tag {
  border: 0 !important;
  padding: 0 !important;
  font-size: var(--sc-micro) !important;
  letter-spacing: .26em !important;
  font-weight: 600 !important;
  color: var(--sc-orchid) !important;
  margin-bottom: .75rem !important;
}
.sc-head h2::after,
.sc-head--split h2::after {
  content: ""; display: block; width: 64px; height: 2px;
  background: var(--sc-orchid); margin-top: .95rem;
}
.sc-head.sc-center h2::after { margin-inline: auto; }
.sc-section--ink .sc-head h2::after,
.sc-pagehero .sc-head h2::after { background: var(--sc-mulberry); }
.sc-pagehead h1::after { content: none; }

/* ---------- Product names: left, regular ---------------------------------- */

html body .sc-scope .sc-card__body { text-align: left !important; }
html body .sc-scope .sc-card__name.sc-card__name {
  font-weight: 400 !important;
  letter-spacing: -.005em !important;
}
html body .sc-scope .sc-card__price.sc-card__price { font-weight: 500 !important; }
html body .sc-scope .sc-card .sc-stars { justify-content: flex-start; }

/* ---------- Testimonials: stars lead ------------------------------------- */

.sc-review .sc-stars { margin-bottom: 1rem; }
.sc-review .sc-star { width: 16px; height: 16px; }

/* ---------- Breathing room ------------------------------------------------ */

.sc-section { padding-block: clamp(4.2rem, 8.5vw, 8rem); }
.sc-section--tight { padding-block: clamp(3.2rem, 6vw, 5.5rem); }

/* The dark band needs air on both sides so it reads as a deliberate break. */
.sc-pagehero + .sc-section, .sc-section--ink + .sc-section {
  padding-top: clamp(5rem, 10vw, 9.5rem);
}
.sc-section:has(+ .sc-pagehero), .sc-section:has(+ .sc-section--ink) {
  padding-bottom: clamp(5rem, 10vw, 9.5rem);
}
/* Fallback for browsers without :has() — the class does the same job. */
.sc-section--roomy { padding-bottom: clamp(5rem, 10vw, 9.5rem) !important; }
.sc-section--roomy-top { padding-top: clamp(5rem, 10vw, 9.5rem) !important; }

.sc-railwrap { margin-top: .4rem; }
.sc-head { margin-bottom: clamp(2rem, 3.6vw, 3rem); }

/* The "Explore…" links inside the coloured boxes must read as links. */
html body .sc-scope .sc-choose__box .sc-link {
  border-bottom: 2px solid rgba(255,255,255,.75) !important;
  padding-bottom: .35rem !important;
  align-self: flex-start;
  transition: border-color .3s var(--sc-ease), gap .3s var(--sc-ease);
}
html body .sc-scope .sc-choose__box:hover .sc-link { border-bottom-color: #fff !important; }

/* Mirrors the block embedded in the pages. */
#sc-fab-cart, .sc-fab--cart { display: none !important; }
html body .sc-fab--wa {
padding: .55rem .9rem !important;
font-size: .7rem !important;
letter-spacing: .12em !important;
gap: .4rem !important;
}
html body .sc-fab--wa svg { width: 16px !important; height: 16px !important; }
body:has([data-sc-page]):not(:has([data-sc-page="home"])):not(:has([data-sc-page="contact"])) .sc-fab--wa {
display: none !important;
}
html body .sc-header {
position: relative !important;
top: auto !important;
z-index: 900 !important;
}
html body .sc-header__announce, html body .sc-announce {
position: relative !important;
z-index: 901 !important;
}
html body .sc-header .sc-mega,
html body .sc-header .sc-nav__panel,
html body .sc-header .sc-nav__item .sc-mega {
z-index: 950 !important;
}
html body .sc-nav__item:hover > .sc-mega { z-index: 951 !important; }
html body .sc-scope .sc-hero,
html body .sc-scope .sc-strip,
html body .sc-scope .sc-section,
html body .sc-scope .sc-pagehero,
html body .sc-scope .sc-pagehead { z-index: 1; }
.sc-strip {
background: var(--sc-orchid);
overflow: hidden;
padding: .95rem 0;
position: relative;
}
.sc-strip__track {
display: flex;
width: max-content;
animation: sc-strip-move 32s linear infinite;
}
.sc-strip__track span {
color: #fff;
font-family: var(--sc-text);
font-size: .8rem;
font-weight: 600;
letter-spacing: .28em;
text-transform: uppercase;
white-space: nowrap;
padding: 0 2.2rem;
display: inline-flex;
align-items: center;
}
.sc-strip__track span::after {
content: "";
width: 5px; height: 5px; border-radius: 50%;
background: rgba(255, 255, 255, .6);
margin-left: 2.2rem;
}
@keyframes sc-strip-move {
from { transform: translateX(0); }
to   { transform: translateX(-50%); }
}
.sc-strip:hover .sc-strip__track { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
.sc-strip__track { animation: none; }
}
.sc-rail[data-loop] {
scroll-snap-type: none !important;
scroll-behavior: auto;
}
.sc-rail[data-loop] > * { scroll-snap-align: none !important; }
.sc-railwrap:has(.sc-rail[data-loop]) .sc-dots { display: none !important; }
html body .sc-scope .sc-railnav button[disabled] { opacity: 1 !important; cursor: pointer !important; }
html body .sc-scope .sc-tag {
border: 0 !important;
padding: 0 !important;
background: none !important;
font-size: var(--sc-micro) !important;
letter-spacing: .26em !important;
font-weight: 600 !important;
color: var(--sc-orchid) !important;
margin-bottom: .75rem !important;
display: block !important;
}
html body .sc-scope .sc-head--split h2,
html body .sc-scope .sc-head--underline h2 { position: relative; padding-bottom: .7rem; }
html body .sc-scope .sc-head--split h2::after,
html body .sc-scope .sc-head--underline h2::after {
content: "";
position: absolute; left: 0; bottom: 0;
width: 64px; height: 2px;
background: var(--sc-orchid);
}
html body .sc-scope .sc-center .sc-head--underline h2::after,
html body .sc-scope .sc-head.sc-center h2::after { left: 50%; transform: translateX(-50%); }
html body .sc-scope .sc-card__body { text-align: left !important; }
html body .sc-scope .sc-card__name.sc-card__name {
font-weight: 400 !important;
text-align: left !important;
letter-spacing: -.005em !important;
}
html body .sc-scope .sc-card__price { text-align: left !important; margin: 0 0 .7rem !important; }
html body .sc-scope .sc-card__body { padding: .9rem .95rem 1rem !important; }
html body .sc-scope .sc-card__cta { margin-top: 0 !important; }
html body .sc-scope .sc-card .sc-stars { margin: 0 0 .4rem !important; }
html body .sc-scope .sc-card__name.sc-card__name { margin: 0 0 .35rem !important; }
html body .sc-scope .sc-rail { align-items: stretch !important; }
html body .sc-scope .sc-card__name.sc-card__name {
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
min-height: 2.7em;
line-height: 1.35 !important;
}
html body .sc-scope .sc-card__badge {
top: 10px !important; left: 10px !important;
padding: .3rem .55rem !important;
font-size: .6rem !important;
letter-spacing: .12em !important;
}
html body .sc-scope .sc-card .sc-stars { justify-content: flex-start; }
html body .sc-scope .sc-section { padding-block: clamp(3.6rem, 8vw, 7rem); }
html body .sc-scope .sc-section--tight { padding-block: clamp(2.8rem, 6vw, 5rem); }
html body .sc-scope .sc-section--breathe { padding-bottom: clamp(6rem, 13vw, 11rem); }
html body .sc-scope .sc-section--breathe-top { padding-top: clamp(6rem, 13vw, 11rem); }
html body .sc-scope .sc-pagehero { padding-block: clamp(4.5rem, 10vw, 8rem); }
@media (max-width: 720px) {
html body .sc-scope .sc-hero .sc-ctatrio {
grid-template-columns: max-content !important;
justify-content: start;
gap: 10px;
}
html body .sc-scope .sc-hero .sc-ctatrio .sc-btn {
width: auto !important;
white-space: nowrap !important;
font-size: .72rem !important;
letter-spacing: .1em !important;
padding: .85rem 1.15rem !important;
min-height: 46px !important;
}
html body .sc-scope .sc-ctatrio .sc-btn { white-space: nowrap !important; }
html body .sc-scope .sc-center .sc-ctatrio { justify-content: center; }
}
html body .sc-scope .sc-rail > * { flex: 0 0 calc(50% - 9px) !important; max-width: calc(50% - 9px) !important; }
@media (min-width: 620px) {
html body .sc-scope .sc-rail > * { flex-basis: calc(50% - 9px) !important; max-width: calc(50% - 9px) !important; }
}
@media (min-width: 900px) {
html body .sc-scope .sc-rail > * { flex-basis: calc(33.333% - 12px) !important; max-width: calc(33.333% - 12px) !important; }
}
@media (min-width: 1180px) {
html body .sc-scope .sc-rail > * { flex-basis: calc(25% - 13.5px) !important; max-width: calc(25% - 13.5px) !important; }
}
html body .sc-scope .sc-rail.sc-ways > * { flex-basis: 54% !important; max-width: 54% !important; }
@media (min-width: 620px) {
html body .sc-scope .sc-rail.sc-ways > * { flex-basis: calc(33.333% - 12px) !important; max-width: calc(33.333% - 12px) !important; }
}
@media (min-width: 980px) {
html body .sc-scope .sc-rail.sc-ways > * { flex-basis: calc(20% - 14.4px) !important; max-width: calc(20% - 14.4px) !important; }
}
html body .sc-scope .sc-way { padding: 1.5rem 1rem 1.4rem !important; }
html body .sc-scope .sc-way__icon { width: 40px; height: 40px; margin-bottom: .8rem; }
html body .sc-scope .sc-way__icon svg { width: 30px; height: 30px; }
html body .sc-scope .sc-way h3 { font-size: 1.02rem !important; }
html body .sc-scope .sc-way p { font-size: .84rem !important; }
html body .sc-scope .sc-rail.sc-reviews > * { flex-basis: 80% !important; max-width: 80% !important; }
@media (min-width: 620px) {
html body .sc-scope .sc-rail.sc-reviews > * { flex-basis: calc(50% - 9px) !important; max-width: calc(50% - 9px) !important; }
}
@media (min-width: 1180px) {
html body .sc-scope .sc-rail.sc-reviews > * { flex-basis: calc(33.333% - 12px) !important; max-width: calc(33.333% - 12px) !important; }
}
html body .sc-scope .sc-rail.sc-reviews { padding-inline: 0; }
html body .sc-scope .sc-review { padding: 1.5rem 1.35rem !important; }
html body .sc-scope .sc-review p { font-size: .9rem !important; line-height: 1.6 !important; margin-bottom: 1.1rem !important; }
html body .sc-scope .sc-review__by { display: flex; align-items: center; gap: .7rem; margin-top: auto; }
html body .sc-scope .sc-review__avatar {
width: 34px; height: 34px; flex: 0 0 34px; border-radius: 50%;
background: var(--sc-veil); color: var(--sc-orchid) !important;
display: grid; place-items: center;
font-family: var(--sc-display); font-weight: 600; font-size: .92rem;
border: 1px solid rgba(167,32,146,.22);
}
html body .sc-scope .sc-review__who { margin: 0 !important; font-size: .92rem !important; }
html body .sc-scope .sc-review { height: auto; }
html body .sc-scope .sc-review .sc-stars { margin-bottom: 1rem; }
html body .sc-scope .sc-review .sc-star { width: 15px; height: 15px; fill: var(--sc-orchid); }
html body .sc-scope .sc-section--sand:has(.sc-signup) { background: var(--sc-veil) !important; }
html body .sc-scope .sc-section--signup { background: var(--sc-veil) !important; }
body:has([data-sc-page]):not(:has([data-sc-page="home"])):not(:has([data-sc-page="shop"])):not(:has([data-sc-page="international"])) #sc-currency {
display: none !important;
}
html body .sc-currency.sc-cur {
display: block !important;
position: relative;
padding: 0 !important;
border: 0 !important;
background: none !important;
overflow: visible !important;
}
html body .sc-cur__btn {
display: inline-flex; align-items: center; gap: .5rem;
background: var(--sc-ink);
border: 1px solid rgba(255,255,255,.14);
color: #fff;
padding: .6rem .85rem;
font-family: var(--sc-text);
font-size: .76rem;
font-weight: 600;
letter-spacing: .08em;
cursor: pointer;
box-shadow: 0 14px 30px -18px rgba(23,16,20,.85);
transition: background .25s ease, border-color .25s ease;
}
html body .sc-cur__btn:hover { background: var(--sc-orchid); border-color: var(--sc-orchid); }
html body .sc-cur__flag { font-size: 1.05rem; line-height: 1; }
html body .sc-cur__code { letter-spacing: .12em; }
html body .sc-cur__caret { width: 9px; height: 6px; stroke: currentColor; fill: none; stroke-width: 1.6; opacity: .8; }
html body .sc-cur__panel {
position: absolute; right: 0; bottom: calc(100% + 10px);
width: 190px; max-height: 320px; overflow-y: auto;
background: #fff;
border: 1px solid var(--sc-line);
box-shadow: 0 30px 60px -30px rgba(23,16,20,.6);
padding: .35rem;
display: none;
z-index: 60;
}
html body .sc-cur.is-open .sc-cur__panel { display: block; }
html body .sc-cur__opt {
display: flex; align-items: center; gap: .65rem; width: 100%;
background: none; border: 0; cursor: pointer; text-align: left;
padding: .55rem .6rem;
font-family: var(--sc-text); font-size: .84rem; color: var(--sc-ink);
}
html body .sc-cur__opt:hover { background: var(--sc-veil); }
html body .sc-cur__opt.is-on { background: var(--sc-orchid); color: #fff; }
html body .sc-cur__opt .sc-cur__sym { width: 34px; font-weight: 600; }
html body .sc-cur__opt .sc-cur__code { letter-spacing: .1em; font-weight: 600; }
html body .sc-cur__btn, html body .sc-cur__btn span { color: #fff !important; }
html body .sc-footer__assure { display: none !important; }
.sc-info { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem 1.4rem; }
@media (min-width: 900px) { .sc-info { grid-template-columns: repeat(4, 1fr); gap: 2.2rem; } }
html body .sc-scope .sc-info__item {
display: flex; flex-direction: column; align-items: center; gap: .8rem;
text-decoration: none !important;
}
html body .sc-scope .sc-info__text { text-align: center; }
html body .sc-scope .sc-info__item { justify-items: center; }
html body .sc-scope .sc-info__icon { width: 32px; height: 32px; display: block; margin: 0 auto; color: var(--sc-ink); }
html body .sc-scope .sc-info__icon svg { width: 32px; height: 32px; stroke: var(--sc-ink); }
html body .sc-scope .sc-info__text strong {
display: block;
font-family: var(--sc-text) !important;
font-size: .8rem !important;
font-weight: 600 !important;
letter-spacing: .16em;
text-transform: uppercase;
margin-bottom: .35rem;
}
html body .sc-scope .sc-info__text span { display: block; font-size: .85rem !important; line-height: 1.5; }
html body .sc-scope .sc-info__item:hover .sc-info__text strong { color: var(--sc-orchid) !important; }
@media (max-width: 720px) {
html body .sc-scope .sc-ctatrio {
grid-template-columns: max-content !important;
justify-content: center;
gap: 10px;
}
html body .sc-scope .sc-ctatrio .sc-btn {
width: auto !important;
padding: .8rem 1.1rem !important;
font-size: .7rem !important;
letter-spacing: .09em !important;
min-height: 44px !important;
}
html body .sc-scope .sc-hero .sc-ctatrio { justify-content: start; }
}
@media (max-width: 760px) {
html body .sc-scope .sc-section { padding-block: 3.4rem !important; }
html body .sc-scope .sc-section--tight { padding-block: 2.8rem !important; }
html body .sc-scope .sc-section--breathe { padding-bottom: 5.6rem !important; }
html body .sc-scope .sc-section--breathe-top { padding-top: 5.6rem !important; }
html body .sc-scope .sc-pagehero { padding-block: 4rem !important; }
html body .sc-scope .sc-head { margin-bottom: 1.9rem; }
html body .sc-scope .sc-railwrap + p,
html body .sc-scope .sc-railwrap + .sc-center { margin-top: 1.2rem !important; }
}
html body .sc-scope .sc-pagehero--image::before {
background: linear-gradient(180deg, rgba(23,16,20,.9) 0%, rgba(23,16,20,.78) 45%, rgba(23,16,20,.88) 100%) !important;
}
@media (min-width: 900px) {
html body .sc-scope .sc-pagehero--image::before {
background: linear-gradient(90deg, rgba(23,16,20,.94) 0%, rgba(23,16,20,.8) 55%, rgba(136,0,5,.6) 100%) !important;
}
}
html body .sc-scope .sc-railwrap + p.sc-center { margin-top: 1.4rem !important; }
html body .sc-scope[data-sc-page="home"] .sc-card__name.sc-card__name {
font-size: .86rem !important;
line-height: 1.32 !important;
-webkit-line-clamp: 3;
min-height: 3.4em;
letter-spacing: 0 !important;
}
html body .sc-scope[data-sc-page="shop"] .sc-grid { align-items: stretch; }
html body .sc-scope[data-sc-page="shop"] .sc-card { height: 100%; }
html body .sc-scope[data-sc-page="shop"] .sc-card__body {
display: flex; flex-direction: column; flex: 1 1 auto;
padding: .95rem 1rem 1.1rem !important;
}
html body .sc-scope[data-sc-page="shop"] .sc-card__name.sc-card__name {
font-size: .9rem !important;
line-height: 1.32 !important;
-webkit-line-clamp: 2;
min-height: 2.65em;
text-align: left !important;
font-weight: 400 !important;
}
html body .sc-scope[data-sc-page="shop"] .sc-card .sc-stars { min-height: 16px; margin: 0 0 .4rem !important; }
html body .sc-scope[data-sc-page="shop"] .sc-card__price { margin: 0 0 .8rem !important; }
html body .sc-scope[data-sc-page="shop"] .sc-card__cta { margin-top: auto !important; }
html body .sc-scope[data-sc-page="shop"] .sc-info { margin-top: 0; }
html body .sc-scope .sc-figure--solid { background: var(--sc-ink) !important; }
html body .sc-scope .sc-pagehero--solid { background: var(--sc-ink) !important; }
html body .sc-scope .sc-pagehero--solid::before { content: none !important; }
html body .sc-footer__assure, html body .sc-assure { display: none !important; }
html body .sc-scope .sc-toc { position: static !important; top: auto !important; }
html body .sc-scope .sc-filters { position: static !important; top: auto !important; }
html body .sc-scope[data-sc-page="contact"] .sc-ctatrio .sc-btn { width: 100% !important; }
/* Theme headings are hidden because our pages carry their own — but never on
   a blog post, where the headline is the theme's job and hiding it left the
   article starting straight on the photograph. */
html body:not(.single-post) .page-header,
html body:not(.single-post) .entry-header,
html body:not(.single-post) .page-title,
html body:not(.single-post) .entry-title,
html body:not(.single-post) .wp-block-post-title,
html body:not(.single-post) .elementor-page-title,
html body:not(.single-post) .elementor-widget-theme-page-title,
html body:not(.single-post) .archive-title,
html body:not(.single-post) .woocommerce-products-header { display: none !important; }

/* An article, in order: headline, category, photograph, date, gap, copy. */
html body.single-post .sc-article__head { display: block; }

html body.single-post .entry-title,
html body.single-post .wp-block-post-title {
  display: block !important;
  margin: 0 0 .7rem !important;
  line-height: 1.15;
}

/* The category reads as a line of text, not a shouted label. */
html body.single-post .wp-block-post-terms,
html body.single-post .cat-links,
html body.single-post .entry-categories,
html body.single-post .post-categories {
  display: block;
  margin: 0 0 1.6rem;
  text-transform: none !important;
  letter-spacing: normal !important;
  font-size: .95rem !important;
  font-weight: 400 !important;
}

html body.single-post .post-thumbnail,
html body.single-post .wp-block-post-featured-image,
html body.single-post .entry-media,
html body.single-post .wp-post-image {
  display: block;
  margin: 0 0 1rem;
}
html body.single-post .wp-post-image,
html body.single-post .wp-block-post-featured-image img { width: 100%; height: auto; }

html body.single-post .entry-meta,
html body.single-post .wp-block-post-date,
html body.single-post .entry-date,
html body.single-post .posted-on {
  display: block;
  margin: 0 0 2.4rem;
  font-size: .9rem;
}

html body.single-post .entry-content,
html body.single-post .wp-block-post-content { margin-top: 0; }
html body .sc-scope .sc-crumbs--dark,
html body .sc-scope .sc-crumbs--dark a { color: var(--sc-orchid) !important; }
html body .sc-scope .sc-crumbs--dark a:hover { color: var(--sc-oxblood) !important; }
html body .sc-scope .sc-crumbs--light,
html body .sc-scope .sc-crumbs--light a { color: var(--sc-mulberry) !important; }
html body .sc-scope .sc-crumbs--light a:hover { color: #fff !important; }
html body .sc-scope .sc-choose__box--rtw .sc-choose__title { color: #fff !important; }
html body .sc-scope .sc-choose__box--rtw .sc-choose__sub { color: #FFE7C9 !important; }
html body .sc-scope .sc-choose__box--rtw p { color: rgba(255,255,255,.88) !important; }
html body .sc-scope .sc-choose__box--rtw .sc-link { color: #fff !important; }
html body .sc-scope .sc-choose__box--custom .sc-choose__title { color: #fff !important; }
html body .sc-scope .sc-choose__box--custom .sc-choose__sub { color: var(--sc-mulberry) !important; }
html body .sc-scope .sc-choose__box--custom p { color: rgba(255,255,255,.82) !important; }
html body .sc-scope .sc-choose__box--custom .sc-link { color: var(--sc-mulberry) !important; }
html body .sc-scope .sc-choose__box--custom .sc-link { border-bottom-color: var(--sc-mulberry) !important; }
html body .sc-scope .sc-visit {
background: #953133;
padding: clamp(1.8rem, 4vw, 2.6rem);
display: flex; flex-direction: column; justify-content: center;
min-height: 220px;
}
html body .sc-scope .sc-visit .sc-visit__label {
display: block;
font-family: var(--sc-display);
font-size: clamp(1.6rem, 3vw, 2.1rem) !important;
font-weight: 600;
letter-spacing: -.02em;
color: #fff !important;
margin-bottom: .6rem;
}
html body .sc-scope .sc-visit p { color: rgba(255,255,255,.9) !important; margin: 0; }
html body .sc-scope .sc-pagehero--blend {
background: linear-gradient(135deg, #0E0A0C 0%, #2A0B0E 45%, #4E090D 100%) !important;
}
html body .sc-scope .sc-pagehero--blend::before { content: none !important; }
html body .sc-scope .sc-pagehero--blend p { color: rgba(255,255,255,.88) !important; max-width: 62ch; }
html body .sc-scope .sc-table th .sc-unit {
display: inline-block;
font-size: .68rem !important;
font-weight: 400 !important;
letter-spacing: .04em;
text-transform: none;
opacity: .72;
margin-left: .25rem;
}
html body .sc-scope .sc-sizechart { margin: 1.8rem 0 0; padding-bottom: clamp(3rem, 7vw, 5rem); }
html body .sc-scope .sc-sizechart + .sc-tablewrap {
margin-top: 0;
padding-top: clamp(3rem, 7vw, 5rem);
border-top: 1px solid var(--sc-line);
}
html body .sc-scope .sc-sizechart + .sc-tablewrap::before {
content: "Measurements at a glance";
display: block;
font-family: var(--sc-text);
font-size: .72rem;
font-weight: 600;
letter-spacing: .26em;
text-transform: uppercase;
color: var(--sc-orchid);
margin-bottom: 1.2rem;
}
html body .sc-scope .sc-sizechart img {
display: block; width: 100%; height: auto;
border: 1px solid var(--sc-line);
background: #fff;
}
html body .sc-chatfab {
position: fixed;
right: clamp(14px, 3vw, 24px);
bottom: clamp(14px, 3vw, 24px);
z-index: 700;
display: inline-flex; align-items: center; gap: .4rem;
background: #25D366;
color: #08331A !important;
padding: .55rem .9rem;
font-family: var(--sc-text);
font-size: .7rem;
font-weight: 600;
letter-spacing: .12em;
text-transform: uppercase;
text-decoration: none !important;
box-shadow: 0 14px 30px -16px rgba(8,51,26,.7);
transition: background .25s ease, transform .25s ease;
}
html body .sc-chatfab:hover { background: #1EBE5B; transform: translateY(-2px); }
html body .sc-chatfab svg { width: 16px; height: 16px; fill: currentColor; }
html body .sc-chatfab span { color: inherit !important; }
body:has(.sc-chatfab) .sc-fab--wa { display: none !important; }
html body .sc-toast:not(.is-open) {
opacity: 0 !important;
visibility: hidden !important;
pointer-events: none !important;
}
html body .sc-toast.is-open { opacity: 1 !important; visibility: visible !important; }
html, body { max-width: 100%; overflow-x: hidden; }
html body .sc-scope { max-width: 100%; }
html body .sc-scope img:not(.sc-logo),
html body .sc-scope video,
html body .sc-scope iframe { max-width: 100%; height: auto; }
html body .sc-header__logo img,
html body .sc-mobilenav img,
html body .sc-footer__brand img {
height: 46px !important;
width: auto !important;
max-width: 230px !important;
object-fit: contain !important;
}
@media (max-width: 760px) {
html body .sc-header__logo img { height: 34px !important; max-width: 170px !important; }
html body .sc-mobilenav img { height: 30px !important; }
}
html body .sc-footer__brand img { height: 40px !important; }
html body .sc-scope .sc-tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
html body .sc-scope .sc-table { min-width: 560px; }
html body .sc-scope pre, html body .sc-scope code { white-space: pre-wrap; word-break: break-word; }
html body .sc-scope h1, html body .sc-scope h2, html body .sc-scope h3 { overflow-wrap: break-word; }
@media (max-width: 620px) {
html body .sc-scope .sc-split,
html body .sc-scope .sc-signup,
html body .sc-scope .sc-choose { grid-template-columns: 1fr !important; }
html body .sc-scope .sc-wrap { padding-inline: 1.15rem; }
html body .sc-scope .sc-figure { aspect-ratio: 4 / 5; }
}
@media (min-width: 900px) {
html body .sc-scope .sc-rail[data-grid-desktop] {
display: grid !important;
grid-template-columns: repeat(4, 1fr);
gap: 18px;
overflow: visible !important;
}
}
@media (min-width: 1180px) {
html body .sc-scope .sc-rail[data-grid-desktop] {
grid-template-columns: repeat(6, 1fr);
}
html body .sc-scope .sc-rail[data-grid-desktop] > * {
flex-basis: auto !important;
max-width: none !important;
width: auto !important;
}
html body .sc-scope section:has(.sc-rail[data-grid-desktop]) .sc-railnav { display: none !important; }
}
html body .sc-scope .sc-card__badge {
top: 8px !important;
left: 8px !important;
padding: .22rem .4rem !important;
font-size: .52rem !important;
letter-spacing: .1em !important;
line-height: 1.3 !important;
border-radius: 2px !important;
}
html body .sc-fabs { pointer-events: none !important; }
html body .sc-fabs > * { pointer-events: auto !important; }
html body #sc-backdrop:not(.is-open) { pointer-events: none !important; }
html body .sc-footer a,
html body .sc-scope .sc-info__item {
position: relative;
z-index: 3;
pointer-events: auto !important;
}
html body .sc-footer__cols a { display: inline-block; }
html body .sc-scope .sc-rail .sc-card__media img.sc-card__alt { display: none !important; }
@media (hover: none) {
html body .sc-scope .sc-card__media img.sc-card__alt { display: none !important; }
}
html body .sc-scope .sc-rail .sc-card,
html body .sc-scope .sc-rail .sc-card__media,
html body .sc-scope .sc-rail .sc-card__media img {
transition: none !important;
animation: none !important;
transform: none !important;
}
html body .sc-scope .sc-rail .sc-card:hover { transform: none !important; box-shadow: none !important; }
@media (min-width: 900px) {
html body .sc-scope .sc-rail[data-grid-desktop] { grid-template-columns: repeat(4, 1fr) !important; }
html body .sc-scope .sc-rail[data-grid-desktop] > *:nth-child(n+9) { display: none !important; }
}
@media (min-width: 1180px) {
html body .sc-scope .sc-rail[data-grid-desktop] { grid-template-columns: repeat(4, 1fr) !important; }
}
html body .sc-scope .sc-rail.sc-marq {
overflow: hidden !important;
display: block !important;
scroll-snap-type: none !important;
-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%);
mask-image: linear-gradient(90deg, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%);
}
html body .sc-scope .sc-rail.sc-marq .sc-marq__track {
display: flex;
width: max-content;
gap: 18px;
animation-name: sc-marq-slide;
animation-timing-function: linear;
animation-iteration-count: infinite;
will-change: transform;
}
html body .sc-scope .sc-rail.sc-marq:hover .sc-marq__track,
html body .sc-scope .sc-rail.sc-marq:active .sc-marq__track {
animation-play-state: paused;
}
@keyframes sc-marq-slide {
from { transform: translate3d(0, 0, 0); }
to   { transform: translate3d(-50%, 0, 0); }
}
html body .sc-scope .sc-rail.sc-marq .sc-card {
flex: 0 0 clamp(160px, 46vw, 250px) !important;
max-width: clamp(160px, 46vw, 250px) !important;
}
@media (min-width: 900px) {
html body .sc-scope .sc-rail.sc-marq .sc-card {
flex-basis: 260px !important;
max-width: 260px !important;
}
}
@media (prefers-reduced-motion: reduce) {
html body .sc-scope .sc-rail.sc-marq .sc-marq__track { animation: none; }
}
html body .sc-header,
html body .sc-header * { pointer-events: auto !important; }
html body .sc-header a,
html body .sc-header button { cursor: pointer; position: relative; z-index: 2; }
html body .sc-header [hidden] { display: none !important; }
html body .sc-scope .sc-formnote { margin: 1rem 0 0; font-size: .9rem; min-height: 1.2em; }
html body .sc-scope .sc-formnote.is-good { color: var(--sc-orchid) !important; }
html body .sc-scope .sc-formnote.is-bad { color: var(--sc-oxblood) !important; }
html body .sc-scope .sc-searchhint,
html body .sc-search .sc-searchhint {
margin: 1.4rem 0 0;
font-size: .82rem;
letter-spacing: .16em;
text-transform: uppercase;
color: var(--sc-muted) !important;
text-align: center;
}
html body .sc-modal__close {
display: flex !important;
align-items: center !important;
justify-content: center !important;
padding: 0 !important;
line-height: 0 !important;
}
html body .sc-modal__close svg { display: block; margin: 0 !important; }
@media (min-width: 760px) {
html body .sc-scope .sc-ctatrio.sc-center {
display: flex !important;
flex-wrap: wrap;
justify-content: center !important;
gap: 14px;
max-width: none !important;
margin-inline: auto;
}
html body .sc-scope .sc-ctatrio.sc-center .sc-btn {
width: auto !important;
min-width: 190px;
max-width: 280px;
padding: 1rem 1.9rem !important;
}
}
html body .sc-zoom {
position: fixed; inset: 0; z-index: 1300;
background: rgba(23, 16, 20, .94);
display: none;
overflow: hidden;
touch-action: none;
}
html body .sc-zoom.is-open { display: block; }
html body .sc-zoom__img {
position: absolute; top: 50%; left: 50%;
max-width: 92vw; max-height: 86vh;
transform-origin: center center;
will-change: transform;
user-select: none; -webkit-user-drag: none;
}
html body .sc-pd__zoombtn {
position: absolute; right: 12px; bottom: 12px; z-index: 4;
display: inline-flex; align-items: center; gap: .4rem;
padding: .5rem .8rem;
background: rgba(255,255,255,.94);
border: 1px solid var(--sc-line);
color: var(--sc-ink) !important;
font-family: var(--sc-text); font-size: .68rem; font-weight: 600;
letter-spacing: .14em; text-transform: uppercase;
cursor: pointer;
}
html body .sc-pd__zoombtn:hover { background: var(--sc-ink); color: #fff !important; border-color: var(--sc-ink); }
html body .sc-pd__zoombtn svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.7; }
html body .sc-zoom__close {
position: absolute; top: clamp(12px, 3vw, 22px); right: clamp(12px, 3vw, 22px);
z-index: 2;
width: 46px; height: 46px; border-radius: 999px;
border: 1px solid rgba(255,255,255,.4);
background: rgba(23,16,20,.6); color: #fff;
display: flex; align-items: center; justify-content: center;
cursor: pointer; padding: 0; line-height: 0;
}
html body .sc-zoom__close:hover { background: #fff; color: var(--sc-ink); }
html body .sc-zoom__close svg { width: 16px; height: 16px; stroke: currentColor; stroke-width: 1.7; fill: none; }
html body .sc-zoom__hint {
position: absolute; left: 50%; bottom: clamp(14px, 4vw, 28px); transform: translateX(-50%);
color: rgba(255,255,255,.75) !important;
font-size: .72rem; letter-spacing: .18em; text-transform: uppercase;
pointer-events: none; text-align: center; width: 100%;
}
html body .sc-pd__stage { cursor: zoom-in; }
html body .sc-footer { background: var(--sc-ink) !important; border-top: 0 !important; }
html body .sc-footer,
html body .sc-footer p,
html body .sc-footer li,
html body .sc-footer a { color: #C9BDC5 !important; }
html body .sc-footer h4,
html body .sc-footer h5,
html body .sc-footer strong { color: #fff !important; }
html body .sc-footer a:hover { color: var(--sc-mulberry) !important; }
html body .sc-footer__brand img {
background: #fff !important;
padding: 12px 16px !important;
border-radius: 4px !important;
box-shadow: 0 10px 26px -18px rgba(0,0,0,.9);
}
@media (min-width: 900px) {
html body .sc-scope .sc-reviews ~ .sc-railnav,
html body .sc-scope .sc-head--split .sc-railnav { display: flex !important; }
}
html body .sc-scope .sc-post__blank { display: block; aspect-ratio: 4 / 3; background: var(--sc-veil); }
html body .sc-scope .sc-flush { margin: 0; }
html body .sc-scope .sc-flush--gap { margin: .4rem 0 0; }
html body .sc-scope .sc-orderlist { padding-left: 1.1rem; margin: .6rem 0 1rem; }
html body .sc-scope .sc-rail .sc-card,
html body .sc-scope .sc-rail .sc-card:hover,
html body .sc-scope .sc-rail .sc-card__media { box-shadow: none !important; }
html body .sc-scope .sc-railwrap { box-shadow: none !important; }
html body .sc-scope .sc-railwrap::before,
html body .sc-scope .sc-railwrap::after { content: none !important; }
html body .sc-footer .sc-social a {
display: inline-grid; place-items: center;
width: 38px; height: 38px;
background: var(--sc-orchid);
border-radius: 50%;
transition: background .25s ease, transform .25s ease;
}
html body .sc-footer .sc-social a:hover { background: var(--sc-mulberry); transform: translateY(-2px); }
html body .sc-footer .sc-social a svg { width: 17px; height: 17px; fill: #fff; }
html body .sc-scope .sc-signup {
grid-template-columns: 1fr !important;
max-width: 620px; margin-inline: auto; text-align: center;
gap: 1.4rem !important;
}
html body .sc-scope .sc-signup .sc-eyebrow { justify-content: center; text-align: center; }
html body .sc-scope .sc-signup h2 { text-align: center; margin: 0 auto; max-width: 46ch; }
html body .sc-scope .sc-signup__form {
display: flex !important; flex-wrap: nowrap !important; gap: 0 !important;
border: 1px solid var(--sc-ink);
background: #fff;
max-width: 460px; margin-inline: auto;
}
html body .sc-scope .sc-signup__form .sc-input {
flex: 1 1 auto !important;
border: 0 !important;
background: transparent !important;
padding: .95rem 1.1rem !important;
min-width: 0;
}
html body .sc-scope .sc-signup__form .sc-btn {
flex: 0 0 auto !important;
padding: .95rem 1.5rem !important;
border: 0 !important;
min-height: 0 !important;
}
html body .sc-scope .sc-signup__note { text-align: center; }
html body .sc-scope .sc-choose__box .sc-link {
border-bottom: 2px solid rgba(255,255,255,.7) !important;
padding-bottom: .3rem !important;
display: inline-flex !important;
align-items: center; gap: .5rem;
}
html body .sc-scope .sc-choose__box:hover .sc-link { border-bottom-color: #fff !important; }

/* Embedded video (YouTube, Vimeo, Drive) fills the gallery stage exactly as
   a photograph or an uploaded file does. */
html body .sc-scope .sc-pd__stage iframe,
.sc-pd__stage iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/* The video thumbnail carries a play marker, so it is obvious there is
   something to watch rather than another photograph. */
html body .sc-pd__thumb--video { position: relative; }
html body .sc-pd__thumb--video::after {
  content: "";
  position: absolute; top: 50%; left: 50%;
  width: 0; height: 0;
  margin: -7px 0 0 -4px;
  border-left: 12px solid #fff;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  filter: drop-shadow(0 1px 3px rgba(0,0,0,.6));
}
html body .sc-pd__thumb--video::before {
  content: "";
  position: absolute; inset: 0;
  background: rgba(23,16,20,.35);
}

/* The search box is a real form now, so it works even if scripts fail. */
html body .sc-search__form { display: flex; align-items: center; gap: .6rem; flex: 1 1 auto; }
html body .sc-search__form .sc-search__input { flex: 1 1 auto; }
html body .sc-search__go {
  border: 0; background: var(--sc-ink); color: #fff; cursor: pointer;
  padding: .8rem 1.4rem; font-family: var(--sc-text); font-size: .72rem;
  font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
}
html body .sc-search__go:hover { background: var(--sc-orchid); }

/* Search results: four cards and a way through to the rest. */
html body .sc-find {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin-top: 1.4rem;
}
@media (min-width: 760px) {
  html body .sc-find { grid-template-columns: repeat(4, 1fr); }
}
html body .sc-find__card {
  display: block;
  text-decoration: none !important;
  background: #fff;
  border: 1px solid var(--sc-line);
}
html body .sc-find__card:hover { border-color: var(--sc-orchid); }
html body .sc-find__shot { display: block; position: relative; aspect-ratio: 3 / 4; overflow: hidden; }
html body .sc-find__shot img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
html body .sc-find__name {
  display: block; padding: .7rem .8rem .2rem;
  font-family: var(--sc-text); font-size: .82rem; line-height: 1.3;
  color: var(--sc-ink) !important;
}
html body .sc-find__price {
  display: block; padding: 0 .8rem .8rem;
  font-size: .82rem; font-weight: 600; color: var(--sc-orchid) !important;
}
html body .sc-find__more { margin: 1.2rem 0 0; text-align: center; }
html body .sc-find__none {
  margin: 1.4rem 0 0; font-size: .92rem; color: var(--sc-ink-soft) !important; text-align: center;
}
html body .sc-find__none a { color: var(--sc-orchid) !important; text-decoration: underline !important; }

/* International orders: the call to action sits centred, and its label wraps
   tidily on a narrow screen instead of running to the edges. */
html body .sc-scope .sc-intlcta { text-align: center; }
@media (max-width: 620px) {
  html body .sc-scope .sc-intlcta .sc-btn {
    display: inline-block;
    max-width: 280px;
    padding: .95rem 1.4rem !important;
    font-size: .7rem !important;
    letter-spacing: .1em !important;
    line-height: 1.5 !important;
    white-space: normal !important;
    text-align: center;
  }
}

/* Five ways: on a laptop the row slides in, holds long enough to read, slides
   away and comes back. On a phone it keeps the continuous scroll it has now. */
@media (min-width: 900px) {
  html body .sc-scope .sc-rail.sc-ways {
    overflow: hidden;
    animation: sc-ways-cycle 7s ease-in-out infinite;
  }
  html body .sc-scope .sc-rail.sc-ways:hover { animation-play-state: paused; }
}

@keyframes sc-ways-cycle {
  0%   { transform: translateX(5%);  opacity: 0; }
  8%   { transform: translateX(0);    opacity: 1; }
  82%  { transform: translateX(0);    opacity: 1; }
  94%  { transform: translateX(-5%);  opacity: 0; }
  /* Reposition to the right while invisible, so it returns straight away
     rather than leaving an empty gap where the cards used to be. */
  95%  { transform: translateX(5%);   opacity: 0; }
  100% { transform: translateX(5%);   opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html body .sc-scope .sc-rail.sc-ways { animation: none; opacity: 1; transform: none; }
}

/* The link under the row. */
html body .sc-scope .sc-ways__more { margin: 1.6rem 0 0; text-align: center; }
html body .sc-scope .sc-ways__more a {
  display: inline-block;
  font-family: var(--sc-text);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--sc-ink) !important;
  border-bottom: 2px solid var(--sc-orchid);
  padding-bottom: .35rem;
  text-decoration: none !important;
  transition: color .25s ease, border-color .25s ease;
}
html body .sc-scope .sc-ways__more a:hover {
  color: var(--sc-orchid) !important;
  border-bottom-color: var(--sc-ink);
}

/* The founder heading takes the same orchid as the section labels, and on a
   phone it sits above the photograph rather than below it. Exactly one of the
   two is ever displayed. */
html body .sc-scope .sc-founder__title { color: var(--sc-orchid) !important; }
html body .sc-scope .sc-founder__title--stacked { display: block; margin: 0 0 1rem; }
html body .sc-scope .sc-founder__title--beside { display: none; }

@media (min-width: 900px) {
  html body .sc-scope .sc-founder__title--stacked { display: none; }
  html body .sc-scope .sc-founder__title--beside { display: block; }
}

/* The line above the shop grid when someone arrives from the search box. */
html body .sc-scope .sc-findnote {
  margin: 0 0 1.4rem;
  font-family: var(--sc-text);
  font-size: .92rem;
  color: var(--sc-ink-soft) !important;
}
html body .sc-scope .sc-findnote--none { color: var(--sc-oxblood) !important; }

/* Shipping in the bag: address, the zone's methods, and what is missing for
   free delivery. */
html body .sc-ship { margin: 0 0 1.1rem; padding: 1rem 0 0; border-top: 1px solid var(--sc-line); }
html body .sc-ship__lead {
  margin: 0 0 .6rem; font-size: .72rem; font-weight: 600;
  letter-spacing: .16em; text-transform: uppercase; color: var(--sc-muted) !important;
}
html body .sc-ship__where { display: grid; grid-template-columns: 1fr; gap: .5rem; margin-bottom: .8rem; }
@media (min-width: 480px) {
  html body .sc-ship__where { grid-template-columns: 1fr 1fr; }
  html body .sc-ship__country { grid-column: 1 / -1; }
}
html body .sc-ship__where .sc-input { padding: .7rem .8rem; font-size: .88rem; }

html body .sc-ship__rate {
  display: flex; align-items: center; gap: .6rem;
  padding: .6rem .2rem; cursor: pointer;
  border-bottom: 1px solid var(--sc-line);
}
html body .sc-ship__rate:last-child { border-bottom: 0; }
html body .sc-ship__name { flex: 1 1 auto; font-size: .88rem; }
html body .sc-ship__cost { font-size: .88rem; font-weight: 600; }
html body .sc-ship__wait,
html body .sc-ship__none { margin: .4rem 0; font-size: .84rem; color: var(--sc-muted) !important; }

html body .sc-ship__gap {
  margin: .9rem 0 .6rem; font-size: .84rem; font-weight: 600; color: var(--sc-orchid) !important;
}
html body .sc-ship__picks { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
html body .sc-ship__pick { display: block; text-decoration: none !important; }
html body .sc-ship__pickshot { display: block; position: relative; aspect-ratio: 3 / 4; overflow: hidden; background: var(--sc-veil); }
html body .sc-ship__pickshot img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
html body .sc-ship__pickname {
  display: block; margin-top: .35rem; font-size: .72rem; line-height: 1.25;
  color: var(--sc-ink) !important;
}
html body .sc-ship__pickprice { display: block; font-size: .72rem; font-weight: 600; color: var(--sc-orchid) !important; }

html body .sc-drawer__row--total strong { font-size: 1.05rem; }

/* The bag on a laptop.
   It stays a drawer, but a wide one, split in two: the pieces on the left
   where they remain visible, shipping and totals on the right. Before this the
   summary pushed the items out of view, so you could not see what you were
   deciding about. Phones are unchanged — one column, as before. */
/* The wrapper added for the laptop layout must still behave on a phone: it
   sits between the drawer and its two panes, so without this the items area
   stopped scrolling and the shipping panel below it could not be reached —
   which is why the bag looked unchanged on mobile. */
html body #sc-cart .sc-drawer__panes {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}
html body #sc-cart .sc-drawer__panes > .sc-drawer__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}
html body #sc-cart .sc-drawer__panes > .sc-drawer__foot { flex: 0 0 auto; }

/* On a phone the bag is one page.
   The items had their own small scrolling window with the summary fixed
   beneath it, so the pieces sat half-hidden behind it. Now everything flows
   in a single column and the whole bag scrolls together: items first, then
   shipping, then the totals and the button. */
@media (max-width: 1023px) {
  html body #sc-cart .sc-drawer__panes {
    display: block;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  html body #sc-cart .sc-drawer__panes > .sc-drawer__body {
    flex: none;
    height: auto;
    overflow: visible;
  }
  html body #sc-cart .sc-drawer__panes > .sc-drawer__foot {
    position: static;
    flex: none;
  }
}

@media (min-width: 1024px) {
  html body #sc-cart.sc-drawer { width: min(880px, 96vw); }

  html body #sc-cart .sc-drawer__body,
  html body #sc-cart .sc-drawer__foot {
    box-sizing: border-box;
  }

  html body #sc-cart .sc-drawer__panes {
    display: grid;
    grid-template-columns: 1fr 360px;
    align-items: start;
    flex: 1 1 auto;
    min-height: 0;
  }

  html body #sc-cart .sc-drawer__panes > .sc-drawer__foot { flex: 1 1 auto; }

  html body #sc-cart .sc-drawer__body {
    height: 100%;
    overflow-y: auto;
    padding-right: 1.4rem;
    border-right: 1px solid var(--sc-line);
  }

  html body #sc-cart .sc-drawer__foot {
    height: 100%;
    overflow-y: auto;
    border-top: 0;
    padding-left: 1.4rem;
  }
}

/* The zone line above the delivery choices. */
html body .sc-ship__zone {
  margin: 0 0 .7rem;
  font-size: .78rem;
  line-height: 1.45;
  color: var(--sc-muted) !important;
}

/* The Shop panel must not be clipped or out-ranked.

   It opened on every page but one, where it stayed invisible. A panel that
   hangs out of the header is at the mercy of any ancestor that clips its
   overflow or any later element that out-ranks it, so both are settled here
   rather than left to chance. */
html body .sc-header,
html body .sc-header__bar,
html body .sc-header__inner,
html body .sc-nav,
html body .sc-nav__item { overflow: visible !important; }

html body .sc-header { isolation: auto; }

/* Deliberately NOT positioning the nav item: the panel spans the full header
   width from the header itself, and making the item a positioning context
   would re-anchor the panel to the Shop link. Only its stacking is raised. */
html body .sc-nav__item.is-open .sc-mega {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  z-index: 2147482000 !important;
}

/* Page content can never sit above the header. */
html body .sc-scope > section { z-index: auto; }
