/* ========================================================================
   Discreet Vibes v2 — approved Fable direction
   Loaded last so the existing Storefront/WooCommerce foundation stays intact.
   ======================================================================== */

:root {
    --dv-ink: #1d1226;
    --dv-ink-2: #5a4c63;
    --dv-muted: #66596d;
    --dv-line: rgba(29, 18, 38, .14);
    --dv-paper: #fbf8f6;
    --dv-warm: #f1eeea;
    --dv-white: #fff;
    --dv-pink: #c31568;
    --dv-pink-dark: #b0298a;
    --dv-pink-soft: #f8e7f0;
    --dv-purple: #9c2bb0;
    --dv-plum: #c445b8;
    --dv-orange: #f2955f;
    --dv-hero: linear-gradient(180deg, #f3bc84 0%, #f04e68 100%);
    --dv-dark-glow: radial-gradient(120% 90% at 80% 0%, rgba(196,69,184,.35), transparent 55%), radial-gradient(100% 80% at 10% 100%, rgba(242,149,95,.25), transparent 55%);
    --dv-display: "Instrument Sans", "Aptos Display", "Segoe UI", sans-serif;
    --dv-body: "Hanken Grotesk", "Aptos", "Segoe UI", sans-serif;
    --dv-radius: 18px;
    --dv-radius-lg: 28px;
    --dv-container: 1920px;
    --dv-gutter: clamp(16px, 3vw, 56px);
    --dv-shell-gutter: max(var(--dv-gutter), calc((100vw - var(--dv-container)) / 2 + 56px));
    --scs-accent: var(--dv-ink);
    --scs-accent-hover: var(--dv-pink);
    --scs-accent-soft: var(--dv-pink-soft);
    --scs-ink: var(--dv-ink);
    --scs-ink-2: var(--dv-ink-2);
    --scs-ink-3: var(--dv-muted);
    --scs-surface: var(--dv-white);
    --scs-surface-2: var(--dv-paper);
    --scs-surface-3: var(--dv-warm);
    --scs-line: var(--dv-line);
    --scs-radius: var(--dv-radius);
    --scs-radius-lg: var(--dv-radius-lg);
    --scs-container: var(--dv-container);
    --scs-container-pad: var(--dv-gutter);
}

html { scroll-behavior: smooth; overflow-x: clip; }
body {
    overflow-x: clip;
    background: var(--dv-paper);
    color: var(--dv-ink);
    font-family: var(--dv-body);
    -webkit-font-smoothing: antialiased;
}
body, button, input, select, textarea { font-family: var(--dv-body); }
h1, h2, h3, h4, h5, h6, .button, button { font-family: var(--dv-display); }
a { color: inherit; }
a:hover { color: var(--dv-pink); }
:focus-visible { outline: 3px solid var(--dv-pink); outline-offset: 3px; }
img { max-width: 100%; }
.site { overflow: clip; }
.site-header, .site-footer { padding: 0 !important; margin: 0 !important; background: transparent; }
.site-header > .col-full, .site-footer > .col-full { max-width: none; width: 100%; padding: 0; margin: 0; }
.site-content { margin: 0; }
body.home .site-content > .col-full { max-width: none; padding: 0; margin: 0; }
body.home .content-area { width: 100%; float: none; margin: 0; }
body.home .site-main { margin: 0; }

/* ----- store assurances + approved white header ------------------------ */
.dv-preheader {
    min-height: 40px;
    display: flex;
    align-items: center;
    gap: 26px;
    padding: 7px var(--dv-shell-gutter);
    background: var(--dv-ink);
    color: #e9def0;
    font-size: 13px;
}
.dv-preheader__messages { display: flex; align-items: center; gap: 26px; }
.dv-preheader__messages span + span::before { content: "·"; opacity: .35; margin-right: 26px; }
.dv-quick-exit {
    margin-left: auto;
    min-height: 28px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 14px;
    border: 1px solid rgba(233,222,240,.4);
    border-radius: 999px;
    background: transparent;
    color: #e9def0;
    font: 600 11px/1 var(--dv-display);
    letter-spacing: .08em;
    text-transform: uppercase;
}
.dv-quick-exit:hover { border-color: var(--dv-pink); background: transparent; color: #fff; }
.dv-quick-exit__short { display: none; }
.dv-header { position: relative; z-index: 20; background: var(--dv-ink); border: 0; isolation: isolate; }
.dv-header::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: radial-gradient(90% 90% at 100% 0%,rgba(196,69,184,.28),transparent 55%);
}
.dv-nav {
    min-height: 96px;
    display: flex;
    align-items: center;
    gap: 30px;
    max-width: var(--dv-container);
    margin: 0 auto;
    padding: 20px var(--dv-gutter);
}
.dv-header__brand { text-decoration: none; flex: 0 0 auto; }
.dv-brand { display: inline-flex; align-items: center; gap: 12px; color: #fff; font: 600 23px/1 var(--dv-display); letter-spacing: -.02em; }
.dv-brand img { width: 48px; height: 48px; object-fit: contain; }
.dv-brand--compact { color: #fff; font-size: 17px; }
.dv-brand--compact img { width: 36px; height: 36px; }
.dv-desktop-links { display: inline-flex; gap: 20px; align-items: center; white-space: nowrap; }
.dv-desktop-links a { color: #fff; text-decoration: none; font-size: 19px; font-weight: 600; }
.dv-desktop-links a.is-accent { color: #fff; }
.dv-desktop-links a:hover, .dv-desktop-links a:focus-visible,
.dv-header__brand:hover .dv-brand, .dv-header__brand:focus-visible .dv-brand { color: var(--dv-pink); }
.dv-header__actions { margin-left: auto; display: inline-flex; gap: 12px; align-items: center; }
.dv-icon-button {
    width: 52px; height: 52px;
    display: grid; place-items: center;
    padding: 0;
    border: 1.5px solid rgba(29,18,38,.15);
    border-radius: 50%;
    background: #fff;
    color: var(--dv-ink);
}
.dv-icon-button:hover { border-color: var(--dv-pink); background: var(--dv-pink); color: #fff; }
.dv-icon-button .scs-util__icon, .dv-cart-button .scs-util__icon, .dv-mobile-nav .scs-util__icon { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.9; }
.dv-cart-button {
    min-width: 126px; height: 52px;
    display: inline-flex; align-items: center; justify-content: center; gap: 9px;
    padding: 0 17px;
    border: 0; border-radius: 999px;
    background: #fff; color: var(--dv-ink);
    font: 600 17px/1 var(--dv-display);
}
.dv-cart-button:hover { background: var(--dv-pink); color: #fff; }
.dv-cart-button .scs-cart-count {
    position: static;
    transform: none;
    min-width: 22px;
    height: 22px;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--dv-ink);
    color: #fff;
    font: 700 12px/1 var(--dv-display);
    font-variant-numeric: tabular-nums;
}
.dv-cart-button:hover .scs-cart-count { background: #fff; color: var(--dv-pink-dark); }
.dv-menu-button { display: none; }
.dv-header-search { position: absolute; right: var(--dv-shell-gutter); top: calc(100% - 8px); width: min(520px, calc(100vw - 32px)); z-index: 25; padding: 14px; background: #fff; border: 1px solid var(--dv-line); border-radius: 18px; box-shadow: 0 18px 50px rgba(29,18,38,.18); }
.dv-header-search .scs-search { margin: 0; }
.dv-skip-link { position: fixed; left: 12px; top: -80px; z-index: 99999; padding: 12px 18px; background: #fff; color: var(--dv-ink); border-radius: 8px; }
.dv-skip-link:focus { top: 12px; }

/* ----- drawer ----------------------------------------------------------- */
.dv-drawer { background: var(--dv-ink); color: #fff; }
.dv-drawer .scs-drawer__head { border-color: rgba(255,255,255,.12); }
.dv-drawer .scs-drawer__toggle { color: #fff; }
.dv-drawer__content { padding: 12px 26px 42px; overflow-y: auto; }
.dv-drawer__group { padding: 22px 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.dv-drawer__group h2 { margin: 0 0 12px; color: #8a7c93; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; }
.dv-drawer__group ul { margin: 0; padding: 0; list-style: none; }
.dv-drawer__group a { display: block; padding: 8px 0; color: #e9def0; text-decoration: none; font-size: 16px; }

/* ----- homepage --------------------------------------------------------- */
.dv-home { width: 100%; background: var(--dv-paper); }
.dv-hero { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: stretch; gap: 24px; padding: 28px var(--dv-shell-gutter) 44px; background: var(--dv-warm); }
.dv-hero__copy { position: relative; min-width: 0; overflow: hidden; display: flex; flex-direction: column; justify-content: center; padding: 64px 56px; border-radius: var(--dv-radius-lg); background: var(--dv-ink); isolation: isolate; }
.dv-hero__copy::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: radial-gradient(90% 90% at 100% 0%,rgba(196,69,184,.28),transparent 55%);
}
.dv-eyebrow { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 22px; color: #f7b58f; font: 600 12px/1.4 var(--dv-display); letter-spacing: .18em; text-transform: uppercase; }
.dv-eyebrow i { width: 26px; height: 2px; flex: 0 0 auto; background: linear-gradient(90deg,var(--dv-orange),var(--dv-pink)); }
.dv-hero h1 { margin: 0 0 24px; color: #fff; font: 600 66px/1.06 var(--dv-display); letter-spacing: -.03em; }
.dv-hero__copy > p { max-width: 44ch; margin: 0 0 36px; color: #e3d8e8; font-size: 18px; line-height: 1.65; }
.dv-button-row { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.dv-button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; padding: 14px 30px; border: 1.5px solid transparent; border-radius: 999px; text-decoration: none !important; font: 600 15px/1.2 var(--dv-display); }
.dv-button--dark { background: var(--dv-ink); color: #fff; }
.dv-button--dark:hover { background: var(--dv-pink); color: #fff; }
.dv-button--outline { border-color: rgba(29,18,38,.25); color: var(--dv-ink); }
.dv-button--outline:hover { border-color: var(--dv-ink); color: var(--dv-ink); }
.dv-hero .dv-button--dark { background: #fff; color: var(--dv-ink); }
.dv-hero .dv-button--dark:hover { background: var(--dv-pink); color: #fff; }
.dv-hero .dv-button--outline { border-color: #fff; background: rgba(255,255,255,.04); color: #fff; }
.dv-hero .dv-button--outline:hover { border-color: var(--dv-pink); background: var(--dv-pink); color: #fff; }
.dv-button--light { min-height: 44px; padding: 11px 24px; background: #fff; color: var(--dv-ink); }
.dv-hero__checks { display: flex; gap: 24px; margin: 44px 0 0; padding: 0; list-style: none; color: #c4b6cc; font-size: 13px; font-weight: 600; }
.dv-hero__art { position: relative; min-width: 0; width: 100%; align-self: stretch; overflow: hidden; border-radius: var(--dv-radius-lg); background: #000; isolation: isolate; }
.dv-hero__art::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(90deg, transparent 42%, rgba(0,0,0,.08) 55%, rgba(0,0,0,.38) 100%); }
.dv-hero__art > img { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; max-height: none; margin: 0; display: block; object-fit: cover; object-position: center; }
.dv-hero__privacy { position: absolute; top: 50%; right: 0; z-index: 2; width: 38%; margin: 0; padding: 30px 30px 30px 8px; transform: translateY(-50%); }
.dv-hero__privacy h2 { margin: 0; color: #fff; font: 600 26px/1.15 var(--dv-display); letter-spacing: -.02em; }
.dv-hero__privacy p { margin: 10px 0 0; color: #eee8f1; font-size: 14px; line-height: 1.6; }

.dv-trust-bar { display: flex; flex-wrap: wrap; gap: 30px; align-items: center; justify-content: center; min-height: 54px; padding: 14px 24px; background: var(--dv-ink); color: #f0e2d4; font: 600 13px/1.25 var(--dv-display); letter-spacing: .1em; text-transform: uppercase; }
.dv-trust-bar b { color: var(--dv-pink); }
.dv-trust-bar b:nth-of-type(even) { color: var(--dv-orange); }
.dv-types { padding: 64px var(--dv-shell-gutter) 40px; background: var(--dv-paper); }
.dv-section-head { display: flex; align-items: baseline; gap: 18px; margin-bottom: 26px; }
.dv-section-head h2 { margin: 0; color: var(--dv-ink); font: 600 40px/1.05 var(--dv-display); letter-spacing: -.03em; }
.dv-section-head > span { color: var(--dv-muted); font-size: 14px; }
.dv-section-head > a { margin-left: auto; font-weight: 600; text-decoration: none; }
.dv-type-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 26px; overflow: visible; }
.dv-type-chips::-webkit-scrollbar { display: none; }
.dv-type-chips a { flex: 0 0 auto; padding: 8px 13px; border: 1.5px solid var(--dv-line); border-radius: 999px; text-decoration: none; font: 600 12px/1.2 var(--dv-display); white-space: nowrap; }
.dv-type-chips a.is-active { border-color: var(--dv-ink); background: var(--dv-ink); color: #fff; }
.dv-type-grid, .dv-product-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; }
.dv-type-card { min-width: 0; height: 100%; display: flex; flex-direction: column; gap: 10px; text-decoration: none; font: 600 17px/1.3 var(--dv-display); }
.dv-type-card__media { display: block; overflow: hidden; aspect-ratio: 4/5; padding: 12%; border-radius: 18px; background: var(--dv-warm); }
.dv-type-card__media--cover { padding: 12%; }
.dv-type-card img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; transition: transform .3s ease; }
.dv-type-card__media--cover img { object-fit: contain; }
.dv-type-card__media--placeholder { display: grid; place-items: center; padding: 0; background: repeating-linear-gradient(-45deg,#f1eeea 0 14px,#eae5e0 14px 28px); }
.dv-type-card__media--placeholder > span { padding: 0 14px; color: #8a7c93; font: 500 11px/1.45 ui-monospace,monospace; text-align: center; }
.dv-type-card:hover img, .dv-type-card:focus-visible img { transform: scale(1.035); }
.dv-type-card:focus-visible { border-radius: 18px; outline: 3px solid var(--dv-pink); outline-offset: 4px; }
.dv-type-card small { color: var(--dv-muted); font-weight: 500; }
.dv-trust-bar--second { margin-top: 40px; } /* 2026-11-06: equal 40px gaps above and below the homepage banner (desktop; mobile set at ≤899px) */
.dv-home-banner { display: block; width: 100%; }
.dv-home-banner img { display: block; width: 100%; height: auto; max-height: none; }
.dv-home-banner:focus-visible { outline: 3px solid var(--dv-pink); outline-offset: -3px; }
.dv-home-banner + .dv-trust-bar--second { margin-top: 0; }
.dv-mobile-banner { display: none; }

.dv-bestsellers { padding: 56px var(--dv-shell-gutter) 64px; background: var(--dv-warm); }
.dv-product-card { position: relative; min-width: 0; }
.dv-product-card__media { position: relative; display: block; overflow: hidden; aspect-ratio: 4/5; border-radius: 22px; background: #fff; }
.dv-product-card__media img { width: 100%; height: 100%; padding: 12%; object-fit: contain; }
.dv-product-card__badge { position: absolute; top: 14px; left: 14px; padding: 7px 14px; border-radius: 999px; background: var(--dv-warm); color: var(--dv-ink); font: 600 12px/1 var(--dv-display); }
.dv-product-card__add { position: absolute; right: 14px; top: min(calc(100% - 92px), calc(80% - 60px)); z-index: 2; width: 46px; height: 46px; display: grid; place-items: center; padding: 0; border-radius: 50%; background: var(--dv-ink); color: transparent; text-decoration: none; font-size: 0; }
.dv-product-card__add:hover { background: var(--dv-pink); color: #fff; }
.dv-product-card__add::before,
li.product > .button::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    margin: 0;
    width: 14px;
    height: 14px;
    background: linear-gradient(#fff,#fff) center/14px 2px no-repeat,linear-gradient(#fff,#fff) center/2px 14px no-repeat;
}
.dv-product-card__add::after,
li.product > .button::after { content: none !important; }
.dv-product-card__head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-top: 12px; font: 600 17px/1.25 var(--dv-display); }
.dv-product-card__head a { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-decoration: none; }
.dv-product-card__head .price { margin: 0; color: var(--dv-ink); white-space: nowrap; }
.dv-product-card__meta { display: flex; justify-content: space-between; gap: 8px; margin-top: 5px; color: var(--dv-muted); font-size: 12px; white-space: nowrap; }
.dv-product-card__meta > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.dv-product-card__meta strong { color: var(--dv-pink); }
.dv-demo-price { padding: 3px 8px; border-radius: 999px; background: var(--dv-pink-soft); color: var(--dv-pink-dark); font: 600 9px/1 var(--dv-display); letter-spacing: .05em; text-transform: uppercase; }

.dv-privacy-feature { position: relative; overflow: hidden; display: grid; grid-template-columns: 380px minmax(0,1fr); gap: 48px; align-items: center; min-height: 420px; margin: 72px var(--dv-shell-gutter) 0; padding-right: 56px; border-radius: var(--dv-radius-lg); background: var(--dv-ink); color: #fff; isolation: isolate; }
.dv-privacy-feature::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(90% 90% at 100% 0%,rgba(196,69,184,.28),transparent 55%); }
.dv-privacy-feature > img { width: 100%; height: 100%; align-self: end; object-fit: contain; object-position: bottom; }
.dv-privacy-feature__content { padding: 56px 0; }
.dv-privacy-feature h2 { margin: 0 0 30px; color: #fff; font: 600 44px/1.05 var(--dv-display); letter-spacing: -.03em; }
.dv-privacy-points { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; }
.dv-privacy-points h3 { margin: 0 0 8px; color: #fff; font-size: 16px; }
.dv-privacy-points article:nth-child(1) h3 { color: #f7b58f; }
.dv-privacy-points article:nth-child(2) h3 { color: #f16ba9; }
.dv-privacy-points article:nth-child(3) h3 { color: #d77bce; }
.dv-privacy-points p { margin: 0; color: #c4b6cc; font-size: 14px; line-height: 1.6; }

.dv-home-promos { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding: 24px var(--dv-shell-gutter) 72px; }
.dv-home-promos > article { min-height: 340px; border-radius: var(--dv-radius-lg); }
.dv-couples-promo { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0,58fr) minmax(0,42fr); align-items: stretch; padding: 36px 42px; background-color: var(--dv-ink); background-image: var(--dv-dark-glow); color: #fff; isolation: isolate; }
.dv-couples-promo__content { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding-right: 24px; }
.dv-couples-promo__eyebrow { margin-bottom: 13px; color: #f7b58f; font: 600 11px/1.3 var(--dv-display); letter-spacing: .17em; text-transform: uppercase; }
.dv-couples-promo__visual { min-width: 0; display: grid; place-items: center; }
.dv-couples-promo__image { position: relative; width: min(100%,300px); aspect-ratio: 1; display: grid; place-items: center; }
.dv-couples-promo__image::before { content: ""; position: absolute; inset: 17%; z-index: 0; border-radius: 50%; background: rgba(232,56,141,.13); filter: blur(30px); }
.dv-couples-promo__image img { position: relative; z-index: 2; width: 100%; height: 100%; object-fit: contain; mix-blend-mode: normal; filter: none; opacity: 1; }
.dv-couples-promo h2, .dv-guide-promo h2 { margin: 0; font: 600 30px/1.12 var(--dv-display); letter-spacing: -.02em; }
.dv-couples-promo h2 { color: #fff; }
.dv-couples-promo p { max-width: 38ch; margin: 14px 0 22px; color: #e3d8e8; font-size: 15px; line-height: 1.6; }
.dv-couples-promo .dv-button--light { min-height: 48px; padding: 12px 26px; background: #fff; color: var(--dv-ink); }
.dv-couples-promo .dv-button--light:hover { background: var(--dv-pink); color: #fff; }
.dv-couples-promo .dv-button--light:focus-visible { outline: 3px solid var(--dv-pink); outline-offset: 4px; }
.dv-guide-promo { display: flex; flex-direction: column; justify-content: center; padding: 36px 42px; background-color: var(--dv-ink); background-image: var(--dv-dark-glow); color: #fff; }
.dv-guide-promo > span { margin-bottom: 14px; color: #f7b58f; font: 600 12px/1 var(--dv-display); letter-spacing: .18em; text-transform: uppercase; }
.dv-guide-promo h2 { color: #fff; }
.dv-guide-promo p { max-width: 44ch; margin: 12px 0 24px; color: #e3d8e8; font-size: 15px; line-height: 1.65; }
.dv-guide-promo .dv-button--light { min-height: 48px; padding: 12px 26px; background: #fff; color: var(--dv-ink); }
.dv-guide-promo .dv-button--outline { min-height: 48px; border-color: #fff; background: transparent; color: #fff; }
.dv-guide-promo .dv-button:hover { border-color: var(--dv-pink); background: var(--dv-pink); color: #fff; }
.dv-guide-promo .dv-button:focus-visible { outline: 3px solid var(--dv-pink); outline-offset: 4px; }

/* ----- footer ----------------------------------------------------------- */
.dv-footer {
    display: grid;
    grid-template: "brand nav" auto "legal legal" auto / minmax(600px,1.45fr) minmax(500px,1fr);
    align-items: center;
    gap: 28px 64px;
    padding: 42px var(--dv-shell-gutter) 28px;
    background-color: var(--dv-ink);
    background-image: var(--dv-dark-glow);
    color: #eadff0;
    font-size: 15px;
}
.dv-footer__brand { grid-area: brand; min-width: 0; display: flex; align-items: center; gap: clamp(24px,3vw,52px); }
.dv-footer__emblem { flex: 0 0 auto; width: clamp(280px,19vw,348px); height: auto; aspect-ratio: 1; object-fit: contain; }
.dv-footer__identity { max-width: 34ch; }
.dv-footer__identity strong { display: block; color: #fff; font: 600 clamp(25px,2vw,32px)/1.1 var(--dv-display); letter-spacing: -.02em; }
.dv-footer__brand p { max-width: 34ch; margin: 18px 0 0; color: #eadff0; line-height: 1.7; }
.dv-footer__nav { grid-area: nav; display: grid; grid-template-columns: repeat(3,minmax(130px,1fr)); align-items: start; gap: 34px; }
.site-footer .dv-footer .dv-footer__column h2 { margin: 0 0 15px; color: #fff; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; }
.dv-footer__column ul { margin: 0; padding: 0; list-style: none; }
.dv-footer__column li { margin: 0; }
.site-footer .dv-footer a:not(.button):not(.components-button) { display: inline-flex; align-items: center; min-height: 34px; color: #fff; text-decoration: none; }
.site-footer .dv-footer a:not(.button):not(.components-button):hover,
.site-footer .dv-footer a:not(.button):not(.components-button):focus-visible {
    border-radius: 3px;
    background: #160c1e;
    color: var(--dv-pink);
    box-shadow: 0 0 0 3px #160c1e;
}
.site-footer .dv-footer a:not(.button):not(.components-button):focus-visible { outline: 3px solid var(--dv-pink); outline-offset: 3px; border-radius: 3px; }
.dv-footer__legal { grid-area: legal; display: flex; align-items: center; flex-wrap: wrap; gap: 10px 22px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.18); color: #c9bad1; font-size: 12px; }
.site-footer .dv-footer .dv-footer__legal a:not(.button):not(.components-button) { min-height: 30px; color: #c9bad1; }
.site-footer .dv-footer .dv-footer__legal a:not(.button):not(.components-button):hover,
.site-footer .dv-footer .dv-footer__legal a:not(.button):not(.components-button):focus-visible { color: var(--dv-pink); }
.dv-footer__legal span:last-child { margin-left: auto; }
.dv-mobile-nav { display: none; }

/* ----- native Vibe Guide posts archive --------------------------------- */
.dv-vibe-guide { width: 100%; max-width: var(--dv-container); margin-inline: auto; padding: 12px var(--dv-gutter) 34px; }
.dv-vibe-guide__header { max-width: 760px; margin-bottom: 34px; }
.dv-vibe-guide__header > span { display: block; margin-bottom: 12px; color: var(--dv-pink-dark); font: 600 12px/1.3 var(--dv-display); letter-spacing: .16em; text-transform: uppercase; }
.dv-vibe-guide__header h1 { margin: 0; color: var(--dv-ink); font: 600 clamp(42px,5vw,64px)/1.05 var(--dv-display); letter-spacing: -.03em; }
.dv-vibe-guide__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.dv-vibe-guide__card { overflow: hidden; margin: 0; border: 1px solid var(--dv-line); border-radius: var(--dv-radius); background: #fff; }
.dv-vibe-guide__image { display: block; aspect-ratio: 16/10; overflow: hidden; }
.dv-vibe-guide__image img { width: 100%; height: 100%; object-fit: cover; }
.dv-vibe-guide__card-body { padding: 24px; }
.dv-vibe-guide__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; color: var(--dv-muted); font-size: 12px; }
.dv-vibe-guide__meta a { color: var(--dv-pink-dark); }
.dv-vibe-guide__card h2 { margin: 12px 0 10px; font-size: 25px; line-height: 1.15; }
.dv-vibe-guide__card h2 a { color: var(--dv-ink); text-decoration: none; }
.dv-vibe-guide__excerpt { color: var(--dv-ink-2); line-height: 1.65; }
.dv-vibe-guide__read { display: inline-flex; margin-top: 18px; color: var(--dv-pink-dark); font-weight: 600; }
.dv-vibe-guide__empty { min-height: 260px; display: grid; align-content: center; justify-items: center; padding: 48px 24px; border: 1px solid var(--dv-line); border-radius: var(--dv-radius-lg); background: linear-gradient(120deg,#f8ebe3,#f8e7f0); text-align: center; }
.dv-vibe-guide__empty h2 { margin: 0; color: var(--dv-ink); font-size: clamp(28px,3vw,38px); }
.dv-vibe-guide__empty p { margin: 12px 0 0; color: var(--dv-ink-2); font-size: 16px; }

/* ----- WooCommerce and content pages ----------------------------------- */
body:not(.home) .site-content { padding: 44px 0 80px; background: var(--dv-paper); }
body:not(.home) .site-content > .col-full { box-sizing: border-box; width: 100%; max-width: none; margin-inline: 0; padding-inline: 0; }
.storefront-breadcrumb > .col-full { box-sizing: border-box; width: 100%; max-width: var(--dv-container); margin-inline: auto; padding-inline: var(--dv-gutter); }
.woocommerce-breadcrumb { justify-content: flex-start; color: var(--dv-muted); font-size: 14px; }
.dv-anal-categories { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 26px; }
.dv-anal-categories__link { display: inline-flex; align-items: center; min-height: 42px; padding: 8px 18px; border: 1px solid var(--dv-purple); border-radius: 999px; color: var(--dv-ink); background: #fff; font-weight: 600; text-decoration: none; }
.dv-anal-categories__link:hover, .dv-anal-categories__link.is-active { color: #fff; background: var(--dv-purple); }
.woocommerce-products-header__title.page-title, .entry-title, .woocommerce h1, .woocommerce h2 { color: var(--dv-ink); letter-spacing: -.025em; }
.woocommerce-products-header__title.page-title { font: 600 clamp(36px,5vw,58px)/1.05 var(--dv-display); }
.woocommerce-result-count, .woocommerce-ordering { color: var(--dv-muted); }
.woocommerce-ordering select, select, input.input-text, textarea, .woocommerce form .form-row input.input-text {
    min-height: 48px; border: 1px solid var(--dv-line); border-radius: 12px; background: #fff; color: var(--dv-ink);
}
.scs-shop, .scs-shop__main, .scs-shop__main .content-area, .scs-shop__main .site-main,
.woocommerce-products-header, .storefront-sorting, ul.products { width: 100%; min-width: 0; }
.storefront-sorting { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 12px 18px; }
.storefront-sorting .woocommerce-result-count { order: 1; float: none; margin: 0; }
.storefront-sorting .woocommerce-ordering { order: 2; float: none; margin: 0 0 0 auto; }
ul.products { --scs-grid-cols: 4; --scs-product-column-gap: 18px; column-gap: var(--scs-product-column-gap); row-gap: 20px; }
/* Stretch each card to its row height so the full action circle stays inside it. */
ul.products li.product { container-type: inline-size; height: auto; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
ul.products li.product:hover { transform: translateY(-2px); box-shadow: none; }
li.product .scs-card__media { aspect-ratio: 4/5; border: 1px solid rgba(29,18,38,.07); border-radius: 22px; background: #fff; }
li.product .scs-card__media img { display: block; margin: auto; padding: 12%; object-fit: contain; object-position: center; }
li.product > .scs-card__brand { margin: 12px 0 0; min-height: 0; color: var(--dv-muted); }
li.product .woocommerce-loop-product__title { min-height: 0; margin: 4px 0 !important; color: var(--dv-ink); font: 600 16px/1.3 var(--dv-display) !important; }
li.product .scs-card__rating, li.product .price { margin-inline: 0; }
li.product .scs-card__rating { color: var(--dv-muted); }
li.product .scs-stars { color: var(--dv-pink); }
li.product .price { padding: 0 !important; color: var(--dv-ink) !important; font-weight: 600; }
li.product > .button {
    position: absolute; z-index: 3; right: 14px; top: auto; bottom: 0;
    display: grid; place-items: center;
    width: 46px; min-width: 46px; height: 46px; min-height: 46px;
    margin: 0 !important; padding: 0; border-radius: 50%;
    background: var(--dv-ink); color: transparent; font-size: 0;
}
li.product > .button:hover { background: var(--dv-pink); }
.woocommerce span.onsale, li.product .onsale { top: 14px; left: 14px; padding: 7px 13px; border-radius: 999px; background: var(--dv-pink-soft); color: var(--dv-pink-dark); }
.scs-shop { grid-template-columns: minmax(0,1fr) !important; gap: 36px; }
.scs-facets { border-radius: 18px; background: #fff; }
.scs-facet__title { font-family: var(--dv-display); }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { border-radius: 50%; }

.single-product div.product { gap: 48px; }
.single-product div.product .woocommerce-product-gallery, .single-product div.product .summary { margin: 0; }
.single-product .woocommerce-product-gallery__wrapper, .single-product .woocommerce-product-gallery__image { border-radius: 24px; background: #fff; }
.single-product .woocommerce-product-gallery__image img { object-fit: contain; }
.single-product div.product .product_title { font: 600 clamp(34px,4vw,54px)/1.04 var(--dv-display); }
.single-product div.product p.price { color: var(--dv-pink-dark); font-family: var(--dv-display); }
.single_add_to_cart_button, .woocommerce .button, button.button, input.button {
    border-radius: 999px !important; background: var(--dv-ink) !important; color: #fff !important; font-weight: 600 !important;
}
.single_add_to_cart_button:hover, .woocommerce .button:hover, button.button:hover, input.button:hover { background: var(--dv-pink) !important; }
.scs-buy__assurance { border-radius: 18px; background: var(--dv-warm); }
.woocommerce-tabs ul.tabs li.active a { color: var(--dv-pink-dark); }

.woocommerce-cart-form, .cart_totals, .woocommerce-checkout-review-order, .woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce-MyAccount-content, .woocommerce-MyAccount-navigation, .entry-content > .woocommerce {
    border-radius: 22px;
}
.scs-offline-notice { border-radius: 18px; border-color: var(--dv-orange); background: #fff6ef; }
.woocommerce-info, .woocommerce-message, .woocommerce-error { border-radius: 14px; background: #fff; }
.woocommerce-info { border-top-color: var(--dv-purple); }
.woocommerce-message { border-top-color: var(--dv-pink); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { color: var(--dv-pink-dark); }
.storefront-product-pagination, .storefront-handheld-footer-bar { display: none !important; }
.entry-content > p, .entry-content > ul, .entry-content > ol { max-width: 72ch; }
.entry-content h2 { margin-top: 1.6em; }

/* ----- customer contact ------------------------------------------------ */
.page-template-page-contact .content-area,
.page-template-page-contact .site-main { width: 100%; float: none; margin: 0; }
.dv-contact-page .entry-header { margin-bottom: 24px; }
.dv-contact-page .entry-title { margin: 0; font: 600 clamp(40px,5vw,60px)/1.04 var(--dv-display); }
.dv-contact { display: grid; grid-template-columns: minmax(250px,.72fr) minmax(0,1.45fr); gap: clamp(32px,6vw,84px); align-items: start; }
.dv-contact::before,
.dv-contact::after { display: none; }
.dv-contact__intro { padding-top: 18px; }
.dv-contact__intro > p:last-child { max-width: 40ch; margin: 0; color: var(--dv-ink-2); font-size: clamp(17px,1.6vw,20px); line-height: 1.65; }
.dv-contact__eyebrow { margin: 0 0 14px; color: var(--dv-pink-dark); font: 700 12px/1.2 var(--dv-display); letter-spacing: .15em; }
.dv-contact__card { padding: clamp(24px,3.4vw,44px); border: 1px solid rgba(29,18,38,.08); border-radius: var(--dv-radius-lg); background: #fff; box-shadow: 0 22px 55px rgba(29,18,38,.08); }
.dv-contact__form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px 18px; }
.dv-contact__field { min-width: 0; }
.dv-contact__field--full { grid-column: 1 / -1; }
.dv-contact__field label { display: block; margin-bottom: 8px; color: var(--dv-ink); font: 600 14px/1.35 var(--dv-display); }
.dv-contact__field label > span[aria-hidden="true"] { color: var(--dv-pink-dark); }
.dv-contact__optional { margin-left: 5px; color: var(--dv-muted); font: 400 12px/1.35 var(--dv-body); }
.dv-contact__field input,
.dv-contact__field select,
.dv-contact__field textarea { box-sizing: border-box; width: 100%; margin: 0; padding: 12px 14px; border: 1px solid var(--dv-line); border-radius: 12px; background: var(--dv-paper); color: var(--dv-ink); box-shadow: none; font-size: 16px; line-height: 1.4; transition: border-color .16s ease, box-shadow .16s ease, background .16s ease; }
.dv-contact__field input,
.dv-contact__field select { height: 50px; }
.dv-contact__field textarea { min-height: 140px; resize: vertical; }
.dv-contact__field input:focus,
.dv-contact__field select:focus,
.dv-contact__field textarea:focus { outline: 3px solid var(--dv-pink); outline-offset: 2px; border-color: var(--dv-pink); background: #fff; box-shadow: 0 0 0 3px rgba(232,56,141,.16); }
.dv-contact__consent { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 10px; align-items: start; }
.dv-contact__consent input { width: 18px; height: 18px; margin: 3px 0 0; accent-color: var(--dv-pink); }
.dv-contact__consent label { color: var(--dv-ink-2); font-size: 14px; line-height: 1.55; }
.dv-contact__consent a { color: var(--dv-pink-dark); font-weight: 600; }
.dv-contact__actions { display: flex; align-items: center; gap: 18px; }
.dv-contact__actions .dv-button { flex: 0 0 auto; margin: 0; border: 0; cursor: pointer; }
.dv-contact__actions .dv-button:disabled { cursor: wait; opacity: .68; }
.dv-contact__actions p { margin: 0; color: var(--dv-muted); font-size: 12px; line-height: 1.5; }
.dv-contact__collection { max-width: 56ch; }
.dv-contact__collection a { color: var(--dv-pink-dark); font-weight: 600; }
.dv-contact__status { margin: 0 0 22px; padding: 15px 18px; border-left: 4px solid; border-radius: 12px; }
.dv-contact__status p { margin: 0; }
.dv-contact__status ul { margin: 8px 0 0 19px; }
.dv-contact__status--success { border-color: #447a63; background: #edf7f1; color: #285b46; }
.dv-contact__status--error { border-color: var(--dv-pink-dark); background: var(--dv-pink-soft); color: #761c59; }
.dv-contact__honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

/* ----- privacy policy --------------------------------------------------- */
.page-template-page-privacy .content-area,
.page-template-page-privacy .site-main { width: 100%; float: none; margin: 0; }
.dv-privacy-page .hentry { margin-bottom: 0; }
.dv-privacy__header { max-width: 900px; margin: 0 auto 40px !important; text-align: center; }
.dv-privacy__header .entry-title { margin: 0; font: 600 clamp(42px,5.5vw,64px)/1.04 var(--dv-display); }
.dv-privacy__summary { max-width: 740px; margin: 20px auto 24px; color: var(--dv-ink-2); font-size: clamp(18px,2vw,22px); line-height: 1.6; }
.dv-privacy__dates { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px 14px; margin: 0; }
.dv-privacy__dates div { display: flex; gap: 7px; padding: 7px 12px; border: 1px solid var(--dv-line); border-radius: 999px; background: #fff; color: var(--dv-ink-2); font-size: 12px; }
.dv-privacy__dates dt { font-weight: 700; }
.dv-privacy__dates dd { margin: 0; }
.dv-privacy { display: grid; grid-template-columns: 245px minmax(0,800px); justify-content: center; gap: clamp(32px,5vw,72px); align-items: start; }
.dv-privacy::before,
.dv-privacy::after { display: none; }
.dv-privacy__nav { position: sticky; top: 24px; padding: 22px; border: 1px solid var(--dv-line); border-radius: var(--dv-radius); background: #fff; }
.dv-privacy__nav h2 { margin: 0 0 12px; color: var(--dv-ink); font: 600 18px/1.25 var(--dv-display); }
.dv-privacy__nav ol { margin: 0; padding-left: 20px; color: var(--dv-muted); font-size: 13px; }
.dv-privacy__nav li + li { margin-top: 6px; }
.dv-privacy__nav a { color: var(--dv-ink-2); text-decoration: none !important; }
.dv-privacy__nav a:hover { color: var(--dv-pink-dark); text-decoration: underline !important; }
.dv-privacy__content { min-width: 0; }
.dv-privacy__content section { scroll-margin-top: 24px; padding-bottom: 34px; }
.dv-privacy__content section + section { padding-top: 34px; border-top: 1px solid var(--dv-line); }
.dv-privacy__content h2 { margin: 0 0 16px; color: var(--dv-ink); font: 600 clamp(25px,3vw,32px)/1.2 var(--dv-display); }
.dv-privacy__content p,
.dv-privacy__content li { color: var(--dv-ink-2); font-size: 16px; line-height: 1.75; }
.dv-privacy__content p { max-width: none; margin: 0 0 16px; }
.dv-privacy__content ul { margin: 0 0 18px 22px; }
.dv-privacy__content li + li { margin-top: 8px; }
.dv-privacy__content strong { color: var(--dv-ink); }
.dv-privacy__content a { color: var(--dv-pink-dark); font-weight: 600; text-underline-offset: 3px; }
.dv-privacy__content code { padding: 2px 5px; border-radius: 5px; background: var(--dv-warm); color: var(--dv-ink); font-size: .82em; overflow-wrap: anywhere; }
.dv-privacy__table-wrap { margin: 22px 0; }
.dv-privacy__table { table-layout: fixed; width: 100%; margin: 0; border: 1px solid var(--dv-line); border-radius: 14px; border-spacing: 0; overflow: hidden; background: #fff; font-size: 13px; }
.dv-privacy__table th { padding: 13px 11px; background: var(--dv-ink); color: #fff; font: 600 12px/1.35 var(--dv-display); vertical-align: bottom; }
.dv-privacy__table td { padding: 13px 11px; border-top: 1px solid var(--dv-line); color: var(--dv-ink-2); line-height: 1.5; vertical-align: top; overflow-wrap: anywhere; }
.dv-privacy__table th:nth-child(1) { width: 18%; }
.dv-privacy__table th:nth-child(2) { width: 14%; }
.dv-privacy__table th:nth-child(3) { width: 27%; }
.dv-privacy__table th:nth-child(4) { width: 17%; }
.dv-privacy__table th:nth-child(5) { width: 24%; }
.dv-privacy__table tbody tr:nth-child(even) td { background: rgba(241,238,234,.45); }

/* ----- accessible age gate --------------------------------------------- */
.dv-age-gate[hidden] { display: none; }
.dv-age-gate { position: fixed; inset: 0; z-index: 999999; display: grid; place-items: center; padding: 20px; background: rgba(29,18,38,.78); backdrop-filter: blur(8px); }
.dv-age-gate__panel { width: min(520px,100%); overflow: hidden; border-radius: 28px; background: #fff; box-shadow: 0 24px 80px rgba(0,0,0,.35); }
.dv-age-gate__art { min-height: 150px; display: grid; place-items: center; background: var(--dv-ink) var(--dv-dark-glow); }
.dv-age-gate__art img { width: 138px; height: 138px; object-fit: contain; }
.dv-age-gate__body { padding: 34px; text-align: center; }
.dv-age-gate__eyebrow { display: block; margin-bottom: 8px; color: var(--dv-muted); font-size: 14px; }
.dv-age-gate__body h2 { margin: 0 0 12px; font-size: 32px; }
.dv-age-gate__body p { margin: 0 auto 24px; max-width: 42ch; color: var(--dv-ink-2); }
.dv-age-gate__actions { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; }
.dv-age-gate__body small { display: block; margin-top: 10px; color: var(--dv-muted); }
body.dv-age-locked { overflow: hidden; }

@media (max-width: 1180px) {
    .dv-nav { min-height: 86px; gap: 14px; padding-inline: 20px; }
    .dv-brand { gap: 9px; font-size: 20px; }
    .dv-brand img { width: 42px; height: 42px; }
    .dv-desktop-links { gap: 12px; }
    .dv-desktop-links a { font-size: 16px; }
    .dv-header__actions { gap: 7px; }
    .dv-icon-button { width: 46px; height: 46px; }
    .dv-cart-button { min-width: 104px; height: 46px; padding-inline: 12px; font-size: 15px; }
    ul.products { --scs-grid-cols: 3; --scs-product-column-gap: 16px; }
    .dv-hero { grid-template-columns: repeat(2,minmax(0,1fr)); padding-inline: var(--dv-shell-gutter); }
    .dv-hero__copy { padding: 50px 38px; }
    .dv-hero h1 { font-size: 54px; }
    .dv-hero__checks { flex-wrap: wrap; gap: 12px 20px; }
    .dv-couples-promo { grid-template-columns: minmax(0,55fr) minmax(0,45fr); padding: 30px; }
    .dv-couples-promo__content { padding-right: 18px; }
    .dv-couples-promo__image { width: min(100%,260px); }
    .dv-footer { grid-template: "brand" auto "nav" auto "legal" auto / minmax(0,1fr); align-items: start; gap: 30px; padding-inline: var(--dv-shell-gutter); }
    .dv-footer__brand { justify-content: center; }
    .dv-footer__emblem { width: 260px; }
    .dv-footer__nav { width: 100%; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; }
}

@media (max-width: 899px) {
    body { padding-bottom: 66px; }
    .dv-preheader { min-height: 40px; padding: 7px var(--dv-gutter); font-size: 12px; }
    .dv-preheader__messages span { display: none; }
    .dv-preheader__messages span:first-child { display: inline; }
    .dv-quick-exit { min-height: 26px; padding: 5px 10px; font-size: 9.5px; }
    .dv-quick-exit__long { display: none; }
    .dv-quick-exit__short { display: inline; }
    .dv-nav { min-height: 74px; padding: 12px var(--dv-gutter); gap: 10px; }
    .dv-menu-button { display: grid; }
    .dv-desktop-links, .dv-search-toggle, .dv-account-link, .dv-cart-button__label { display: none; }
    .dv-header__brand { margin-inline: auto; }
    .dv-brand { font-size: 17px; }
    .dv-brand img { width: 34px; height: 34px; }
    .dv-icon-button .scs-util__icon, .dv-cart-button .scs-util__icon, .dv-mobile-nav .scs-util__icon { width: 19px; height: 19px; }
    .dv-cart-button { min-width: 58px; width: auto; height: 44px; gap: 5px; padding: 0 8px; border-radius: 999px; }
    .dv-cart-button .scs-cart-count { min-width: 18px; height: 18px; padding-inline: 4px; font-size: 10px; }
    .dv-header-search { position: static; width: auto; margin: 0 14px 12px; }

    .dv-home { width: 100%; }
    .dv-hero { display: block; padding: 14px var(--dv-gutter) 0; background: var(--dv-paper); }
    .dv-hero__copy { padding: 38px 24px 30px; border-radius: 22px; }
    .dv-eyebrow { margin-bottom: 14px; font-size: 10.5px; letter-spacing: .14em; }
    .dv-eyebrow i { display: none; }
    .dv-hero h1 { margin-bottom: 14px; font-size: 34px; line-height: 1.1; letter-spacing: -.02em; }
    .dv-hero__copy > p { margin-bottom: 22px; font-size: 14.5px; line-height: 1.6; }
    .dv-button { min-height: 44px; padding: 11px 23px; font-size: 14px; }
    .dv-hero .dv-button--outline { font-size: 0; }
    .dv-hero .dv-button--outline::after { content: "60s fit quiz"; font-size: 14px; }
    .dv-hero__checks { display: none; }
    .dv-hero__art { min-height: 0; aspect-ratio: 1.55; margin-top: 12px; border-radius: 22px; }
    .dv-hero__privacy { width: 39%; padding: 18px 14px 18px 2px; }
    .dv-hero__privacy h2 { font-size: 18px; line-height: 1.12; }
    .dv-hero__privacy p { margin-top: 8px; font-size: 11.5px; line-height: 1.45; }
    .dv-hero + .dv-trust-bar { display: none; }

    .dv-types { padding: 26px var(--dv-gutter) 0; }
    .dv-section-head { margin-bottom: 12px; }
    .dv-section-head h2 { font-size: 24px; }
    .dv-type-chips { margin: 0 0 16px; padding-bottom: 0; }
    .dv-type-chips a { padding: 8px 11px; font-size: 11px; }
    .dv-type-grid, .dv-product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 12px; }
    .dv-type-grid { row-gap: 14px; }
    .dv-type-card { gap: 7px; font-size: 14px; }
    .dv-type-card__media { border-radius: 14px; }
    .dv-home-banner--desktop { display: none; }
    .dv-mobile-banner { display: block; width: calc(100% - 2 * var(--dv-gutter)); margin: 16px var(--dv-gutter); overflow: hidden; border-radius: 22px; text-decoration: none; }
    .dv-mobile-banner--product { background: linear-gradient(135deg,#f02489 0%,#fa5486 58%,#ff8c83 100%); color: #fff; }
    .dv-mobile-banner--couples { background: linear-gradient(135deg,#f9e4df 0%,#eac2bd 100%); color: #360b2d; }
    .dv-mobile-banner__copy { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 20px 22px 18px; }
    .dv-mobile-banner__logo { display: block; width: clamp(142px,43vw,184px); height: auto; margin: -15px 0 -12px; }
    .dv-mobile-banner__title { max-width: 12ch; font: 700 clamp(32px,8vw,42px)/1.02 var(--dv-display); letter-spacing: -.045em; }
    .dv-mobile-banner__description { font: 500 16px/1.4 var(--dv-display); }
    .dv-mobile-banner__cta { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; min-height: 48px; margin-top: 6px; padding: 10px 22px; border-radius: 999px; background: #1d1422; color: #fff; font: 600 15px/1.25 var(--dv-display); text-align: center; }
    .dv-mobile-banner__photo { display: block; height: clamp(220px,61vw,270px); overflow: hidden; }
    .dv-mobile-banner__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: right center; transform: scale(1.12); transform-origin: right center; }
    .dv-mobile-banner--couples .dv-mobile-banner__photo { height: clamp(200px,57vw,245px); }
    .dv-mobile-banner--couples .dv-mobile-banner__photo img { object-position: 96% center; transform: none; }
    .dv-mobile-banner:focus-visible { outline: 3px solid var(--dv-pink); outline-offset: 3px; }
    .dv-trust-bar--second { width: calc(100% - 2 * var(--dv-gutter)); min-height: 0; margin: 16px var(--dv-gutter); padding: 12px 16px; flex-wrap: wrap; gap: 7px 12px; overflow: visible; border-radius: 12px; justify-content: center; font-size: 12px; line-height: 1.35; letter-spacing: .03em; text-align: center; white-space: normal; }
    .dv-trust-bar--second span { max-width: 100%; }
    .dv-trust-bar--second b { display: none; }
    .dv-trust-bar--second span:nth-of-type(-n+3) { display: inline; }
    .dv-trust-bar--second span:nth-of-type(n+4) { display: none; }

    .dv-bestsellers { padding: 4px var(--dv-gutter) 20px; background: var(--dv-paper); }
    .dv-bestsellers .dv-section-head { margin: 0 0 12px; }
    .dv-bestsellers .dv-section-head > span, .dv-bestsellers .dv-section-head > a { display: none; }
    .dv-product-grid { row-gap: 20px; }
    .dv-product-card { display: none; }
    .dv-product-card:nth-child(2), .dv-product-card:nth-child(3) { display: block; }
    .dv-product-card:nth-child(3) { order: 1; }
    .dv-product-card:nth-child(2) { order: 2; }
    .dv-product-card__media { border: 1px solid rgba(29,18,38,.08); border-radius: 16px; }
    .dv-product-card__badge { display: none; }
    .dv-product-card__add { right: 10px; top: calc(80% - 52px); width: 44px; height: 44px; }
    .dv-product-card__head { display: block; margin-top: 8px; font-size: 14px; }
    .dv-product-card__head > span { display: none; }
    .dv-product-card__head a { display: block; overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; line-height: 1.3; }
    .dv-product-card__meta { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; margin-top: 6px; font-size: 12px; white-space: normal; }
    .dv-product-card__meta > span:first-child { display: block; min-width: 0; max-width: 100%; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; line-height: 1.35; }
    .dv-demo-price { display: inline-flex; max-width: 100%; margin-left: 0; font-size: 9px; line-height: 1.2; white-space: normal; }
    .dv-privacy-feature { display: none; }
    .dv-home-promos { display: block; padding: 0 var(--dv-gutter) 20px; }
    .dv-home-promos > article { min-height: 340px; }
    .dv-couples-promo { display: grid; grid-template-columns: minmax(0,58fr) minmax(0,42fr); min-height: 300px !important; margin-bottom: 14px; padding: 30px 28px; }
    .dv-couples-promo__content { padding-right: 22px; }
    .dv-couples-promo__image { width: min(100%,280px); }
    .dv-couples-promo h2 { font-size: 30px; }
    .dv-couples-promo p { margin-block: 12px 20px; font-size: 14px; }
    .dv-guide-promo { padding: 30px 28px; border-radius: var(--dv-radius-lg); }
    .dv-guide-promo > span { margin-bottom: 9px; font-size: 10px; }
    .dv-guide-promo h2 { font-size: 20px; }
    .dv-guide-promo p, .dv-guide-promo .dv-button--outline { display: flex; }
    .dv-guide-promo .dv-button-row { margin-top: 12px; }
    .dv-guide-promo .dv-button { min-height: 42px; }

    .dv-footer { display: grid; padding: 34px var(--dv-gutter) 88px; }
    .dv-footer__brand { gap: 28px; }
    .dv-footer__emblem { width: 230px; }
    .dv-footer__identity strong { font-size: 26px; }
    .dv-footer__nav { gap: 20px; }
    .site-footer .dv-footer a:not(.button):not(.components-button),
    .site-footer .dv-footer .dv-footer__legal a:not(.button):not(.components-button) { min-height: 44px; }
    .dv-footer__legal { align-items: flex-start; }
    .dv-vibe-guide { padding-top: 4px; }
    .dv-vibe-guide__header { margin-bottom: 24px; }
    .dv-vibe-guide__header h1 { font-size: 40px; }
    .dv-vibe-guide__grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
    .dv-mobile-nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 200; height: 66px; display: flex; align-items: center; padding: 7px 4px 5px; border-top: 1px solid var(--dv-line); background: rgba(255,255,255,.97); backdrop-filter: blur(10px); }
    .dv-mobile-nav a { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px; color: var(--dv-muted); text-decoration: none; font: 600 10px/1 var(--dv-display); }
    .dv-mobile-nav a:first-child { color: var(--dv-pink); }

    body:not(.home) .site-content { padding: 28px 0 58px; }
    .storefront-breadcrumb > .col-full { padding-inline: var(--dv-gutter); }
    .dv-contact-page .entry-header { margin-bottom: 18px; }
    .dv-contact { grid-template-columns: 1fr; gap: 24px; }
    .dv-contact__intro { padding-top: 0; }
    .dv-contact__intro > p:last-child { max-width: 54ch; font-size: 16px; }
    .dv-contact__card { padding: 24px; border-radius: 22px; }
    .dv-privacy__header { margin-bottom: 28px !important; }
    .dv-privacy { grid-template-columns: 1fr; gap: 28px; }
    .dv-privacy__nav { position: static; }
    .dv-privacy__nav ol { columns: 2; column-gap: 28px; }
    .woocommerce-products-header__title.page-title { font-size: 36px; }
    ul.products { --scs-grid-cols: 2; --scs-product-column-gap: 12px; }
    li.product .scs-card__media { border-radius: 16px; }
    li.product > .scs-card__brand { display: none; }
    li.product .woocommerce-loop-product__title { font-size: 14px !important; }
    li.product > .button { right: 10px; width: 44px; min-width: 44px; height: 44px; min-height: 44px; }
    .single-product div.product { display: block; }
    .single-product div.product .summary { margin-top: 26px; }
    .woocommerce-cart-form, .cart_totals, .woocommerce-checkout-review-order, .woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce-MyAccount-content, .woocommerce-MyAccount-navigation, .entry-content > .woocommerce { border-radius: 16px; }
    .woocommerce-cart-form table.cart,
    .woocommerce-cart-form table.cart tbody { display: block; width: 100%; }
    .woocommerce-cart-form table.cart thead { display: none !important; }
    .woocommerce-cart-form table.cart tr.woocommerce-cart-form__cart-item {
        display: grid; width: 100%; grid-template-columns: 28px minmax(0,1fr) auto;
        gap: 8px 12px; align-items: center; padding: 16px;
        border-bottom: 1px solid var(--dv-line);
    }
    .woocommerce-cart-form table.cart tr.woocommerce-cart-form__cart-item td {
        width: auto; min-width: 0; display: block !important; padding: 0 !important;
        border: 0; text-align: left !important;
    }
    .woocommerce-cart-form table.cart tr.woocommerce-cart-form__cart-item td::before { display: none !important; }
    .woocommerce-cart-form table.cart td.product-remove { grid-column: 1; grid-row: 1; }
    .woocommerce-cart-form table.cart tr.woocommerce-cart-form__cart-item td.product-thumbnail,
    .woocommerce-cart-form table.cart tr.woocommerce-cart-form__cart-item td.product-subtotal { display: none !important; }
    .woocommerce-cart-form table.cart td.product-name { grid-column: 2; grid-row: 1; }
    .woocommerce-cart-form table.cart td.product-price { grid-column: 3; grid-row: 1; white-space: nowrap; }
    .woocommerce-cart-form table.cart td.product-quantity { grid-column: 2 / -1; grid-row: 2; justify-self: end; }
    .woocommerce-cart-form table.cart tr:not(.woocommerce-cart-form__cart-item),
    .woocommerce-cart-form table.cart td.actions { display: block !important; width: 100%; }
    .woocommerce-cart-form table.cart td.actions { padding: 16px !important; border: 0; }
    .woocommerce-cart-form table.cart td.actions .coupon {
        width: 100%; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px;
        margin: 0 0 10px; padding: 0; border: 0;
    }
    .woocommerce-cart-form table.cart td.actions .coupon .input-text { width: 100%; min-width: 0; }
    .woocommerce-cart-form table.cart td.actions > .button { width: 100%; }
    .dv-age-gate__body { padding: 26px 20px; }
    .dv-age-gate__body h2 { font-size: 28px; }
}

@media (max-width: 390px) {
    .dv-button-row { gap: 9px; }
    .dv-hero .dv-button { padding-inline: 20px; }
    .dv-brand { gap: 8px; font-size: 16px; }
    .dv-brand img { width: 30px; height: 30px; }
    .dv-home-promos > article { min-height: 526px; }
    .dv-couples-promo { grid-template-columns: 1fr; gap: 14px; min-height: 0 !important; padding: 30px 24px 24px; }
    .dv-couples-promo__content { padding-right: 0; }
    .dv-couples-promo__visual { min-height: 228px; }
    .dv-couples-promo__image { width: min(250px,82vw); }
    .dv-couples-promo h2 { font-size: 30px; }
    .dv-couples-promo p { font-size: 14px; }
    .dv-guide-promo { padding: 30px 24px 24px; }
    .dv-vibe-guide__grid { grid-template-columns: 1fr; }
    .dv-vibe-guide__empty { min-height: 220px; padding: 38px 20px; }
    .dv-contact-page .entry-title { font-size: 38px; }
    .dv-contact__form { grid-template-columns: 1fr; gap: 17px; }
    .dv-contact__field--full { grid-column: auto; }
    .dv-contact__card { padding: 20px 16px; }
    .dv-contact__actions { display: grid; gap: 12px; }
    .dv-contact__actions .dv-button { width: 100%; }
    .dv-privacy__header { text-align: left; }
    .dv-privacy__summary { margin-inline: 0; font-size: 17px; }
    .dv-privacy__dates { justify-content: flex-start; display: grid; }
    .dv-privacy__dates div { width: fit-content; }
    .dv-privacy__nav { padding: 19px; }
    .dv-privacy__nav ol { columns: 1; }
    .dv-privacy__content section { padding-bottom: 28px; }
    .dv-privacy__content section + section { padding-top: 28px; }
    .dv-privacy__content p,
    .dv-privacy__content li { font-size: 15px; line-height: 1.7; }
    .dv-privacy__table,
    .dv-privacy__table tbody,
    .dv-privacy__table tr,
    .dv-privacy__table td { display: block; width: 100%; }
    .dv-privacy__table { border: 0; background: transparent; }
    .dv-privacy__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); }
    .dv-privacy__table tr { margin-bottom: 14px; border: 1px solid var(--dv-line); border-radius: 14px; overflow: hidden; background: #fff; }
    .dv-privacy__table td,
    .dv-privacy__table tbody tr:nth-child(even) td { display: grid; grid-template-columns: minmax(84px,34%) minmax(0,1fr); gap: 10px; padding: 10px 12px; border-top: 1px solid var(--dv-line); background: #fff; }
    .dv-privacy__table td:first-child { border-top: 0; }
    .dv-privacy__table td::before { content: attr(data-label); color: var(--dv-ink); font: 600 11px/1.4 var(--dv-display); }
    .dv-footer { gap: 28px; padding: 32px var(--dv-gutter) 88px; }
    .dv-footer__brand { flex-direction: column; gap: 18px; text-align: center; }
    .dv-footer__emblem { width: min(260px,78vw); }
    .dv-footer__identity { max-width: 32ch; }
    .dv-footer__identity strong { font-size: 25px; }
    .dv-footer__brand p { margin-top: 12px; }
    .dv-footer__nav { grid-template-columns: 1fr; gap: 24px; }
    .dv-footer__column h2 { margin-bottom: 6px; }
    .dv-footer__column ul { display: grid; grid-template-columns: 1fr; }
    .dv-footer__legal { display: grid; grid-template-columns: 1fr; gap: 4px; }
    .dv-footer__legal span:last-child { margin-left: 0; }
}

@media (max-width: 359px) {
    .dv-type-grid, .dv-product-grid { grid-template-columns: minmax(0,1fr); }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* ----- Category guide copy and product content images (staging deployment 2026-10-03) ----- */
.dv-category-guide { max-width: 860px; margin: 56px auto 0; padding-top: 32px; border-top: 1px solid rgba(0,0,0,.08); color: var(--dv-ink); }
.dv-category-guide h2 { font-size: clamp(22px,2.4vw,28px); margin: 0 0 16px; }
.dv-category-guide h2:not(:first-child) { margin-top: 32px; }
.dv-category-guide h3 { font-size: 17px; margin: 22px 0 6px; }
.dv-category-guide p { margin: 0 0 10px; line-height: 1.65; }
.dv-category-guide ul { display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0 0; padding: 0; list-style: none; }
.dv-category-guide li a { display: inline-flex; padding: 6px 14px; border: 1px solid var(--dv-purple); border-radius: 999px; color: var(--dv-ink); text-decoration: none; }
.dv-product-figure { margin: 18px 0 24px; }
.dv-product-figure img { display: block; max-width: 100%; height: auto; border-radius: 12px; }
.dv-related-links { padding-left: 1.1em; }
.dv-related-links a { display: inline-block; min-height: 24px; padding-block: 2px; }
/* Storefront's table:not(.has-background) th background outranks single-class rules: restate table headers. */
.dv-privacy__table.dv-privacy__table th { background: var(--dv-ink); }
.dv-care-table.dv-care-table th { background: var(--care-purple, #32153e); }
.dv-care-table.dv-care-table th + th { background: #5b274e; }

/* ----- Currency selector (multi-currency, 2026-10-03) ----- */
.dv-currency select { min-height: 36px; padding: 4px 26px 4px 26px; text-align: center; text-align-last: center; border: 1px solid rgba(0,0,0,.18); border-radius: 999px; background-color: #fff; color: var(--dv-ink); font: 600 12px/1.2 inherit; letter-spacing: .02em; cursor: pointer; }
.dv-currency select:focus-visible { outline: 2px solid var(--dv-purple); outline-offset: 2px; }
.dv-drawer__currency .dv-currency { display: flex; align-items: center; gap: 12px; }
.dv-drawer__currency .dv-currency__label { color: #8a7c93; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; }
.dv-drawer__currency select { border-color: rgba(255,255,255,.3); background-color: transparent; color: #fff; }
.dv-drawer__currency option { color: #111; }
@media (max-width: 899px) { .dv-currency--header { display: none; } }

/* ----- Storefront category grid / chips / image-pending tile (2026-10-04) ----- */
.dv-type-card__media--brand { display: grid; place-items: center; align-content: center; gap: 14px; padding: 0; background: linear-gradient(150deg, #2a1b33 0%, #4b2c5e 55%, #7a4a8c 100%); }
.dv-type-card__media--brand img { width: 72px; height: 72px; object-fit: contain; mix-blend-mode: normal; opacity: .95; }
.dv-type-card__media--brand > span { color: #f3e8f7; font: 600 13px/1.3 var(--dv-display); letter-spacing: .04em; text-transform: uppercase; }
.dv-type-card:hover .dv-type-card__media--brand img { transform: none; }
.dv-type-chips--archive { margin: 18px 0 26px; }
.dv-type-chips--archive a { color: var(--dv-ink); text-decoration: none; }
.dv-coming-soon { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; width: 100%; aspect-ratio: 1/1; border-radius: 14px; background: linear-gradient(150deg, #f6f1f8 0%, #ece3f1 100%); color: #6d5a79; font: 600 12px/1.3 var(--dv-display); letter-spacing: .06em; text-transform: uppercase; text-align: center; }
.dv-coming-soon img { width: 56px; height: 56px; object-fit: contain; opacity: .55; filter: grayscale(1) brightness(.6); }
.woocommerce-product-gallery__image--placeholder .dv-coming-soon { aspect-ratio: 1/1; max-width: 100%; }
@media (max-width: 899px) { .dv-type-chips--archive { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 6px; scrollbar-width: none; } }
.woocommerce-product-gallery__image--placeholder { width: 100%; }
.woocommerce-product-gallery__image--placeholder .dv-coming-soon { min-height: 420px; font-size: 14px; }
.woocommerce-product-gallery__image--placeholder .dv-coming-soon img { width: 88px; height: 88px; }

/* ----- Storefront card images (normalised derivatives, 2026-10-04) -----
   Product, homepage and category cards: square frame, image contained and centred, no cropping.
   The ~8–12% breathing room is built into each card derivative, so no extra CSS padding. */
li.product .scs-card__media,
.dv-product-card__media,
.dv-type-card__media { aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center; overflow: hidden; }
li.product .scs-card__media img,
.dv-product-card__media img,
.dv-type-card__media:not(.dv-type-card__media--brand) img { width: 100%; height: 100%; padding: 0; margin: 0; object-fit: contain; object-position: center; }
.dv-type-card__media:not(.dv-type-card__media--brand) { padding: 0; }
li.product .scs-card__media .dv-coming-soon { aspect-ratio: auto; width: 100%; height: 100%; border-radius: 0; }

/* ==========================================================================
   Commerce layout fixes (2026-10-04) – scoped to the four affected components.
   ========================================================================== */

/* 1. Product page notice ("… added to your cart"). Storefront prints it in the
      full-bleed .col-full, so it spanned the viewport and sat flush on the
      gallery/title. Contain it to the product content width with space below. */
.single-product .site-content > .col-full > .woocommerce {
    max-width: var(--scs-container);
    margin: 0 auto 24px;
    padding-inline: var(--scs-container-pad);
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.single-product .site-content > .col-full > .woocommerce > * { margin: 0; }

/* 2. Cart page: clear space under the heading, and 16 px between notices,
      the empty-cart message and the Return to shop button. */
.woocommerce-cart .entry-header { margin: 0; }
.woocommerce-cart .entry-header .entry-title { margin: 0 0 24px; }
.woocommerce-cart .entry-content > .woocommerce > .woocommerce-notices-wrapper:has(> *) {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin: 0 0 16px;
}
.woocommerce-cart .woocommerce-notices-wrapper > * { margin: 0; }
.woocommerce-cart .wc-empty-cart-message { display: flow-root; margin: 0 0 16px; }
.woocommerce-cart .wc-empty-cart-message .cart-empty { float: none; margin: 0; }
/* After an AJAX removal WooCommerce moves .cart-empty into the notices wrapper and
   leaves this wrapper empty; drop it so its margin does not double the gap. */
.woocommerce-cart .wc-empty-cart-message:not(:has(.cart-empty)) { display: none; }
.woocommerce-cart .return-to-shop { margin: 0; }

/* 3. Cart drawer close button: compact transparent icon button (44 × 44 target)
      aligned with "Your cart". Overrides Storefront's grey button fill/padding. */
.scs-minicart .scs-minicart__head { padding: 12px 12px 12px 16px; }
.scs-minicart .scs-minicart__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    box-shadow: none;
    color: var(--dv-ink);
    font-size: 26px;
    font-weight: 400;
    line-height: 1;
    transition: background-color .15s ease, color .15s ease;
}
.scs-minicart .scs-minicart__close:hover { background: var(--dv-pink-soft); color: var(--dv-pink-dark); }
.scs-minicart .scs-minicart__close:active { background: rgba(29, 18, 38, .1); color: var(--dv-ink); }
.scs-minicart .scs-minicart__close:focus:not(:focus-visible) { outline: none; }
.scs-minicart .scs-minicart__close:focus-visible { outline: 3px solid var(--dv-pink); outline-offset: 2px; }

/* 4. Cart coupon/actions row. The <td colspan> must stay a table cell on desktop,
      so the coupon group is a flex row and Update cart sits at the right, all at
      one height. Below 900 px the cell is a block (see the 899 px block above) and
      becomes a wrapping flex column with the same 12 px spacing. */
.woocommerce-cart-form table.cart td.actions .coupon {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    float: left;
    margin: 0;
    padding: 0;
}
.woocommerce-cart-form table.cart td.actions .coupon .input-text,
.woocommerce-cart-form table.cart td.actions .coupon .button,
.woocommerce-cart-form table.cart td.actions > .button {
    float: none;
    height: 48px;
    margin: 0;
}
.woocommerce-cart-form table.cart td.actions .coupon .button,
.woocommerce-cart-form table.cart td.actions > .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-block: 0;
}
.woocommerce-cart-form table.cart td.actions > .button { float: right; }
@media (max-width: 899px) {
    .woocommerce-cart-form table.cart td.actions {
        display: flex !important;
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }
    .woocommerce-cart-form table.cart td.actions .coupon {
        float: none;
        width: 100%;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 12px;
        margin: 0;
    }
    .woocommerce-cart-form table.cart td.actions > .button { float: none; width: 100%; }
    .single-product .site-content > .col-full > .woocommerce { margin-bottom: 16px; }
    .woocommerce-cart .entry-header .entry-title { margin-bottom: 20px; }
}
@media (max-width: 360px) {
    .woocommerce-cart-form table.cart td.actions .coupon { grid-template-columns: 1fr; }
}

/* "All / Shop the full range" card (2026-10-04 v2): logo and label stacked and centred
   in the collage's clear centre band (21–79 %). Sizes scale with the card (container
   units) and reach logo 108 px (+50 %) / label 18.2 px (+40 %) on the desktop card. */
.dv-type-card__media--all { container-type: inline-size; flex-direction: column; gap: 0; }
.dv-type-card__media--all > img { width: clamp(58px, 35.3cqw, 108px); height: clamp(58px, 35.3cqw, 108px); flex: 0 0 auto; }
.dv-type-card__media--all > span { margin-top: clamp(8px, 4.6cqw, 14px); font-size: clamp(12px, 5.95cqw, 18.2px); line-height: 1.3; white-space: nowrap; text-align: center; }

/* ==========================================================================
   My Account (logged out): Login + "Create an account" side by side on
   desktop, stacked on mobile; lost/reset password form in the same card style.
   ========================================================================== */
.woocommerce-account:not(.logged-in) .entry-content > .woocommerce { max-width: 1040px; }
.woocommerce-account:not(.logged-in) .entry-header .entry-title { margin: 0 0 28px; }
.woocommerce-account #customer_login.col2-set {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
    align-items: stretch;
    width: auto;
    margin: 0;
}
.woocommerce-account #customer_login.col2-set::before,
.woocommerce-account #customer_login.col2-set::after { content: none; display: none; }
.woocommerce-account #customer_login > .u-column1,
.woocommerce-account #customer_login > .u-column2 { display: flex; flex-direction: column; min-width: 0; width: auto; margin: 0; float: none; }
.woocommerce-account #customer_login h2 { margin: 0 0 14px; color: var(--dv-ink); font: 600 26px/1.15 var(--dv-display); letter-spacing: -.02em; }
.woocommerce-account form.login,
.woocommerce-account form.register,
.woocommerce-account form.lost_reset_password {
    flex: 1 1 auto;
    margin: 0;
    padding: 28px;
    border: 1px solid var(--dv-line);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(29, 18, 38, .06);
}
.woocommerce-account form.lost_reset_password { max-width: 560px; }
.woocommerce-account form.lost_reset_password > p:first-child,
.dv-account-intro { margin: 0 0 20px; color: var(--dv-ink-2); font-size: 15px; line-height: 1.55; }
.woocommerce-account form.login .form-row,
.woocommerce-account form.register .form-row,
.woocommerce-account form.lost_reset_password .form-row { float: none; width: 100%; margin: 0 0 16px; }
.woocommerce-account form.register > p:not([class]),
.woocommerce-account form.register .woocommerce-privacy-policy-text p { margin: 0 0 16px; color: var(--dv-muted); font-size: 13px; line-height: 1.5; }
.woocommerce-account form.register .woocommerce-privacy-policy-text a,
.woocommerce-account .woocommerce-LostPassword a { color: var(--dv-pink-dark); }
.woocommerce-account form .woocommerce-form-login__rememberme { display: flex; align-items: center; gap: 8px; margin: 0 0 16px; font-weight: 500; }
.woocommerce-account form.login .woocommerce-form-login__submit,
.woocommerce-account form.register .woocommerce-form-register__submit,
.woocommerce-account form.lost_reset_password button[type=submit] { display: block; width: 100%; min-height: 48px; margin: 0; float: none; }
.woocommerce-account .woocommerce-LostPassword { margin: 16px 0 0; font-size: 14px; }
/* Show/hide password toggle: transparent 44 px icon button inside the field (was a grey box). */
.woocommerce form .password-input { position: relative; display: block; }
.woocommerce form .password-input input { padding-right: 52px; }
.woocommerce form .password-input .show-password-input {
    position: absolute; top: 50%; right: 2px; transform: translateY(-50%);
    width: 44px; height: 44px; margin: 0; padding: 0; border: 0; border-radius: 50%;
    background: transparent; box-shadow: none; color: var(--dv-ink-2); cursor: pointer;
}
.woocommerce form .password-input .show-password-input::before,
.woocommerce form .password-input .show-password-input::after { content: none; }
.woocommerce form .password-input .show-password-input::before {
    content: ""; display: block; width: 20px; height: 20px; margin: auto; background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
}
.woocommerce form .password-input .show-password-input.display-password::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.9 17.9A10.4 10.4 0 0 1 12 19c-6.4 0-10-7-10-7a18.5 18.5 0 0 1 5.1-5.9M9.9 5.2A9.1 9.1 0 0 1 12 5c6.4 0 10 7 10 7a18.6 18.6 0 0 1-2.2 3.2M14.1 14.1a3 3 0 1 1-4.2-4.2M2 2l20 20'/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.9 17.9A10.4 10.4 0 0 1 12 19c-6.4 0-10-7-10-7a18.5 18.5 0 0 1 5.1-5.9M9.9 5.2A9.1 9.1 0 0 1 12 5c6.4 0 10 7 10 7a18.6 18.6 0 0 1-2.2 3.2M14.1 14.1a3 3 0 1 1-4.2-4.2M2 2l20 20'/%3E%3C/svg%3E");
}
.woocommerce form .password-input .show-password-input:hover { background: var(--dv-pink-soft); color: var(--dv-pink-dark); }
.woocommerce form .password-input .show-password-input:focus-visible { outline: 3px solid var(--dv-pink); outline-offset: 0; }
@media (max-width: 767px) {
    .woocommerce-account #customer_login.col2-set { grid-template-columns: 1fr; gap: 28px; }
    .woocommerce-account #customer_login h2 { font-size: 22px; }
    .woocommerce-account:not(.logged-in) .entry-header .entry-title { margin-bottom: 20px; }
    .woocommerce-account form.login,
    .woocommerce-account form.register,
    .woocommerce-account form.lost_reset_password { padding: 20px; border-radius: 18px; }
}

/* Checkout coupon notice (2026-10-05): 28 px (24 px on phones) to Billing details whether the
   coupon form is collapsed or expanded, 16 px between the notice and the open form, and no
   dark left border on this one notice. Other notices keep their border. */
.woocommerce-checkout .woocommerce-form-coupon-toggle { margin: 0 0 28px; }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { margin: 0; border-left: 0; }
.woocommerce-checkout form.checkout_coupon { margin: -12px 0 28px; }
@media (max-width: 899px) {
    .woocommerce-checkout .woocommerce-form-coupon-toggle { margin-bottom: 24px; }
    .woocommerce-checkout form.checkout_coupon { margin: -8px 0 24px; }
}

/* ==========================================================================
   Phones only (max-width 599px), 2026-11-07. Tablet and desktop rules above are untouched.
   ========================================================================== */
/* Product-card "+" (shop, category, related and every ul.products grid): visible circle 31px (was 44px),
   drawn inside an unchanged 44px transparent tap target; icon 10px. Circle sits where the 31px related fix put it. */
@media (max-width: 599px) {
    ul.products li.product > .button { right: 3.5px; bottom: -6.5px; width: 44px; min-width: 44px; height: 44px; min-height: 44px;
        background: radial-gradient(circle at 50% 50%, var(--dv-ink) 15px, transparent 15.5px) !important; }
    ul.products li.product > .button:hover,
    ul.products li.product > .button:focus-visible { background: radial-gradient(circle at 50% 50%, var(--dv-pink) 15px, transparent 15.5px) !important; }
    ul.products li.product > .button::before { width: 10px; height: 10px; background-size: 10px 1.5px, 1.5px 10px; }
    .related.products li.product .scs-card__media picture { display: contents; }
}

/* Chip sliders: the homepage "Shop by type" chips reuse the archive slider (one swipeable row);
   both get momentum scrolling and an edge fade while more chips are hidden (classes from dv-mobile-archive.js). */
@media (max-width: 599px) {
    .dv-types .dv-type-chips { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 6px; scrollbar-width: none; }
    .dv-types .dv-type-chips,
    .dv-type-chips--archive { -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
    .dv-type-chips.dv-chips--more-end { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 36px), transparent); }
    .dv-type-chips.dv-chips--more-start { -webkit-mask-image: linear-gradient(90deg, transparent, #000 36px); mask-image: linear-gradient(90deg, transparent, #000 36px); }
    .dv-type-chips.dv-chips--more-start.dv-chips--more-end { -webkit-mask-image: linear-gradient(90deg, transparent, #000 36px, #000 calc(100% - 36px), transparent); mask-image: linear-gradient(90deg, transparent, #000 36px, #000 calc(100% - 36px), transparent); }
}

/* Category description: Read more / Read less (button printed by mu-plugin dv-mobile-archive.php; hidden off phones and without JS). */
.dv-readmore { display: none; }
@media (max-width: 599px) {
    html.dv-mjs .term-description:has(+ .dv-readmore):not(.is-expanded) > :not(:first-child) { display: none; }
    html.dv-mjs .term-description.dv-desc--collapsible:not(.is-expanded) > :not(:first-child) { display: none; }
    html.dv-mjs button.dv-readmore.dv-readmore { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: var(--dv-pink-dark); font: 600 14px/1.2 var(--dv-display); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
    html.dv-mjs button.dv-readmore.dv-readmore::after { content: ""; width: 6px; height: 6px; margin-top: -3px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
    html.dv-mjs button.dv-readmore.dv-readmore[aria-expanded="true"]::after { margin-top: 3px; transform: rotate(-135deg); }
    html.dv-mjs button.dv-readmore.dv-readmore:focus-visible { outline: 3px solid var(--dv-pink); outline-offset: 2px; }
    html.dv-mjs .dv-readmore + .dv-type-chips--archive { margin-top: 8px; }
}

/* Category FAQ accordion (questions wrapped in buttons by dv-mobile-archive.js on phones only). */
@media (max-width: 599px) {
    .dv-category-guide.dv-faq--acc h3.dv-faq-q { margin: 0; border-top: 1px solid rgba(29,18,38,.12); font-size: 16px; }
    .dv-category-guide.dv-faq--acc h2 + h3.dv-faq-q { margin-top: 4px; }
    .dv-category-guide.dv-faq--acc h3.dv-faq-q--last:not(.is-open),
    .dv-category-guide.dv-faq--acc .dv-faq-a--last { border-bottom: 1px solid rgba(29,18,38,.12); }
    .dv-category-guide.dv-faq--acc button.dv-faq-btn.dv-faq-btn { display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; min-height: 52px; margin: 0; padding: 12px 2px; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: var(--dv-ink); font: inherit; line-height: 1.35; text-align: left; cursor: pointer; }
    .dv-category-guide.dv-faq--acc button.dv-faq-btn.dv-faq-btn:focus-visible { outline: 3px solid var(--dv-pink); outline-offset: -3px; }
    .dv-category-guide.dv-faq--acc .dv-faq-chev { flex: 0 0 auto; width: 8px; height: 8px; margin: -4px 6px 0 0; border-right: 2px solid var(--dv-pink-dark); border-bottom: 2px solid var(--dv-pink-dark); transform: rotate(45deg); transition: transform .2s ease; }
    .dv-category-guide.dv-faq--acc button.dv-faq-btn[aria-expanded="true"] .dv-faq-chev { margin-top: 4px; transform: rotate(-135deg); }
    .dv-category-guide.dv-faq--acc .dv-faq-a { margin: 0; padding: 0 2px 16px; }
}

/* Homepage promo cards on phones (2026-11-07): content centred; deeper pink behind the first card's copy
   (white text >= 4.5:1) with a soft text shadow; a thin plum edge on the logo so the wordmark reads on both cards.
   Copy, button text, photos, proportions and radius unchanged. Tablet keeps the left-aligned card. */
@media (max-width: 599px) {
    .dv-mobile-banner .dv-mobile-banner__copy { align-items: center; text-align: center; }
    .dv-mobile-banner .dv-mobile-banner__logo { margin-inline: auto; }
    .dv-mobile-banner--product .dv-mobile-banner__copy { background: linear-gradient(180deg, #c4116a 0%, #d11a6f 72%, #e9497a 100%); }
    .dv-mobile-banner--product .dv-mobile-banner__title,
    .dv-mobile-banner--product .dv-mobile-banner__description { text-shadow: 0 1px 2px rgba(70, 0, 38, .28); }
    .dv-mobile-banner--product .dv-mobile-banner__logo { filter: drop-shadow(0 0 1px rgba(60, 0, 32, .8)) drop-shadow(0 0 7px rgba(60, 0, 32, .5)); }
    .dv-mobile-banner--couples .dv-mobile-banner__logo { filter: drop-shadow(0 0 .6px rgba(54, 11, 45, .85)) drop-shadow(0 0 .6px rgba(54, 11, 45, .6)) drop-shadow(0 2px 5px rgba(54, 11, 45, .22)); }
}

/* Promo card 1 on phones (2026-11-07): the global a:hover pink (sticky on iOS after a touch while scrolling)
   was recolouring the white headline/body to the card's own pink. Keep the card's white text in every link state. */
@media (max-width: 599px) {
    a.dv-mobile-banner--product:hover,
    a.dv-mobile-banner--product:focus,
    a.dv-mobile-banner--product:active,
    a.dv-mobile-banner--product:visited { color: #fff; }
}

/* Native Vibe Guide single posts: centre the full reading column. Storefront's
   right-sidebar layout otherwise leaves an empty sidebar and shifts posts left. */
body.single-post .site-content > .col-full > .content-area {
    float: none;
    width: 100%;
    max-width: none;
    margin-inline: auto;
}
body.single-post .site-main {
    width: min(100%, 820px);
    margin-inline: auto;
}
body.single-post .site-main article {
    width: 100%;
    margin-inline: auto;
}
body.single-post .entry-header,
body.single-post .entry-content,
body.single-post .post-thumbnail {
    width: 100%;
    margin-inline: auto;
    text-align: left;
}
body.single-post .entry-content > p,
body.single-post .entry-content > ul,
body.single-post .entry-content > ol {
    max-width: none;
}
body.single-post .post-thumbnail img,
body.single-post .entry-content > img.wp-post-image {
    width: 100%;
    max-height: clamp(280px, 32vw, 420px);
    object-fit: contain;
}
body.single-post .entry-content img,
body.single-post .entry-content table {
    max-width: 100%;
    height: auto;
}
body.single-post .entry-content figure {
    max-width: 100%;
    margin: 2rem auto;
}
body.single-post .entry-content figcaption {
    margin-top: .7rem;
    color: var(--dv-muted);
    font-size: .85rem;
    line-height: 1.5;
    text-align: left;
}
body.single-post .entry-content h2 {
    margin-top: 2.2em;
}
body.single-post .entry-content h3 {
    margin-top: 1.8em;
}

