/* ============================================================
   STITCH LIBRARY — SHOP BY COLLECTION
   Desktop-first. BEM. No inline styles, no JS.
   ============================================================ */

/* ---- Brand tokens (scoped to the component) ---- */
.collections {
  --col-primary: #B83B4D;
  --col-primary-dark: #9C2F3F;
  --col-secondary: #1F2937;
  --col-bg: #FFFDF9;
  --col-accent: #D4A373;
  --col-white: #FFFFFF;
  --col-border: #ECE8E1;
  --col-muted: #6B7280;

  --col-serif: "Fraunces", Georgia, "Times New Roman", serif;
  --col-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --col-radius: 20px;
  --col-radius-lg: 28px;
  --col-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ============================================================
   1. SECTION
   ============================================================ */
.collections {
  position: relative;
  overflow: hidden;
  background: var(--col-bg);
  font-family: var(--col-sans);
  color: var(--col-secondary);
  padding-block: clamp(4rem, 7vw, 6.5rem);
  -webkit-font-smoothing: antialiased;
}

.collections::before {
  content: "";
  position: absolute;
  top: -20%;
  left: -10%;
  width: 44rem;
  height: 44rem;
  background: radial-gradient(circle, rgba(212, 163, 115, 0.14), transparent 62%);
  pointer-events: none;
  z-index: 0;
}

.collections__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1240px;
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

/* ==========================================================
   STITCH LIBRARY
   PREMIUM BLOCKSY HEADER
   ========================================================== */

:root {
    --sl-navy: #202C3C;
    --sl-burgundy: #B33C5A;
    --sl-burgundy-dark: #962F4A;
    --sl-cream: #F8F5EF;
    --sl-border: #EAE4DB;
}


/* ==========================================================
   MAIN HEADER
   ========================================================== */

#header {
    position: relative;
    z-index: 1000;
}

.ct-header {
    background: #FFFFFF !important;
}


/* Main header row */

.ct-header-main {
    min-height: 88px !important;

    border-bottom: 1px solid var(--sl-border);

    box-shadow:
        0 3px 18px rgba(32, 44, 60, 0.035);

    transition:
        box-shadow .25s ease,
        background .25s ease;
}


/* Container */

.ct-header-main .ct-container {
    max-width: 1280px;

    padding-left: 28px;
    padding-right: 28px;
}


/* ==========================================================
   LOGO
   ========================================================== */

.ct-header-branding {
    display: flex;
    align-items: center;

    min-width: 205px;
}

.ct-header-branding img {
    width: auto !important;

    max-width: 205px !important;

    height: auto !important;

    max-height: 70px !important;

    object-fit: contain;

    transition:
        transform .25s ease,
        opacity .25s ease;
}


/* subtle premium hover */

.ct-header-branding a:hover img {
    opacity: .88;

    transform: translateY(-1px);
}


/* ==========================================================
   NAVIGATION
   ========================================================== */

.ct-header-menu {
    margin-left: 20px;
}


/* Menu links */

.ct-header-menu .ct-menu-link {
    position: relative;

    display: flex;
    align-items: center;

    padding:
        34px
        16px !important;

    color: var(--sl-navy) !important;

    font-family:
        "Inter",
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif !important;

    font-size: 15px !important;

    font-weight: 650 !important;

    letter-spacing: .015em;

    text-transform: uppercase;

    transition:
        color .2s ease;
}


/* Elegant underline */

.ct-header-menu .ct-menu-link::after {

    content: "";

    position: absolute;

    left: 16px;
    right: 16px;

    bottom: 20px;

    height: 2px;

    background: var(--sl-burgundy);

    transform:
        scaleX(0);

    transform-origin: center;

    transition:
        transform .25s ease;
}


/* Hover */

.ct-header-menu .ct-menu-link:hover {

    color: var(--sl-burgundy) !important;
}

.ct-header-menu .ct-menu-link:hover::after {

    transform: scaleX(1);
}


/* Current page */

.ct-header-menu
.current-menu-item
> .ct-menu-link,
.ct-header-menu
.current-menu-ancestor
> .ct-menu-link {

    color: var(--sl-burgundy) !important;
}


/* Current page underline */

.ct-header-menu
.current-menu-item
> .ct-menu-link::after,
.ct-header-menu
.current-menu-ancestor
> .ct-menu-link::after {

    transform: scaleX(1);
}


/* ==========================================================
   HEADER RIGHT SIDE
   ========================================================== */

.ct-header-actions {

    display: flex;

    align-items: center;

    gap: 7px;
}


/* Search + cart buttons */

.ct-header-actions .ct-header-trigger,
.ct-header-actions .ct-button,
.ct-header-actions a {

    color: var(--sl-navy);

    transition:
        color .2s ease,
        transform .2s ease;
}


/* Search */

.ct-header-actions
[data-label="Search"] {

    color: var(--sl-navy);
}


/* Icons hover */

.ct-header-actions
.ct-header-trigger:hover,
.ct-header-actions
a:hover {

    color: var(--sl-burgundy);

    transform: translateY(-1px);
}


/* ==========================================================
   CART
   ========================================================== */

.ct-cart-item {

    position: relative;
}


/* Cart price */

.ct-cart-item .ct-cart-item-label {

    color: var(--sl-navy) !important;

    font-family:
        "Inter",
        sans-serif;

    font-size: 14px;

    font-weight: 650;
}


/* Cart icon */

.ct-cart-item svg {

    stroke-width: 1.7;

    transition:
        transform .2s ease,
        color .2s ease;
}


.ct-cart-item:hover svg {

    color: var(--sl-burgundy);

    transform: translateY(-1px);
}


/* Cart quantity badge */

.ct-cart-item .ct-cart-item-count {

    background: var(--sl-burgundy) !important;

    color: #FFFFFF !important;

    border: 2px solid #FFFFFF;

    min-width: 20px;
    height: 20px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    font-family:
        "Inter",
        sans-serif;

    font-size: 10px;

    font-weight: 700;

    line-height: 1;
}


/* ==========================================================
   SEARCH ICON
   ========================================================== */

.ct-header-search {

    margin-right: 5px;
}

.ct-header-search svg {

    width: 21px !important;
    height: 21px !important;

    stroke-width: 1.7;
}


/* ==========================================================
   HEADER SPACING
   ========================================================== */

.ct-header-main
.ct-header-column {

    align-items: center;
}


/* Give navigation breathing room */

.ct-header-main
[data-column="middle"] {

    padding-left: 25px;
    padding-right: 25px;
}


/* ==========================================================
   PREMIUM TOP ACCENT
   ========================================================== */

.ct-header-main::before {

    content: "";

    position: absolute;

    top: 0;
    left: 0;
    right: 0;

    height: 2px;

    background:
        linear-gradient(
            90deg,
            transparent 0%,
            rgba(179,60,90,.45) 35%,
            var(--sl-burgundy) 50%,
            rgba(179,60,90,.45) 65%,
            transparent 100%
        );

    opacity: .75;
}


/* ==========================================================
   STICKY HEADER
   ========================================================== */

.ct-sticky-container
.ct-header-main {

    background: rgba(255,255,255,.97) !important;

    backdrop-filter: blur(12px);

    box-shadow:
        0 8px 30px rgba(32,44,60,.08);
}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 999px) {

    .ct-header-main {

        min-height: 72px !important;

    }

    .ct-header-main .ct-container {

        padding-left: 18px;
        padding-right: 18px;

    }

    .ct-header-branding {

        min-width: auto;

    }

    .ct-header-branding img {

        max-width: 165px !important;

        max-height: 58px !important;

    }

}


/* ==========================================================
   SMALL MOBILE
   ========================================================== */

@media (max-width: 600px) {

    .ct-header-main {

        min-height: 68px !important;

    }

    .ct-header-branding img {

        max-width: 145px !important;

        max-height: 52px !important;

    }

    .ct-header-main .ct-container {

        padding-left: 14px;
        padding-right: 14px;

    }

    .ct-header-main::before {

        height: 1px;

    }

}


/* ==========================================================
   REMOVE EXCESSIVE BLOCKSY EFFECTS
   ========================================================== */

.ct-header
.ct-menu-link:focus-visible {

    outline: 2px solid rgba(179,60,90,.35);

    outline-offset: 4px;

}



/* ============================================================
   4. CARD
   ============================================================ */
.card {
  display: flex;
  flex-direction: column;
  width: 100%;
  background: var(--col-white);
  border: 1px solid var(--col-border);
  border-radius: var(--col-radius-lg);
  overflow: hidden;
  box-shadow: 0 22px 50px -34px rgba(31, 41, 55, 0.28);
  transition: transform 0.4s var(--col-ease),
    box-shadow 0.4s var(--col-ease),
    border-color 0.3s var(--col-ease);
}
.card:hover,
.card:focus-within {
  transform: translateY(-6px);
  border-color: var(--col-accent);
  box-shadow: 0 40px 70px -30px rgba(31, 41, 55, 0.32);
}

/* Media / image placeholder */
.card__media {
  position: relative;
  overflow: hidden;
}
.card__image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  /* clean placeholder look before the .webp is added */
  background:
    linear-gradient(135deg, rgba(212, 163, 115, 0.16), rgba(184, 59, 77, 0.06)),
    var(--col-bg);
  transition: transform 0.6s var(--col-ease);
}
.card:hover .card__image,
.card:focus-within .card__image {
  transform: scale(1.05);
}

/* Body */
.card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: clamp(1.5rem, 2vw, 1.85rem);
}
.card__title {
  margin: 0 0 0.6rem;
  font-family: var(--col-serif);
  font-weight: 600;
  font-size: 1.375rem;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--col-secondary);
}
.card__text {
  margin: 0 0 1.5rem;
  font-size: 0.9688rem;
  line-height: 1.6;
  color: var(--col-muted);
}

/* Explore button — pinned to bottom for even alignment */
.card__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: auto;
  align-self: flex-start;
  padding: 0.85rem 1.5rem;
  font-family: var(--col-sans);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  color: var(--col-secondary);
  background: var(--col-white);
  border: 1px solid var(--col-border);
  border-radius: 999px;
  cursor: pointer;
  transition: transform 0.35s var(--col-ease),
    background-color 0.3s var(--col-ease),
    color 0.3s var(--col-ease),
    box-shadow 0.35s var(--col-ease),
    border-color 0.3s var(--col-ease);
}
.card__btn:hover {
  background: var(--col-primary);
  color: var(--col-white);
  border-color: var(--col-primary);
  box-shadow: 0 14px 28px -12px rgba(184, 59, 77, 0.6);
}
.card__btn:focus-visible {
  outline: 3px solid var(--col-accent);
  outline-offset: 3px;
}
.card__btn-arrow {
  transition: transform 0.3s var(--col-ease);
}
.card__btn:hover .card__btn-arrow {
  transform: translateX(4px);
}

/* Feature button — filled by default (All Collections) */
.card__btn--primary {
  background: var(--col-primary);
  color: var(--col-white);
  border-color: var(--col-primary);
  box-shadow: 0 14px 30px -12px rgba(184, 59, 77, 0.55);
}
.card__btn--primary:hover {
  background: var(--col-primary-dark);
  border-color: var(--col-primary-dark);
}

/* Feature card accent */
.card--feature {
  border-color: rgba(184, 59, 77, 0.22);
}

/* ============================================================
   5. RESPONSIVE
   ============================================================ */

/* ---- Small desktop / tablet (<= 1024px) ---- */
@media (max-width: 1024px) {
  .collections__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ---- Mobile (<= 640px) ---- */
@media (max-width: 640px) {
  .collections {
    padding-block: 3.5rem;
  }
  .collections__grid {
    grid-template-columns: 1fr;
  }
  .collections__description {
    font-size: 1.0625rem;
  }
  .card__btn {
    width: 100%;
    justify-content: center;
  }
}

/* ---- Motion preference ---- */
@media (prefers-reduced-motion: reduce) {
  .card,
  .card__image,
  .card__btn,
  .card__btn-arrow {
    transition: none;
  }
  .card:hover,
  .card:focus-within {
    transform: none;
  }
  .card:hover .card__image,
  .card:focus-within .card__image {
    transform: none;
  }
}

/* ==========================================================
   STITCH LIBRARY
   PREMIUM BLOCKSY HEADER
   ========================================================== */

:root {
    --sl-navy: #202C3C;
    --sl-burgundy: #B33C5A;
    --sl-burgundy-dark: #962F4A;
    --sl-cream: #F8F5EF;
    --sl-border: #EAE4DB;
}


/* ==========================================================
   MAIN HEADER
   ========================================================== */

#header {
    position: relative;
    z-index: 1000;
}

.ct-header {
    background: #FFFFFF !important;
}


/* Main header row */

.ct-header-main {
    min-height: 88px !important;

    border-bottom: 1px solid var(--sl-border);

    box-shadow:
        0 3px 18px rgba(32, 44, 60, 0.035);

    transition:
        box-shadow .25s ease,
        background .25s ease;
}


/* Container */

.ct-header-main .ct-container {
    max-width: 1280px;

    padding-left: 28px;
    padding-right: 28px;
}


/* ==========================================================
   LOGO
   ========================================================== */

.ct-header-branding {
    display: flex;
    align-items: center;

    min-width: 205px;
}

.ct-header-branding img {
    width: auto !important;

    max-width: 205px !important;

    height: auto !important;

    max-height: 70px !important;

    object-fit: contain;

    transition:
        transform .25s ease,
        opacity .25s ease;
}


/* subtle premium hover */

.ct-header-branding a:hover img {
    opacity: .88;

    transform: translateY(-1px);
}


/* ==========================================================
   NAVIGATION
   ========================================================== */

.ct-header-menu {
    margin-left: 20px;
}


/* Menu links */

.ct-header-menu .ct-menu-link {
    position: relative;

    display: flex;
    align-items: center;

    padding:
        34px
        16px !important;

    color: var(--sl-navy) !important;

    font-family:
        "Inter",
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif !important;

    font-size: 15px !important;

    font-weight: 650 !important;

    letter-spacing: .015em;

    text-transform: uppercase;

    transition:
        color .2s ease;
}


/* Elegant underline */

.ct-header-menu .ct-menu-link::after {

    content: "";

    position: absolute;

    left: 16px;
    right: 16px;

    bottom: 20px;

    height: 2px;

    background: var(--sl-burgundy);

    transform:
        scaleX(0);

    transform-origin: center;

    transition:
        transform .25s ease;
}


/* Hover */

.ct-header-menu .ct-menu-link:hover {

    color: var(--sl-burgundy) !important;
}

.ct-header-menu .ct-menu-link:hover::after {

    transform: scaleX(1);
}


/* Current page */

.ct-header-menu
.current-menu-item
> .ct-menu-link,
.ct-header-menu
.current-menu-ancestor
> .ct-menu-link {

    color: var(--sl-burgundy) !important;
}


/* Current page underline */

.ct-header-menu
.current-menu-item
> .ct-menu-link::after,
.ct-header-menu
.current-menu-ancestor
> .ct-menu-link::after {

    transform: scaleX(1);
}


/* ==========================================================
   HEADER RIGHT SIDE
   ========================================================== */

.ct-header-actions {

    display: flex;

    align-items: center;

    gap: 7px;
}


/* Search + cart buttons */

.ct-header-actions .ct-header-trigger,
.ct-header-actions .ct-button,
.ct-header-actions a {

    color: var(--sl-navy);

    transition:
        color .2s ease,
        transform .2s ease;
}


/* Search */

.ct-header-actions
[data-label="Search"] {

    color: var(--sl-navy);
}


/* Icons hover */

.ct-header-actions
.ct-header-trigger:hover,
.ct-header-actions
a:hover {

    color: var(--sl-burgundy);

    transform: translateY(-1px);
}


/* ==========================================================
   CART
   ========================================================== */

.ct-cart-item {

    position: relative;
}


/* Cart price */

.ct-cart-item .ct-cart-item-label {

    color: var(--sl-navy) !important;

    font-family:
        "Inter",
        sans-serif;

    font-size: 14px;

    font-weight: 650;
}


/* Cart icon */

.ct-cart-item svg {

    stroke-width: 1.7;

    transition:
        transform .2s ease,
        color .2s ease;
}


.ct-cart-item:hover svg {

    color: var(--sl-burgundy);

    transform: translateY(-1px);
}


/* Cart quantity badge */

.ct-cart-item .ct-cart-item-count {

    background: var(--sl-burgundy) !important;

    color: #FFFFFF !important;

    border: 2px solid #FFFFFF;

    min-width: 20px;
    height: 20px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    font-family:
        "Inter",
        sans-serif;

    font-size: 10px;

    font-weight: 700;

    line-height: 1;
}


/* ==========================================================
   SEARCH ICON
   ========================================================== */

.ct-header-search {

    margin-right: 5px;
}

.ct-header-search svg {

    width: 21px !important;
    height: 21px !important;

    stroke-width: 1.7;
}


/* ==========================================================
   HEADER SPACING
   ========================================================== */

.ct-header-main
.ct-header-column {

    align-items: center;
}


/* Give navigation breathing room */

.ct-header-main
[data-column="middle"] {

    padding-left: 25px;
    padding-right: 25px;
}


/* ==========================================================
   PREMIUM TOP ACCENT
   ========================================================== */

.ct-header-main::before {

    content: "";

    position: absolute;

    top: 0;
    left: 0;
    right: 0;

    height: 2px;

    background:
        linear-gradient(
            90deg,
            transparent 0%,
            rgba(179,60,90,.45) 35%,
            var(--sl-burgundy) 50%,
            rgba(179,60,90,.45) 65%,
            transparent 100%
        );

    opacity: .75;
}


/* ==========================================================
   STICKY HEADER
   ========================================================== */

.ct-sticky-container
.ct-header-main {

    background: rgba(255,255,255,.97) !important;

    backdrop-filter: blur(12px);

    box-shadow:
        0 8px 30px rgba(32,44,60,.08);
}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 999px) {

    .ct-header-main {

        min-height: 72px !important;

    }

    .ct-header-main .ct-container {

        padding-left: 18px;
        padding-right: 18px;

    }

    .ct-header-branding {

        min-width: auto;

    }

    .ct-header-branding img {

        max-width: 165px !important;

        max-height: 58px !important;

    }

}


/* ==========================================================
   SMALL MOBILE
   ========================================================== */

@media (max-width: 600px) {

    .ct-header-main {

        min-height: 68px !important;

    }

    .ct-header-branding img {

        max-width: 145px !important;

        max-height: 52px !important;

    }

    .ct-header-main .ct-container {

        padding-left: 14px;
        padding-right: 14px;

    }

    .ct-header-main::before {

        height: 1px;

    }

}


/* ==========================================================
   REMOVE EXCESSIVE BLOCKSY EFFECTS
   ========================================================== */

.ct-header
.ct-menu-link:focus-visible {

    outline: 2px solid rgba(179,60,90,.35);

    outline-offset: 4px;

}


/* ==========================================================
   GLOBAL HEADER FONT FALLBACK
   ========================================================== */

.ct-header {

    font-family:
        "Inter",
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

}

.ct-header .ct-menu-link,
.ct-header .ct-header-trigger,
.ct-header .ct-cart-item-label {

    -webkit-font-smoothing: antialiased;

}
/* ============================================================
   STITCH LIBRARY — HERO
   ============================================================ */
.hero {
  --c-primary: #B83B4D;
  --c-primary-dark: #9C2F3F;
  --c-text: #1F2937;
  --c-muted: #6B7280;
  --c-bg: #FFFDF9;
  --c-accent: #D4A373;
  --c-white: #FFFFFF;
  --c-border: #ECE8E1;
  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);

  box-sizing: border-box;
  background: var(--c-bg);
  color: var(--c-text);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  padding-block: clamp(3rem, 6vw, 5.5rem);
}
.hero *, .hero *::before, .hero *::after { box-sizing: border-box; }

.hero__inner {
  width: 100%;
  max-width: 1240px;
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  row-gap: clamp(2.25rem, 4.5vw, 3.5rem);
}

/* ---- Masthead ---- */
.hero__masthead {
  max-width: 60rem;
  margin-inline: auto;
  text-align: center;
}
.hero__eyebrow {
  margin: 0 0 1.35rem;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-primary);
  opacity: 0;
  animation: hero-fade 0.8s var(--ease) 0.05s forwards;
}
.hero__eyebrow::before, .hero__eyebrow::after {
  content: "";
  display: inline-block;
  width: 28px;
  height: 1px;
  vertical-align: middle;
  background: var(--c-accent);
}
.hero__eyebrow::before { margin-right: 0.8rem; }
.hero__eyebrow::after { margin-left: 0.8rem; }

.hero__title {
  margin: 0;
  font-family: var(--serif);
  font-weight: 600;
  font-size: clamp(2.4rem, 5.4vw, 4.5rem);
  line-height: 1.04;
  letter-spacing: -0.025em;
  color: var(--c-text);
  opacity: 0;
  animation: hero-rise 0.9s var(--ease) 0.15s forwards;
}
.hero__title-accent {
  color: var(--c-primary);
  font-style: italic;
  font-weight: 500;
}

/* ---- Cinematic image ---- */
.hero__figure {
  margin: 0;
  opacity: 0;
  animation: hero-rise 1s var(--ease) 0.3s forwards;
}
.hero__image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: clamp(24px, 3vw, 40px);
  border: 1px solid var(--c-border);
  background:
    linear-gradient(135deg, rgba(212, 163, 115, 0.14), rgba(184, 59, 77, 0.05)),
    var(--c-white);
  box-shadow:
    0 2px 0 rgba(255, 255, 255, 0.6) inset,
    0 50px 90px -38px rgba(31, 41, 55, 0.32);
  transition: transform 0.8s var(--ease);
}
.hero__figure:hover .hero__image {
  transform: scale(1.01);
}

/* ---- Editorial caption bar ---- */
.hero__caption {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3.5rem);
  max-width: 62rem;
  margin-inline: auto;
  width: 100%;
  opacity: 0;
  animation: hero-fade 0.9s var(--ease) 0.45s forwards;
}
.hero__description {
  position: relative;
  margin: 0;
  padding-left: 1.5rem;
  max-width: 32rem;
  font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
  line-height: 1.6;
  color: var(--c-muted);
}
.hero__description::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.35rem;
  bottom: 0.35rem;
  width: 2px;
  border-radius: 2px;
  background: linear-gradient(180deg, var(--c-primary), var(--c-accent));
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
}
.hero__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 1.05rem 1.9rem;
  font-family: var(--sans);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  border-radius: 999px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: transform 0.4s var(--ease), background-color 0.3s var(--ease),
    box-shadow 0.4s var(--ease), border-color 0.3s var(--ease);
}
.hero__btn:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 3px; }
.hero__btn-arrow { transition: transform 0.35s var(--ease); }

.hero__btn--primary {
  background: var(--c-primary);
  color: var(--c-white);
  box-shadow: 0 16px 32px -14px rgba(184, 59, 77, 0.65);
}
.hero__btn--primary:hover {
  background: var(--c-primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 22px 40px -14px rgba(184, 59, 77, 0.72);
}
.hero__btn--primary:hover .hero__btn-arrow { transform: translateX(5px); }

.hero__btn--secondary {
  background: var(--c-white);
  color: var(--c-text);
  border-color: var(--c-border);
}
.hero__btn--secondary:hover {
  border-color: var(--c-accent);
  transform: translateY(-2px);
  box-shadow: 0 14px 28px -18px rgba(31, 41, 55, 0.28);
}

/* ---- Animation ---- */
@keyframes hero-rise {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes hero-fade {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

/* ---- Tablet ---- */
@media (max-width: 860px) {
  .hero__image { aspect-ratio: 4 / 3; }
  .hero__caption {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
    gap: 1.75rem;
  }
  .hero__description {
    padding-left: 0;
    padding-top: 1.25rem;
    text-align: center;
  }
  .hero__description::before {
    left: 50%;
    top: 0;
    bottom: auto;
    width: 3rem;
    height: 2px;
    transform: translateX(-50%);
    background: linear-gradient(90deg, var(--c-primary), var(--c-accent));
  }
}

/* ---- Mobile ---- */
@media (max-width: 560px) {
  .hero__image { aspect-ratio: 3 / 4; }
  .hero__actions {
    width: 100%;
    flex-direction: column;
  }
  .hero__btn { width: 100%; }
}

/* ---- Motion preference ---- */
@media (prefers-reduced-motion: reduce) {
  .hero__eyebrow, .hero__title, .hero__figure, .hero__caption {
    opacity: 1;
    animation: none;
  }
  .hero__image, .hero__btn, .hero__btn-arrow { transition: none; }
  .hero__figure:hover .hero__image { transform: none; }
}

/* ============================================================
   STITCH LIBRARY — FEATURED PRODUCTS
   ============================================================ */
.featured {
  --c-primary: #B83B4D;
  --c-primary-dark: #9C2F3F;
  --c-text: #1F2937;
  --c-muted: #6B7280;
  --c-bg: #FFFDF9;
  --c-accent: #D4A373;
  --c-white: #FFFFFF;
  --c-border: #ECE8E1;
  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --radius: 32px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --shadow: 0 22px 50px -34px rgba(31, 41, 55, 0.28);
  --shadow-lift: 0 40px 70px -30px rgba(31, 41, 55, 0.32);

  box-sizing: border-box;
  background: var(--c-bg);
  color: var(--c-text);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  padding-block: clamp(4.5rem, 9vw, 7.5rem);
}
.featured *, .featured *::before, .featured *::after { box-sizing: border-box; }

.featured__inner {
  width: 100%;
  max-width: 1240px;
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

/* ---- Section header (shared language) ---- */
.featured__header {
  max-width: 40rem;
  margin: 0 auto clamp(2.75rem, 5vw, 4rem);
  text-align: center;
}
.featured__eyebrow {
  margin: 0 0 1.1rem;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-primary);
}
.featured__eyebrow::before, .featured__eyebrow::after {
  content: ""; display: inline-block; width: 26px; height: 1px;
  vertical-align: middle; background: var(--c-accent);
}
.featured__eyebrow::before { margin-right: 0.7rem; }
.featured__eyebrow::after { margin-left: 0.7rem; }
.featured__title {
  margin: 0 0 1.1rem;
  font-family: var(--serif);
  font-weight: 600;
  font-size: clamp(2.25rem, 4vw, 3.25rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
}
.featured__title-accent { color: var(--c-primary); font-style: italic; font-weight: 500; }
.featured__lede {
  margin: 0;
  font-size: 1.1875rem;
  line-height: 1.65;
  color: var(--c-muted);
}

/* ---- Grid ---- */
.featured__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(1.25rem, 2.4vw, 2rem);
  margin: 0;
  padding: 0;
  list-style: none;
}
.featured__item { display: flex; min-width: 0; }

/* ---- Product card ---- */
.pcard {
  display: flex;
  flex-direction: column;
  width: 100%;
  background: var(--c-white);
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
  transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease), border-color 0.3s var(--ease);
}
.pcard:hover, .pcard:focus-within {
  transform: translateY(-6px);
  border-color: var(--c-accent);
  box-shadow: var(--shadow-lift);
}
.pcard__media { position: relative; overflow: hidden; }
.pcard__image {
  display: block; width: 100%; height: auto;
  aspect-ratio: 4 / 5; object-fit: cover;
  background: linear-gradient(135deg, rgba(212,163,115,0.16), rgba(184,59,77,0.06)), var(--c-bg);
  transition: transform 0.6s var(--ease);
}
.pcard:hover .pcard__image, .pcard:focus-within .pcard__image { transform: scale(1.05); }
.pcard__tag {
  position: absolute; top: 1rem; left: 1rem;
  padding: 0.4rem 0.85rem;
  font-size: 0.68rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--c-text);
  background: rgba(255, 253, 249, 0.85);
  border: 1px solid var(--c-border);
  border-radius: 999px;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.pcard__body { display: flex; flex-direction: column; flex: 1; padding: clamp(1.35rem, 2vw, 1.65rem); }
.pcard__title {
  margin: 0 0 0.35rem; font-family: var(--serif);
  font-weight: 600; font-size: 1.25rem; line-height: 1.25; letter-spacing: -0.01em;
}
.pcard__meta { margin: 0 0 1.35rem; font-size: 0.85rem; color: var(--c-muted); }
.pcard__foot {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; margin-top: auto;
}
.pcard__price {
  margin: 0; font-family: var(--serif);
  font-weight: 600; font-size: 1.6rem; line-height: 1; color: var(--c-text);
}
.pcard__price-cur { font-size: 0.95rem; color: var(--c-primary); vertical-align: 0.4em; margin-right: 1px; }
.pcard__btn {
  display: inline-flex; align-items: center; gap: 0.4rem;
  padding: 0.7rem 1.15rem;
  font-size: 0.85rem; font-weight: 600; line-height: 1;
  text-decoration: none; color: var(--c-text);
  background: var(--c-white); border: 1px solid var(--c-border); border-radius: 999px;
  cursor: pointer;
  transition: transform 0.35s var(--ease), background-color 0.3s var(--ease),
    color 0.3s var(--ease), border-color 0.3s var(--ease), box-shadow 0.35s var(--ease);
}
.pcard__btn:hover {
  background: var(--c-primary); color: var(--c-white); border-color: var(--c-primary);
  box-shadow: 0 12px 24px -12px rgba(184, 59, 77, 0.6);
}
.pcard__btn:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 3px; }
.pcard__btn-arrow { transition: transform 0.3s var(--ease); }
.pcard__btn:hover .pcard__btn-arrow { transform: translateX(4px); }

/* ---- View all ---- */
.featured__more { margin-top: clamp(2.5rem, 4vw, 3.5rem); text-align: center; }
.featured__more-btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 1.1rem 2.25rem;
  font-size: 1rem; font-weight: 600; line-height: 1;
  text-decoration: none; color: var(--c-text);
  background: var(--c-white); border: 1px solid var(--c-border); border-radius: 999px;
  transition: transform 0.35s var(--ease), border-color 0.3s var(--ease), box-shadow 0.35s var(--ease);
}
.featured__more-btn:hover {
  border-color: var(--c-accent); transform: translateY(-2px);
  box-shadow: 0 14px 28px -18px rgba(31, 41, 55, 0.28);
}
.featured__more-btn:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 3px; }

/* ---- Responsive ---- */
@media (max-width: 1024px) { .featured__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) {
  .featured__grid { grid-template-columns: 1fr; }
  .featured__lede { font-size: 1.0625rem; }
}
@media (prefers-reduced-motion: reduce) {
  .pcard, .pcard__image, .pcard__btn, .pcard__btn-arrow, .featured__more-btn { transition: none; }
  .pcard:hover, .pcard:focus-within { transform: none; }
  .pcard:hover .pcard__image { transform: none; }
}


/* ============================================================
   STITCH LIBRARY — WHY STITCH LIBRARY
   ============================================================ */
.why {
  --c-primary: #B83B4D;
  --c-text: #1F2937;
  --c-muted: #6B7280;
  --c-bg: #FFFDF9;
  --c-accent: #D4A373;
  --c-white: #FFFFFF;
  --c-border: #ECE8E1;
  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --radius: 32px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --shadow: 0 22px 50px -34px rgba(31, 41, 55, 0.28);
  --shadow-lift: 0 40px 70px -30px rgba(31, 41, 55, 0.32);

  box-sizing: border-box;
  background: var(--c-bg);
  color: var(--c-text);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  padding-block: clamp(4.5rem, 9vw, 7.5rem);
}
.why *, .why *::before, .why *::after { box-sizing: border-box; }

.why__inner {
  width: 100%; max-width: 1240px; margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}
.why__header { max-width: 40rem; margin: 0 auto clamp(2.75rem, 5vw, 4rem); text-align: center; }
.why__eyebrow {
  margin: 0 0 1.1rem; font-size: 0.8125rem; font-weight: 600;
  letter-spacing: 0.2em; text-transform: uppercase; color: var(--c-primary);
}
.why__eyebrow::before, .why__eyebrow::after {
  content: ""; display: inline-block; width: 26px; height: 1px;
  vertical-align: middle; background: var(--c-accent);
}
.why__eyebrow::before { margin-right: 0.7rem; }
.why__eyebrow::after { margin-left: 0.7rem; }
.why__title {
  margin: 0 0 1.1rem; font-family: var(--serif); font-weight: 600;
  font-size: clamp(2.25rem, 4vw, 3.25rem); line-height: 1.08; letter-spacing: -0.02em;
}
.why__title-accent { color: var(--c-primary); font-style: italic; font-weight: 500; }
.why__lede { margin: 0; font-size: 1.1875rem; line-height: 1.65; color: var(--c-muted); }

.why__grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.25rem, 2.4vw, 2rem);
  margin: 0; padding: 0; list-style: none;
}
.why__item { display: flex; min-width: 0; }

.fcard {
  display: flex; flex-direction: column; width: 100%;
  padding: clamp(2rem, 3vw, 2.75rem);
  background: var(--c-white); border: 1px solid var(--c-border); border-radius: var(--radius);
  box-shadow: var(--shadow);
  transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease), border-color 0.3s var(--ease);
}
.fcard:hover {
  transform: translateY(-6px); border-color: var(--c-accent); box-shadow: var(--shadow-lift);
}
.fcard__icon {
  display: grid; place-items: center;
  width: 62px; height: 62px; margin-bottom: 1.5rem;
  border-radius: 20px;
  color: var(--c-primary);
  background: rgba(184, 59, 77, 0.08);
  border: 1px solid rgba(184, 59, 77, 0.14);
  transition: transform 0.4s var(--ease);
}
.fcard:hover .fcard__icon { transform: translateY(-2px) rotate(-3deg); }
.fcard__title {
  margin: 0 0 0.75rem; font-family: var(--serif);
  font-weight: 600; font-size: 1.5rem; line-height: 1.2; letter-spacing: -0.01em;
}
.fcard__text { margin: 0; font-size: 1rem; line-height: 1.65; color: var(--c-muted); }

@media (max-width: 900px) { .why__grid { grid-template-columns: 1fr; max-width: 32rem; margin-inline: auto; } }
@media (max-width: 560px) { .why__lede { font-size: 1.0625rem; } }
@media (prefers-reduced-motion: reduce) {
  .fcard, .fcard__icon { transition: none; }
  .fcard:hover { transform: none; }
  .fcard:hover .fcard__icon { transform: none; }
}

/* ============================================================
   STITCH LIBRARY — BEST SELLERS
   ============================================================ */
.bestsellers {
  --c-primary: #B83B4D;
  --c-primary-dark: #9C2F3F;
  --c-text: #1F2937;
  --c-muted: #6B7280;
  --c-bg: #FFFDF9;
  --c-accent: #D4A373;
  --c-white: #FFFFFF;
  --c-border: #ECE8E1;
  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --radius: 32px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --shadow: 0 30px 60px -36px rgba(31, 41, 55, 0.3);

  box-sizing: border-box;
  background: var(--c-bg);
  color: var(--c-text);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  padding-block: clamp(4.5rem, 9vw, 7.5rem);
}
.bestsellers *, .bestsellers *::before, .bestsellers *::after { box-sizing: border-box; }

.bestsellers__inner {
  width: 100%; max-width: 1240px; margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

/* header — split editorial style */
.bestsellers__header {
  display: grid; grid-template-columns: 1fr 1fr;
  align-items: end; gap: 1.5rem 3rem;
  margin-bottom: clamp(3rem, 5vw, 4.5rem);
  padding-bottom: clamp(1.75rem, 3vw, 2.5rem);
  border-bottom: 1px solid var(--c-border);
}
.bestsellers__eyebrow {
  margin: 0 0 1rem; font-size: 0.8125rem; font-weight: 600;
  letter-spacing: 0.2em; text-transform: uppercase; color: var(--c-primary);
}
.bestsellers__title {
  margin: 0; font-family: var(--serif); font-weight: 600;
  font-size: clamp(2.25rem, 4vw, 3.25rem); line-height: 1.05; letter-spacing: -0.02em;
}
.bestsellers__title-accent { color: var(--c-primary); font-style: italic; font-weight: 500; }
.bestsellers__lede { margin: 0; font-size: 1.1875rem; line-height: 1.65; color: var(--c-muted); }

/* showcase rows */
.bestsellers__list { display: flex; flex-direction: column; gap: clamp(2.5rem, 5vw, 4.5rem); }
.showcase {
  display: grid; grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(2rem, 4vw, 4rem); align-items: center;
}
.showcase--reverse .showcase__media { order: 2; }
.showcase--reverse .showcase__body { order: 1; }

.showcase__media {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--c-border);
  box-shadow: var(--shadow);
}
.showcase__image {
  display: block; width: 100%; height: auto;
  aspect-ratio: 9 / 7; object-fit: cover;
  background: linear-gradient(135deg, rgba(212,163,115,0.16), rgba(184,59,77,0.06)), var(--c-white);
  transition: transform 0.7s var(--ease);
}
.showcase__media:hover .showcase__image { transform: scale(1.04); }
.showcase__rank {
  position: absolute; top: 1.25rem; left: 1.5rem;
  font-family: var(--serif); font-weight: 600; font-size: 3.25rem; line-height: 1;
  color: var(--c-white); mix-blend-mode: difference; opacity: 0.9;
}

.showcase__body { min-width: 0; }
.showcase__kicker {
  margin: 0 0 0.85rem; font-size: 0.78rem; font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-muted);
}
.showcase__title {
  margin: 0 0 1rem; font-family: var(--serif); font-weight: 600;
  font-size: clamp(1.9rem, 3vw, 2.6rem); line-height: 1.12; letter-spacing: -0.02em;
}
.showcase__text { margin: 0 0 1.75rem; max-width: 32rem; font-size: 1.0625rem; line-height: 1.65; color: var(--c-muted); }
.showcase__stats {
  display: flex; flex-wrap: wrap; gap: 1.25rem 2.25rem;
  margin: 0 0 2rem; padding: 1.35rem 0 0; list-style: none;
  border-top: 1px solid var(--c-border);
}
.showcase__stat { font-size: 0.9rem; color: var(--c-muted); }
.showcase__stat strong {
  display: block; font-family: var(--serif); font-weight: 600;
  font-size: 1.6rem; line-height: 1; color: var(--c-text); margin-bottom: 0.3rem;
}
.showcase__btn {
  display: inline-flex; align-items: center; gap: 0.55rem;
  padding: 1.05rem 2rem;
  font-size: 1rem; font-weight: 600; line-height: 1; text-decoration: none;
  color: var(--c-white); background: var(--c-primary); border-radius: 999px;
  box-shadow: 0 14px 30px -12px rgba(184, 59, 77, 0.6);
  transition: transform 0.35s var(--ease), background-color 0.3s var(--ease), box-shadow 0.35s var(--ease);
}
.showcase__btn:hover {
  background: var(--c-primary-dark); transform: translateY(-2px);
  box-shadow: 0 20px 38px -12px rgba(184, 59, 77, 0.7);
}
.showcase__btn:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 3px; }
.showcase__btn-arrow { transition: transform 0.3s var(--ease); }
.showcase__btn:hover .showcase__btn-arrow { transform: translateX(4px); }

@media (max-width: 900px) {
  .bestsellers__header { grid-template-columns: 1fr; align-items: start; }
  .showcase, .showcase--reverse { grid-template-columns: 1fr; gap: 1.75rem; }
  .showcase--reverse .showcase__media,
  .showcase--reverse .showcase__body { order: 0; }
}
@media (max-width: 560px) {
  .bestsellers__lede { font-size: 1.0625rem; }
  .showcase__stats { gap: 1rem 1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .showcase__image, .showcase__btn, .showcase__btn-arrow { transition: none; }
  .showcase__media:hover .showcase__image { transform: none; }
}


/* ============================================================
   STITCH LIBRARY — TESTIMONIALS
   ============================================================ */
.testimonials {
  --c-primary: #B83B4D;
  --c-text: #1F2937;
  --c-muted: #6B7280;
  --c-bg: #FFFDF9;
  --c-accent: #D4A373;
  --c-white: #FFFFFF;
  --c-border: #ECE8E1;
  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --radius: 32px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --shadow: 0 22px 50px -34px rgba(31, 41, 55, 0.28);
  --shadow-lift: 0 40px 70px -30px rgba(31, 41, 55, 0.32);

  box-sizing: border-box;
  background: var(--c-bg);
  color: var(--c-text);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  padding-block: clamp(4.5rem, 9vw, 7.5rem);
}
.testimonials *, .testimonials *::before, .testimonials *::after { box-sizing: border-box; }

.testimonials__inner {
  width: 100%; max-width: 1240px; margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}
.testimonials__header { max-width: 40rem; margin: 0 auto clamp(2.75rem, 5vw, 4rem); text-align: center; }
.testimonials__eyebrow {
  margin: 0 0 1.1rem; font-size: 0.8125rem; font-weight: 600;
  letter-spacing: 0.2em; text-transform: uppercase; color: var(--c-primary);
}
.testimonials__eyebrow::before, .testimonials__eyebrow::after {
  content: ""; display: inline-block; width: 26px; height: 1px;
  vertical-align: middle; background: var(--c-accent);
}
.testimonials__eyebrow::before { margin-right: 0.7rem; }
.testimonials__eyebrow::after { margin-left: 0.7rem; }
.testimonials__title {
  margin: 0 0 1.1rem; font-family: var(--serif); font-weight: 600;
  font-size: clamp(2.25rem, 4vw, 3.25rem); line-height: 1.08; letter-spacing: -0.02em;
}
.testimonials__title-accent { color: var(--c-primary); font-style: italic; font-weight: 500; }
.testimonials__lede { margin: 0; font-size: 1.1875rem; line-height: 1.65; color: var(--c-muted); }

.testimonials__grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.25rem, 2.4vw, 2rem);
  margin: 0; padding: 0; list-style: none;
}
.testimonials__item { display: flex; min-width: 0; }

.quote {
  position: relative;
  display: flex; flex-direction: column; width: 100%;
  margin: 0; padding: clamp(2rem, 3vw, 2.75rem);
  background: var(--c-white); border: 1px solid var(--c-border); border-radius: var(--radius);
  box-shadow: var(--shadow);
  transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease), border-color 0.3s var(--ease);
}
.quote:hover { transform: translateY(-6px); border-color: var(--c-accent); box-shadow: var(--shadow-lift); }
.quote__mark {
  font-family: var(--serif); font-weight: 600; font-size: 4.5rem; line-height: 0.7;
  color: var(--c-accent); opacity: 0.5; margin-bottom: 0.5rem;
}
.quote__stars { display: inline-flex; gap: 3px; color: var(--c-primary); margin-bottom: 1.1rem; }
.quote__text {
  margin: 0 0 1.75rem; flex: 1;
  font-family: var(--serif); font-weight: 400; font-size: 1.15rem;
  line-height: 1.55; letter-spacing: -0.01em; color: var(--c-text);
}
.quote__person { display: flex; align-items: center; gap: 0.9rem; padding-top: 1.5rem; border-top: 1px solid var(--c-border); }
.quote__avatar {
  display: block; flex: none; width: 52px; height: 52px;
  border-radius: 50%; overflow: hidden;
  border: 1px solid var(--c-border);
  background: linear-gradient(135deg, rgba(212,163,115,0.2), rgba(184,59,77,0.08)), var(--c-bg);
}
.quote__avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.quote__id { display: flex; flex-direction: column; gap: 0.15rem; }
.quote__name { font-size: 1rem; font-weight: 600; color: var(--c-text); }
.quote__country { font-size: 0.85rem; color: var(--c-muted); }

@media (max-width: 900px) { .testimonials__grid { grid-template-columns: 1fr; max-width: 34rem; margin-inline: auto; } }
@media (max-width: 560px) { .testimonials__lede { font-size: 1.0625rem; } }
@media (prefers-reduced-motion: reduce) {
  .quote { transition: none; }
  .quote:hover { transform: none; }
}

/* ============================================================
   STITCH LIBRARY — FAQ
   ============================================================ */
.faq {
  --c-primary: #B83B4D;
  --c-text: #1F2937;
  --c-muted: #6B7280;
  --c-bg: #FFFDF9;
  --c-accent: #D4A373;
  --c-white: #FFFFFF;
  --c-border: #ECE8E1;
  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --radius: 32px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --shadow: 0 22px 50px -34px rgba(31, 41, 55, 0.28);

  box-sizing: border-box;
  background: var(--c-bg);
  color: var(--c-text);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  padding-block: clamp(4.5rem, 9vw, 7.5rem);
}
.faq *, .faq *::before, .faq *::after { box-sizing: border-box; }

.faq__inner {
  width: 100%; max-width: 860px; margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}
.faq__header { text-align: center; margin-bottom: clamp(2.75rem, 5vw, 4rem); }
.faq__eyebrow {
  margin: 0 0 1.1rem; font-size: 0.8125rem; font-weight: 600;
  letter-spacing: 0.2em; text-transform: uppercase; color: var(--c-primary);
}
.faq__eyebrow::before, .faq__eyebrow::after {
  content: ""; display: inline-block; width: 26px; height: 1px;
  vertical-align: middle; background: var(--c-accent);
}
.faq__eyebrow::before { margin-right: 0.7rem; }
.faq__eyebrow::after { margin-left: 0.7rem; }
.faq__title {
  margin: 0 0 1.1rem; font-family: var(--serif); font-weight: 600;
  font-size: clamp(2.25rem, 4vw, 3.25rem); line-height: 1.08; letter-spacing: -0.02em;
}
.faq__title-accent { color: var(--c-primary); font-style: italic; font-weight: 500; }
.faq__lede { margin: 0 auto; max-width: 34rem; font-size: 1.1875rem; line-height: 1.65; color: var(--c-muted); }

.faq__list { display: flex; flex-direction: column; gap: 1rem; }
.faq__item {
  background: var(--c-white);
  border: 1px solid var(--c-border);
  border-radius: 24px;
  box-shadow: var(--shadow);
  overflow: hidden;
  transition: border-color 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.faq__item[open] { border-color: var(--c-accent); }
.faq__summary {
  display: flex; align-items: center; justify-content: space-between; gap: 1.25rem;
  padding: clamp(1.35rem, 2.4vw, 1.85rem) clamp(1.5rem, 2.6vw, 2.25rem);
  cursor: pointer; list-style: none;
  transition: color 0.3s var(--ease);
}
.faq__summary::-webkit-details-marker { display: none; }
.faq__summary:focus-visible { outline: 3px solid var(--c-accent); outline-offset: -3px; border-radius: 24px; }
.faq__question {
  font-family: var(--serif); font-weight: 600;
  font-size: clamp(1.1rem, 1.8vw, 1.3rem); line-height: 1.3; letter-spacing: -0.01em;
  color: var(--c-text);
}
.faq__item[open] .faq__question { color: var(--c-primary); }
.faq__icon {
  display: grid; place-items: center; flex: none;
  width: 40px; height: 40px; border-radius: 50%;
  color: var(--c-primary);
  background: rgba(184, 59, 77, 0.08);
  border: 1px solid rgba(184, 59, 77, 0.14);
  transition: transform 0.4s var(--ease), background-color 0.3s var(--ease);
}
.faq__item[open] .faq__icon { transform: rotate(135deg); }
.faq__answer {
  padding: 0 clamp(1.5rem, 2.6vw, 2.25rem) clamp(1.5rem, 2.4vw, 2rem);
}
.faq__answer p { margin: 0; font-size: 1.0625rem; line-height: 1.7; color: var(--c-muted); }

/* subtle open reveal */
.faq__item[open] .faq__answer { animation: faq-reveal 0.45s var(--ease); }
@keyframes faq-reveal { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 560px) { .faq__lede { font-size: 1.0625rem; } }
@media (prefers-reduced-motion: reduce) {
  .faq__item, .faq__icon, .faq__summary { transition: none; }
  .faq__item[open] .faq__answer { animation: none; }
}

/* ============================================================
   STITCH LIBRARY — NEWSLETTER
   ============================================================ */
.newsletter {
  --c-primary: #B83B4D;
  --c-primary-dark: #9C2F3F;
  --c-text: #1F2937;
  --c-muted: #6B7280;
  --c-bg: #FFFDF9;
  --c-accent: #D4A373;
  --c-white: #FFFFFF;
  --c-border: #ECE8E1;
  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --radius: 32px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);

  box-sizing: border-box;
  background: var(--c-bg);
  color: var(--c-text);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  padding-block: clamp(4.5rem, 9vw, 7.5rem);
}
.newsletter *, .newsletter *::before, .newsletter *::after { box-sizing: border-box; }

.newsletter__inner {
  width: 100%; max-width: 1240px; margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.newsletter__panel {
  position: relative;
  overflow: hidden;
  padding: clamp(2.75rem, 6vw, 5.5rem) clamp(1.5rem, 5vw, 4rem);
  text-align: center;
  border-radius: var(--radius);
  border: 1px solid var(--c-border);
  /* editorial warm gradient — photography feeling */
  background:
    radial-gradient(120% 140% at 15% 10%, rgba(212, 163, 115, 0.22), transparent 55%),
    radial-gradient(120% 140% at 85% 90%, rgba(184, 59, 77, 0.14), transparent 55%),
    linear-gradient(180deg, #FFFFFF, var(--c-bg));
  box-shadow: 0 40px 80px -40px rgba(31, 41, 55, 0.3);
}
.newsletter__glow {
  position: absolute; top: -30%; left: 50%; transform: translateX(-50%);
  width: 40rem; height: 40rem; pointer-events: none;
  background: radial-gradient(circle, rgba(212, 163, 115, 0.18), transparent 62%);
}

.newsletter__content { position: relative; z-index: 1; max-width: 42rem; margin-inline: auto; }
.newsletter__eyebrow {
  margin: 0 0 1.1rem; font-size: 0.8125rem; font-weight: 600;
  letter-spacing: 0.2em; text-transform: uppercase; color: var(--c-primary);
}
.newsletter__eyebrow::before, .newsletter__eyebrow::after {
  content: ""; display: inline-block; width: 26px; height: 1px;
  vertical-align: middle; background: var(--c-accent);
}
.newsletter__eyebrow::before { margin-right: 0.7rem; }
.newsletter__eyebrow::after { margin-left: 0.7rem; }
.newsletter__title {
  margin: 0 0 1.1rem; font-family: var(--serif); font-weight: 600;
  font-size: clamp(2.25rem, 4.4vw, 3.5rem); line-height: 1.06; letter-spacing: -0.02em;
}
.newsletter__title-accent { color: var(--c-primary); font-style: italic; font-weight: 500; }
.newsletter__lede { margin: 0 auto 2.5rem; max-width: 34rem; font-size: 1.1875rem; line-height: 1.65; color: var(--c-muted); }

/* form */
.newsletter__form { max-width: 34rem; margin-inline: auto; }
.newsletter__field-label {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.newsletter__field {
  display: flex; align-items: center; gap: 0.5rem;
  padding: 0.5rem 0.5rem 0.5rem 1.15rem;
  background: var(--c-white);
  border: 1px solid var(--c-border);
  border-radius: 999px;
  box-shadow: 0 18px 40px -26px rgba(31, 41, 55, 0.28);
  transition: border-color 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.newsletter__field:focus-within {
  border-color: var(--c-accent);
  box-shadow: 0 20px 44px -24px rgba(184, 59, 77, 0.32);
}
.newsletter__field-icon { display: grid; place-items: center; flex: none; color: var(--c-muted); }
.newsletter__input {
  flex: 1; min-width: 0;
  padding: 0.85rem 0.25rem;
  font-family: var(--sans); font-size: 1rem; color: var(--c-text);
  background: transparent; border: 0; outline: none;
}
.newsletter__input::placeholder { color: var(--c-muted); }
.newsletter__btn {
  display: inline-flex; align-items: center; gap: 0.5rem; flex: none;
  padding: 0.95rem 1.9rem;
  font-family: var(--sans); font-size: 1rem; font-weight: 600; line-height: 1;
  color: var(--c-white); background: var(--c-primary);
  border: 1px solid transparent; border-radius: 999px; cursor: pointer;
  box-shadow: 0 14px 30px -12px rgba(184, 59, 77, 0.6);
  transition: transform 0.35s var(--ease), background-color 0.3s var(--ease), box-shadow 0.35s var(--ease);
}
.newsletter__btn:hover {
  background: var(--c-primary-dark); transform: translateY(-2px);
  box-shadow: 0 20px 38px -12px rgba(184, 59, 77, 0.7);
}
.newsletter__btn:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 3px; }
.newsletter__btn-arrow { transition: transform 0.3s var(--ease); }
.newsletter__btn:hover .newsletter__btn-arrow { transform: translateX(4px); }
.newsletter__note { margin: 1.1rem 0 0; font-size: 0.85rem; color: var(--c-muted); }

@media (max-width: 560px) {
  .newsletter__lede { font-size: 1.0625rem; }
  .newsletter__field {
    flex-direction: column; align-items: stretch; gap: 0.65rem;
    padding: 0.75rem; border-radius: 24px;
  }
  .newsletter__field-icon { display: none; }
  .newsletter__input { padding: 0.85rem 1rem; text-align: center; }
  .newsletter__btn { justify-content: center; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .newsletter__field, .newsletter__btn, .newsletter__btn-arrow { transition: none; }
}



.sl-pdp {
  --sl-primary: #B83B4D;
  --sl-primary-dark: #9C2F3F;
  --sl-text: #1F2937;
  --sl-muted: #6B7280;
  --sl-bg: #FFFDF9;
  --sl-alt: #FFFFFF;
  --sl-accent: #D4A373;
  --sl-white: #FFFFFF;
  --sl-border: #ECE8E1;
  --sl-serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sl-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --sl-radius: 32px;
  --sl-radius-sm: 18px;
  --sl-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --sl-shadow: 0 30px 60px -38px rgba(31, 41, 55, 0.3);
  --sl-shadow-sm: 0 22px 50px -34px rgba(31, 41, 55, 0.26);
  box-sizing: border-box;
  background: var(--sl-bg);
  color: var(--sl-text);
  font-family: var(--sl-sans);
  -webkit-font-smoothing: antialiased;
}
.sl-pdp *,
.sl-pdp *::before,
.sl-pdp *::after { box-sizing: border-box; }

.sl-section {
  padding-block: clamp(3.5rem, 8vw, 7rem);
}
.sl-section--alt { background: var(--sl-alt); }

.sl-container {
  width: 100%;
  max-width: 1240px;
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}
.sl-container--narrow { max-width: 860px; }

.sl-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
}
.sl-row--reverse .sl-media { order: 2; }
.sl-row--reverse .sl-content { order: 1; }

.sl-media { margin: 0; }
.sl-image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--sl-radius);
  border: 1px solid var(--sl-border);
  background: linear-gradient(135deg, rgba(212, 163, 115, 0.14), rgba(184, 59, 77, 0.05)), var(--sl-white);
  box-shadow: var(--sl-shadow);
  transition: transform 0.7s var(--sl-ease);
}
.sl-media:hover .sl-image { transform: scale(1.02); }

.sl-content { min-width: 0; }

.sl-eyebrow {
  margin: 0 0 1rem;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--sl-primary);
}
.sl-eyebrow--light { color: var(--sl-accent); }

.sl-title {
  margin: 0 0 1.15rem;
  font-family: var(--sl-serif);
  font-weight: 600;
  font-size: clamp(1.9rem, 3.4vw, 2.75rem);
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: var(--sl-text);
}

.sl-text {
  margin: 0 0 1.75rem;
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--sl-muted);
}

.sl-head {
  max-width: 40rem;
  margin: 0 auto clamp(2.5rem, 4vw, 3.5rem);
  text-align: center;
}
.sl-head .sl-title { margin-bottom: 0; }

.sl-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.85rem;
}
.sl-list__item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 1rem;
  color: var(--sl-text);
}
.sl-check {
  position: relative;
  flex: none;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(184, 59, 77, 0.1);
}
.sl-check::after {
  content: "";
  position: absolute;
  left: 8px;
  top: 6px;
  width: 6px;
  height: 10px;
  border: solid var(--sl-primary);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.sl-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.sl-chip {
  padding: 0.6rem 1.15rem;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--sl-text);
  background: var(--sl-white);
  border: 1px solid var(--sl-border);
  border-radius: 999px;
  transition: border-color 0.3s var(--sl-ease), transform 0.3s var(--sl-ease);
}
.sl-chip:hover {
  border-color: var(--sl-accent);
  transform: translateY(-2px);
}

.sl-features {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
.sl-feature {
  padding: 1.5rem;
  background: var(--sl-white);
  border: 1px solid var(--sl-border);
  border-radius: var(--sl-radius-sm);
  box-shadow: var(--sl-shadow-sm);
  transition: transform 0.4s var(--sl-ease), border-color 0.3s var(--sl-ease);
}
.sl-feature:hover { transform: translateY(-4px); border-color: var(--sl-accent); }
.sl-feature__icon {
  display: block;
  width: 40px;
  height: 40px;
  margin-bottom: 1rem;
  border-radius: 12px;
  background: rgba(184, 59, 77, 0.08);
  border: 1px solid rgba(184, 59, 77, 0.14);
}
.sl-feature__title {
  margin: 0 0 0.4rem;
  font-family: var(--sl-serif);
  font-weight: 600;
  font-size: 1.2rem;
  color: var(--sl-text);
}
.sl-feature__text {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--sl-muted);
}

.sl-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 2.5rem;
  margin: 0;
  padding-top: 1.75rem;
  border-top: 1px solid var(--sl-border);
}
.sl-stat { margin: 0; }
.sl-stat__value {
  margin: 0;
  font-family: var(--sl-serif);
  font-weight: 600;
  font-size: 2.125rem;
  line-height: 1;
  color: var(--sl-text);
}
.sl-stat__label {
  margin: 0.4rem 0 0;
  font-size: 0.85rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--sl-muted);
}

.sl-steps {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 1.25rem;
}
.sl-step {
  display: flex;
  align-items: flex-start;
  gap: 1.1rem;
}
.sl-step__num {
  display: grid;
  place-items: center;
  flex: none;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  font-family: var(--sl-serif);
  font-weight: 600;
  font-size: 1.2rem;
  color: var(--sl-white);
  background: var(--sl-primary);
  box-shadow: 0 12px 24px -12px rgba(184, 59, 77, 0.6);
}
.sl-step__body { min-width: 0; }
.sl-step__title {
  margin: 0.35rem 0 0.35rem;
  font-family: var(--sl-serif);
  font-weight: 600;
  font-size: 1.2rem;
  color: var(--sl-text);
}
.sl-step__text {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--sl-muted);
}

.sl-faq {
  display: grid;
  gap: 1rem;
}
.sl-faq__item {
  background: var(--sl-white);
  border: 1px solid var(--sl-border);
  border-radius: var(--sl-radius-sm);
  box-shadow: var(--sl-shadow-sm);
  overflow: hidden;
}
.sl-faq__item[open] { border-color: var(--sl-accent); }
.sl-faq__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  padding: 1.35rem 1.75rem;
  cursor: pointer;
  list-style: none;
  font-family: var(--sl-serif);
  font-weight: 600;
  font-size: 1.15rem;
  color: var(--sl-text);
}
.sl-faq__summary::-webkit-details-marker { display: none; }
.sl-faq__summary:focus-visible { outline: 3px solid var(--sl-accent); outline-offset: -3px; }
.sl-faq__item[open] .sl-faq__summary { color: var(--sl-primary); }
.sl-faq__icon {
  position: relative;
  flex: none;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(184, 59, 77, 0.08);
  border: 1px solid rgba(184, 59, 77, 0.14);
  transition: transform 0.4s var(--sl-ease);
}
.sl-faq__icon::before,
.sl-faq__icon::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 12px;
  height: 2px;
  background: var(--sl-primary);
  transform: translate(-50%, -50%);
}
.sl-faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.sl-faq__item[open] .sl-faq__icon { transform: rotate(135deg); }
.sl-faq__answer { padding: 0 1.75rem 1.6rem; }
.sl-faq__answer p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--sl-muted);
}

.sl-section--cta { padding-block: clamp(3.5rem, 8vw, 7rem); }
.sl-cta {
  position: relative;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  align-items: center;
  gap: clamp(2rem, 5vw, 4rem);
  padding: clamp(2rem, 4vw, 3.5rem);
  border: 1px solid var(--sl-border);
  border-radius: var(--sl-radius);
  background:
    radial-gradient(120% 140% at 85% 15%, rgba(212, 163, 115, 0.16), transparent 55%),
    linear-gradient(180deg, var(--sl-white), var(--sl-bg));
  box-shadow: var(--sl-shadow);
}
.sl-cta__media { margin: 0; }
.sl-cta__image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--sl-radius-sm);
  border: 1px solid var(--sl-border);
  box-shadow: var(--sl-shadow-sm);
}
.sl-cta__body { min-width: 0; }
.sl-cta__title {
  margin: 0 0 1rem;
  font-family: var(--sl-serif);
  font-weight: 600;
  font-size: clamp(1.9rem, 3.4vw, 2.75rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--sl-text);
}
.sl-cta__text {
  margin: 0 0 1.75rem;
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--sl-muted);
}
.sl-cta__note {
  margin: 1.1rem 0 0;
  font-size: 0.9rem;
  color: var(--sl-muted);
}

.sl-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1.1rem 2.25rem;
  font-family: var(--sl-sans);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  border-radius: 999px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: transform 0.35s var(--sl-ease), background-color 0.3s var(--sl-ease), box-shadow 0.35s var(--sl-ease);
}
.sl-btn--primary {
  color: var(--sl-white);
  background: var(--sl-primary);
  box-shadow: 0 16px 32px -14px rgba(184, 59, 77, 0.65);
}
.sl-btn--primary:hover {
  background: var(--sl-primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 22px 40px -14px rgba(184, 59, 77, 0.72);
}
.sl-btn:focus-visible { outline: 3px solid var(--sl-accent); outline-offset: 3px; }

@media (max-width: 900px) {
  .sl-row,
  .sl-row--reverse {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .sl-row--reverse .sl-media,
  .sl-row--reverse .sl-content { order: 0; }
  .sl-cta {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .sl-cta__media { order: 2; }
  .sl-cta__body { order: 1; }
  .sl-stats { justify-content: center; }
}

@media (max-width: 560px) {
  .sl-features { grid-template-columns: 1fr; }
  .sl-image,
  .sl-cta__image { aspect-ratio: 1 / 1; }
  .sl-faq__summary { font-size: 1.05rem; padding: 1.15rem 1.35rem; }
  .sl-faq__answer { padding: 0 1.35rem 1.35rem; }
  .sl-btn { width: 100%; }
  .sl-stats { gap: 1.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  .sl-image,
  .sl-feature,
  .sl-chip,
  .sl-faq__icon,
  .sl-btn { transition: none; }
  .sl-media:hover .sl-image { transform: none; }
}



/* ===== Stitch Library Product Box ===== */

.single-product .summary {
    background: #ffffff;
    border: 1px solid #ece8e1;
    border-radius: 24px;
    padding: 35px;
    box-shadow: 0 20px 60px rgba(0,0,0,.06);
}

/* Product Title */

.single-product .product_title{
    font-size:42px;
    line-height:1.15;
    font-weight:700;
    color:#1f2937;
    margin-bottom:18px;
}

/* Price */

.single-product .price{
    font-size:38px;
    font-weight:700;
    color:#B83B4D;
    margin:18px 0;
}

.single-product del{
    color:#9ca3af;
    font-size:24px;
    margin-right:10px;
}

.single-product ins{
    text-decoration:none;
}

/* Short description */

.single-product .woocommerce-product-details__short-description{
    font-size:17px;
    color:#6b7280;
    line-height:1.8;
    margin:25px 0;
}

/* Quantity */

.single-product .quantity input{
    height:54px;
    border-radius:14px;
    border:1px solid #ddd;
}

/* Add To Cart */

.single-product .single_add_to_cart_button{

    width:100%;
    height:58px;

    background:#B83B4D !important;

    color:#fff;

    border-radius:999px;

    font-size:18px;

    font-weight:700;

    transition:.3s;

    box-shadow:0 15px 35px rgba(184,59,77,.30);
}

.single-product .single_add_to_cart_button:hover{

    background:#9C2F3F !important;

    transform:translateY(-2px);

    box-shadow:0 20px 45px rgba(184,59,77,.40);
}

/* Meta */

.single-product .product_meta{

    margin-top:30px;

    padding-top:20px;

    border-top:1px solid #eee;

    font-size:14px;

    color:#777;
}

/* Tabs */

.single-product .woocommerce-tabs{

    margin-top:70px;
}

/* Images */

.single-product div.product div.images img{

    border-radius:24px;

}

/* Sale Badge */

.single-product .onsale{

    background:#B83B4D;

    border-radius:999px;

    padding:8px 18px;

    font-weight:600;

}

/* Mobile */

@media(max-width:768px){

.single-product .summary{

padding:25px;

}

.single-product .product_title{

font-size:30px;

}

.single-product .price{

font-size:30px;

}

}



/* ===========================
   STITCH LIBRARY PRODUCT CARD
   Premium Buttons & Typography
=========================== */

/* Product title */
.pcard__title{
    margin-bottom:10px;
}

.pcard__title a{
    color:#2C2A27;
    text-decoration:none;
    font-weight:700;
    transition:.25s ease;
}

.pcard__title a:hover{
    color:#B28A55;
}

/* Meta */
.pcard__meta{
    color:#757575;
    font-size:.95rem;
}

/* Footer */
.pcard__foot{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-top:20px;
}

/* Price */
.pcard__price{
    font-size:2rem;
    font-weight:700;
    color:#1D1D1D;
    line-height:1;
}

.pcard__price del{
    display:block;
    font-size:1.1rem;
    color:#9E9E9E;
    margin-top:4px;
}

.pcard__price ins{
    text-decoration:none;
    color:#1D1D1D;
}

/* Both WooCommerce buttons */
.pcard__btn,
.added_to_cart{

    display:flex;
    align-items:center;
    justify-content:center;

    min-width:170px;
    height:54px;

    padding:0 28px;

    border-radius:999px;

    text-decoration:none !important;

    font-weight:600;

    transition:.25s ease;

    white-space:nowrap;

    box-sizing:border-box;
}

/* Add to cart */

.pcard__btn{

    background:#F8F3EC;

    border:1px solid #E5D8C7;

    color:#2C2A27 !important;

}

.pcard__btn:hover{

    background:#B28A55;

    border-color:#B28A55;

    color:#fff !important;

    transform:translateY(-2px);

}

/* View cart */

.added_to_cart{

    background:#2C2A27;

    color:#fff !important;

    border:1px solid #2C2A27;

}

.added_to_cart:hover{

    background:#B28A55;

    border-color:#B28A55;

    color:#fff !important;

}

/* Arrow */

.pcard__btn-arrow{

    margin-left:10px;

    font-size:18px;

    transition:.25s;

}

.pcard__btn:hover .pcard__btn-arrow{

    transform:translateX(4px);

}

/* Product image */

.pcard__media{

    overflow:hidden;

}

.pcard__image{

    transition:.45s ease;

}

.pcard:hover .pcard__image{

    transform:scale(1.04);

}

/* Category badge */

.pcard__tag{

    background:#FFF9F1;

    color:#8A6842;

    border:1px solid #EADCC8;

}

/* Sale badge */

.onsale{

    background:#C99A4A !important;

    color:#fff !important;

    border-radius:999px;

    padding:6px 14px;

    font-size:12px;

    font-weight:600;

}

/* Mobile */

@media(max-width:768px){

.pcard__foot{

    flex-direction:column;

    align-items:stretch;

}

.pcard__btn,
.added_to_cart{

    width:100%;

    min-width:100%;

}

}

/* Desktop */
@media (min-width:1025px){

.featured__grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(280px,1fr));
    gap:32px;
}

.pcard{
    width:100%;
}

.pcard__foot{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
}

.pcard__price{
    text-align:left;
}

.pcard__btn,
.added_to_cart{
    width:100%;
}
}

/* Mobile */
@media (max-width:768px){

.featured__grid{

display:grid;

grid-template-columns:repeat(2,1fr);

gap:14px;

}

.featured__item{

width:100%;

}

.pcard__title{

font-size:18px;

}

.pcard__price{

font-size:28px;

}

}

.added_to_cart{
    display:none !important;
}

/* ======================================
   STITCH LIBRARY PREMIUM PRODUCT CARDS
====================================== */

/* Hide View Cart */
.added_to_cart{
    display:none !important;
}

/* Product image */
.pcard__media{
    position:relative;
    overflow:hidden;
}

.pcard__image{
    width:100%;
    aspect-ratio:4/5;
    object-fit:cover;
    transition:.45s ease;
}

.pcard:hover .pcard__image{
    transform:scale(1.05);
}

/* Category Badge */

.pcard__tag{

    top:18px;

    left:18px;

    font-size:13px;

    padding:10px 18px;

    border-radius:999px;

}

/* Title */

.pcard__title{

    margin-bottom:10px;

}

.pcard__title a{

    color:#2C2A27;

    text-decoration:none;

    font-weight:700;

    transition:.25s;

}

.pcard__title a:hover{

    color:#B28A55;

}

/* Meta */

.pcard__meta{

    color:#787878;

}

/* Price */

.pcard__price{

    font-size:34px;

    font-weight:700;

}

/* Footer */

.pcard__foot{

    display:flex;

    flex-direction:column;

    gap:16px;

    align-items:stretch;

}

/* Button */

.pcard__btn{

    width:100%;

    height:56px;

    display:flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    border-radius:999px;

    background:#F8F3EC;

    border:1px solid #E5D8C7;

    color:#2C2A27!important;

    text-decoration:none;

    font-weight:600;

    transition:.25s;

}

.pcard__btn:hover{

    background:#B28A55;

    border-color:#B28A55;

    color:#fff!important;

    transform:translateY(-2px);

}

.pcard__btn-arrow{

    transition:.25s;

}

.pcard__btn:hover .pcard__btn-arrow{

    transform:translateX(5px);

}

/* ==========================
        MOBILE
========================== */

@media(max-width:768px){

.featured__grid{

display:grid;

grid-template-columns:repeat(2,minmax(0,1fr));

gap:16px;

}

.featured__item{

width:100%;

margin:0;

}

.pcard{

border-radius:22px;

overflow:hidden;

}

/* Smaller badge */

.pcard__tag{

top:10px;

left:10px;

padding:6px 12px;

font-size:10px;

}

/* Body */

.pcard__body{

padding:14px;

}

/* Smaller title */

.pcard__title{

font-size:18px;

line-height:1.35;

margin-bottom:8px;

display:-webkit-box;

-webkit-line-clamp:2;

-webkit-box-orient:vertical;

overflow:hidden;

}

/* Smaller meta */

.pcard__meta{

font-size:13px;

line-height:1.4;

display:-webkit-box;

-webkit-line-clamp:1;

-webkit-box-orient:vertical;

overflow:hidden;

margin-bottom:10px;

}

/* Smaller price */

.pcard__price{

font-size:24px;

margin-bottom:0;

}

.pcard__price del{

font-size:15px;

}

/* Button */

.pcard__btn{

height:42px;

font-size:14px;

padding:0 16px;

}

}

/* ===========================
   Explore Collections
=========================== */

.sl-explore{

padding:110px 20px;

text-align:center;

background:#FCFAF7;

border-radius:40px;

margin:80px auto;

}

.sl-explore__content{

max-width:760px;

margin:auto;

}

.sl-explore__eyebrow{

display:inline-block;

padding:10px 18px;

background:#F7F0E7;

border:1px solid #E8D8C5;

border-radius:999px;

font-size:13px;

font-weight:600;

letter-spacing:1px;

text-transform:uppercase;

color:#9B7A55;

margin-bottom:24px;

}

.sl-explore__title{

font-size:54px;

line-height:1.1;

font-weight:700;

color:#2C2A27;

margin-bottom:24px;

}

.sl-explore__text{

font-size:20px;

line-height:1.8;

color:#666;

max-width:680px;

margin:0 auto 45px;

}

.sl-explore__button{

display:inline-flex;

align-items:center;

gap:12px;

padding:20px 42px;

background:#2C2A27;

color:#fff;

text-decoration:none;

border-radius:999px;

font-size:18px;

font-weight:600;

transition:.3s;

}

.sl-explore__button:hover{

background:#B28A55;

transform:translateY(-3px);

color:#fff;

}

.sl-explore__button span{

transition:.3s;

}

.sl-explore__button:hover span{

transform:translateX(6px);

}

/* Mobile */

@media(max-width:768px){

.sl-explore{

padding:70px 22px;

border-radius:28px;

margin:50px 0;

}

.sl-explore__title{

font-size:34px;

}

.sl-explore__text{

font-size:17px;

line-height:1.7;

}

.sl-explore__button{

width:100%;

justify-content:center;

font-size:17px;

padding:18px 20px;

}

}


/* ============================================================
   STITCH LIBRARY — PREMIUM WOOCOMMERCE SHOP
   Scope: shop + product category/tag archives.
   Works with default WooCommerce markup (Blocksy-compatible).
   ============================================================ */

body.post-type-archive-product,
body.tax-product_cat,
body.tax-product_tag {
  --sl-primary: #B83B4D;
  --sl-primary-dark: #9C2F3F;
  --sl-secondary: #1F2937;
  --sl-bg: #FFFDF9;
  --sl-surface: #FFFFFF;
  --sl-accent: #D4A373;
  --sl-border: #ECE8E1;
  --sl-muted: #6B7280;

  --sl-serif: "Fraunces", Georgia, serif;
  --sl-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --sl-radius: 20px;
  --sl-radius-sm: 12px;
  --sl-shadow: 0 18px 40px -22px rgba(31, 41, 55, 0.22);
  --sl-shadow-lg: 0 40px 70px -30px rgba(31, 41, 55, 0.30);
  --sl-ease: cubic-bezier(0.22, 1, 0.36, 1);

  background: var(--sl-bg);
}

/* Give the archive breathing room & a warm canvas */
body.post-type-archive-product .site-content,
body.tax-product_cat .site-content,
body.tax-product_tag .site-content {
  background: var(--sl-bg);
}

/* ---------- SHOP HEADER (see PHP snippet for markup) ---------- */
.sl-shop-header {
  max-width: 760px;
  margin: 0 auto clamp(2rem, 4vw, 3.25rem);
  padding-top: clamp(1.5rem, 4vw, 3rem);
  text-align: center;
}
.sl-shop-header__eyebrow {
  display: inline-block;
  font-family: var(--sl-sans);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--sl-primary);
  margin-bottom: 0.85rem;
}
.sl-shop-header__title,
.woocommerce-products-header__title.page-title {
  font-family: var(--sl-serif) !important;
  font-weight: 600;
  font-size: clamp(2.2rem, 5vw, 3.4rem) !important;
  line-height: 1.06;
  letter-spacing: -0.02em;
  color: var(--sl-secondary);
  margin: 0 0 0.9rem;
}
.sl-shop-header__desc {
  font-family: var(--sl-sans);
  font-size: 1.08rem;
  line-height: 1.6;
  color: var(--sl-muted);
  margin: 0;
}

/* ---------- TOOLBAR: result count + sorting ---------- */
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count {
  font-family: var(--sl-sans);
  font-size: 0.9rem;
  color: var(--sl-muted);
  letter-spacing: 0.01em;
  margin: 0;
  padding: 0.65rem 0;
  float: none;
}

/* Turn the top strip into a clean flex toolbar */
.woocommerce .before-shop-loop,
.woocommerce ul.products ~ .woocommerce-ordering { }

.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering {
  float: none;
  margin: 0;
}

/* Align count (left) and ordering (right) on one line */
body.post-type-archive-product .woocommerce-notices-wrapper + .woocommerce-result-count,
.woocommerce-result-count { display: inline-block; }

.woocommerce-result-count,
.woocommerce-ordering {
  vertical-align: middle;
}
@media (min-width: 768px) {
  .woocommerce-result-count { float: left; }
  .woocommerce-ordering { float: right; }
}

/* Custom sort dropdown */
.woocommerce .woocommerce-ordering select.orderby,
.woocommerce-page .woocommerce-ordering select.orderby {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font-family: var(--sl-sans);
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--sl-secondary);
  background-color: var(--sl-surface);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231F2937' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  border: 1px solid var(--sl-border);
  border-radius: 999px;
  padding: 0.7rem 2.75rem 0.7rem 1.25rem;
  cursor: pointer;
  transition: border-color 0.3s var(--sl-ease), box-shadow 0.3s var(--sl-ease);
}
.woocommerce .woocommerce-ordering select.orderby:hover {
  border-color: var(--sl-accent);
}
.woocommerce .woocommerce-ordering select.orderby:focus-visible {
  outline: none;
  border-color: var(--sl-accent);
  box-shadow: 0 0 0 3px rgba(212, 163, 115, 0.35);
}

/* ---------- PRODUCT GRID ---------- */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
  margin: 2.5rem 0 0 !important;
  padding: 0;
  list-style: none;
  clear: both;
}
/* neutralize WooCommerce's float/width math */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ---------- PRODUCT CARD ---------- */
.woocommerce ul.products li.product {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--sl-surface);
  border: 1px solid var(--sl-border);
  border-radius: var(--sl-radius);
  overflow: hidden;
  transition: transform 0.5s var(--sl-ease), box-shadow 0.5s var(--sl-ease),
    border-color 0.5s var(--sl-ease);
}
.woocommerce ul.products li.product:hover {
  transform: translateY(-6px);
  box-shadow: var(--sl-shadow-lg);
  border-color: transparent;
}

/* Media frame (wrapper added via PHP: .sl-media) */
.woocommerce ul.products li.product .sl-media {
  position: relative;
  display: block;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: linear-gradient(135deg, #f4ede2, #efe4d4);
}
.woocommerce ul.products li.product .sl-media img,
.woocommerce ul.products li.product img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  margin: 0 !important;
  border-radius: 0;
  transition: transform 0.7s var(--sl-ease);
}
.woocommerce ul.products li.product:hover .sl-media img {
  transform: scale(1.05);
}

/* Category badge (added via PHP: .sl-cat) */
.woocommerce ul.products li.product .sl-cat {
  position: absolute;
  top: 0.9rem;
  left: 0.9rem;
  z-index: 3;
  font-family: var(--sl-sans);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sl-secondary);
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(6px);
  padding: 0.4rem 0.8rem;
  border-radius: 999px;
  box-shadow: 0 4px 12px -6px rgba(31, 41, 55, 0.25);
}

/* ---------- LUXURY SALE BADGE ---------- */
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
  position: absolute;
  top: 0.9rem;
  right: 0.9rem;
  left: auto;
  z-index: 3;
  min-height: 0;
  min-width: 0;
  margin: 0;
  padding: 0.4rem 0.85rem;
  font-family: var(--sl-sans);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  line-height: 1;
  color: var(--sl-secondary);
  background: #fff;
  border: 1px solid var(--sl-accent);
  border-radius: 999px;
  box-shadow: 0 4px 12px -6px rgba(31, 41, 55, 0.25);
}

/* ---------- CARD BODY ---------- */
.woocommerce ul.products li.product > a:not(.button) {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--sl-serif);
  font-size: 1.18rem;
  font-weight: 600;
  line-height: 1.25;
  color: var(--sl-secondary);
  padding: 1.25rem 1.35rem 0.35rem;
  margin: 0;
  transition: color 0.3s var(--sl-ease);
}
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title {
  color: var(--sl-primary);
}

/* Star rating */
.woocommerce ul.products li.product .star-rating {
  margin: 0.15rem 1.35rem 0.4rem;
  font-size: 0.85rem;
  color: var(--sl-accent);
}

/* Price hierarchy */
.woocommerce ul.products li.product .price {
  padding: 0 1.35rem;
  margin: 0 0 1.1rem;
  font-family: var(--sl-sans);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--sl-secondary);
}
.woocommerce ul.products li.product .price del {
  color: var(--sl-muted);
  font-weight: 500;
  font-size: 0.95rem;
  opacity: 0.8;
  margin-right: 0.4rem;
}
.woocommerce ul.products li.product .price ins {
  text-decoration: none;
  color: var(--sl-primary);
}

/* ---------- CTA BUTTON ---------- */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.add_to_cart_button,
.woocommerce ul.products li.product a.added_to_cart {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin: auto 1.35rem 1.35rem;
  padding: 0.95rem 1.4rem;
  font-family: var(--sl-sans);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  color: #fff;
  background: var(--sl-primary);
  border: 0;
  border-radius: 999px;
  box-shadow: 0 12px 26px -14px rgba(184, 59, 77, 0.6);
  cursor: pointer;
  transition: background 0.3s var(--sl-ease), transform 0.3s var(--sl-ease),
    box-shadow 0.3s var(--sl-ease), opacity 0.4s var(--sl-ease);
}
.woocommerce ul.products li.product .button:hover {
  background: var(--sl-primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 18px 32px -14px rgba(184, 59, 77, 0.7);
}
.woocommerce ul.products li.product .added_to_cart {
  background: var(--sl-secondary);
}
.woocommerce ul.products li.product .button:focus-visible {
  outline: 3px solid var(--sl-accent);
  outline-offset: 3px;
}
/* loading state dots */
.woocommerce ul.products li.product .button.loading {
  opacity: 0.85;
}

/* DESKTOP: reveal CTA on hover (progressive disclosure) */
@media (hover: hover) and (min-width: 768px) {
  .woocommerce ul.products li.product .button {
    opacity: 0;
    transform: translateY(8px);
  }
  .woocommerce ul.products li.product:hover .button,
  .woocommerce ul.products li.product:focus-within .button {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ---------- PAGINATION ---------- */
.woocommerce nav.woocommerce-pagination,
.woocommerce-page nav.woocommerce-pagination {
  margin: 3.5rem 0 1rem;
  text-align: center;
}
.woocommerce nav.woocommerce-pagination ul {
  display: inline-flex;
  gap: 0.5rem;
  border: 0;
  padding: 0;
}
.woocommerce nav.woocommerce-pagination ul li {
  border: 0;
  margin: 0;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 48px;
  height: 48px;
  padding: 0 0.9rem;
  font-family: var(--sl-sans);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--sl-secondary);
  background: var(--sl-surface);
  border: 1px solid var(--sl-border);
  border-radius: 999px;
  transition: all 0.3s var(--sl-ease);
}
.woocommerce nav.woocommerce-pagination ul li a:hover {
  border-color: var(--sl-accent);
  transform: translateY(-2px);
  box-shadow: var(--sl-shadow);
}
.woocommerce nav.woocommerce-pagination ul li span.current {
  color: #fff;
  background: var(--sl-primary);
  border-color: var(--sl-primary);
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1024px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.9rem;
  }
  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 0.98rem;
    padding: 0.9rem 0.9rem 0.25rem;
  }
  .woocommerce ul.products li.product .price {
    font-size: 1.05rem;
    padding: 0 0.9rem;
    margin-bottom: 0.85rem;
  }
  .woocommerce ul.products li.product .button {
    margin: auto 0.9rem 0.9rem;
    padding: 0.85rem 1rem;
    font-size: 0.9rem;
    opacity: 1;            /* always visible on mobile */
    transform: none;
  }
  .woocommerce ul.products li.product .sl-cat { font-size: 0.6rem; padding: 0.3rem 0.6rem; }
}
@media (max-width: 400px) {
  .woocommerce ul.products { grid-template-columns: 1fr; }
}

/* ---------- ACCESSIBILITY / MOTION ---------- */
.woocommerce ul.products li.product a:focus-visible {
  outline: 3px solid var(--sl-accent);
  outline-offset: 3px;
  border-radius: var(--sl-radius-sm);
}
@media (prefers-reduced-motion: reduce) {
  .woocommerce ul.products li.product,
  .woocommerce ul.products li.product .sl-media img,
  .woocommerce ul.products li.product .button {
    transition: none !important;
  }
  .woocommerce ul.products li.product .button { opacity: 1 !important; transform: none !important; }
}


/* ============================================================
   STITCH LIBRARY — Simple Product Page (.sl-pdp)
   Styles for the provided markup. Scoped under .sl-pdp.
   Add to Blocksy global stylesheet (Customize > Additional CSS).
   ============================================================ */

.sl-pdp {
  --sl-primary: #B83B4D;
  --sl-primary-dark: #9C2F3F;
  --sl-ink: #1F2937;
  --sl-cream: #FFFDF9;
  --sl-cream-alt: #FAF4EA;
  --sl-accent: #D4A373;
  --sl-white: #FFFFFF;
  --sl-border: #ECE4D6;
  --sl-muted: #6E6A62;

  --sl-serif: "Fraunces", Georgia, serif;
  --sl-sans: "Inter", system-ui, -apple-system, sans-serif;

  --sl-radius: 20px;
  --sl-radius-lg: 28px;
  --sl-shadow: 0 26px 60px -32px rgba(31, 41, 55, 0.28);
  --sl-shadow-sm: 0 6px 20px -12px rgba(31, 41, 55, 0.18);
  --sl-ease: cubic-bezier(0.22, 1, 0.36, 1);

  font-family: var(--sl-sans);
  color: var(--sl-ink);
  background: var(--sl-cream);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

.sl-pdp * { box-sizing: border-box; }
.sl-pdp img { display: block; max-width: 100%; height: auto; }
.sl-pdp h2, .sl-pdp h3 { font-family: var(--sl-serif); font-weight: 600; line-height: 1.12; letter-spacing: -0.015em; margin: 0; color: var(--sl-ink); }
.sl-pdp p { margin: 0; }
.sl-pdp ul, .sl-pdp ol { margin: 0; padding: 0; list-style: none; }

/* ---------- Layout ---------- */
.sl-section { padding-block: clamp(3.5rem, 7vw, 6.5rem); }
.sl-section--alt { background: var(--sl-cream-alt); }

.sl-container {
  width: 100%;
  max-width: 1160px;
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}
.sl-container--narrow { max-width: 780px; }

.sl-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2.25rem, 5vw, 4.5rem);
  align-items: center;
}
.sl-row--reverse .sl-media { order: 2; }

/* ---------- Media ---------- */
.sl-media {
  margin: 0;
  border-radius: var(--sl-radius-lg);
  overflow: hidden;
  box-shadow: var(--sl-shadow);
  background: var(--sl-cream-alt);
}
.sl-image {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform 0.8s var(--sl-ease);
}
.sl-media:hover .sl-image { transform: scale(1.04); }

/* ---------- Content typography ---------- */
.sl-content { max-width: 38rem; }
.sl-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--sl-primary);
  margin: 0 0 1rem;
}
.sl-eyebrow::before { content: ""; width: 24px; height: 1px; background: var(--sl-accent); }
.sl-eyebrow--light { color: var(--sl-accent); }

.sl-title { font-size: clamp(1.8rem, 3.6vw, 2.6rem); margin-bottom: 1rem; }
.sl-text { font-size: 1.06rem; color: var(--sl-muted); margin-bottom: 1.5rem; }

/* ---------- Check list ---------- */
.sl-list { display: grid; gap: 0.75rem; }
.sl-list__item {
  position: relative;
  padding-left: 2rem;
  font-size: 1.02rem;
}
.sl-list__item::before {
  content: "";
  position: absolute;
  left: 0; top: 0.15rem;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: rgba(184, 59, 77, 0.1) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23B83B4D' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6L9 17l-5-5'/></svg>") center / 12px no-repeat;
}

/* ---------- Category chips ---------- */
.sl-chips { display: flex; flex-wrap: wrap; gap: 0.65rem; }
.sl-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.92rem;
  font-weight: 500;
  background: var(--sl-white);
  border: 1px solid var(--sl-border);
  border-radius: 999px;
  padding: 0.6rem 1.1rem;
  transition: border-color 0.3s var(--sl-ease), transform 0.3s var(--sl-ease);
}
.sl-chip::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--sl-accent); }
.sl-chip:hover { border-color: var(--sl-accent); transform: translateY(-2px); }

/* ---------- Feature boxes ---------- */
.sl-features {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-top: 0.5rem;
}
.sl-feature {
  background: var(--sl-white);
  border: 1px solid var(--sl-border);
  border-radius: var(--sl-radius);
  padding: 1.4rem 1.35rem;
  transition: transform 0.4s var(--sl-ease), box-shadow 0.4s var(--sl-ease);
}
.sl-feature:hover { transform: translateY(-4px); box-shadow: var(--sl-shadow); }
.sl-feature__title { font-size: 1.1rem; margin-bottom: 0.3rem; }
.sl-feature__text { font-size: 0.94rem; color: var(--sl-muted); }

/* ---------- Stats (inline pills) ---------- */
.sl-stat {
  display: inline-block;
  margin: 0.75rem 0.75rem 0 0;
  padding: 0.9rem 1.4rem;
  text-align: center;
  background: var(--sl-white);
  border: 1px solid var(--sl-border);
  border-radius: 14px;
  box-shadow: var(--sl-shadow-sm);
}
.sl-stat b {
  display: block;
  font-family: var(--sl-serif);
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1;
  color: var(--sl-primary);
}
.sl-stat span {
  display: block;
  margin-top: 0.3rem;
  font-family: var(--sl-sans);
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--sl-muted);
}

/* ---------- Steps ---------- */
.sl-steps { display: grid; gap: 1.1rem; }
.sl-step { display: flex; align-items: flex-start; gap: 1rem; }
.sl-step__num {
  flex: none;
  width: 46px; height: 46px;
  border-radius: 50%;
  display: grid; place-items: center;
  font-family: var(--sl-serif);
  font-size: 1.2rem; font-weight: 600;
  color: var(--sl-primary);
  background: var(--sl-cream-alt);
  border: 1px solid var(--sl-border);
}
.sl-step__title { font-size: 1.12rem; margin-bottom: 0.2rem; }
.sl-step__text { font-size: 0.96rem; color: var(--sl-muted); }

/* ---------- FAQ ---------- */
.sl-head { text-align: center; margin-bottom: 2.5rem; }
.sl-head .sl-eyebrow { justify-content: center; }

.sl-faq { display: grid; gap: 0.85rem; }
.sl-faq__item {
  background: var(--sl-white);
  border: 1px solid var(--sl-border);
  border-radius: 14px;
  overflow: hidden;
  transition: box-shadow 0.3s var(--sl-ease), border-color 0.3s var(--sl-ease);
}
.sl-faq__item[open] { box-shadow: var(--sl-shadow-sm); border-color: #ddd0bb; }
.sl-faq__summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.2rem 1.4rem;
  font-size: 1.04rem;
  font-weight: 600;
  color: var(--sl-ink);
}
.sl-faq__summary::-webkit-details-marker { display: none; }
.sl-faq__summary::after {
  content: "+";
  font-family: var(--sl-sans);
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1;
  color: var(--sl-primary);
  transition: transform 0.3s var(--sl-ease);
}
.sl-faq__item[open] .sl-faq__summary::after { transform: rotate(45deg); }
.sl-faq__summary:focus-visible { outline: 3px solid var(--sl-accent); outline-offset: -3px; border-radius: 14px; }
.sl-faq__answer {
  padding: 0 1.4rem 1.3rem;
  color: var(--sl-muted);
  font-size: 0.98rem;
  line-height: 1.7;
}

/* ---------- Buttons ---------- */
.sl-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-family: var(--sl-sans);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1;
  padding: 1.1rem 2.2rem;
  border-radius: 999px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: transform 0.35s var(--sl-ease), background 0.3s var(--sl-ease), box-shadow 0.35s var(--sl-ease);
}
.sl-btn--primary {
  background: var(--sl-primary);
  color: #fff;
  box-shadow: 0 16px 34px -14px rgba(184, 59, 77, 0.6);
}
.sl-btn--primary:hover { background: var(--sl-primary-dark); transform: translateY(-2px); box-shadow: 0 22px 42px -14px rgba(184, 59, 77, 0.72); }
.sl-btn:focus-visible { outline: 3px solid var(--sl-accent); outline-offset: 3px; }

/* ---------- Final CTA ---------- */
.sl-section--cta { padding-block: clamp(3.5rem, 7vw, 6rem); }
.sl-cta {
  position: relative;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  align-items: center;
  gap: clamp(2rem, 4vw, 3.5rem);
  overflow: hidden;
  border-radius: var(--sl-radius-lg);
  background:
    radial-gradient(circle at 85% 15%, rgba(212,163,115,0.28), transparent 48%),
    linear-gradient(150deg, #241a1d, var(--sl-ink) 62%);
  color: #fff;
  padding: clamp(2rem, 4vw, 3rem);
}
.sl-cta__media { border-radius: var(--sl-radius); overflow: hidden; box-shadow: var(--sl-shadow); }
.sl-cta__image { width: 100%; aspect-ratio: 14 / 9; object-fit: cover; }
.sl-cta__title { color: #fff; font-size: clamp(1.9rem, 4vw, 2.8rem); margin-bottom: 0.9rem; }
.sl-cta__text { color: rgba(255,255,255,0.85); font-size: 1.08rem; margin-bottom: 1.75rem; max-width: 46ch; }
.sl-cta__note { margin-top: 1rem; font-size: 0.88rem; color: rgba(255,255,255,0.65); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 900px) {
  .sl-row { grid-template-columns: 1fr; gap: 2.25rem; }
  .sl-row--reverse .sl-media { order: 0; }
  .sl-media { max-width: 34rem; margin-inline: auto; width: 100%; }
  .sl-content { max-width: none; }
  .sl-cta { grid-template-columns: 1fr; }
  .sl-cta__media { order: -1; }
}
@media (max-width: 540px) {
  .sl-features { grid-template-columns: 1fr; }
  .sl-btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .sl-pdp *, .sl-pdp *::before, .sl-pdp *::after { transition: none !important; }
  .sl-media:hover .sl-image { transform: none; }
}


/* ============================================================
   STITCH LIBRARY â€” REUSABLE COMPONENT LIBRARY
   Pair with tokens.css. Every rule consumes brand variables.
   Load both into the global stylesheet; use the classes in any
   Elementor HTML widget. Nothing here overrides Blocksy/Woo.
   ============================================================ */

/* ---- Base ---- */
.sl-scope, .sl-page, .sl-pdp, .sl-home {
  font-family: var(--sl-sans);
  color: var(--sl-ink);
  background: var(--sl-bg);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
.sl-scope *, .sl-page *, .sl-pdp *, .sl-home * { box-sizing: border-box; }
.sl-scope h1, .sl-scope h2, .sl-scope h3, .sl-scope h4,
.sl-page h1, .sl-page h2, .sl-page h3, .sl-page h4,
.sl-pdp h2, .sl-pdp h3, .sl-home h1, .sl-home h2, .sl-home h3 {
  font-family: var(--sl-serif);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.015em;
  color: var(--sl-ink);
  margin: 0;
}
.sl-scope img, .sl-page img, .sl-pdp img, .sl-home img { display: block; max-width: 100%; height: auto; }

/* ---- Layout primitives ---- */
.sl-container {
  width: 100%;
  max-width: var(--sl-maxw);
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}
.sl-container--narrow { max-width: var(--sl-readw); }
.sl-section { padding-block: clamp(3.5rem, 7vw, 6.5rem); }
.sl-section--alt { background: var(--sl-cream-alt); }
.sl-section--sand { background: var(--sl-sand); }

/* Alternating two-column split */
.sl-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2.25rem, 5vw, 4.5rem);
  align-items: center;
}
.sl-row--reverse .sl-media { order: 2; }

/* ---- Eyebrow / kicker ---- */
.sl-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-family: var(--sl-sans);
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--sl-primary);
  margin: 0 0 1rem;
}
.sl-eyebrow::before { content: ""; width: 24px; height: 1px; background: var(--sl-accent); }
.sl-eyebrow--center { justify-content: center; }
.sl-eyebrow--light { color: var(--sl-accent); }

/* ---- Section title / lede ---- */
.sl-title { font-size: clamp(1.9rem, 4vw, 2.9rem); margin-bottom: 1rem; }
.sl-accent-text { color: var(--sl-primary); font-style: italic; font-weight: 500; }
.sl-text, .sl-lede { font-size: 1.06rem; color: var(--sl-muted); }

/* ---- Media frame (rounded, soft shadow, gentle zoom) ---- */
.sl-media {
  margin: 0;
  border-radius: var(--sl-r-lg);
  overflow: hidden;
  box-shadow: var(--sl-shadow);
  background: var(--sl-cream-alt);
}
.sl-image { width: 100%; object-fit: cover; transition: transform 0.8s var(--sl-ease); }
.sl-media:hover .sl-image { transform: scale(1.04); }

/* ---- Buttons ---- */
.sl-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  font-family: var(--sl-sans);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1;
  padding: 1.1rem 2.2rem;
  border-radius: var(--sl-r-pill);
  border: 1px solid transparent;
  cursor: pointer;
  transition: transform 0.35s var(--sl-ease), background 0.3s var(--sl-ease),
    box-shadow 0.35s var(--sl-ease), border-color 0.3s var(--sl-ease), color 0.3s var(--sl-ease);
}
.sl-btn:focus-visible { outline: 3px solid var(--sl-accent); outline-offset: 3px; }
.sl-btn--primary {
  background: var(--sl-primary);
  color: var(--sl-white);
  box-shadow: 0 16px 34px -14px rgba(184, 59, 77, 0.6);
}
.sl-btn--primary:hover {
  background: var(--sl-primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 22px 42px -14px rgba(184, 59, 77, 0.72);
}
.sl-btn--ghost { background: var(--sl-white); color: var(--sl-ink); border-color: var(--sl-border); }
.sl-btn--ghost:hover { border-color: var(--sl-accent); transform: translateY(-2px); box-shadow: var(--sl-shadow-sm); }
.sl-btn--lg { padding: 1.3rem 2.6rem; font-size: 1.05rem; }

/* ---- Trust badges ---- */
.sl-badges { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.sl-badge {
  display: inline-flex; align-items: center; gap: 0.45rem;
  font-size: 0.82rem; font-weight: 600; color: var(--sl-ink);
  background: var(--sl-white); border: 1px solid var(--sl-border);
  border-radius: var(--sl-r-pill); padding: 0.5rem 0.95rem;
}
.sl-badge svg { width: 15px; height: 15px; color: var(--sl-accent-dark); }

/* ---- Check list ---- */
.sl-list { display: grid; gap: 0.75rem; }
.sl-list__item { position: relative; padding-left: 2rem; font-size: 1.02rem; }
.sl-list__item::before {
  content: "";
  position: absolute; left: 0; top: 0.15rem;
  width: 22px; height: 22px; border-radius: 50%;
  background: rgba(184, 59, 77, 0.1)
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23B83B4D' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6L9 17l-5-5'/></svg>")
    center / 12px no-repeat;
}

/* ---- Category chips ---- */
.sl-chips { display: flex; flex-wrap: wrap; gap: 0.65rem; }
.sl-chip {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: 0.92rem; font-weight: 500; color: var(--sl-ink);
  background: var(--sl-white); border: 1px solid var(--sl-border);
  border-radius: var(--sl-r-pill); padding: 0.6rem 1.1rem;
  transition: border-color 0.3s var(--sl-ease), transform 0.3s var(--sl-ease);
}
.sl-chip::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--sl-accent); }
.sl-chip:hover { border-color: var(--sl-accent); transform: translateY(-2px); }

/* ---- Feature boxes (max 6 per grid) ---- */
.sl-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
.sl-feature {
  background: var(--sl-white); border: 1px solid var(--sl-border);
  border-radius: var(--sl-r); padding: 1.5rem 1.4rem;
  transition: transform 0.4s var(--sl-ease), box-shadow 0.4s var(--sl-ease);
}
.sl-feature:hover { transform: translateY(-4px); box-shadow: var(--sl-shadow); }
.sl-feature__ic {
  width: 46px; height: 46px; border-radius: 13px; margin-bottom: 1rem;
  display: grid; place-items: center; color: var(--sl-primary);
  background: linear-gradient(140deg, rgba(184,59,77,0.12), rgba(212,163,115,0.18));
}
.sl-feature__ic svg { width: 23px; height: 23px; }
.sl-feature__title { font-size: 1.12rem; margin-bottom: 0.3rem; }
.sl-feature__text { font-size: 0.94rem; color: var(--sl-muted); }

/* ---- Steps ---- */
.sl-steps { display: grid; gap: 1.1rem; }
.sl-step { display: flex; align-items: flex-start; gap: 1rem; }
.sl-step__num {
  flex: none; width: 46px; height: 46px; border-radius: 50%;
  display: grid; place-items: center;
  font-family: var(--sl-serif); font-size: 1.2rem; font-weight: 600; color: var(--sl-primary);
  background: var(--sl-cream-alt); border: 1px solid var(--sl-border);
}
.sl-step__title { font-size: 1.12rem; margin-bottom: 0.2rem; }
.sl-step__text { font-size: 0.96rem; color: var(--sl-muted); }

/* ---- FAQ (native <details>, no JS) ---- */
.sl-faq { display: grid; gap: 0.85rem; }
.sl-faq__item {
  background: var(--sl-white); border: 1px solid var(--sl-border);
  border-radius: var(--sl-r-sm); overflow: hidden;
  transition: box-shadow 0.3s var(--sl-ease), border-color 0.3s var(--sl-ease);
}
.sl-faq__item[open] { box-shadow: var(--sl-shadow-sm); border-color: #ddd0bb; }
.sl-faq__summary {
  list-style: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1.2rem 1.4rem; font-size: 1.04rem; font-weight: 600; color: var(--sl-ink);
}
.sl-faq__summary::-webkit-details-marker { display: none; }
.sl-faq__summary::after {
  content: "+"; font-size: 1.5rem; font-weight: 400; line-height: 1; color: var(--sl-primary);
  transition: transform 0.3s var(--sl-ease);
}
.sl-faq__item[open] .sl-faq__summary::after { transform: rotate(45deg); }
.sl-faq__summary:focus-visible { outline: 3px solid var(--sl-accent); outline-offset: -3px; border-radius: var(--sl-r-sm); }
.sl-faq__answer { padding: 0 1.4rem 1.3rem; color: var(--sl-muted); font-size: 0.98rem; line-height: 1.7; }

/* ---- Final CTA (dark luxury panel) ---- */
.sl-final__box {
  position: relative; overflow: hidden; text-align: center;
  border-radius: var(--sl-r-lg); color: var(--sl-white);
  padding: clamp(3.5rem, 8vw, 6rem) clamp(1.5rem, 5vw, 4.5rem);
  background:
    radial-gradient(circle at 82% 18%, rgba(212,163,115,0.3), transparent 45%),
    linear-gradient(150deg, #241a1d, var(--sl-ink) 62%);
}
.sl-final__box .sl-eyebrow { color: var(--sl-accent); }
.sl-final__box h2 { color: var(--sl-white); font-size: clamp(2.1rem, 5vw, 3.5rem); max-width: 18ch; margin: 0 auto 1.1rem; }
.sl-final__box p { color: rgba(255,255,255,0.85); max-width: 52ch; margin: 0 auto 2.25rem; font-size: 1.1rem; }

/* ============================================================
   RESPONSIVE â€” mobile is first-class, never a shrunk desktop
   ============================================================ */
@media (max-width: 900px) {
  .sl-row { grid-template-columns: 1fr; gap: 2.25rem; }
  .sl-row--reverse .sl-media { order: 0; }
  .sl-media { max-width: 34rem; margin-inline: auto; width: 100%; }
  .sl-features { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
  .sl-features { grid-template-columns: 1fr; }
  .sl-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .sl-scope *, .sl-page *, .sl-pdp *, .sl-home * { transition: none !important; }
  .sl-media:hover .sl-image { transform: none; }
}

/* ═══════════════════════════════════════════════════════════════
   STITCH LIBRARY — PRODUCT DESCRIPTION DESIGN SYSTEM  ·  v3.3
   ───────────────────────────────────────────────────────────────
   Mobile refinement build. Desktop identity preserved.

   WHAT CHANGED (and why)

   • Rhythm. --pd-band floor 4rem → 2.75rem. The curve above 640px
     is unchanged, so desktop spacing is identical; phones lose
     ~40px of dead space at every section seam.

   • Fluid flow. Component top margins were fixed rem (--pd-5/6),
     so a 64px gap sat above the cards on a 375px screen. They now
     use --pd-flow / --pd-flow-lg and scale with the viewport.

   • Type curves. Display, h2, lede, FAQ questions and statistic
     numerals were reshaped — lower origin, steeper slope — so they
     read smaller on phones while reaching the same desktop caps at
     almost exactly the same viewport widths as before.

   • Statistics. Numerals no longer crowd their column at 320px;
     grid cells stretch so the hairline dividers align.

   • Overflow. Chips capped at 100% width (a single long chip could
     previously push the page sideways); headings break long words;
     overflow-x is clipped at the root as a final guard.

   • Responsive convention. Every query is now min-width. The two
     max-width rules that existed only to undo a default are gone.

   • Touch. All hover states sit behind (hover:hover) so a tap no
     longer leaves a card stuck in its hover state, and iOS text
     inflation is disabled.

   Load ONCE, globally. Contains no product-specific styling.
   ═══════════════════════════════════════════════════════════════ */

/* ═══ ROOT · TOKENS ═════════════════════════════════════════════ */
.sl-pd{
  /* Palette */
  --pd-primary:#b23a4c;
  --pd-primary-soft:#f6e9ea;
  --pd-ink:#1c1917;
  --pd-body:#3f3a36;
  --pd-muted:#7c736c;
  --pd-faint:#a89f97;
  --pd-bg:#fffdf9;
  --pd-cream:#faf5ec;
  --pd-sand:#f3ebdd;
  --pd-white:#ffffff;
  --pd-line:#e7ded0;
  --pd-line-soft:#f0e9dd;
  --pd-accent:#c9975f;
  --pd-dark:#211b19;

  /* Type — curves reshaped for phones, caps unchanged */
  --pd-display:ui-serif,"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  --pd-sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --pd-fs-display:clamp(2.15rem,.9rem + 5.2vw,4.25rem);
  --pd-fs-h2:clamp(1.72rem,1rem + 3.1vw,3rem);
  --pd-fs-h3:clamp(1.12rem,1.04rem + .32vw,1.32rem);
  --pd-fs-lede:clamp(1.05rem,.98rem + .5vw,1.34rem);
  --pd-fs-body:1.0625rem;
  --pd-fs-small:.9688rem;
  --pd-fs-micro:.7rem;

  /* Space — static steps */
  --pd-1:.5rem; --pd-2:1rem;  --pd-3:1.5rem; --pd-4:2rem;
  --pd-5:3rem;  --pd-6:4rem;  --pd-7:6rem;

  /* Space — fluid flow between a heading and the block beneath it */
  --pd-flow:clamp(1.75rem,5vw,3rem);
  --pd-flow-lg:clamp(2.25rem,6vw,4rem);

  --pd-gutter:clamp(1.25rem,4vw,2.5rem);
  --pd-band:clamp(2.75rem,10vw,8.5rem);

  /* Form */
  --pd-r-sm:12px; --pd-r:18px; --pd-r-lg:26px; --pd-r-pill:999px;
  --pd-sh-panel:0 30px 60px -30px rgba(28,25,23,.45),
                0 8px 20px -12px rgba(28,25,23,.18);
  --pd-sh-card:0 2px 6px -4px rgba(28,25,23,.10),
               0 18px 40px -28px rgba(28,25,23,.22);
  --pd-ease:cubic-bezier(.22,1,.36,1);
  --pd-fast:.25s; --pd-slow:.45s;
  --pd-read:38rem;

  /* Base */
  display:block;
  width:100%;
  max-width:100%;
  margin:0;
  padding:0;
  overflow-x:clip;
  font-family:var(--pd-sans);
  font-size:var(--pd-fs-body);
  font-weight:400;
  font-style:normal;
  line-height:1.65;
  text-align:left;
  color:var(--pd-body);
  background-color:var(--pd-bg);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  text-rendering:optimizeLegibility;
  font-kerning:normal;
  font-variant-ligatures:common-ligatures contextual;
  font-variant-numeric:oldstyle-nums proportional-nums;
  overflow-wrap:break-word;
}
@media (min-width:600px){
  .sl-pd{line-height:1.72;}
}
.sl-pd,
.sl-pd *,
.sl-pd *::before,
.sl-pd *::after{box-sizing:border-box;}
.sl-pd ::selection{background-color:var(--pd-primary);color:#fff;}

/* ═══ THEME ARMOR ═══════════════════════════════════════════════
   Neutralise whatever the active theme applies to bare elements
   inside our scope. Component rules below out-specify these.     */
.sl-pd h2,
.sl-pd h3,
.sl-pd p,
.sl-pd ul,
.sl-pd ol,
.sl-pd li,
.sl-pd dl,
.sl-pd dt,
.sl-pd dd,
.sl-pd figure,
.sl-pd blockquote,
.sl-pd hr{
  margin:0;
  padding:0;
  border:0;
  background:none;
  font-family:inherit;
  color:inherit;
  text-transform:none;
  letter-spacing:normal;
  float:none;
  max-width:none;
}
.sl-pd ul,
.sl-pd ol{list-style:none;}
.sl-pd li{list-style:none;}
.sl-pd li::marker{content:"";}
.sl-pd h2,
.sl-pd h3{font-weight:600;line-height:1.2;text-align:inherit;}
.sl-pd p{line-height:inherit;}
.sl-pd strong,
.sl-pd b{font-weight:600;}
.sl-pd em,
.sl-pd i{font-style:italic;}
.sl-pd small{font-size:inherit;}
.sl-pd img{display:block;max-width:100%;height:auto;border:0;}
.sl-pd svg{display:block;flex:none;max-width:100%;}
.sl-pd details{margin:0;padding:0;border:0;background:none;}
.sl-pd summary{
  margin:0;
  padding:0;
  background:none;
  font-family:inherit;
  list-style:none;
  -webkit-tap-highlight-color:transparent;
}
.sl-pd summary::-webkit-details-marker{display:none;}
.sl-pd summary::marker{content:"";}
.sl-pd a{color:var(--pd-primary);text-decoration:underline;text-underline-offset:3px;}

/* ═══ BANDS · tonal rhythm ══════════════════════════════════════ */
.sl-pd .sl-pd__band{
  display:block;
  width:100%;
  padding-top:var(--pd-band);
  padding-bottom:var(--pd-band);
  padding-left:var(--pd-gutter);
  padding-right:var(--pd-gutter);
  background-color:transparent;
}
.sl-pd .sl-pd__band--cream{background-color:var(--pd-cream);}
.sl-pd .sl-pd__band--sand{background-color:var(--pd-sand);}
.sl-pd .sl-pd__inner{
  display:block;
  width:100%;
  max-width:1120px;
  margin-left:auto;
  margin-right:auto;
}
.sl-pd .sl-pd__inner--narrow{max-width:720px;}
.sl-pd .sl-pd__center{text-align:center;}
.sl-pd .sl-pd__center .sl-pd__lede{margin-left:auto;margin-right:auto;}

/* ═══ SECTION SIGNATURE · numbered eyebrow ══════════════════════
   The hairline rule is desktop-only: on a narrow screen it either
   crowds the label or drops to a second line, so it is withheld
   rather than allowed to wrap.                                   */
.sl-pd .sl-pd__eyebrow{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:.6rem;
  margin:0 0 var(--pd-2) 0;
  font-family:var(--pd-sans);
  font-size:var(--pd-fs-micro);
  font-weight:600;
  line-height:1.5;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--pd-muted);
}
.sl-pd .sl-pd__eyebrow b{
  flex:none;
  font-family:var(--pd-display);
  font-size:.82rem;
  font-weight:600;
  letter-spacing:.04em;
  font-variant-numeric:lining-nums tabular-nums;
  color:var(--pd-primary);
}
.sl-pd .sl-pd__eyebrow i{display:none;}
.sl-pd .sl-pd__center .sl-pd__eyebrow{justify-content:center;}
@media (min-width:600px){
  .sl-pd .sl-pd__eyebrow{
    gap:.85rem;
    margin-bottom:var(--pd-3);
    letter-spacing:.26em;
  }
  .sl-pd .sl-pd__eyebrow i{
    display:block;
    flex:1 1 auto;
    min-width:0;
    max-width:120px;
    height:1px;
    align-self:center;
    font-style:normal;
    background-image:linear-gradient(90deg,var(--pd-line),rgba(231,222,208,0) 70%);
  }
  .sl-pd .sl-pd__center .sl-pd__eyebrow i{display:none;}
}

/* ═══ HEADINGS ══════════════════════════════════════════════════ */
.sl-pd .sl-pd__display,
.sl-pd .sl-pd__h2{
  display:block;
  margin:0;
  font-family:var(--pd-display);
  font-weight:600;
  color:var(--pd-ink);
  text-transform:none;
  text-wrap:balance;
  overflow-wrap:break-word;
}
.sl-pd .sl-pd__display{
  font-size:var(--pd-fs-display);
  line-height:1.07;
  letter-spacing:-.026em;
}
.sl-pd .sl-pd__h2{
  font-size:var(--pd-fs-h2);
  line-height:1.11;
  letter-spacing:-.022em;
}
.sl-pd .sl-pd__display em,
.sl-pd .sl-pd__h2 em{
  font-style:italic;
  font-weight:500;
  color:var(--pd-primary);
}
.sl-pd .sl-pd__lede{
  display:block;
  margin:var(--pd-2) 0 0 0;
  max-width:var(--pd-read);
  font-size:var(--pd-fs-lede);
  line-height:1.58;
  letter-spacing:-.005em;
  color:var(--pd-muted);
  text-wrap:pretty;
}
@media (min-width:768px){
  /* Tighter optical tracking is only appropriate at large sizes */
  .sl-pd .sl-pd__display{line-height:1.03;letter-spacing:-.032em;}
  .sl-pd .sl-pd__h2{line-height:1.07;letter-spacing:-.026em;}
  .sl-pd .sl-pd__lede{margin-top:var(--pd-3);line-height:1.62;}
}

/* ═══ EDITORIAL SPLIT ═══════════════════════════════════════════ */
.sl-pd .sl-pd__split{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(1.9rem,5vw,3rem);
  align-items:start;
}
.sl-pd .sl-pd__split > *{min-width:0;}
@media (min-width:920px){
  .sl-pd .sl-pd__split{
    grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
    gap:clamp(3rem,7vw,6rem);
  }
  .sl-pd .sl-pd__split-aside{position:sticky;top:2rem;}
}

/* ═══ CHECKLIST ═════════════════════════════════════════════════ */
.sl-pd .sl-pd__checklist{
  display:block;
  margin:0;
  padding:0;
  list-style:none;
}
.sl-pd .sl-pd__checklist li{
  display:flex;
  align-items:flex-start;
  gap:.8rem;
  margin:0;
  padding:.9rem 0;
  border-bottom:1px solid var(--pd-line-soft);
  font-size:var(--pd-fs-body);
  line-height:1.5;
  color:var(--pd-body);
  list-style:none;
}
.sl-pd .sl-pd__checklist li:first-child{padding-top:0;}
.sl-pd .sl-pd__checklist li:last-child{border-bottom:0;}
.sl-pd .sl-pd__checklist li::before{
  content:"";
  display:block;
  flex:0 0 16px;
  width:16px;
  height:16px;
  margin-top:.3rem;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b23a4c' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6L9 17l-5-5'/></svg>");
  background-repeat:no-repeat;
  background-position:center center;
  background-size:contain;
}
.sl-pd .sl-pd__checklist strong{color:var(--pd-ink);font-weight:600;}
@media (min-width:600px){
  .sl-pd .sl-pd__checklist li{gap:1rem;padding:1.05rem 0;line-height:1.55;}
  .sl-pd .sl-pd__checklist li::before{flex-basis:17px;width:17px;height:17px;margin-top:.32rem;}
}

/* ═══ STATISTICS · the page's single filled panel ═══════════════ */
.sl-pd .sl-pd__stats{
  position:relative;
  display:block;
  overflow:hidden;
  margin-top:clamp(2.25rem,6vw,5rem);
  padding:clamp(2.1rem,6vw,4.5rem) clamp(1.15rem,5vw,3.5rem);
  border-radius:var(--pd-r-lg);
  color:#fff;
  background-color:var(--pd-dark);
  background-image:
    radial-gradient(130% 150% at 88% 6%,rgba(201,151,95,.22),rgba(201,151,95,0) 58%),
    linear-gradient(158deg,#2c2421 0%,#211b19 62%);
  box-shadow:var(--pd-sh-panel);
}
.sl-pd .sl-pd__stats-caption{
  display:block;
  margin:0 0 clamp(1.6rem,4vw,2.75rem) 0;
  text-align:center;
  font-family:var(--pd-sans);
  font-size:var(--pd-fs-micro);
  font-weight:600;
  line-height:1.4;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(255,255,255,.45);
}
.sl-pd .sl-pd__stats-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(1.8rem,5vw,2.75rem) 0;
  align-items:stretch;
}
.sl-pd .sl-pd__stat{
  position:relative;
  min-width:0;
  text-align:center;
  padding-left:clamp(.3rem,2vw,1.5rem);
  padding-right:clamp(.3rem,2vw,1.5rem);
}
.sl-pd .sl-pd__stat::before{display:none;}
.sl-pd .sl-pd__stat:nth-child(even)::before{
  content:"";
  display:block;
  position:absolute;
  top:6%;
  bottom:6%;
  left:0;
  width:1px;
  background-image:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.16) 25%,rgba(255,255,255,.16) 75%,rgba(255,255,255,0));
}
.sl-pd .sl-pd__stat-num{
  display:block;
  font-family:var(--pd-display);
  font-size:clamp(1.9rem,.9rem + 4.4vw,3.6rem);
  font-weight:600;
  line-height:.96;
  letter-spacing:-.036em;
  font-variant-numeric:lining-nums tabular-nums;
  color:#fff;
}
.sl-pd .sl-pd__stat-num span{color:var(--pd-accent);}
.sl-pd .sl-pd__stat-label{
  display:block;
  margin-top:.7rem;
  font-family:var(--pd-sans);
  font-size:.7rem;
  font-weight:500;
  line-height:1.4;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:rgba(255,255,255,.58);
}
@media (min-width:600px){
  .sl-pd .sl-pd__stats-caption{letter-spacing:.26em;}
  .sl-pd .sl-pd__stat-num{line-height:.94;letter-spacing:-.042em;}
  .sl-pd .sl-pd__stat-label{margin-top:.95rem;font-size:.75rem;letter-spacing:.16em;}
}
@media (min-width:860px){
  .sl-pd .sl-pd__stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
  .sl-pd .sl-pd__stat + .sl-pd__stat::before{display:block;}
}

/* ═══ FEATURE CARDS ═════════════════════════════════════════════ */
.sl-pd .sl-pd__cards{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:.85rem;
  margin:var(--pd-flow-lg) 0 0 0;
  padding:0;
  list-style:none;
}
.sl-pd .sl-pd__card{
  position:relative;
  display:block;
  min-width:0;
  margin:0;
  padding:clamp(1.5rem,4.5vw,2.5rem);
  overflow:hidden;
  list-style:none;
  background-color:var(--pd-white);
  border:1px solid var(--pd-line);
  border-radius:var(--pd-r);
  transition:transform var(--pd-slow) var(--pd-ease),
             box-shadow var(--pd-slow) var(--pd-ease),
             border-color var(--pd-slow) var(--pd-ease);
}
.sl-pd .sl-pd__card::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:2px;
  background-image:linear-gradient(90deg,var(--pd-primary),var(--pd-accent));
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform var(--pd-slow) var(--pd-ease);
}
.sl-pd .sl-pd__card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1.05rem;
}
.sl-pd .sl-pd__card-icon{
  display:flex;
  flex:none;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  color:var(--pd-primary);
}
.sl-pd .sl-pd__card-icon svg{
  display:block;
  flex:none;
  width:22px;
  height:22px;
}
.sl-pd .sl-pd__card-index{
  flex:none;
  font-family:var(--pd-display);
  font-size:.9rem;
  font-weight:600;
  line-height:1;
  letter-spacing:.06em;
  font-variant-numeric:lining-nums tabular-nums;
  color:var(--pd-faint);
}
.sl-pd .sl-pd__card-title{
  display:block;
  margin:0 0 .5rem 0;
  font-family:var(--pd-display);
  font-size:var(--pd-fs-h3);
  font-weight:600;
  line-height:1.24;
  letter-spacing:-.018em;
  color:var(--pd-ink);
  overflow-wrap:break-word;
}
.sl-pd .sl-pd__card-text{
  display:block;
  margin:0;
  max-width:36ch;
  font-size:var(--pd-fs-small);
  line-height:1.62;
  color:var(--pd-muted);
}
@media (min-width:600px){
  .sl-pd .sl-pd__card-top{margin-bottom:1.35rem;}
  .sl-pd .sl-pd__card-text{line-height:1.68;}
}
@media (min-width:760px){
  .sl-pd .sl-pd__cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:var(--pd-3);
  }
}

/* ═══ MINI CARDS · audience blocks ══════════════════════════════ */
.sl-pd .sl-pd__minis{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:.7rem;
  margin:var(--pd-flow) 0 0 0;
  padding:0;
  list-style:none;
}
.sl-pd .sl-pd__mini{
  display:block;
  min-width:0;
  margin:0;
  padding:1.15rem 1.3rem;
  text-align:left;
  list-style:none;
  background-color:rgba(255,255,255,.62);
  border-radius:var(--pd-r-sm);
  transition:background-color var(--pd-fast) var(--pd-ease),
             transform var(--pd-fast) var(--pd-ease);
}
.sl-pd .sl-pd__mini-title{
  display:block;
  margin-bottom:.25rem;
  font-family:var(--pd-display);
  font-size:1.05rem;
  font-weight:600;
  line-height:1.3;
  letter-spacing:-.015em;
  color:var(--pd-ink);
  overflow-wrap:break-word;
}
.sl-pd .sl-pd__mini-text{
  display:block;
  margin:0;
  font-size:var(--pd-fs-small);
  line-height:1.55;
  color:var(--pd-muted);
}
@media (min-width:620px){
  .sl-pd .sl-pd__minis{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;}
  .sl-pd .sl-pd__mini{padding:1.4rem 1.5rem;}
  .sl-pd .sl-pd__mini-title{margin-bottom:.3rem;font-size:1.08rem;}
  .sl-pd .sl-pd__mini-text{line-height:1.6;}
}
@media (min-width:960px){
  .sl-pd .sl-pd__minis{grid-template-columns:repeat(3,minmax(0,1fr));}
}

/* ═══ SPECIFICATIONS · hairline rows, no table chrome ═══════════ */
.sl-pd .sl-pd__specs{
  display:block;
  margin:var(--pd-flow-lg) 0 0 0;
  padding:0;
  border-top:1px solid var(--pd-line);
}
.sl-pd .sl-pd__spec{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:.3rem;
  margin:0;
  padding:1.15rem 0;
  border-bottom:1px solid var(--pd-line-soft);
}
.sl-pd .sl-pd__spec:last-child{border-bottom-color:var(--pd-line);}
.sl-pd .sl-pd__spec dt{
  min-width:0;
  margin:0;
  font-family:var(--pd-sans);
  font-size:var(--pd-fs-micro);
  font-weight:600;
  line-height:1.5;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--pd-faint);
  transition:color var(--pd-fast) var(--pd-ease);
}
.sl-pd .sl-pd__spec dd{
  min-width:0;
  margin:0;
  padding:0;
  font-family:var(--pd-sans);
  font-size:1.05rem;
  font-weight:400;
  line-height:1.45;
  letter-spacing:-.011em;
  color:var(--pd-ink);
  overflow-wrap:break-word;
}
.sl-pd .sl-pd__spec dd small{
  display:block;
  margin-top:.3rem;
  font-size:var(--pd-fs-small);
  line-height:1.55;
  letter-spacing:0;
  color:var(--pd-muted);
}
@media (min-width:600px){
  .sl-pd .sl-pd__spec{padding:1.4rem 0;gap:.4rem;}
  .sl-pd .sl-pd__spec dt{letter-spacing:.18em;}
  .sl-pd .sl-pd__spec dd small{margin-top:.35rem;line-height:1.6;}
}
@media (min-width:720px){
  .sl-pd .sl-pd__spec{
    grid-template-columns:minmax(0,13rem) minmax(0,1fr);
    gap:clamp(2rem,5vw,4rem);
    align-items:baseline;
    padding:1.85rem .25rem;
  }
  .sl-pd .sl-pd__spec dd{font-size:1.1rem;}
}

/* ═══ CHIPS ═════════════════════════════════════════════════════ */
.sl-pd .sl-pd__chips{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  margin:var(--pd-flow) 0 0 0;
  padding:0;
  list-style:none;
}
.sl-pd .sl-pd__chip{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  max-width:100%;
  margin:0;
  padding:.6rem 1.05rem;
  font-family:var(--pd-sans);
  font-size:.9375rem;
  font-weight:500;
  line-height:1.35;
  color:var(--pd-ink);
  list-style:none;
  background-color:var(--pd-white);
  border:1px solid var(--pd-line);
  border-radius:var(--pd-r-pill);
  transition:border-color var(--pd-fast) var(--pd-ease),
             transform var(--pd-fast) var(--pd-ease),
             box-shadow var(--pd-fast) var(--pd-ease);
}
.sl-pd .sl-pd__chip::before{
  content:"";
  display:block;
  flex:0 0 6px;
  width:6px;
  height:6px;
  border-radius:50%;
  background-color:var(--pd-accent);
  transition:transform var(--pd-fast) var(--pd-ease);
}
@media (min-width:600px){
  .sl-pd .sl-pd__chips{gap:.65rem;}
  .sl-pd .sl-pd__chip{
    padding:.7rem 1.25rem;
    gap:.6rem;
    font-size:var(--pd-fs-small);
    line-height:1.3;
  }
}

/* ═══ FAQ · native <details>, no experimental CSS ═══════════════ */
.sl-pd .sl-pd__faq{
  display:block;
  margin:var(--pd-flow) 0 0 0;
  padding:0;
  border-top:1px solid var(--pd-line);
}
.sl-pd .sl-pd__faq-item{
  display:block;
  margin:0;
  padding:0;
  border-bottom:1px solid var(--pd-line-soft);
}
.sl-pd .sl-pd__faq-item > summary{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1.1rem;
  margin:0;
  padding:1.3rem 0;
  cursor:pointer;
  list-style:none;
  font-family:var(--pd-display);
  font-size:clamp(1.06rem,1rem + .4vw,1.28rem);
  font-weight:600;
  line-height:1.34;
  letter-spacing:-.016em;
  color:var(--pd-ink);
  background:none;
  overflow-wrap:break-word;
  transition:color var(--pd-fast) var(--pd-ease);
}
.sl-pd .sl-pd__faq-item > summary::-webkit-details-marker{display:none;}
.sl-pd .sl-pd__faq-item > summary::marker{content:"";}
.sl-pd .sl-pd__faq-item > summary:focus-visible{
  outline:2px solid var(--pd-accent);
  outline-offset:4px;
  border-radius:4px;
}
.sl-pd .sl-pd__faq-sign{
  position:relative;
  display:block;
  flex:0 0 16px;
  width:16px;
  height:16px;
  margin-top:.42rem;
}
.sl-pd .sl-pd__faq-sign::before,
.sl-pd .sl-pd__faq-sign::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:13px;
  height:1.25px;
  margin-top:-.625px;
  margin-left:-6.5px;
  border-radius:2px;
  background-color:var(--pd-primary);
  transition:transform var(--pd-slow) var(--pd-ease),
             opacity var(--pd-fast) var(--pd-ease);
}
.sl-pd .sl-pd__faq-sign::after{transform:rotate(90deg);}
.sl-pd .sl-pd__faq-item[open] .sl-pd__faq-sign::after{
  opacity:0;
  transform:rotate(0deg);
}
.sl-pd .sl-pd__faq-item p{
  display:block;
  margin:0;
  padding:0 0 1.45rem 0;
  max-width:var(--pd-read);
  font-family:var(--pd-sans);
  font-size:var(--pd-fs-body);
  line-height:1.7;
  color:var(--pd-muted);
}
@media (min-width:600px){
  .sl-pd .sl-pd__faq-item > summary{
    gap:2rem;
    padding:1.75rem 0;
    line-height:1.38;
    letter-spacing:-.018em;
  }
  .sl-pd .sl-pd__faq-sign{flex-basis:18px;width:18px;height:18px;margin-top:.5rem;}
  .sl-pd .sl-pd__faq-sign::before,
  .sl-pd .sl-pd__faq-sign::after{width:14px;margin-left:-7px;}
  .sl-pd .sl-pd__faq-item p{padding:0 4rem 1.9rem 0;line-height:1.78;}
}

/* ═══ INFORMATION BOX ═══════════════════════════════════════════
   Flexbox with a fixed icon basis. The icon cannot compress and
   the text column always takes the remaining width.              */
.sl-pd .sl-pd__note{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1.1rem;
  margin:0;
  padding:clamp(1.5rem,4.5vw,3rem);
  background-color:var(--pd-white);
  border:1px solid var(--pd-line);
  border-radius:var(--pd-r-lg);
}
.sl-pd .sl-pd__note > div{
  flex:1 1 auto;
  min-width:0;
  width:100%;
}
.sl-pd .sl-pd__note-icon{
  display:flex;
  flex:0 0 46px;
  align-items:center;
  justify-content:center;
  width:46px;
  min-width:46px;
  height:46px;
  padding:0;
  border-radius:var(--pd-r-sm);
  color:var(--pd-primary);
  background-color:var(--pd-primary-soft);
  border:1px solid rgba(178,58,76,.10);
}
.sl-pd .sl-pd__note-icon svg{
  display:block;
  flex:none;
  width:22px;
  height:22px;
}
.sl-pd .sl-pd__note-title{
  display:block;
  margin:0 0 .5rem 0;
  font-family:var(--pd-display);
  font-size:clamp(1.16rem,1.06rem + .5vw,1.5rem);
  font-weight:600;
  line-height:1.28;
  letter-spacing:-.018em;
  color:var(--pd-ink);
  overflow-wrap:break-word;
}
.sl-pd .sl-pd__note p{
  display:block;
  margin:0;
  max-width:56ch;
  font-family:var(--pd-sans);
  font-size:var(--pd-fs-body);
  line-height:1.68;
  color:var(--pd-muted);
}
.sl-pd .sl-pd__note p + p{margin-top:.7rem;}
@media (min-width:640px){
  .sl-pd .sl-pd__note{
    flex-direction:row;
    align-items:flex-start;
    gap:1.85rem;
  }
  .sl-pd .sl-pd__note > div{width:auto;}
  .sl-pd .sl-pd__note-icon{
    flex-basis:52px;
    width:52px;
    min-width:52px;
    height:52px;
  }
  .sl-pd .sl-pd__note-icon svg{width:24px;height:24px;}
  .sl-pd .sl-pd__note-title{margin-bottom:.6rem;letter-spacing:-.02em;}
  .sl-pd .sl-pd__note p{line-height:1.75;}
  .sl-pd .sl-pd__note p + p{margin-top:.8rem;}
}

/* ═══ TABLES · defensive, matches the spec-sheet language ═══════
   Not used by the current template. Present so any table pasted
   into a description inherits the system instead of the theme.   */
.sl-pd table{
  width:100%;
  margin:var(--pd-4) 0 0 0;
  border-collapse:collapse;
  border-spacing:0;
  font-family:var(--pd-sans);
  font-size:1rem;
  background:none;
}
.sl-pd table th,
.sl-pd table td{
  padding:.9rem 1rem;
  text-align:left;
  vertical-align:top;
  border:0;
  border-bottom:1px solid var(--pd-line-soft);
}
.sl-pd table th{
  font-size:var(--pd-fs-micro);
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--pd-faint);
  background:none;
}
.sl-pd table td{color:var(--pd-ink);}
.sl-pd table tr:last-child th,
.sl-pd table tr:last-child td{border-bottom-color:var(--pd-line);}
@media (min-width:600px){
  .sl-pd table th,
  .sl-pd table td{padding:1.1rem 1.25rem;}
}

/* ═══ HOVER STATES ══════════════════════════════════════════════
   Gated to真 pointer devices so a tap on a phone cannot leave a
   card, chip or row stuck in its hover appearance.               */
@media (hover:hover) and (pointer:fine){
  .sl-pd a:hover{color:var(--pd-ink);}
  .sl-pd .sl-pd__card:hover{
    transform:translateY(-4px);
    box-shadow:var(--pd-sh-card);
    border-color:transparent;
  }
  .sl-pd .sl-pd__card:hover::before{transform:scaleX(1);}
  .sl-pd .sl-pd__mini:hover{
    background-color:var(--pd-white);
    transform:translateY(-2px);
  }
  .sl-pd .sl-pd__chip:hover{
    border-color:var(--pd-accent);
    transform:translateY(-2px);
    box-shadow:var(--pd-sh-card);
  }
  .sl-pd .sl-pd__chip:hover::before{transform:scale(1.5);}
  .sl-pd .sl-pd__faq-item > summary:hover{color:var(--pd-primary);}
  .sl-pd .sl-pd__spec:hover dt{color:var(--pd-primary);}
}

/* ═══ ACCESSIBILITY · MOTION · PRINT ════════════════════════════ */
.sl-pd :focus-visible{
  outline:2px solid var(--pd-accent);
  outline-offset:3px;
  border-radius:3px;
}
@media (prefers-reduced-motion:reduce){
  .sl-pd *,
  .sl-pd *::before,
  .sl-pd *::after{
    transition-duration:.01ms !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
  }
  .sl-pd .sl-pd__card:hover,
  .sl-pd .sl-pd__chip:hover,
  .sl-pd .sl-pd__mini:hover{transform:none;}
}
@media print{
  .sl-pd{background-color:#fff;overflow-x:visible;}
  .sl-pd .sl-pd__band{padding-top:2rem;padding-bottom:2rem;}
  .sl-pd .sl-pd__band--cream,
  .sl-pd .sl-pd__band--sand{background-color:#fff;}
  .sl-pd .sl-pd__stats{
    background-color:#fff;
    background-image:none;
    color:#000;
    border:1px solid #ddd;
    box-shadow:none;
  }
  .sl-pd .sl-pd__stat-num,
  .sl-pd .sl-pd__stat-label,
  .sl-pd .sl-pd__stats-caption{color:#000;}
  .sl-pd .sl-pd__card,
  .sl-pd .sl-pd__chip,
  .sl-pd .sl-pd__note{box-shadow:none;}
  .sl-pd .sl-pd__split-aside{position:static;}
}

/* ============================================================================
   STITCH LIBRARY — CUSTOMER REVIEWS (.sl-custom-reviews)
   ----------------------------------------------------------------------------
   Fully self-contained and scoped. Root is a plain block container; only
   .sl-reviews__list is a grid (1 col mobile, 2 col from 768px up). Does not
   modify or depend on .sl-pd, .sl-short, .sl-pdp, WooCommerce, Blocksy, or
   Elementor. Every selector begins with .sl-custom-reviews.
   ============================================================================ */

.sl-custom-reviews {
    --slr-ink: var(--pd-ink, #202C3D);
    --slr-body: var(--pd-body, #3f3a36);
    --slr-muted: var(--pd-muted, #6f6a63);
    --slr-primary: var(--pd-primary, #B83A4B);
    --slr-primary-dark: var(--pd-primary-dark, #9C2F3F);
    --slr-primary-soft: var(--pd-primary-soft, rgba(184, 58, 75, 0.08));
    --slr-gold: #C99A4A;
    --slr-cream: #F8F4EE;
    --slr-white: #FFFFFF;
    --slr-line: var(--pd-line, #E8E1D7);
    --slr-line-soft: var(--pd-line-soft, #F0EAE0);

    --slr-sans: var(--pd-sans, "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);
    --slr-display: var(--pd-display, "Fraunces", Georgia, "Times New Roman", serif);

    --slr-r-md: 16px;
    --slr-r-lg: 22px;
    --slr-r-pill: 999px;

    --slr-shadow-sm: 0 2px 10px -5px rgba(32, 44, 61, 0.10);
    --slr-shadow-md: 0 18px 40px -24px rgba(32, 44, 61, 0.18);

    --slr-ease: cubic-bezier(0.22, 1, 0.36, 1);
    --slr-fast: 0.2s;
    --slr-slow: 0.4s;

    --slr-pad: clamp(1.25rem, 4vw, 2.5rem);

    display: block;
    width: 100%;
    max-width: 100%;
    margin-top: clamp(3rem, 7vw, 5rem);
    padding-block: clamp(2.5rem, 6vw, 4rem) clamp(2.25rem, 5vw, 3.5rem);
    overflow-x: clip;
    font-family: var(--slr-sans);
    color: var(--slr-body);
    background-color: var(--slr-cream);
    border-top: 1px solid var(--slr-line);
    -webkit-font-smoothing: antialiased;
}

.sl-custom-reviews,
.sl-custom-reviews *,
.sl-custom-reviews *::before,
.sl-custom-reviews *::after {
    box-sizing: border-box;
}

.sl-custom-reviews .sl-reviews__header,
.sl-custom-reviews .sl-reviews__disclaimer,
.sl-custom-reviews .sl-reviews__summary,
.sl-custom-reviews .sl-reviews__list,
.sl-custom-reviews .sl-reviews__footer {
    width: 100%;
    max-width: 1080px;
    margin-inline: auto;
    padding-inline: var(--slr-pad);
}

/* ── HEADER ──────────────────────────────────────────────────────────────── */

.sl-custom-reviews .sl-reviews__header {
    text-align: center;
    margin-bottom: clamp(1.75rem, 4vw, 2.5rem);
}

.sl-custom-reviews .sl-reviews__eyebrow {
    margin: 0 0 0.75rem;
    color: var(--slr-primary);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.sl-custom-reviews .sl-reviews__heading {
    margin: 0 0 0.85rem;
    color: var(--slr-ink);
    font-family: var(--slr-display);
    font-weight: 600;
    font-size: clamp(1.7rem, 1.15rem + 2.3vw, 2.5rem);
    line-height: 1.14;
    letter-spacing: -0.02em;
}

.sl-custom-reviews .sl-reviews__intro {
    max-width: 42rem;
    margin: 0 auto 1.5rem;
    color: var(--slr-muted);
    font-size: 1rem;
    line-height: 1.65;
}

.sl-custom-reviews .sl-reviews__overall {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
}

.sl-custom-reviews .sl-reviews__score {
    display: inline-flex;
    align-items: baseline;
    gap: 0.3rem;
    line-height: 1;
}

.sl-custom-reviews .sl-reviews__score-value {
    font-family: var(--slr-display);
    font-weight: 600;
    font-size: clamp(2.1rem, 1.7rem + 1.6vw, 2.75rem);
    color: var(--slr-ink);
    letter-spacing: -0.02em;
}

.sl-custom-reviews .sl-reviews__score-total {
    font-size: 0.95rem;
    color: var(--slr-muted);
}

.sl-custom-reviews .sl-reviews__stars {
    color: var(--slr-gold);
    font-size: 1.1rem;
    letter-spacing: 0.2em;
    line-height: 1;
}

.sl-custom-reviews .sl-reviews__count {
    color: var(--slr-muted);
    font-size: 0.88rem;
}

/* ── DISCLAIMER ──────────────────────────────────────────────────────────── */

.sl-custom-reviews .sl-reviews__disclaimer {
    max-width: 640px;
    margin-bottom: clamp(2rem, 5vw, 3rem);
    padding-block: 0.8rem;
    color: var(--slr-muted);
    font-size: 0.78rem;
    line-height: 1.5;
    text-align: center;
    border-top: 1px solid var(--slr-line-soft);
    border-bottom: 1px solid var(--slr-line-soft);
}

/* ── RATING BREAKDOWN ────────────────────────────────────────────────────── */

.sl-custom-reviews .sl-reviews__summary {
    margin-bottom: clamp(2.5rem, 6vw, 3.75rem);
}

.sl-custom-reviews .sl-reviews__summary-heading {
    margin: 0 0 1.1rem;
    color: var(--slr-ink);
    font-family: var(--slr-display);
    font-weight: 600;
    font-size: 1.15rem;
    letter-spacing: -0.01em;
    text-align: center;
}

.sl-custom-reviews .sl-reviews__bars {
    display: grid;
    gap: 0.6rem;
    max-width: 420px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
}

.sl-custom-reviews .sl-reviews__bar-row {
    display: grid;
    grid-template-columns: 4rem 1fr 1.5rem;
    align-items: center;
    gap: 0.75rem;
}

.sl-custom-reviews .sl-reviews__bar-label {
    color: var(--slr-body);
    font-size: 0.82rem;
    font-weight: 500;
}

.sl-custom-reviews .sl-reviews__bar-track {
    position: relative;
    display: block;
    height: 8px;
    background-color: var(--slr-white);
    border: 1px solid var(--slr-line);
    border-radius: var(--slr-r-pill);
    overflow: hidden;
}

.sl-custom-reviews .sl-reviews__bar-fill {
    display: block;
    height: 100%;
    background-color: var(--slr-primary);
    border-radius: var(--slr-r-pill);
}

.sl-custom-reviews .sl-reviews__bar-fill--0   { width: 0%; }
.sl-custom-reviews .sl-reviews__bar-fill--10  { width: 10%; }
.sl-custom-reviews .sl-reviews__bar-fill--20  { width: 20%; }
.sl-custom-reviews .sl-reviews__bar-fill--30  { width: 30%; }
.sl-custom-reviews .sl-reviews__bar-fill--40  { width: 40%; }
.sl-custom-reviews .sl-reviews__bar-fill--50  { width: 50%; }
.sl-custom-reviews .sl-reviews__bar-fill--60  { width: 60%; }
.sl-custom-reviews .sl-reviews__bar-fill--70  { width: 70%; }
.sl-custom-reviews .sl-reviews__bar-fill--80  { width: 80%; }
.sl-custom-reviews .sl-reviews__bar-fill--90  { width: 90%; }
.sl-custom-reviews .sl-reviews__bar-fill--100 { width: 100%; }

.sl-custom-reviews .sl-reviews__bar-value {
    color: var(--slr-muted);
    font-size: 0.8rem;
    text-align: right;
}

/* ── REVIEW LIST / CARDS ─────────────────────────────────────────────────── */

.sl-custom-reviews .sl-reviews__list {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: clamp(1rem, 3vw, 1.75rem);
    margin: 0;
    padding-block: 0;
    list-style: none;
}

.sl-custom-reviews .sl-reviews__item {
    display: block;
    min-width: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.sl-custom-reviews .sl-reviews__entry {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background-color: var(--slr-white);
    border: 1px solid var(--slr-line);
    border-radius: var(--slr-r-lg);
    box-shadow: var(--slr-shadow-sm);
    transition: transform var(--slr-slow) var(--slr-ease),
                box-shadow var(--slr-slow) var(--slr-ease),
                border-color var(--slr-slow) var(--slr-ease);
}

.sl-custom-reviews .sl-reviews__figure {
    margin: 0;
    background-color: var(--slr-line-soft);
}

.sl-custom-reviews .sl-reviews__image {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center;
    transition: transform var(--slr-slow) var(--slr-ease);
}

.sl-custom-reviews .sl-reviews__body {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    padding: clamp(1.35rem, 3vw, 1.75rem);
}

.sl-custom-reviews .sl-reviews__entry-head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.sl-custom-reviews .sl-reviews__avatar {
    display: grid;
    place-items: center;
    flex: none;
    width: 42px;
    height: 42px;
    color: var(--slr-primary);
    background-color: var(--slr-primary-soft);
    border-radius: 50%;
    font-family: var(--slr-display);
    font-size: 0.85rem;
    font-weight: 600;
}

.sl-custom-reviews .sl-reviews__identity {
    min-width: 0;
}

.sl-custom-reviews .sl-reviews__name {
    margin: 0;
    color: var(--slr-ink);
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.3;
}

.sl-custom-reviews .sl-reviews__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin: 0.15rem 0 0;
    color: var(--slr-muted);
    font-size: 0.78rem;
}

.sl-custom-reviews .sl-reviews__country {
    color: var(--slr-muted);
}

.sl-custom-reviews .sl-reviews__date {
    color: var(--slr-muted);
}

.sl-custom-reviews .sl-reviews__date::before {
    content: "\2022";
    margin: 0 0.4rem;
    color: var(--slr-line);
}

.sl-custom-reviews .sl-reviews__rating {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    margin: 0;
    color: var(--slr-gold);
    font-size: 0.95rem;
    letter-spacing: 0.14em;
    line-height: 1;
}

.sl-custom-reviews .sl-reviews__rating-text {
    color: var(--slr-muted);
    font-size: 0.76rem;
    letter-spacing: normal;
}

.sl-custom-reviews .sl-reviews__title {
    margin: 0;
    color: var(--slr-ink);
    font-family: var(--slr-display);
    font-weight: 600;
    font-size: 1.1rem;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.sl-custom-reviews .sl-reviews__text {
    margin: 0;
    color: var(--slr-body);
    font-size: 0.9375rem;
    line-height: 1.7;
    overflow-wrap: break-word;
}

/* ── FOOTER / CTA ────────────────────────────────────────────────────────── */

.sl-custom-reviews .sl-reviews__footer {
    margin-top: clamp(2.5rem, 6vw, 3.5rem);
    text-align: center;
}

.sl-custom-reviews .sl-reviews__write {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0.85rem 2.2rem;
    color: var(--slr-white);
    background-color: var(--slr-primary);
    border: 1px solid transparent;
    border-radius: var(--slr-r-pill);
    font-size: 0.95rem;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--slr-fast) var(--slr-ease),
                transform var(--slr-fast) var(--slr-ease),
                box-shadow var(--slr-fast) var(--slr-ease);
}

.sl-custom-reviews .sl-reviews__write:hover {
    background-color: var(--slr-primary-dark);
    transform: translateY(-2px);
    box-shadow: var(--slr-shadow-sm);
}

.sl-custom-reviews .sl-reviews__write:focus-visible {
    outline: 2px solid var(--slr-gold);
    outline-offset: 3px;
}

.sl-custom-reviews :focus-visible {
    outline: 2px solid var(--slr-gold);
    outline-offset: 2px;
    border-radius: 4px;
}

/* ── DESKTOP HOVER (fine pointers only) ──────────────────────────────────── */

@media (hover: hover) and (pointer: fine) {
    .sl-custom-reviews .sl-reviews__entry:hover {
        transform: translateY(-3px);
        box-shadow: var(--slr-shadow-md);
        border-color: var(--slr-primary-soft);
    }

    .sl-custom-reviews .sl-reviews__entry:hover .sl-reviews__image {
        transform: scale(1.04);
    }
}

/* ── RESPONSIVE — cards 2-up from tablet up; root stays a block ──────────── */

@media (min-width: 768px) {
    .sl-custom-reviews .sl-reviews__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: clamp(1.25rem, 2.4vw, 2rem);
    }

    .sl-custom-reviews .sl-reviews__bar-row {
        grid-template-columns: 4.5rem 1fr 1.5rem;
    }
}

/* ── REDUCED MOTION ──────────────────────────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
    .sl-custom-reviews .sl-reviews__entry,
    .sl-custom-reviews .sl-reviews__image,
    .sl-custom-reviews .sl-reviews__write {
        transition: none;
    }

    .sl-custom-reviews .sl-reviews__entry:hover,
    .sl-custom-reviews .sl-reviews__entry:hover .sl-reviews__image,
    .sl-custom-reviews .sl-reviews__write:hover {
        transform: none;
    }
}

/* ── PRINT ───────────────────────────────────────────────────────────────── */

@media print {
    .sl-custom-reviews {
        background-color: #fff;
        border-top-color: #ddd;
    }

    .sl-custom-reviews .sl-reviews__entry {
        box-shadow: none;
        border-color: #ddd;
    }

    .sl-custom-reviews .sl-reviews__footer {
        display: none;
    }
}

/* ============================================================================
   STITCH LIBRARY — REVIEWS · FIXES  (paste at the VERY END of the stylesheet)
   Overrides earlier review rules by source order — nothing to delete.
   ============================================================================ */

/* 1) Neutralise WordPress auto-formatting (wpautop) that broke the rating bars.
      The section contains no intentional <br> or empty <p>. */
.sl-custom-reviews br { display: none !important; }
.sl-custom-reviews p:empty { display: none; margin: 0; }
.sl-custom-reviews .sl-reviews__bar-row p,
.sl-custom-reviews .sl-reviews__meta p { display: contents; margin: 0; }

/* 2) Wider, centred containers — removes the empty gap on the right side */
.sl-custom-reviews .sl-reviews__header,
.sl-custom-reviews .sl-reviews__disclaimer,
.sl-custom-reviews .sl-reviews__summary,
.sl-custom-reviews .sl-reviews__list,
.sl-custom-reviews .sl-reviews__footer {
    max-width: 1340px;
    margin-left: auto;
    margin-right: auto;
}

/* 3) Review grid — auto-fills up to 5 per row on desktop, 2 on tablet, 1 on phone */
.sl-custom-reviews .sl-reviews__list {
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: clamp(1rem, 1.5vw, 1.6rem);
}

/* 4) Rating breakdown — rebuilt on flexbox so it can never collapse or wrap */
.sl-custom-reviews .sl-reviews__summary-heading {
    font-size: 1.35rem;
}
.sl-custom-reviews .sl-reviews__bars {
    max-width: 540px;
    gap: 0.85rem;
}
.sl-custom-reviews .sl-reviews__bar-row {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.sl-custom-reviews .sl-reviews__bar-label {
    flex: 0 0 4.75rem;
    font-size: 0.95rem;
    text-align: left;
}
.sl-custom-reviews .sl-reviews__bar-track {
    flex: 1 1 auto;
    min-width: 0;
    height: 10px;
}
.sl-custom-reviews .sl-reviews__bar-value {
    flex: 0 0 2rem;
    font-size: 0.9rem;
    text-align: right;
}

/* 5) Top section — a touch larger and airier */
.sl-custom-reviews .sl-reviews__intro { font-size: 1.05rem; }
.sl-custom-reviews .sl-reviews__stars { font-size: 1.25rem; }
.sl-custom-reviews .sl-reviews__count { font-size: 0.95rem; }

/* 6) Close the faint cream strip under each review image */
.sl-custom-reviews .sl-reviews__figure { line-height: 0; font-size: 0; }

/* ============================================================================
   STITCH LIBRARY — REVIEWS · MOBILE 2-UP + SEE-MORE  (append at the very end)
   ============================================================================ */

/* Desktop: cap at 4 per row so the first 4 fill one clean row */
@media (min-width: 768px) {
    .sl-custom-reviews .sl-reviews__list {
        grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    }
}

/* Show only the first 4 reviews; reveal the rest via a CSS-only toggle */
.sl-custom-reviews .sl-reviews__toggle {
    position: absolute;
    width: 1px; height: 1px;
    margin: -1px; padding: 0; border: 0;
    clip: rect(0 0 0 0); clip-path: inset(50%);
    overflow: hidden; white-space: nowrap;
}
.sl-custom-reviews .sl-reviews__item:nth-child(n + 5) { display: none; }
.sl-custom-reviews .sl-reviews__toggle:checked ~ .sl-reviews__list .sl-reviews__item {
    display: block;
}

/* See-more / see-fewer toggle button */
.sl-custom-reviews .sl-reviews__more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0.85rem 2.2rem;
    color: var(--slr-primary);
    background-color: transparent;
    border: 1px solid var(--slr-primary);
    border-radius: var(--slr-r-pill);
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color var(--slr-fast) var(--slr-ease),
                color var(--slr-fast) var(--slr-ease);
}
.sl-custom-reviews .sl-reviews__more:hover {
    background-color: var(--slr-primary);
    color: var(--slr-white);
}
.sl-custom-reviews .sl-reviews__toggle:focus-visible ~ .sl-reviews__footer .sl-reviews__more {
    outline: 2px solid var(--slr-gold);
    outline-offset: 3px;
}
.sl-custom-reviews .sl-reviews__more-close { display: none; }
.sl-custom-reviews .sl-reviews__toggle:checked ~ .sl-reviews__footer .sl-reviews__more-open { display: none; }
.sl-custom-reviews .sl-reviews__toggle:checked ~ .sl-reviews__footer .sl-reviews__more-close { display: inline; }

/* ── MOBILE: two reviews per row, edge-to-edge ───────────────────────────── */
@media (max-width: 767px) {
    .sl-custom-reviews .sl-reviews__header,
    .sl-custom-reviews .sl-reviews__disclaimer,
    .sl-custom-reviews .sl-reviews__summary,
    .sl-custom-reviews .sl-reviews__list,
    .sl-custom-reviews .sl-reviews__footer {
        padding-inline: 0.75rem;
    }
    .sl-custom-reviews .sl-reviews__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.7rem;
    }
    .sl-custom-reviews .sl-reviews__entry { border-radius: 16px; }
    .sl-custom-reviews .sl-reviews__body {
        padding: 0.9rem 0.85rem 1rem;
        gap: 0.5rem;
    }
    .sl-custom-reviews .sl-reviews__entry-head { gap: 0.55rem; }
    .sl-custom-reviews .sl-reviews__avatar { width: 34px; height: 34px; font-size: 0.72rem; }
    .sl-custom-reviews .sl-reviews__name { font-size: 0.85rem; }
    .sl-custom-reviews .sl-reviews__meta { font-size: 0.7rem; }
    .sl-custom-reviews .sl-reviews__rating { font-size: 0.85rem; }
    .sl-custom-reviews .sl-reviews__title { font-size: 0.95rem; line-height: 1.3; }
    .sl-custom-reviews .sl-reviews__text { font-size: 0.85rem; line-height: 1.55; }
}
/* See-more toggle — robust :has() version (works even if WordPress wraps the input) */
.sl-custom-reviews:has(.sl-reviews__toggle:checked) .sl-reviews__item:nth-child(n + 5) {
    display: block;
}
.sl-custom-reviews:has(.sl-reviews__toggle:checked) .sl-reviews__more-open { display: none; }
.sl-custom-reviews:has(.sl-reviews__toggle:checked) .sl-reviews__more-close { display: inline; }
/* Remove the white strip above/below the reviews (WordPress block spacing) */
.sl-custom-reviews { margin-top: 0; margin-bottom: 0; }
/* ==========================================================
   STITCH LIBRARY — SHORT PRODUCT DESCRIPTION
   ========================================================== */

.sl-short{
    margin:0 0 28px;
    color:#374151;
    font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
}

.sl-short-lead{
    margin:0 0 18px;
    font-size:16px;
    line-height:1.75;
    color:#374151;
}

.sl-short-lead strong{
    color:#B83B4D;
    font-weight:700;
}

.sl-short-features{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px 18px;
    margin:0;
    padding:20px;
    list-style:none;
    background:#FFF9F6;
    border:1px solid #F2E5DE;
    border-radius:16px;
}

.sl-short-features li{
    display:flex;
    align-items:center;
    gap:10px;
    font-size:15px;
    font-weight:500;
    color:#374151;
    line-height:1.5;
}

.sl-short-features li::before{
    content:"✓";
    width:22px;
    height:22px;
    border-radius:50%;
    background:#B83B4D;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:12px;
    font-weight:700;
    flex-shrink:0;
}

@media (max-width:767px){

.sl-short-lead{
    font-size:15px;
}

.sl-short-features{
    grid-template-columns:1fr;
    padding:18px;
}

}

/* ===========================
   STITCH LIBRARY MINI CART
=========================== */

/* Popup */
.ct-cart-content,
.woocommerce-mini-cart {
    background: #FCF8F1 !important;
    color: #2F2A26;
    border-radius: 18px;
    box-shadow: 0 20px 60px rgba(0,0,0,.12);
}

/* Product title */
.woocommerce-mini-cart__cart-list a {
    color: #2F2A26 !important;
    font-family: "Fraunces", serif;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.35;
    text-decoration: none;
}

.woocommerce-mini-cart__cart-list a:hover{
    color:#B33C5A !important;
}

/* Price */
.woocommerce-mini-cart .quantity{
    color:#7A746D;
    font-size:15px;
}

/* Divider */
.woocommerce-mini-cart li{
    border-bottom:1px solid #E9E1D6;
    padding-bottom:22px;
}

/* Subtotal */
.woocommerce-mini-cart__total{
    color:#2F2A26;
    font-weight:600;
    border-color:#E9E1D6;
}

/* Buttons */
.woocommerce-mini-cart__buttons .button{
    background:#B33C5A !important;
    color:#fff !important;
    border-radius:12px;
    padding:14px 26px;
    text-transform:none;
    font-weight:600;
    transition:.25s;
}

.woocommerce-mini-cart__buttons .button:hover{
    background:#9E2E4B !important;
    transform:translateY(-2px);
}

/* Remove icon */
.remove_from_cart_button{
    color:#8A837C !important;
}

.remove_from_cart_button:hover{
    color:#B33C5A !important;
}

/* Product image */
.woocommerce-mini-cart img{
    border-radius:12px;
}

/* Quantity text */
.woocommerce-mini-cart .quantity{
    font-family:Inter,sans-serif;
}

/* ===========================
   CART PAGE - BLOCKSY
=========================== */

body.woocommerce-cart{
    background:#FCF8F1;
}

/* Title */
body.woocommerce-cart h1.entry-title{
    font-family:Fraunces,serif;
    font-size:46px;
    font-weight:600;
    color:#2B2B2B;
    margin-bottom:40px;
}

/* Cart table */
body.woocommerce-cart table.shop_table{
    background:#fff;
    border:1px solid #ECE5DA !important;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 12px 35px rgba(0,0,0,.05);
}

/* Remove default borders */
body.woocommerce-cart table.shop_table td,
body.woocommerce-cart table.shop_table th{
    border-color:#EFE8DD !important;
}

/* Product image */
body.woocommerce-cart table.shop_table img{
    width:90px;
    border-radius:14px;
}

/* Product title */
body.woocommerce-cart td.product-name a{
    font-family:Fraunces,serif;
    font-size:22px;
    font-weight:600;
    color:#2B2B2B;
    text-decoration:none;
}

body.woocommerce-cart td.product-name a:hover{
    color:#B33C5A;
}

/* Price */
body.woocommerce-cart td.product-price,
body.woocommerce-cart td.product-subtotal{
    font-weight:600;
    color:#2B2B2B;
}

/* Quantity */
body.woocommerce-cart .quantity input.qty{
    height:48px;
    border-radius:12px;
    border:1px solid #DDD;
}

/* Coupon */
body.woocommerce-cart .coupon input{
    border-radius:12px;
}

body.woocommerce-cart .coupon button{
    border-radius:12px;
}

/* Totals box */
body.woocommerce-cart .cart_totals{
    background:#fff;
    padding:30px;
    border:1px solid #ECE5DA;
    border-radius:20px;
    box-shadow:0 12px 35px rgba(0,0,0,.05);
}

body.woocommerce-cart .cart_totals h2{
    font-family:Fraunces,serif;
    font-size:32px;
}

/* Checkout button */
body.woocommerce-cart .checkout-button{
    background:#B33C5A !important;
    color:#fff !important;
    border-radius:14px !important;
    padding:18px !important;
}

body.woocommerce-cart .checkout-button:hover{
    background:#992F4A !important;
}

/* Update cart */
body.woocommerce-cart button[name="update_cart"]{
    border-radius:12px;
}

/* Mobile */
@media(max-width:768px){

body.woocommerce-cart h1.entry-title{
    font-size:34px;
}

body.woocommerce-cart table.shop_table img{
    width:70px;
}

body.woocommerce-cart td.product-name a{
    font-size:18px;
}

body.woocommerce-cart .cart_totals{
    margin-top:30px;
}

}



/* ==========================================================
   STITCH LIBRARY
   Premium Checkout Design
========================================================== */

:root{

--wp--preset--color--primary:#B33C5A;
--wp--preset--color--secondary:#FCF8F1;

--wc-form-border-color:#E8E1D7;
--wc-form-border-radius:16px;

}

/* Background */

body.woocommerce-checkout{
    background:#FCF8F1;
}

/* Main container */

.wc-block-checkout,
.wc-block-components-sidebar{
    background:#fff;
    border:1px solid #E8E1D7;
    border-radius:22px;
    box-shadow:0 12px 35px rgba(0,0,0,.05);
}

/* Titles */

.wc-block-checkout h1,
.wc-block-checkout h2,
.wc-block-components-title,
.wc-block-components-checkout-step__title{

    font-family:Fraunces,serif;
    color:#2B2B2B;
    font-weight:600;

}

/* Inputs */

.wc-block-components-text-input input,
.wc-block-components-text-input select,
.wc-block-components-combobox-control input{

    border:1px solid #DDD6CA;
    border-radius:14px;
    min-height:56px;
    background:#fff;

}

/* Focus */

.wc-block-components-text-input input:focus,
.wc-block-components-combobox-control input:focus{

    border-color:#B33C5A;
    box-shadow:0 0 0 3px rgba(179,60,90,.15);

}

/* Labels */

.wc-block-components-text-input label{

    color:#555;
    font-size:14px;

}

/* Sidebar */

.wc-block-components-sidebar{

    padding:30px;

}

/* Order Summary */

.wc-block-components-order-summary{

    border-radius:16px;

}

/* Product titles */

.wc-block-components-product-name{

    font-family:Fraunces,serif;
    font-size:18px;
    color:#2B2B2B;

}

/* Prices */

.wc-block-components-formatted-money-amount{

    color:#B33C5A;
    font-weight:700;

}

/* Coupon */

.wc-block-components-totals-coupon,
.wc-block-components-order-summary__button-text{

    font-size:15px;

}

/* Primary Button */

.wc-block-components-checkout-place-order-button,
.wc-block-components-button{

    background:#B33C5A !important;
    color:#fff !important;

    border:none;
    border-radius:14px;

    min-height:60px;

    font-size:17px;
    font-weight:600;

    transition:.25s;

}

/* Hover */

.wc-block-components-button:hover,
.wc-block-components-checkout-place-order-button:hover{

    background:#972E4B !important;

}

/* Remove blue */

.wc-block-components-button:focus,
.wc-block-components-checkout-place-order-button:focus{

    box-shadow:0 0 0 4px rgba(179,60,90,.18);

}

/* Sections */

.wc-block-components-checkout-step{

    padding-bottom:25px;
    margin-bottom:25px;

    border-bottom:1px solid #EEE5DB;

}

/* Links */

.wc-block-components a{

    color:#B33C5A;

}

.wc-block-components a:hover{

    color:#972E4B;

}

/* Mobile */

@media(max-width:768px){

.wc-block-checkout{

padding:20px;

}

.wc-block-components-sidebar{

margin-top:25px;

}

}


/* =========================================================
   STITCH LIBRARY — PREMIUM PRODUCT GRID
   Desktop: 4 products
   Mobile: 2 products
   ========================================================= */


/* =========================================================
   DESKTOP PRODUCT GRID
   ========================================================= */

.home .woocommerce ul.products {
    max-width: 1240px !important;
    margin: 0 auto !important;
    padding: 0 24px 80px !important;

    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 46px 24px !important;
}

.home .woocommerce ul.products::before,
.home .woocommerce ul.products::after {
    display: none !important;
}

.home .woocommerce ul.products li.product {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;

    display: flex !important;
    flex-direction: column !important;
}


/* =========================================================
   PRODUCT IMAGE
   ========================================================= */

.home .woocommerce ul.products li.product .ct-image-container,
.home .woocommerce ul.products li.product .ct-media-container,
.home .woocommerce ul.products li.product .woocommerce-loop-product__link {
    width: 100% !important;
}

.home .woocommerce ul.products li.product .ct-image-container,
.home .woocommerce ul.products li.product .ct-media-container {
    aspect-ratio: 1 / 1 !important;
    overflow: hidden !important;

    background: #F8F4EE !important;

    border-radius: 10px !important;

    margin: 0 !important;
    padding: 0 !important;
}


/* Keep the entire image visible */

.home .woocommerce ul.products li.product img {
    width: 100% !important;
    height: 100% !important;

    object-fit: contain !important;
    object-position: center !important;

    margin: 0 !important;
    padding: 0 !important;

    display: block !important;

    transition:
        transform .45s cubic-bezier(.2,.7,.2,1) !important;
}


/* Elegant subtle hover */

@media (min-width: 768px) {

    .home .woocommerce ul.products li.product:hover img {
        transform: scale(1.035);
    }

}


/* =========================================================
   PRODUCT INFORMATION
   ========================================================= */

.home .woocommerce ul.products li.product .woocommerce-loop-product__title {
    margin: 16px 0 0 !important;
    padding: 0 !important;

    color: #202C3D !important;

    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;

    letter-spacing: -0.1px !important;

    text-align: left !important;
}


/* =========================================================
   PRICE
   ========================================================= */

.home .woocommerce ul.products li.product .price {
    margin: 7px 0 0 !important;
    padding: 0 !important;

    color: #B83A4B !important;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;

    line-height: 1.3 !important;

    text-align: left !important;
}


/* Sale price */

.home .woocommerce ul.products li.product .price del {
    color: #999 !important;
    font-size: 13px !important;
    margin-right: 5px !important;
}

.home .woocommerce ul.products li.product .price ins {
    color: #B83A4B !important;
    text-decoration: none !important;
}


/* =========================================================
   REMOVE UNNECESSARY SPACING
   ========================================================= */

.home .woocommerce ul.products li.product > * {
    margin-bottom: 0 !important;
}

.home .woocommerce ul.products li.product .star-rating {
    margin-top: 8px !important;
}


/* =========================================================
   MOBILE — 2 PRODUCTS PER ROW
   ========================================================= */

@media (max-width: 767px) {

    .home .woocommerce ul.products {

        display: grid !important;

        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;

        column-gap: 12px !important;
        row-gap: 30px !important;

        width: 100% !important;

        margin: 0 !important;

        padding:
            0 14px 50px !important;
    }


    .home .woocommerce ul.products li.product {

        width: 100% !important;

        min-width: 0 !important;

        margin: 0 !important;

        padding: 0 !important;

        display: flex !important;

        flex-direction: column !important;
    }


    /* -------------------------
       Square product image
       ------------------------- */

    .home .woocommerce ul.products li.product .ct-image-container,
    .home .woocommerce ul.products li.product .ct-media-container {

        width: 100% !important;

        aspect-ratio: 1 / 1 !important;

        height: auto !important;

        min-height: 0 !important;

        margin: 0 !important;
        padding: 0 !important;

        border-radius: 8px !important;

        background: #F8F4EE !important;

        overflow: hidden !important;
    }


    .home .woocommerce ul.products li.product img {

        width: 100% !important;
        height: 100% !important;

        object-fit: contain !important;

        margin: 0 !important;
        padding: 0 !important;

        display: block !important;
    }


    /* -------------------------
       Product title
       ------------------------- */

    .home .woocommerce ul.products li.product
    .woocommerce-loop-product__title {

        margin:
            10px 0 0 !important;

        padding: 0 !important;

        font-size: 14px !important;

        line-height: 1.35 !important;

        font-weight: 600 !important;

        color: #202C3D !important;

        text-align: left !important;

        /* Keeps rows visually aligned */
        min-height: 38px !important;

        display: -webkit-box !important;

        -webkit-line-clamp: 2 !important;

        -webkit-box-orient: vertical !important;

        overflow: hidden !important;
    }


    /* -------------------------
       Price
       ------------------------- */

    .home .woocommerce ul.products li.product .price {

        margin:
            5px 0 0 !important;

        padding: 0 !important;

        font-size: 13px !important;

        line-height: 1.3 !important;

        color: #B83A4B !important;

        min-height: 17px !important;
    }


    .home .woocommerce ul.products li.product .price del {
        font-size: 11px !important;
    }

    .home .woocommerce ul.products li.product .price ins {
        font-size: 13px !important;
    }


    /* Remove unwanted WooCommerce spacing */

    .home .woocommerce ul.products li.product > * {
        margin-bottom: 0 !important;
    }

}


/* =========================================================
   SMALL PHONES
   ========================================================= */

@media (max-width: 380px) {

    .home .woocommerce ul.products {

        column-gap: 10px !important;

        padding-left: 11px !important;
        padding-right: 11px !important;

        row-gap: 26px !important;
    }

    .home .woocommerce ul.products li.product
    .woocommerce-loop-product__title {

        font-size: 13px !important;

        margin-top: 9px !important;
    }

    .home .woocommerce ul.products li.product .price {

        font-size: 12px !important;
    }

}



/* =========================================================
   STITCH LIBRARY — FINAL HOMEPAGE FIXES
   ========================================================= */


/* =========================================================
   1. RESTORE HOMEPAGE HERO DESIGN
   ========================================================= */

.sl-home-hero {
    display: block !important;
    background: #F8F4EE !important;
    padding: 75px 20px 65px !important;
    text-align: center !important;
}

.sl-home-hero .sl-hero-inner {
    max-width: 850px !important;
    margin: 0 auto !important;
}

.sl-home-hero .sl-hero-eyebrow {
    display: block !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 2.5px !important;
    color: #B83A4B !important;
    margin: 0 0 18px !important;
}

.sl-home-hero h1 {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;

    color: #202C3D !important;

    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(42px, 5vw, 68px) !important;
    line-height: 1.05 !important;
    font-weight: 600 !important;
    letter-spacing: -1px !important;
}

.sl-home-hero p {
    display: block !important;
    max-width: 620px !important;

    margin: 24px auto 0 !important;
    padding: 0 !important;

    color: #5D6269 !important;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 16px !important;
    line-height: 1.7 !important;
}

.sl-home-hero .sl-hero-divider {
    display: block !important;

    width: 45px !important;
    height: 2px !important;

    margin: 30px auto 0 !important;
    padding: 0 !important;

    background: #B83A4B !important;
}


/* =========================================================
   2. RESTORE PRODUCTS HEADING
   ========================================================= */

.sl-products-heading {
    display: block !important;

    max-width: 1200px !important;
    margin: 0 auto !important;

    padding: 65px 20px 30px !important;

    text-align: center !important;
}

.sl-products-heading span {
    display: block !important;

    margin: 0 0 12px !important;
    padding: 0 !important;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    letter-spacing: 2.2px !important;

    color: #B83A4B !important;
}

.sl-products-heading h2 {
    display: block !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #202C3D !important;

    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 34px !important;
    line-height: 1.2 !important;
    font-weight: 600 !important;
}


/* =========================================================
   3. RESTORE WOOCOMMERCE ADD TO CART BUTTON
   ========================================================= */

.home .woocommerce ul.products li.product .add_to_cart_button,
.home .woocommerce ul.products li.product a.button,
.home .woocommerce ul.products li.product .button {
    display: inline-flex !important;

    align-items: center !important;
    justify-content: center !important;

    width: auto !important;

    margin-top: 12px !important;

    padding: 10px 16px !important;

    background: #202C3D !important;
    color: #FFFFFF !important;

    border: 0 !important;
    border-radius: 6px !important;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;

    line-height: 1.2 !important;

    text-decoration: none !important;

    opacity: 1 !important;
    visibility: visible !important;
}


/* Hover */

.home .woocommerce ul.products li.product .add_to_cart_button:hover,
.home .woocommerce ul.products li.product a.button:hover,
.home .woocommerce ul.products li.product .button:hover {
    background: #B83A4B !important;
    color: #FFFFFF !important;
}


/* =========================================================
   4. MOBILE HERO
   ========================================================= */

@media (max-width: 767px) {

    .sl-home-hero {
        padding: 48px 20px 45px !important;
    }

    .sl-home-hero .sl-hero-eyebrow {
        font-size: 9px !important;
        letter-spacing: 2px !important;
        margin-bottom: 14px !important;
    }

    .sl-home-hero h1 {
        font-size: 38px !important;
        line-height: 1.08 !important;
        letter-spacing: -.5px !important;
    }

    .sl-home-hero p {
        font-size: 14px !important;
        line-height: 1.65 !important;
        margin-top: 18px !important;
    }

    .sl-home-hero .sl-hero-divider {
        margin-top: 24px !important;
    }


    .sl-products-heading {
        padding: 42px 18px 24px !important;
    }

    .sl-products-heading span {
        font-size: 9px !important;
        letter-spacing: 1.8px !important;
        margin-bottom: 10px !important;
    }

    .sl-products-heading h2 {
        font-size: 27px !important;
        line-height: 1.2 !important;
    }


    /* Mobile Add To Cart */
    .home .woocommerce ul.products li.product .add_to_cart_button,
    .home .woocommerce ul.products li.product a.button,
    .home .woocommerce ul.products li.product .button {

        width: 100% !important;

        margin-top: 10px !important;

        padding: 10px 8px !important;

        font-size: 12px !important;

        border-radius: 6px !important;
    }
}


/* =====================================================
   STITCH LIBRARY — PREMIUM MOBILE MENU
   ===================================================== */

@media (max-width: 999px) {

    /* Main menu panel */
    .ct-panel {
        background: #F8F4EE !important;
        color: #202C3D !important;
        width: min(88vw, 390px) !important;
        box-shadow: 8px 0 35px rgba(32, 44, 61, 0.12) !important;
    }

    .ct-panel-inner,
    .ct-panel-content {
        background: #F8F4EE !important;
    }


    /* Menu spacing */
    .ct-panel-content {
        padding: 80px 26px 35px !important;
    }


    /* Menu links */
    .ct-panel-content .ct-menu-link {
        color: #202C3D !important;

        font-family: "Poppins", Arial, Helvetica, sans-serif !important;
        font-size: 16px !important;
        font-weight: 500 !important;

        line-height: 1.4 !important;

        min-height: 56px !important;
        padding: 0 4px !important;

        border-bottom: 1px solid rgba(32, 44, 61, 0.09) !important;

        transition:
            color .25s ease,
            padding-left .25s ease !important;
    }


    /* First item */
    .ct-panel-content .menu > li:first-child > .ct-menu-link {
        border-top: 1px solid rgba(32, 44, 61, 0.09) !important;
    }


    /* Hover / active */
    .ct-panel-content .ct-menu-link:hover,
    .ct-panel-content .current-menu-item > .ct-menu-link,
    .ct-panel-content .current-menu-ancestor > .ct-menu-link {
        color: #B83A4B !important;
        padding-left: 9px !important;
    }


   /* Close button */
.ct-panel .ct-toggle-close {
    width: 42px !important;
    height: 42px !important;

    top: 22px !important;
    right: 20px !important;

    background: transparent !important;
    color: #202C3D !important;

    border: none !important;
    border-radius: 0 !important;

    box-shadow: none !important;

    transition:
        color .25s ease,
        transform .25s ease !important;
}

.ct-panel .ct-toggle-close:hover {
    background: transparent !important;
    color: #B83A4B !important;
    transform: rotate(90deg) !important;
}

.ct-panel .ct-toggle-close svg {
    width: 24px !important;
    height: 24px !important;
}

@media (max-width: 999px) {

    .ct-panel .ct-toggle-close {
        background: transparent !important;
        color: #202C3D !important;
        border: none !important;
        box-shadow: none !important;
    }

    .ct-panel .ct-toggle-close svg,
    .ct-panel .ct-toggle-close svg * {
        color: #202C3D !important;
        stroke: #202C3D !important;
        fill: none !important;
    }

    .ct-panel .ct-toggle-close:hover {
        background: transparent !important;
        color: #B83A4B !important;
    }

    .ct-panel .ct-toggle-close:hover svg,
    .ct-panel .ct-toggle-close:hover svg * {
        stroke: #B83A4B !important;
    }
}
    /* Submenu */
    .ct-panel-content .sub-menu {
        background: rgba(255, 255, 255, 0.45) !important;
        border-left: 2px solid #B83A4B !important;

        margin: 4px 0 10px !important;
        padding: 4px 12px !important;

        border-radius: 0 6px 6px 0 !important;
    }

    .ct-panel-content .sub-menu .ct-menu-link {
        min-height: 46px !important;
        font-size: 14px !important;
        border-bottom: 1px solid rgba(32, 44, 61, 0.06) !important;
    }


    /* Backdrop */
    .ct-panel-backdrop {
        background: rgba(32, 44, 61, 0.38) !important;

        backdrop-filter: blur(3px) !important;
        -webkit-backdrop-filter: blur(3px) !important;
    }
}


/* =========================================================
   STITCH LIBRARY — MOBILE CART PAYMENT AREA
   Unifies the cart background without touching payment buttons
   ========================================================= */

@media (max-width: 767px) {

    /* Main cart / totals card */
    .wc-block-cart__main,
    .wc-block-cart__sidebar,
    .wc-block-components-totals-wrapper,
    .wc-block-components-sidebar-layout,
    .wc-block-components-cart-order-summary,
    .cart_totals {
        background: #F8F4EE !important;
    }


    /* Express payment section */
    .wc-block-components-express-payment,
    .wc-block-components-express-payment--checkout,
    .wc-block-components-express-payment__content,
    .wc-stripe-express-checkout-wrapper {
        background: #F8F4EE !important;
        border-color: rgba(32, 44, 61, 0.08) !important;
        box-shadow: none !important;
    }


    /* Remove the white inner layers around express checkout */
    .wc-block-components-express-payment > div,
    .wc-block-components-express-payment__content > div,
    .wc-stripe-express-checkout-wrapper > div {
        background: transparent !important;
    }


    /* OR / divider area */
    .wc-block-components-express-payment + *,
    .wc-block-components-express-payment + .wc-block-components-separator,
    .wc-block-components-express-payment ~ .wc-block-components-separator,
    .wc-stripe-express-checkout-wrapper + * {
        background: #F8F4EE !important;
    }


    /* Cart totals area around the checkout button */
    .wc-block-cart__sidebar > *,
    .wc-block-components-totals-wrapper > *,
    .wc-block-components-checkout-button {
        background-color: #F8F4EE !important;
    }


    /* Keep payment buttons themselves untouched */
    .wc-block-components-express-payment iframe,
    .wc-stripe-express-checkout-wrapper iframe {
        background: transparent !important;
        border-radius: 12px !important;
    }
}


/* =====================================================
   STITCH LIBRARY — CLEAN PRODUCT DESCRIPTION
   Remove Description tab heading + excessive spacing
   ===================================================== */

/* Remove the large gap before the description */
.woocommerce-tabs,
.woocommerce-tabs .panel,
.woocommerce-Tabs-panel--description {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Remove unnecessary borders / empty tab spacing */
.woocommerce-tabs {
    border-top: none !important;
    padding-top: 0 !important;
}

/* Make the description start naturally */
.woocommerce-Tabs-panel--description {
    margin-bottom: 0 !important;
}

/* Desktop spacing */
@media (min-width: 1000px) {
    .woocommerce-Tabs-panel--description {
        padding-top: 25px !important;
    }
}

/* Mobile spacing */
@media (max-width: 999px) {
    .woocommerce-Tabs-panel--description {
        padding-top: 10px !important;
    }
}


/* =====================================================
   STITCH LIBRARY — RELATED PRODUCTS / MOBILE
   Clean 2-column product grid
   ===================================================== */

@media (max-width: 999px) {

    /* Show related products */
    .related.products,
    .woocommerce .related.products,
    .woocommerce-page .related.products {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
    }

    /* 2-column grid */
    .related.products ul.products,
    .woocommerce .related.products ul.products,
    .woocommerce-page .related.products ul.products {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 18px 12px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Product cards */
    .related.products ul.products li.product,
    .woocommerce .related.products ul.products li.product,
    .woocommerce-page .related.products ul.products li.product {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        float: none !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    /* Keep product content aligned */
    .related.products ul.products li.product > * {
        box-sizing: border-box !important;
    }

    /* Product title */
    .related.products ul.products li.product .woocommerce-loop-product__title {
        min-height: 3.6em !important;
        margin: 14px 0 8px !important;
        line-height: 1.25 !important;
    }

    /* Price */
    .related.products ul.products li.product .price {
        margin: 0 0 8px !important;
        line-height: 1.3 !important;
    }

    /* Category */
    .related.products ul.products li.product .ast-woo-product-category,
    .related.products ul.products li.product .product-category {
        margin-bottom: 12px !important;
        line-height: 1.3 !important;
    }

    /* ADD TO CART — fix invisible white button */
    .related.products ul.products li.product .button,
    .related.products ul.products li.product a.add_to_cart_button,
    .related.products ul.products li.product a.button {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        width: 100% !important;
        min-height: 48px !important;
        height: 48px !important;

        margin: auto 0 0 !important;
        padding: 0 12px !important;

        background: #202C3D !important;
        color: #FFFFFF !important;

        border: 0 !important;
        border-radius: 8px !important;

        font-size: 14px !important;
        font-weight: 600 !important;
        line-height: 1 !important;
        text-align: center !important;
        text-decoration: none !important;

        opacity: 1 !important;
        visibility: visible !important;
        box-sizing: border-box !important;
    }

    /* Make sure the text itself is visible */
    .related.products ul.products li.product .button *,
    .related.products ul.products li.product a.add_to_cart_button * {
       /* ============================================================================
   STITCH LIBRARY — CONSOLIDATED STYLESHEET
   ----------------------------------------------------------------------------
   Cleanup build. Effective rendering preserved except where noted.

   REMOVED / MERGED
   • Blocksy header block was duplicated in full — one copy kept.
   • `.pcard` was styled by 3 blocks; merged to final computed values.
   • `.added_to_cart{display:none!important}` appeared twice — kept once.
   • Empty ruleset `.woocommerce .before-shop-loop, … {}` removed.
   • `@media(max-width:999px)` nested inside itself (mobile menu) — flattened.
   • `.featured__grid{grid-template-columns:1fr}` @560 was dead (a later @768
     rule overrode it). Removed; phones still render 2 columns.
   • `.home … li.product > *{margin-bottom:0}` duplicated in its own mobile
     query — removed there, base rule already covers it.
   • Duplicate `.related.products … li.product` rulesets merged.
   • Mojibake and a stray CJK glyph in comments corrected.

   BEHAVIOUR CHANGE (intentional bug fix)
   • The component-library block referenced 8 undefined custom properties, so
     those declarations were invalid-at-computed-value and fell back to initial
     values (square corners, unconstrained containers, no sand background).
     The tokens are now defined. Legacy `.sl-pdp` pages will look correct.

   CASCADE NOTES (deliberately preserved, do not "tidy")
   • `.onsale{background:#C99A4A!important}` beats both the shop-archive and
     single-product sale-badge colours. Sale badges are gold site-wide.
   • `.home …` product buttons carry `opacity:1!important`, so the hover-reveal
     used on other archives does not apply on the homepage.
   ============================================================================ */


/* ============================================================================
   1. ROOT / TOKENS
   ============================================================================ */

:root {
    --sl-navy: #202C3C;
    --sl-burgundy: #B33C5A;
    --sl-burgundy-dark: #962F4A;
    --sl-cream: #F8F5EF;
    --sl-border: #EAE4DB;
}


/* ============================================================================
   2. HEADER / NAVIGATION  (Blocksy)
   ============================================================================ */

#header {
    position: relative;
    z-index: 1000;
}

.ct-header {
    background: #FFFFFF !important;
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.ct-header .ct-menu-link,
.ct-header .ct-header-trigger,
.ct-header .ct-cart-item-label {
    -webkit-font-smoothing: antialiased;
}

.ct-header-main {
    min-height: 88px !important;
    border-bottom: 1px solid var(--sl-border);
    box-shadow: 0 3px 18px rgba(32, 44, 60, .035);
    transition: box-shadow .25s ease, background .25s ease;
}

.ct-header-main .ct-container {
    max-width: 1280px;
    padding-left: 28px;
    padding-right: 28px;
}

/* Premium top accent */
.ct-header-main::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    opacity: .75;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(179, 60, 90, .45) 35%,
        var(--sl-burgundy) 50%,
        rgba(179, 60, 90, .45) 65%,
        transparent 100%
    );
}

.ct-header-main .ct-header-column {
    align-items: center;
}

.ct-header-main [data-column="middle"] {
    padding-left: 25px;
    padding-right: 25px;
}

/* Sticky */
.ct-sticky-container .ct-header-main {
    background: rgba(255, 255, 255, .97) !important;
    backdrop-filter: blur(12px);
    box-shadow: 0 8px 30px rgba(32, 44, 60, .08);
}

/* --- Logo --- */
.ct-header-branding {
    display: flex;
    align-items: center;
    min-width: 205px;
}

.ct-header-branding img {
    width: auto !important;
    max-width: 205px !important;
    height: auto !important;
    max-height: 70px !important;
    object-fit: contain;
    transition: transform .25s ease, opacity .25s ease;
}

.ct-header-branding a:hover img {
    opacity: .88;
    transform: translateY(-1px);
}

/* --- Menu --- */
.ct-header-menu {
    margin-left: 20px;
}

.ct-header-menu .ct-menu-link {
    position: relative;
    display: flex;
    align-items: center;
    padding: 34px 16px !important;
    color: var(--sl-navy) !important;
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    font-size: 15px !important;
    font-weight: 650 !important;
    letter-spacing: .015em;
    text-transform: uppercase;
    transition: color .2s ease;
}

.ct-header-menu .ct-menu-link::after {
    content: "";
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 20px;
    height: 2px;
    background: var(--sl-burgundy);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .25s ease;
}

.ct-header-menu .ct-menu-link:hover,
.ct-header-menu .current-menu-item > .ct-menu-link,
.ct-header-menu .current-menu-ancestor > .ct-menu-link {
    color: var(--sl-burgundy) !important;
}

.ct-header-menu .ct-menu-link:hover::after,
.ct-header-menu .current-menu-item > .ct-menu-link::after,
.ct-header-menu .current-menu-ancestor > .ct-menu-link::after {
    transform: scaleX(1);
}

.ct-header .ct-menu-link:focus-visible {
    outline: 2px solid rgba(179, 60, 90, .35);
    outline-offset: 4px;
}

/* --- Header actions --- */
.ct-header-actions {
    display: flex;
    align-items: center;
    gap: 7px;
}

.ct-header-actions .ct-header-trigger,
.ct-header-actions .ct-button,
.ct-header-actions a,
.ct-header-actions [data-label="Search"] {
    color: var(--sl-navy);
    transition: color .2s ease, transform .2s ease;
}

.ct-header-actions .ct-header-trigger:hover,
.ct-header-actions a:hover {
    color: var(--sl-burgundy);
    transform: translateY(-1px);
}

/* --- Search --- */
.ct-header-search {
    margin-right: 5px;
}

.ct-header-search svg {
    width: 21px !important;
    height: 21px !important;
    stroke-width: 1.7;
}

/* --- Cart --- */
.ct-cart-item {
    position: relative;
}

.ct-cart-item .ct-cart-item-label {
    color: var(--sl-navy) !important;
    font-family: "Inter", sans-serif;
    font-size: 14px;
    font-weight: 650;
}

.ct-cart-item svg {
    stroke-width: 1.7;
    transition: transform .2s ease, color .2s ease;
}

.ct-cart-item:hover svg {
    color: var(--sl-burgundy);
    transform: translateY(-1px);
}

.ct-cart-item .ct-cart-item-count {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--sl-burgundy) !important;
    color: #FFFFFF !important;
    border: 2px solid #FFFFFF;
    font-family: "Inter", sans-serif;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
}

/* --- Header responsive --- */
@media (max-width: 999px) {
    .ct-header-main {
        min-height: 72px !important;
    }

    .ct-header-main .ct-container {
        padding-left: 18px;
        padding-right: 18px;
    }

    .ct-header-branding {
        min-width: auto;
    }

    .ct-header-branding img {
        max-width: 165px !important;
        max-height: 58px !important;
    }
}

@media (max-width: 600px) {
    .ct-header-main {
        min-height: 68px !important;
    }

    .ct-header-main .ct-container {
        padding-left: 14px;
        padding-right: 14px;
    }

    .ct-header-main::before {
        height: 1px;
    }

    .ct-header-branding img {
        max-width: 145px !important;
        max-height: 52px !important;
    }
}


/* ============================================================================
   3. MOBILE MENU PANEL  (Blocksy off-canvas)
   Previously contained a redundant @media nested inside itself — flattened.
   ============================================================================ */

@media (max-width: 999px) {

    .ct-panel {
        width: min(88vw, 390px) !important;
        background: #F8F4EE !important;
        color: #202C3D !important;
        box-shadow: 8px 0 35px rgba(32, 44, 61, .12) !important;
    }

    .ct-panel-inner,
    .ct-panel-content {
        background: #F8F4EE !important;
    }

    .ct-panel-content {
        padding: 80px 26px 35px !important;
    }

    .ct-panel-content .ct-menu-link {
        min-height: 56px !important;
        padding: 0 4px !important;
        color: #202C3D !important;
        font-family: "Poppins", Arial, Helvetica, sans-serif !important;
        font-size: 16px !important;
        font-weight: 500 !important;
        line-height: 1.4 !important;
        border-bottom: 1px solid rgba(32, 44, 61, .09) !important;
        transition: color .25s ease, padding-left .25s ease !important;
    }

    .ct-panel-content .menu > li:first-child > .ct-menu-link {
        border-top: 1px solid rgba(32, 44, 61, .09) !important;
    }

    .ct-panel-content .ct-menu-link:hover,
    .ct-panel-content .current-menu-item > .ct-menu-link,
    .ct-panel-content .current-menu-ancestor > .ct-menu-link {
        color: #B83A4B !important;
        padding-left: 9px !important;
    }

    /* Close button */
    .ct-panel .ct-toggle-close {
        width: 42px !important;
        height: 42px !important;
        top: 22px !important;
        right: 20px !important;
        background: transparent !important;
        color: #202C3D !important;
        border: none !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        transition: color .25s ease, transform .25s ease !important;
    }

    .ct-panel .ct-toggle-close svg {
        width: 24px !important;
        height: 24px !important;
    }

    .ct-panel .ct-toggle-close svg,
    .ct-panel .ct-toggle-close svg * {
        color: #202C3D !important;
        stroke: #202C3D !important;
        fill: none !important;
    }

    .ct-panel .ct-toggle-close:hover {
        background: transparent !important;
        color: #B83A4B !important;
        transform: rotate(90deg) !important;
    }

    .ct-panel .ct-toggle-close:hover svg,
    .ct-panel .ct-toggle-close:hover svg * {
        stroke: #B83A4B !important;
    }

    /* Submenu */
    .ct-panel-content .sub-menu {
        margin: 4px 0 10px !important;
        padding: 4px 12px !important;
        background: rgba(255, 255, 255, .45) !important;
        border-left: 2px solid #B83A4B !important;
        border-radius: 0 6px 6px 0 !important;
    }

    .ct-panel-content .sub-menu .ct-menu-link {
        min-height: 46px !important;
        font-size: 14px !important;
        border-bottom: 1px solid rgba(32, 44, 61, .06) !important;
    }

    /* Backdrop */
    .ct-panel-backdrop {
        background: rgba(32, 44, 61, .38) !important;
        backdrop-filter: blur(3px) !important;
        -webkit-backdrop-filter: blur(3px) !important;
    }
}


/* ============================================================================
   4. HOMEPAGE — HERO & SECTION HEADING
   ============================================================================ */

.sl-home-hero {
    display: block !important;
    padding: 75px 20px 65px !important;
    background: #F8F4EE !important;
    text-align: center !important;
}

.sl-home-hero .sl-hero-inner {
    max-width: 850px !important;
    margin: 0 auto !important;
}

.sl-home-hero .sl-hero-eyebrow {
    display: block !important;
    margin: 0 0 18px !important;
    color: #B83A4B !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 2.5px !important;
}

.sl-home-hero h1 {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #202C3D !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(42px, 5vw, 68px) !important;
    line-height: 1.05 !important;
    font-weight: 600 !important;
    letter-spacing: -1px !important;
}

.sl-home-hero p {
    display: block !important;
    max-width: 620px !important;
    margin: 24px auto 0 !important;
    padding: 0 !important;
    color: #5D6269 !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 16px !important;
    line-height: 1.7 !important;
}

.sl-home-hero .sl-hero-divider {
    display: block !important;
    width: 45px !important;
    height: 2px !important;
    margin: 30px auto 0 !important;
    padding: 0 !important;
    background: #B83A4B !important;
}

.sl-products-heading {
    display: block !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 65px 20px 30px !important;
    text-align: center !important;
}

.sl-products-heading span {
    display: block !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
    color: #B83A4B !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    letter-spacing: 2.2px !important;
}

.sl-products-heading h2 {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #202C3D !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 34px !important;
    line-height: 1.2 !important;
    font-weight: 600 !important;
}

@media (max-width: 767px) {
    .sl-home-hero {
        padding: 48px 20px 45px !important;
    }

    .sl-home-hero .sl-hero-eyebrow {
        margin-bottom: 14px !important;
        font-size: 9px !important;
        letter-spacing: 2px !important;
    }

    .sl-home-hero h1 {
        font-size: 38px !important;
        line-height: 1.08 !important;
        letter-spacing: -.5px !important;
    }

    .sl-home-hero p {
        margin-top: 18px !important;
        font-size: 14px !important;
        line-height: 1.65 !important;
    }

    .sl-home-hero .sl-hero-divider {
        margin-top: 24px !important;
    }

    .sl-products-heading {
        padding: 42px 18px 24px !important;
    }

    .sl-products-heading span {
        margin-bottom: 10px !important;
        font-size: 9px !important;
        letter-spacing: 1.8px !important;
    }

    .sl-products-heading h2 {
        font-size: 27px !important;
        line-height: 1.2 !important;
    }
}


/* ============================================================================
   5. HOMEPAGE — WOOCOMMERCE PRODUCT GRID
   Desktop 4-up · mobile 2-up. Heavy !important is required to beat
   Blocksy/WooCommerce defaults — retained deliberately.
   ============================================================================ */

.home .woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 46px 24px !important;
    max-width: 1240px !important;
    margin: 0 auto !important;
    padding: 0 24px 80px !important;
}

.home .woocommerce ul.products::before,
.home .woocommerce ul.products::after {
    display: none !important;
}

.home .woocommerce ul.products li.product {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
}

.home .woocommerce ul.products li.product > * {
    margin-bottom: 0 !important;
}

/* Media */
.home .woocommerce ul.products li.product .ct-image-container,
.home .woocommerce ul.products li.product .ct-media-container,
.home .woocommerce ul.products li.product .woocommerce-loop-product__link {
    width: 100% !important;
}

.home .woocommerce ul.products li.product .ct-image-container,
.home .woocommerce ul.products li.product .ct-media-container {
    aspect-ratio: 1 / 1 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #F8F4EE !important;
    border-radius: 10px !important;
    overflow: hidden !important;
}

.home .woocommerce ul.products li.product img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    object-fit: contain !important;
    object-position: center !important;
    transition: transform .45s cubic-bezier(.2, .7, .2, 1) !important;
}

/* Title */
.home .woocommerce ul.products li.product .woocommerce-loop-product__title {
    margin: 16px 0 0 !important;
    padding: 0 !important;
    color: #202C3D !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    letter-spacing: -0.1px !important;
    text-align: left !important;
}

/* Price */
.home .woocommerce ul.products li.product .price {
    margin: 7px 0 0 !important;
    padding: 0 !important;
    color: #B83A4B !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    text-align: left !important;
}

.home .woocommerce ul.products li.product .price del {
    margin-right: 5px !important;
    color: #999 !important;
    font-size: 13px !important;
}

.home .woocommerce ul.products li.product .price ins {
    color: #B83A4B !important;
    text-decoration: none !important;
}

.home .woocommerce ul.products li.product .star-rating {
    margin-top: 8px !important;
}

/* Add to cart */
.home .woocommerce ul.products li.product .add_to_cart_button,
.home .woocommerce ul.products li.product a.button,
.home .woocommerce ul.products li.product .button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    margin-top: 12px !important;
    padding: 10px 16px !important;
    background: #202C3D !important;
    color: #FFFFFF !important;
    border: 0 !important;
    border-radius: 6px !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.home .woocommerce ul.products li.product .add_to_cart_button:hover,
.home .woocommerce ul.products li.product a.button:hover,
.home .woocommerce ul.products li.product .button:hover {
    background: #B83A4B !important;
    color: #FFFFFF !important;
}

@media (min-width: 768px) {
    .home .woocommerce ul.products li.product:hover img {
        transform: scale(1.035);
    }
}

@media (max-width: 767px) {
    .home .woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        column-gap: 12px !important;
        row-gap: 30px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 14px 50px !important;
    }

    .home .woocommerce ul.products li.product {
        min-width: 0 !important;
        padding: 0 !important;
    }

    .home .woocommerce ul.products li.product .ct-image-container,
    .home .woocommerce ul.products li.product .ct-media-container {
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        border-radius: 8px !important;
    }

    .home .woocommerce ul.products li.product .woocommerce-loop-product__title {
        display: -webkit-box !important;
        margin: 10px 0 0 !important;
        min-height: 38px !important;
        font-size: 14px !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
    }

    .home .woocommerce ul.products li.product .price {
        margin: 5px 0 0 !important;
        min-height: 17px !important;
        font-size: 13px !important;
    }

    .home .woocommerce ul.products li.product .price del {
        font-size: 11px !important;
    }

    .home .woocommerce ul.products li.product .price ins {
        font-size: 13px !important;
    }

    .home .woocommerce ul.products li.product .add_to_cart_button,
    .home .woocommerce ul.products li.product a.button,
    .home .woocommerce ul.products li.product .button {
        width: 100% !important;
        margin-top: 10px !important;
        padding: 10px 8px !important;
        font-size: 12px !important;
        border-radius: 6px !important;
    }
}

@media (max-width: 380px) {
    .home .woocommerce ul.products {
        column-gap: 10px !important;
        row-gap: 26px !important;
        padding-left: 11px !important;
        padding-right: 11px !important;
    }

    .home .woocommerce ul.products li.product .woocommerce-loop-product__title {
        margin-top: 9px !important;
        font-size: 13px !important;
    }

    .home .woocommerce ul.products li.product .price {
        font-size: 12px !important;
    }
}


/* ============================================================================
   6. HOMEPAGE SECTION — HERO (.hero)
   ============================================================================ */

.hero {
    --c-primary: #B83B4D;
    --c-primary-dark: #9C2F3F;
    --c-text: #1F2937;
    --c-muted: #6B7280;
    --c-bg: #FFFDF9;
    --c-accent: #D4A373;
    --c-white: #FFFFFF;
    --c-border: #ECE8E1;
    --serif: "Fraunces", Georgia, "Times New Roman", serif;
    --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --ease: cubic-bezier(0.22, 1, 0.36, 1);

    box-sizing: border-box;
    padding-block: clamp(3rem, 6vw, 5.5rem);
    background: var(--c-bg);
    color: var(--c-text);
    font-family: var(--sans);
    -webkit-font-smoothing: antialiased;
}

.hero *,
.hero *::before,
.hero *::after {
    box-sizing: border-box;
}

.hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    row-gap: clamp(2.25rem, 4.5vw, 3.5rem);
    width: 100%;
    max-width: 1240px;
    margin-inline: auto;
    padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.hero__masthead {
    max-width: 60rem;
    margin-inline: auto;
    text-align: center;
}

.hero__eyebrow {
    margin: 0 0 1.35rem;
    color: var(--c-primary);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    opacity: 0;
    animation: hero-fade 0.8s var(--ease) 0.05s forwards;
}

.hero__eyebrow::before,
.hero__eyebrow::after {
    content: "";
    display: inline-block;
    width: 28px;
    height: 1px;
    vertical-align: middle;
    background: var(--c-accent);
}

.hero__eyebrow::before { margin-right: 0.8rem; }
.hero__eyebrow::after  { margin-left: 0.8rem; }

.hero__title {
    margin: 0;
    color: var(--c-text);
    font-family: var(--serif);
    font-weight: 600;
    font-size: clamp(2.4rem, 5.4vw, 4.5rem);
    line-height: 1.04;
    letter-spacing: -0.025em;
    opacity: 0;
    animation: hero-rise 0.9s var(--ease) 0.15s forwards;
}

.hero__title-accent {
    color: var(--c-primary);
    font-style: italic;
    font-weight: 500;
}

.hero__figure {
    margin: 0;
    opacity: 0;
    animation: hero-rise 1s var(--ease) 0.3s forwards;
}

.hero__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    border: 1px solid var(--c-border);
    border-radius: clamp(24px, 3vw, 40px);
    background:
        linear-gradient(135deg, rgba(212, 163, 115, 0.14), rgba(184, 59, 77, 0.05)),
        var(--c-white);
    box-shadow:
        0 2px 0 rgba(255, 255, 255, 0.6) inset,
        0 50px 90px -38px rgba(31, 41, 55, 0.32);
    transition: transform 0.8s var(--ease);
}

.hero__figure:hover .hero__image {
    transform: scale(1.01);
}

.hero__caption {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: clamp(1.5rem, 4vw, 3.5rem);
    width: 100%;
    max-width: 62rem;
    margin-inline: auto;
    opacity: 0;
    animation: hero-fade 0.9s var(--ease) 0.45s forwards;
}

.hero__description {
    position: relative;
    margin: 0;
    padding-left: 1.5rem;
    max-width: 32rem;
    color: var(--c-muted);
    font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
    line-height: 1.6;
}

.hero__description::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.35rem;
    bottom: 0.35rem;
    width: 2px;
    border-radius: 2px;
    background: linear-gradient(180deg, var(--c-primary), var(--c-accent));
}

.hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
}

.hero__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    padding: 1.05rem 1.9rem;
    font-family: var(--sans);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    border: 1px solid transparent;
    border-radius: 999px;
    cursor: pointer;
    transition: transform 0.4s var(--ease), background-color 0.3s var(--ease),
        box-shadow 0.4s var(--ease), border-color 0.3s var(--ease);
}

.hero__btn:focus-visible {
    outline: 3px solid var(--c-accent);
    outline-offset: 3px;
}

.hero__btn-arrow {
    transition: transform 0.35s var(--ease);
}

.hero__btn--primary {
    background: var(--c-primary);
    color: var(--c-white);
    box-shadow: 0 16px 32px -14px rgba(184, 59, 77, 0.65);
}

.hero__btn--primary:hover {
    background: var(--c-primary-dark);
    transform: translateY(-2px);
    box-shadow: 0 22px 40px -14px rgba(184, 59, 77, 0.72);
}

.hero__btn--primary:hover .hero__btn-arrow {
    transform: translateX(5px);
}

.hero__btn--secondary {
    background: var(--c-white);
    color: var(--c-text);
    border-color: var(--c-border);
}

.hero__btn--secondary:hover {
    border-color: var(--c-accent);
    transform: translateY(-2px);
    box-shadow: 0 14px 28px -18px rgba(31, 41, 55, 0.28);
}

@keyframes hero-rise {
    from { opacity: 0; transform: translateY(22px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes hero-fade {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 860px) {
    .hero__image { aspect-ratio: 4 / 3; }

    .hero__caption {
        grid-template-columns: 1fr;
        justify-items: center;
        gap: 1.75rem;
        text-align: center;
    }

    .hero__description {
        padding-left: 0;
        padding-top: 1.25rem;
        text-align: center;
    }

    .hero__description::before {
        left: 50%;
        top: 0;
        bottom: auto;
        width: 3rem;
        height: 2px;
        transform: translateX(-50%);
        background: linear-gradient(90deg, var(--c-primary), var(--c-accent));
    }
}

@media (max-width: 560px) {
    .hero__image { aspect-ratio: 3 / 4; }

    .hero__actions {
        width: 100%;
        flex-direction: column;
    }

    .hero__btn { width: 100%; }
}


/* ============================================================================
   7. HOMEPAGE SECTION — SHOP BY COLLECTION (.collections / .card)
   NOTE: `.collections__grid` has no base grid definition in the original CSS
   (it is only declared inside the ≤1024px and ≤640px queries). Preserved
   as-is — adding a desktop grid here would change the layout.
   NOTE: `.card` is an unusually generic class name for a global stylesheet.
   Left unchanged because the live markup depends on it.
   ============================================================================ */

.collections {
    --col-primary: #B83B4D;
    --col-primary-dark: #9C2F3F;
    --col-secondary: #1F2937;
    --col-bg: #FFFDF9;
    --col-accent: #D4A373;
    --col-white: #FFFFFF;
    --col-border: #ECE8E1;
    --col-muted: #6B7280;
    --col-serif: "Fraunces", Georgia, "Times New Roman", serif;
    --col-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --col-radius: 20px;
    --col-radius-lg: 28px;
    --col-ease: cubic-bezier(0.22, 1, 0.36, 1);

    position: relative;
    overflow: hidden;
    padding-block: clamp(4rem, 7vw, 6.5rem);
    background: var(--col-bg);
    color: var(--col-secondary);
    font-family: var(--col-sans);
    -webkit-font-smoothing: antialiased;
}

.collections::before {
    content: "";
    position: absolute;
    top: -20%;
    left: -10%;
    width: 44rem;
    height: 44rem;
    z-index: 0;
    pointer-events: none;
    background: radial-gradient(circle, rgba(212, 163, 115, 0.14), transparent 62%);
}

.collections__inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1240px;
    margin-inline: auto;
    padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.card {
    display: flex;
    flex-direction: column;
    width: 100%;
    background: var(--col-white);
    border: 1px solid var(--col-border);
    border-radius: var(--col-radius-lg);
    overflow: hidden;
    box-shadow: 0 22px 50px -34px rgba(31, 41, 55, 0.28);
    transition: transform 0.4s var(--col-ease),
        box-shadow 0.4s var(--col-ease),
        border-color 0.3s var(--col-ease);
}

.card:hover,
.card:focus-within {
    transform: translateY(-6px);
    border-color: var(--col-accent);
    box-shadow: 0 40px 70px -30px rgba(31, 41, 55, 0.32);
}

.card__media {
    position: relative;
    overflow: hidden;
}

.card__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    background:
        linear-gradient(135deg, rgba(212, 163, 115, 0.16), rgba(184, 59, 77, 0.06)),
        var(--col-bg);
    transition: transform 0.6s var(--col-ease);
}

.card:hover .card__image,
.card:focus-within .card__image {
    transform: scale(1.05);
}

.card__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: clamp(1.5rem, 2vw, 1.85rem);
}

.card__title {
    margin: 0 0 0.6rem;
    color: var(--col-secondary);
    font-family: var(--col-serif);
    font-weight: 600;
    font-size: 1.375rem;
    line-height: 1.2;
    letter-spacing: -0.01em;
}

.card__text {
    margin: 0 0 1.5rem;
    color: var(--col-muted);
    font-size: 0.9688rem;
    line-height: 1.6;
}

.card__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: auto;
    align-self: flex-start;
    padding: 0.85rem 1.5rem;
    color: var(--col-secondary);
    background: var(--col-white);
    border: 1px solid var(--col-border);
    border-radius: 999px;
    font-family: var(--col-sans);
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: transform 0.35s var(--col-ease),
        background-color 0.3s var(--col-ease),
        color 0.3s var(--col-ease),
        box-shadow 0.35s var(--col-ease),
        border-color 0.3s var(--col-ease);
}

.card__btn:hover {
    background: var(--col-primary);
    color: var(--col-white);
    border-color: var(--col-primary);
    box-shadow: 0 14px 28px -12px rgba(184, 59, 77, 0.6);
}

.card__btn:focus-visible {
    outline: 3px solid var(--col-accent);
    outline-offset: 3px;
}

.card__btn-arrow {
    transition: transform 0.3s var(--col-ease);
}

.card__btn:hover .card__btn-arrow {
    transform: translateX(4px);
}

.card__btn--primary {
    background: var(--col-primary);
    color: var(--col-white);
    border-color: var(--col-primary);
    box-shadow: 0 14px 30px -12px rgba(184, 59, 77, 0.55);
}

.card__btn--primary:hover {
    background: var(--col-primary-dark);
    border-color: var(--col-primary-dark);
}

.card--feature {
    border-color: rgba(184, 59, 77, 0.22);
}

@media (max-width: 1024px) {
    .collections__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .collections {
        padding-block: 3.5rem;
    }

    .collections__grid {
        grid-template-columns: 1fr;
    }

    .collections__description {
        font-size: 1.0625rem;
    }

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


/* ============================================================================
   8. HOMEPAGE SECTION — FEATURED PRODUCTS (.featured / .pcard)
   `.pcard` was previously styled by three separate blocks that overrode each
   other. Merged here to the final computed result of that cascade.
   ============================================================================ */

.featured {
    --c-primary: #B83B4D;
    --c-primary-dark: #9C2F3F;
    --c-text: #1F2937;
    --c-muted: #6B7280;
    --c-bg: #FFFDF9;
    --c-accent: #D4A373;
    --c-white: #FFFFFF;
    --c-border: #ECE8E1;
    --serif: "Fraunces", Georgia, "Times New Roman", serif;
    --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --radius: 32px;
    --ease: cubic-bezier(0.22, 1, 0.36, 1);
    --shadow: 0 22px 50px -34px rgba(31, 41, 55, 0.28);
    --shadow-lift: 0 40px 70px -30px rgba(31, 41, 55, 0.32);

    box-sizing: border-box;
    padding-block: clamp(4.5rem, 9vw, 7.5rem);
    background: var(--c-bg);
    color: var(--c-text);
    font-family: var(--sans);
    -webkit-font-smoothing: antialiased;
}

.featured *,
.featured *::before,
.featured *::after {
    box-sizing: border-box;
}

.featured__inner {
    width: 100%;
    max-width: 1240px;
    margin-inline: auto;
    padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.featured__header {
    max-width: 40rem;
    margin: 0 auto clamp(2.75rem, 5vw, 4rem);
    text-align: center;
}

.featured__eyebrow {
    margin: 0 0 1.1rem;
    color: var(--c-primary);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.featured__eyebrow::before,
.featured__eyebrow::after {
    content: "";
    display: inline-block;
    width: 26px;
    height: 1px;
    vertical-align: middle;
    background: var(--c-accent);
}

.featured__eyebrow::before { margin-right: 0.7rem; }
.featured__eyebrow::after  { margin-left: 0.7rem; }

.featured__title {
    margin: 0 0 1.1rem;
    font-family: var(--serif);
    font-weight: 600;
    font-size: clamp(2.25rem, 4vw, 3.25rem);
    line-height: 1.08;
    letter-spacing: -0.02em;
}

.featured__title-accent {
    color: var(--c-primary);
    font-style: italic;
    font-weight: 500;
}

.featured__lede {
    margin: 0;
    color: var(--c-muted);
    font-size: 1.1875rem;
    line-height: 1.65;
}

/* Grid — base is the ≥1025px result; the queries below restate the
   two narrower ranges exactly as they resolved before. */
.featured__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(280px, 1fr));
    gap: 32px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.featured__item {
    display: flex;
    min-width: 0;
}

/* --- Product card --- */
.pcard {
    display: flex;
    flex-direction: column;
    width: 100%;
    background: var(--c-white);
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease), border-color 0.3s var(--ease);
}

.pcard:hover,
.pcard:focus-within {
    transform: translateY(-6px);
    border-color: var(--c-accent);
    box-shadow: var(--shadow-lift);
}

.pcard__media {
    position: relative;
    overflow: hidden;
}

.pcard__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    background: linear-gradient(135deg, rgba(212, 163, 115, 0.16), rgba(184, 59, 77, 0.06)), var(--c-bg);
    transition: .45s ease;
}

.pcard:hover .pcard__image,
.pcard:focus-within .pcard__image {
    transform: scale(1.05);
}

.pcard__tag {
    position: absolute;
    top: 18px;
    left: 18px;
    padding: 10px 18px;
    color: #8A6842;
    background: #FFF9F1;
    border: 1px solid #EADCC8;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.pcard__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: clamp(1.35rem, 2vw, 1.65rem);
}

.pcard__title {
    margin: 0 0 10px;
    font-family: var(--serif);
    font-weight: 600;
    font-size: 1.25rem;
    line-height: 1.25;
    letter-spacing: -0.01em;
}

.pcard__title a {
    color: #2C2A27;
    font-weight: 700;
    text-decoration: none;
    transition: .25s ease;
}

.pcard__title a:hover {
    color: #B28A55;
}

.pcard__meta {
    margin: 0 0 1.35rem;
    color: #787878;
    font-size: .95rem;
}

.pcard__foot {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: space-between;
    gap: 16px;
    margin-top: 20px;
}

.pcard__price {
    margin: 0;
    color: #1D1D1D;
    font-family: var(--serif);
    font-size: 34px;
    font-weight: 700;
    line-height: 1;
    text-align: left;
}

.pcard__price del {
    display: block;
    margin-top: 4px;
    color: #9E9E9E;
    font-size: 1.1rem;
}

.pcard__price ins {
    color: #1D1D1D;
    text-decoration: none;
}

.pcard__price-cur {
    margin-right: 1px;
    color: var(--c-primary);
    font-size: 0.95rem;
    vertical-align: 0.4em;
}

.pcard__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-width: 170px;
    height: 56px;
    padding: 0 28px;
    background: #F8F3EC;
    color: #2C2A27 !important;
    border: 1px solid #E5D8C7;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    text-decoration: none !important;
    box-sizing: border-box;
    cursor: pointer;
    transition: .25s ease;
}

.pcard__btn:hover {
    background: #B28A55;
    color: #fff !important;
    border-color: #B28A55;
    transform: translateY(-2px);
}

.pcard__btn:focus-visible {
    outline: 3px solid var(--c-accent);
    outline-offset: 3px;
}

.pcard__btn-arrow {
    margin-left: 10px;
    font-size: 18px;
    transition: .25s;
}

.pcard__btn:hover .pcard__btn-arrow {
    transform: translateX(5px);
}

/* View-all button */
.featured__more {
    margin-top: clamp(2.5rem, 4vw, 3.5rem);
    text-align: center;
}

.featured__more-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1.1rem 2.25rem;
    color: var(--c-text);
    background: var(--c-white);
    border: 1px solid var(--c-border);
    border-radius: 999px;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    transition: transform 0.35s var(--ease), border-color 0.3s var(--ease), box-shadow 0.35s var(--ease);
}

.featured__more-btn:hover {
    border-color: var(--c-accent);
    transform: translateY(-2px);
    box-shadow: 0 14px 28px -18px rgba(31, 41, 55, 0.28);
}

.featured__more-btn:focus-visible {
    outline: 3px solid var(--c-accent);
    outline-offset: 3px;
}

@media (max-width: 1024px) {
    .featured__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: clamp(1.25rem, 2.4vw, 2rem);
    }
}

@media (max-width: 768px) {
    .featured__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }

    .featured__item {
        width: 100%;
        margin: 0;
    }

    .pcard {
        border-radius: 22px;
        overflow: hidden;
    }

    .pcard__tag {
        top: 10px;
        left: 10px;
        padding: 6px 12px;
        font-size: 10px;
    }

    .pcard__body {
        padding: 14px;
    }

    .pcard__title {
        display: -webkit-box;
        margin-bottom: 8px;
        font-size: 18px;
        line-height: 1.35;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .pcard__meta {
        display: -webkit-box;
        margin-bottom: 10px;
        font-size: 13px;
        line-height: 1.4;
        -webkit-line-clamp: 1;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .pcard__price {
        margin-bottom: 0;
        font-size: 24px;
    }

    .pcard__price del {
        font-size: 15px;
    }

    .pcard__btn {
        width: 100%;
        min-width: 100%;
        height: 42px;
        padding: 0 16px;
        font-size: 14px;
    }
}

@media (max-width: 560px) {
    .featured__lede {
        font-size: 1.0625rem;
    }
}


/* ============================================================================
   9. HOMEPAGE SECTION — WHY STITCH LIBRARY (.why / .fcard)
   ============================================================================ */

.why {
    --c-primary: #B83B4D;
    --c-text: #1F2937;
    --c-muted: #6B7280;
    --c-bg: #FFFDF9;
    --c-accent: #D4A373;
    --c-white: #FFFFFF;
    --c-border: #ECE8E1;
    --serif: "Fraunces", Georgia, "Times New Roman", serif;
    --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --radius: 32px;
    --ease: cubic-bezier(0.22, 1, 0.36, 1);
    --shadow: 0 22px 50px -34px rgba(31, 41, 55, 0.28);
    --shadow-lift: 0 40px 70px -30px rgba(31, 41, 55, 0.32);

    box-sizing: border-box;
    padding-block: clamp(4.5rem, 9vw, 7.5rem);
    background: var(--c-bg);
    color: var(--c-text);
    font-family: var(--sans);
    -webkit-font-smoothing: antialiased;
}

.why *,
.why *::before,
.why *::after {
    box-sizing: border-box;
}

.why__inner {
    width: 100%;
    max-width: 1240px;
    margin-inline: auto;
    padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.why__header {
    max-width: 40rem;
    margin: 0 auto clamp(2.75rem, 5vw, 4rem);
    text-align: center;
}

.why__eyebrow {
    margin: 0 0 1.1rem;
    color: var(--c-primary);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.why__eyebrow::before,
.why__eyebrow::after {
    content: "";
    display: inline-block;
    width: 26px;
    height: 1px;
    vertical-align: middle;
    background: var(--c-accent);
}

.why__eyebrow::before { margin-right: 0.7rem; }
.why__eyebrow::after  { margin-left: 0.7rem; }

.why__title {
    margin: 0 0 1.1rem;
    font-family: var(--serif);
    font-weight: 600;
    font-size: clamp(2.25rem, 4vw, 3.25rem);
    line-height: 1.08;
    letter-spacing: -0.02em;
}

.why__title-accent {
    color: var(--c-primary);
    font-style: italic;
    font-weight: 500;
}

.why__lede {
    margin: 0;
    color: var(--c-muted);
    font-size: 1.1875rem;
    line-height: 1.65;
}

.why__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(1.25rem, 2.4vw, 2rem);
    margin: 0;
    padding: 0;
    list-style: none;
}

.why__item {
    display: flex;
    min-width: 0;
}

.fcard {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: clamp(2rem, 3vw, 2.75rem);
    background: var(--c-white);
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease), border-color 0.3s var(--ease);
}

.fcard:hover {
    transform: translateY(-6px);
    border-color: var(--c-accent);
    box-shadow: var(--shadow-lift);
}

.fcard__icon {
    display: grid;
    place-items: center;
    width: 62px;
    height: 62px;
    margin-bottom: 1.5rem;
    color: var(--c-primary);
    background: rgba(184, 59, 77, 0.08);
    border: 1px solid rgba(184, 59, 77, 0.14);
    border-radius: 20px;
    transition: transform 0.4s var(--ease);
}

.fcard:hover .fcard__icon {
    transform: translateY(-2px) rotate(-3deg);
}

.fcard__title {
    margin: 0 0 0.75rem;
    font-family: var(--serif);
    font-weight: 600;
    font-size: 1.5rem;
    line-height: 1.2;
    letter-spacing: -0.01em;
}

.fcard__text {
    margin: 0;
    color: var(--c-muted);
    font-size: 1rem;
    line-height: 1.65;
}

@media (max-width: 900px) {
    .why__grid {
        grid-template-columns: 1fr;
        max-width: 32rem;
        margin-inline: auto;
    }
}

@media (max-width: 560px) {
    .why__lede { font-size: 1.0625rem; }
}


/* ============================================================================
   10. HOMEPAGE SECTION — BEST SELLERS (.bestsellers / .showcase)
   ============================================================================ */

.bestsellers {
    --c-primary: #B83B4D;
    --c-primary-dark: #9C2F3F;
    --c-text: #1F2937;
    --c-muted: #6B7280;
    --c-bg: #FFFDF9;
    --c-accent: #D4A373;
    --c-white: #FFFFFF;
    --c-border: #ECE8E1;
    --serif: "Fraunces", Georgia, "Times New Roman", serif;
    --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --radius: 32px;
    --ease: cubic-bezier(0.22, 1, 0.36, 1);
    --shadow: 0 30px 60px -36px rgba(31, 41, 55, 0.3);

    box-sizing: border-box;
    padding-block: clamp(4.5rem, 9vw, 7.5rem);
    background: var(--c-bg);
    color: var(--c-text);
    font-family: var(--sans);
    -webkit-font-smoothing: antialiased;
}

.bestsellers *,
.bestsellers *::before,
.bestsellers *::after {
    box-sizing: border-box;
}

.bestsellers__inner {
    width: 100%;
    max-width: 1240px;
    margin-inline: auto;
    padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.bestsellers__header {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: end;
    gap: 1.5rem 3rem;
    margin-bottom: clamp(3rem, 5vw, 4.5rem);
    padding-bottom: clamp(1.75rem, 3vw, 2.5rem);
    border-bottom: 1px solid var(--c-border);
}

.bestsellers__eyebrow {
    margin: 0 0 1rem;
    color: var(--c-primary);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.bestsellers__title {
    margin: 0;
    font-family: var(--serif);
    font-weight: 600;
    font-size: clamp(2.25rem, 4vw, 3.25rem);
    line-height: 1.05;
    letter-spacing: -0.02em;
}

.bestsellers__title-accent {
    color: var(--c-primary);
    font-style: italic;
    font-weight: 500;
}

.bestsellers__lede {
    margin: 0;
    color: var(--c-muted);
    font-size: 1.1875rem;
    line-height: 1.65;
}

.bestsellers__list {
    display: flex;
    flex-direction: column;
    gap: clamp(2.5rem, 5vw, 4.5rem);
}

.showcase {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: clamp(2rem, 4vw, 4rem);
    align-items: center;
}

.showcase--reverse .showcase__media { order: 2; }
.showcase--reverse .showcase__body  { order: 1; }

.showcase__media {
    position: relative;
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
}

.showcase__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 9 / 7;
    object-fit: cover;
    background: linear-gradient(135deg, rgba(212, 163, 115, 0.16), rgba(184, 59, 77, 0.06)), var(--c-white);
    transition: transform 0.7s var(--ease);
}

.showcase__media:hover .showcase__image {
    transform: scale(1.04);
}

.showcase__rank {
    position: absolute;
    top: 1.25rem;
    left: 1.5rem;
    color: var(--c-white);
    font-family: var(--serif);
    font-weight: 600;
    font-size: 3.25rem;
    line-height: 1;
    mix-blend-mode: difference;
    opacity: 0.9;
}

.showcase__body { min-width: 0; }

.showcase__kicker {
    margin: 0 0 0.85rem;
    color: var(--c-muted);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.showcase__title {
    margin: 0 0 1rem;
    font-family: var(--serif);
    font-weight: 600;
    font-size: clamp(1.9rem, 3vw, 2.6rem);
    line-height: 1.12;
    letter-spacing: -0.02em;
}

.showcase__text {
    margin: 0 0 1.75rem;
    max-width: 32rem;
    color: var(--c-muted);
    font-size: 1.0625rem;
    line-height: 1.65;
}

.showcase__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem 2.25rem;
    margin: 0 0 2rem;
    padding: 1.35rem 0 0;
    list-style: none;
    border-top: 1px solid var(--c-border);
}

.showcase__stat {
    color: var(--c-muted);
    font-size: 0.9rem;
}

.showcase__stat strong {
    display: block;
    margin-bottom: 0.3rem;
    color: var(--c-text);
    font-family: var(--serif);
    font-weight: 600;
    font-size: 1.6rem;
    line-height: 1;
}

.showcase__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 1.05rem 2rem;
    color: var(--c-white);
    background: var(--c-primary);
    border-radius: 999px;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    box-shadow: 0 14px 30px -12px rgba(184, 59, 77, 0.6);
    transition: transform 0.35s var(--ease), background-color 0.3s var(--ease), box-shadow 0.35s var(--ease);
}

.showcase__btn:hover {
    background: var(--c-primary-dark);
    transform: translateY(-2px);
    box-shadow: 0 20px 38px -12px rgba(184, 59, 77, 0.7);
}

.showcase__btn:focus-visible {
    outline: 3px solid var(--c-accent);
    outline-offset: 3px;
}

.showcase__btn-arrow {
    transition: transform 0.3s var(--ease);
}

.showcase__btn:hover .showcase__btn-arrow {
    transform: translateX(4px);
}

@media (max-width: 900px) {
    .bestsellers__header {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .showcase,
    .showcase--reverse {
        grid-template-columns: 1fr;
        gap: 1.75rem;
    }

    .showcase--reverse .showcase__media,
    .showcase--reverse .showcase__body {
        order: 0;
    }
}

@media (max-width: 560px) {
    .bestsellers__lede { font-size: 1.0625rem; }
    .showcase__stats   { gap: 1rem 1.5rem; }
}


/* ============================================================================
   11. HOMEPAGE SECTION — TESTIMONIALS (.testimonials / .quote)
   ============================================================================ */

.testimonials {
    --c-primary: #B83B4D;
    --c-text: #1F2937;
    --c-muted: #6B7280;
    --c-bg: #FFFDF9;
    --c-accent: #D4A373;
    --c-white: #FFFFFF;
    --c-border: #ECE8E1;
    --serif: "Fraunces", Georgia, "Times New Roman", serif;
    --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --radius: 32px;
    --ease: cubic-bezier(0.22, 1, 0.36, 1);
    --shadow: 0 22px 50px -34px rgba(31, 41, 55, 0.28);
    --shadow-lift: 0 40px 70px -30px rgba(31, 41, 55, 0.32);

    box-sizing: border-box;
    padding-block: clamp(4.5rem, 9vw, 7.5rem);
    background: var(--c-bg);
    color: var(--c-text);
    font-family: var(--sans);
    -webkit-font-smoothing: antialiased;
}

.testimonials *,
.testimonials *::before,
.testimonials *::after {
    box-sizing: border-box;
}

.testimonials__inner {
    width: 100%;
    max-width: 1240px;
    margin-inline: auto;
    padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.testimonials__header {
    max-width: 40rem;
    margin: 0 auto clamp(2.75rem, 5vw, 4rem);
    text-align: center;
}

.testimonials__eyebrow {
    margin: 0 0 1.1rem;
    color: var(--c-primary);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.testimonials__eyebrow::before,
.testimonials__eyebrow::after {
    content: "";
    display: inline-block;
    width: 26px;
    height: 1px;
    vertical-align: middle;
    background: var(--c-accent);
}

.testimonials__eyebrow::before { margin-right: 0.7rem; }
.testimonials__eyebrow::after  { margin-left: 0.7rem; }

.testimonials__title {
    margin: 0 0 1.1rem;
    font-family: var(--serif);
    font-weight: 600;
    font-size: clamp(2.25rem, 4vw, 3.25rem);
    line-height: 1.08;
    letter-spacing: -0.02em;
}

.testimonials__title-accent {
    color: var(--c-primary);
    font-style: italic;
    font-weight: 500;
}

.testimonials__lede {
    margin: 0;
    color: var(--c-muted);
    font-size: 1.1875rem;
    line-height: 1.65;
}

.testimonials__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(1.25rem, 2.4vw, 2rem);
    margin: 0;
    padding: 0;
    list-style: none;
}

.testimonials__item {
    display: flex;
    min-width: 0;
}

.quote {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    margin: 0;
    padding: clamp(2rem, 3vw, 2.75rem);
    background: var(--c-white);
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease), border-color 0.3s var(--ease);
}

.quote:hover {
    transform: translateY(-6px);
    border-color: var(--c-accent);
    box-shadow: var(--shadow-lift);
}

.quote__mark {
    margin-bottom: 0.5rem;
    color: var(--c-accent);
    font-family: var(--serif);
    font-weight: 600;
    font-size: 4.5rem;
    line-height: 0.7;
    opacity: 0.5;
}

.quote__stars {
    display: inline-flex;
    gap: 3px;
    margin-bottom: 1.1rem;
    color: var(--c-primary);
}

.quote__text {
    flex: 1;
    margin: 0 0 1.75rem;
    color: var(--c-text);
    font-family: var(--serif);
    font-weight: 400;
    font-size: 1.15rem;
    line-height: 1.55;
    letter-spacing: -0.01em;
}

.quote__person {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--c-border);
}

.quote__avatar {
    display: block;
    flex: none;
    width: 52px;
    height: 52px;
    border: 1px solid var(--c-border);
    border-radius: 50%;
    overflow: hidden;
    background: linear-gradient(135deg, rgba(212, 163, 115, 0.2), rgba(184, 59, 77, 0.08)), var(--c-bg);
}

.quote__avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.quote__id {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.quote__name {
    color: var(--c-text);
    font-size: 1rem;
    font-weight: 600;
}

.quote__country {
    color: var(--c-muted);
    font-size: 0.85rem;
}

@media (max-width: 900px) {
    .testimonials__grid {
        grid-template-columns: 1fr;
        max-width: 34rem;
        margin-inline: auto;
    }
}

@media (max-width: 560px) {
    .testimonials__lede { font-size: 1.0625rem; }
}


/* ============================================================================
   12. HOMEPAGE SECTION — FAQ (.faq)
   ============================================================================ */

.faq {
    --c-primary: #B83B4D;
    --c-text: #1F2937;
    --c-muted: #6B7280;
    --c-bg: #FFFDF9;
    --c-accent: #D4A373;
    --c-white: #FFFFFF;
    --c-border: #ECE8E1;
    --serif: "Fraunces", Georgia, "Times New Roman", serif;
    --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --radius: 32px;
    --ease: cubic-bezier(0.22, 1, 0.36, 1);
    --shadow: 0 22px 50px -34px rgba(31, 41, 55, 0.28);

    box-sizing: border-box;
    padding-block: clamp(4.5rem, 9vw, 7.5rem);
    background: var(--c-bg);
    color: var(--c-text);
    font-family: var(--sans);
    -webkit-font-smoothing: antialiased;
}

.faq *,
.faq *::before,
.faq *::after {
    box-sizing: border-box;
}

.faq__inner {
    width: 100%;
    max-width: 860px;
    margin-inline: auto;
    padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.faq__header {
    margin-bottom: clamp(2.75rem, 5vw, 4rem);
    text-align: center;
}

.faq__eyebrow {
    margin: 0 0 1.1rem;
    color: var(--c-primary);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.faq__eyebrow::before,
.faq__eyebrow::after {
    content: "";
    display: inline-block;
    width: 26px;
    height: 1px;
    vertical-align: middle;
    background: var(--c-accent);
}

.faq__eyebrow::before { margin-right: 0.7rem; }
.faq__eyebrow::after  { margin-left: 0.7rem; }

.faq__title {
    margin: 0 0 1.1rem;
    font-family: var(--serif);
    font-weight: 600;
    font-size: clamp(2.25rem, 4vw, 3.25rem);
    line-height: 1.08;
    letter-spacing: -0.02em;
}

.faq__title-accent {
    color: var(--c-primary);
    font-style: italic;
    font-weight: 500;
}

.faq__lede {
    margin: 0 auto;
    max-width: 34rem;
    color: var(--c-muted);
    font-size: 1.1875rem;
    line-height: 1.65;
}

.faq__list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.faq__item {
    background: var(--c-white);
    border: 1px solid var(--c-border);
    border-radius: 24px;
    box-shadow: var(--shadow);
    overflow: hidden;
    transition: border-color 0.3s var(--ease), box-shadow 0.3s var(--ease);
}

.faq__item[open] {
    border-color: var(--c-accent);
}

.faq__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    padding: clamp(1.35rem, 2.4vw, 1.85rem) clamp(1.5rem, 2.6vw, 2.25rem);
    list-style: none;
    cursor: pointer;
    transition: color 0.3s var(--ease);
}

.faq__summary::-webkit-details-marker {
    display: none;
}

.faq__summary:focus-visible {
    outline: 3px solid var(--c-accent);
    outline-offset: -3px;
    border-radius: 24px;
}

.faq__question {
    color: var(--c-text);
    font-family: var(--serif);
    font-weight: 600;
    font-size: clamp(1.1rem, 1.8vw, 1.3rem);
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.faq__item[open] .faq__question {
    color: var(--c-primary);
}

.faq__icon {
    display: grid;
    place-items: center;
    flex: none;
    width: 40px;
    height: 40px;
    color: var(--c-primary);
    background: rgba(184, 59, 77, 0.08);
    border: 1px solid rgba(184, 59, 77, 0.14);
    border-radius: 50%;
    transition: transform 0.4s var(--ease), background-color 0.3s var(--ease);
}

.faq__item[open] .faq__icon {
    transform: rotate(135deg);
}

.faq__answer {
    padding: 0 clamp(1.5rem, 2.6vw, 2.25rem) clamp(1.5rem, 2.4vw, 2rem);
}

.faq__answer p {
    margin: 0;
    color: var(--c-muted);
    font-size: 1.0625rem;
    line-height: 1.7;
}

.faq__item[open] .faq__answer {
    animation: faq-reveal 0.45s var(--ease);
}

@keyframes faq-reveal {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 560px) {
    .faq__lede { font-size: 1.0625rem; }
}


/* ============================================================================
   13. HOMEPAGE SECTION — NEWSLETTER (.newsletter)
   ============================================================================ */

.newsletter {
    --c-primary: #B83B4D;
    --c-primary-dark: #9C2F3F;
    --c-text: #1F2937;
    --c-muted: #6B7280;
    --c-bg: #FFFDF9;
    --c-accent: #D4A373;
    --c-white: #FFFFFF;
    --c-border: #ECE8E1;
    --serif: "Fraunces", Georgia, "Times New Roman", serif;
    --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --radius: 32px;
    --ease: cubic-bezier(0.22, 1, 0.36, 1);

    box-sizing: border-box;
    padding-block: clamp(4.5rem, 9vw, 7.5rem);
    background: var(--c-bg);
    color: var(--c-text);
    font-family: var(--sans);
    -webkit-font-smoothing: antialiased;
}

.newsletter *,
.newsletter *::before,
.newsletter *::after {
    box-sizing: border-box;
}

.newsletter__inner {
    width: 100%;
    max-width: 1240px;
    margin-inline: auto;
    padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.newsletter__panel {
    position: relative;
    overflow: hidden;
    padding: clamp(2.75rem, 6vw, 5.5rem) clamp(1.5rem, 5vw, 4rem);
    text-align: center;
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    background:
        radial-gradient(120% 140% at 15% 10%, rgba(212, 163, 115, 0.22), transparent 55%),
        radial-gradient(120% 140% at 85% 90%, rgba(184, 59, 77, 0.14), transparent 55%),
        linear-gradient(180deg, #FFFFFF, var(--c-bg));
    box-shadow: 0 40px 80px -40px rgba(31, 41, 55, 0.3);
}

.newsletter__glow {
    position: absolute;
    top: -30%;
    left: 50%;
    width: 40rem;
    height: 40rem;
    transform: translateX(-50%);
    pointer-events: none;
    background: radial-gradient(circle, rgba(212, 163, 115, 0.18), transparent 62%);
}

.newsletter__content {
    position: relative;
    z-index: 1;
    max-width: 42rem;
    margin-inline: auto;
}

.newsletter__eyebrow {
    margin: 0 0 1.1rem;
    color: var(--c-primary);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.newsletter__eyebrow::before,
.newsletter__eyebrow::after {
    content: "";
    display: inline-block;
    width: 26px;
    height: 1px;
    vertical-align: middle;
    background: var(--c-accent);
}

.newsletter__eyebrow::before { margin-right: 0.7rem; }
.newsletter__eyebrow::after  { margin-left: 0.7rem; }

.newsletter__title {
    margin: 0 0 1.1rem;
    font-family: var(--serif);
    font-weight: 600;
    font-size: clamp(2.25rem, 4.4vw, 3.5rem);
    line-height: 1.06;
    letter-spacing: -0.02em;
}

.newsletter__title-accent {
    color: var(--c-primary);
    font-style: italic;
    font-weight: 500;
}

.newsletter__lede {
    margin: 0 auto 2.5rem;
    max-width: 34rem;
    color: var(--c-muted);
    font-size: 1.1875rem;
    line-height: 1.65;
}

.newsletter__form {
    max-width: 34rem;
    margin-inline: auto;
}

.newsletter__field-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.newsletter__field {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.5rem 0.5rem 1.15rem;
    background: var(--c-white);
    border: 1px solid var(--c-border);
    border-radius: 999px;
    box-shadow: 0 18px 40px -26px rgba(31, 41, 55, 0.28);
    transition: border-color 0.3s var(--ease), box-shadow 0.3s var(--ease);
}

.newsletter__field:focus-within {
    border-color: var(--c-accent);
    box-shadow: 0 20px 44px -24px rgba(184, 59, 77, 0.32);
}

.newsletter__field-icon {
    display: grid;
    place-items: center;
    flex: none;
    color: var(--c-muted);
}

.newsletter__input {
    flex: 1;
    min-width: 0;
    padding: 0.85rem 0.25rem;
    color: var(--c-text);
    background: transparent;
    border: 0;
    outline: none;
    font-family: var(--sans);
    font-size: 1rem;
}

.newsletter__input::placeholder {
    color: var(--c-muted);
}

.newsletter__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex: none;
    padding: 0.95rem 1.9rem;
    color: var(--c-white);
    background: var(--c-primary);
    border: 1px solid transparent;
    border-radius: 999px;
    font-family: var(--sans);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 14px 30px -12px rgba(184, 59, 77, 0.6);
    transition: transform 0.35s var(--ease), background-color 0.3s var(--ease), box-shadow 0.35s var(--ease);
}

.newsletter__btn:hover {
    background: var(--c-primary-dark);
    transform: translateY(-2px);
    box-shadow: 0 20px 38px -12px rgba(184, 59, 77, 0.7);
}

.newsletter__btn:focus-visible {
    outline: 3px solid var(--c-accent);
    outline-offset: 3px;
}

.newsletter__btn-arrow {
    transition: transform 0.3s var(--ease);
}

.newsletter__btn:hover .newsletter__btn-arrow {
    transform: translateX(4px);
}

.newsletter__note {
    margin: 1.1rem 0 0;
    color: var(--c-muted);
    font-size: 0.85rem;
}

@media (max-width: 560px) {
    .newsletter__lede { font-size: 1.0625rem; }

    .newsletter__field {
        flex-direction: column;
        align-items: stretch;
        gap: 0.65rem;
        padding: 0.75rem;
        border-radius: 24px;
    }

    .newsletter__field-icon { display: none; }

    .newsletter__input {
        padding: 0.85rem 1rem;
        text-align: center;
    }

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


/* ============================================================================
   14. EXPLORE COLLECTIONS BANNER (.sl-explore)
   ============================================================================ */

.sl-explore {
    margin: 80px auto;
    padding: 110px 20px;
    background: #FCFAF7;
    border-radius: 40px;
    text-align: center;
}

.sl-explore__content {
    max-width: 760px;
    margin: auto;
}

.sl-explore__eyebrow {
    display: inline-block;
    margin-bottom: 24px;
    padding: 10px 18px;
    color: #9B7A55;
    background: #F7F0E7;
    border: 1px solid #E8D8C5;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.sl-explore__title {
    margin-bottom: 24px;
    color: #2C2A27;
    font-size: 54px;
    font-weight: 700;
    line-height: 1.1;
}

.sl-explore__text {
    max-width: 680px;
    margin: 0 auto 45px;
    color: #666;
    font-size: 20px;
    line-height: 1.8;
}

.sl-explore__button {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 20px 42px;
    background: #2C2A27;
    color: #fff;
    border-radius: 999px;
    font-size: 18px;
    font-weight: 600;
    text-decoration: none;
    transition: .3s;
}

.sl-explore__button:hover {
    background: #B28A55;
    color: #fff;
    transform: translateY(-3px);
}

.sl-explore__button span {
    transition: .3s;
}

.sl-explore__button:hover span {
    transform: translateX(6px);
}

@media (max-width: 768px) {
    .sl-explore {
        margin: 50px 0;
        padding: 70px 22px;
        border-radius: 28px;
    }

    .sl-explore__title { font-size: 34px; }

    .sl-explore__text {
        font-size: 17px;
        line-height: 1.7;
    }

    .sl-explore__button {
        justify-content: center;
        width: 100%;
        padding: 18px 20px;
        font-size: 17px;
    }
}


/* ============================================================================
   15. LEGACY PRODUCT-PAGE SYSTEM (.sl-pdp and shared .sl-* components)
   ----------------------------------------------------------------------------
   These components were previously spread across three blocks that overrode
   one another. Merged here to the final computed cascade result.

   The eight custom properties below (--sl-r*, --sl-sand, --sl-accent-dark)
   were referenced but never declared, so those rules were invalid and fell
   back to initial values. They are now declared, which restores pill buttons,
   rounded media/cards and the sand background.
   ============================================================================ */

.sl-pdp,
.sl-scope,
.sl-page,
.sl-home {
    /* Colour */
    --sl-primary: #B83B4D;
    --sl-primary-dark: #9C2F3F;
    --sl-text: #1F2937;
    --sl-ink: #1F2937;
    --sl-muted: #6E6A62;
    --sl-bg: #FFFDF9;
    --sl-alt: #FFFFFF;
    --sl-cream: #FFFDF9;
    --sl-cream-alt: #FAF4EA;
    --sl-sand: #F3EBDD;
    --sl-accent: #D4A373;
    --sl-accent-dark: #BD8A58;
    --sl-white: #FFFFFF;
    --sl-border: #ECE4D6;

    /* Type */
    --sl-serif: "Fraunces", Georgia, serif;
    --sl-sans: "Inter", system-ui, -apple-system, sans-serif;

    /* Form */
    --sl-radius: 20px;
    --sl-radius-sm: 18px;
    --sl-radius-lg: 28px;
    --sl-r-sm: 12px;
    --sl-r: 20px;
    --sl-r-lg: 28px;
    --sl-r-pill: 999px;
    --sl-shadow: 0 26px 60px -32px rgba(31, 41, 55, 0.28);
    --sl-shadow-sm: 0 6px 20px -12px rgba(31, 41, 55, 0.18);
    --sl-ease: cubic-bezier(0.22, 1, 0.36, 1);

    box-sizing: border-box;
    background: var(--sl-cream);
    color: var(--sl-ink);
    font-family: var(--sl-sans);
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

.sl-pdp *,
.sl-pdp *::before,
.sl-pdp *::after,
.sl-scope *,
.sl-page *,
.sl-home * {
    box-sizing: border-box;
}

.sl-pdp img,
.sl-scope img,
.sl-page img,
.sl-home img {
    display: block;
    max-width: 100%;
    height: auto;
}

.sl-pdp h2,
.sl-pdp h3,
.sl-scope h1, .sl-scope h2, .sl-scope h3, .sl-scope h4,
.sl-page h1, .sl-page h2, .sl-page h3, .sl-page h4,
.sl-home h1, .sl-home h2, .sl-home h3 {
    margin: 0;
    color: var(--sl-ink);
    font-family: var(--sl-serif);
    font-weight: 600;
    line-height: 1.12;
    letter-spacing: -0.015em;
}

.sl-pdp p { margin: 0; }

.sl-pdp ul,
.sl-pdp ol {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* --- Layout --- */
.sl-section {
    padding-block: clamp(3.5rem, 7vw, 6.5rem);
}

.sl-section--alt  { background: var(--sl-cream-alt); }
.sl-section--sand { background: var(--sl-sand); }

.sl-container {
    width: 100%;
    max-width: 1160px;
    margin-inline: auto;
    padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.sl-container--narrow { max-width: 780px; }

.sl-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2.25rem, 5vw, 4.5rem);
    align-items: center;
}

.sl-row--reverse .sl-media   { order: 2; }
.sl-row--reverse .sl-content { order: 1; }

.sl-content { min-width: 0; max-width: 38rem; }

.sl-head {
    max-width: 40rem;
    margin: 0 auto clamp(2.5rem, 4vw, 3.5rem);
    text-align: center;
}

.sl-head .sl-title { margin-bottom: 0; }
.sl-head .sl-eyebrow { justify-content: center; }

/* --- Media --- */
.sl-media {
    margin: 0;
    background: var(--sl-cream-alt);
    border-radius: var(--sl-r-lg);
    overflow: hidden;
    box-shadow: var(--sl-shadow);
}

.sl-image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    background: linear-gradient(135deg, rgba(212, 163, 115, 0.14), rgba(184, 59, 77, 0.05)), var(--sl-white);
    border: 1px solid var(--sl-border);
    border-radius: var(--sl-radius);
    box-shadow: var(--sl-shadow);
    transition: transform 0.8s var(--sl-ease);
}

.sl-media:hover .sl-image { transform: scale(1.04); }

/* --- Typography --- */
.sl-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    margin: 0 0 1rem;
    color: var(--sl-primary);
    font-family: var(--sl-sans);
    font-size: 0.76rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.sl-eyebrow::before {
    content: "";
    width: 24px;
    height: 1px;
    background: var(--sl-accent);
}

.sl-eyebrow--center { justify-content: center; }
.sl-eyebrow--light  { color: var(--sl-accent); }

.sl-title {
    margin-bottom: 1rem;
    color: var(--sl-text);
    font-family: var(--sl-serif);
    font-weight: 600;
    font-size: clamp(1.9rem, 4vw, 2.9rem);
    line-height: 1.12;
    letter-spacing: -0.02em;
}

.sl-accent-text {
    color: var(--sl-primary);
    font-style: italic;
    font-weight: 500;
}

.sl-text,
.sl-lede {
    color: var(--sl-muted);
    font-size: 1.06rem;
    line-height: 1.65;
}

.sl-text { margin-bottom: 1.5rem; }

/* --- Check list --- */
.sl-list {
    display: grid;
    gap: 0.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.sl-list__item {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-left: 2rem;
    color: var(--sl-text);
    font-size: 1.02rem;
}

.sl-list__item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.15rem;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(184, 59, 77, 0.1)
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23B83B4D' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6L9 17l-5-5'/></svg>")
        center / 12px no-repeat;
}

/* Legacy inline check element */
.sl-check {
    position: relative;
    flex: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: rgba(184, 59, 77, 0.1);
}

.sl-check::after {
    content: "";
    position: absolute;
    left: 8px;
    top: 6px;
    width: 6px;
    height: 10px;
    border: solid var(--sl-primary);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* --- Badges --- */
.sl-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.sl-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.5rem 0.95rem;
    color: var(--sl-ink);
    background: var(--sl-white);
    border: 1px solid var(--sl-border);
    border-radius: var(--sl-r-pill);
    font-size: 0.82rem;
    font-weight: 600;
}

.sl-badge svg {
    width: 15px;
    height: 15px;
    color: var(--sl-accent-dark);
}

/* --- Chips --- */
.sl-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.sl-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1.1rem;
    color: var(--sl-ink);
    background: var(--sl-white);
    border: 1px solid var(--sl-border);
    border-radius: var(--sl-r-pill);
    font-size: 0.92rem;
    font-weight: 500;
    transition: border-color 0.3s var(--sl-ease), transform 0.3s var(--sl-ease);
}

.sl-chip::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--sl-accent);
}

.sl-chip:hover {
    border-color: var(--sl-accent);
    transform: translateY(-2px);
}

/* --- Feature boxes --- */
.sl-features {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.1rem;
    margin-top: 0.5rem;
}

.sl-feature {
    padding: 1.5rem 1.4rem;
    background: var(--sl-white);
    border: 1px solid var(--sl-border);
    border-radius: var(--sl-r);
    box-shadow: var(--sl-shadow-sm);
    transition: transform 0.4s var(--sl-ease), box-shadow 0.4s var(--sl-ease), border-color 0.3s var(--sl-ease);
}

.sl-feature:hover {
    transform: translateY(-4px);
    border-color: var(--sl-accent);
    box-shadow: var(--sl-shadow);
}

.sl-feature__icon {
    display: block;
    width: 40px;
    height: 40px;
    margin-bottom: 1rem;
    background: rgba(184, 59, 77, 0.08);
    border: 1px solid rgba(184, 59, 77, 0.14);
    border-radius: 12px;
}

.sl-feature__ic {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    margin-bottom: 1rem;
    color: var(--sl-primary);
    background: linear-gradient(140deg, rgba(184, 59, 77, 0.12), rgba(212, 163, 115, 0.18));
    border-radius: 13px;
}

.sl-feature__ic svg { width: 23px; height: 23px; }

.sl-feature__title {
    margin-bottom: 0.3rem;
    color: var(--sl-text);
    font-family: var(--sl-serif);
    font-weight: 600;
    font-size: 1.12rem;
}

.sl-feature__text {
    margin: 0;
    color: var(--sl-muted);
    font-size: 0.94rem;
    line-height: 1.6;
}

/* --- Statistics --- */
.sl-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 2.5rem;
    margin: 0;
    padding-top: 1.75rem;
    border-top: 1px solid var(--sl-border);
}

.sl-stat {
    display: inline-block;
    margin: 0.75rem 0.75rem 0 0;
    padding: 0.9rem 1.4rem;
    text-align: center;
    background: var(--sl-white);
    border: 1px solid var(--sl-border);
    border-radius: 14px;
    box-shadow: var(--sl-shadow-sm);
}

.sl-stat b {
    display: block;
    color: var(--sl-primary);
    font-family: var(--sl-serif);
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1;
}

.sl-stat span {
    display: block;
    margin-top: 0.3rem;
    color: var(--sl-muted);
    font-family: var(--sl-sans);
    font-size: 0.8rem;
    font-weight: 500;
}

.sl-stat__value {
    margin: 0;
    color: var(--sl-text);
    font-family: var(--sl-serif);
    font-weight: 600;
    font-size: 2.125rem;
    line-height: 1;
}

.sl-stat__label {
    margin: 0.4rem 0 0;
    color: var(--sl-muted);
    font-size: 0.85rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

/* --- Steps --- */
.sl-steps {
    display: grid;
    gap: 1.1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.sl-step {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.sl-step__num {
    display: grid;
    place-items: center;
    flex: none;
    width: 46px;
    height: 46px;
    color: var(--sl-primary);
    background: var(--sl-cream-alt);
    border: 1px solid var(--sl-border);
    border-radius: 50%;
    font-family: var(--sl-serif);
    font-size: 1.2rem;
    font-weight: 600;
}

.sl-step__body { min-width: 0; }

.sl-step__title {
    margin-bottom: 0.2rem;
    color: var(--sl-text);
    font-family: var(--sl-serif);
    font-weight: 600;
    font-size: 1.12rem;
}

.sl-step__text {
    margin: 0;
    color: var(--sl-muted);
    font-size: 0.96rem;
    line-height: 1.6;
}

/* --- FAQ --- */
.sl-faq {
    display: grid;
    gap: 0.85rem;
}

.sl-faq__item {
    background: var(--sl-white);
    border: 1px solid var(--sl-border);
    border-radius: var(--sl-r-sm);
    overflow: hidden;
    box-shadow: var(--sl-shadow-sm);
    transition: box-shadow 0.3s var(--sl-ease), border-color 0.3s var(--sl-ease);
}

.sl-faq__item[open] {
    border-color: #ddd0bb;
    box-shadow: var(--sl-shadow-sm);
}

.sl-faq__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.2rem 1.4rem;
    color: var(--sl-ink);
    font-family: var(--sl-serif);
    font-size: 1.04rem;
    font-weight: 600;
    list-style: none;
    cursor: pointer;
}

.sl-faq__summary::-webkit-details-marker { display: none; }

.sl-faq__summary::after {
    content: "+";
    color: var(--sl-primary);
    font-family: var(--sl-sans);
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1;
    transition: transform 0.3s var(--sl-ease);
}

.sl-faq__item[open] .sl-faq__summary        { color: var(--sl-primary); }
.sl-faq__item[open] .sl-faq__summary::after { transform: rotate(45deg); }

.sl-faq__summary:focus-visible {
    outline: 3px solid var(--sl-accent);
    outline-offset: -3px;
    border-radius: var(--sl-r-sm);
}

/* Legacy circular +/- icon */
.sl-faq__icon {
    position: relative;
    flex: none;
    width: 34px;
    height: 34px;
    background: rgba(184, 59, 77, 0.08);
    border: 1px solid rgba(184, 59, 77, 0.14);
    border-radius: 50%;
    transition: transform 0.4s var(--sl-ease);
}

.sl-faq__icon::before,
.sl-faq__icon::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 12px;
    height: 2px;
    background: var(--sl-primary);
    transform: translate(-50%, -50%);
}

.sl-faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); }

.sl-faq__item[open] .sl-faq__icon { transform: rotate(135deg); }

.sl-faq__answer {
    padding: 0 1.4rem 1.3rem;
    color: var(--sl-muted);
    font-size: 0.98rem;
    line-height: 1.7;
}

.sl-faq__answer p {
    margin: 0;
    color: var(--sl-muted);
    font-size: 1rem;
    line-height: 1.7;
}

/* --- Buttons --- */
.sl-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    padding: 1.1rem 2.2rem;
    font-family: var(--sl-sans);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    border: 1px solid transparent;
    border-radius: var(--sl-r-pill);
    cursor: pointer;
    transition: transform 0.35s var(--sl-ease), background 0.3s var(--sl-ease),
        box-shadow 0.35s var(--sl-ease), border-color 0.3s var(--sl-ease), color 0.3s var(--sl-ease);
}

.sl-btn:focus-visible {
    outline: 3px solid var(--sl-accent);
    outline-offset: 3px;
}

.sl-btn--primary {
    background: var(--sl-primary);
    color: var(--sl-white);
    box-shadow: 0 16px 34px -14px rgba(184, 59, 77, 0.6);
}

.sl-btn--primary:hover {
    background: var(--sl-primary-dark);
    transform: translateY(-2px);
    box-shadow: 0 22px 42px -14px rgba(184, 59, 77, 0.72);
}

.sl-btn--ghost {
    background: var(--sl-white);
    color: var(--sl-ink);
    border-color: var(--sl-border);
}

.sl-btn--ghost:hover {
    border-color: var(--sl-accent);
    transform: translateY(-2px);
    box-shadow: var(--sl-shadow-sm);
}

.sl-btn--lg {
    padding: 1.3rem 2.6rem;
    font-size: 1.05rem;
}

/* --- Final CTA --- */
.sl-section--cta {
    padding-block: clamp(3.5rem, 7vw, 6rem);
}

.sl-cta {
    position: relative;
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    align-items: center;
    gap: clamp(2rem, 4vw, 3.5rem);
    padding: clamp(2rem, 4vw, 3rem);
    color: #fff;
    border-radius: var(--sl-radius-lg);
    overflow: hidden;
    background:
        radial-gradient(circle at 85% 15%, rgba(212, 163, 115, 0.28), transparent 48%),
        linear-gradient(150deg, #241a1d, var(--sl-ink) 62%);
    box-shadow: var(--sl-shadow);
}

.sl-cta__media {
    margin: 0;
    border-radius: var(--sl-radius);
    overflow: hidden;
    box-shadow: var(--sl-shadow);
}

.sl-cta__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 14 / 9;
    object-fit: cover;
    border: 1px solid var(--sl-border);
    border-radius: var(--sl-radius-sm);
    box-shadow: var(--sl-shadow-sm);
}

.sl-cta__body { min-width: 0; }

.sl-cta__title {
    margin-bottom: 0.9rem;
    color: #fff;
    font-family: var(--sl-serif);
    font-weight: 600;
    font-size: clamp(1.9rem, 4vw, 2.8rem);
    line-height: 1.1;
    letter-spacing: -0.02em;
}

.sl-cta__text {
    max-width: 46ch;
    margin-bottom: 1.75rem;
    color: rgba(255, 255, 255, 0.85);
    font-size: 1.08rem;
    line-height: 1.65;
}

.sl-cta__note {
    margin-top: 1rem;
    color: rgba(255, 255, 255, 0.65);
    font-size: 0.88rem;
}

.sl-final__box {
    position: relative;
    overflow: hidden;
    padding: clamp(3.5rem, 8vw, 6rem) clamp(1.5rem, 5vw, 4.5rem);
    color: var(--sl-white);
    text-align: center;
    border-radius: var(--sl-r-lg);
    background:
        radial-gradient(circle at 82% 18%, rgba(212, 163, 115, 0.3), transparent 45%),
        linear-gradient(150deg, #241a1d, var(--sl-ink) 62%);
}

.sl-final__box .sl-eyebrow { color: var(--sl-accent); }

.sl-final__box h2 {
    max-width: 18ch;
    margin: 0 auto 1.1rem;
    color: var(--sl-white);
    font-size: clamp(2.1rem, 5vw, 3.5rem);
}

.sl-final__box p {
    max-width: 52ch;
    margin: 0 auto 2.25rem;
    color: rgba(255, 255, 255, 0.85);
    font-size: 1.1rem;
}

/* --- Legacy system responsive --- */
@media (max-width: 900px) {
    .sl-row,
    .sl-row--reverse {
        grid-template-columns: 1fr;
        gap: 2.25rem;
    }

    .sl-row--reverse .sl-media,
    .sl-row--reverse .sl-content {
        order: 0;
    }

    .sl-media {
        width: 100%;
        max-width: 34rem;
        margin-inline: auto;
    }

    .sl-content { max-width: none; }

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

    .sl-cta {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .sl-cta__media { order: -1; }
    .sl-cta__body  { order: 1; }

    .sl-stats { justify-content: center; }
}

@media (max-width: 560px) {
    .sl-image,
    .sl-cta__image { aspect-ratio: 1 / 1; }

    .sl-faq__summary {
        padding: 1.15rem 1.35rem;
        font-size: 1.05rem;
    }

    .sl-faq__answer { padding: 0 1.35rem 1.35rem; }

    .sl-stats { gap: 1.5rem; }
}

@media (max-width: 540px) {
    .sl-features { grid-template-columns: 1fr; }
    .sl-btn      { width: 100%; }
}


/* ============================================================================
   16. PRODUCT DESCRIPTION SYSTEM (.sl-pd) — v3.3
   Self-contained and already normalised; kept intact.
   ============================================================================ */

.sl-pd {
    /* Palette */
    --pd-primary: #b23a4c;
    --pd-primary-soft: #f6e9ea;
    --pd-ink: #1c1917;
    --pd-body: #3f3a36;
    --pd-muted: #7c736c;
    --pd-faint: #a89f97;
    --pd-bg: #fffdf9;
    --pd-cream: #faf5ec;
    --pd-sand: #f3ebdd;
    --pd-white: #ffffff;
    --pd-line: #e7ded0;
    --pd-line-soft: #f0e9dd;
    --pd-accent: #c9975f;
    --pd-dark: #211b19;

    /* Type */
    --pd-display: ui-serif, "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;
    --pd-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --pd-fs-display: clamp(2.15rem, .9rem + 5.2vw, 4.25rem);
    --pd-fs-h2: clamp(1.72rem, 1rem + 3.1vw, 3rem);
    --pd-fs-h3: clamp(1.12rem, 1.04rem + .32vw, 1.32rem);
    --pd-fs-lede: clamp(1.05rem, .98rem + .5vw, 1.34rem);
    --pd-fs-body: 1.0625rem;
    --pd-fs-small: .9688rem;
    --pd-fs-micro: .7rem;

    /* Space */
    --pd-1: .5rem;
    --pd-2: 1rem;
    --pd-3: 1.5rem;
    --pd-4: 2rem;
    --pd-5: 3rem;
    --pd-6: 4rem;
    --pd-7: 6rem;
    --pd-flow: clamp(1.75rem, 5vw, 3rem);
    --pd-flow-lg: clamp(2.25rem, 6vw, 4rem);
    --pd-gutter: clamp(1.25rem, 4vw, 2.5rem);
    --pd-band: clamp(2.75rem, 10vw, 8.5rem);

    /* Form */
    --pd-r-sm: 12px;
    --pd-r: 18px;
    --pd-r-lg: 26px;
    --pd-r-pill: 999px;
    --pd-sh-panel: 0 30px 60px -30px rgba(28, 25, 23, .45),
                   0 8px 20px -12px rgba(28, 25, 23, .18);
    --pd-sh-card: 0 2px 6px -4px rgba(28, 25, 23, .10),
                  0 18px 40px -28px rgba(28, 25, 23, .22);
    --pd-ease: cubic-bezier(.22, 1, .36, 1);
    --pd-fast: .25s;
    --pd-slow: .45s;
    --pd-read: 38rem;

    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    overflow-x: clip;
    font-family: var(--pd-sans);
    font-size: var(--pd-fs-body);
    font-weight: 400;
    font-style: normal;
    line-height: 1.65;
    text-align: left;
    color: var(--pd-body);
    background-color: var(--pd-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    text-rendering: optimizeLegibility;
    font-kerning: normal;
    font-variant-ligatures: common-ligatures contextual;
    font-variant-numeric: oldstyle-nums proportional-nums;
    overflow-wrap: break-word;
}

.sl-pd,
.sl-pd *,
.sl-pd *::before,
.sl-pd *::after { box-sizing: border-box; }

.sl-pd ::selection { background-color: var(--pd-primary); color: #fff; }

/* Theme armor — neutralises theme styling on bare elements in scope */
.sl-pd h2,
.sl-pd h3,
.sl-pd p,
.sl-pd ul,
.sl-pd ol,
.sl-pd li,
.sl-pd dl,
.sl-pd dt,
.sl-pd dd,
.sl-pd figure,
.sl-pd blockquote,
.sl-pd hr {
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    font-family: inherit;
    color: inherit;
    text-transform: none;
    letter-spacing: normal;
    float: none;
    max-width: none;
}

.sl-pd ul,
.sl-pd ol { list-style: none; }
.sl-pd li { list-style: none; }
.sl-pd li::marker { content: ""; }

.sl-pd h2,
.sl-pd h3 { font-weight: 600; line-height: 1.2; text-align: inherit; }

.sl-pd p { line-height: inherit; }
.sl-pd strong,
.sl-pd b { font-weight: 600; }
.sl-pd em,
.sl-pd i { font-style: italic; }
.sl-pd small { font-size: inherit; }
.sl-pd img { display: block; max-width: 100%; height: auto; border: 0; }
.sl-pd svg { display: block; flex: none; max-width: 100%; }
.sl-pd details { margin: 0; padding: 0; border: 0; background: none; }

.sl-pd summary {
    margin: 0;
    padding: 0;
    background: none;
    font-family: inherit;
    list-style: none;
    -webkit-tap-highlight-color: transparent;
}

.sl-pd summary::-webkit-details-marker { display: none; }
.sl-pd summary::marker { content: ""; }

.sl-pd a {
    color: var(--pd-primary);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Bands */
.sl-pd .sl-pd__band {
    display: block;
    width: 100%;
    padding-top: var(--pd-band);
    padding-bottom: var(--pd-band);
    padding-left: var(--pd-gutter);
    padding-right: var(--pd-gutter);
    background-color: transparent;
}

.sl-pd .sl-pd__band--cream { background-color: var(--pd-cream); }
.sl-pd .sl-pd__band--sand  { background-color: var(--pd-sand); }

.sl-pd .sl-pd__inner {
    display: block;
    width: 100%;
    max-width: 1120px;
    margin-left: auto;
    margin-right: auto;
}

.sl-pd .sl-pd__inner--narrow { max-width: 720px; }
.sl-pd .sl-pd__center { text-align: center; }
.sl-pd .sl-pd__center .sl-pd__lede { margin-left: auto; margin-right: auto; }

/* Numbered eyebrow — hairline rule is desktop-only by design */
.sl-pd .sl-pd__eyebrow {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .6rem;
    margin: 0 0 var(--pd-2) 0;
    font-family: var(--pd-sans);
    font-size: var(--pd-fs-micro);
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--pd-muted);
}

.sl-pd .sl-pd__eyebrow b {
    flex: none;
    font-family: var(--pd-display);
    font-size: .82rem;
    font-weight: 600;
    letter-spacing: .04em;
    font-variant-numeric: lining-nums tabular-nums;
    color: var(--pd-primary);
}

.sl-pd .sl-pd__eyebrow i { display: none; }
.sl-pd .sl-pd__center .sl-pd__eyebrow { justify-content: center; }

/* Headings */
.sl-pd .sl-pd__display,
.sl-pd .sl-pd__h2 {
    display: block;
    margin: 0;
    font-family: var(--pd-display);
    font-weight: 600;
    color: var(--pd-ink);
    text-transform: none;
    text-wrap: balance;
    overflow-wrap: break-word;
}

.sl-pd .sl-pd__display {
    font-size: var(--pd-fs-display);
    line-height: 1.07;
    letter-spacing: -.026em;
}

.sl-pd .sl-pd__h2 {
    font-size: var(--pd-fs-h2);
    line-height: 1.11;
    letter-spacing: -.022em;
}

.sl-pd .sl-pd__display em,
.sl-pd .sl-pd__h2 em {
    font-style: italic;
    font-weight: 500;
    color: var(--pd-primary);
}

.sl-pd .sl-pd__lede {
    display: block;
    margin: var(--pd-2) 0 0 0;
    max-width: var(--pd-read);
    font-size: var(--pd-fs-lede);
    line-height: 1.58;
    letter-spacing: -.005em;
    color: var(--pd-muted);
    text-wrap: pretty;
}

/* Editorial split */
.sl-pd .sl-pd__split {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(1.9rem, 5vw, 3rem);
    align-items: start;
}

.sl-pd .sl-pd__split > * { min-width: 0; }

/* Checklist */
.sl-pd .sl-pd__checklist {
    display: block;
    margin: 0;
    padding: 0;
    list-style: none;
}

.sl-pd .sl-pd__checklist li {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    margin: 0;
    padding: .9rem 0;
    border-bottom: 1px solid var(--pd-line-soft);
    font-size: var(--pd-fs-body);
    line-height: 1.5;
    color: var(--pd-body);
    list-style: none;
}

.sl-pd .sl-pd__checklist li:first-child { padding-top: 0; }
.sl-pd .sl-pd__checklist li:last-child  { border-bottom: 0; }

.sl-pd .sl-pd__checklist li::before {
    content: "";
    display: block;
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    margin-top: .3rem;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b23a4c' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6L9 17l-5-5'/></svg>");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
}

.sl-pd .sl-pd__checklist strong { color: var(--pd-ink); font-weight: 600; }

/* Statistics panel */
.sl-pd .sl-pd__stats {
    position: relative;
    display: block;
    overflow: hidden;
    margin-top: clamp(2.25rem, 6vw, 5rem);
    padding: clamp(2.1rem, 6vw, 4.5rem) clamp(1.15rem, 5vw, 3.5rem);
    border-radius: var(--pd-r-lg);
    color: #fff;
    background-color: var(--pd-dark);
    background-image:
        radial-gradient(130% 150% at 88% 6%, rgba(201, 151, 95, .22), rgba(201, 151, 95, 0) 58%),
        linear-gradient(158deg, #2c2421 0%, #211b19 62%);
    box-shadow: var(--pd-sh-panel);
}

.sl-pd .sl-pd__stats-caption {
    display: block;
    margin: 0 0 clamp(1.6rem, 4vw, 2.75rem) 0;
    text-align: center;
    font-family: var(--pd-sans);
    font-size: var(--pd-fs-micro);
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .45);
}

.sl-pd .sl-pd__stats-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1.8rem, 5vw, 2.75rem) 0;
    align-items: stretch;
}

.sl-pd .sl-pd__stat {
    position: relative;
    min-width: 0;
    text-align: center;
    padding-left: clamp(.3rem, 2vw, 1.5rem);
    padding-right: clamp(.3rem, 2vw, 1.5rem);
}

.sl-pd .sl-pd__stat::before { display: none; }

.sl-pd .sl-pd__stat:nth-child(even)::before {
    content: "";
    display: block;
    position: absolute;
    top: 6%;
    bottom: 6%;
    left: 0;
    width: 1px;
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, .16) 25%, rgba(255, 255, 255, .16) 75%, rgba(255, 255, 255, 0));
}

.sl-pd .sl-pd__stat-num {
    display: block;
    font-family: var(--pd-display);
    font-size: clamp(1.9rem, .9rem + 4.4vw, 3.6rem);
    font-weight: 600;
    line-height: .96;
    letter-spacing: -.036em;
    font-variant-numeric: lining-nums tabular-nums;
    color: #fff;
}

.sl-pd .sl-pd__stat-num span { color: var(--pd-accent); }

.sl-pd .sl-pd__stat-label {
    display: block;
    margin-top: .7rem;
    font-family: var(--pd-sans);
    font-size: .7rem;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: .13em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .58);
}

/* Feature cards */
.sl-pd .sl-pd__cards {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .85rem;
    margin: var(--pd-flow-lg) 0 0 0;
    padding: 0;
    list-style: none;
}

.sl-pd .sl-pd__card {
    position: relative;
    display: block;
    min-width: 0;
    margin: 0;
    padding: clamp(1.5rem, 4.5vw, 2.5rem);
    overflow: hidden;
    list-style: none;
    background-color: var(--pd-white);
    border: 1px solid var(--pd-line);
    border-radius: var(--pd-r);
    transition: transform var(--pd-slow) var(--pd-ease),
                box-shadow var(--pd-slow) var(--pd-ease),
                border-color var(--pd-slow) var(--pd-ease);
}

.sl-pd .sl-pd__card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background-image: linear-gradient(90deg, var(--pd-primary), var(--pd-accent));
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform var(--pd-slow) var(--pd-ease);
}

.sl-pd .sl-pd__card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.05rem;
}

.sl-pd .sl-pd__card-icon {
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    color: var(--pd-primary);
}

.sl-pd .sl-pd__card-icon svg {
    display: block;
    flex: none;
    width: 22px;
    height: 22px;
}

.sl-pd .sl-pd__card-index {
    flex: none;
    font-family: var(--pd-display);
    font-size: .9rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .06em;
    font-variant-numeric: lining-nums tabular-nums;
    color: var(--pd-faint);
}

.sl-pd .sl-pd__card-title {
    display: block;
    margin: 0 0 .5rem 0;
    font-family: var(--pd-display);
    font-size: var(--pd-fs-h3);
    font-weight: 600;
    line-height: 1.24;
    letter-spacing: -.018em;
    color: var(--pd-ink);
    overflow-wrap: break-word;
}

.sl-pd .sl-pd__card-text {
    display: block;
    margin: 0;
    max-width: 36ch;
    font-size: var(--pd-fs-small);
    line-height: 1.62;
    color: var(--pd-muted);
}

/* Mini cards */
.sl-pd .sl-pd__minis {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .7rem;
    margin: var(--pd-flow) 0 0 0;
    padding: 0;
    list-style: none;
}

.sl-pd .sl-pd__mini {
    display: block;
    min-width: 0;
    margin: 0;
    padding: 1.15rem 1.3rem;
    text-align: left;
    list-style: none;
    background-color: rgba(255, 255, 255, .62);
    border-radius: var(--pd-r-sm);
    transition: background-color var(--pd-fast) var(--pd-ease),
                transform var(--pd-fast) var(--pd-ease);
}

.sl-pd .sl-pd__mini-title {
    display: block;
    margin-bottom: .25rem;
    font-family: var(--pd-display);
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -.015em;
    color: var(--pd-ink);
    overflow-wrap: break-word;
}

.sl-pd .sl-pd__mini-text {
    display: block;
    margin: 0;
    font-size: var(--pd-fs-small);
    line-height: 1.55;
    color: var(--pd-muted);
}

/* Specifications */
.sl-pd .sl-pd__specs {
    display: block;
    margin: var(--pd-flow-lg) 0 0 0;
    padding: 0;
    border-top: 1px solid var(--pd-line);
}

.sl-pd .sl-pd__spec {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .3rem;
    margin: 0;
    padding: 1.15rem 0;
    border-bottom: 1px solid var(--pd-line-soft);
}

.sl-pd .sl-pd__spec:last-child { border-bottom-color: var(--pd-line); }

.sl-pd .sl-pd__spec dt {
    min-width: 0;
    margin: 0;
    font-family: var(--pd-sans);
    font-size: var(--pd-fs-micro);
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--pd-faint);
    transition: color var(--pd-fast) var(--pd-ease);
}

.sl-pd .sl-pd__spec dd {
    min-width: 0;
    margin: 0;
    padding: 0;
    font-family: var(--pd-sans);
    font-size: 1.05rem;
    font-weight: 400;
    line-height: 1.45;
    letter-spacing: -.011em;
    color: var(--pd-ink);
    overflow-wrap: break-word;
}

.sl-pd .sl-pd__spec dd small {
    display: block;
    margin-top: .3rem;
    font-size: var(--pd-fs-small);
    line-height: 1.55;
    letter-spacing: 0;
    color: var(--pd-muted);
}

/* Chips */
.sl-pd .sl-pd__chips {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin: var(--pd-flow) 0 0 0;
    padding: 0;
    list-style: none;
}

.sl-pd .sl-pd__chip {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    max-width: 100%;
    margin: 0;
    padding: .6rem 1.05rem;
    font-family: var(--pd-sans);
    font-size: .9375rem;
    font-weight: 500;
    line-height: 1.35;
    color: var(--pd-ink);
    list-style: none;
    background-color: var(--pd-white);
    border: 1px solid var(--pd-line);
    border-radius: var(--pd-r-pill);
    transition: border-color var(--pd-fast) var(--pd-ease),
                transform var(--pd-fast) var(--pd-ease),
                box-shadow var(--pd-fast) var(--pd-ease);
}

.sl-pd .sl-pd__chip::before {
    content: "";
    display: block;
    flex: 0 0 6px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: var(--pd-accent);
    transition: transform var(--pd-fast) var(--pd-ease);
}

/* FAQ */
.sl-pd .sl-pd__faq {
    display: block;
    margin: var(--pd-flow) 0 0 0;
    padding: 0;
    border-top: 1px solid var(--pd-line);
}

.sl-pd .sl-pd__faq-item {
    display: block;
    margin: 0;
    padding: 0;
    border-bottom: 1px solid var(--pd-line-soft);
}

.sl-pd .sl-pd__faq-item > summary {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.1rem;
    margin: 0;
    padding: 1.3rem 0;
    cursor: pointer;
    list-style: none;
    font-family: var(--pd-display);
    font-size: clamp(1.06rem, 1rem + .4vw, 1.28rem);
    font-weight: 600;
    line-height: 1.34;
    letter-spacing: -.016em;
    color: var(--pd-ink);
    background: none;
    overflow-wrap: break-word;
    transition: color var(--pd-fast) var(--pd-ease);
}

.sl-pd .sl-pd__faq-item > summary::-webkit-details-marker { display: none; }
.sl-pd .sl-pd__faq-item > summary::marker { content: ""; }

.sl-pd .sl-pd__faq-item > summary:focus-visible {
    outline: 2px solid var(--pd-accent);
    outline-offset: 4px;
    border-radius: 4px;
}

.sl-pd .sl-pd__faq-sign {
    position: relative;
    display: block;
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    margin-top: .42rem;
}

.sl-pd .sl-pd__faq-sign::before,
.sl-pd .sl-pd__faq-sign::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 13px;
    height: 1.25px;
    margin-top: -.625px;
    margin-left: -6.5px;
    border-radius: 2px;
    background-color: var(--pd-primary);
    transition: transform var(--pd-slow) var(--pd-ease),
                opacity var(--pd-fast) var(--pd-ease);
}

.sl-pd .sl-pd__faq-sign::after { transform: rotate(90deg); }

.sl-pd .sl-pd__faq-item[open] .sl-pd__faq-sign::after {
    opacity: 0;
    transform: rotate(0deg);
}

.sl-pd .sl-pd__faq-item p {
    display: block;
    margin: 0;
    padding: 0 0 1.45rem 0;
    max-width: var(--pd-read);
    font-family: var(--pd-sans);
    font-size: var(--pd-fs-body);
    line-height: 1.7;
    color: var(--pd-muted);
}

/* Information box — fixed icon basis so it can never compress */
.sl-pd .sl-pd__note {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.1rem;
    margin: 0;
    padding: clamp(1.5rem, 4.5vw, 3rem);
    background-color: var(--pd-white);
    border: 1px solid var(--pd-line);
    border-radius: var(--pd-r-lg);
}

.sl-pd .sl-pd__note > div {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
}

.sl-pd .sl-pd__note-icon {
    display: flex;
    flex: 0 0 46px;
    align-items: center;
    justify-content: center;
    width: 46px;
    min-width: 46px;
    height: 46px;
    padding: 0;
    border-radius: var(--pd-r-sm);
    color: var(--pd-primary);
    background-color: var(--pd-primary-soft);
    border: 1px solid rgba(178, 58, 76, .10);
}

.sl-pd .sl-pd__note-icon svg {
    display: block;
    flex: none;
    width: 22px;
    height: 22px;
}

.sl-pd .sl-pd__note-title {
    display: block;
    margin: 0 0 .5rem 0;
    font-family: var(--pd-display);
    font-size: clamp(1.16rem, 1.06rem + .5vw, 1.5rem);
    font-weight: 600;
    line-height: 1.28;
    letter-spacing: -.018em;
    color: var(--pd-ink);
    overflow-wrap: break-word;
}

.sl-pd .sl-pd__note p {
    display: block;
    margin: 0;
    max-width: 56ch;
    font-family: var(--pd-sans);
    font-size: var(--pd-fs-body);
    line-height: 1.68;
    color: var(--pd-muted);
}

.sl-pd .sl-pd__note p + p { margin-top: .7rem; }

/* Defensive table styling — matches the spec-sheet language */
.sl-pd table {
    width: 100%;
    margin: var(--pd-4) 0 0 0;
    border-collapse: collapse;
    border-spacing: 0;
    font-family: var(--pd-sans);
    font-size: 1rem;
    background: none;
}

.sl-pd table th,
.sl-pd table td {
    padding: .9rem 1rem;
    text-align: left;
    vertical-align: top;
    border: 0;
    border-bottom: 1px solid var(--pd-line-soft);
}

.sl-pd table th {
    font-size: var(--pd-fs-micro);
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--pd-faint);
    background: none;
}

.sl-pd table td { color: var(--pd-ink); }

.sl-pd table tr:last-child th,
.sl-pd table tr:last-child td { border-bottom-color: var(--pd-line); }

/* --- .sl-pd responsive --- */
@media (min-width: 600px) {
    .sl-pd { line-height: 1.72; }

    .sl-pd .sl-pd__eyebrow {
        gap: .85rem;
        margin-bottom: var(--pd-3);
        letter-spacing: .26em;
    }

    .sl-pd .sl-pd__eyebrow i {
        display: block;
        flex: 1 1 auto;
        min-width: 0;
        max-width: 120px;
        height: 1px;
        align-self: center;
        font-style: normal;
        background-image: linear-gradient(90deg, var(--pd-line), rgba(231, 222, 208, 0) 70%);
    }

    .sl-pd .sl-pd__center .sl-pd__eyebrow i { display: none; }

    .sl-pd .sl-pd__checklist li { gap: 1rem; padding: 1.05rem 0; line-height: 1.55; }

    .sl-pd .sl-pd__checklist li::before {
        flex-basis: 17px;
        width: 17px;
        height: 17px;
        margin-top: .32rem;
    }

    .sl-pd .sl-pd__stats-caption { letter-spacing: .26em; }
    .sl-pd .sl-pd__stat-num { line-height: .94; letter-spacing: -.042em; }

    .sl-pd .sl-pd__stat-label {
        margin-top: .95rem;
        font-size: .75rem;
        letter-spacing: .16em;
    }

    .sl-pd .sl-pd__card-top  { margin-bottom: 1.35rem; }
    .sl-pd .sl-pd__card-text { line-height: 1.68; }

    .sl-pd .sl-pd__spec { padding: 1.4rem 0; gap: .4rem; }
    .sl-pd .sl-pd__spec dt { letter-spacing: .18em; }
    .sl-pd .sl-pd__spec dd small { margin-top: .35rem; line-height: 1.6; }

    .sl-pd .sl-pd__chips { gap: .65rem; }

    .sl-pd .sl-pd__chip {
        padding: .7rem 1.25rem;
        gap: .6rem;
        font-size: var(--pd-fs-small);
        line-height: 1.3;
    }

    .sl-pd .sl-pd__faq-item > summary {
        gap: 2rem;
        padding: 1.75rem 0;
        line-height: 1.38;
        letter-spacing: -.018em;
    }

    .sl-pd .sl-pd__faq-sign {
        flex-basis: 18px;
        width: 18px;
        height: 18px;
        margin-top: .5rem;
    }

    .sl-pd .sl-pd__faq-sign::before,
    .sl-pd .sl-pd__faq-sign::after { width: 14px; margin-left: -7px; }

    .sl-pd .sl-pd__faq-item p { padding: 0 4rem 1.9rem 0; line-height: 1.78; }

    .sl-pd table th,
    .sl-pd table td { padding: 1.1rem 1.25rem; }
}

@media (min-width: 620px) {
    .sl-pd .sl-pd__minis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
    .sl-pd .sl-pd__mini { padding: 1.4rem 1.5rem; }
    .sl-pd .sl-pd__mini-title { margin-bottom: .3rem; font-size: 1.08rem; }
    .sl-pd .sl-pd__mini-text { line-height: 1.6; }
}

@media (min-width: 640px) {
    .sl-pd .sl-pd__note {
        flex-direction: row;
        align-items: flex-start;
        gap: 1.85rem;
    }

    .sl-pd .sl-pd__note > div { width: auto; }

    .sl-pd .sl-pd__note-icon {
        flex-basis: 52px;
        width: 52px;
        min-width: 52px;
        height: 52px;
    }

    .sl-pd .sl-pd__note-icon svg { width: 24px; height: 24px; }
    .sl-pd .sl-pd__note-title { margin-bottom: .6rem; letter-spacing: -.02em; }
    .sl-pd .sl-pd__note p { line-height: 1.75; }
    .sl-pd .sl-pd__note p + p { margin-top: .8rem; }
}

@media (min-width: 720px) {
    .sl-pd .sl-pd__spec {
        grid-template-columns: minmax(0, 13rem) minmax(0, 1fr);
        gap: clamp(2rem, 5vw, 4rem);
        align-items: baseline;
        padding: 1.85rem .25rem;
    }

    .sl-pd .sl-pd__spec dd { font-size: 1.1rem; }
}

@media (min-width: 760px) {
    .sl-pd .sl-pd__cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--pd-3);
    }
}

@media (min-width: 768px) {
    .sl-pd .sl-pd__display { line-height: 1.03; letter-spacing: -.032em; }
    .sl-pd .sl-pd__h2 { line-height: 1.07; letter-spacing: -.026em; }
    .sl-pd .sl-pd__lede { margin-top: var(--pd-3); line-height: 1.62; }
}

@media (min-width: 860px) {
    .sl-pd .sl-pd__stats-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .sl-pd .sl-pd__stat + .sl-pd__stat::before { display: block; }
}

@media (min-width: 920px) {
    .sl-pd .sl-pd__split {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
        gap: clamp(3rem, 7vw, 6rem);
    }

    .sl-pd .sl-pd__split-aside { position: sticky; top: 2rem; }
}

@media (min-width: 960px) {
    .sl-pd .sl-pd__minis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Hover states gated to true pointer devices so a tap never sticks */
@media (hover: hover) and (pointer: fine) {
    .sl-pd a:hover { color: var(--pd-ink); }

    .sl-pd .sl-pd__card:hover {
        transform: translateY(-4px);
        box-shadow: var(--pd-sh-card);
        border-color: transparent;
    }

    .sl-pd .sl-pd__card:hover::before { transform: scaleX(1); }

    .sl-pd .sl-pd__mini:hover {
        background-color: var(--pd-white);
        transform: translateY(-2px);
    }

    .sl-pd .sl-pd__chip:hover {
        border-color: var(--pd-accent);
        transform: translateY(-2px);
        box-shadow: var(--pd-sh-card);
    }

    .sl-pd .sl-pd__chip:hover::before { transform: scale(1.5); }
    .sl-pd .sl-pd__faq-item > summary:hover { color: var(--pd-primary); }
    .sl-pd .sl-pd__spec:hover dt { color: var(--pd-primary); }
}

.sl-pd :focus-visible {
    outline: 2px solid var(--pd-accent);
    outline-offset: 3px;
    border-radius: 3px;
}


/* ============================================================================
   17. SHORT PRODUCT DESCRIPTION (.sl-short)
   ============================================================================ */

.sl-short {
    margin: 0 0 28px;
    color: #374151;
    font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
}

.sl-short-lead {
    margin: 0 0 18px;
    color: #374151;
    font-size: 16px;
    line-height: 1.75;
}

.sl-short-lead strong {
    color: #B83B4D;
    font-weight: 700;
}

.sl-short-features {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 18px;
    margin: 0;
    padding: 20px;
    list-style: none;
    background: #FFF9F6;
    border: 1px solid #F2E5DE;
    border-radius: 16px;
}

.sl-short-features li {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #374151;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.5;
}

.sl-short-features li::before {
    content: "✓";
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    background: #B83B4D;
    color: #fff;
    border-radius: 50%;
    font-size: 12px;
    font-weight: 700;
}

@media (max-width: 767px) {
    .sl-short-lead { font-size: 15px; }

    .sl-short-features {
        grid-template-columns: 1fr;
        padding: 18px;
    }
}
/* ============================================================================
   18. WOOCOMMERCE — SINGLE PRODUCT
   ============================================================================ */

.single-product .summary {
    padding: 35px;
    background: #ffffff;
    border: 1px solid #ece8e1;
    border-radius: 24px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .06);
}

.single-product .product_title {
    margin-bottom: 18px;
    color: #1f2937;
    font-size: 42px;
    font-weight: 700;
    line-height: 1.15;
}

.single-product .price {
    margin: 18px 0;
    color: #B83B4D;
    font-size: 38px;
    font-weight: 700;
}

.single-product del {
    margin-right: 10px;
    color: #9ca3af;
    font-size: 24px;
}

.single-product ins { text-decoration: none; }

.single-product .woocommerce-product-details__short-description {
    margin: 25px 0;
    color: #6b7280;
    font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
    font-size: 17px;
    line-height: 1.8;
}

.single-product .woocommerce-product-details__short-description p {
    margin: 0 0 1rem;
}

.single-product .woocommerce-product-details__short-description > :last-child {
    margin-bottom: 0;
}

.single-product .woocommerce-product-details__short-description strong,
.single-product .woocommerce-product-details__short-description b {
    color: #1f2937;
    font-weight: 700;
}

.single-product .woocommerce-product-details__short-description em,
.single-product .woocommerce-product-details__short-description i {
    color: #4b5563;
    font-style: italic;
}

.single-product .woocommerce-product-details__short-description ul,
.single-product .woocommerce-product-details__short-description ol {
    margin: 1rem 0 1.25rem;
    padding-left: 1.35rem;
}

.single-product .woocommerce-product-details__short-description li {
    margin: 0.45rem 0;
    padding-left: 0.15rem;
}

.single-product .woocommerce-product-details__short-description ul li::marker {
    color: #B83B4D;
}

.single-product .woocommerce-product-details__short-description ol li::marker {
    color: #B83B4D;
    font-weight: 700;
}

.single-product .woocommerce-product-details__short-description a {
    color: #B83B4D;
    font-weight: 600;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.16em;
}

.single-product .woocommerce-product-details__short-description a:hover {
    color: #9C2F3F;
}

.single-product .quantity input {
    height: 54px;
    border: 1px solid #ddd;
    border-radius: 14px;
}

.single-product .single_add_to_cart_button {
    width: 100%;
    height: 58px;
    background: #B83B4D !important;
    color: #fff;
    border-radius: 999px;
    font-size: 18px;
    font-weight: 700;
    box-shadow: 0 15px 35px rgba(184, 59, 77, .30);
    transition: .3s;
}

.single-product .single_add_to_cart_button:hover {
    background: #9C2F3F !important;
    transform: translateY(-2px);
    box-shadow: 0 20px 45px rgba(184, 59, 77, .40);
}

.single-product .product_meta {
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid #eee;
    color: #777;
    font-size: 14px;
}

.single-product .woocommerce-tabs { margin-top: 70px; }

.single-product div.product div.images img { border-radius: 24px; }

/* NOTE: overridden by the global `.onsale{background:#C99A4A!important}` in §22 */
.single-product .onsale {
    padding: 8px 18px;
    background: #B83B4D;
    border-radius: 999px;
    font-weight: 600;
}

/* Description tab — heading hidden, spacing removed */
.woocommerce-tabs .wc-tabs,
.woocommerce-tabs ul.tabs {
    display: none !important;
}

.woocommerce-tabs,
.woocommerce-tabs .panel,
.woocommerce-Tabs-panel--description {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.woocommerce-tabs {
    border-top: none !important;
}

.woocommerce-Tabs-panel--description {
    margin-bottom: 0 !important;
}

@media (max-width: 768px) {
    .single-product .summary { padding: 25px; }
    .single-product .product_title { font-size: 30px; }
    .single-product .price { font-size: 30px; }
}

@media (max-width: 999px) {
    .woocommerce-Tabs-panel--description { padding-top: 10px !important; }
}

@media (min-width: 1000px) {
    .woocommerce-Tabs-panel--description { padding-top: 25px !important; }
}


/* ============================================================================
   19. WOOCOMMERCE — SHOP & PRODUCT ARCHIVES
   ============================================================================ */

body.post-type-archive-product,
body.tax-product_cat,
body.tax-product_tag {
    --sl-primary: #B83B4D;
    --sl-primary-dark: #9C2F3F;
    --sl-secondary: #1F2937;
    --sl-bg: #FFFDF9;
    --sl-surface: #FFFFFF;
    --sl-accent: #D4A373;
    --sl-border: #ECE8E1;
    --sl-muted: #6B7280;
    --sl-serif: "Fraunces", Georgia, serif;
    --sl-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --sl-radius: 20px;
    --sl-radius-sm: 12px;
    --sl-shadow: 0 18px 40px -22px rgba(31, 41, 55, 0.22);
    --sl-shadow-lg: 0 40px 70px -30px rgba(31, 41, 55, 0.30);
    --sl-ease: cubic-bezier(0.22, 1, 0.36, 1);

    background: var(--sl-bg);
}

body.post-type-archive-product .site-content,
body.tax-product_cat .site-content,
body.tax-product_tag .site-content {
    background: var(--sl-bg);
}

/* Shop header */
.sl-shop-header {
    max-width: 760px;
    margin: 0 auto clamp(2rem, 4vw, 3.25rem);
    padding-top: clamp(1.5rem, 4vw, 3rem);
    text-align: center;
}

.sl-shop-header__eyebrow {
    display: inline-block;
    margin-bottom: 0.85rem;
    color: var(--sl-primary);
    font-family: var(--sl-sans);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.sl-shop-header__title,
.woocommerce-products-header__title.page-title {
    margin: 0 0 0.9rem;
    color: var(--sl-secondary);
    font-family: var(--sl-serif) !important;
    font-weight: 600;
    font-size: clamp(2.2rem, 5vw, 3.4rem) !important;
    line-height: 1.06;
    letter-spacing: -0.02em;
}

.sl-shop-header__desc,
:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce-products-header .term-description {
    margin: 0;
    color: var(--sl-muted);
    font-family: var(--sl-sans);
    font-size: 1.08rem;
    line-height: 1.6;
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce-products-header .term-description {
    max-width: 46rem;
    margin: 0 auto;
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce-products-header .term-description p {
    margin: 0 0 0.75rem;
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce-products-header .term-description p:last-child {
    margin-bottom: 0;
}

/* Result count + ordering toolbar */
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count {
    display: inline-block;
    float: none;
    margin: 0;
    padding: 0.65rem 0;
    color: var(--sl-muted);
    font-family: var(--sl-sans);
    font-size: 0.9rem;
    letter-spacing: 0.01em;
    vertical-align: middle;
}

.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering {
    float: none;
    margin: 0;
    vertical-align: middle;
}

.woocommerce .woocommerce-ordering select.orderby,
.woocommerce-page .woocommerce-ordering select.orderby {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding: 0.7rem 2.75rem 0.7rem 1.25rem;
    color: var(--sl-secondary);
    background-color: var(--sl-surface);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231F2937' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    border: 1px solid var(--sl-border);
    border-radius: 999px;
    font-family: var(--sl-sans);
    font-size: 0.92rem;
    font-weight: 500;
    cursor: pointer;
    transition: border-color 0.3s var(--sl-ease), box-shadow 0.3s var(--sl-ease);
}

.woocommerce .woocommerce-ordering select.orderby:hover {
    border-color: var(--sl-accent);
}

.woocommerce .woocommerce-ordering select.orderby:focus-visible {
    outline: none;
    border-color: var(--sl-accent);
    box-shadow: 0 0 0 3px rgba(212, 163, 115, 0.35);
}

/* Grid */
:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(1.25rem, 2.5vw, 2rem);
    margin: 2.5rem 0 0 !important;
    padding: 0;
    list-style: none;
    clear: both;
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product {
    width: auto !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--sl-surface);
    border: 1px solid var(--sl-border);
    border-radius: var(--sl-radius);
    overflow: hidden;
    transition: transform 0.5s var(--sl-ease), box-shadow 0.5s var(--sl-ease),
        border-color 0.5s var(--sl-ease);
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product:hover {
    transform: translateY(-6px);
    box-shadow: var(--sl-shadow-lg);
    border-color: transparent;
}

/* Media frame (wrapper injected via PHP) */
:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product .sl-media {
    position: relative;
    display: block;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: linear-gradient(135deg, #f4ede2, #efe4d4);
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product .sl-media img,
:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product img {
    width: 100%;
    height: 100%;
    margin: 0 !important;
    object-fit: cover;
    border-radius: 0;
    transition: transform 0.7s var(--sl-ease);
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product:hover .sl-media img {
    transform: scale(1.05);
}

/* Category badge */
:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product .sl-cat {
    position: absolute;
    top: 0.9rem;
    left: 0.9rem;
    z-index: 3;
    padding: 0.4rem 0.8rem;
    color: var(--sl-secondary);
    background: rgba(255, 255, 255, 0.92);
    border-radius: 999px;
    font-family: var(--sl-sans);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    backdrop-filter: blur(6px);
    box-shadow: 0 4px 12px -6px rgba(31, 41, 55, 0.25);
}

/* Sale badge (shape only — colour comes from the global rule in §22) */
:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product .onsale,
:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce span.onsale {
    position: absolute;
    top: 0.9rem;
    right: 0.9rem;
    left: auto;
    z-index: 3;
    min-height: 0;
    min-width: 0;
    margin: 0;
    padding: 0.4rem 0.85rem;
    color: var(--sl-secondary);
    background: #fff;
    border: 1px solid var(--sl-accent);
    border-radius: 999px;
    font-family: var(--sl-sans);
    font-size: 0.66rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    box-shadow: 0 4px 12px -6px rgba(31, 41, 55, 0.25);
}

/* Card body */
:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product > a:not(.button) {
    display: flex;
    flex-direction: column;
    flex: 1;
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product .woocommerce-loop-product__title {
    margin: 0;
    padding: 1.25rem 1.35rem 0.35rem;
    color: var(--sl-secondary);
    font-family: var(--sl-serif);
    font-size: 1.18rem;
    font-weight: 600;
    line-height: 1.25;
    transition: color 0.3s var(--sl-ease);
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product:hover .woocommerce-loop-product__title {
    color: var(--sl-primary);
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product .star-rating {
    margin: 0.15rem 1.35rem 0.4rem;
    color: var(--sl-accent);
    font-size: 0.85rem;
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product .price {
    margin: 0 0 1.1rem;
    padding: 0 1.35rem;
    color: var(--sl-secondary);
    font-family: var(--sl-sans);
    font-size: 1.3rem;
    font-weight: 700;
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product .price del {
    margin-right: 0.4rem;
    color: var(--sl-muted);
    font-size: 0.95rem;
    font-weight: 500;
    opacity: 0.8;
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product .price ins {
    color: var(--sl-primary);
    text-decoration: none;
}

/* CTA */
:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product .button,
:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product a.add_to_cart_button,
:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product a.added_to_cart {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin: auto 1.35rem 1.35rem;
    padding: 0.95rem 1.4rem;
    color: #fff;
    background: var(--sl-primary);
    border: 0;
    border-radius: 999px;
    font-family: var(--sl-sans);
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1;
    text-align: center;
    cursor: pointer;
    box-shadow: 0 12px 26px -14px rgba(184, 59, 77, 0.6);
    transition: background 0.3s var(--sl-ease), transform 0.3s var(--sl-ease),
        box-shadow 0.3s var(--sl-ease), opacity 0.4s var(--sl-ease);
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product .button:hover {
    background: var(--sl-primary-dark);
    transform: translateY(-2px);
    box-shadow: 0 18px 32px -14px rgba(184, 59, 77, 0.7);
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product .added_to_cart { background: var(--sl-secondary); }

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product .button:focus-visible {
    outline: 3px solid var(--sl-accent);
    outline-offset: 3px;
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product .button.loading { opacity: 0.85; }

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product a:focus-visible {
    outline: 3px solid var(--sl-accent);
    outline-offset: 3px;
    border-radius: var(--sl-radius-sm);
}

/* Pagination */
:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce nav.woocommerce-pagination {
    margin: 3.5rem 0 1rem;
    text-align: center;
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce nav.woocommerce-pagination ul {
    display: inline-flex;
    gap: 0.5rem;
    padding: 0;
    border: 0;
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce nav.woocommerce-pagination ul li {
    margin: 0;
    border: 0;
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce nav.woocommerce-pagination ul li a,
:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce nav.woocommerce-pagination ul li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    height: 48px;
    padding: 0 0.9rem;
    color: var(--sl-secondary);
    background: var(--sl-surface);
    border: 1px solid var(--sl-border);
    border-radius: 999px;
    font-family: var(--sl-sans);
    font-size: 0.95rem;
    font-weight: 600;
    transition: all 0.3s var(--sl-ease);
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce nav.woocommerce-pagination ul li a:hover {
    border-color: var(--sl-accent);
    transform: translateY(-2px);
    box-shadow: var(--sl-shadow);
}

:is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce nav.woocommerce-pagination ul li span.current {
    color: #fff;
    background: var(--sl-primary);
    border-color: var(--sl-primary);
}

@media (min-width: 768px) {
    .woocommerce-result-count { float: left; }
    .woocommerce-ordering { float: right; }
}

/* Progressive-disclosure CTA — does not apply on the homepage grid,
   which forces opacity:1 with !important. */
@media (hover: hover) and (min-width: 768px) {
    :is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product .button {
        opacity: 0;
        transform: translateY(8px);
    }

    :is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product:hover .button,
    :is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product:focus-within .button {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 1024px) {
    :is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    :is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.9rem;
    }

    :is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product .woocommerce-loop-product__title {
        padding: 0.9rem 0.9rem 0.25rem;
        font-size: 0.98rem;
    }

    :is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product .price {
        margin-bottom: 0.85rem;
        padding: 0 0.9rem;
        font-size: 1.05rem;
    }

    :is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product .button {
        margin: auto 0.9rem 0.9rem;
        padding: 0.85rem 1rem;
        font-size: 0.9rem;
        opacity: 1;
        transform: none;
    }

    :is(body.post-type-archive-product, body.tax-product_cat, body.tax-product_tag) .woocommerce ul.products li.product .sl-cat {
        padding: 0.3rem 0.6rem;
        font-size: 0.6rem;
    }
}



/* ============================================================================
   20. WOOCOMMERCE — RELATED PRODUCTS (mobile)
   ============================================================================ */

@media (max-width: 999px) {

    .related.products,
    .woocommerce .related.products,
    .woocommerce-page .related.products {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
    }

    .related.products ul.products,
    .woocommerce .related.products ul.products,
    .woocommerce-page .related.products ul.products {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 18px 12px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .related.products ul.products li.product,
    .woocommerce .related.products ul.products li.product,
    .woocommerce-page .related.products ul.products li.product {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        height: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        float: none !important;
        box-sizing: border-box !important;
    }

    .related.products ul.products li.product > * {
        box-sizing: border-box !important;
    }

    .related.products ul.products li.product .woocommerce-loop-product__title {
        min-height: 3.6em !important;
        margin: 14px 0 8px !important;
        line-height: 1.25 !important;
    }

    .related.products ul.products li.product .price {
        margin: 0 0 8px !important;
        line-height: 1.3 !important;
    }

    .related.products ul.products li.product .ast-woo-product-category,
    .related.products ul.products li.product .product-category {
        margin-bottom: 12px !important;
        line-height: 1.3 !important;
    }

    .related.products ul.products li.product .button,
    .related.products ul.products li.product a.add_to_cart_button,
    .related.products ul.products li.product a.button {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
        min-height: 48px !important;
        height: 48px !important;
        margin: auto 0 0 !important;
        padding: 0 12px !important;
        background: #202C3D !important;
        color: #FFFFFF !important;
        border: 0 !important;
        border-radius: 8px !important;
        font-size: 14px !important;
        font-weight: 600 !important;
        line-height: 1 !important;
        text-align: center !important;
        text-decoration: none !important;
        opacity: 1 !important;
        visibility: visible !important;
        box-sizing: border-box !important;
    }

    .related.products ul.products li.product .button *,
    .related.products ul.products li.product a.add_to_cart_button * {
        color: #FFFFFF !important;
    }

    .related.products ul.products li.product .button:hover,
    .related.products ul.products li.product .button:focus,
    .related.products ul.products li.product a.add_to_cart_button:hover,
    .related.products ul.products li.product a.add_to_cart_button:focus {
        background: #B83A4B !important;
        color: #FFFFFF !important;
    }
}


/* ============================================================================
   21. WOOCOMMERCE — MINI CART, CART & CHECKOUT
   ============================================================================ */

/* WooCommerce Blocks palette overrides (checkout) */
:root {
    --wp--preset--color--primary: #B33C5A;
    --wp--preset--color--secondary: #FCF8F1;
    --wc-form-border-color: #E8E1D7;
    --wc-form-border-radius: 16px;
}

/* --- Mini cart --- */
.ct-cart-content,
.woocommerce-mini-cart {
    background: #FCF8F1 !important;
    color: #2F2A26;
    border-radius: 18px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .12);
}

.woocommerce-mini-cart__cart-list a {
    color: #2F2A26 !important;
    font-family: "Fraunces", serif;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.35;
    text-decoration: none;
}

.woocommerce-mini-cart__cart-list a:hover { color: #B33C5A !important; }

.woocommerce-mini-cart .quantity {
    color: #7A746D;
    font-family: Inter, sans-serif;
    font-size: 15px;
}

.woocommerce-mini-cart li {
    padding-bottom: 22px;
    border-bottom: 1px solid #E9E1D6;
}

.woocommerce-mini-cart__total {
    color: #2F2A26;
    font-weight: 600;
    border-color: #E9E1D6;
}

.woocommerce-mini-cart__buttons .button {
    padding: 14px 26px;
    background: #B33C5A !important;
    color: #fff !important;
    border-radius: 12px;
    font-weight: 600;
    text-transform: none;
    transition: .25s;
}

.woocommerce-mini-cart__buttons .button:hover {
    background: #9E2E4B !important;
    transform: translateY(-2px);
}

.woocommerce-mini-cart img { border-radius: 12px; }

.remove_from_cart_button { color: #8A837C !important; }
.remove_from_cart_button:hover { color: #B33C5A !important; }

/* --- Cart page --- */
body.woocommerce-cart { background: #FCF8F1; }

body.woocommerce-cart h1.entry-title {
    margin-bottom: 40px;
    color: #2B2B2B;
    font-family: Fraunces, serif;
    font-size: 46px;
    font-weight: 600;
}

body.woocommerce-cart table.shop_table {
    background: #fff;
    border: 1px solid #ECE5DA !important;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 12px 35px rgba(0, 0, 0, .05);
}

body.woocommerce-cart table.shop_table td,
body.woocommerce-cart table.shop_table th {
    border-color: #EFE8DD !important;
}

body.woocommerce-cart table.shop_table img {
    width: 90px;
    border-radius: 14px;
}

body.woocommerce-cart td.product-name a {
    color: #2B2B2B;
    font-family: Fraunces, serif;
    font-size: 22px;
    font-weight: 600;
    text-decoration: none;
}

body.woocommerce-cart td.product-name a:hover { color: #B33C5A; }

body.woocommerce-cart td.product-price,
body.woocommerce-cart td.product-subtotal {
    color: #2B2B2B;
    font-weight: 600;
}

body.woocommerce-cart .quantity input.qty {
    height: 48px;
    border: 1px solid #DDD;
    border-radius: 12px;
}

body.woocommerce-cart .coupon input,
body.woocommerce-cart .coupon button,
body.woocommerce-cart button[name="update_cart"] {
    border-radius: 12px;
}

body.woocommerce-cart .cart_totals {
    padding: 30px;
    background: #fff;
    border: 1px solid #ECE5DA;
    border-radius: 20px;
    box-shadow: 0 12px 35px rgba(0, 0, 0, .05);
}

body.woocommerce-cart .cart_totals h2 {
    font-family: Fraunces, serif;
    font-size: 32px;
}

body.woocommerce-cart .checkout-button {
    padding: 18px !important;
    background: #B33C5A !important;
    color: #fff !important;
    border-radius: 14px !important;
}

body.woocommerce-cart .checkout-button:hover { background: #992F4A !important; }

@media (max-width: 768px) {
    body.woocommerce-cart h1.entry-title { font-size: 34px; }
    body.woocommerce-cart table.shop_table img { width: 70px; }
    body.woocommerce-cart td.product-name a { font-size: 18px; }
    body.woocommerce-cart .cart_totals { margin-top: 30px; }
}

/* --- Checkout --- */
body.woocommerce-checkout { background: #FCF8F1; }

.wc-block-checkout,
.wc-block-components-sidebar {
    background: #fff;
    border: 1px solid #E8E1D7;
    border-radius: 22px;
    box-shadow: 0 12px 35px rgba(0, 0, 0, .05);
}

.wc-block-checkout h1,
.wc-block-checkout h2,
.wc-block-components-title,
.wc-block-components-checkout-step__title {
    color: #2B2B2B;
    font-family: Fraunces, serif;
    font-weight: 600;
}

.wc-block-components-text-input input,
.wc-block-components-text-input select,
.wc-block-components-combobox-control input {
    min-height: 56px;
    background: #fff;
    border: 1px solid #DDD6CA;
    border-radius: 14px;
}

.wc-block-components-text-input input:focus,
.wc-block-components-combobox-control input:focus {
    border-color: #B33C5A;
    box-shadow: 0 0 0 3px rgba(179, 60, 90, .15);
}

.wc-block-components-text-input label {
    color: #555;
    font-size: 14px;
}

.wc-block-components-sidebar { padding: 30px; }

.wc-block-components-order-summary { border-radius: 16px; }

.wc-block-components-product-name {
    color: #2B2B2B;
    font-family: Fraunces, serif;
    font-size: 18px;
}

.wc-block-components-formatted-money-amount {
    color: #B33C5A;
    font-weight: 700;
}

.wc-block-components-totals-coupon,
.wc-block-components-order-summary__button-text {
    font-size: 15px;
}

.wc-block-components-checkout-place-order-button,
.wc-block-components-button {
    min-height: 60px;
    background: #B33C5A !important;
    color: #fff !important;
    border: none;
    border-radius: 14px;
    font-size: 17px;
    font-weight: 600;
    transition: .25s;
}

.wc-block-components-button:hover,
.wc-block-components-checkout-place-order-button:hover {
    background: #972E4B !important;
}

.wc-block-components-button:focus,
.wc-block-components-checkout-place-order-button:focus {
    box-shadow: 0 0 0 4px rgba(179, 60, 90, .18);
}

.wc-block-components-checkout-step {
    margin-bottom: 25px;
    padding-bottom: 25px;
    border-bottom: 1px solid #EEE5DB;
}

.wc-block-components a { color: #B33C5A; }
.wc-block-components a:hover { color: #972E4B; }

@media (max-width: 768px) {
    .wc-block-checkout { padding: 20px; }
    .wc-block-components-sidebar { margin-top: 25px; }
}

/* Mobile cart/checkout — unify background without touching payment buttons */
@media (max-width: 767px) {

    .wc-block-cart__main,
    .wc-block-cart__sidebar,
    .wc-block-components-totals-wrapper,
    .wc-block-components-sidebar-layout,
    .wc-block-components-cart-order-summary,
    .cart_totals {
        background: #F8F4EE !important;
    }

    .wc-block-components-express-payment,
    .wc-block-components-express-payment--checkout,
    .wc-block-components-express-payment__content,
    .wc-stripe-express-checkout-wrapper {
        background: #F8F4EE !important;
        border-color: rgba(32, 44, 61, 0.08) !important;
        box-shadow: none !important;
    }

    .wc-block-components-express-payment > div,
    .wc-block-components-express-payment__content > div,
    .wc-stripe-express-checkout-wrapper > div {
        background: transparent !important;
    }

    .wc-block-components-express-payment + *,
    .wc-block-components-express-payment + .wc-block-components-separator,
    .wc-block-components-express-payment ~ .wc-block-components-separator,
    .wc-stripe-express-checkout-wrapper + * {
        background: #F8F4EE !important;
    }

    .wc-block-cart__sidebar > *,
    .wc-block-components-totals-wrapper > *,
    .wc-block-components-checkout-button {
        background-color: #F8F4EE !important;
    }

    .wc-block-components-express-payment iframe,
    .wc-stripe-express-checkout-wrapper iframe {
        background: transparent !important;
        border-radius: 12px !important;
    }
}


/* ============================================================================
   22. GLOBAL SALE BADGE
   Uses !important, so it wins over both the archive and single-product rules.
   Sale badges render gold site-wide. Preserved deliberately.
   ============================================================================ */

.onsale {
    padding: 6px 14px;
    background: #C99A4A !important;
    color: #fff !important;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
}

/* WooCommerce "View cart" link after AJAX add — hidden by design */
.added_to_cart { display: none !important; }


/* ============================================================================
   23. MOTION PREFERENCE
   ============================================================================ */

@media (prefers-reduced-motion: reduce) {

    .card,
    .card__image,
    .card__btn,
    .card__btn-arrow,
    .hero__image,
    .hero__btn,
    .hero__btn-arrow,
    .pcard,
    .pcard__image,
    .pcard__btn,
    .pcard__btn-arrow,
    .featured__more-btn,
    .fcard,
    .fcard__icon,
    .showcase__image,
    .showcase__btn,
    .showcase__btn-arrow,
    .quote,
    .faq__item,
    .faq__icon,
    .faq__summary,
    .newsletter__field,
    .newsletter__btn,
    .newsletter__btn-arrow {
        transition: none;
    }

    .hero__eyebrow,
    .hero__title,
    .hero__figure,
    .hero__caption {
        opacity: 1;
        animation: none;
    }

    .hero__figure:hover .hero__image,
    .card:hover,
    .card:focus-within,
    .card:hover .card__image,
    .card:focus-within .card__image,
    .pcard:hover,
    .pcard:focus-within,
    .pcard:hover .pcard__image,
    .fcard:hover,
    .fcard:hover .fcard__icon,
    .showcase__media:hover .showcase__image,
    .quote:hover {
        transform: none;
    }

    .faq__item[open] .faq__answer { animation: none; }

    .sl-pdp *,
    .sl-pdp *::before,
    .sl-pdp *::after,
    .sl-scope *,
    .sl-page *,
    .sl-home * {
        transition: none !important;
    }

    .sl-media:hover .sl-image { transform: none; }

    .sl-pd *,
    .sl-pd *::before,
    .sl-pd *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }

    .sl-pd .sl-pd__card:hover,
    .sl-pd .sl-pd__chip:hover,
    .sl-pd .sl-pd__mini:hover { transform: none; }

    .woocommerce ul.products li.product,
    .woocommerce ul.products li.product .sl-media img,
    .woocommerce ul.products li.product .button {
        transition: none !important;
    }

    .woocommerce ul.products li.product .button {
        opacity: 1 !important;
        transform: none !important;
    }
}


/* ============================================================================
   24. PRINT
   ============================================================================ */

@media print {
    .sl-pd { background-color: #fff; overflow-x: visible; }

    .sl-pd .sl-pd__band { padding-top: 2rem; padding-bottom: 2rem; }

    .sl-pd .sl-pd__band--cream,
    .sl-pd .sl-pd__band--sand { background-color: #fff; }

    .sl-pd .sl-pd__stats {
        background-color: #fff;
        background-image: none;
        color: #000;
        border: 1px solid #ddd;
        box-shadow: none;
    }

    .sl-pd .sl-pd__stat-num,
    .sl-pd .sl-pd__stat-label,
    .sl-pd .sl-pd__stats-caption { color: #000; }

    .sl-pd .sl-pd__card,
    .sl-pd .sl-pd__chip,
    .sl-pd .sl-pd__note { box-shadow: none; }

    .sl-pd .sl-pd__split-aside { position: static; }
} color: #FFFFFF !important;
    }

    /* Hover / focus */
    .related.products ul.products li.product .button:hover,
    .related.products ul.products li.product .button:focus,
    .related.products ul.products li.product a.add_to_cart_button:hover,
    .related.products ul.products li.product a.add_to_cart_button:focus {
        background: #B83A4B !important;
        color: #FFFFFF !important;
    }

    /* Prevent cards from becoming different heights */
    .related.products ul.products li.product {
        height: 100% !important;
    }
}

/* Stitch Library: hide extra category labels on product cards. */
.sl-cat { display: none !important; }


/* Stitch Library: fix invisible white text inside the mini-cart popup.
   Blocksy's own --theme-text-color variable is white (meant for a dark
   popup background); our popup background was overridden to cream/light
   above without updating this variable, so any text relying on it
   (e.g. the "Subtotal" total and the "Bundle: ..." variation label)
   rendered white-on-white. Redefining the variable here fixes every
   affected element inside the popup at once. */
.ct-cart-content,
.woocommerce-mini-cart {
    --theme-text-color: #2f2a26;
}


/* Stitch Library: direct, high-specificity fallback for the mini-cart
   Subtotal line and "Bundle:" variation labels — belt-and-braces on top
   of the --theme-text-color fix above, in case something else in the
   cascade still forces white on these specific elements. */
.ct-header-cart .woocommerce-mini-cart__total,
.ct-header-cart .woocommerce-mini-cart__total *,
.ct-header-cart .woocommerce-mini-cart dl.variation dt,
.ct-header-cart .woocommerce-mini-cart dl.variation dd,
.ct-header-cart .woocommerce-mini-cart dl.variation dd * {
    color: #2f2a26 !important;
}


/* ============================================================================
   16. WOOCOMMERCE ARCHIVE — FULL-WIDTH CONTAINER (Shop, Category, Tag)
   ============================================================================ */
body.post-type-archive-product .site-main > .ct-container,
body.tax-product_cat .site-main > .ct-container,
body.tax-product_tag .site-main > .ct-container {
    max-width: 100%;
    padding-inline: clamp(16px, 4vw, 56px);
}
