/* Aphro Design Fixes — loaded after the theme and the other Aphro plugins.
 * Sections: tokens · type · palette & contrast · product cards · homepage ·
 * product page · cart drawer · checkout · account pop-up · account area ·
 * footer · small things · phones. Night mode keeps its own palette. */

/* =====================================================================
 * 0. Tokens
 * ===================================================================== */
body.aphro-theme-enabled {
    --adf-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --adf-serif: "Cardo", Georgia, "Times New Roman", serif;
    --adf-ink: #24161e;
    --adf-muted: #6f6770;
    --adf-line: rgba(36, 22, 30, .12);
    --adf-rose: #b24d64;
    --adf-rose-deep: #9e4157;
    --adf-rose-text: #a9475d;
    --adf-blush: #f8e9e8;
    --adf-tile: #f8f3f1;
    --adf-surface: #ffffff;
    --adf-bg: #fcfaf8;
    --adf-on-rose: #ffffff;
    --adf-disabled-bg: #ece6e8;
    --adf-disabled-ink: #6f6770;
    --adf-ring: 0 0 0 3px rgba(178, 77, 100, .22);
}

html.aphro-dark body.aphro-theme-enabled {
    --adf-ink: #f6edf0;
    --adf-muted: #c6b6c0;
    --adf-line: #57444f;
    --adf-rose: #f0a1b2;
    --adf-rose-deep: #f5b5c4;
    --adf-rose-text: #f0a1b2;
    --adf-blush: #3a2632;
    --adf-tile: #2b2129;
    --adf-surface: #20161d;
    --adf-bg: #151016;
    --adf-on-rose: #24161e;
    --adf-disabled-bg: #352a33;
    --adf-disabled-ink: #c6b6c0;
    --adf-ring: 0 0 0 3px rgba(240, 161, 178, .3);
}

/* The day palette used #c85d73 for white-text buttons and links (3.99:1).
 * One step deeper passes WCAG AA (5.07:1) and keeps the same hue. */
html:not(.aphro-dark) body.aphro-theme-enabled {
    --aphro-day-rose: #b24d64;
    --aphro-day-muted: #6f6770;
}

html:not(.aphro-dark) body.aphro-codex-home {
    --aphro-codex-rose: #b24d64;
}

html:not(.aphro-dark) {
    --aphro-mode-rose: #b24d64;
}

html:not(.aphro-dark) body.aphro-cart-ux .cart-page.acx {
    --acx-rose: #b24d64;
    --acx-muted: #6f6770;
}

html:not(.aphro-dark) body.aphro-theme-enabled .acx-bar__btn {
    background: #b24d64;
    box-shadow: 0 8px 20px rgba(178, 77, 100, .28);
}

html:not(.aphro-dark) body.aphro-theme-enabled .acx-bar__btn:hover {
    background: #9e4157;
}

/* =====================================================================
 * 1. Type: Inter for reading and UI, Cardo for display headings
 * ===================================================================== */
body.aphro-theme-enabled {
    font-family: var(--adf-sans);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

body.aphro-theme-enabled :is(button, input, select, textarea, .button, .select2-container) {
    font-family: inherit;
}

body.aphro-theme-enabled.single-product .product-summary-custom > h1,
body.aphro-theme-enabled .related-products .section-head h2,
body.aphro-theme-enabled.single-product .customer-reviews__nav h2,
body.aphro-theme-enabled.single-product .pairs-well__head h2,
body.aphro-theme-enabled.woocommerce-checkout .page-shell > article > h1,
body.aphro-theme-enabled.woocommerce-checkout .woocommerce-billing-fields > h3,
body.aphro-theme-enabled.woocommerce-checkout #order_review_heading,
body.aphro-theme-enabled .cart-drawer h2,
body.aphro-theme-enabled .auth-modal__dialog h2,
body.aphro-theme-enabled .account-auth-title,
body.aphro-theme-enabled.woocommerce-account .account-content :is(.account-card > h2, .account-card > h3, .account-address-head h2, .account-address-head h3, .account-security-top > h2, .account-security-card h3, .account-notification-card__head h2, .account-wishlist-card__head h2) {
    font-family: var(--adf-serif);
    font-weight: 400;
    letter-spacing: -.01em;
}

/* Kickers and eyebrows: never below 12px, rose that reads on cream. */
html:not(.aphro-dark) body.aphro-theme-enabled :is(.aphro-codex-kicker, .aphro-codex-product__eyebrow, .aphro-premium-catalog-intro__kicker):not(.aphro-codex-hero .aphro-codex-kicker, .aphro-codex-guide__copy .aphro-codex-kicker) {
    color: var(--adf-rose-text);
}

body.aphro-theme-enabled :is(.aphro-codex-kicker, .aphro-premium-catalog-intro__kicker, .aphro-premium-collection-links__label) {
    font-size: 12px;
}

body.aphro-theme-enabled .aphro-codex-product__eyebrow {
    font-size: 11.5px;
    letter-spacing: .1em;
}

/* =====================================================================
 * 2. Focus and form basics
 * ===================================================================== */
:where(body.aphro-theme-enabled) :where(a, button, [role="button"], summary, input, select, textarea):focus-visible {
    outline: 2px solid var(--adf-rose);
    outline-offset: 2px;
}

body.aphro-theme-enabled :is(input[type="checkbox"], input[type="radio"]) {
    accent-color: var(--adf-rose);
}

body.aphro-theme-enabled :is(.woocommerce-form__input-checkbox, .auth-register-form__check input, #rememberme, #wp-comment-cookies-consent, .adf-check input) {
    width: 18px;
    height: 18px;
    margin: 0;
    flex: 0 0 18px;
    cursor: pointer;
}

/* =====================================================================
 * 3. Product cards (shop, categories, search, related, wishlist)
 * The theme sized the sale price at 36px next to a "You save" pill, which
 * overlapped on 4-column desktops. One compact layout at every width.
 * ===================================================================== */
body.aphro-theme-enabled .product-card__title {
    min-height: 2.7em;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    word-break: break-word;
}

body.aphro-theme-enabled .product-card__price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: flex-start;
    gap: 2px 10px;
    margin-top: 10px;
    padding-top: 0;
    line-height: 1.2;
}

body.aphro-theme-enabled .product-card__price-values {
    display: flex;
    flex: 0 1 auto;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: flex-start;
    gap: 2px 8px;
    min-height: 0;
    min-width: 0;
}

body.aphro-theme-enabled .product-card__price ins {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.15;
    text-decoration: none;
}

body.aphro-theme-enabled .product-card__price-values > .woocommerce-Price-amount,
body.aphro-theme-enabled .product-card__price-values > span.amount {
    font-size: 20px;
    font-weight: 700;
}

body.aphro-theme-enabled .product-card__price del {
    min-height: 0;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.15;
}

body.aphro-theme-enabled .product-card__price small {
    flex: 0 0 100%;
    align-self: auto;
    margin: 0;
    padding: 0;
    border-radius: 0;
    background: none;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    text-align: left;
    white-space: normal;
}

html:not(.aphro-dark) body.aphro-theme-enabled .product-card__price del {
    color: var(--adf-muted);
}

body.aphro-theme-enabled .product-card__button {
    min-height: 44px;
    margin-top: 14px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 700;
}

/* =====================================================================
 * 4. Homepage
 * ===================================================================== */
/* Hero copy sits on the photograph: a soft cream veil behind it. */
html:not(.aphro-dark) body.aphro-codex-home .aphro-codex-hero__veil {
    background: linear-gradient(90deg, rgba(252, 250, 248, 0) 34%, rgba(252, 250, 248, .42) 56%, rgba(252, 250, 248, .62) 100%);
}

html:not(.aphro-dark) body.aphro-codex-home .aphro-codex-hero__intro {
    color: rgba(36, 22, 30, .86);
    font-weight: 500;
}

/* Category tiles: labels readable, "Browse" visible on touch screens. */
body.aphro-codex-home .aphro-codex-category__copy small {
    color: rgba(255, 255, 255, .88);
    font-size: 12px;
    text-shadow: 0 1px 8px rgba(0, 0, 0, .35);
}

body.aphro-codex-home .aphro-codex-category__copy strong {
    text-shadow: 0 2px 14px rgba(0, 0, 0, .3);
}

@media (hover: none) {
    body.aphro-codex-home .aphro-codex-category__copy em {
        opacity: 1;
    }
}

/* Product tiles: the whole card opens the product, text sizes readable. */
body.aphro-codex-home .aphro-codex-product {
    position: relative;
    transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}

body.aphro-codex-home .aphro-codex-product h3 a::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: inherit;
}

body.aphro-codex-home .aphro-codex-product:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 34px rgba(36, 22, 30, .1);
}

html.aphro-dark body.aphro-codex-home .aphro-codex-product:hover {
    box-shadow: 0 14px 34px rgba(0, 0, 0, .4);
}

body.aphro-codex-home .aphro-codex-product h3 {
    font-weight: 600;
}

body.aphro-codex-home .aphro-codex-product__description {
    font-size: 14px;
    line-height: 1.45;
}

html:not(.aphro-dark) body.aphro-codex-home .aphro-codex-product__description {
    color: var(--adf-muted);
}

html:not(.aphro-dark) body.aphro-codex-home .aphro-codex-product__price del {
    color: var(--adf-muted);
}

body.aphro-codex-home .aphro-codex-product__price del {
    font-size: 13px;
}

body.aphro-codex-home .aphro-codex-product__link {
    position: relative;
    z-index: 2;
    min-height: 32px;
    font-size: 13px;
}

body.aphro-codex-home .aphro-codex-product__link:hover {
    color: var(--adf-rose-text);
}

/* =====================================================================
 * 5. Product page
 * ===================================================================== */
/* Breadcrumb: quiet text instead of bordered pills. */
body.aphro-theme-enabled .aphro-breadcrumb {
    gap: 10px;
}

body.aphro-theme-enabled .aphro-breadcrumb__icon {
    width: 18px;
    opacity: .75;
}

body.aphro-theme-enabled .aphro-breadcrumb__items {
    gap: 8px;
}

body.aphro-theme-enabled .aphro-breadcrumb__item {
    padding: 6px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--adf-muted);
    font-size: 14px;
    line-height: 1.3;
}

body.aphro-theme-enabled a.aphro-breadcrumb__item {
    text-decoration: underline;
    text-decoration-color: transparent;
    text-underline-offset: 3px;
    transition: color .15s ease, text-decoration-color .15s ease;
}

body.aphro-theme-enabled a.aphro-breadcrumb__item:hover {
    color: var(--adf-ink);
    text-decoration-color: currentColor;
}

body.aphro-theme-enabled span.aphro-breadcrumb__item:last-child {
    color: var(--adf-ink);
}

body.aphro-theme-enabled .aphro-breadcrumb__separator {
    width: 6px;
    height: 6px;
    border-width: 1.5px;
    opacity: .7;
}

html.aphro-dark body.aphro-theme-enabled :is(.aphro-breadcrumb__item) {
    background: transparent;
    border: 0;
}

/* Layout */
@media (min-width: 901px) {
    body.aphro-theme-enabled.single-product .product-detail-breadcrumb,
    body.aphro-theme-enabled.single-product .product-detail {
        width: min(1240px, calc(100% - 64px));
        margin-right: auto;
        margin-left: auto;
        padding-right: 0;
        padding-left: 0;
    }

    body.aphro-theme-enabled.single-product .product-detail-breadcrumb {
        margin-top: 18px;
    }

    body.aphro-theme-enabled.single-product .product-detail {
        grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
        gap: clamp(40px, 5vw, 80px);
        align-items: start;
        padding-top: 18px;
        padding-bottom: 72px;
    }

    body.aphro-theme-enabled.single-product .product-gallery-custom {
        grid-template-columns: 72px minmax(0, 1fr);
        gap: 18px;
    }

    body.aphro-theme-enabled.single-product .product-thumbs {
        gap: 12px;
    }

    body.aphro-theme-enabled.single-product .product-thumb {
        width: 68px;
        height: 80px;
        border-radius: 12px;
        box-shadow: none;
    }

    body.aphro-theme-enabled.single-product .product-main-image {
        min-height: 0;
        aspect-ratio: 1 / 1;
        overflow: hidden;
        border: 1px solid var(--adf-line);
        border-radius: 20px;
    }

    body.aphro-theme-enabled.single-product .product-main-image img {
        width: min(86%, 580px);
        max-height: 86%;
    }

    body.aphro-theme-enabled.single-product .product-summary-custom {
        padding-top: 8px;
    }
}

body.aphro-theme-enabled.aphro-df-single-image .product-gallery-custom {
    grid-template-columns: minmax(0, 1fr);
}

body.aphro-theme-enabled.aphro-df-single-image .product-thumbs {
    display: none;
}

/* Summary */
body.aphro-theme-enabled.single-product .product-summary-custom > h1 {
    max-width: 22ch;
    margin: 0 0 10px;
    color: var(--adf-ink);
    font-size: clamp(32px, 3.3vw, 46px);
    line-height: 1.06;
    overflow-wrap: anywhere;
}

body.aphro-theme-enabled.single-product .product-subtitle {
    margin: 0 0 18px;
    color: var(--adf-muted);
    font-size: 17px;
    line-height: 1.5;
}

body.aphro-theme-enabled.single-product .product-discount-note {
    margin: 0 0 14px;
    padding: 6px 14px;
    font-size: 14px;
    font-weight: 600;
}

body.aphro-theme-enabled.single-product .product-price-large {
    align-items: baseline;
    gap: 12px;
    margin-bottom: 22px;
}

body.aphro-theme-enabled.single-product .product-price-large__sale {
    color: var(--adf-ink);
    font-size: clamp(28px, 2.4vw, 34px);
    font-weight: 700;
    letter-spacing: -.01em;
}

body.aphro-theme-enabled.single-product .product-price-large__regular {
    color: var(--adf-muted);
    font-size: 17px;
    font-weight: 400;
}

body.aphro-theme-enabled.single-product .product-actions {
    grid-template-columns: 76px minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px;
    height: auto;
}

body.aphro-theme-enabled.single-product :is(.product-actions .quantity, .product-actions .quantity input, .product-actions .button, .product-actions .buy-now, .product-variation-form .single_add_to_cart_button, .product-variation-form .buy-now, .product-variation-form .quantity, .product-variation-form .quantity input) {
    height: 52px;
    min-height: 52px;
    border-radius: 999px;
}

body.aphro-theme-enabled.single-product :is(.product-actions .button, .product-actions .buy-now, .product-variation-form .single_add_to_cart_button, .product-variation-form .buy-now) {
    padding: 0 18px;
    font-size: 15px;
    font-weight: 700;
}

body.aphro-theme-enabled.single-product :is(.product-actions .quantity input, .product-variation-form .quantity input) {
    font-size: 16px;
    border-color: var(--adf-line);
}

/* Section headings on the product page */
body.aphro-theme-enabled.single-product .related-products .section-head h2,
body.aphro-theme-enabled.single-product .customer-reviews__nav h2,
body.aphro-theme-enabled.single-product .pairs-well__head h2 {
    color: var(--adf-ink);
    font-size: clamp(28px, 3vw, 38px);
    line-height: 1.1;
}

html:not(.aphro-dark) body.aphro-theme-enabled.single-product.aphro-df :is(.related-products .section-head h2, .customer-reviews__nav h2) {
    color: var(--adf-ink);
}

body.aphro-theme-enabled .related-products .section-head a {
    color: var(--adf-rose-text);
    font-size: 14px;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 4px;
}

body.aphro-theme-enabled.single-product .customer-reviews__nav h2.is-active {
    border-bottom-color: transparent;
}

/* Reviews: no "0.0 · 0 reviews" line before the first review. */
body.aphro-theme-enabled.single-product .customer-reviews:has(.customer-reviews__empty) .review-score,
body.aphro-theme-enabled.single-product .customer-reviews:has(.arv-note) .customer-reviews__empty {
    display: none;
}

/* Benefit strips */
html:not(.aphro-dark) body.aphro-theme-enabled .feature-strip :is(span, p) {
    color: var(--adf-muted);
}

/* =====================================================================
 * 6. Cart drawer + cart page
 * ===================================================================== */
/* Closed drawer: no shadow leaking into the right edge, not focusable. */
body.aphro-theme-enabled .cart-drawer {
    transition: transform .22s ease, visibility 0s linear .22s;
}

body.aphro-theme-enabled:not(.cart-drawer-open) .cart-drawer {
    visibility: hidden;
    box-shadow: none;
}

body.aphro-theme-enabled.cart-drawer-open .cart-drawer {
    visibility: visible;
    transition: transform .22s ease;
}

/* Category lists under item names were noise ("Couple, Novice, …"). */
body.aphro-theme-enabled :is(.cart-drawer__item-cat, .cart-row__category) {
    display: none !important;
}

body.aphro-theme-enabled .cart-drawer h2 {
    font-size: 30px;
}

html:not(.aphro-dark) body.aphro-theme-enabled .cart-drawer__price {
    color: var(--adf-ink);
}

html:not(.aphro-dark) body.aphro-theme-enabled .cart-drawer__price .woocommerce-Price-amount {
    color: inherit;
}

body.aphro-theme-enabled .cart-drawer__qty button {
    min-width: 40px;
    min-height: 40px;
}

body.aphro-theme-enabled .cart-drawer__remove {
    min-width: 36px;
    min-height: 36px;
}

body.aphro-theme-enabled .cart-drawer__close {
    min-width: 44px;
    min-height: 44px;
}

/* =====================================================================
 * 7. Checkout (fields and layout only; payment methods untouched)
 * ===================================================================== */
body.aphro-theme-enabled.woocommerce-checkout .page-shell > article > h1 {
    display: block;
    margin: 0 0 6px;
    color: var(--adf-ink);
    font-size: clamp(34px, 4vw, 48px);
    line-height: 1.05;
}

body.aphro-theme-enabled .aphro-df-checkout-trust {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 22px;
    color: var(--adf-muted);
    font-size: 14px;
    line-height: 1.4;
}

body.aphro-theme-enabled .aphro-df-checkout-trust svg {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    color: var(--adf-rose-text);
}

body.aphro-theme-enabled .aphro-df-checkout-signin {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 16px;
    margin: 0 0 16px;
    padding: 16px 18px;
    border: 1px solid var(--adf-line);
    border-radius: 16px;
    background: var(--adf-surface);
    color: var(--adf-ink);
}

body.aphro-theme-enabled .aphro-df-checkout-signin__icon {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    border-radius: 50%;
    background: var(--adf-blush);
    color: var(--adf-rose-text);
}

body.aphro-theme-enabled .aphro-df-checkout-signin__icon svg {
    width: 22px;
    height: 22px;
}

body.aphro-theme-enabled .aphro-df-checkout-signin p {
    flex: 1 1 260px;
    margin: 0;
    font-size: 15px;
    line-height: 1.45;
}

body.aphro-theme-enabled .aphro-df-checkout-signin p span {
    color: var(--adf-muted);
}

body.aphro-theme-enabled .aphro-df-checkout-signin__btn {
    min-height: 44px;
    margin: 0;
    padding: 0 22px;
    border: 1px solid var(--adf-ink);
    border-radius: 999px;
    background: transparent;
    color: var(--adf-ink);
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background-color .15s ease, color .15s ease;
}

body.aphro-theme-enabled .aphro-df-checkout-signin__btn:hover {
    background: var(--adf-ink);
    color: var(--adf-surface);
    opacity: 1;
}

body.aphro-theme-enabled.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
    margin-bottom: 18px;
    padding: 14px 18px;
    border-radius: 16px;
    font-size: 15px;
    line-height: 1.45;
}

html:not(.aphro-dark) body.aphro-theme-enabled.woocommerce-checkout .woocommerce-info a {
    color: var(--adf-rose-text);
    font-weight: 700;
}

@media (min-width: 901px) {
    body.aphro-theme-enabled.woocommerce-checkout form.checkout {
        grid-template-columns: minmax(0, 1fr) minmax(380px, 460px);
        gap: 32px;
    }

    body.aphro-theme-enabled.woocommerce-checkout #customer_details {
        grid-template-columns: minmax(0, 1fr);
        gap: 4px;
        padding: 30px 32px;
    }

    body.aphro-theme-enabled.woocommerce-checkout :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper) {
        display: grid;
        grid-template-columns: repeat(6, minmax(0, 1fr));
        column-gap: 16px;
    }

    body.aphro-theme-enabled.woocommerce-checkout :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper) > .form-row {
        grid-column: span 6;
        width: auto;
        float: none;
    }

    body.aphro-theme-enabled.woocommerce-checkout :is(#billing_first_name_field, #billing_last_name_field, #shipping_first_name_field, #shipping_last_name_field) {
        grid-column: span 3 !important;
    }

    body.aphro-theme-enabled.woocommerce-checkout :is(#billing_city_field, #billing_state_field, #billing_postcode_field, #shipping_city_field, #shipping_state_field, #shipping_postcode_field) {
        grid-column: span 2 !important;
    }

    body.aphro-theme-enabled.woocommerce-checkout .checkout-order-card {
        padding: 30px 30px 32px;
        top: 120px;
    }
}

body.aphro-theme-enabled.woocommerce-checkout :is(.woocommerce-billing-fields > h3, #order_review_heading) {
    margin: 0 0 20px;
    color: var(--adf-ink);
    font-size: clamp(24px, 2.4vw, 30px);
    line-height: 1.1;
}

body.aphro-theme-enabled.woocommerce-checkout #ship-to-different-address {
    margin: 10px 0 12px;
    font-family: var(--adf-sans);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
}

body.aphro-theme-enabled.woocommerce-checkout #ship-to-different-address label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    cursor: pointer;
}

body.aphro-theme-enabled.woocommerce-checkout .form-row {
    margin: 0 0 16px;
}

body.aphro-theme-enabled.woocommerce-checkout .form-row label {
    margin: 0 0 7px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
}

body.aphro-theme-enabled.woocommerce-checkout :is(input.input-text, select, textarea, .select2-container .select2-selection--single) {
    min-height: 50px;
    padding: 10px 14px;
    border-width: 1px;
    border-radius: 12px;
    font-size: 16px;
}

html:not(.aphro-dark) body.aphro-theme-enabled.woocommerce-checkout :is(input.input-text, select, textarea, .select2-container .select2-selection--single) {
    border-color: rgba(36, 22, 30, .18);
    background: #fff;
}

body.aphro-theme-enabled.woocommerce-checkout :is(input.input-text, select, textarea):focus,
body.aphro-theme-enabled.woocommerce-checkout .select2-container--open .select2-selection--single {
    border-color: var(--adf-rose);
    box-shadow: var(--adf-ring);
}

body.aphro-theme-enabled.woocommerce-checkout .select2-container .select2-selection__rendered {
    line-height: 28px;
    font-size: 16px;
}

body.aphro-theme-enabled.woocommerce-checkout .select2-container .select2-selection__arrow {
    height: 48px;
}

body.aphro-theme-enabled.woocommerce-checkout textarea.input-text {
    min-height: 110px;
}

body.aphro-theme-enabled.woocommerce-checkout .shop_table {
    font-size: 16px;
}

body.aphro-theme-enabled.woocommerce-checkout .shop_table :is(th, td) {
    padding: 14px 0;
}

body.aphro-theme-enabled.woocommerce-checkout .shop_table thead th {
    color: var(--adf-muted);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

body.aphro-theme-enabled.woocommerce-checkout .checkout-product__name {
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
}

body.aphro-theme-enabled.woocommerce-checkout .product-quantity {
    color: var(--adf-muted);
    font-size: 14px;
}

body.aphro-theme-enabled.woocommerce-checkout :is(.product-total, .cart-subtotal td) {
    font-size: 17px;
}

body.aphro-theme-enabled.woocommerce-checkout .order-total :is(th, td) {
    font-size: 22px;
}

body.aphro-theme-enabled.woocommerce-checkout #place_order {
    height: 56px;
    border-radius: 999px;
    font-size: 17px;
    font-weight: 700;
}

html.aphro-dark body.aphro-theme-enabled.woocommerce-checkout #place_order {
    background: var(--aphro-theme-accent, #f0a1b2);
    color: var(--aphro-theme-on-accent, #24161e);
    box-shadow: none;
}

html.aphro-dark body.aphro-theme-enabled.woocommerce-checkout #place_order:is(:hover, :focus-visible) {
    background: #f5b5c4;
    color: #24161e;
}

/* =====================================================================
 * 8. Account pop-up (sign in / create account) and the sign-in page
 * ===================================================================== */
body.aphro-theme-enabled .auth-modal__dialog {
    width: min(460px, calc(100vw - 24px));
    max-height: calc(100dvh - 24px);
    overflow-y: auto;
    padding: 26px 28px 28px;
    border-radius: 22px;
    background: var(--adf-surface);
    color: var(--adf-ink);
    box-shadow: 0 30px 80px rgba(20, 10, 16, .28);
}

body.aphro-theme-enabled .auth-modal__close {
    top: 12px;
    right: 12px;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    color: var(--adf-ink);
    font-size: 28px;
    line-height: 1;
}

body.aphro-theme-enabled .auth-modal__close:hover {
    background: var(--adf-tile);
    opacity: 1;
}

/* Tabs */
.adf-auth-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px;
    margin: 6px 48px 22px 0;
    padding: 4px;
    border-radius: 999px;
    background: var(--adf-tile);
}

.adf-auth-tabs button {
    min-height: 40px;
    margin: 0;
    padding: 0 6px;
    white-space: nowrap;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--adf-muted);
    font-size: 13.5px;
    font-weight: 700;
    cursor: pointer;
    transition: background-color .15s ease, color .15s ease, box-shadow .15s ease;
}

.adf-auth-tabs button[aria-selected="true"] {
    background: var(--adf-surface);
    color: var(--adf-ink);
    box-shadow: 0 2px 8px rgba(36, 22, 30, .1);
}

html.aphro-dark .adf-auth-tabs button[aria-selected="true"] {
    background: var(--adf-blush);
    box-shadow: none;
}

.auth-modal__dialog[data-adf-mode="signin"] .auth-register-form,
.auth-modal__dialog[data-adf-mode="register"] .adf-signin {
    display: none;
}

.auth-modal__dialog .adf-signin[hidden] {
    display: none;
}

/* Headings inside the pop-up */
body.aphro-theme-enabled .auth-modal__dialog :is(h2, .adf-signin__title) {
    display: block;
    margin: 0 0 6px;
    color: var(--adf-ink);
    font-family: var(--adf-serif);
    font-size: 28px;
    font-weight: 400;
    line-height: 1.1;
    text-align: left;
}

body.aphro-theme-enabled .auth-modal__dialog h2 > span[aria-hidden="true"] {
    display: none;
}

body.aphro-theme-enabled .auth-modal__dialog .auth-register-form > h2 {
    margin-bottom: 18px;
}

.adf-signin__text,
.adf-code-hint {
    margin: 0 0 18px;
    color: var(--adf-muted);
    font-size: 14px;
    line-height: 1.5;
}

.adf-code-hint {
    margin: -6px 0 14px;
    font-size: 13px;
}

/* Fields (pop-up + sign-in page) */
.adf-field {
    display: grid;
    gap: 7px;
    margin: 0 0 14px;
}

.adf-field > span,
body.aphro-theme-enabled .auth-register-form > label > span:first-child {
    color: var(--adf-ink);
    font-size: 14px;
    font-weight: 600;
}

body.aphro-theme-enabled :is(.adf-field input, .auth-register-form input[type="email"], .auth-register-form input[type="text"], .auth-register-form input[type="password"]) {
    box-sizing: border-box;
    width: 100%;
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid rgba(36, 22, 30, .18);
    border-radius: 12px;
    background: var(--adf-surface);
    color: var(--adf-ink);
    font-size: 16px;
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}

html.aphro-dark body.aphro-theme-enabled :is(.adf-field input, .auth-register-form input[type="email"], .auth-register-form input[type="text"], .auth-register-form input[type="password"]) {
    border-color: var(--adf-line);
    background: var(--adf-tile);
}

body.aphro-theme-enabled :is(.adf-field input, .auth-register-form input):focus {
    border-color: var(--adf-rose);
    outline: 0;
    box-shadow: var(--adf-ring);
}

/* Password show / hide */
.adf-password {
    position: relative;
    display: block;
}

.adf-password input {
    padding-right: 76px !important;
}

.adf-password__toggle {
    position: absolute;
    top: 50%;
    right: 6px;
    min-width: 60px;
    min-height: 36px;
    margin: 0;
    padding: 0 10px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--adf-rose-text);
    font-size: 13px;
    font-weight: 700;
    transform: translateY(-50%);
    cursor: pointer;
}

.adf-password__toggle:hover {
    background: var(--adf-tile);
    opacity: 1;
}

/* Register form: the confirm field is filled from the password field. */
body.aphro-theme-enabled .auth-register-form label.adf-confirm-hidden {
    display: none !important;
}

body.aphro-theme-enabled .auth-register-form__code {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
}

body.aphro-theme-enabled .auth-register-form__code button {
    min-height: 48px;
    margin: 0;
    padding: 0 16px;
    border: 0;
    border-radius: 12px;
    background: var(--adf-ink);
    color: var(--adf-surface);
    font-size: 14px;
    font-weight: 700;
    white-space: nowrap;
}

body.aphro-theme-enabled .auth-register-form__code button:disabled {
    background: var(--adf-disabled-bg);
    color: var(--adf-disabled-ink);
    opacity: 1;
}

body.aphro-theme-enabled :is(.auth-register-form__check, .adf-check) {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0 0 10px;
    color: var(--adf-ink);
    font-size: 14px;
    line-height: 1.45;
    cursor: pointer;
}

body.aphro-theme-enabled .auth-register-form__check span {
    color: var(--adf-muted);
}

body.aphro-theme-enabled .auth-register-form__check input {
    margin-top: 1px;
}

body.aphro-theme-enabled .auth-modal__dialog a,
body.aphro-theme-enabled .account-auth-card :is(.account-auth-row a, .account-auth-register a),
.adf-link {
    color: var(--adf-rose-text);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.adf-link {
    margin: 0;
    padding: 4px 0;
    border: 0;
    background: none;
    font-size: inherit;
    cursor: pointer;
}

body.aphro-theme-enabled .aphro-password-rules {
    color: var(--adf-muted);
}

/* Primary buttons in the pop-up */
body.aphro-theme-enabled :is(.auth-register-form__submit, .adf-signin__submit) {
    display: grid;
    place-items: center;
    width: 100%;
    min-height: 52px;
    margin: 10px 0 0;
    padding: 0 20px;
    border: 0;
    border-radius: 999px;
    background: var(--adf-rose);
    color: var(--adf-on-rose);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .01em;
    text-transform: none;
    opacity: 1;
    cursor: pointer;
    transition: background-color .15s ease, transform .15s ease;
}

body.aphro-theme-enabled :is(.auth-register-form__submit, .adf-signin__submit):not(:disabled):hover {
    background: var(--adf-rose-deep);
    opacity: 1;
}

body.aphro-theme-enabled .auth-register-form__submit:disabled {
    background: var(--adf-disabled-bg);
    color: var(--adf-disabled-ink);
    opacity: 1;
    cursor: not-allowed;
}

.adf-signin__submit.is-loading {
    pointer-events: none;
    opacity: .8;
}

.adf-signin__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 16px;
    margin: 2px 0 6px;
    font-size: 14px;
}

.adf-signin__row .adf-check {
    margin: 0;
}

.adf-signin__message {
    margin: 10px 0 0;
    padding: 10px 12px;
    border-radius: 10px;
    background: #fbe3e3;
    color: #8f1d1d;
    font-size: 14px;
}

html.aphro-dark .adf-signin__message {
    background: #44262a;
    color: #f2a0a0;
}

.adf-signin__switch,
body.aphro-theme-enabled .auth-register-form__signin {
    margin: 18px 0 0;
    color: var(--adf-muted);
    font-size: 14px;
    text-align: center;
}

body.aphro-theme-enabled .auth-register-form__message {
    font-size: 14px;
}

/* The standalone sign-in page (/my-account/ for guests) */
body.aphro-theme-enabled .account-auth-card .account-auth-title {
    color: var(--adf-ink);
    font-size: 30px;
}

body.aphro-theme-enabled .account-auth-card .account-auth-title > span[aria-hidden="true"] {
    display: none;
}

body.aphro-theme-enabled .account-auth-card .account-auth-remember span,
body.aphro-theme-enabled .account-auth-card .account-auth-register {
    color: var(--adf-muted);
}

body.aphro-theme-enabled .account-auth-card .account-auth-remember {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* =====================================================================
 * 9. Account area
 * ===================================================================== */
body.aphro-theme-enabled .account-card--overview .aphro-df-stats > a {
    display: grid;
    justify-items: center;
    gap: 14px;
    color: inherit;
    text-decoration: none;
    border-radius: 16px;
    transition: transform .15s ease;
}

body.aphro-theme-enabled .account-card--overview .aphro-df-stats > a:hover {
    transform: translateY(-2px);
}

body.aphro-theme-enabled .account-card--overview .aphro-df-stats > a:hover span {
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* "Payment authentication" only ever showed "Not verified" (payments are
 * not saved cards), so the row is hidden. */
body.aphro-theme-enabled .account-security-cert-list > .account-security-cert:nth-child(3) {
    display: none;
}

.adf-delete-message {
    margin: 12px 0 0;
    font-size: 14px;
    line-height: 1.5;
    text-align: center;
}

.adf-delete-message.is-success {
    color: #2f6b45;
}

.adf-delete-message.is-error {
    color: #b3261e;
}

html.aphro-dark .adf-delete-message.is-success {
    color: #9fd8b3;
}

html.aphro-dark .adf-delete-message.is-error {
    color: #f2a0a0;
}

body.aphro-theme-enabled .account-security-delete-button.is-loading {
    opacity: .7;
    pointer-events: none;
}

/* =====================================================================
 * 10. Footer
 * ===================================================================== */
body.aphro-theme-enabled .site-footer__newsletter .newsletter-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 440px);
    align-items: center;
    gap: 18px 40px;
    padding-top: 34px;
    padding-bottom: 34px;
}

body.aphro-theme-enabled .site-footer__newsletter .newsletter-row > p {
    margin: 0;
    font-family: var(--adf-serif);
    font-size: clamp(20px, 2vw, 26px);
    font-weight: 400;
    line-height: 1.25;
}

body.aphro-theme-enabled .site-footer__newsletter form {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    margin: 0;
}

body.aphro-theme-enabled .site-footer__newsletter form input[type="email"] {
    width: 100%;
    height: 52px;
    margin: 0;
    padding: 0 64px 0 22px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    background: rgba(255, 255, 255, .08);
    color: #f6edf0;
    font-size: 16px;
}

body.aphro-theme-enabled .site-footer__newsletter form input[type="email"]::placeholder {
    color: rgba(246, 237, 240, .7);
}

body.aphro-theme-enabled .site-footer__newsletter form input[type="email"]:focus {
    border-color: #f0a1b2;
    outline: 0;
    box-shadow: 0 0 0 3px rgba(240, 161, 178, .25);
}

body.aphro-theme-enabled .site-footer__newsletter form button[type="submit"] {
    position: absolute;
    top: 50%;
    right: 5px;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #f0a1b2;
    color: #24161e;
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    transform: translateY(-50%);
    cursor: pointer;
}

body.aphro-theme-enabled .site-footer__newsletter form button[type="submit"]:hover {
    background: #f5b5c4;
    opacity: 1;
}

body.aphro-theme-enabled .site-footer__newsletter .wcemp-message {
    grid-column: 2;
    font-size: 14px;
}

body.aphro-theme-enabled .site-footer__newsletter .wcemp-message:empty {
    display: none;
}

body.aphro-theme-enabled .site-footer .footer-links h3 {
    margin: 0 0 14px;
    font-family: var(--adf-sans);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    opacity: .78;
}

body.aphro-theme-enabled .site-footer .footer-links a {
    display: inline-block;
    padding: 4px 0;
    font-size: 15px;
    line-height: 1.4;
}

body.aphro-theme-enabled .site-footer .footer-links a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* =====================================================================
 * 11. Small things
 * ===================================================================== */
/* Horizontal chip rows scroll without a visible scrollbar. */
body.aphro-theme-enabled .aphro-premium-collection-links__list,
body.aphro-theme-enabled .aphro-premium-collection-links nav,
body.aphro-theme-enabled .aphro-premium-collection-links > div {
    scrollbar-width: none;
}

body.aphro-theme-enabled .aphro-premium-collection-links__list::-webkit-scrollbar,
body.aphro-theme-enabled .aphro-premium-collection-links nav::-webkit-scrollbar,
body.aphro-theme-enabled .aphro-premium-collection-links > div::-webkit-scrollbar {
    display: none;
}

/* Cookie preference centre: never wider than the phone. */
.cky-preference-center {
    max-width: calc(100vw - 24px) !important;
}

.cky-preference-center :is(.cky-preference-header, .cky-preference-body-wrapper, .cky-preference-content-wrapper, .cky-accordion-wrapper, .cky-accordion, .cky-accordion-item) {
    max-width: 100% !important;
    box-sizing: border-box;
}

/* =====================================================================
 * 12. Phones and small tablets
 * ===================================================================== */
@media (max-width: 900px) {
    body.aphro-theme-enabled.single-product .product-summary-custom > h1 {
        max-width: none;
        font-size: 30px;
        font-weight: 400;
    }

    body.aphro-theme-enabled.single-product .product-subtitle {
        font-size: 15px;
    }

    body.aphro-theme-enabled.single-product .product-price-large__sale {
        font-size: 26px;
    }

    body.aphro-theme-enabled.single-product .product-main-image {
        border-radius: 16px;
        overflow: hidden;
    }

    body.aphro-theme-enabled.single-product .product-actions {
        grid-template-columns: 64px minmax(0, 1fr) minmax(0, 1fr);
        gap: 8px;
    }

    body.aphro-theme-enabled.single-product :is(.product-actions .quantity, .product-actions .quantity input, .product-actions .button, .product-actions .buy-now) {
        height: 48px;
        min-height: 48px;
    }

    body.aphro-theme-enabled.single-product .product-actions .quantity {
        width: 64px;
    }

    body.aphro-theme-enabled.single-product :is(.product-actions .button, .product-actions .buy-now) {
        padding: 0 10px;
        font-size: 14px;
    }

    body.aphro-theme-enabled.single-product .related-products .section-head h2,
    body.aphro-theme-enabled.single-product .customer-reviews__nav h2 {
        font-size: 28px;
    }

    body.aphro-theme-enabled .product-card__price ins,
    body.aphro-theme-enabled .product-card__price-values > .woocommerce-Price-amount {
        font-size: 17px;
    }

    body.aphro-theme-enabled .product-card__price del {
        font-size: 13px;
    }

    body.aphro-theme-enabled .product-card__title {
        font-size: 14px;
    }

    html:not(.aphro-dark) body.aphro-codex-home .aphro-codex-hero__veil {
        background: linear-gradient(180deg, rgba(252, 250, 248, 0) 18%, rgba(252, 250, 248, .55) 48%, rgba(252, 250, 248, .82) 100%);
    }

    body.aphro-codex-home .aphro-codex-product__description {
        font-size: 13px;
    }

    body.aphro-codex-home .aphro-codex-hero .aphro-codex-kicker {
        font-size: 11px;
    }

    body.aphro-codex-home .aphro-codex-product__link {
        min-height: 36px;
    }

    body.aphro-theme-enabled.woocommerce-checkout .page-shell > article > h1 {
        font-size: 32px;
    }

    body.aphro-theme-enabled.woocommerce-checkout :is(input.input-text, select, textarea, .select2-container .select2-selection--single) {
        min-height: 48px;
        border-radius: 10px;
    }

    body.aphro-theme-enabled .aphro-df-checkout-signin {
        padding: 14px;
    }

    body.aphro-theme-enabled .aphro-df-checkout-signin__btn {
        flex: 1 1 100%;
    }

    body.aphro-theme-enabled .auth-modal__dialog {
        padding: 20px 18px 22px;
        border-radius: 18px;
    }

    body.aphro-theme-enabled .site-footer__newsletter .newsletter-row {
        grid-template-columns: 1fr;
        padding-top: 28px;
        padding-bottom: 28px;
    }

    body.aphro-theme-enabled .site-footer__newsletter .wcemp-message {
        grid-column: 1;
    }

    body.aphro-theme-enabled .site-footer .footer-links a {
        padding: 10px 0;
        font-size: 15px;
    }

    body.aphro-theme-enabled .site-footer .footer-links li {
        margin: 0;
    }

    body.aphro-theme-enabled .cart-drawer__qty button {
        min-width: 40px;
        min-height: 40px;
    }

    body.aphro-theme-enabled .cart-drawer__qty input {
        min-height: 40px;
    }

    body.aphro-theme-enabled .aphro-breadcrumb__item {
        padding: 8px 0;
        font-size: 13px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.aphro-codex-home .aphro-codex-product,
    body.aphro-theme-enabled .account-card--overview .aphro-df-stats > a {
        transition: none;
    }
}

/* =====================================================================
 * Sticky header
 * The theme makes .site-header position: sticky (and the cart summary and
 * checkout order card stick 140px below it), but aphro-visual-refresh sets
 * html, body { overflow-x: hidden }, which turns <body> into a scroll
 * container: nothing ever stuck and the header scrolled away with the page.
 * overflow-x: clip keeps the horizontal clipping without creating a scroll
 * container. (:root outweighs the homepage's .aphro-codex-home rule.)
 * ===================================================================== */
html:root body {
    overflow-x: clip;
}

/* Overlays that locked the page with body { overflow: hidden } would un-stick
 * the header while open; lock the viewport from <html> instead. */
html body.aphro-has-desknav.mobile-menu-open,
html body.coupon-copy-modal-open {
    overflow: clip;
}

html:has(> body.mobile-menu-open),
html:has(> body.coupon-copy-modal-open) {
    overflow: hidden;
}

/* In-page anchors (#reviews and the like) land below the header. */
html {
    scroll-padding-top: calc(140px + var(--wp-admin--admin-bar--height, 0px));
}

/* WordPress toolbar (administrators only): fixed from 601px up. */
html body.admin-bar .site-header {
    top: var(--wp-admin--admin-bar--height, 32px);
}

@media (max-width: 900px) {
    html {
        scroll-padding-top: calc(124px + var(--wp-admin--admin-bar--height, 0px));
    }
}

/* Below 601px the toolbar scrolls away with the page. */
@media (max-width: 600px) {
    html body.admin-bar .site-header,
    html body.admin-bar.aphro-home-polished .site-header {
        top: 0;
    }
}

/* =====================================================================
 * Cookie banner colours
 * CookieYes prints its own #e8466e inline (white text on it is 3.8:1).
 * Use the store's rose so the buttons pass AA and match the rest of the site.
 * ===================================================================== */
.cky-consent-container .cky-btn:is(.cky-btn-accept, .cky-btn-reject),
.cky-preference-center .cky-btn:is(.cky-btn-accept, .cky-btn-reject, .cky-btn-preferences) {
    border-color: #b24d64 !important;
    background-color: #b24d64 !important;
    color: #ffffff !important;
}

.cky-consent-container .cky-btn:is(.cky-btn-accept, .cky-btn-reject):hover,
.cky-preference-center .cky-btn:is(.cky-btn-accept, .cky-btn-reject, .cky-btn-preferences):hover {
    border-color: #9e4157 !important;
    background-color: #9e4157 !important;
    opacity: 1;
}

.cky-consent-container .cky-btn-customize {
    border-color: #b24d64 !important;
    background-color: transparent !important;
    color: #a9475d !important;
}

.cky-preference-center .cky-show-desc-btn {
    color: #a9475d !important;
}

.cky-preference-center .cky-switch input[type="checkbox"]:checked {
    background-color: #b24d64 !important;
}

.cky-btn-revisit-wrapper {
    background-color: #b24d64 !important;
}

/* Phones: the three choices stay on one row (French labels are longer), and
 * drop to two rows on the narrowest screens. */
@media screen and (max-width: 767px) {
    html body.aphro-premium-ux.aphro-theme-enabled .cky-consent-container .cky-notice-btn-wrapper .cky-btn {
        padding-right: 8px !important;
        padding-left: 8px !important;
        white-space: nowrap !important;
    }
}

@media screen and (max-width: 370px) {
    html body.aphro-premium-ux.aphro-theme-enabled .cky-consent-container .cky-notice-btn-wrapper {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    html body.aphro-premium-ux.aphro-theme-enabled .cky-consent-container .cky-notice-btn-wrapper .cky-btn-customize {
        grid-column: 1 / -1 !important;
    }
}

/* Create-account code: the button keeps its width while counting down, and
 * messages use the same calm red / green as the rest of the account area. */
body.aphro-theme-enabled .auth-register-form__code button {
    min-width: 7.5rem;
    font-variant-numeric: tabular-nums;
}

body.aphro-theme-enabled .auth-register-form__message {
    color: #b3261e;
}

body.aphro-theme-enabled .auth-register-form__message.is-success {
    color: #2f6b45;
}

html.aphro-dark body.aphro-theme-enabled .auth-register-form__message {
    color: #f2a0a0;
}

html.aphro-dark body.aphro-theme-enabled .auth-register-form__message.is-success {
    color: #9fd8b3;
}

body.aphro-theme-enabled .auth-register-form__message .adf-code-signin {
    padding: 0;
    color: var(--adf-rose-text);
    font-size: inherit;
    line-height: inherit;
}

/* The consent lines wrap instead of running off the pop-up on phones (the
 * French terms line was cut off and the pop-up scrolled sideways). */
body.aphro-theme-enabled .auth-register-form__check,
body.aphro-theme-enabled .auth-register-form__check span {
    white-space: normal;
}

/* =====================================================================
 * Buttons that went nowhere
 * ===================================================================== */
/* One show / hide control per password field (WooCommerce adds its own eye). */
body.aphro-theme-enabled .adf-password .show-password-input {
    display: none !important;
}

/* Wishlist heart while signed out: a note in the sign-in pop-up. */
body.aphro-theme-enabled .auth-modal .adf-wish-note {
    margin: 0 0 14px;
    padding: 10px 12px;
    border-radius: 12px;
    background: var(--adf-blush);
    color: var(--adf-ink);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
}

body.aphro-theme-enabled .auth-modal .adf-wish-note[hidden] {
    display: none;
}

/* Product page: choose an option first. */
body.aphro-theme-enabled .adf-choose {
    margin: 10px 0 4px;
    color: #b3261e;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
}

html.aphro-dark body.aphro-theme-enabled .adf-choose {
    color: #f2a0a0;
}

body.aphro-theme-enabled .adf-choose[hidden] {
    display: none;
}

body.aphro-theme-enabled .adf-need-choice {
    animation: adf-nudge .45s ease;
}

@keyframes adf-nudge {
    0%, 100% { transform: translateX(0); }
    20% { transform: translateX(-6px); }
    40% { transform: translateX(5px); }
    60% { transform: translateX(-3px); }
    80% { transform: translateX(2px); }
}

/* Empty bag: a way back to the shop. */
body.aphro-theme-enabled .cart-drawer .adf-drawer-shop {
    display: inline-flex;
    align-self: start;
    justify-self: start;
    align-items: center;
    justify-content: center;
    width: auto;
    min-height: 44px;
    margin-top: 4px;
    padding: 0 22px;
    border-radius: 999px;
    background: var(--adf-rose);
    color: var(--adf-on-rose) !important;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none !important;
    transition: background-color .15s ease;
}

body.aphro-theme-enabled .cart-drawer .adf-drawer-shop:hover {
    background: var(--adf-rose-deep);
}

body.aphro-theme-enabled .cart-drawer .adf-drawer-shop:focus-visible {
    outline: 0;
    box-shadow: var(--adf-ring);
}

/* Short confirmation (e.g. "Saved to your wishlist") */
.adf-toast {
    position: fixed;
    z-index: 100003;
    left: 50%;
    bottom: 24px;
    display: flex;
    align-items: center;
    gap: 12px;
    width: min(440px, calc(100vw - 32px));
    padding: 10px 8px 10px 16px;
    border-radius: 14px;
    background: #24161e;
    color: #ffffff;
    font-family: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
    box-shadow: 0 16px 40px rgba(0, 0, 0, .28);
    transform: translateX(-50%);
}

html.aphro-dark .adf-toast {
    background: #f6edf0;
    color: #24161e;
}

.adf-toast[hidden] {
    display: none;
}

.adf-toast__text {
    flex: 1 1 auto;
    min-width: 0;
}

.adf-toast a {
    flex: 0 0 auto;
    padding: 6px 8px;
    border-radius: 8px;
    color: inherit !important;
    font-weight: 700;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.adf-toast__close {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 32px;
    height: 32px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: inherit;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    opacity: .75;
}

.adf-toast a:hover,
.adf-toast__close:hover {
    background: rgba(127, 127, 127, .2);
    opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
    body.aphro-theme-enabled .adf-need-choice {
        animation: none;
    }
}

/* -------------------------------------------------------------------------
 * 13. Checkout payment area (layout only): one clean column on every screen.
 * The payment description, the coin chooser and the note share the same
 * left and right edges; nothing is wider than the order card on phones.
 * ---------------------------------------------------------------------- */
#payment div.payment_box {
    margin: 12px 0 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent !important;
    font-size: 15px;
    line-height: 1.55;
}
#payment div.payment_box::before,
#payment div.payment_box::after {
    content: none;
    display: none;
}
#payment div.payment_box > p {
    margin: 0 0 14px;
    font-size: 15px;
    line-height: 1.55;
    background: transparent;
}
#payment div.payment_box > p:last-child {
    margin-bottom: 0;
}
#payment .aphro-nowpayments-chooser {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    margin: 0 0 14px;
}
#payment .aphro-nowpayments-currency-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr));
}
#payment .aphro-nowpayments-currency-card,
#payment .aphro-nowpayments-currency-card__body,
#payment .aphro-nowpayments-currency-card__copy {
    min-width: 0;
}
#payment .aphro-nowpayments-currency-card__name,
#payment .aphro-nowpayments-currency-card__network {
    white-space: normal;
    overflow-wrap: anywhere;
}
#payment .aphro-nowpayments-currency-card__code {
    flex: 0 0 auto;
}
#payment div.payment_box > p.aphro-nowpayments-disclaimer {
    padding: 11px 13px;
    border: 1px solid #eadfe3;
    border-radius: 10px;
    font-size: 13.5px;
    line-height: 1.5;
    color: #6f5d66;
}
html.aphro-dark #payment div.payment_box > p.aphro-nowpayments-disclaimer {
    border-color: var(--aphro-theme-border, rgba(246, 237, 240, .16));
    color: var(--aphro-theme-muted, #cdbdc5);
}
#payment div.form-row.place-order {
    margin-top: 18px;
}
@media (max-width: 520px) {
    /* Phones: the coin list uses the full width of the order card instead of
       sitting in a third nested box. */
    #payment .aphro-nowpayments-chooser {
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
    }
    #payment .aphro-nowpayments-chooser__title {
        padding: 0;
    }
    #payment .aphro-nowpayments-chooser__hint {
        margin-top: 6px;
    }
}

/* -------------------------------------------------------------------------
 * 14. Phones: typing without zoom, easier taps, readable small labels.
 * ---------------------------------------------------------------------- */
@media (max-width: 767px) {
    /* iPhones zoom the whole page in when a field under 16px is tapped. */
    .site-search input[type="search"],
    .site-search input[name="s"],
    .woocommerce-ordering select.orderby,
    .acx .acx-qty input,
    .woocommerce-cart-form input[type="number"],
    .wcemp-lead-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),
    .wcemp-lead-form select,
    .wcemp-lead-form textarea,
    input.wcemp-country-search {
        font-size: 16px !important;
    }

    /* Short text links get a bigger invisible tap area; nothing moves. */
    a.site-logo--mobile,
    .aphro-codex-section-head--popular > a,
    .section-head__title > a,
    .aphro-catalog-active > a,
    a.acx-continue,
    .account-auth-row > a,
    .aphro-help-breadcrumb a,
    a.showcoupon {
        position: relative;
    }
    a.site-logo--mobile::after,
    .aphro-codex-section-head--popular > a::after,
    .section-head__title > a::after,
    .aphro-catalog-active > a::after,
    a.acx-continue::after,
    .account-auth-row > a::after,
    .aphro-help-breadcrumb a::after,
    a.showcoupon::after {
        content: "";
        position: absolute;
        inset: -10px -4px;
    }
    a.site-logo--mobile::after {
        inset: -7px 0;
    }

    /* Help pages: the whole "On this page" bar opens the list, not just the words. */
    html body.aphro-help-page .aphro-help-mobile-toc {
        padding: 0;
    }
    html body.aphro-help-page .aphro-help-mobile-toc > summary {
        padding: 12px 17px;
    }
    html body.aphro-help-page .aphro-help-mobile-toc > .aphro-help-toc {
        margin: 0 17px;
        padding-bottom: 6px;
    }

    /* Help pages: the small capital label above the title, 12px like the rest. */
    html body.aphro-help-page .aphro-help-eyebrow {
        font-size: 12px;
    }
}

/* -------------------------------------------------------------------------
 * 15. Full-height panels fit the part of the screen that is visible.
 * On phones "100vh" is taller than the screen while the browser's address
 * bar is showing, which put the cart drawer's checkout button under the bar.
 * ---------------------------------------------------------------------- */
body .cart-drawer {
    top: 0;
    bottom: 0;
    height: auto;
}
body .coupon-copy-modal__dialog {
    max-height: calc(100dvh - 32px);
}
@media (max-width: 576px) {
    body .cky-preference-center {
        max-height: 100dvh;
    }
}

/* -------------------------------------------------------------------------
 * 16. Coming-soon page (WooCommerce → Site visibility): just the launch page,
 * without the delivery bar on top of it.
 * ---------------------------------------------------------------------- */
html body:has(main.aphro-launch) .aphro-ship-bar {
    display: none !important;
}
/* While the whole site is hidden, its links would only lead back to this page. */
body.aphro-site-hidden main.aphro-launch .aphro-launch__nav,
body.aphro-site-hidden main.aphro-launch .aphro-launch__button--primary {
    display: none !important;
}
/* The small labels on the picture sat in its rounded corners and were cut off. */
main.aphro-launch .aphro-launch__visual-label,
main.aphro-launch .aphro-launch__visual-caption {
    right: auto;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
}
main.aphro-launch .aphro-launch__visual-label {
    top: 7%;
}
main.aphro-launch .aphro-launch__visual-caption {
    bottom: 7%;
}

/* -------------------------------------------------------------------------
 * 17. Header search button answers the tap.
 * The magnifier is a picture: it gave no sign of being pressed and Android
 * drew a blue box over it. Now only the button reacts: under the finger it
 * turns rose with a white magnifier and presses in (script-driven, because
 * phones barely show :active on a quick tap), and a search on its way keeps
 * it rose with a white spinner. An empty search puts the cursor in the field
 * without making the field flash; it no longer reloads the whole catalogue.
 * ---------------------------------------------------------------------- */
.site-search .header-search-toggle {
    isolation: isolate;
    border-radius: 999px;
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}

.site-search .header-search-toggle img {
    transition: transform .22s cubic-bezier(.2, .8, .3, 1.25), opacity .16s ease;
}

@media (hover: hover) and (pointer: fine) {
    .site-search .header-search-toggle:hover img {
        opacity: .86;
        transform: scale(1.05);
    }
}

/* The rose button, drawn over the picture (same size and place). */
.site-search .header-search-toggle::before {
    content: "";
    position: absolute;
    z-index: 1;
    top: 50%;
    left: 50%;
    width: 50px;
    height: 50px;
    margin: -25px 0 0 -25px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50'%3E%3Ccircle cx='25' cy='25' r='25' fill='%23b24d64'/%3E%3Ccircle cx='24.7' cy='24.7' r='7.7' fill='none' stroke='%23fff' stroke-width='2'/%3E%3Cpath d='M30.1 30.1L32.6 32.6' fill='none' stroke='%23fff' stroke-width='2.1' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
    opacity: 0;
    transition: opacity .24s ease, transform .22s cubic-bezier(.2, .8, .3, 1.25);
    pointer-events: none;
}

.site-search--mobile-inline .header-search-toggle::before {
    width: 32px;
    height: 32px;
    margin: -16px 0 0 -16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 68 70'%3E%3Ccircle cx='34' cy='35' r='31.4' fill='%23b24d64'/%3E%3Ccircle cx='32.5' cy='33.5' r='12.75' fill='none' stroke='%23fff' stroke-width='3.5'/%3E%3Cpath d='M41.9 42.4L48.5 49' fill='none' stroke='%23fff' stroke-width='4.4' stroke-linecap='round'/%3E%3C/svg%3E");
}

.site-search .header-search-toggle.adf-press::before {
    opacity: 1;
    transform: scale(.9);
    transition-duration: .06s;
}

.site-search .header-search-toggle.adf-press img {
    opacity: 1;
    transform: scale(.9);
    transition-duration: .06s;
}

/* The desktop pill is 52px tall on the homepage: the 60px button hung 4px
 * below it. The button now takes the pill's height, the icon stays centred. */
.site-search:not(.site-search--mobile-inline) > .header-search-toggle {
    top: 0;
    bottom: 0;
    height: auto;
}

/* Phones: a 48px target around the 36px button. */
.site-search--mobile-inline .header-search-toggle::after {
    content: "";
    position: absolute;
    inset: -6px;
}

/* On its way: the button stays rose and a white spinner turns in it. */
.site-search.adf-searching .header-search-toggle img {
    opacity: 0;
    transform: scale(.6);
}

.site-search.adf-searching .header-search-toggle::before {
    opacity: 1;
    transform: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50'%3E%3Ccircle cx='25' cy='25' r='25' fill='%23b24d64'/%3E%3C/svg%3E");
}

.site-search--mobile-inline.adf-searching .header-search-toggle::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 68 70'%3E%3Ccircle cx='34' cy='35' r='31.4' fill='%23b24d64'/%3E%3C/svg%3E");
}

.adf-search-spinner {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    width: 22px;
    height: 22px;
    box-sizing: border-box;
    margin: -11px 0 0 -11px;
    border: 2.5px solid rgba(255, 255, 255, .38);
    border-top-color: #fff;
    border-radius: 50%;
    animation: adf-search-spin .7s linear infinite;
    pointer-events: none;
}

.site-search--mobile-inline .adf-search-spinner {
    width: 16px;
    height: 16px;
    margin: -8px 0 0 -8px;
    border-width: 2px;
}

@keyframes adf-search-spin {
    to {
        transform: rotate(360deg);
    }
}

/* Empty search: the cursor goes into the field; the field itself stays as
 * it is (no ring). A keyboard user who tabs in still gets the usual ring. */
.site-search.adf-quiet-focus input[type="search"]:focus-visible,
.site-search.adf-quiet-focus input[name="s"]:focus-visible {
    outline: none;
}

/* Suggestions under the field: pressed state on touch screens too. */
.site-search-result {
    -webkit-tap-highlight-color: transparent;
    transition: background-color .12s ease;
}

.site-search-result:active {
    background: #fcebef;
}

html.aphro-dark body.aphro-theme-enabled .site-search-result:active {
    background: var(--aphro-theme-raised, #3a2632);
}

@media (prefers-reduced-motion: reduce) {
    .site-search .header-search-toggle img,
    .site-search .header-search-toggle::before {
        transition-duration: .01s;
    }

    .site-search .header-search-toggle.adf-press::before,
    .site-search .header-search-toggle.adf-press img {
        transform: none;
    }

    .adf-search-spinner {
        animation-duration: 1.6s;
    }
}
