/* Alex Cosmetic Core: progressively enhanced discovery components. */

.ac-component {
    --ac-ink: var(--wp--preset--color--ink, #171b18);
    --ac-forest: var(--wp--preset--color--forest, #2f3b31);
    --ac-sage: var(--wp--preset--color--sage, #7b8675);
    --ac-bronze: var(--wp--preset--color--bronze, #94613c);
    --ac-sand: var(--wp--preset--color--sand, #ded6c9);
    --ac-mist: var(--wp--preset--color--mist, #edf0eb);
    --ac-ivory: var(--wp--preset--color--ivory, #f7f4ee);
    --ac-white: var(--wp--preset--color--white, #fff);
    --ac-radius-sm: var(--wp--custom--radius--small, 0.5rem);
    --ac-radius-md: var(--wp--custom--radius--medium, 1rem);
    --ac-radius-lg: var(--wp--custom--radius--large, 1.5rem);
    --ac-shadow: var(--wp--preset--shadow--soft, 0 1.25rem 3.75rem rgba(23, 27, 24, 0.1));
    width: 100%;
    margin-block: clamp(2.5rem, 6vw, 6rem);
    color: var(--ac-ink);
    font-family: var(--wp--preset--font-family--sans, "Helvetica Neue", "Segoe UI", Arial, sans-serif);
}

.ac-component--headerless {
    margin-block-start: 0;
}

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

.ac-component [hidden] {
    display: none !important;
}

.ac-component :where(h2, h3, h4, p, a, label) {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: manual;
}

.ac-component a,
.ac-component button,
.ac-component input,
.ac-component select,
.ac-component dialog {
    font: inherit;
}

.ac-component :where(a, button, input, select, [tabindex]):focus-visible {
    outline: 2px solid var(--ac-white);
    outline-offset: 2px;
    box-shadow: 0 0 0 5px var(--ac-bronze);
}

.ac-component__header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.7fr);
    align-items: end;
    gap: clamp(1.25rem, 4vw, 3.5rem);
    margin-bottom: clamp(1.5rem, 4vw, 3rem);
}

.ac-component__header > * {
    min-width: 0;
}

.ac-component__header h2,
.ac-component h3 {
    margin-block: 0;
    color: var(--ac-ink);
    font-family: var(--wp--preset--font-family--display, Iowan Old Style, Baskerville, "Times New Roman", serif);
    font-weight: 400;
    letter-spacing: -0.025em;
    line-height: 1.08;
}

.ac-component__header h2 {
    font-size: clamp(2.25rem, 5vw, 4.75rem);
}

.ac-component__header > p {
    max-width: 42rem;
    margin: 0;
    font-size: clamp(1rem, 1.5vw, 1.2rem);
    line-height: 1.65;
}

.ac-component__eyebrow,
.ac-card__eyebrow {
    margin: 0 0 0.6rem;
    color: var(--ac-bronze);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.4;
    text-transform: uppercase;
}

.ac-filter {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
    align-items: end;
    gap: 1rem;
    padding: clamp(1rem, 3vw, 1.75rem);
    border: 1px solid color-mix(in srgb, var(--ac-ink) 16%, transparent);
    border-radius: var(--ac-radius-md);
    background: var(--ac-white);
    box-shadow: var(--ac-shadow);
}

.ac-field {
    display: grid;
    min-width: 0;
    gap: 0.4rem;
}

.ac-field--search {
    grid-column: span 2;
}

.ac-field label {
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.35;
}

.ac-field :where(input, select) {
    width: 100%;
    min-height: 2.75rem;
    padding: 0.65rem 0.8rem;
    border: 1px solid color-mix(in srgb, var(--ac-ink) 32%, transparent);
    border-radius: var(--ac-radius-sm);
    background: var(--ac-white);
    color: var(--ac-ink);
}

.ac-field input[type="search"] {
    appearance: none;
}

.ac-filter__actions,
.ac-compare-bar__actions,
.ac-dialog__footer,
.ac-salon-card__links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.ac-filter__actions {
    align-items: end;
}

.ac-button,
.ac-component button,
.ac-component a.ac-button {
    display: inline-flex;
    min-width: 2.75rem;
    max-width: 100%;
    min-height: 2.75rem;
    align-items: center;
    justify-content: center;
    padding: 0.7rem 1rem;
    border: 1px solid var(--ac-ink);
    border-radius: 999px;
    background: var(--ac-ink);
    color: var(--ac-white);
    cursor: pointer;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: manual;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.ac-button:hover,
.ac-component button:hover,
.ac-component a.ac-button:hover {
    border-color: var(--ac-bronze);
    background: var(--ac-bronze);
    color: var(--ac-white);
    transform: translateY(-1px);
}

.ac-button--quiet,
.ac-component .ac-button--quiet {
    background: transparent;
    color: var(--ac-ink);
}

.ac-button--small,
.ac-component .ac-button--small {
    padding-inline: 0.85rem;
}

.ac-component :where(button, .ac-button):disabled {
    border-color: color-mix(in srgb, var(--ac-ink) 22%, transparent);
    background: var(--ac-mist);
    color: color-mix(in srgb, var(--ac-ink) 60%, transparent);
    cursor: not-allowed;
    transform: none;
}

.ac-status {
    min-height: 1.6em;
    margin-block: 1rem;
    color: var(--ac-forest);
    font-size: 0.9rem;
    font-weight: 600;
}

.ac-empty,
.ac-notice {
    padding: 1.25rem;
    border: 1px solid color-mix(in srgb, var(--ac-ink) 15%, transparent);
    border-radius: var(--ac-radius-md);
    background: var(--ac-mist);
    text-align: center;
}

.ac-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
    gap: clamp(1rem, 2.5vw, 1.75rem);
}

.ac-card-grid--text {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr));
}

.ac-product-showcase__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(1rem, 2.5vw, 1.75rem);
}

.ac-product-showcase--count-1 .ac-product-showcase__grid {
    grid-template-columns: minmax(0, min(100%, 20rem));
    justify-content: center;
}

.ac-product-showcase--count-2 .ac-product-showcase__grid {
    grid-template-columns: repeat(2, minmax(0, 20rem));
    justify-content: center;
}

.ac-product-showcase--count-3 .ac-product-showcase__grid,
.ac-product-showcase--count-6 .ac-product-showcase__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ac-product-showcase--count-5 .ac-product-showcase__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.ac-product-showcase--count-5 .ac-product-showcase__grid > * {
    grid-column: span 2;
}

.ac-product-showcase--count-5 .ac-product-showcase__grid > :nth-child(4) {
    grid-column: 2 / span 2;
}

.ac-product-showcase--count-7 .ac-product-showcase__grid {
    grid-template-columns: repeat(8, minmax(0, 1fr));
}

.ac-product-showcase--count-7 .ac-product-showcase__grid > * {
    grid-column: span 2;
}

.ac-product-showcase--count-7 .ac-product-showcase__grid > :nth-child(5) {
    grid-column: 2 / span 2;
}

.ac-showcase-card__media-link {
    position: relative;
    display: block;
    color: inherit;
    text-decoration: none;
}

.ac-showcase-card__quick-view {
    position: absolute;
    right: 0.75rem;
    bottom: 0.75rem;
    left: 0.75rem;
    display: block;
    padding: 0.8125rem;
    background: rgba(17, 20, 16, 0.9);
    color: #fff;
    font-size: 0.625rem;
    font-weight: 400;
    letter-spacing: 0.08em;
    line-height: 1.5;
    text-align: center;
    transform: translateY(4.0625rem);
    transition: transform 250ms ease;
}

.ac-showcase-card__media-link:hover .ac-showcase-card__quick-view,
.ac-showcase-card__media-link:focus-visible .ac-showcase-card__quick-view {
    transform: translateY(0);
}

.ac-showcase-card__media-link:focus-visible {
    outline: 2px solid #111410;
    outline-offset: 3px;
}

body.ac-home-product-dialog-open {
    overflow: hidden;
}

.ac-home-product-modal {
    position: fixed;
    inset: 0;
    width: min(calc(100% - 3rem), 60.625rem);
    max-width: none;
    max-height: calc(100dvh - 3rem);
    margin: auto;
    padding: 0;
    overflow: auto;
    border: 0;
    border-radius: 0;
    background: #f7f6f1;
    color: #111410;
}

.ac-home-product-modal::backdrop {
    background: rgba(17, 20, 16, 0.58);
    backdrop-filter: blur(4px);
}

.ac-home-product-modal__layout {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    min-height: 36.25rem;
}

.ac-component button.ac-home-product-modal__close {
    position: absolute;
    z-index: 2;
    top: 0.9375rem;
    right: 1.25rem;
    min-width: 0;
    min-height: 2.75rem;
    padding: 0.5rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #111410;
    font: 400 0.6875rem/1.5 var(--wp--preset--font-family--sans, "Avenir Next", "Helvetica Neue", Arial, sans-serif);
}

.ac-component button.ac-home-product-modal__close:hover {
    border: 0;
    background: transparent;
    color: #111410;
    transform: none;
}

.ac-component button.ac-home-product-modal__close:focus-visible {
    outline: 2px solid #111410;
    outline-offset: 2px;
}

.ac-home-product-modal__image {
    position: relative;
    min-width: 0;
    min-height: 36.25rem;
}

.ac-home-product-modal__image--rose { background: #eee4e1; }
.ac-home-product-modal__image--ice { background: #e9edf0; }
.ac-home-product-modal__image--sage { background: #e1e7df; }
.ac-home-product-modal__image--sun { background: #f1e8cf; }
.ac-home-product-modal__image--mint { background: #dfeae2; }

.ac-home-product-modal__image img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: 100%;
    aspect-ratio: auto;
    object-fit: contain;
}

.ac-home-product-modal__copy {
    min-width: 0;
    padding: 4.5rem 3.75rem;
}

.ac-home-product-modal__copy > * {
    margin-inline: 0;
}

.ac-home-product-modal__eyebrow {
    margin: 0 0 1.5rem;
    color: #5d645d;
    font-family: var(--wp--preset--font-family--display, "Iowan Old Style", Baskerville, serif);
    font-size: 1.125rem;
    font-weight: 600;
    letter-spacing: 0.24em;
    line-height: 1.55;
}

.ac-home-product-modal__copy h2 {
    margin: 0;
    color: #111410;
    font-family: var(--wp--preset--font-family--display, "Iowan Old Style", Baskerville, serif);
    font-size: 3rem;
    font-weight: 500;
    letter-spacing: normal;
    line-height: 1;
}

.ac-home-product-modal__needs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 1rem 0 1.5625rem;
	padding: 0;
	color: #5e6d5f;
	font-size: 0.625rem;
	line-height: 1.5;
	list-style: none;
}

.ac-home-product-modal__needs li {
	padding: 0.3125rem 0.5rem;
	border: 1px solid rgba(17, 20, 16, 0.15);
	border-radius: 999px;
	color: #536055;
	font-size: 0.6875rem;
	letter-spacing: 0.04em;
	line-height: 1;
	white-space: nowrap;
}

.ac-home-product-modal__description {
    margin: 0;
    color: #5d645d;
    font-family: var(--wp--preset--font-family--display, "Iowan Old Style", Baskerville, serif);
    font-size: 1.125rem;
    line-height: 1.55;
}

.ac-home-product-modal__note {
    margin: 1.5625rem 0 1.875rem;
    padding: 1.125rem;
    border: 1px solid rgba(17, 20, 16, 0.15);
}

.ac-home-product-modal__note strong {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.13em;
    line-height: 1.5;
    text-transform: uppercase;
}

.ac-home-product-modal__note p {
    margin: 0.5rem 0 0;
    color: #676e67;
    font-size: 0.75rem;
    line-height: 1.55;
}

.ac-home-product-modal__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.375rem;
    margin: 1.875rem 0 0;
}

.ac-home-product-modal__primary {
    display: inline-flex;
    min-height: 3.125rem;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    padding: 0 1.4375rem;
    border: 1px solid #111410;
    background: #111410;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.045em;
    line-height: 1.5;
    text-decoration: none;
}

.ac-home-product-modal__secondary {
    display: inline-block;
    padding: 0 0 0.375rem;
    border-bottom: 1px solid #111410;
    color: #111410;
    font-size: 0.75rem;
    font-weight: 400;
    line-height: 1.5;
    text-decoration: none;
}

.ac-product-quick-view-modal .ac-home-product-modal__primary,
.ac-product-quick-view-modal .ac-home-product-modal__secondary,
.ac-product-quick-view-modal .ac-product-quick-view__compare {
    font-family: var(--wp--preset--font-family--sans, "Avenir Next", "Helvetica Neue", Helvetica, Arial, sans-serif);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.045em;
    line-height: 1.5;
    overflow-wrap: normal;
    word-break: normal;
}

.ac-product-quick-view-modal .ac-home-product-modal__secondary:not(.ac-product-quick-view__compare) {
    min-height: auto;
    font-weight: 400;
    letter-spacing: normal;
}

@media (max-width: 760px) {
    .ac-product-quick-view-modal {
        inset: 0;
        width: 100%;
        height: 100dvh;
        max-height: none;
        margin: 0;
        padding: 1.5rem;
        overflow: auto;
        background: transparent;
    }

    .ac-product-quick-view-modal [data-ac-product-quick-view-content] {
        width: 100%;
        background: #f7f6f1;
    }

    .ac-product-quick-view-modal .ac-home-product-modal__close {
        position: absolute;
        top: 2.4375rem;
        right: 2.75rem;
    }

    .ac-home-product-modal__layout {
        grid-template-columns: minmax(0, 1fr);
        min-height: 0;
        background: #f7f6f1;
    }

    .ac-home-product-modal__image {
        width: 100%;
        min-height: 0;
        aspect-ratio: 1;
    }

    .ac-home-product-modal__image img {
        width: 100%;
        height: 100%;
        min-height: 0;
        max-height: none;
    }

    .ac-home-product-modal__copy {
        padding: 3rem 1.75rem 2.375rem;
    }

    .ac-home-product-modal__eyebrow {
        font-family: var(--wp--preset--font-family--display, "Iowan Old Style", Baskerville, serif);
        font-size: 1.125rem;
        line-height: 1.55;
    }

    .ac-home-product-modal__copy h2 {
        font-size: 2.375rem;
    }

    .ac-home-product-modal__actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .ac-home-product-modal__primary {
        min-height: 3.125rem;
        padding-inline: 1.4375rem;
        font-size: 0.75rem;
        line-height: 1.5;
    }

    .ac-home-product-modal__secondary {
        min-height: 2.75rem;
        font-size: 0.75rem;
        line-height: 1.5;
    }
}

.ac-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    margin-block: clamp(1.5rem, 4vw, 3rem);
}

.ac-pagination :where(a, span) {
    min-width: 0;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: manual;
}

.ac-pagination__previous {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    padding: 0.65rem 0.85rem;
    color: var(--ac-forest);
    font-weight: 700;
}

.ac-pagination__position {
    color: var(--ac-forest);
    font-size: 0.875rem;
    font-weight: 700;
}

.ac-treatment-tree,
.ac-treatment-children {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ac-treatment-tree {
    display: grid;
    gap: clamp(2rem, 5vw, 4.5rem);
}

.ac-treatment-node {
    min-width: 0;
}

.ac-component .ac-card.ac-treatment-card--root {
    display: grid;
    grid-template-columns: minmax(14rem, 0.8fr) minmax(0, 1.2fr);
}

.ac-component .ac-card.ac-treatment-card .ac-card__media img {
    aspect-ratio: 14 / 15;
    object-fit: cover;
}

.ac-component .ac-card.ac-treatment-card :where(h2, h3, h4, h5, h6) {
    margin: 0;
    font-family: var(--wp--preset--font-family--display, Iowan Old Style, Baskerville, "Times New Roman", serif);
    font-size: clamp(1.55rem, 2.5vw, 2.4rem);
    font-weight: 400;
    letter-spacing: -0.025em;
    line-height: 1.08;
}

.ac-component .ac-card.ac-treatment-card--root h2 {
    font-size: clamp(2rem, 4vw, 3.75rem);
}

.ac-treatment-card :where(h2, h3, h4, h5, h6) a,
.ac-treatment-card__link {
    color: inherit;
    text-decoration: none;
}

.ac-treatment-card :where(h2, h3, h4, h5, h6) a {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
}

.ac-treatment-card :where(h2, h3, h4, h5, h6) a:hover,
.ac-treatment-card__link:hover {
    text-decoration: underline;
    text-decoration-color: var(--ac-bronze);
    text-underline-offset: 0.2em;
}

.ac-treatment-card__link {
    display: inline-flex;
    width: fit-content;
    min-height: 2.75rem;
    align-items: center;
    gap: 0.35rem;
    margin-top: auto;
    font-size: 0.9rem;
    font-weight: 700;
}

.ac-treatment-children {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
    gap: clamp(1rem, 2.5vw, 1.75rem);
    margin-block-start: clamp(1rem, 3vw, 2rem);
    margin-inline-start: clamp(0.5rem, 3vw, 2.5rem);
    padding-inline-start: clamp(1rem, 3vw, 2rem);
    border-inline-start: 2px solid color-mix(in srgb, var(--ac-bronze) 45%, transparent);
}

.ac-treatment-children .ac-treatment-children {
    grid-column: 1 / -1;
}

/* Treatment overview mirrors the source site's editorial, full-bleed layout. */
.ac-treatment-overview {
    width: 100vw;
    max-width: none;
    margin: 0 calc(50% - 50vw);
    background: #f7f6f1;
    color: #111410;
}

.ac-treatment-shell {
    width: min(calc(100% - 4rem), 77.5rem);
    margin-inline: auto;
}

.ac-treatment-page-hero {
    position: relative;
    isolation: isolate;
    display: grid;
    min-height: 520px;
    align-items: end;
    padding: 90px 0 74px;
    overflow: hidden;
    background: #162019;
    color: #fff;
}

.ac-treatment-page-hero__media,
.ac-treatment-page-hero__media::after {
    position: absolute;
    z-index: -2;
    inset: 0;
}

.ac-treatment-page-hero__media::after {
    z-index: 1;
    background: linear-gradient(90deg, rgba(18, 28, 20, 0.92), rgba(18, 28, 20, 0.30));
    content: "";
}

.ac-treatment-page-hero__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.ac-treatment-page-hero__copy {
    position: relative;
    z-index: 2;
}

.ac-treatment-eyebrow {
    margin: 0 0 24px;
    color: inherit;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.24em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ac-treatment-page-hero h1 {
    max-width: 900px;
    margin: 0;
    color: #fff;
    font-family: var(--wp--preset--font-family--display, Iowan Old Style, Baskerville, "Times New Roman", serif);
    font-size: clamp(55px, 7vw, 94px);
    font-weight: 400;
    letter-spacing: -0.045em;
    line-height: 0.94;
}

.ac-treatment-page-hero h1 em {
    color: rgb(199, 210, 197);
    font-weight: inherit;
}

.ac-treatment-page-hero__copy > p:last-child {
    max-width: 650px;
    margin: 28px 0 0;
    color: rgba(255, 255, 255, 0.76);
    font-family: var(--wp--preset--font-family--display, Iowan Old Style, Baskerville, "Times New Roman", serif);
    font-size: 21px;
    line-height: 1.55;
}

.ac-treatment-story {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
    gap: 7vw;
    padding-block: 110px;
}

.ac-treatment-story--reverse {
    padding-top: 0;
}

.ac-treatment-story__photo,
.ac-treatment-story__photo img {
    width: 100%;
}

.ac-treatment-story__photo {
    min-height: 610px;
}

.ac-treatment-story__photo img {
    height: 100%;
    object-fit: cover;
}

.ac-treatment-story--reverse .ac-treatment-story__photo {
    grid-column: 2;
}

.ac-treatment-story--reverse .ac-treatment-story__copy {
    grid-column: 1;
    grid-row: 1;
}

.ac-treatment-story__copy > h2 {
    margin: 0;
    color: #111410;
    font-family: var(--wp--preset--font-family--display, Iowan Old Style, Baskerville, "Times New Roman", serif);
    font-size: clamp(48px, 6vw, 76px);
    font-weight: 400;
    line-height: 0.95;
}

.ac-treatment-story__copy > .ac-treatment-eyebrow {
    color: #5e6d5f;
}

.ac-treatment-story__lead {
    margin: 28px 0;
    color: rgb(95, 103, 95);
    font-family: var(--wp--preset--font-family--display, Iowan Old Style, Baskerville, "Times New Roman", serif);
    font-size: 18px;
    line-height: 1.62;
}

.ac-treatment-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 32px 0;
    border-block: 1px solid rgba(17, 20, 16, 0.15);
}

.ac-treatment-options > a {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 22px 22px 22px 0;
    color: inherit;
    text-decoration: none;
}

.ac-treatment-options > a + a {
    padding: 22px 0 22px 22px;
    border-inline-start: 1px solid rgba(17, 20, 16, 0.15);
}

.ac-treatment-options > a > span:first-child {
    color: #5e6d5f;
    font-family: var(--wp--preset--font-family--display, Iowan Old Style, Baskerville, "Times New Roman", serif);
}

.ac-treatment-options h3 {
    margin: 18px 0 8px;
    font-size: 25px;
    font-weight: 500;
}

.ac-treatment-options p {
    margin: 0;
    color: rgb(105, 112, 105);
    font-size: 12px;
    line-height: 1.65;
}

.ac-treatment-options strong {
    margin-top: auto;
    padding-top: 18px;
    font-size: 12px;
    font-weight: 500;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.ac-treatment-options > a:hover,
.ac-treatment-options > a:focus-visible {
    padding-inline: 18px;
    background: rgba(255, 255, 255, 0.62);
}

.ac-treatment-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 20px;
    margin-block-start: 0;
}

.ac-treatment-overview .ac-button {
    min-height: 3.125rem;
    padding: 0 1.45rem;
    border-radius: 0;
    background: #111410;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.045em;
}

.ac-treatment-text-link {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    color: inherit;
    font-size: 0.8rem;
    font-weight: 600;
    text-underline-offset: 0.25em;
}

.ac-treatment-story__copy > ul {
    display: grid;
    gap: 0;
    margin: 28px 0 34px;
    border-top: 1px solid rgba(17, 20, 16, 0.15);
    padding: 0;
    list-style: none;
}

.ac-treatment-story__copy > ul li {
    padding-block: 11px;
    border-block-end: 1px solid rgba(17, 20, 16, 0.15);
    color: rgb(105, 112, 105);
    font-size: 12px;
    line-height: 1.65;
}

.ac-treatment-story__copy > ul li::before {
    margin-inline-end: 0.75rem;
    content: none;
}

.ac-treatment-note {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    gap: 30px;
    margin-block: 0 110px;
    padding: 28px;
    border: 1px solid rgba(17, 20, 16, 0.15);
}

.ac-treatment-note strong {
    color: #5e6d5f;
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.ac-treatment-note p {
    margin: 0;
    color: rgb(98, 106, 98);
    font-size: 13px;
    line-height: 1.7;
}

@media (max-width: 760px) {
    .ac-treatment-shell {
        width: calc(100% - 2.25rem);
    }

    .ac-treatment-page-hero {
        min-height: 460px;
        padding: 75px 0 50px;
    }

    .ac-treatment-page-hero h1 {
        font-size: 53px;
    }

    .ac-treatment-page-hero__copy > p:last-child {
        font-size: 18px;
    }

    .ac-treatment-story,
    .ac-treatment-story--reverse {
        grid-template-columns: minmax(0, 1fr);
        gap: 55px;
        padding-block: 80px;
    }

    .ac-treatment-story--reverse .ac-treatment-story__photo,
    .ac-treatment-story--reverse .ac-treatment-story__copy {
        grid-column: 1;
        grid-row: auto;
    }

    .ac-treatment-story--reverse .ac-treatment-story__photo {
        order: 0;
    }

    .ac-treatment-story__photo {
        min-height: 470px;
    }

    .ac-treatment-options {
        grid-template-columns: minmax(0, 1fr);
    }

    .ac-treatment-options > a,
    .ac-treatment-options > a + a {
        padding: 22px 22px 22px 0;
        border-inline-start: 0;
    }

    .ac-treatment-options > a + a {
        border-block-start: 1px solid rgba(17, 20, 16, 0.15);
    }

    .ac-treatment-options > a:hover,
    .ac-treatment-options > a:focus-visible {
        padding-inline: 14px;
    }

    .ac-treatment-note {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.75rem;
    }
}

.ac-showcase-card .ac-card__body > p:last-child {
    margin-bottom: 0;
}

.ac-editor-notice {
    margin: 0;
    padding: 1rem 1.25rem;
    border: 1px dashed var(--ac-bronze);
    border-radius: var(--ac-radius-md);
    background: var(--ac-ivory);
    line-height: 1.6;
}

.ac-editor-block-help {
    margin: 0 0 0.75rem;
    padding: 0.75rem 1rem;
    border-left: 0.25rem solid var(--ac-bronze, #94613c);
    background: var(--ac-ivory, #f7f4ee);
    font-size: 0.875rem;
    line-height: 1.5;
}

.ac-component .ac-card {
    display: flex;
    min-width: 0;
    height: 100%;
    flex-direction: column;
    border: 1px solid color-mix(in srgb, var(--ac-ink) 13%, transparent);
    border-radius: var(--ac-radius-md);
    background: var(--ac-white);
    box-shadow: var(--ac-shadow);
    overflow: hidden;
}

.ac-component .ac-card__media {
    display: grid;
    min-height: 13rem;
    place-items: center;
    padding: 0.75rem;
    background: color-mix(in srgb, var(--ac-mist) 70%, var(--ac-white));
}

.ac-component .ac-card__media img {
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: contain;
}

.ac-component .ac-card__body {
    display: flex;
    min-width: 0;
    height: 100%;
    flex: 1;
    flex-direction: column;
    padding: clamp(1rem, 3vw, 1.5rem);
}

.ac-component .ac-card__body > * {
    max-width: 100%;
}

.ac-component .ac-card h3 {
    font-size: clamp(1.45rem, 2.2vw, 2rem);
}

.ac-component .ac-card h3 a,
.ac-salon-card h3 a {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    color: inherit;
    text-decoration: none;
}

.ac-component .ac-card h3 a:hover,
.ac-salon-card h3 a:hover {
    text-decoration: underline;
    text-decoration-color: var(--ac-bronze);
    text-underline-offset: 0.2em;
}

.ac-component .ac-card__body > p {
    line-height: 1.6;
}

.ac-card__meta {
    color: var(--ac-forest);
    font-size: 0.875rem;
}

.ac-card__meta span,
.ac-inci span {
    font-weight: 700;
}

.ac-inci {
    color: var(--ac-forest);
    font-size: 0.9rem;
    overflow-wrap: anywhere;
}

.ac-compare-choice {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid color-mix(in srgb, var(--ac-ink) 12%, transparent);
}

.ac-compare-choice input {
    width: 1.25rem;
    height: 1.25rem;
    flex: 0 0 auto;
    accent-color: var(--ac-forest);
}

.ac-compare-choice label {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    cursor: pointer;
    font-size: 0.875rem;
    font-weight: 700;
}

.ac-compare-bar {
    position: sticky;
    z-index: 20;
    bottom: 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.5rem;
    padding: 0.9rem 1rem;
    border: 1px solid color-mix(in srgb, var(--ac-white) 16%, transparent);
    border-radius: var(--ac-radius-md);
    background: color-mix(in srgb, var(--ac-ink) 96%, transparent);
    color: var(--ac-white);
    box-shadow: 0 1rem 3rem rgba(23, 27, 24, 0.24);
}

.ac-compare-bar[hidden] {
    display: none;
}

.ac-compare-bar__status {
    margin: 0;
    font-size: 0.9rem;
}

.ac-compare-bar .ac-button {
    border-color: var(--ac-white);
}

.ac-compare-bar .ac-button--quiet {
    color: var(--ac-white);
}

.ac-compare-dialog {
    position: fixed;
    inset: 0;
    width: min(72rem, calc(100% - 2rem));
    max-width: calc(100% - 2rem - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px));
    max-height: min(90vh, 55rem);
    max-height: min(calc(100dvh - 2rem - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)), 55rem);
    margin: auto;
    padding: 0;
    border: 0;
    border-radius: var(--ac-radius-lg);
    background: var(--ac-ivory);
    color: var(--ac-ink);
    box-shadow: 0 2rem 6rem rgba(0, 0, 0, 0.35);
    overflow: auto;
    overscroll-behavior: contain;
}

.ac-compare-dialog::backdrop {
    background: rgba(23, 27, 24, 0.72);
    backdrop-filter: blur(0.2rem);
}

.ac-dialog__frame {
    min-width: 0;
}

.ac-dialog__header {
    position: sticky;
    z-index: 2;
    top: 0;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: clamp(1rem, 3vw, 2rem);
    border-bottom: 1px solid color-mix(in srgb, var(--ac-ink) 15%, transparent);
    background: color-mix(in srgb, var(--ac-ivory) 96%, transparent);
    backdrop-filter: blur(0.75rem);
}

.ac-dialog__header h2 {
    margin: 0;
    font-family: var(--wp--preset--font-family--display, Iowan Old Style, Baskerville, "Times New Roman", serif);
    font-size: clamp(1.75rem, 4vw, 3rem);
    font-weight: 400;
}

.ac-dialog__header p {
    max-width: 48rem;
    margin-bottom: 0;
}

.ac-component .ac-dialog__close {
    width: 2.75rem;
    height: 2.75rem;
    flex: 0 0 auto;
    padding: 0;
    font-size: 1.6rem;
}

.ac-compare-table-wrap {
    padding: clamp(1rem, 3vw, 2rem);
    overflow-x: auto;
}

.ac-compare-table {
    width: 100%;
    min-width: 42rem;
    border-collapse: collapse;
    background: var(--ac-white);
}

.ac-compare-table caption {
    padding: 0.75rem;
    font-weight: 700;
    text-align: left;
}

.ac-compare-table :where(th, td) {
    padding: 0.85rem;
    border: 1px solid color-mix(in srgb, var(--ac-ink) 15%, transparent);
    text-align: left;
    vertical-align: top;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: manual;
}

.ac-compare-table thead th {
    background: var(--ac-mist);
    font-family: var(--wp--preset--font-family--display, Iowan Old Style, Baskerville, "Times New Roman", serif);
    font-size: 1.2rem;
}

.ac-compare-table tbody th {
    width: 10rem;
    background: var(--ac-ivory);
}

.ac-compare-ingredients {
    margin: 0;
}

.ac-compare-inci {
    margin-block-start: 0.75rem;
    border-block-start: 1px solid color-mix(in srgb, var(--ac-ink) 15%, transparent);
}

.ac-compare-inci summary {
    display: flex;
    min-height: 2.75rem;
    align-items: center;
    justify-content: space-between;
    gap: 0.25rem 0.75rem;
    cursor: pointer;
    flex-wrap: wrap;
    list-style: none;
}

.ac-compare-inci summary::-webkit-details-marker {
    display: none;
}

.ac-compare-inci summary:focus-visible {
    outline: 2px solid #94613c;
    outline-offset: 0.125rem;
}

.ac-compare-inci__label {
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.45;
}

.ac-compare-inci__action {
    color: var(--ac-forest);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.45;
    text-transform: uppercase;
    white-space: nowrap;
}

.ac-compare-inci__action::after {
    content: "+";
    margin-inline-start: 0.35rem;
    font-size: 1rem;
    font-weight: 400;
}

.ac-compare-inci__less {
    display: none;
}

.ac-compare-inci[open] .ac-compare-inci__more {
    display: none;
}

.ac-compare-inci[open] .ac-compare-inci__less {
    display: inline;
}

.ac-compare-inci[open] .ac-compare-inci__action::after {
    content: "−";
}

.ac-compare-inci__copy {
    margin: 0;
    padding-block: 0.25rem 0.875rem;
    font-size: 0.75rem;
    line-height: 1.65;
    overflow-wrap: anywhere;
}

.ac-dialog__footer {
    justify-content: flex-end;
    padding: 0 clamp(1rem, 3vw, 2rem) clamp(1rem, 3vw, 2rem);
}

.ac-location-tools {
    display: grid;
    grid-template-columns: auto minmax(12rem, 1fr);
    align-items: center;
    gap: 0.5rem 1rem;
    margin-block: 1rem;
    padding: 1rem;
    border-radius: var(--ac-radius-md);
    background: var(--ac-mist);
}

.ac-location-tools > p {
    margin: 0;
    font-size: 0.875rem;
}

.ac-location-tools .ac-status {
    grid-column: 1 / -1;
}

.ac-salon-layout {
    display: grid;
    grid-template-columns: minmax(16rem, 0.72fr) minmax(0, 1.28fr);
    align-items: start;
    gap: clamp(1.25rem, 4vw, 3rem);
}

.ac-salon-map {
    position: sticky;
    top: 6rem;
    padding: 1rem;
    border: 1px solid color-mix(in srgb, var(--ac-ink) 14%, transparent);
    border-radius: var(--ac-radius-md);
    background: var(--ac-white);
    box-shadow: var(--ac-shadow);
}

.ac-salon-map__header h3 {
    font-size: 1.5rem;
}

.ac-salon-map__header p {
    margin-top: 0.5rem;
    font-size: 0.82rem;
    line-height: 1.5;
}

.ac-map-canvas {
    position: relative;
    width: min(100%, 16rem);
    aspect-ratio: 260 / 620;
    margin-inline: auto;
    border-radius: 45% 45% 38% 38% / 12% 12% 12% 12%;
    background: linear-gradient(180deg, var(--ac-mist), color-mix(in srgb, var(--ac-sand) 35%, var(--ac-white)));
    overflow: visible;
}

.ac-map-canvas svg {
    position: absolute;
    inset: 4%;
    width: 92%;
    height: 92%;
    fill: color-mix(in srgb, var(--ac-sage) 58%, var(--ac-white));
    stroke: var(--ac-forest);
    stroke-width: 2;
}

.ac-component .ac-map-marker {
    position: absolute;
    z-index: 2;
    top: calc(var(--ac-map-y) * 1%);
    left: calc(var(--ac-map-x) * 1%);
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
    place-items: center;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    text-decoration: none;
    transform: translate(-50%, -50%);
}

.ac-component .ac-map-marker:hover {
    background: transparent;
    transform: translate(-50%, -50%) scale(1.08);
}

.ac-component .ac-map-marker:focus-visible,
.ac-component .ac-map-marker.is-hovered {
    background: transparent;
    transform: translate(-50%, -50%) scale(1.08);
}

.ac-component .ac-map-marker:not(.ac-map-marker--city) {
    z-index: 3;
}

.ac-map-marker span {
    display: block;
    width: 0.85rem;
    height: 0.85rem;
    border: 0.16rem solid var(--ac-white);
    border-radius: 50%;
    background: var(--ac-bronze);
    box-shadow: 0 0 0 1px var(--ac-ink), 0 0.25rem 0.6rem rgba(23, 27, 24, 0.35);
    transition: background-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.ac-map-marker:is(:hover, :focus-visible, .is-hovered) span {
    background: var(--ac-forest);
    box-shadow: 0 0 0 0.18rem var(--ac-white), 0 0 0 0.3rem var(--ac-bronze), 0 0.4rem 0.9rem rgba(23, 27, 24, 0.4);
    transform: scale(1.18);
}

.ac-map-marker--city span,
.ac-map-marker--cluster span {
    display: grid;
    width: 1.8rem;
    height: 1.8rem;
    place-items: center;
    color: var(--ac-white);
    font-size: 0.7rem;
    font-weight: 800;
    line-height: 1;
}

.ac-map-marker--cluster span {
    width: 2.1rem;
    height: 2.1rem;
    background: var(--ac-forest);
}

.ac-map-cluster-panels {
    display: grid;
    gap: 0.75rem;
    margin-top: 1rem;
}

.ac-map-cluster-panel {
    min-width: 0;
    max-height: 16rem;
    padding: 0.85rem;
    border: 1px solid color-mix(in srgb, var(--ac-ink) 16%, transparent);
    border-radius: var(--ac-radius-sm);
    background: var(--ac-mist);
    overflow: auto;
    overscroll-behavior: contain;
}

.ac-map-cluster-panel:focus-visible {
    outline: 2px solid var(--ac-bronze);
    outline-offset: 2px;
}

.ac-map-cluster-panel h4 {
    margin: 0 0 0.5rem;
    font-family: var(--wp--preset--font-family--display, Iowan Old Style, Baskerville, "Times New Roman", serif);
    font-size: 1.1rem;
}

.ac-map-cluster-panel ul {
    display: grid;
    gap: 0.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ac-map-cluster-panel a {
    display: flex;
    min-width: 0;
    min-height: 2.75rem;
    align-items: center;
    color: var(--ac-forest);
    font-size: 0.8rem;
    line-height: 1.35;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: manual;
}

.ac-map-cluster-panel a.is-hovered {
    color: var(--ac-bronze);
    font-weight: 700;
}

.ac-map-empty {
    position: absolute;
    z-index: 3;
    inset: 50% auto auto 50%;
    width: 80%;
    margin: 0;
    padding: 0.75rem;
    border-radius: var(--ac-radius-sm);
    background: var(--ac-white);
    font-size: 0.82rem;
    text-align: center;
    transform: translate(-50%, -50%);
}

.ac-salon-list {
    display: grid;
    gap: 1rem;
}

.ac-salon-card {
    min-width: 0;
    padding: clamp(1rem, 3vw, 1.5rem);
    border: 1px solid color-mix(in srgb, var(--ac-ink) 14%, transparent);
    border-radius: var(--ac-radius-md);
    background: var(--ac-white);
    box-shadow: var(--ac-shadow);
    transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.ac-salon-card:is(:hover, :focus-within, .is-hovered) {
    border-color: var(--ac-forest);
    background: color-mix(in srgb, var(--ac-mist) 72%, var(--ac-white));
    box-shadow: inset 0 0 0 1px var(--ac-forest), 0 1rem 2.4rem rgba(23, 27, 24, 0.14);
    transform: translateY(-2px);
}

.ac-salon-card__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.ac-salon-card h3 {
    font-size: clamp(1.35rem, 2vw, 1.8rem);
}

.ac-distance {
    flex: 0 0 auto;
    max-width: min(100%, 17rem);
    margin: 0;
    padding: 0.45rem 0.65rem;
    border-radius: 999px;
    background: var(--ac-mist);
    color: var(--ac-forest);
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: manual;
}

.ac-distance[data-distance-mode="city"] {
    background: var(--ac-sand);
}

.ac-salon-card__address {
    margin-block: 0.75rem;
    color: var(--ac-forest);
}

.ac-salon-card__links {
    align-items: center;
}

.ac-salon-card__links > a:not(.ac-button) {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: manual;
}

.ac-global-search__form {
    grid-template-columns: minmax(min(100%, 20rem), 2fr) minmax(12rem, 0.8fr) auto;
}

.ac-global-search__form .ac-field--search {
    grid-column: auto;
}

.ac-global-search__form input[type="hidden"] {
    display: none;
}

.ac-search-results {
    display: grid;
    gap: 0.75rem;
    margin: 1rem 0 0;
    padding: 0;
    list-style: none;
}

.ac-search-results li {
    min-width: 0;
}

.ac-search-results a {
    display: grid;
    min-height: 2.75rem;
    gap: 0.3rem;
    padding: 1rem;
    border: 1px solid color-mix(in srgb, var(--ac-ink) 14%, transparent);
    border-radius: var(--ac-radius-md);
    background: var(--ac-white);
    color: var(--ac-ink);
    text-decoration: none;
}

.ac-search-results a:hover {
    border-color: var(--ac-bronze);
    box-shadow: var(--ac-shadow);
}

.ac-search-results__type {
    color: var(--ac-bronze);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.ac-search-results strong {
    font-family: var(--wp--preset--font-family--display, Iowan Old Style, Baskerville, "Times New Roman", serif);
    font-size: 1.35rem;
    font-weight: 400;
}

.ac-search-results a > span:last-child:not(.ac-search-results__type) {
    color: var(--ac-forest);
    line-height: 1.5;
}

@media (max-width: 1024px) {
    .ac-product-showcase__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ac-product-showcase--count-1 .ac-product-showcase__grid {
        grid-template-columns: minmax(0, min(100%, 20rem));
    }

    .ac-product-showcase--count-2 .ac-product-showcase__grid {
        grid-template-columns: repeat(2, minmax(0, 20rem));
    }

    .ac-product-showcase--count-3 .ac-product-showcase__grid,
    .ac-product-showcase--count-5 .ac-product-showcase__grid,
    .ac-product-showcase--count-7 .ac-product-showcase__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .ac-product-showcase--count-3 .ac-product-showcase__grid > *,
    .ac-product-showcase--count-5 .ac-product-showcase__grid > *,
    .ac-product-showcase--count-7 .ac-product-showcase__grid > * {
        grid-column: span 2;
    }

    .ac-product-showcase--count-3 .ac-product-showcase__grid > :last-child,
    .ac-product-showcase--count-5 .ac-product-showcase__grid > :last-child,
    .ac-product-showcase--count-7 .ac-product-showcase__grid > :last-child {
        grid-column: 2 / span 2;
    }

    .ac-product-showcase--count-5 .ac-product-showcase__grid > :nth-child(4),
    .ac-product-showcase--count-7 .ac-product-showcase__grid > :nth-child(5) {
        grid-column: span 2;
    }

    .ac-product-showcase--count-6 .ac-product-showcase__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 782px) {
    .ac-component__header,
    .ac-salon-layout,
    .ac-global-search__form {
        grid-template-columns: minmax(0, 1fr);
    }

    .ac-field--search {
        grid-column: auto;
    }

    .ac-component .ac-card.ac-treatment-card--root {
        grid-template-columns: minmax(0, 1fr);
    }

    .ac-treatment-children {
        margin-inline-start: 0;
    }

    .ac-salon-map {
        position: relative;
        top: auto;
        order: 1;
    }

    .ac-salon-list {
        order: 2;
    }

    .ac-map-canvas {
        width: min(100%, 13rem);
        max-height: 30rem;
    }

    .ac-compare-bar {
        align-items: stretch;
        flex-direction: column;
    }

    .ac-compare-bar__actions > * {
        flex: 1;
    }
}

@media (max-width: 520px) {
    .ac-product-showcase .ac-product-showcase__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .ac-product-showcase.ac-product-showcase .ac-product-showcase__grid > * {
        grid-column: 1 / -1;
    }

    .ac-filter__actions,
    .ac-compare-bar__actions,
    .ac-dialog__footer {
        flex-direction: column;
    }

    .ac-filter__actions > *,
    .ac-compare-bar__actions > *,
    .ac-dialog__footer > * {
        width: 100%;
    }

    .ac-location-tools {
        grid-template-columns: minmax(0, 1fr);
    }

    .ac-location-tools .ac-status {
        grid-column: auto;
    }

    .ac-salon-card__heading {
        flex-direction: column;
    }

    .ac-pagination {
        align-items: stretch;
        flex-direction: column;
    }

    .ac-pagination > * {
        width: 100%;
        justify-content: center;
        text-align: center;
    }
}

/* Product archive: exact editorial layout from the approved Sites reference. */
.ac-product-library--archive {
    width: 100vw;
    max-width: none;
    margin: 0 calc(50% - 50vw);
    background: #f7f6f1;
    color: #111410;
}

.ac-product-shell {
    width: min(calc(100% - 4rem), 77.5rem);
    margin-inline: auto;
}

.ac-product-page-hero {
    position: relative;
    isolation: isolate;
    display: grid;
    min-height: 32.5rem;
    align-items: end;
    padding-block: 5.625rem 4.625rem;
    overflow: hidden;
    background: #1c261e;
    color: #fff;
}

.ac-product-page-hero__media,
.ac-product-page-hero__media::after {
    position: absolute;
    z-index: -2;
    inset: 0;
}

.ac-product-page-hero__media::after {
    z-index: 1;
    background: linear-gradient(90deg, rgba(18, 28, 20, 0.92), rgba(18, 28, 20, 0.35));
    content: "";
}

.ac-product-page-hero__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
}

.ac-product-page-hero__copy {
    position: relative;
    z-index: 2;
}

.ac-product-eyebrow {
    margin: 0 0 1.5rem;
    color: #c1cfc0;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.24em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ac-product-page-hero h1 {
    max-width: 56.25rem;
    margin: 0;
    color: #fff;
    font-family: var(--wp--preset--font-family--display, Iowan Old Style, Baskerville, "Times New Roman", serif);
    font-size: clamp(55px, 7vw, 94px);
    font-weight: 400;
    letter-spacing: -0.045em;
    line-height: 0.94;
}

.ac-product-page-hero h1 em {
    color: #c7d2c5;
    font-weight: inherit;
}

.ac-product-page-hero__copy > p:last-child {
    max-width: 40.625rem;
    margin: 1.75rem 0 0;
    color: rgba(255, 255, 255, 0.76);
    font-family: var(--wp--preset--font-family--display, Iowan Old Style, Baskerville, "Times New Roman", serif);
    font-size: 1.3125rem;
    line-height: 1.55;
}

.ac-product-library__content {
    padding-block: 5rem 6.875rem;
}

.ac-product-filter {
    margin: 0;
}

.ac-product-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 2.5rem;
    padding-block-end: 1.75rem;
}

.ac-product-search {
    display: block;
    min-width: 0;
}

.ac-product-search > span,
.ac-product-need > span {
    display: block;
    margin-block-end: 0.5625rem;
    color: #5e6d5f;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    line-height: 1.5;
    text-transform: uppercase;
}

.ac-product-search input {
    display: block;
    width: min(100%, 45rem);
    min-height: 4.5rem;
    margin: 0;
    padding: 0.3125rem 0 0.8125rem;
    border: 0;
    border-block-end: 1px solid rgba(17, 20, 16, 0.48);
    border-radius: 0;
    outline-offset: 0.25rem;
    background: transparent;
    color: #111410;
    font-family: var(--wp--preset--font-family--display, Iowan Old Style, Baskerville, "Times New Roman", serif);
    font-size: clamp(24px, 3vw, 39px);
    font-weight: 400;
    line-height: 1.5;
}

.ac-product-search input::placeholder {
    color: #8b8f87;
    opacity: 1;
}

.ac-product-status {
    margin: 0 0 0.875rem;
    color: #596159;
    font-size: 0.75rem;
    line-height: 1.5;
    white-space: nowrap;
}

.ac-product-status strong {
    color: #111410;
}

.ac-product-filterbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 13.75rem;
    align-items: start;
    gap: 1.5rem;
}

.ac-product-series {
    display: flex;
    min-width: 0;
    gap: 0.5rem;
    padding-block: 1.5rem 2.625rem;
    overflow-x: auto;
    scrollbar-width: thin;
}

.ac-product-library--archive .ac-product-series button {
    min-width: 0;
    min-height: 2.75rem;
    flex: 0 0 auto;
    padding: 0.5625rem 0.8125rem;
    border: 1px solid rgba(17, 20, 16, 0.15);
    border-radius: 0;
    background: transparent;
    color: #111410;
    box-shadow: none;
    font-size: 0.6875rem;
    font-weight: 400;
    letter-spacing: 0.08em;
    line-height: 1.5;
    white-space: nowrap;
    transform: none;
}

.ac-product-library--archive .ac-product-series button:is(:hover, :focus-visible, .is-active),
.ac-product-library--archive .ac-product-series button[aria-pressed="true"] {
    border-color: #111410;
    background: #111410;
    color: #fff;
    box-shadow: inset 0 -3px 0 #b07b50;
    transform: none;
}

.ac-product-need {
    display: block;
    width: 13.75rem;
    margin-block-start: 1.5rem;
}

.ac-product-need > span {
    margin-block-end: 0.4375rem;
    letter-spacing: 0.14em;
}

.ac-product-need select {
    width: 100%;
    min-height: 2.75rem;
    padding: 0 2.125rem 0 0.75rem;
    border: 1px solid rgba(17, 20, 16, 0.15);
    border-radius: 0;
    background-color: #fff;
    color: #111410;
    font-size: 0.75rem;
    font-weight: 400;
}

.ac-product-reset {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    margin: -2rem 0 2rem;
    color: #111410;
    font-size: 0.75rem;
    text-underline-offset: 0.2em;
}

.ac-product-library--archive .ac-product-filter__submit {
    min-height: 2.75rem;
    margin-block-end: 2rem;
    padding: 0 1rem;
    border-radius: 0;
}

.ac-product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 3.25rem 1.125rem;
}

.ac-product-library--archive .ac-card.ac-product-card {
    display: flex;
    height: auto;
    min-height: 0;
    flex-direction: column;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
}

.ac-product-library--archive .ac-product-card__image {
    position: relative;
    display: block;
    width: 100%;
    min-height: 0;
    flex: none;
    aspect-ratio: 1 / 1.08;
    padding: 1.125rem;
    border: 0;
    border-radius: 0;
    background: #e8ebe4;
    box-shadow: none;
    overflow: hidden;
    cursor: pointer;
}

.ac-component button.ac-product-card__image {
    min-width: 0;
    min-height: 0;
    padding: 1.125rem;
    border: 0;
    background: #e8ebe4;
}

.ac-product-library--archive .ac-product-card__image img {
    position: absolute;
    inset: 1.125rem;
    display: block;
    width: calc(100% - 2.25rem);
    height: calc(100% - 2.25rem);
    max-width: none;
    max-height: none;
    aspect-ratio: auto;
    object-fit: contain;
    transition: transform 450ms ease;
}

.ac-product-library--archive .ac-product-card__image:hover img,
.ac-product-library--archive .ac-product-card__image:focus-visible img {
    transform: scale(1.025);
}

.ac-product-card__image-fallback {
    position: absolute;
    inset: 1.125rem;
    display: grid;
    place-items: center;
    padding: 1rem;
    color: #526154;
    font-family: var(--wp--preset--font-family--display, "Iowan Old Style", Baskerville, serif);
    font-size: 1.375rem;
    line-height: 1.2;
    text-align: center;
}

.ac-product-quick-view-modal .ac-product-quick-view__compare {
    min-width: 0;
    min-height: 3.125rem;
	padding: 0 1.4375rem;
	border: 1px solid #111410;
    border-radius: 0;
    background: transparent;
    color: #111410;
    cursor: pointer;
}

.ac-product-library--archive .ac-product-series button {
    transition: opacity 160ms ease;
}

.ac-product-library--archive .ac-product-series button:hover {
    opacity: 0.68;
}

.ac-product-library--archive .ac-product-card__body {
    display: block;
    min-height: 0;
    height: auto;
    flex: none;
    padding: 0;
}

.ac-product-library--archive .ac-product-card .ac-card__eyebrow {
    margin: 1.0625rem 0 0.4375rem;
    color: #5e6d5f;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    line-height: 1.5;
    text-transform: uppercase;
}

.ac-product-library--archive .ac-product-card__title {
    min-height: 3rem;
    margin: 0;
    color: #111410;
    font-family: var(--wp--preset--font-family--display, Iowan Old Style, Baskerville, "Times New Roman", serif);
    font-size: 1.3125rem;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.08;
}

.ac-product-library--archive .ac-product-card__title a {
    display: inline;
    min-height: 0;
    color: inherit;
    text-decoration: none;
}

.ac-product-library--archive .ac-product-card__title a:hover {
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.ac-product-card__tags {
    display: flex;
    min-height: 1.5rem;
    flex-wrap: nowrap;
    gap: 0.375rem;
    margin: 0.625rem 0 0.875rem;
    padding: 0;
    list-style: none;
    overflow: hidden;
}

.ac-product-card__tags li {
    flex: 0 0 auto;
    padding: 0.3125rem 0.5rem;
    border: 1px solid rgba(17, 20, 16, 0.15);
    border-radius: 999px;
    color: #536055;
    font-size: 0.6875rem;
    letter-spacing: 0.04em;
    line-height: 1;
}

.ac-product-library--archive .ac-product-card__body > p.ac-product-card__description {
    display: -webkit-box;
    min-height: 3.375rem;
    max-height: none;
    margin: 0.6875rem 0 1.0625rem;
    color: #6b736b;
    font-size: 0.75rem;
    line-height: 1.7;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.ac-product-card__actions {
    display: flex;
    min-height: 2.75rem;
    align-items: center;
    justify-content: space-between;
    gap: 0.625rem;
    margin-block-start: 0;
}

.ac-product-library--archive .ac-compare-choice {
    position: relative;
    display: block;
    margin: 0;
    padding: 0;
    border: 0;
}

.ac-product-library--archive .ac-compare-choice input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.ac-product-library--archive .ac-compare-choice label {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    padding: 0 0.75rem;
    border: 1px solid rgba(17, 20, 16, 0.15);
    border-radius: 0;
    background: transparent;
    color: #465347;
    cursor: pointer;
    font-size: 0.6875rem;
    font-weight: 600;
    line-height: 1.5;
}

.ac-product-library--archive .ac-compare-choice input:checked + label {
    border-color: #111410;
    background: #111410;
    color: #fff;
}

.ac-product-library--archive .ac-compare-choice input:focus-visible + label {
    outline: 2px solid #fff;
    outline-offset: 2px;
    box-shadow: 0 0 0 5px #94613c;
}

.ac-product-library--archive .ac-product-card__read {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    margin-inline-start: auto;
    color: #111410;
    font-size: 0.75rem;
    line-height: 1.5;
    text-decoration: none;
}

.ac-product-card__read b {
    margin-inline-start: 0.5rem;
    font-weight: 400;
}

.ac-product-card__read:hover {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.ac-product-library--archive .ac-pagination {
    margin: 3.625rem 0 0;
    gap: 0.75rem;
}

.ac-product-library--archive .ac-pagination a.ac-pagination__next {
    min-height: 3.125rem;
    gap: 1.5rem;
    padding: 0 1.4375rem;
    border: 1px solid #111410;
    background: transparent;
    color: #111410;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.045em;
    line-height: 1.5;
}

.ac-product-library--archive .ac-pagination__next span {
    color: #747c74;
}

.ac-product-library--archive .ac-pagination .ac-button,
.ac-product-library--archive .ac-compare-bar .ac-button,
.ac-product-library--archive .ac-compare-dialog .ac-button,
.ac-product-library--archive .ac-dialog__close {
    border-radius: 0;
}

.ac-product-library--archive .ac-compare-bar,
.ac-product-library--archive .ac-compare-dialog {
    border-radius: 0;
}

.ac-product-advice {
    padding-block: 4.0625rem;
    background: #172019;
    color: #fff;
}

.ac-product-advice__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2.5rem;
}

.ac-product-advice .ac-product-eyebrow {
    margin-block-end: 1.5rem;
    color: #bac5b8;
    font-size: 0.6875rem;
}

.ac-product-advice h2 {
    margin: 0;
    color: #fff;
    font-family: var(--wp--preset--font-family--display, Iowan Old Style, Baskerville, "Times New Roman", serif);
    font-size: clamp(2.125rem, 4vw, 3.375rem);
    font-weight: 400;
    letter-spacing: normal;
    line-height: 1.5;
}

.ac-component .ac-product-advice__button {
    display: inline-flex;
    min-width: 2.75rem;
    min-height: 3.125rem;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    padding: 0 1.4375rem;
    border: 1px solid #111410;
    background: #f7f6f1;
    color: #111410;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.045em;
    line-height: 1.5;
    text-decoration: none;
}

.ac-product-crawl-index {
    padding-block: 5.3125rem 6.875rem;
}

.ac-product-crawl-index details {
    border-block: 1px solid rgba(17, 20, 16, 0.15);
}

.ac-product-crawl-index summary {
    display: flex;
    min-height: 4rem;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    color: #111410;
    cursor: pointer;
    font-family: var(--wp--preset--font-family--display, Iowan Old Style, Baskerville, "Times New Roman", serif);
    font-size: 1.4375rem;
    line-height: 1.5;
    list-style: none;
}

.ac-product-crawl-index summary::-webkit-details-marker {
    display: none;
}

.ac-product-crawl-index summary span {
    display: grid;
    width: 2.125rem;
    height: 2.125rem;
    border: 1px solid rgba(17, 20, 16, 0.15);
    border-radius: 50%;
    font-family: var(--wp--preset--font-family--sans, "Avenir Next", "Helvetica Neue", Helvetica, Arial, sans-serif);
    font-size: 0.6875rem;
    place-items: center;
}

.ac-product-crawl-index details > div {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    padding-block-end: 2.125rem;
    background: rgba(17, 20, 16, 0.15);
}

.ac-product-crawl-index details > div a {
    display: flex;
    min-height: 3rem;
    align-items: center;
    padding: 0.5625rem 0.8125rem;
    background: #f7f6f1;
    color: #111410;
    font-size: 0.75rem;
    line-height: 1.4;
    text-decoration: none;
}

.ac-product-crawl-index details > div a:is(:hover, :focus-visible) {
    background: #e6ebe2;
}

.ac-product-archive-main + .wp-block-template-part {
    margin-block-start: 0 !important;
}

@media (max-width: 1080px) {
    .ac-product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ac-product-filterbar {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .ac-product-need {
        width: 17.5rem;
        margin: 0 0 2.125rem;
    }
}

/* Keep the desktop filter alignment through the tablet layout, as in Sites. */
@media (min-width: 761px) and (max-width: 1080px) {
    .ac-product-filterbar {
        grid-template-columns: minmax(0, 1fr) 13.75rem;
        gap: 1.5rem;
    }

    .ac-product-need {
        width: 13.75rem;
        margin: 1.5rem 0 0;
    }
}

@media (max-width: 760px) {
    .ac-product-shell {
        width: calc(100% - 2.25rem);
    }

    .ac-product-page-hero {
        min-height: 28.75rem;
        padding-block: 4.6875rem 3.125rem;
    }

    .ac-product-page-hero__media::after {
        background: linear-gradient(90deg, rgba(18, 28, 20, 0.92), rgba(18, 28, 20, 0.35));
    }

    .ac-product-page-hero h1 {
        font-size: 3.3125rem;
    }

    .ac-product-page-hero__copy > p:last-child {
        font-size: 1.125rem;
    }

    .ac-product-library__content {
        padding-block: 3.625rem 5rem;
    }

    .ac-product-toolbar {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.625rem;
        padding-block-end: 1.75rem;
        border-block-end: 1px solid rgba(17, 20, 16, 0.48);
    }

    .ac-product-library--archive .ac-product-search input {
        width: 100%;
        min-height: 3.375rem;
        border-block-end: 0;
        font-size: 1.5rem;
    }

    .ac-product-status {
        margin: 0;
    }

    .ac-product-series {
        padding-block: 1.5rem 2.125rem;
    }

    .ac-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 2.375rem 0.625rem;
    }

    .ac-product-advice__inner {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 820px) {
    .ac-product-crawl-index details > div {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .ac-product-crawl-index {
        padding-block: 4rem 5.125rem;
    }

    .ac-product-crawl-index details > div {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 430px) {
    .ac-product-grid {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 2.75rem;
    }

    .ac-product-library--archive .ac-product-card__image {
        padding: 1.125rem;
    }

    .ac-product-library--archive .ac-product-card__title,
    .ac-product-library--archive .ac-product-card__body > p.ac-product-card__description {
        min-height: 0;
    }

    .ac-product-library--archive .ac-product-card__actions {
        min-height: 0;
        align-items: stretch;
        flex-direction: column;
        gap: .625rem;
    }

    .ac-product-library--archive .ac-compare-choice,
    .ac-product-library--archive .ac-compare-choice label,
    .ac-product-library--archive .ac-product-card__read {
        width: 100%;
    }

    .ac-product-library--archive .ac-compare-choice label,
    .ac-product-library--archive .ac-product-card__read {
        justify-content: center;
    }

    .ac-product-library--archive .ac-product-card__read {
        margin-inline-start: 0;
    }
}

/* Beautypedia archive: exact editorial layout from the approved Sites reference. */
.ac-beautypedia-archive-main {
    margin-block: 0;
    padding: 0;
}

.ac-beautypedia--archive {
    /* The archive sits inside WordPress's padded main group. Break only this
       full-bleed editorial surface back out to the viewport, matching the
       source page's 64px desktop / 36px mobile outer gutters. */
    width: 100vw;
    max-width: none;
    margin-block: 0;
    margin-inline: calc(50% - 50vw);
    color: #111410;
    font-family: var(--wp--preset--font-family--sans, "Avenir Next", "Helvetica Neue", Helvetica, Arial, sans-serif);
}

.ac-beautypedia-shell {
    width: min(1240px, calc(100% - 64px));
    margin-inline: auto;
}

.ac-beautypedia-page-hero {
    display: grid;
    min-height: 520px;
    align-items: end;
    padding-block: 90px 74px;
    background: radial-gradient(circle at 78% 15%, #667b69, transparent 34%), #172019;
    color: #fff;
    overflow: hidden;
}

.ac-beautypedia-eyebrow {
    margin: 0 0 24px;
    color: #5e6d5f;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.24em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ac-beautypedia-page-hero .ac-beautypedia-eyebrow {
    color: #c1cfc0;
}

.ac-beautypedia-page-hero h1 {
    max-width: 900px;
    margin: 0;
    color: #fff;
    font-family: var(--wp--preset--font-family--display, "Iowan Old Style", Baskerville, "Times New Roman", serif);
    font-size: clamp(55px, 7vw, 94px);
    font-weight: 400;
    letter-spacing: -0.045em;
    line-height: 0.94;
}

.ac-beautypedia-page-hero h1 em {
    color: #c7d2c5;
    font-weight: 400;
}

.ac-beautypedia-page-hero__copy > p:last-child {
    max-width: 650px;
    margin: 28px 0 0;
    color: rgba(255, 255, 255, 0.76);
    font-family: var(--wp--preset--font-family--display, "Iowan Old Style", Baskerville, "Times New Roman", serif);
    font-size: 21px;
    line-height: 1.55;
}

.ac-beautypedia-library {
    padding-block: 80px 110px;
}

.ac-beautypedia-library__heading {
    max-width: 760px;
    margin-block-end: 42px;
}

.ac-beautypedia-library__heading h2 {
    max-width: 720px;
    margin: 10px 0 16px;
    color: #111410;
    font-family: var(--wp--preset--font-family--display, "Iowan Old Style", Baskerville, "Times New Roman", serif);
    font-size: 58px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.02;
}

.ac-beautypedia-library__heading > p:last-child {
    max-width: 650px;
    margin: 0;
    color: #626a62;
    font-size: 13px;
    line-height: 1.7;
}

.ac-beautypedia-form {
    margin: 0;
}

.ac-beautypedia-form > input[type="hidden"] {
    display: none;
}

.ac-beautypedia-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 40px;
    padding-block-end: 28px;
    border-block-end: 1px solid #111410;
}

.ac-beautypedia-search {
    display: block;
    min-width: 0;
}

.ac-beautypedia-search > span {
    display: block;
    margin-block-end: 9px;
    color: #5e6d5f;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.16em;
    line-height: 1.5;
    text-transform: uppercase;
}

.ac-beautypedia-search input {
    width: min(720px, 100%);
    height: auto;
    min-height: 0;
    padding: 5px 0 13px;
    border: 0;
    border-radius: 0;
    outline-offset: 4px;
    background: transparent;
    color: #111410;
    font-family: var(--wp--preset--font-family--display, "Iowan Old Style", Baskerville, "Times New Roman", serif);
    font-size: 39px;
    font-weight: 400;
    line-height: 1.5;
    appearance: none;
}

.ac-beautypedia-search input::placeholder {
    color: #8b8f87;
    opacity: 1;
}

.ac-beautypedia-toolbar > p {
    margin: 0 0 14px;
    color: #596159;
    font-size: 12px;
    line-height: 1.5;
    white-space: nowrap;
}

.ac-beautypedia-toolbar > p strong {
    color: #111410;
}

.ac-beautypedia-filter {
    display: flex;
    min-width: 0;
    gap: 8px;
    padding-block: 24px 42px;
    overflow-x: auto;
    scrollbar-width: thin;
}

.ac-beautypedia--archive .ac-beautypedia-filter button {
    display: block;
    min-width: 0;
    min-height: 44px;
    max-width: none;
    flex: 0 0 auto;
    padding: 9px 13px;
    border: 1px solid rgba(17, 20, 16, 0.15);
    border-radius: 0;
    background: transparent;
    color: #111410;
    box-shadow: none;
    cursor: pointer;
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.08em;
    line-height: 1.5;
    white-space: nowrap;
    transform: none;
}

.ac-beautypedia--archive .ac-beautypedia-filter button:is(:hover, .is-active),
.ac-beautypedia--archive .ac-beautypedia-filter button[aria-pressed="true"] {
    border-color: #111410;
    background: #111410;
    color: #fff;
    box-shadow: inset 0 -3px 0 #b07b50;
    transform: none;
}

.ac-beautypedia--archive .ac-beautypedia-filter button:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
    box-shadow: 0 0 0 5px #94613c;
}

.ac-beautypedia--archive .ac-beautypedia-filter button[aria-pressed="true"]:focus-visible {
    box-shadow: inset 0 -3px 0 #b07b50, 0 0 0 5px #94613c;
}

.ac-beautypedia-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 1px;
    border: 1px solid rgba(17, 20, 16, 0.15);
    background: rgba(17, 20, 16, 0.15);
}

.ac-beautypedia-card {
    min-width: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
}

.ac-beautypedia-card summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    min-height: 94px;
    align-items: center;
    gap: 20px;
    padding: 18px 22px;
    color: #111410;
    cursor: pointer;
    list-style: none;
}

.ac-beautypedia-card summary::-webkit-details-marker {
    display: none;
}

.ac-beautypedia-card summary:focus-visible {
    outline: 2px solid #94613c;
    outline-offset: -4px;
}

.ac-beautypedia-card summary > span {
    min-width: 0;
    color: #111410;
    font-family: var(--wp--preset--font-family--display, "Iowan Old Style", Baskerville, "Times New Roman", serif);
    font-size: 25px;
    font-weight: 400;
    line-height: 1.5;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: manual;
}

.ac-beautypedia-card summary small {
    color: #5e6d5f;
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.12em;
    line-height: 1.5;
    text-transform: uppercase;
}

.ac-beautypedia-card summary b {
    color: #111410;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.5;
    transition: transform 160ms ease;
}

.ac-beautypedia-card[open] summary b {
    transform: rotate(45deg);
}

.ac-beautypedia-card > div {
    padding: 0 22px 24px;
}

.ac-beautypedia-card > div > p {
    max-width: 560px;
    margin: 9px 0 0;
    color: #626a62;
    font-size: 13px;
    line-height: 1.7;
}

.ac-beautypedia-card > div > .ac-beautypedia-card__inci {
    color: #5e6d5f;
    font-size: 11px;
    letter-spacing: 0.12em;
    line-height: 1.7;
    text-transform: uppercase;
}

.ac-beautypedia-card > div > a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    margin-block-start: 14px;
    color: #244b36;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.5;
    text-decoration: underline;
}

.ac-beautypedia--archive .ac-pagination {
    margin-block: 52px 0;
}

.ac-beautypedia--archive .ac-pagination :where(.ac-button, .ac-pagination__previous) {
    border-radius: 0;
}

.ac-beautypedia-empty {
    margin: 0;
    border-radius: 0;
}

.ac-beautypedia-disclaimer {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    gap: 30px;
    margin-block-start: 60px;
    padding: 28px;
    border: 1px solid rgba(17, 20, 16, 0.15);
}

.ac-beautypedia-disclaimer strong {
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    line-height: 1.5;
    text-transform: uppercase;
}

.ac-beautypedia-disclaimer p {
    margin: 0;
    color: #626a62;
    font-size: 13px;
    line-height: 1.7;
}

/* The Sites reference keeps the library heading at its compact tablet size
   between the desktop and stacked-mobile layouts.  Without this narrow
   breakpoint WordPress retained the 58px desktop heading at 768px, adding a
   third line and displacing the entire library below it. */
@media (min-width: 761px) and (max-width: 820px) {
    .ac-beautypedia-library__heading h2 {
        font-size: 38.4px;
    }
}

@media (max-width: 760px) {
    .ac-beautypedia-shell {
        width: calc(100% - 36px);
    }

    .ac-beautypedia-page-hero {
        min-height: 460px;
        padding-block: 75px 50px;
    }

    .ac-beautypedia-page-hero h1 {
        font-size: 53px;
    }

    .ac-beautypedia-page-hero__copy > p:last-child {
        font-size: 18px;
    }

    .ac-beautypedia-library {
        padding-block: 58px 80px;
    }

    .ac-beautypedia-library__heading h2 {
        font-size: 36px;
    }

    .ac-beautypedia-toolbar {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    .ac-beautypedia-search input {
        width: 100%;
        min-height: 44px;
        font-size: 24px;
    }

    .ac-beautypedia-toolbar > p {
        margin: 0;
    }

    .ac-beautypedia-filter {
        padding-block-end: 34px;
    }

    .ac-beautypedia-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .ac-beautypedia-card summary {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .ac-beautypedia-card summary small {
        display: none;
    }

    .ac-beautypedia-disclaimer {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }
}

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

    .ac-button:hover,
    .ac-component button:hover,
    .ac-component a.ac-button:hover {
        transform: none;
    }

    .ac-component .ac-map-marker:hover {
        transform: translate(-50%, -50%);
    }

    .ac-component .ac-map-marker:focus-visible,
    .ac-component .ac-map-marker.is-hovered {
        transform: translate(-50%, -50%);
    }

    .ac-salon-card:is(:hover, :focus-within, .is-hovered) {
        transform: none;
    }
}

@media (forced-colors: active) {
    .ac-component :where(.ac-card, .ac-salon-card, .ac-filter, .ac-salon-map, .ac-search-results a) {
        border: 1px solid CanvasText;
    }

    .ac-map-marker span {
        border: 2px solid Canvas;
        background: CanvasText;
    }

    .ac-treatment-children {
        border-inline-start-color: CanvasText;
    }
}

/* Knowledge hub: parity with the approved Sites reference. */
.ac-knowledge-hub-main {
    width: 100%;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ac-knowledge-hub {
    --ac-knowledge-ink: #152018;
    --ac-knowledge-green: #314637;
    --ac-knowledge-sage: #879889;
    --ac-knowledge-paper: #f7f6f1;
    --ac-knowledge-line: rgb(21 32 24 / 16%);
    --ac-knowledge-serif: var(--wp--preset--font-family--display, "Iowan Old Style", Baskerville, "Times New Roman", serif);
    --ac-knowledge-sans: var(--wp--preset--font-family--sans, "Avenir Next", "Helvetica Neue", Helvetica, Arial, sans-serif);
    width: 100%;
    max-width: none;
    margin: 0;
    background: var(--ac-knowledge-paper);
    color: var(--ac-knowledge-ink);
    font-family: var(--ac-knowledge-sans);
    font-size: 16px;
    line-height: 1.5;
}

.ac-knowledge-hub,
.ac-knowledge-hub *,
.ac-knowledge-hub *::before,
.ac-knowledge-hub *::after {
    box-sizing: border-box;
}

.ac-knowledge-hub :where(h1, h2, h3, p, dl, dd, ol) {
    margin-block: 0;
}

.ac-knowledge-hub a {
    color: inherit;
    text-decoration: none;
}

.ac-knowledge-hub :where(a:focus-visible, summary:focus-visible) {
    outline: 2px solid currentColor;
    outline-offset: 4px;
}

.ac-knowledge-shell,
.ac-knowledge-pathways,
.ac-knowledge-closing {
    width: min(1240px, calc(100% - 64px));
    margin-inline: auto;
}

.ac-knowledge-eyebrow {
    margin: 0 0 20px;
    color: #667b69;
    font-size: 10px;
    font-weight: 650;
    letter-spacing: 0.22em;
    line-height: 1.3;
    text-transform: uppercase;
}

.ac-knowledge-eyebrow--light {
    color: #bdcaba;
}

.ac-knowledge-hero {
    overflow: hidden;
    background:
        radial-gradient(circle at 82% 16%, rgb(131 154 132 / 26%), transparent 26%),
        linear-gradient(135deg, #132019 0%, #1d3022 52%, #111a15 100%);
    color: #f7f6f1;
}

.ac-knowledge-hero__inner {
    padding: 28px 0 58px;
}

.ac-knowledge-breadcrumb {
    display: flex;
    min-height: 44px;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 64px;
    color: rgb(255 255 255 / 66%);
    font-size: 12px;
}

.ac-knowledge-breadcrumb a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    text-decoration: underline transparent;
    text-underline-offset: 5px;
}

.ac-knowledge-breadcrumb a:hover {
    text-decoration-color: currentColor;
}

.ac-knowledge-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.55fr);
    align-items: end;
    gap: clamp(48px, 8vw, 130px);
}

.ac-knowledge-hero h1 {
    max-width: 880px;
    margin: 0;
    color: #f7f6f1;
    font-family: var(--ac-knowledge-serif);
    font-size: clamp(54px, 7.2vw, 108px);
    font-weight: 400;
    letter-spacing: -0.052em;
    line-height: 0.92;
}

.ac-knowledge-hero h1 em {
    color: #bdcaba;
    font-weight: 400;
}

.ac-knowledge-hero__aside {
    padding: 0 0 8px 28px;
    border-left: 1px solid rgb(255 255 255 / 20%);
}

.ac-knowledge-hero__aside p {
    margin: 0 0 27px;
    color: rgb(255 255 255 / 74%);
    font-family: var(--ac-knowledge-serif);
    font-size: 19px;
    line-height: 1.58;
}

.ac-knowledge-hero__aside a,
.ac-knowledge-arrow-link {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding-bottom: 3px;
    border-bottom: 1px solid;
    font-size: 12px;
    font-weight: 650;
}

.ac-knowledge-facts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    max-width: 780px;
    margin: 88px 0 0;
    padding: 0;
    border-top: 1px solid rgb(255 255 255 / 18%);
}

.ac-knowledge-facts div {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: baseline;
    gap: 13px;
    padding: 20px 20px 0 0;
}

.ac-knowledge-facts div + div {
    padding-left: 24px;
    border-left: 1px solid rgb(255 255 255 / 18%);
}

.ac-knowledge-facts dt {
    color: #bdcaba;
    font-family: var(--ac-knowledge-serif);
    font-size: 27px;
}

.ac-knowledge-facts dd {
    color: rgb(255 255 255 / 66%);
    font-size: 11px;
}

.ac-knowledge-intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 0.78fr);
    align-items: start;
    gap: clamp(60px, 10vw, 145px);
    width: min(1120px, calc(100% - 64px));
    margin-inline: auto;
    padding: 132px 0;
}

.ac-knowledge-intro h2,
.ac-knowledge-section-heading h2,
.ac-knowledge-evergreen__heading h2,
.ac-knowledge-pathways h2,
.ac-knowledge-closing h2 {
    margin: 0;
    font-family: var(--ac-knowledge-serif);
    font-size: clamp(42px, 5vw, 70px);
    font-weight: 400;
    letter-spacing: -0.035em;
    line-height: 0.98;
}

.ac-knowledge-intro h2 em,
.ac-knowledge-evergreen__heading h2 em,
.ac-knowledge-pathways h2 em {
    color: #718373;
    font-weight: 400;
}

.ac-knowledge-intro__copy > p {
    margin: 0 0 22px;
    color: #566158;
    font-family: var(--ac-knowledge-serif);
    font-size: 19px;
    line-height: 1.68;
}

.ac-knowledge-intro__copy aside {
    display: grid;
    gap: 8px;
    margin-top: 38px;
    padding: 22px;
    border: 1px solid var(--ac-knowledge-line);
    background: rgb(255 255 255 / 54%);
}

.ac-knowledge-intro__copy aside strong {
    font-size: 10px;
    letter-spacing: 0.17em;
    text-transform: uppercase;
}

.ac-knowledge-intro__copy aside span {
    color: #606c62;
    font-size: 13px;
    line-height: 1.65;
}

.ac-knowledge-seasons {
    padding: 124px max(32px, calc((100vw - 1240px) / 2));
    background: #17231b;
    color: #f8f6f0;
}

.ac-knowledge-section-heading,
.ac-knowledge-evergreen__heading {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(260px, 0.45fr);
    align-items: end;
    gap: 70px;
    margin-bottom: 62px;
}

.ac-knowledge-section-heading h2 {
    color: #f8f6f0;
}

.ac-knowledge-section-heading h2 em {
    color: #bdcaba;
    font-weight: 400;
}

.ac-knowledge-section-heading > p {
    margin: 0 0 5px;
    padding-left: 24px;
    border-left: 1px solid rgb(255 255 255 / 20%);
    color: rgb(255 255 255 / 67%);
    font-family: var(--ac-knowledge-serif);
    font-size: 17px;
    line-height: 1.55;
}

.ac-knowledge-season-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.ac-knowledge-season-card {
    --ac-season-bg: #dfe8da;
    --ac-season-accent: #60735e;
    --ac-season-deep: #1e3023;
    display: grid;
    grid-template-columns: minmax(180px, 0.84fr) minmax(0, 1.16fr);
    min-height: 470px;
    background: var(--ac-season-bg);
    color: var(--ac-knowledge-ink);
}

.ac-knowledge-season-card--sun {
    --ac-season-bg: #eee3c5;
    --ac-season-accent: #9a733e;
    --ac-season-deep: #3a3021;
}

.ac-knowledge-season-card--harvest {
    --ac-season-bg: #ead9cf;
    --ac-season-accent: #8a5e4d;
    --ac-season-deep: #352520;
}

.ac-knowledge-season-card--frost {
    --ac-season-bg: #dce5e4;
    --ac-season-accent: #587070;
    --ac-season-deep: #203031;
}

.ac-knowledge-season-card__image {
    position: relative;
    display: block;
    min-height: 100%;
    overflow: hidden;
    background: rgb(255 255 255 / 36%);
}

.ac-knowledge-season-card__image img {
    display: block;
    width: 100%;
    height: 100%;
    padding: 24px;
    object-fit: contain;
    transition: transform 450ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.ac-knowledge-season-card__image:hover img {
    transform: scale(1.04);
}

.ac-knowledge-season-card__image > span {
    position: absolute;
    top: 16px;
    left: 16px;
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 50%;
    background: var(--ac-season-deep);
    color: #fff;
    font-family: var(--ac-knowledge-serif);
    font-size: 15px;
}

.ac-knowledge-season-card__copy {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    padding: 42px 34px 34px;
}

.ac-knowledge-season-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin-bottom: 34px;
    color: var(--ac-season-accent);
    font-size: 9px;
    font-weight: 650;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.ac-knowledge-season-card__meta span + span::before {
    margin-right: 14px;
    content: "·";
}

.ac-knowledge-season-card h3 {
    margin: 0 0 20px;
    font-family: var(--ac-knowledge-serif);
    font-size: clamp(28px, 2.7vw, 40px);
    font-weight: 400;
    letter-spacing: -0.025em;
    line-height: 1.02;
}

.ac-knowledge-season-card h3 a:hover {
    color: var(--ac-season-accent);
}

.ac-knowledge-season-card__copy > p {
    margin: 0 0 28px;
    color: #4f5b51;
    font-size: 13px;
    line-height: 1.7;
}

.ac-knowledge-season-card .ac-knowledge-arrow-link {
    margin-top: auto;
}

.ac-knowledge-evergreen {
    width: min(1240px, calc(100% - 64px));
    margin-inline: auto;
    padding: 126px 0;
}

.ac-knowledge-evergreen__heading {
    grid-template-columns: 1fr minmax(300px, 0.55fr);
    margin-bottom: 58px;
}

.ac-knowledge-evergreen__heading > p {
    margin: 0;
    color: #59645b;
    font-family: var(--ac-knowledge-serif);
    font-size: 18px;
    line-height: 1.65;
}

.ac-knowledge-evergreen__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background: var(--ac-knowledge-line);
}

.ac-knowledge-evergreen__grid article {
    background: #eeede6;
}

.ac-knowledge-evergreen-card__image {
    display: block;
    height: 340px;
    overflow: hidden;
    background: #dfe4dc;
}

.ac-knowledge-evergreen-card__image img {
    display: block;
    width: 100%;
    height: 100%;
    padding: 7%;
    object-fit: contain;
}

.ac-knowledge-evergreen__grid article:first-child .ac-knowledge-evergreen-card__image img {
    padding: 0;
    object-fit: cover;
}

.ac-knowledge-evergreen__grid article > div {
    padding: 28px;
}

.ac-knowledge-evergreen-card__meta {
    color: #657668;
    font-size: 11px;
    font-weight: 650;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.ac-knowledge-evergreen__grid h3 {
    margin: 14px 0;
    font-family: var(--ac-knowledge-serif);
    font-size: 29px;
    font-weight: 400;
    line-height: 1.08;
}

.ac-knowledge-evergreen__grid p {
    min-height: 78px;
    margin: 0 0 22px;
    color: #59645b;
    font-size: 13px;
    line-height: 1.65;
}

.ac-knowledge-evergreen__grid article > div > a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    font-size: 12px;
    font-weight: 700;
}

.ac-knowledge-pathways {
    display: grid;
    grid-template-columns: minmax(320px, 0.72fr) minmax(0, 1.28fr);
    gap: clamp(60px, 10vw, 145px);
    padding: 132px 0;
}

.ac-knowledge-pathways__intro {
    position: sticky;
    top: 140px;
    align-self: start;
}

.ac-knowledge-pathways__list {
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--ac-knowledge-ink);
    list-style: none;
}

.ac-knowledge-pathways__list li {
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 20px;
    padding: 34px 0;
    border-bottom: 1px solid var(--ac-knowledge-line);
}

.ac-knowledge-pathways__list > li > span {
    color: #809183;
    font-family: var(--ac-knowledge-serif);
    font-size: 18px;
}

.ac-knowledge-pathways__list h3 {
    margin: 0 0 10px;
    font-family: var(--ac-knowledge-serif);
    font-size: 28px;
    font-weight: 500;
}

.ac-knowledge-pathways__list p {
    margin: 0 0 18px;
    color: #5d685f;
    font-size: 14px;
    line-height: 1.65;
}

.ac-knowledge-pathways__list a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    border-bottom: 1px solid;
    font-size: 12px;
    font-weight: 650;
}

.ac-knowledge-closing {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 380px;
    align-items: end;
    gap: 60px;
    padding: clamp(58px, 7vw, 92px);
    background: #1b2a20;
    color: #fff;
}

.ac-knowledge-closing > div {
    max-width: 790px;
}

.ac-knowledge-closing h2 {
    color: #fff;
}

.ac-knowledge-closing p:not(.ac-knowledge-eyebrow) {
    max-width: 690px;
    margin: 25px 0 0;
    color: rgb(255 255 255 / 70%);
    font-family: var(--ac-knowledge-serif);
    font-size: 18px;
    line-height: 1.6;
}

.ac-knowledge-closing > a {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    gap: 24px;
    padding: 0 23px;
    border: 1px solid #f7f6f1;
    background: #f7f6f1;
    color: #111410;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.045em;
}

.ac-knowledge-empty {
    margin: 0;
    color: inherit;
    font-family: var(--ac-knowledge-serif);
    font-size: 18px;
}

@media (max-width: 1080px) {
    .ac-knowledge-season-card {
        grid-template-columns: 1fr;
    }

    .ac-knowledge-season-card__image {
        min-height: 360px;
    }

    .ac-knowledge-season-card__copy {
        min-height: 370px;
    }
}

@media (max-width: 820px) {
    .ac-knowledge-shell,
    .ac-knowledge-pathways {
        width: min(calc(100% - 40px), 1240px);
    }

    .ac-knowledge-breadcrumb {
        margin-bottom: 42px;
    }

    .ac-knowledge-hero__grid,
    .ac-knowledge-intro,
    .ac-knowledge-section-heading,
    .ac-knowledge-evergreen__heading,
    .ac-knowledge-pathways {
        grid-template-columns: 1fr;
    }

    .ac-knowledge-hero__aside {
        max-width: 620px;
        padding: 25px 0 0;
        border-top: 1px solid rgb(255 255 255 / 20%);
        border-left: 0;
    }

    .ac-knowledge-facts {
        margin-top: 58px;
    }

    .ac-knowledge-intro {
        width: min(calc(100% - 40px), 1120px);
        gap: 42px;
        padding: 90px 0;
    }

    .ac-knowledge-seasons {
        padding: 90px 20px;
    }

    .ac-knowledge-section-heading {
        gap: 30px;
        margin-bottom: 45px;
    }

    .ac-knowledge-section-heading > p {
        padding: 20px 0 0;
        border-top: 1px solid rgb(255 255 255 / 20%);
        border-left: 0;
    }

    .ac-knowledge-season-grid {
        grid-template-columns: 1fr;
    }

    .ac-knowledge-season-card {
        grid-template-columns: minmax(230px, 0.8fr) minmax(0, 1.2fr);
        min-height: 430px;
    }

    .ac-knowledge-season-card__image {
        min-height: 430px;
    }

    .ac-knowledge-season-card__copy {
        min-height: 0;
    }

    .ac-knowledge-evergreen {
        width: min(calc(100% - 40px), 1240px);
        padding: 90px 0;
    }

    .ac-knowledge-evergreen__heading {
        gap: 28px;
    }

    .ac-knowledge-evergreen__grid {
        grid-template-columns: 1fr 1fr;
    }

    .ac-knowledge-pathways {
        gap: 42px;
        padding: 90px 0;
    }

    .ac-knowledge-pathways__intro {
        position: static;
    }

    .ac-knowledge-closing {
        grid-template-columns: 1fr;
        width: 100%;
        align-items: start;
        padding: 60px 30px;
    }
}

@media (max-width: 600px) {
    .ac-knowledge-shell,
    .ac-knowledge-pathways {
        width: min(calc(100% - 32px), 1240px);
    }

    .ac-knowledge-hero h1 {
        font-size: clamp(48px, 14vw, 68px);
    }

    .ac-knowledge-facts {
        grid-template-columns: 1fr;
    }

    .ac-knowledge-facts div {
        padding: 15px 0;
        border-bottom: 1px solid rgb(255 255 255 / 14%);
    }

    .ac-knowledge-facts div + div {
        padding-left: 0;
        border-left: 0;
    }

    .ac-knowledge-intro {
        width: min(calc(100% - 32px), 1120px);
    }

    .ac-knowledge-season-card {
        grid-template-columns: 1fr;
    }

    .ac-knowledge-season-card__image {
        min-height: 340px;
    }

    .ac-knowledge-season-card__copy {
        min-height: 350px;
        padding: 32px 25px 25px;
    }

    .ac-knowledge-season-card__meta span + span::before {
        margin-right: 8px;
    }

    .ac-knowledge-evergreen {
        width: min(calc(100% - 32px), 1240px);
    }

    .ac-knowledge-evergreen__grid {
        grid-template-columns: 1fr;
    }

    .ac-knowledge-evergreen-card__image {
        height: 320px;
    }

    .ac-knowledge-evergreen__grid p {
        min-height: 0;
    }

    .ac-knowledge-pathways__list li {
        grid-template-columns: 45px 1fr;
        gap: 10px;
    }

    .ac-knowledge-closing {
        padding: 52px 20px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ac-knowledge-hub *,
    .ac-knowledge-hub *::before,
    .ac-knowledge-hub *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* Salon archive: exact editorial layout from the approved Sites reference. */
.ac-salon-archive {
    --ac-salon-paper: #f7f6f1;
    --ac-salon-ink: #111410;
    --ac-salon-dark: #1c261e;
    --ac-salon-sage: #5e6d5f;
    --ac-salon-line: #cfd3ca;
    --ac-salon-serif: "Iowan Old Style", Baskerville, "Times New Roman", serif;
    --ac-salon-sans: "Avenir Next", "Helvetica Neue", Helvetica, Arial, sans-serif;
    width: 100vw;
    max-width: none;
    margin: 0 calc(50% - 50vw);
    background: var(--ac-salon-paper);
    color: var(--ac-salon-ink);
    font-family: var(--ac-salon-sans);
}

.ac-salon-shell {
    width: min(1240px, calc(100% - 64px));
    margin-inline: auto;
}

.ac-salon-archive :where(h1, h2, p) {
    margin-block-start: 0;
}

.ac-salon-archive__hero {
    isolation: isolate;
    position: relative;
    display: grid;
    min-height: 520px;
    align-items: end;
    padding: 90px 0 74px;
    overflow: hidden;
    background: var(--ac-salon-dark);
    color: #fff;
}

.ac-salon-archive__hero-media,
.ac-salon-archive__hero-shade {
    position: absolute;
    z-index: -2;
    inset: 0;
}

.ac-salon-archive__hero-shade {
    z-index: -1;
    background: linear-gradient(90deg, rgb(18 28 20 / 94%), rgb(18 28 20 / 32%));
}

.ac-salon-archive__hero-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ac-salon-archive__hero-copy {
    position: relative;
    z-index: 1;
}

.ac-salon-eyebrow {
    margin: 0 0 24px;
    color: #c1cfc0;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.24em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ac-salon-archive__hero h1 {
    max-width: 900px;
    margin: 0;
    color: #fff;
    font-family: var(--ac-salon-serif);
    font-size: clamp(55px, 7vw, 94px);
    font-weight: 400;
    letter-spacing: -0.045em;
    line-height: 0.94;
}

.ac-salon-archive__hero h1 em {
    color: #c7d2c5;
    font-weight: 400;
}

.ac-salon-archive__hero-copy > p:last-child {
    max-width: 650px;
    margin: 28px 0 0;
    color: rgb(255 255 255 / 76%);
    font-family: var(--ac-salon-serif);
    font-size: 21px;
    line-height: 1.55;
}

.ac-salon-archive__library {
    padding-block: 80px 110px;
}

.ac-salon-archive__toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(520px, 560px);
    align-items: end;
    gap: 32px;
    padding-bottom: 28px;
    border-bottom: 1px solid var(--ac-salon-ink);
}

.ac-salon-archive__filters {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 180px;
    align-items: end;
    gap: 24px;
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.ac-salon-archive__filters label {
    display: grid;
    min-width: 0;
}

.ac-salon-archive__search > span,
.ac-salon-archive__city-label {
    margin-bottom: 9px;
    color: var(--ac-salon-sage);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.16em;
    line-height: 1.35;
    text-transform: uppercase;
}

.ac-salon-archive .ac-salon-archive__submit {
    grid-column: 2;
    width: max-content;
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid var(--ac-salon-line);
    border-radius: 0;
    background: transparent;
    color: var(--ac-salon-ink);
    cursor: pointer;
    font-family: var(--ac-salon-sans);
    font-size: 10px;
    font-weight: 600;
}

.ac-salon-archive.is-view-enhanced .ac-salon-archive__city-label {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.ac-salon-archive.is-view-enhanced .ac-salon-archive__submit {
    display: none;
}

.ac-salon-archive__search input {
    width: 100%;
    min-height: 56px;
    padding: 5px 0 13px;
    border: 0;
    border-radius: 0;
    outline: 0;
    background: transparent;
    color: var(--ac-salon-ink);
    font-family: var(--ac-salon-serif);
    font-size: clamp(24px, 3vw, 39px);
    line-height: 1.2;
}

.ac-salon-archive__search input::placeholder {
    color: #8a8e87;
    opacity: 1;
}

.ac-salon-archive__city select {
    width: 100%;
    min-height: 44px;
    padding: 8px 28px 13px 0;
    border: 0;
    border-bottom: 1px solid var(--ac-salon-line);
    border-radius: 0;
    outline: 0;
    background: transparent;
    color: var(--ac-salon-ink);
    cursor: pointer;
    font-family: var(--ac-salon-sans);
    font-size: 11px;
}

.ac-salon-archive__reset {
    display: inline-flex;
    grid-column: 1 / -1;
    width: max-content;
    min-height: 44px;
    align-items: center;
    padding-inline: 2px;
    color: var(--ac-salon-sage);
    font-size: 10px;
    text-underline-offset: 4px;
}

.ac-salon-archive__location-tools {
    display: grid;
    grid-template-columns: max-content max-content minmax(180px, 1fr);
    min-width: 0;
    align-items: center;
    justify-content: end;
    gap: 16px;
}

.ac-salon-archive__total {
    margin: 0;
    color: #747c74;
    font-size: 11px;
    line-height: 1.4;
    white-space: nowrap;
}

.ac-salon-archive__total strong {
    color: var(--ac-salon-ink);
    font-size: 13px;
}

.ac-salon-archive__location-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
}

.ac-salon-archive .ac-salon-archive__location-actions .ac-button,
.ac-salon-archive .ac-pagination__next {
    min-height: 44px;
    padding: 0 23px;
    border: 1px solid var(--ac-salon-ink);
    border-radius: 0;
    background: var(--ac-salon-ink);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.045em;
}

.ac-salon-archive .ac-salon-archive__location-actions .ac-button {
    gap: 8px;
    padding-inline: 18px;
    border-color: #9daa9d;
    border-radius: 999px !important;
    background: #e3e9e1;
    color: var(--ac-salon-dark);
    box-shadow: 0 5px 15px rgb(28 38 30 / 8%);
}

.ac-salon-archive .ac-salon-archive__location-actions .ac-button::before {
    width: 12px;
    height: 12px;
    flex: 0 0 12px;
    border: 1px solid currentcolor;
    border-radius: 50%;
    background: radial-gradient(circle, currentcolor 0 2px, transparent 2.5px);
    content: "";
}

.ac-salon-archive .ac-pagination a.ac-pagination__next {
    min-height: 50px;
}

.ac-salon-archive .ac-salon-archive__location-actions .ac-button:hover,
.ac-salon-archive .ac-pagination__next:hover {
    border-color: var(--ac-salon-sage);
    background: var(--ac-salon-sage);
    color: #fff;
}

.ac-salon-archive__alphabetical {
    min-width: 0;
    min-height: 44px;
    padding: 0;
    border: 0;
    border-bottom: 1px solid currentcolor;
    border-radius: 0;
    background: transparent;
    color: var(--ac-salon-ink);
    cursor: pointer;
    font-size: 10px;
    font-weight: 400;
}

.ac-salon-archive .ac-salon-archive__alphabetical:hover {
    border-color: currentcolor;
    background: transparent;
    color: var(--ac-salon-sage);
    transform: none;
}

.ac-salon-archive__privacy,
.ac-salon-archive__geo-status {
    max-width: 300px;
    margin: 0;
    color: #6a726a;
    font-size: 9px;
    line-height: 1.45;
    text-align: left;
}

.ac-salon-archive__geo-status:empty {
    display: none;
}

.ac-salon-archive__geo-status {
    grid-column: 1 / -1;
    max-width: none;
    text-align: right;
}

@media (max-width: 73.6875rem) {
    .ac-salon-archive__toolbar {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
    }

    .ac-salon-archive__location-tools {
        grid-template-columns: max-content max-content minmax(200px, 1fr);
    }

    .ac-salon-archive__geo-status {
        grid-column: 1 / -1;
        text-align: right;
    }
}

@media (min-width: 47.5625rem) and (max-width: 73.6875rem) {
    .ac-salon-archive.is-view-enhanced .ac-salon-archive__toolbar {
        grid-template-columns: minmax(180px, 1fr) max-content max-content;
        column-gap: clamp(14px, 2.3vw, 24px);
        row-gap: 14px;
    }

    .ac-salon-archive.is-view-enhanced .ac-salon-archive__filters,
    .ac-salon-archive.is-view-enhanced .ac-salon-archive__location-tools {
        display: contents;
    }

    .ac-salon-archive.is-view-enhanced .ac-salon-archive__search {
        grid-column: 1 / -1;
        grid-row: 1;
    }

    .ac-salon-archive.is-view-enhanced .ac-salon-archive__city {
        grid-column: 1;
        grid-row: 2;
    }

    .ac-salon-archive.is-view-enhanced .ac-salon-archive__total {
        grid-column: 2;
        grid-row: 2;
    }

    .ac-salon-archive.is-view-enhanced .ac-salon-archive__location-actions {
        grid-column: 3;
        grid-row: 2;
    }

    .ac-salon-archive.is-view-enhanced .ac-salon-archive__privacy {
        grid-column: 1 / -1;
        grid-row: 3;
        max-width: none;
        text-align: right;
    }

    .ac-salon-archive.is-view-enhanced .ac-salon-archive__reset {
        grid-column: 1;
        grid-row: 4;
    }

    .ac-salon-archive.is-view-enhanced .ac-salon-archive__geo-status {
        grid-column: 2 / -1;
        grid-row: 4;
    }
}

@media (min-width: 73.75rem) {
    .ac-salon-archive.is-view-enhanced .ac-salon-archive__filters {
        position: relative;
    }

    .ac-salon-archive.is-view-enhanced .ac-salon-archive__toolbar:has(.ac-salon-archive__reset) {
        padding-bottom: 52px;
    }

    .ac-salon-archive.is-view-enhanced .ac-salon-archive__reset {
        position: absolute;
        top: calc(100% + 4px);
        left: 0;
    }
}

.ac-salon-archive__view-toggle {
    display: none;
}

.ac-salon-archive__explorer {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(340px, 0.65fr);
    align-items: start;
    gap: clamp(24px, 4vw, 62px);
    padding-top: 38px;
}

.ac-salon-archive__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    padding: 1px;
    background: var(--ac-salon-line);
}

.ac-salon-archive__card {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 210px;
    flex-direction: column;
    padding: 25px;
    border: 0;
    border-radius: 0;
    outline: 0;
    background: #fff;
    box-shadow: none;
    scroll-margin-top: 120px;
    transition: background 0.2s, box-shadow 0.2s, transform 0.2s;
}

.ac-salon-archive__card:is(:hover, :focus-within, .is-hovered) {
    z-index: 1;
    border-color: transparent;
    background: #e3e9df;
    box-shadow: inset 0 0 0 2px #244b36;
    transform: translateY(-1px);
}

.ac-salon-archive .ac-salon-archive__card-city {
    width: max-content;
    min-width: 0;
    min-height: 0;
    margin: 0 0 28px;
    padding: 0 0 4px;
    border: 0;
    border-bottom: 1px solid transparent;
    border-radius: 0;
    background: transparent;
    color: var(--ac-salon-sage);
    cursor: pointer;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 0.18em;
    line-height: 1.3;
}

.ac-salon-archive .ac-salon-archive__card-city:hover {
    border-color: currentcolor;
    background: transparent;
    color: var(--ac-salon-sage);
    transform: none;
}

.ac-salon-archive__card h2 {
    margin: 0 0 8px;
    color: var(--ac-salon-ink);
    font-family: var(--ac-salon-serif);
    font-size: 23px;
    font-weight: 500;
    letter-spacing: -0.025em;
    line-height: 1.1;
}

.ac-salon-archive__card h2 a {
    color: inherit;
    text-decoration: none;
}

.ac-salon-archive__card > span {
    color: #6f766f;
    font-size: 10px;
    line-height: 1.5;
}

.ac-salon-archive__card .ac-distance {
    width: max-content;
    max-width: 100%;
    margin: 10px 0 0;
    padding: 6px 8px;
    border: 1px solid #9cab9d;
    border-radius: 999px;
    background: #edf1e9;
    color: #294834;
    font-size: 9px;
    font-weight: 600;
    line-height: 1.35;
}

.ac-salon-archive__card-links {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin-top: auto;
    padding-top: 25px;
}

.ac-salon-archive__card-links a {
    min-height: 0;
    color: var(--ac-salon-ink);
    font-size: 9px;
    line-height: 1.45;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.ac-salon-archive__grid .ac-pagination {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 18px;
    margin: 57px 0 0;
    padding: 0;
    background: var(--ac-salon-paper);
}

.ac-salon-archive__grid .ac-pagination__previous {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    color: var(--ac-salon-ink);
    font-size: 11px;
}

.ac-salon-archive .ac-pagination__next span {
    margin-left: 10px;
    color: #aab0aa;
}

.ac-salon-archive__grid > .ac-empty {
    grid-column: 1 / -1;
    margin: 0;
    border-radius: 0;
    background: #fff;
}

.ac-salon-archive__map-panel {
    position: sticky;
    top: 102px;
    padding: 30px;
    border: 1px solid #cbd3c8;
    background: #e7ebe3;
    overflow: hidden;
}

.ac-salon-archive__map-heading .ac-salon-eyebrow {
    margin-bottom: 24px;
    color: var(--ac-salon-sage);
}

.ac-salon-archive__map-heading h2 {
    margin: 7px 0 8px;
    color: var(--ac-salon-ink);
    font-family: var(--ac-salon-serif);
    font-size: clamp(32px, 3vw, 45px);
    font-weight: 400;
    letter-spacing: normal;
    line-height: 1;
}

.ac-salon-archive__map-heading > span {
    display: block;
    max-width: 310px;
    color: #647064;
    font-size: 12px;
    line-height: 1.6;
}

.ac-salon-archive .ac-salon-archive__map {
    display: block;
    width: 100%;
    height: clamp(430px, 52vh, 560px);
    margin: 18px 0 12px;
    overflow: visible;
}

.ac-salon-archive .ac-salon-map-outline {
    fill: rgb(255 255 255 / 22%);
    stroke: #244b36;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
    pointer-events: none;
}

.ac-salon-archive .ac-salon-map-marker {
    cursor: pointer;
    outline: none;
    touch-action: manipulation;
}

.ac-salon-archive .ac-salon-map-hit {
    fill: none;
    stroke: transparent;
    stroke-width: 44px;
    pointer-events: stroke;
    vector-effect: non-scaling-stroke;
}

.ac-salon-archive .ac-salon-map-dot {
    fill: #6d7f6e;
    stroke: #f6f7f3;
    stroke-width: 2px;
    opacity: 0.78;
    pointer-events: none;
    vector-effect: non-scaling-stroke;
    transition: r 0.16s, fill 0.16s, opacity 0.16s, stroke-width 0.16s, filter 0.16s;
}

.ac-salon-archive .ac-salon-map-marker.is-in-results .ac-salon-map-dot {
    fill: #244b36;
    opacity: 1;
}

.ac-salon-archive .ac-salon-map-marker.is-city-active .ac-salon-map-dot {
    fill: #b07b50;
    opacity: 1;
}

.ac-salon-archive .ac-salon-map-marker:is(:hover, :focus-visible, .is-hovered) .ac-salon-map-dot {
    fill: #9b633d;
    stroke: #fff;
    stroke-width: 3.5px;
    opacity: 1;
    filter: drop-shadow(0 0 4px rgb(36 75 54 / 42%));
    outline: none;
}

.ac-salon-archive .ac-salon-map-empty {
    fill: #526454;
    font-family: var(--ac-salon-sans);
    font-size: 11px;
}

.ac-salon-archive__map-footer {
    padding-top: 16px;
    border-top: 1px solid rgb(36 75 54 / 25%);
}

.ac-salon-archive__map-footer > p {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: #526454;
    font-size: 11px;
    letter-spacing: 0.06em;
    line-height: 1.5;
    text-transform: uppercase;
}

.ac-salon-archive__map-footer > p i {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #244b36;
    box-shadow: 0 0 0 3px rgb(65 101 76 / 14%);
}

.ac-salon-archive__hovered {
    display: grid;
    min-height: 84px;
    align-content: center;
    gap: 3px;
    margin-top: 14px;
    padding: 14px 16px;
    border: 1px solid transparent;
    color: var(--ac-salon-ink);
}

.ac-salon-archive__hovered.has-salon {
    border-color: rgb(36 75 54 / 34%);
    border-left: 3px solid #a46f48;
    background: rgb(255 255 255 / 76%);
    box-shadow: 0 9px 22px rgb(36 75 54 / 8%);
}

.ac-salon-archive__hovered p {
    margin: 0;
    color: #6d766d;
    font-family: var(--ac-salon-serif);
    font-size: 15px;
    line-height: 1.35;
}

.ac-salon-archive__hovered span {
    color: var(--ac-salon-sage);
    font-size: 7px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.ac-salon-archive__hovered strong {
    font-family: var(--ac-salon-serif);
    font-size: 21px;
    font-weight: 500;
}

.ac-salon-archive__hovered small {
    color: #667066;
    font-size: 9px;
}

.ac-salon-archive__source {
    margin: 28px 0 0;
    color: #767d76;
    font-size: 9px;
}

@media (min-width: 47.5625rem) {
    .ac-salon-archive__total {
        font-size: 12px;
        line-height: 1.5;
    }

    .ac-salon-archive__total strong {
        font-size: inherit;
    }

    .ac-salon-archive__privacy {
        margin-bottom: 0;
        font-size: 9.5px;
    }

    .ac-salon-archive__source {
        font-size: 11px;
        line-height: 1.5;
    }
}

.ac-salon-archive__locations {
    display: grid;
    grid-template-columns: minmax(280px, 0.68fr) 1fr;
    gap: clamp(60px, 9vw, 130px);
    padding-block: 110px;
}

.ac-salon-archive__locations .ac-salon-eyebrow {
    color: var(--ac-salon-sage);
}

.ac-salon-archive__locations h2 {
    margin: 0;
    color: var(--ac-salon-ink);
    font-family: var(--ac-salon-serif);
    font-size: clamp(40px, 5vw, 66px);
    font-weight: 400;
    letter-spacing: -0.04em;
    line-height: 1;
}

.ac-salon-archive__locations h2 em {
    color: var(--ac-salon-sage);
    font-weight: 400;
}

.ac-salon-archive__locations-intro > p:last-child {
    margin: 26px 0 0;
    color: #59645b;
    font-family: var(--ac-salon-serif);
    font-size: 17px;
    line-height: 1.65;
}

.ac-salon-archive__location-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    align-content: start;
    gap: 1px;
    background: var(--ac-salon-line);
}

.ac-salon-archive__location-grid a {
    display: flex;
    min-height: 52px;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 0 15px;
    background: var(--ac-salon-paper);
    color: var(--ac-salon-ink);
    font-size: 12px;
    text-decoration: none;
}

.ac-salon-archive__location-grid a:is(:hover, :focus-visible) {
    background: #e6ebe2;
}

.ac-salon-archive__location-grid span {
    display: grid;
    width: 25px;
    height: 25px;
    flex: 0 0 25px;
    place-items: center;
    border: 1px solid var(--ac-salon-line);
    border-radius: 50%;
    color: var(--ac-salon-sage);
    font-size: 10px;
}

@media (max-width: 1080px) {
    .ac-salon-archive__explorer {
        grid-template-columns: minmax(0, 1fr) 310px;
        gap: 24px;
    }

    .ac-salon-archive__grid {
        grid-template-columns: 1fr;
    }

    .ac-salon-archive__map-panel {
        padding: 24px;
    }
}

@media (max-width: 820px) {
    .ac-salon-archive__locations {
        grid-template-columns: 1fr;
        gap: 42px;
        padding-block: 82px;
    }
}

@media (max-width: 760px) {
    .ac-salon-shell {
        width: calc(100% - 36px);
    }

    .ac-salon-archive__hero {
        min-height: 460px;
        padding: 75px 0 50px;
    }

    .ac-salon-archive__hero h1 {
        font-size: 53px;
    }

    .ac-salon-archive__hero-copy > p:last-child {
        font-size: 18px;
    }

    .ac-salon-archive__library {
        padding-block: 58px 80px;
    }

    .ac-salon-archive__toolbar,
    .ac-salon-archive__filters {
        grid-template-columns: 1fr;
    }

    .ac-salon-archive__toolbar {
        gap: 26px;
    }

    .ac-salon-archive__filters {
        gap: 17px;
    }

    .ac-salon-archive .ac-salon-archive__submit {
        grid-column: 1;
        width: 100%;
    }

    .ac-salon-archive__city {
        width: 100%;
        max-width: none;
    }

    .ac-salon-archive__location-tools {
        grid-template-columns: minmax(0, 1fr) max-content;
        width: 100%;
        min-width: 0;
        column-gap: 12px;
        row-gap: 9px;
        justify-items: start;
    }

    /* Match the compact source-site location panel instead of inheriting the
     * archive's micro-copy sizing.  This keeps the count, action and privacy
     * explanation visually connected and readable on narrow screens. */
    .ac-salon-archive__total {
        color: #596159;
        font-size: 12px;
        line-height: 1.5;
    }

    .ac-salon-archive__total strong {
        color: var(--ac-salon-ink);
        font-size: inherit;
        font-weight: 700;
    }

    .ac-salon-archive__location-actions {
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .ac-salon-archive .ac-salon-archive__location-actions .ac-button {
        line-height: 1.5;
    }

    .ac-salon-archive__privacy,
    .ac-salon-archive__geo-status {
        grid-column: 1 / -1;
        max-width: 620px;
        color: #6a726a;
        font-size: 9.5px;
        line-height: 1.45;
        text-align: left;
    }

    .ac-salon-archive.is-view-enhanced .ac-salon-archive__view-toggle {
        display: grid;
        grid-template-columns: 1fr 1fr;
        margin-top: 28px;
        border: 1px solid var(--ac-salon-line);
        background: #fff;
    }

    .ac-salon-archive__view-toggle button {
        min-height: 48px;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        color: var(--ac-salon-ink);
        cursor: pointer;
        font-size: 10px;
        font-weight: 600;
    }

    .ac-salon-archive .ac-salon-archive__view-toggle button:hover {
        border-color: transparent;
        background: #e6ebe2;
        color: var(--ac-salon-ink);
        transform: none;
    }

    .ac-salon-archive__view-toggle button + button {
        border-left: 1px solid var(--ac-salon-line);
    }

    .ac-salon-archive__view-toggle button[aria-pressed="true"],
    .ac-salon-archive .ac-salon-archive__view-toggle button[aria-pressed="true"]:hover {
        background: var(--ac-salon-ink);
        color: #fff;
    }

    .ac-salon-archive__explorer {
        grid-template-columns: 1fr;
        padding-top: 28px;
    }

    .ac-salon-archive__map-panel {
        position: relative;
        top: auto;
        order: -1;
        padding: 24px 20px;
    }

    .ac-salon-archive__explorer.is-enhanced.is-mobile-list .ac-salon-archive__map-panel,
    .ac-salon-archive__explorer.is-enhanced.is-mobile-map .ac-salon-archive__results {
        display: none;
    }

    .ac-salon-archive__explorer.is-enhanced.is-mobile-map .ac-salon-archive__map-panel {
        display: block;
        order: 0;
    }

    .ac-salon-archive .ac-salon-archive__map {
        height: 440px;
    }

    .ac-salon-archive__grid {
        grid-template-columns: 1fr;
    }

    .ac-salon-archive__card {
        min-height: 190px;
    }
}

@media (max-width: 600px) {
    .ac-salon-archive__location-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (hover: none) {
    .ac-salon-archive__card:hover:not(:focus-within):not(.is-hovered) {
        background: #fff;
        box-shadow: none;
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ac-salon-archive *,
    .ac-salon-archive *::before,
    .ac-salon-archive *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* Treatment-overview parity guardrails. Kept strictly inside the archive
   component so catalog and generic button styles remain untouched. */
.ac-treatment-overview .ac-treatment-page-hero .ac-treatment-eyebrow {
    color: #c1cfc0;
}

.ac-treatment-overview .ac-treatment-story__copy > h2 {
    letter-spacing: normal;
}

.ac-treatment-overview .ac-treatment-options h3 {
    letter-spacing: normal;
    line-height: 1.5;
}

.ac-treatment-overview .ac-treatment-options > a + a {
    padding-right: 22px;
}

.ac-treatment-overview .ac-treatment-actions > .ac-button {
    min-height: 50px;
    padding: 0 23px;
    border-radius: 0;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .045em;
    line-height: 18px;
}

.ac-treatment-overview .ac-treatment-actions > .ac-treatment-text-link {
    min-height: 25px;
    padding-bottom: 6px;
    color: #111410;
    font-size: 12px;
    font-weight: 400;
    line-height: 18px;
}

/*
 * Catalogue-family mobile audit.
 *
 * These selectors stay inside the four dynamic archive components. They are
 * deliberately final so all 83 product, 101 ingredient, 98 salon and four
 * treatment records inherit the same readable line breaks and touch sizing.
 */
@media (max-width: 820px) {
    .ac-beautypedia-card summary {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 6px 16px;
    }

    .ac-beautypedia-card summary > span {
        grid-column: 1;
        grid-row: 1;
        overflow-wrap: normal;
        word-break: normal;
        hyphens: manual;
        line-height: 1.2;
    }

    .ac-beautypedia-card summary small {
        display: block;
        grid-column: 1;
        grid-row: 2;
    }

    .ac-beautypedia-card summary b {
        grid-column: 2;
        grid-row: 1 / span 2;
    }

    .ac-salon-archive .ac-salon-archive__card-city {
        display: inline-flex;
        max-width: 100%;
        min-height: 44px;
        align-items: center;
        margin-bottom: 12px;
        padding-bottom: 0;
        font-size: 10px;
    }

    .ac-salon-archive__card-links {
        gap: 4px 14px;
        padding-top: 14px;
    }

    .ac-salon-archive__card-links a {
        display: inline-flex;
        min-height: 44px;
        align-items: center;
        font-size: 11px;
    }
}

@media (min-width: 761px) and (max-width: 820px) {
    .ac-treatment-overview .ac-treatment-story,
    .ac-treatment-overview .ac-treatment-story--reverse {
        grid-template-columns: minmax(0, 1fr);
        gap: 52px;
        padding-block: 90px;
    }

    .ac-treatment-overview .ac-treatment-story--reverse .ac-treatment-story__photo,
    .ac-treatment-overview .ac-treatment-story--reverse .ac-treatment-story__copy {
        grid-column: 1;
        grid-row: auto;
    }

    .ac-treatment-overview .ac-treatment-story__photo {
        min-height: 0;
        aspect-ratio: 4 / 3;
    }
}

@media (max-width: 760px) {
    .ac-product-library--archive :where(h1, h2, h3),
    .ac-beautypedia--archive :where(h1, h2),
    .ac-salon-archive :where(h1, h2),
    .ac-treatment-overview :where(h1, h2, h3) {
        text-wrap: balance;
        overflow-wrap: normal;
        word-break: normal;
        hyphens: manual;
    }

    .ac-product-page-hero h1,
    .ac-beautypedia-page-hero h1,
    .ac-salon-archive__hero h1,
    .ac-treatment-page-hero h1 {
        font-size: clamp(44px, 14vw, 53px);
        line-height: 0.98;
    }

    .ac-product-status,
    .ac-beautypedia-toolbar > p,
    .ac-salon-archive__total {
        white-space: normal;
    }

    .ac-product-need {
        width: 100%;
        max-width: none;
    }

    .ac-product-series,
    .ac-beautypedia-filter {
        scroll-padding-inline: 1px;
        scroll-snap-type: inline proximity;
    }

    .ac-product-series > button,
    .ac-beautypedia-filter > button {
        scroll-snap-align: start;
    }

    .ac-product-advice h2 {
        font-size: clamp(2rem, 10vw, 2.625rem);
        line-height: 1.08;
    }

    .ac-beautypedia-library__heading h2 {
        font-size: clamp(34px, 10.5vw, 38px);
        line-height: 1.04;
    }

    .ac-beautypedia-card summary {
        min-height: 88px;
        padding: 18px;
    }

    .ac-beautypedia-card summary > span {
        font-size: clamp(21px, 6.7vw, 25px);
    }

    .ac-salon-archive__card h2,
    .ac-salon-archive__hovered strong {
        overflow-wrap: normal;
        word-break: normal;
        hyphens: manual;
        text-wrap: balance;
    }

    .ac-salon-archive__privacy,
    .ac-salon-archive__geo-status {
        font-size: 10.5px;
        line-height: 1.5;
    }

    .ac-salon-archive__view-toggle button {
        font-size: 11px;
    }

    .ac-treatment-overview .ac-treatment-story__copy > h2 {
        font-size: clamp(40px, 12vw, 48px);
        line-height: 1;
    }

    .ac-treatment-overview .ac-treatment-story__photo {
        min-height: 0;
        aspect-ratio: 4 / 5;
    }

    .ac-treatment-overview .ac-treatment-note {
        margin-block-end: 80px;
    }
}

@media (max-width: 430px) {
    .ac-product-library--archive .ac-product-card__body > p.ac-product-card__description {
        display: block;
        max-height: none;
        overflow: visible;
        -webkit-line-clamp: unset;
    }

    .ac-product-library--archive .ac-product-card__tags {
        min-height: 0;
        flex-wrap: wrap;
        overflow: visible;
    }

    .ac-product-crawl-index summary {
        font-size: 1.25rem;
        line-height: 1.3;
    }

    .ac-salon-archive__location-grid a {
        min-width: 0;
        gap: 8px;
        padding-inline: 11px;
    }
}
