/* Editorial shell revamp for Beauty.hk */
:root {
    --editorial-page-max: 1680px;
    --editorial-gutter: clamp(1rem, 1.8vw, 2.5rem);
    --editorial-section-gap: clamp(2.75rem, 4.5vw, 5.5rem);
    --editorial-bg: #f8f8fb;
    --editorial-bg-strong: #ffffff;
    --editorial-surface: rgba(255, 255, 255, 0.88);
    --editorial-surface-strong: #ffffff;
    --editorial-surface-muted: #f2eff6;
    --editorial-ink: #1c1720;
    --editorial-muted: #645d6a;
    --editorial-border: rgba(75, 54, 76, 0.12);
    --editorial-border-strong: rgba(112, 51, 83, 0.24);
    --editorial-accent: #dc78a4;
    --editorial-accent-strong: #862b56;
    --editorial-lilac: #8b7fc7;
    --editorial-chrome: #aeb4c1;
    --editorial-gold: #b88a32;
    --editorial-shadow: 0 10px 28px rgba(53, 36, 56, 0.055);
    --editorial-shadow-strong: 0 18px 42px rgba(53, 36, 56, 0.1);
    --editorial-radius: 12px;
    --editorial-radius-sm: 6px;

    /* keep shared theme vars stable for inline page styles */
    --primary-pink: #dc78a4;
    --primary-green: #cbc5df;
    --accent-rose-gold: #b88a32;
    --text-dark: #1c1720;
    --text-light: #645d6a;
    --bg-light: #f2eff6;
    --border-light: rgba(75, 54, 76, 0.12);
    --shadow-sm: 0 6px 18px rgba(53, 36, 56, 0.055);
    --shadow-lg: 0 18px 42px rgba(53, 36, 56, 0.1);
}

body.site-shell--editorial {
    background: var(--editorial-bg);
    color: var(--editorial-ink);
    -webkit-font-smoothing: antialiased;
}

body.site-shell--editorial main {
    min-height: 60vh;
    width: 100%;
    overflow-x: clip;
}

body.site-shell--editorial a {
    text-underline-offset: 0.16em;
}

body.site-shell--editorial a:focus-visible,
body.site-shell--editorial button:focus-visible,
body.site-shell--editorial input:focus-visible,
body.site-shell--editorial select:focus-visible,
body.site-shell--editorial textarea:focus-visible {
    outline: 3px solid rgba(134, 43, 86, 0.42);
    outline-offset: 3px;
}

body.site-shell--editorial img {
    max-width: 100%;
}

body.site-shell--editorial .container {
    width: min(calc(100% - (var(--editorial-gutter) * 2)), var(--editorial-page-max));
    max-width: var(--editorial-page-max);
    margin-inline: auto;
}

body.site-shell--editorial h1,
body.site-shell--editorial h2,
body.site-shell--editorial h3,
body.site-shell--editorial h4 {
    letter-spacing: -0.045em;
    line-height: 1.02;
}

body.site-shell--editorial .section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

body.site-shell--editorial .section-heading h2 {
    margin: 0;
    font-size: clamp(1.85rem, 2.35vw, 3.1rem);
    font-weight: 750;
}

body.site-shell--editorial .section-heading p {
    margin: 0.3rem 0 0;
    color: var(--editorial-muted);
}

body.site-shell--editorial .section-kicker,
body.site-shell--editorial .eyebrow,
body.site-shell--editorial .ranking-card__eyebrow,
body.site-shell--editorial .post-category,
body.site-shell--editorial .blog-card__tag,
body.site-shell--editorial .ranking-card__tag,
body.site-shell--editorial .product-card__meta,
body.site-shell--editorial .ingredient-card span,
body.site-shell--editorial .category-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-size: 0.72rem;
    font-weight: 700;
}

body.site-shell--editorial .section-kicker,
body.site-shell--editorial .eyebrow,
body.site-shell--editorial .ranking-card__eyebrow {
    color: var(--editorial-accent-strong);
}

body.site-shell--editorial :where(.section-kicker, .eyebrow, .ranking-card__eyebrow)::before {
    content: "";
    width: 1.5rem;
    height: 1px;
    background: currentColor;
}

body.site-shell--editorial .btn,
body.site-shell--editorial .nav-search-pill,
body.site-shell--editorial .editorial-header .lang-toggle,
body.site-shell--editorial .editorial-header .user-dropdown-toggle,
body.site-shell--editorial .editorial-header .mobile-menu-btn,
body.site-shell--editorial .editorial-mobile-menu a,
body.site-shell--editorial .editorial-mobile-menu button {
    border-radius: var(--editorial-radius-sm);
}

.editorial-header,
.editorial-footer {
    position: relative;
    z-index: 20;
}

.editorial-header {
    position: sticky;
    top: 0;
    backdrop-filter: blur(22px) saturate(130%);
    -webkit-backdrop-filter: blur(22px) saturate(130%);
    background: rgba(255, 255, 255, 0.86);
    border-bottom: 1px solid rgba(125, 112, 132, 0.18);
    box-shadow: 0 4px 18px rgba(49, 35, 53, 0.035);
}

.editorial-nav__inner {
    width: min(calc(100% - (var(--editorial-gutter) * 2)), var(--editorial-page-max));
    max-width: var(--editorial-page-max);
    margin-inline: auto;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(0.75rem, 1vw, 1.25rem);
    padding: clamp(0.72rem, 0.95vw, 0.95rem) 0;
}

.editorial-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.85rem;
    min-width: 0;
    text-decoration: none;
    color: var(--editorial-ink);
}

.editorial-brand__mark {
    width: 2.9rem;
    height: 2.9rem;
    border-radius: 7px;
    background: #efbdd2;
    border: 1px solid rgba(255, 255, 255, 0.86);
    box-shadow: inset 0 0 0 1px rgba(114, 60, 88, 0.16), 0 0 0 1px rgba(174, 180, 193, 0.38);
    flex: none;
}

.editorial-brand__text {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
    min-width: 0;
}

.editorial-brand__text strong {
    font-size: 1.12rem;
    letter-spacing: 0.01em;
}

.editorial-brand__text small {
    color: var(--editorial-muted);
    font-size: 0.76rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.editorial-nav-links {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(0.15rem, 0.35vw, 0.45rem);
    margin: 0 auto;
    padding: 0;
    list-style: none;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.editorial-nav-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: 0.68rem clamp(0.75rem, 0.9vw, 1.05rem);
    border-radius: 3px;
    color: var(--editorial-ink);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.95rem;
    transition: background-color 0.16s ease, color 0.16s ease, border-color 0.16s ease, transform 0.16s ease;
}

.editorial-nav-links a:hover,
.editorial-nav-links a.active {
    background: rgba(238, 228, 242, 0.72);
    color: var(--editorial-accent-strong);
    box-shadow: inset 0 -2px 0 var(--editorial-accent-strong);
}

.nav-actions {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    margin-left: auto;
}

.nav-search-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 2.85rem;
    padding: 0.65rem 1rem;
    background: var(--editorial-surface-strong);
    border: 1px solid var(--editorial-border);
    color: var(--editorial-ink);
    text-decoration: none;
    box-shadow: 0 4px 14px rgba(53, 36, 56, 0.045);
}

.editorial-header .mobile-menu-btn {
    min-height: 2.85rem;
    border: 1px solid var(--editorial-border);
    background: var(--editorial-surface-strong);
    color: var(--editorial-ink);
    box-shadow: 0 4px 14px rgba(53, 36, 56, 0.045);
}

.editorial-header .mobile-menu-btn {
    display: none;
}

.editorial-header .lang-toggle {
    padding: 0.65rem 0.95rem;
    border: 1px solid var(--editorial-border);
    background: var(--editorial-surface-strong);
    box-shadow: 0 4px 14px rgba(53, 36, 56, 0.045);
}

.editorial-header .user-dropdown-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0.9rem 0.5rem 0.5rem;
    border: 1px solid var(--editorial-border);
    background: var(--editorial-surface-strong);
    box-shadow: 0 4px 14px rgba(53, 36, 56, 0.045);
}

.editorial-header .user-avatar {
    width: 2.15rem;
    height: 2.15rem;
    background: #efbdd2;
    box-shadow: inset 0 0 0 1px rgba(114, 60, 88, 0.14);
}

.editorial-header .lang-dropdown,
.editorial-header .user-dropdown-menu {
    top: calc(100% + 0.7rem);
    border: 1px solid var(--editorial-border);
    border-radius: 8px;
    box-shadow: var(--editorial-shadow-strong);
}

.editorial-header .btn-primary {
    background: var(--editorial-ink);
    border-color: var(--editorial-ink);
    color: #fff;
    box-shadow: none;
}

.editorial-header .btn-outline {
    border-color: var(--editorial-border-strong);
    color: var(--editorial-ink);
    background: var(--editorial-surface-strong);
    box-shadow: var(--shadow-sm);
}

.editorial-header .btn:hover,
.editorial-header .lang-toggle:hover,
.editorial-header .user-dropdown-toggle:hover,
.editorial-header .mobile-menu-btn:hover,
.nav-search-pill:hover,
.editorial-nav-links a:hover {
    transform: translateY(-1px);
}

.editorial-mobile-menu {
    display: none;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: calc(100% + 0.75rem);
    width: min(calc(100% - (var(--editorial-gutter) * 2)), 36rem);
    max-height: calc(100vh - 6rem);
    overflow: auto;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.97);
    border: 1px solid var(--editorial-border-strong);
    border-radius: 10px;
    box-shadow: var(--editorial-shadow-strong);
    backdrop-filter: blur(20px);
}

.editorial-mobile-menu.open {
    display: block;
}

.editorial-mobile-menu .mobile-menu__eyebrow,
.editorial-mobile-menu .mobile-menu__section-label {
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-size: 0.7rem;
    color: var(--editorial-muted);
}

.editorial-mobile-menu .mobile-menu__top strong {
    display: block;
    margin-top: 0.35rem;
    font-size: 1.08rem;
}

.editorial-mobile-menu a,
.editorial-mobile-menu button {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    width: 100%;
    padding: 0.92rem 1rem;
    border: 1px solid transparent;
    background: transparent;
    color: var(--editorial-ink);
    text-decoration: none;
    text-align: left;
    font-weight: 600;
}

.editorial-mobile-menu a:hover,
.editorial-mobile-menu a.active,
.editorial-mobile-menu button:hover {
    background: var(--editorial-surface-muted);
    border-color: var(--editorial-border);
    color: var(--editorial-accent-strong);
}

.editorial-mobile-menu .mobile-menu-divider {
    height: 1px;
    margin: 0.4rem 0;
    background: var(--editorial-border);
}

.editorial-mobile-menu .mobile-menu-user {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.9rem 1rem;
    background: var(--editorial-surface-muted);
    border: 1px solid var(--editorial-border);
    border-radius: 10px;
}

.editorial-footer {
    background: #21131e;
    color: rgba(255, 249, 253, 0.9);
    padding: clamp(3rem, 5vw, 4.5rem) 0 2rem;
    margin-top: clamp(3rem, 5vw, 5rem);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.editorial-footer .footer-content {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) repeat(4, minmax(0, 1fr));
    gap: clamp(1.25rem, 2vw, 2rem);
    margin-bottom: 2.5rem;
}

.editorial-footer .footer-section h4 {
    color: #fff8fc;
    font-size: 1rem;
    margin-bottom: 1rem;
    padding-bottom: 0.7rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.editorial-footer .footer-logo {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 1.35rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: #fff8fc;
}

.editorial-footer .footer-logo i,
.editorial-footer .footer-contact .contact-info li i {
    color: var(--editorial-accent);
}

.editorial-footer .footer-about p,
.editorial-footer .footer-section ul li a,
.editorial-footer .footer-contact .contact-info li span,
.editorial-footer .footer-bottom p,
.editorial-footer .footer-links a {
    color: rgba(255, 248, 252, 0.72);
}

.editorial-footer .footer-about p {
    line-height: 1.7;
    margin-bottom: 1.5rem;
}

.editorial-footer .footer-social {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.editorial-footer .footer-social a {
    width: 2.65rem;
    height: 2.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff8fc;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.03);
    text-decoration: none;
}

.editorial-footer .footer-social a:hover,
.editorial-footer .footer-links a:hover,
.editorial-footer .footer-section ul li a:hover {
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.24);
}

.editorial-footer .footer-section ul li + li {
    margin-top: 0.75rem;
}

.editorial-footer .footer-section ul li a {
    text-decoration: none;
}

.editorial-footer .footer-contact {
    font-style: normal;
}

.editorial-footer .footer-contact .contact-info li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.editorial-footer .footer-contact .contact-info li i {
    margin-top: 0.2rem;
}

.editorial-footer .footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.editorial-footer .footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.5rem;
}

/* shared surfaces */
body.site-shell--editorial :where(.quick-link-card, .ranking-card, .product-card, .blog-card, .center-card, .ingredient-card, .ingredient-feature, .empty-card, .category-card, .featured-card, .post-card, .sidebar-card, .main-content, .store-sidebar, .hero-search form, .filter-group, .search-box, .newsletter-card) {
    background: var(--editorial-surface);
    border: 1px solid var(--editorial-border);
    border-radius: var(--editorial-radius);
    box-shadow: var(--editorial-shadow);
    backdrop-filter: blur(8px);
}

body.site-shell--editorial :where(.quick-link-card, .ranking-card, .product-card, .blog-card, .center-card, .ingredient-card, .ingredient-feature, .empty-card, .category-card, .featured-card, .post-card, .sidebar-card, .main-content, .store-sidebar) {
    overflow: hidden;
}

body.site-shell--editorial :where(.btn-link, .text-link, .center-card__foot a, .blog-card__foot a, .card-footer a, .reset-link, .read-more) {
    color: var(--editorial-accent-strong);
    font-weight: 700;
    text-decoration: none;
}

body.site-shell--editorial :where(.btn-link:hover, .text-link:hover, .center-card__foot a:hover, .blog-card__foot a:hover, .card-footer a:hover, .reset-link:hover, .read-more:hover) {
    color: var(--editorial-ink);
}

body.site-shell--editorial :where(.quick-link-card, .ranking-card, .product-card, .blog-card, .center-card, .ingredient-card, .empty-card, .category-card, .post-card, .featured-card, .sidebar-card) {
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

body.site-shell--editorial :where(.quick-link-card:hover, .ranking-card:hover, .product-card:hover, .blog-card:hover, .center-card:hover, .ingredient-card:hover, .category-card:hover, .post-card:hover, .featured-card:hover, .sidebar-card:hover) {
    transform: translateY(-3px);
    box-shadow: var(--editorial-shadow-strong);
    border-color: rgba(134, 43, 86, 0.28);
}

body.site-shell--editorial :where(.quick-link-card__label, .blog-card__tag, .ranking-card__tag, .product-card__meta, .ingredient-card span, .category-badge, .post-category) {
    padding: 0.34rem 0.68rem;
    border-radius: 3px;
    background: #f5e9f0;
    border: 1px solid rgba(134, 43, 86, 0.1);
    color: var(--editorial-accent-strong);
}

body.site-shell--editorial :where(.ranking-card h3, .product-card h3, .blog-card h3, .center-card h3, .ingredient-card h3, .ingredient-feature h3, .post-card h3, .featured-card h2, .featured-card h3) {
    margin: 0.85rem 0 0.45rem;
    font-size: 1.15rem;
}

body.site-shell--editorial :where(.ranking-item, .tag-row span, .trending-strip__list span, .subchips a, .card-tags span) {
    border: 1px solid var(--editorial-border);
    border-radius: 4px;
    background: var(--editorial-surface-muted);
    color: var(--editorial-muted);
}

body.site-shell--editorial :where(.ranking-item) {
    padding: 0.75rem 0.9rem;
}

body.site-shell--editorial :where(.quick-link-grid, .ranking-grid, .product-grid, .blog-grid, .center-grid, .ingredient-grid, .featured-grid, .products-grid, .posts-grid, .category-grid) {
    display: grid;
    gap: 1.15rem;
}

body.site-shell--editorial .portal-section {
    padding: var(--editorial-section-gap) 0;
}

body.site-shell--editorial .portal-section--tint {
    background: #f5f3f8;
    border-block: 1px solid var(--editorial-border);
}

body.site-shell--editorial .portal-section .section-heading,
body.site-shell--editorial .rankings-page .section-heading,
body.site-shell--editorial .store-page .section-heading,
body.site-shell--editorial .blog-page .section-heading,
body.site-shell--editorial .blog-post .section-heading {
    margin-bottom: 1.5rem;
}

/* homepage */
body.site-shell--editorial .portal-home,
body.site-shell--editorial .discovery-home {
    background: var(--editorial-bg);
    min-height: 100vh;
}

body.site-shell--editorial .portal-home .portal-hero,
body.site-shell--editorial .discovery-home .portal-hero {
    position: relative;
    padding: clamp(3.25rem, 5.6vw, 6rem) 0 clamp(3.75rem, 5.5vw, 5.75rem);
    background: #ffffff;
    border-bottom: 1px solid var(--editorial-border);
}

body.site-shell--editorial .portal-home .portal-hero::after,
body.site-shell--editorial .discovery-home .portal-hero::after {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: var(--editorial-accent-strong);
}

body.site-shell--editorial .portal-home .portal-hero__grid,
body.site-shell--editorial .discovery-home .portal-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(340px, 0.82fr);
    gap: clamp(2rem, 4vw, 5rem);
    align-items: center;
}

body.site-shell--editorial .portal-home .portal-hero__copy h1,
body.site-shell--editorial .discovery-home .portal-hero__copy h1 {
    margin: 0.65rem 0 1.25rem;
    font-size: clamp(3.25rem, 6.3vw, 6.8rem);
    line-height: 0.9;
    letter-spacing: -0.072em;
    max-width: 12ch;
}

body.site-shell--editorial .portal-home .portal-hero__copy p,
body.site-shell--editorial .discovery-home .portal-hero__copy p {
    max-width: 48rem;
    color: var(--editorial-muted);
    font-size: clamp(1rem, 1.15vw, 1.1rem);
    line-height: 1.75;
}

body.site-shell--editorial .portal-home .portal-hero__actions,
body.site-shell--editorial .discovery-home .portal-hero__actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
    margin-top: 1.8rem;
}

body.site-shell--editorial .portal-home .portal-search-card,
body.site-shell--editorial .discovery-home .portal-search-card,
body.site-shell--editorial .portal-home .portal-panel,
body.site-shell--editorial .discovery-home .portal-panel {
    border: 1px solid var(--editorial-border);
    border-radius: 10px;
    background: var(--editorial-surface-strong);
    box-shadow: var(--editorial-shadow);
}

body.site-shell--editorial .portal-home .portal-search-card,
body.site-shell--editorial .discovery-home .portal-search-card {
    padding: 1.15rem;
    display: grid;
    gap: 0.75rem;
    border-left: 3px solid var(--editorial-accent);
}

body.site-shell--editorial .portal-home .portal-search-card__title,
body.site-shell--editorial .discovery-home .portal-search-card__title {
    font-weight: 700;
    font-size: 1rem;
}

body.site-shell--editorial .portal-home .portal-search-card__row,
body.site-shell--editorial .discovery-home .portal-search-card__row {
    display: flex;
    align-items: center;
    gap: 0.7rem;
}

body.site-shell--editorial .portal-home .portal-search-card input,
body.site-shell--editorial .portal-home .portal-search-card select,
body.site-shell--editorial .discovery-home .portal-search-card input,
body.site-shell--editorial .discovery-home .portal-search-card select {
    width: 100%;
    min-height: 3rem;
    padding: 0.8rem 0.95rem;
    border: 1px solid var(--editorial-border);
    border-radius: 5px;
    background: #fff;
    color: var(--editorial-ink);
}

body.site-shell--editorial .portal-home .portal-search-card button,
body.site-shell--editorial .discovery-home .portal-search-card button {
    min-height: 3rem;
    padding: 0.8rem 1.05rem;
    border: 1px solid var(--editorial-ink);
    background: var(--editorial-ink);
    color: #fff;
    border-radius: 5px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

body.site-shell--editorial .portal-home .portal-panel,
body.site-shell--editorial .discovery-home .portal-panel {
    padding: 1.1rem;
    border-color: rgba(139, 127, 199, 0.2);
}

body.site-shell--editorial .portal-home .portal-panel__media,
body.site-shell--editorial .discovery-home .portal-panel__media {
    aspect-ratio: 4 / 5;
    border-radius: 6px;
    overflow: hidden;
    margin: 1rem 0;
    background: var(--editorial-surface-muted);
}

body.site-shell--editorial .portal-home .portal-panel__title,
body.site-shell--editorial .discovery-home .portal-panel__title {
    font-size: 1.35rem;
    font-weight: 800;
    margin-bottom: 0.4rem;
}

body.site-shell--editorial .portal-home .portal-panel__text,
body.site-shell--editorial .portal-home .portal-panel__empty,
body.site-shell--editorial .discovery-home .portal-panel__text,
body.site-shell--editorial .discovery-home .portal-panel__empty {
    color: var(--editorial-muted);
    line-height: 1.7;
}

body.site-shell--editorial .portal-home .portal-panel__meta,
body.site-shell--editorial .discovery-home .portal-panel__meta {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1rem;
    font-weight: 700;
}

body.site-shell--editorial .portal-home .quick-link-card,
body.site-shell--editorial .discovery-home .quick-link-card {
    display: block;
    min-height: 184px;
    padding: 1.35rem;
    border-top: 2px solid transparent;
    text-decoration: none;
    color: inherit;
}

body.site-shell--editorial .portal-home .quick-link-card strong,
body.site-shell--editorial .discovery-home .quick-link-card strong {
    display: block;
    margin-top: 0.9rem;
    font-size: 1.1rem;
}

body.site-shell--editorial :where(.portal-home, .discovery-home) .quick-link-card:hover {
    border-top-color: var(--editorial-accent-strong);
}

body.site-shell--editorial :where(.portal-home, .discovery-home) :where(.portal-panel__media, .product-image, .blog-card__media, .center-card__media) img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}

body.site-shell--editorial :where(.portal-home, .discovery-home) :where(.portal-panel, .product-card, .blog-card, .center-card):hover img {
    transform: scale(1.025);
}

body.site-shell--editorial .portal-home .ranking-card,
body.site-shell--editorial .discovery-home .ranking-card,
body.site-shell--editorial .portal-home .product-card,
body.site-shell--editorial .discovery-home .product-card,
body.site-shell--editorial .portal-home .blog-card,
body.site-shell--editorial .discovery-home .blog-card,
body.site-shell--editorial .portal-home .center-card,
body.site-shell--editorial .discovery-home .center-card,
body.site-shell--editorial .portal-home .ingredient-card,
body.site-shell--editorial .discovery-home .ingredient-card,
body.site-shell--editorial .portal-home .ingredient-feature,
body.site-shell--editorial .discovery-home .ingredient-feature,
body.site-shell--editorial .portal-home .empty-card,
body.site-shell--editorial .discovery-home .empty-card {
    border-radius: 1rem;
}

body.site-shell--editorial .portal-home .ranking-grid,
body.site-shell--editorial .discovery-home .ranking-grid,
body.site-shell--editorial .portal-home .product-grid,
body.site-shell--editorial .discovery-home .product-grid,
body.site-shell--editorial .portal-home .blog-grid,
body.site-shell--editorial .discovery-home .blog-grid,
body.site-shell--editorial .portal-home .center-grid,
body.site-shell--editorial .discovery-home .center-grid,
body.site-shell--editorial .portal-home .ingredient-grid,
body.site-shell--editorial .discovery-home .ingredient-grid {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

body.site-shell--editorial .portal-home .ranking-item,
body.site-shell--editorial .discovery-home .ranking-item {
    background: var(--editorial-surface-muted);
}

body.site-shell--editorial .portal-home .ingredient-feature,
body.site-shell--editorial .discovery-home .ingredient-feature {
    background: var(--editorial-surface-strong);
}

body.site-shell--editorial .portal-home .trending-strip,
body.site-shell--editorial .discovery-home .trending-strip {
    margin-top: 1.2rem;
    padding-top: 1rem;
    border-top: 1px solid var(--editorial-border);
}

/* rankings */
body.site-shell--editorial .rankings-page {
    background: var(--editorial-bg);
    min-height: 100vh;
}

body.site-shell--editorial .rankings-page .rankings-hero {
    background: var(--editorial-bg-strong);
    color: var(--editorial-ink);
    padding: clamp(2.75rem, 4.5vw, 4.5rem) 0 clamp(2rem, 3.5vw, 3rem);
    border-bottom: 1px solid var(--editorial-border);
}

body.site-shell--editorial .rankings-page .hero-copy {
    max-width: 60rem;
}

body.site-shell--editorial .rankings-page .rankings-hero h1 {
    margin: 0 0 0.75rem;
    color: var(--editorial-ink);
    font-size: clamp(3rem, 5vw, 5.2rem);
    line-height: 0.94;
    max-width: 12ch;
}

body.site-shell--editorial .rankings-page .rankings-hero p {
    max-width: 56rem;
    color: var(--editorial-muted);
    font-size: 1.06rem;
    line-height: 1.75;
}

body.site-shell--editorial .rankings-page .hero-filters {
    display: grid;
    gap: 1rem;
    margin-top: 2rem;
}

body.site-shell--editorial .rankings-page .filter-group {
    padding: 1rem;
    background: var(--editorial-surface-strong);
}

body.site-shell--editorial .rankings-page .filter-group label {
    display: block;
    margin-bottom: 0.75rem;
    color: var(--editorial-muted);
    font-weight: 700;
}

body.site-shell--editorial .rankings-page .chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}

body.site-shell--editorial .rankings-page .chip {
    display: inline-flex;
    align-items: center;
    min-height: 2.65rem;
    padding: 0.5rem 0.9rem;
    border: 1px solid var(--editorial-border);
    color: var(--editorial-ink);
    background: var(--editorial-surface-strong);
    text-decoration: none;
    font-size: 0.92rem;
}

body.site-shell--editorial .rankings-page .chip.active,
body.site-shell--editorial .rankings-page .chip:hover {
    background: var(--editorial-ink);
    color: #fff;
    border-color: var(--editorial-ink);
}

body.site-shell--editorial .rankings-page .rankings-shell {
    padding: clamp(2rem, 3.5vw, 3.5rem) 0 clamp(3rem, 4vw, 4rem);
}

body.site-shell--editorial .rankings-page .discovery-section,
body.site-shell--editorial .rankings-page .featured-section,
body.site-shell--editorial .rankings-page .results-section {
    margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

body.site-shell--editorial .rankings-page .category-grid {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

body.site-shell--editorial .rankings-page .featured-grid {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

body.site-shell--editorial .rankings-page .ranking-grid {
    grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
}

body.site-shell--editorial .rankings-page .category-card,
body.site-shell--editorial .rankings-page .ranking-card,
body.site-shell--editorial .rankings-page .empty-state {
    background: var(--editorial-surface-strong);
    border: 1px solid var(--editorial-border);
    border-radius: 1rem;
    box-shadow: var(--editorial-shadow);
}

body.site-shell--editorial .rankings-page .category-card {
    padding: 1.1rem;
}

body.site-shell--editorial .rankings-page .category-card.active {
    outline: 2px solid rgba(181, 110, 148, 0.5);
    outline-offset: 0;
}

body.site-shell--editorial .rankings-page .category-top,
body.site-shell--editorial .rankings-page .meta-row,
body.site-shell--editorial .rankings-page .card-footer {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

body.site-shell--editorial .rankings-page .ranking-card .card-image,
body.site-shell--editorial .rankings-page .featured-card .card-image {
    position: relative;
    aspect-ratio: 16 / 10;
    background: var(--editorial-surface-muted);
}

body.site-shell--editorial .rankings-page .image-placeholder {
    display: grid;
    place-items: center;
    color: rgba(181, 110, 148, 0.45);
    font-size: 2rem;
}

body.site-shell--editorial .rankings-page .card-image .badge,
body.site-shell--editorial .rankings-page .card-image .rank-badge {
    position: absolute;
    left: 1rem;
    top: 1rem;
    background: rgba(255, 255, 255, 0.92);
    color: var(--editorial-ink);
    border: 1px solid var(--editorial-border);
}

body.site-shell--editorial .rankings-page .card-body,
body.site-shell--editorial .rankings-page .featured-card .card-content {
    padding: 1.1rem;
}

body.site-shell--editorial .rankings-page .card-tags,
body.site-shell--editorial .rankings-page .subchips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin: 0.8rem 0;
}

body.site-shell--editorial .rankings-page .card-tags span,
body.site-shell--editorial .rankings-page .subchips a {
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
    background: var(--editorial-surface-muted);
    color: var(--editorial-muted);
    text-decoration: none;
}

body.site-shell--editorial .rankings-page .featured-section,
body.site-shell--editorial .rankings-page .results-section {
    background: transparent;
    border: 0;
    padding: 0;
    box-shadow: none;
}

body.site-shell--editorial .rankings-page .empty-state {
    padding: 2rem;
    text-align: center;
}

body.site-shell--editorial .rankings-page .empty-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 1rem;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: var(--editorial-surface-muted);
    color: var(--editorial-accent);
    font-size: 1.5rem;
}

body.site-shell--editorial .rankings-page .pagination-wrapper {
    margin-top: 1.75rem;
}

/* store */
body.site-shell--editorial .store-page {
    background: var(--editorial-bg);
    min-height: 100vh;
}

body.site-shell--editorial .store-page .store-hero {
    color: var(--editorial-ink);
    padding: clamp(2.75rem, 4.5vw, 4.5rem) 0;
    text-align: left;
    position: relative;
    border-bottom: 1px solid var(--editorial-border);
}

body.site-shell--editorial .store-page .store-hero::before {
    background: rgba(251, 248, 243, 0.82);
}

body.site-shell--editorial .store-page .store-hero .container {
    position: relative;
    z-index: 1;
}

body.site-shell--editorial .store-page .store-hero h1 {
    color: var(--editorial-ink);
    font-size: clamp(3rem, 5vw, 5.1rem);
    line-height: 0.95;
    max-width: 12ch;
    margin: 0 0 0.75rem;
}

body.site-shell--editorial .store-page .store-hero p {
    color: var(--editorial-muted);
    font-size: 1.06rem;
    max-width: 44rem;
    line-height: 1.75;
}

body.site-shell--editorial .store-page .hero-search {
    max-width: 42rem;
    margin: 1.6rem 0 0;
}

body.site-shell--editorial .store-page .hero-search form {
    display: flex;
    gap: 0.6rem;
    padding: 0.6rem;
    background: var(--editorial-surface-strong);
    border: 1px solid var(--editorial-border);
    box-shadow: var(--editorial-shadow);
}

body.site-shell--editorial .store-page .hero-search input {
    flex: 1;
    border: 1px solid var(--editorial-border);
    padding: 0.8rem 1rem;
    font-size: 1rem;
    outline: none;
    border-radius: 0.8rem;
    background: #fff;
}

body.site-shell--editorial .store-page .hero-search .btn {
    border-radius: 0.8rem;
    padding: 0.8rem 1.2rem;
}

body.site-shell--editorial .store-page .store-layout {
    display: grid;
    grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
    gap: clamp(1.5rem, 2vw, 2.5rem);
    padding: clamp(2rem, 3.5vw, 3.5rem) 0;
}

body.site-shell--editorial .store-page .store-sidebar {
    background: var(--editorial-surface-strong);
    border: 1px solid var(--editorial-border);
    border-radius: 1rem;
    padding: 1.35rem;
    box-shadow: var(--editorial-shadow);
    height: fit-content;
    position: sticky;
    top: 104px;
}

body.site-shell--editorial .store-page .filter-section {
    margin-bottom: 1.35rem;
    padding-bottom: 1.35rem;
    border-bottom: 1px solid var(--editorial-border);
}

body.site-shell--editorial .store-page .filter-section h4 {
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 0.9rem;
    color: var(--editorial-ink);
}

body.site-shell--editorial .store-page .search-box {
    display: flex;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--editorial-border);
}

body.site-shell--editorial .store-page .search-box input {
    flex: 1;
    border: 0;
    padding: 0.8rem 0.95rem;
    font-size: 0.95rem;
    outline: none;
}

body.site-shell--editorial .store-page .search-box button {
    background: var(--editorial-ink);
    border: 0;
    color: #fff;
    padding: 0.8rem 1rem;
    cursor: pointer;
}

body.site-shell--editorial .store-page .category-list,
body.site-shell--editorial .store-page .partner-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

body.site-shell--editorial .store-page .category-list li,
body.site-shell--editorial .store-page .partner-list li {
    margin-bottom: 0.45rem;
}

body.site-shell--editorial .store-page .category-list li a,
body.site-shell--editorial .store-page .partner-list li a {
    color: var(--editorial-muted);
    text-decoration: none;
    font-size: 0.92rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 0.75rem;
    border-radius: 0.7rem;
    transition: background-color 0.16s ease, color 0.16s ease;
}

body.site-shell--editorial .store-page .category-list li a:hover,
body.site-shell--editorial .store-page .partner-list li a:hover,
body.site-shell--editorial .store-page .category-list li.active a,
body.site-shell--editorial .store-page .partner-list li.active a {
    background: var(--editorial-surface-muted);
    color: var(--editorial-ink);
}

body.site-shell--editorial .store-page .category-list li.active a {
    font-weight: 700;
    color: var(--editorial-accent-strong);
}

body.site-shell--editorial .store-page .subcategory-list {
    list-style: none;
    padding-left: 1.25rem;
    margin-top: 0.4rem;
}

body.site-shell--editorial .store-page .subcategory-list li a {
    font-size: 0.86rem;
}

body.site-shell--editorial .store-page .featured-section {
    background: transparent;
    border: 0;
    padding: 0;
    margin-bottom: 2rem;
    box-shadow: none;
}

body.site-shell--editorial .store-page .featured-section h2 {
    font-size: 1.25rem;
    margin-bottom: 1.25rem;
    color: var(--editorial-ink);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

body.site-shell--editorial .store-page .featured-section h2 i {
    color: var(--editorial-gold);
}

body.site-shell--editorial .store-page .featured-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

body.site-shell--editorial .store-page .products-grid {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

body.site-shell--editorial .store-page .product-card {
    display: flex;
    flex-direction: column;
    position: relative;
}

body.site-shell--editorial .store-page .product-card.featured {
    border-color: rgba(183, 140, 71, 0.35);
    box-shadow: 0 18px 44px rgba(183, 140, 71, 0.09);
}

body.site-shell--editorial .store-page .featured-ribbon {
    background: var(--editorial-gold);
    color: #fff;
    left: -33px;
    top: 14px;
    transform: rotate(-45deg);
}

body.site-shell--editorial .store-page .sale-badge {
    background: #cf6060;
    color: #fff;
}

body.site-shell--editorial .store-page .product-image {
    height: 220px;
    background: var(--editorial-surface-muted);
}

body.site-shell--editorial .store-page .product-card h3 {
    font-size: 1.1rem;
    margin-top: 0.8rem;
}

/* blog index */
body.site-shell--editorial .blog-page {
    background: var(--editorial-bg);
    min-height: 100vh;
}

body.site-shell--editorial .blog-page .blog-header {
    padding: clamp(2.75rem, 4.5vw, 4.5rem) 0;
    text-align: left;
    color: var(--editorial-ink);
    position: relative;
    border-bottom: 1px solid var(--editorial-border);
}

body.site-shell--editorial .blog-page .blog-header::before {
    background: rgba(251, 248, 243, 0.84);
}

body.site-shell--editorial .blog-page .blog-header .container {
    position: relative;
    z-index: 1;
}

body.site-shell--editorial .blog-page .blog-header h1 {
    color: var(--editorial-ink);
    font-size: clamp(3rem, 5vw, 5.1rem);
    line-height: 0.95;
    margin-bottom: 0.75rem;
    max-width: 12ch;
}

body.site-shell--editorial .blog-page .blog-header p {
    color: var(--editorial-muted);
    font-size: 1.06rem;
    max-width: 52rem;
    line-height: 1.75;
}

body.site-shell--editorial .blog-page .featured-posts,
body.site-shell--editorial .blog-page .blog-content,
body.site-shell--editorial .blog-page .newsletter-section {
    padding: var(--editorial-section-gap) 0;
}

body.site-shell--editorial .blog-page .featured-posts {
    background: transparent;
}

body.site-shell--editorial .blog-page .featured-grid {
    grid-template-columns: minmax(0, 1.55fr) minmax(320px, 0.95fr);
    max-width: none;
    margin: 0;
}

body.site-shell--editorial .blog-page .featured-card {
    display: flex;
    flex-direction: column;
    background: var(--editorial-surface-strong);
    border: 1px solid var(--editorial-border);
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: var(--editorial-shadow);
}

body.site-shell--editorial .blog-page .featured-card.main {
    grid-row: auto;
}

body.site-shell--editorial .blog-page .featured-card .card-image {
    position: relative;
    aspect-ratio: 16 / 10;
    background: var(--editorial-surface-muted);
}

body.site-shell--editorial .blog-page .featured-card.main .card-image,
body.site-shell--editorial .blog-page .featured-card:not(.main) .card-image {
    min-height: 0;
    height: auto;
}

body.site-shell--editorial .blog-page .featured-card.main .card-content,
body.site-shell--editorial .blog-page .featured-card:not(.main) .card-content {
    position: static;
    background: transparent;
    color: var(--editorial-ink);
    padding: 1.1rem;
}

body.site-shell--editorial .blog-page .featured-card.main .card-content h2 a,
body.site-shell--editorial .blog-page .featured-card h2 a {
    color: var(--editorial-ink);
}

body.site-shell--editorial .blog-page .featured-card p,
body.site-shell--editorial .blog-page .post-card p {
    color: var(--editorial-muted);
}

body.site-shell--editorial .blog-page .category-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: flex-start;
    margin-bottom: 1.5rem;
}

body.site-shell--editorial .blog-page .category-tag {
    padding: 0.55rem 1rem;
    border-radius: 999px;
    background: var(--editorial-surface-strong);
    color: var(--editorial-ink);
    border: 1px solid var(--editorial-border);
    text-decoration: none;
    font-size: 0.9rem;
}

body.site-shell--editorial .blog-page .category-tag:hover,
body.site-shell--editorial .blog-page .category-tag.active {
    background: var(--editorial-ink);
    color: #fff;
    border-color: var(--editorial-ink);
}

body.site-shell--editorial .blog-page .posts-grid {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    max-width: none;
    margin: 0;
}

body.site-shell--editorial .blog-page .post-card {
    overflow: hidden;
}

body.site-shell--editorial .blog-page .post-card .post-content {
    padding: 1.2rem;
}

body.site-shell--editorial .blog-page .no-posts {
    grid-column: 1 / -1;
    padding: 3rem 2rem;
    text-align: center;
}

body.site-shell--editorial .blog-page .newsletter-section {
    background: #241b19;
    color: rgba(255, 248, 242, 0.92);
}

body.site-shell--editorial .blog-page .newsletter-text h2,
body.site-shell--editorial .blog-page .newsletter-text p,
body.site-shell--editorial .blog-page .privacy-note {
    color: inherit;
}

body.site-shell--editorial .blog-page .newsletter-form input[type="email"] {
    background: #fff;
    border: 1px solid var(--editorial-border);
    border-radius: 0.85rem;
}

body.site-shell--editorial .blog-page .newsletter-form button {
    background: var(--editorial-accent-strong);
    border-radius: 0.85rem;
}

/* blog article */
body.site-shell--editorial .blog-post {
    background: var(--editorial-bg);
    min-height: 100vh;
}

body.site-shell--editorial .blog-post .post-hero {
    position: relative;
    padding: clamp(3.25rem, 5vw, 5rem) 0 clamp(2.5rem, 4vw, 3.5rem);
    color: #fff;
    min-height: 420px;
    display: flex;
    align-items: flex-end;
    border-bottom: 1px solid var(--editorial-border);
}

body.site-shell--editorial .blog-post .hero-image {
    background-size: cover;
    background-position: center;
}

body.site-shell--editorial .blog-post .hero-overlay {
    background: linear-gradient(180deg, rgba(20, 17, 16, 0.12) 8%, rgba(20, 17, 16, 0.72));
}

body.site-shell--editorial .blog-post .post-hero .container {
    position: relative;
    z-index: 1;
    max-width: none;
}

body.site-shell--editorial .blog-post .breadcrumb {
    margin-bottom: 1.25rem;
    font-size: 0.9rem;
}

body.site-shell--editorial .blog-post .breadcrumb a {
    color: rgba(255, 255, 255, 0.82);
}

body.site-shell--editorial .blog-post .breadcrumb span {
    margin: 0 0.5rem;
    color: rgba(255, 255, 255, 0.6);
}

body.site-shell--editorial .blog-post .post-category {
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #fff;
    letter-spacing: 0.16em;
}

body.site-shell--editorial .blog-post .post-hero h1 {
    color: #fff;
    font-size: clamp(3rem, 5vw, 5.25rem);
    line-height: 0.94;
    margin-bottom: 1rem;
    max-width: 14ch;
}

body.site-shell--editorial .blog-post .post-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.25rem;
    color: rgba(255, 255, 255, 0.88);
    font-size: 0.92rem;
}

body.site-shell--editorial .blog-post .post-content-section {
    padding: var(--editorial-section-gap) 0;
}

body.site-shell--editorial .blog-post .content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
    gap: clamp(1.5rem, 3vw, 3rem);
    max-width: none;
    margin: 0;
}

body.site-shell--editorial .blog-post .main-content,
body.site-shell--editorial .blog-post .sidebar-card {
    background: var(--editorial-surface-strong);
    border: 1px solid var(--editorial-border);
    border-radius: 1rem;
    box-shadow: var(--editorial-shadow);
}

body.site-shell--editorial .blog-post .main-content {
    padding: clamp(1.5rem, 2.5vw, 2.5rem);
}

body.site-shell--editorial .blog-post .excerpt {
    font-size: clamp(1.08rem, 1.4vw, 1.25rem);
    color: var(--editorial-ink);
    line-height: 1.8;
    margin-bottom: 2rem;
    padding-bottom: 1.75rem;
    border-bottom: 1px solid var(--editorial-border);
    font-weight: 500;
}

body.site-shell--editorial .blog-post .post-body {
    font-size: 1.04rem;
    line-height: 1.9;
    color: var(--editorial-ink);
}

body.site-shell--editorial .blog-post .post-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 2rem;
}

body.site-shell--editorial .blog-post .post-tags .label {
    font-weight: 700;
    color: var(--editorial-muted);
}

body.site-shell--editorial .blog-post .post-tags .tag {
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    background: var(--editorial-surface-muted);
    color: var(--editorial-muted);
    text-decoration: none;
}

body.site-shell--editorial .blog-post .sidebar-card {
    padding: 1.15rem;
}

body.site-shell--editorial .blog-post .sidebar-card h4 {
    margin-bottom: 1rem;
    font-size: 1rem;
}

body.site-shell--editorial .blog-post .related-posts a,
body.site-shell--editorial .blog-post .toc a {
    color: var(--editorial-ink);
}

body.site-shell--editorial .blog-post .newsletter-card {
    background: var(--editorial-surface-muted);
}

@media (min-width: 1440px) {
    body.site-shell--editorial .container {
        width: min(calc(100% - (var(--editorial-gutter) * 2)), var(--editorial-page-max));
    }

    body.site-shell--editorial .portal-home .portal-hero__grid,
    body.site-shell--editorial .discovery-home .portal-hero__grid {
        grid-template-columns: minmax(0, 1.15fr) minmax(360px, 0.85fr);
    }

    body.site-shell--editorial .blog-page .featured-grid {
        grid-template-columns: minmax(0, 1.6fr) minmax(360px, 0.9fr);
    }

    body.site-shell--editorial .store-page .products-grid,
    body.site-shell--editorial .portal-home .product-grid,
    body.site-shell--editorial .discovery-home .product-grid {
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    }
}

@media (max-width: 1180px) {
    .editorial-nav-links {
        display: none;
    }

    .nav-search-pill {
        display: none;
    }

    .editorial-header .mobile-menu-btn {
        display: inline-flex;
    }

    .editorial-nav__inner {
        grid-template-columns: auto 1fr auto;
    }
}

@media (max-width: 992px) {
    .editorial-footer .footer-content {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .editorial-footer .footer-about {
        grid-column: 1 / -1;
    }

    body.site-shell--editorial .portal-home .portal-hero__grid,
    body.site-shell--editorial .discovery-home .portal-hero__grid,
    body.site-shell--editorial .rankings-page .content-grid,
    body.site-shell--editorial .store-page .store-layout,
    body.site-shell--editorial .blog-post .content-grid,
    body.site-shell--editorial .blog-page .featured-grid {
        grid-template-columns: 1fr;
    }

    body.site-shell--editorial .store-page .store-sidebar {
        position: static;
    }
}

@media (max-width: 768px) {
    .editorial-nav__inner {
        gap: 0.65rem;
    }

    .editorial-brand__text small {
        display: none;
    }

    body.site-shell--editorial .section-heading,
    body.site-shell--editorial .rankings-page .card-footer,
    body.site-shell--editorial .blog-post .post-meta {
        align-items: flex-start;
        flex-direction: column;
    }

    body.site-shell--editorial .portal-home .portal-hero__copy h1,
    body.site-shell--editorial .discovery-home .portal-hero__copy h1,
    body.site-shell--editorial .rankings-page .rankings-hero h1,
    body.site-shell--editorial .store-page .store-hero h1,
    body.site-shell--editorial .blog-page .blog-header h1,
    body.site-shell--editorial .blog-post .post-hero h1 {
        max-width: none;
    }

    body.site-shell--editorial .portal-home .portal-search-card__row,
    body.site-shell--editorial .discovery-home .portal-search-card__row,
    body.site-shell--editorial .store-page .hero-search form,
    body.site-shell--editorial .blog-page .newsletter-form .form-group {
        flex-direction: column;
    }

    body.site-shell--editorial .blog-page .newsletter-form .form-group {
        max-width: none;
    }

    .editorial-footer {
        padding-top: 3rem;
    }

    .editorial-footer .footer-content,
    .editorial-footer .footer-bottom {
        grid-template-columns: 1fr;
    }

    .editorial-footer .footer-bottom {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
    }

    .editorial-footer .footer-links {
        gap: 0.75rem 1rem;
    }
}

@media (max-width: 576px) {
    .editorial-brand__mark {
        width: 2.6rem;
        height: 2.6rem;
    }

    .editorial-brand__text strong {
        font-size: 0.98rem;
    }

    .editorial-mobile-menu {
        top: 4.6rem;
        max-height: calc(100vh - 5.2rem);
    }

    body.site-shell--editorial .portal-home .portal-hero__actions,
    body.site-shell--editorial .discovery-home .portal-hero__actions,
    body.site-shell--editorial .rankings-page .hero-filters,
    body.site-shell--editorial .store-page .store-layout,
    body.site-shell--editorial .blog-page .posts-grid,
    body.site-shell--editorial .blog-page .featured-grid {
        gap: 0.85rem;
    }

    body.site-shell--editorial .blog-page .newsletter-section {
        padding: 3rem 0;
    }
}

/* ==========================================================================
   Beauty.hk homepage — 2026 editorial campaign
   ========================================================================== */
body.site-shell--editorial.page-home { background:#fbfafc; }
body.site-shell--editorial.page-home main { overflow:clip; }
.portal-home {
    --bh-ink:#171318; --bh-paper:#fbfafc; --bh-pearl:#f4f1f5;
    --bh-blush:#edc9d9; --bh-berry:#671a40; --bh-lilac:#d9d2ed;
    --bh-chrome:#c9cbd0; --bh-line:rgba(23,19,24,.16);
    color:var(--bh-ink); background:var(--bh-paper);
    font-family:"Montserrat","Noto Sans TC",sans-serif;
}
.portal-home *, .portal-home *::before, .portal-home *::after { box-sizing:border-box; }
.portal-home img { display:block; width:100%; height:100%; object-fit:cover; }
.portal-home a { color:inherit; }
.bh-shell { width:min(1680px, calc(100% - clamp(32px,4.2vw,80px))); margin-inline:auto; }
.bh-eyebrow { margin:0 0 1.25rem; font-size:.69rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; }
.bh-section { padding:clamp(5.5rem,9vw,10rem) 0; }

.bh-hero { min-height:clamp(700px,calc(100svh - 78px),980px); display:grid; grid-template-columns:minmax(440px,43%) minmax(0,57%); background:#f8f6f8; border-bottom:1px solid var(--bh-line); }
.bh-hero__copy { min-width:0; display:flex; flex-direction:column; padding:clamp(1.5rem,2.6vw,3rem) clamp(2rem,4.5vw,6rem) clamp(1.7rem,3vw,3.2rem) max(clamp(2rem,4.5vw,6rem),calc((100vw - 1680px)/2 + 2.5rem)); }
.bh-hero__issue { display:flex; justify-content:space-between; gap:1rem; padding-bottom:1rem; border-bottom:1px solid var(--bh-line); font-size:.61rem; font-weight:700; letter-spacing:.18em; }
.bh-hero__content { margin:auto 0; padding-block:3rem; max-width:670px; }
.bh-hero__content .bh-eyebrow { color:var(--bh-berry); }
.bh-hero h1 { margin:0; font-family:"Noto Sans TC",sans-serif; font-size:clamp(3.6rem,5.9vw,7.4rem); font-weight:800; line-height:.94; letter-spacing:-.075em; }
.bh-hero h1 em,.bh-section-head h2 em,.bh-lab__intro h2 em { color:var(--bh-berry); font-family:Georgia,"Noto Serif TC",serif; font-weight:400; }
.bh-hero__lead { max-width:34rem; margin:2rem 0 0; padding-left:1.25rem; border-left:2px solid var(--bh-berry); color:#5e5760; font-size:clamp(.94rem,1vw,1.08rem); line-height:1.85; }
.bh-actions { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:2.2rem; }
.bh-button { min-height:48px; display:inline-flex; align-items:center; justify-content:space-between; gap:2rem; padding:.8rem 1rem; border:1px solid var(--bh-ink); border-radius:6px; text-decoration:none; font-size:.78rem; font-weight:700; letter-spacing:.04em; transition:background .25s,color .25s,transform .25s; }
.bh-button:hover { transform:translateY(-2px); }
.bh-button--ink { color:#fff!important; background:var(--bh-ink); min-width:210px; }
.bh-button--ink:hover { background:var(--bh-berry); border-color:var(--bh-berry); }
.bh-button--line { background:transparent; min-width:190px; }
.bh-button--line:hover { background:#fff; }
.bh-hero__foot { display:flex; align-items:center; gap:.9rem; color:#6f6870; font-size:.57rem; font-weight:700; letter-spacing:.16em; white-space:nowrap; }
.bh-hero__rule { width:clamp(24px,4vw,70px); height:1px; background:currentColor; }
.bh-hero__visual { position:relative; min-width:0; overflow:hidden; background:#d8ced4; }
.bh-hero__visual>img { object-position:center 46%; filter:saturate(.78) contrast(.96); transition:transform 1.2s cubic-bezier(.2,.7,.2,1); }
.bh-hero:hover .bh-hero__visual>img { transform:scale(1.015); }
.bh-hero__wash { position:absolute; inset:0; background:linear-gradient(180deg,rgba(48,16,34,.03) 40%,rgba(31,10,21,.54) 100%),linear-gradient(90deg,rgba(238,218,228,.18),transparent 40%); }
.bh-hero__stamp { position:absolute; top:clamp(2rem,5vw,5.2rem); right:clamp(1.5rem,4vw,4.5rem); display:flex; flex-direction:column; align-items:flex-end; color:#fff; line-height:.8; text-shadow:0 2px 30px rgba(0,0,0,.18); }
.bh-hero__stamp span { font-size:.64rem; font-weight:700; letter-spacing:.32em; }
.bh-hero__stamp strong { font-family:Georgia,serif; font-size:clamp(3rem,6.5vw,8rem); font-weight:400; font-style:italic; letter-spacing:-.08em; }
.bh-hero-pick { position:absolute; z-index:2; right:0; bottom:0; width:min(560px,70%); display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1.15rem; padding:1.15rem 1.4rem; color:#fff; background:rgba(40,15,28,.76); border-top:1px solid rgba(255,255,255,.32); backdrop-filter:blur(14px); }
.bh-hero-pick__number { font-family:Georgia,serif; font-size:2.2rem; font-style:italic; color:var(--bh-blush); }
.bh-hero-pick p { margin:0 0 .25rem; font-size:.56rem; letter-spacing:.18em; }
.bh-hero-pick h2 { margin:0; font-size:.93rem; font-weight:600; letter-spacing:-.02em; line-height:1.3; }
.bh-hero-pick>strong { font-size:.78rem; white-space:nowrap; }

.bh-index { min-height:92px; display:grid; grid-template-columns:minmax(190px,.55fr) minmax(0,3fr); align-items:stretch; border-bottom:1px solid var(--bh-line); }
.bh-index__label { display:flex; align-items:center; padding-left:max(clamp(2rem,4.5vw,6rem),calc((100vw - 1680px)/2 + 2.5rem)); color:var(--bh-berry); font-size:.62rem; font-weight:800; letter-spacing:.18em; }
.bh-index__links { display:grid; grid-template-columns:repeat(5,1fr); border-left:1px solid var(--bh-line); }
.bh-index__links a { display:flex; align-items:center; gap:.65rem; padding:1rem clamp(.7rem,1.5vw,1.6rem); border-right:1px solid var(--bh-line); text-decoration:none; font-size:.78rem; font-weight:650; transition:background .25s,color .25s; }
.bh-index__links a:hover { color:#fff; background:var(--bh-berry); }
.bh-index__links b { color:#a29aa4; font-family:Georgia,serif; font-size:.75rem; font-style:italic; }

.bh-section-head { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr); align-items:end; gap:3rem; margin-bottom:clamp(3rem,5vw,5.4rem); padding-bottom:1.5rem; border-bottom:1px solid var(--bh-line); }
.bh-section-head h2 { max-width:850px; margin:0; font-size:clamp(3rem,5.1vw,6.3rem); font-weight:760; line-height:.96; letter-spacing:-.07em; }
.bh-section-head__aside { max-width:430px; justify-self:end; }
.bh-section-head__aside p { margin:0 0 1.1rem; color:#69626b; font-size:.88rem; line-height:1.75; }
.bh-arrow-link { display:inline-flex; justify-content:space-between; gap:2.5rem; padding-bottom:.45rem; border-bottom:1px solid currentColor; text-decoration:none; font-size:.72rem; font-weight:750; letter-spacing:.06em; }
.bh-arrow-link:hover { color:var(--bh-berry); }

.bh-rankings { color:#fdf9fb; background:var(--bh-berry); }
.bh-rankings .bh-shell { position:relative; }
.bh-rankings .bh-shell::before { content:"100"; position:absolute; z-index:0; top:-7rem; right:0; color:rgba(255,255,255,.035); font-family:Georgia,serif; font-size:clamp(14rem,30vw,34rem); font-style:italic; line-height:.8; pointer-events:none; }
.bh-section-head--light { position:relative; z-index:1; border-color:rgba(255,255,255,.25); }
.bh-section-head--light .bh-eyebrow,.bh-section-head--light h2 em { color:var(--bh-blush); }
.bh-section-head--light .bh-section-head__aside p { color:rgba(255,255,255,.7); }
.bh-awards { position:relative; z-index:1; display:grid; grid-template-columns:minmax(340px,.85fr) minmax(0,1.15fr); gap:clamp(2rem,5vw,6rem); }
.bh-awards__lead { display:flex; flex-direction:column; justify-content:space-between; min-height:590px; padding:clamp(1.7rem,3vw,3rem); color:var(--bh-ink); background:linear-gradient(140deg,#fff 0%,#eee9f1 60%,#d9d2ed 100%); border-radius:2px; }
.bh-awards__seal { width:128px; aspect-ratio:1; display:flex; flex-direction:column; align-items:center; justify-content:center; border:1px solid rgba(103,26,64,.45); outline:1px solid rgba(103,26,64,.22); outline-offset:5px; border-radius:50%; color:var(--bh-berry); transform:rotate(-7deg); }
.bh-awards__seal span { font-size:.5rem; font-weight:800; letter-spacing:.19em; }
.bh-awards__seal strong { margin:.18rem 0; font-family:Georgia,serif; font-size:1.25rem; font-style:italic; }
.bh-awards__meta { display:flex; justify-content:space-between; gap:1rem; padding-bottom:.7rem; border-bottom:1px solid var(--bh-line); color:#776e77; font-size:.61rem; font-weight:700; letter-spacing:.1em; }
.bh-awards__lead-copy h3 { margin:1.2rem 0 .8rem; font-size:clamp(2rem,3vw,3.8rem); line-height:1.02; letter-spacing:-.055em; }
.bh-awards__lead-copy p { margin:0 0 1.6rem; color:#5f5860; font-size:.9rem; line-height:1.75; }
.bh-awards__lead-copy>a { font-size:.7rem; font-weight:800; letter-spacing:.08em; text-decoration:none; }
.bh-awards__lists { border-top:1px solid rgba(255,255,255,.3); }
.bh-ranking-list { padding:1.8rem 0 2rem; border-bottom:1px solid rgba(255,255,255,.3); }
.bh-ranking-list header { display:flex; justify-content:space-between; gap:2rem; margin-bottom:1.4rem; }
.bh-ranking-list header>div { display:grid; grid-template-columns:2rem 1fr; align-items:start; gap:1rem; }
.bh-ranking-list header span { color:var(--bh-blush); font-family:Georgia,serif; font-size:.85rem; font-style:italic; }
.bh-ranking-list header h3 { margin:0; font-size:clamp(1.25rem,2vw,2rem); font-weight:650; letter-spacing:-.04em; }
.bh-ranking-list header a { font-size:1.2rem; text-decoration:none; }
.bh-ranking-list ol { margin:0 0 0 3rem; padding:0; list-style:none; }
.bh-ranking-list li { display:grid; grid-template-columns:3rem 1fr auto; gap:1rem; align-items:baseline; padding:.64rem 0; border-top:1px solid rgba(255,255,255,.12); }
.bh-rank-no { color:var(--bh-blush); font-family:Georgia,serif; font-size:1.1rem; font-style:italic; }
.bh-rank-product { font-size:.82rem; }
.bh-rank-score { color:rgba(255,255,255,.62); font-size:.62rem; font-weight:700; letter-spacing:.1em; }

.bh-products { background:linear-gradient(180deg,#fbfafc 0%,#f5f1f5 100%); }
.bh-products .bh-eyebrow,.bh-guides .bh-eyebrow { color:var(--bh-berry); }
.bh-product-stage { display:grid; grid-template-columns:minmax(340px,.7fr) minmax(0,1.3fr); gap:clamp(1.5rem,3vw,3rem); }
.bh-product-lead { display:grid; grid-template-rows:minmax(430px,1fr) auto; background:#fff; border-top:3px solid var(--bh-berry); }
.bh-product-lead__image { position:relative; min-height:0; overflow:hidden; background:#eee9ef; }
.bh-product-lead__image img,.bh-product-card__image img { object-fit:cover; transition:transform .55s ease; }
.bh-product-lead:hover img,.bh-product-card:hover img { transform:scale(1.025); }
.bh-product-lead__index { position:absolute; left:1rem; top:1rem; padding:.48rem .65rem; color:#fff; background:var(--bh-berry); font-size:.55rem; font-weight:800; letter-spacing:.14em; }
.bh-product-lead__badge { position:absolute; right:1rem; top:1rem; padding:.45rem .65rem; color:var(--bh-berry); background:rgba(255,255,255,.9); border-radius:999px; font-size:.54rem; font-weight:800; letter-spacing:.1em; }
.bh-product-lead__body { padding:1.5rem; border:1px solid var(--bh-line); border-top:0; }
.bh-product-lead__body>p,.bh-product-card__body>p { margin:0 0 .65rem; color:var(--bh-berry); font-size:.59rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.bh-product-lead__body h3 { margin:0; font-size:clamp(1.6rem,2.4vw,2.8rem); letter-spacing:-.05em; }
.bh-product-lead__body>span,.bh-product-card__body>span { display:block; margin-top:.45rem; color:#827a83; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; }
.bh-product-lead__copy { margin-top:1rem; color:#69616a; font-size:.82rem; line-height:1.7; }
.bh-product-lead__meta { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-top:1.2rem; padding-top:1rem; border-top:1px solid var(--bh-line); }
.bh-product-lead__meta strong { font-family:Georgia,serif; font-size:1.25rem; }
.bh-product-lead__meta span { color:var(--bh-berry); font-size:.75rem; }
.bh-product-rail { min-width:0; display:grid; grid-template-columns:repeat(2,minmax(220px,1fr)); gap:1.25rem; }
.bh-product-card { min-width:0; display:grid; grid-template-columns:minmax(125px,.8fr) minmax(0,1.2fr); background:rgba(255,255,255,.72); border-bottom:1px solid var(--bh-line); }
.bh-product-card:first-child { grid-column:span 2; grid-template-columns:1.1fr .9fr; }
.bh-product-card__image { position:relative; min-height:235px; overflow:hidden; border-radius:6px; background:#ece8ed; }
.bh-product-card:first-child .bh-product-card__image { min-height:340px; }
.bh-product-card__image>span { position:absolute; top:.75rem; left:.75rem; display:grid; place-items:center; width:2rem; height:2rem; color:#fff; background:var(--bh-berry); border-radius:50%; font-family:Georgia,serif; font-size:.75rem; font-style:italic; }
.bh-product-card__body { display:flex; flex-direction:column; justify-content:center; min-width:0; padding:1rem 1.2rem; }
.bh-product-card__body h3 { margin:0; font-size:clamp(1rem,1.25vw,1.35rem); line-height:1.15; letter-spacing:-.035em; }
.bh-product-card__body>div { display:flex; justify-content:space-between; gap:.5rem; margin-top:1rem; padding-top:.85rem; border-top:1px solid var(--bh-line); }
.bh-product-card__body strong { font-family:Georgia,serif; }
.bh-product-card__body em { color:var(--bh-berry); font-size:.67rem; font-style:normal; }
.bh-trending { display:grid; grid-template-columns:180px 1fr; gap:1rem; align-items:start; margin-top:2.4rem; padding:1.2rem 0; border-block:1px solid var(--bh-line); }
.bh-trending>span { color:var(--bh-berry); font-size:.61rem; font-weight:800; letter-spacing:.16em; }
.bh-trending>div { display:flex; flex-wrap:wrap; gap:.6rem 1.5rem; }
.bh-trending a { text-decoration:none; font-size:.7rem; font-weight:650; }
.bh-trending a:hover { color:var(--bh-berry); }

.bh-guides { background:#fff; }
.bh-guide-mosaic { display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(1rem,2vw,2rem); align-items:start; }
.bh-guide-card { min-width:0; }
.bh-guide-card--1 { grid-column:span 7; }
.bh-guide-card--2 { grid-column:9/span 4; margin-top:8rem; }
.bh-guide-card--3 { grid-column:2/span 4; margin-top:2rem; }
.bh-guide-card--4 { grid-column:7/span 6; margin-top:-1rem; }
.bh-guide-card__image { display:block; overflow:hidden; border-radius:4px; background:#eee; }
.bh-guide-card--1 .bh-guide-card__image { aspect-ratio:16/10; }
.bh-guide-card--2 .bh-guide-card__image,.bh-guide-card--3 .bh-guide-card__image { aspect-ratio:4/5; }
.bh-guide-card--4 .bh-guide-card__image { aspect-ratio:16/9; }
.bh-guide-card__image img { transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .4s; }
.bh-guide-card:hover img { transform:scale(1.025); filter:saturate(.86); }
.bh-guide-card__body { padding:1.1rem 0 0; }
.bh-guide-card__meta { display:flex; justify-content:space-between; gap:1rem; color:#837b84; font-size:.56rem; font-weight:700; letter-spacing:.12em; }
.bh-guide-card__meta span { color:var(--bh-berry); }
.bh-guide-card h3 { max-width:18ch; margin:.75rem 0; font-size:clamp(1.5rem,2.45vw,3rem); line-height:1.08; letter-spacing:-.055em; }
.bh-guide-card h3 a { text-decoration:none; }
.bh-guide-card p { max-width:56ch; margin:0; color:#686169; font-size:.8rem; line-height:1.7; }
.bh-guide-card__read { display:inline-flex; gap:1rem; margin-top:1rem; padding-bottom:.3rem; border-bottom:1px solid currentColor; font-size:.65rem; font-weight:800; letter-spacing:.06em; text-decoration:none; }

.bh-lab { color:#fff; background:#201a24; }
.bh-lab .bh-shell { display:grid; grid-template-columns:minmax(320px,.75fr) minmax(0,1.25fr); gap:clamp(3rem,8vw,9rem); align-items:start; }
.bh-lab__intro { position:sticky; top:7rem; }
.bh-lab__intro .bh-eyebrow { color:var(--bh-lilac); }
.bh-lab__intro h2 { max-width:9ch; margin:0; font-size:clamp(3.1rem,5vw,6rem); line-height:.96; letter-spacing:-.07em; }
.bh-lab__intro h2 em { color:var(--bh-blush); }
.bh-lab__intro>p:not(.bh-eyebrow) { max-width:34rem; margin:1.8rem 0; color:rgba(255,255,255,.63); font-size:.88rem; line-height:1.8; }
.bh-lab .bh-button--line { color:#fff; border-color:rgba(255,255,255,.55); }
.bh-lab .bh-button--line:hover { color:var(--bh-ink); background:#fff; }
.bh-lab__matrix { border-top:1px solid rgba(255,255,255,.28); }
.bh-formula { display:grid; grid-template-columns:3.3rem minmax(180px,.75fr) minmax(220px,1fr) auto; gap:1.5rem; align-items:center; min-height:190px; padding:1.5rem 0; border-bottom:1px solid rgba(255,255,255,.28); }
.bh-formula__code { align-self:start; color:var(--bh-lilac); font-family:Georgia,serif; font-size:.9rem; font-style:italic; }
.bh-formula__name>span { display:inline-block; margin-bottom:.6rem; padding:.32rem .6rem; color:var(--bh-ink); background:var(--bh-lilac); border-radius:999px; font-size:.55rem; font-weight:800; letter-spacing:.1em; }
.bh-formula h3 { margin:0; font-size:clamp(1.8rem,2.6vw,3rem); letter-spacing:-.055em; }
.bh-formula__name em { color:rgba(255,255,255,.46); font-family:Georgia,serif; font-size:.82rem; }
.bh-formula>p { margin:0; color:rgba(255,255,255,.62); font-size:.8rem; line-height:1.75; }
.bh-formula__plus { color:var(--bh-blush); font-size:1.6rem; font-weight:200; }

.bh-centers { padding-block:clamp(4.5rem,7vw,7rem); background:#eee9ef; }
.bh-centers__head { display:grid; grid-template-columns:1.25fr .7fr auto; gap:clamp(1.5rem,4vw,4rem); align-items:end; margin-bottom:2.5rem; }
.bh-centers__head .bh-eyebrow { color:var(--bh-berry); }
.bh-centers__head h2 { margin:0; font-size:clamp(2.4rem,4vw,4.8rem); letter-spacing:-.065em; }
.bh-centers__head>p { margin:0; color:#69616a; font-size:.8rem; line-height:1.7; }
.bh-center-list { border-top:1px solid var(--bh-line); }
.bh-center-row { display:grid; grid-template-columns:clamp(130px,14vw,220px) 3rem minmax(0,1fr) auto; gap:clamp(1rem,2.5vw,2.5rem); align-items:center; padding:1rem 0; border-bottom:1px solid var(--bh-line); }
.bh-center-row__image { position:relative; aspect-ratio:16/9; overflow:hidden; border-radius:4px; }
.bh-center-row__image img { transition:transform .5s; }
.bh-center-row:hover .bh-center-row__image img { transform:scale(1.035); }
.bh-center-row__image span { position:absolute; left:.5rem; bottom:.5rem; padding:.3rem .45rem; color:#fff; background:var(--bh-berry); font-size:.47rem; font-weight:800; letter-spacing:.1em; }
.bh-center-row__index { color:#978e98; font-family:Georgia,serif; font-size:1.2rem; font-style:italic; }
.bh-center-row__body>div { display:flex; gap:1.25rem; color:#7a727b; font-size:.6rem; font-weight:700; letter-spacing:.08em; }
.bh-center-row__body h3 { margin:.35rem 0; font-size:clamp(1.25rem,2vw,2.1rem); letter-spacing:-.045em; }
.bh-center-row__body h3 a { text-decoration:none; }
.bh-center-row__body p { margin:0; color:#766e77; font-size:.7rem; }
.bh-center-row__action { display:flex; align-items:center; gap:1.5rem; }
.bh-center-row__action>span { color:#746c75; font-size:.68rem; }
.bh-center-row__action a { display:grid; place-items:center; width:42px; height:42px; border:1px solid var(--bh-ink); border-radius:50%; text-decoration:none; transition:background .25s,color .25s; }
.bh-center-row__action a:hover { color:#fff; background:var(--bh-berry); border-color:var(--bh-berry); }
.bh-empty { padding:2rem 0; color:#6c646d; }

.bh-closing { display:grid; grid-template-columns:1.35fr .65fr; min-height:460px; color:#fff; background:var(--bh-berry); }
.bh-closing>div { display:flex; flex-direction:column; justify-content:space-between; padding:clamp(3rem,6vw,7rem) clamp(2rem,5vw,6rem) clamp(3rem,6vw,6rem) max(clamp(2rem,5vw,6rem),calc((100vw - 1680px)/2 + 2.5rem)); background:radial-gradient(circle at 20% 20%,rgba(237,201,217,.22),transparent 35%); }
.bh-closing>div p { margin:0; color:var(--bh-blush); font-size:.65rem; font-weight:800; letter-spacing:.22em; }
.bh-closing h2 { max-width:13ch; margin:3rem 0 0; font-size:clamp(3.2rem,5.5vw,6.8rem); line-height:.95; letter-spacing:-.07em; }
.bh-closing nav { display:grid; grid-template-rows:repeat(4,1fr); border-left:1px solid rgba(255,255,255,.28); }
.bh-closing nav a { display:flex; align-items:center; justify-content:space-between; padding:1.5rem clamp(1.5rem,3vw,3rem); border-bottom:1px solid rgba(255,255,255,.28); text-decoration:none; font-size:clamp(1rem,1.3vw,1.3rem); transition:background .25s; }
.bh-closing nav a:hover { background:rgba(255,255,255,.09); }
.bh-closing nav span { color:var(--bh-blush); font-family:Georgia,serif; font-size:.75rem; font-style:italic; }

@media (max-width:1100px) {
    .bh-hero { grid-template-columns:1fr 1.08fr; }
    .bh-hero__copy { padding-inline:2rem; }
    .bh-product-stage { grid-template-columns:.9fr 1.1fr; }
    .bh-product-rail { grid-template-columns:1fr; }
    .bh-product-card:first-child { grid-column:auto; grid-template-columns:minmax(125px,.8fr) minmax(0,1.2fr); }
    .bh-product-card:first-child .bh-product-card__image { min-height:235px; }
    .bh-centers__head { grid-template-columns:1fr auto; }
    .bh-centers__head>p { grid-row:2; }
}
@media (max-width:820px) {
    .bh-section { padding-block:4.5rem; }
    .bh-hero { min-height:auto; grid-template-columns:1fr; }
    .bh-hero__copy { min-height:650px; padding:1.4rem max(1.25rem,5vw) 2rem; }
    .bh-hero__visual { min-height:72svh; }
    .bh-hero__stamp { right:1.5rem; }
    .bh-hero-pick { width:calc(100% - 1.25rem); }
    .bh-index { display:block; overflow-x:auto; }
    .bh-index__label { min-height:52px; padding-left:1.25rem; }
    .bh-index__links { min-width:720px; height:74px; border-top:1px solid var(--bh-line); border-left:0; }
    .bh-section-head { grid-template-columns:1fr; align-items:start; gap:1.5rem; }
    .bh-section-head__aside { justify-self:start; }
    .bh-awards,.bh-product-stage,.bh-lab .bh-shell { grid-template-columns:1fr; }
    .bh-awards__lead { min-height:520px; }
    .bh-guide-card--1 { grid-column:span 8; }
    .bh-guide-card--2 { grid-column:9/span 4; margin-top:5rem; }
    .bh-guide-card--3 { grid-column:1/span 5; }
    .bh-guide-card--4 { grid-column:6/span 7; margin-top:2rem; }
    .bh-lab__intro { position:static; }
    .bh-centers__head { grid-template-columns:1fr; align-items:start; }
    .bh-centers__head>p { grid-row:auto; }
    .bh-center-row { grid-template-columns:130px 2rem minmax(0,1fr); }
    .bh-center-row__action { grid-column:3; }
    .bh-closing { grid-template-columns:1fr; }
    .bh-closing nav { border-left:0; border-top:1px solid rgba(255,255,255,.28); }
}
@media (max-width:580px) {
    .bh-shell { width:calc(100% - 32px); }
    .bh-eyebrow { font-size:.6rem; }
    .bh-hero__copy { min-height:610px; }
    .bh-hero__issue span:last-child { display:none; }
    .bh-hero h1 { font-size:clamp(3.25rem,16vw,5.2rem); }
    .bh-hero__lead { font-size:.88rem; }
    .bh-actions { display:grid; }
    .bh-button { width:100%; }
    .bh-hero__foot span:last-child { overflow:hidden; text-overflow:ellipsis; }
    .bh-hero__visual { min-height:580px; }
    .bh-hero__stamp strong { font-size:4rem; }
    .bh-hero-pick { grid-template-columns:auto 1fr; }
    .bh-hero-pick>strong { display:none; }
    .bh-section-head h2 { font-size:clamp(2.75rem,14vw,4.2rem); }
    .bh-awards__lead { min-height:470px; }
    .bh-ranking-list header>div { grid-template-columns:1.5rem 1fr; }
    .bh-ranking-list ol { margin-left:0; }
    .bh-ranking-list li { grid-template-columns:2.3rem 1fr auto; gap:.6rem; }
    .bh-product-stage { display:block; }
    .bh-product-rail { margin-top:1rem; }
    .bh-product-card,.bh-product-card:first-child { grid-template-columns:118px minmax(0,1fr); }
    .bh-product-card__image,.bh-product-card:first-child .bh-product-card__image { min-height:190px; }
    .bh-guide-mosaic { display:block; }
    .bh-guide-card { margin:0 0 3rem; }
    .bh-guide-card__image,.bh-guide-card--1 .bh-guide-card__image,.bh-guide-card--2 .bh-guide-card__image,.bh-guide-card--3 .bh-guide-card__image,.bh-guide-card--4 .bh-guide-card__image { aspect-ratio:4/3; }
    .bh-guide-card h3 { font-size:1.8rem; }
    .bh-formula { grid-template-columns:2rem 1fr auto; gap:1rem; padding-block:1.4rem; }
    .bh-formula>p { grid-column:2/4; }
    .bh-center-row { grid-template-columns:105px 1fr; gap:1rem; }
    .bh-center-row__index { display:none; }
    .bh-center-row__action { grid-column:2; }
    .bh-center-row__action a { width:38px; height:38px; }
    .bh-center-row__body>div { flex-wrap:wrap; gap:.35rem .8rem; }
    .bh-closing { min-height:0; }
    .bh-closing>div { min-height:410px; }
    .bh-closing h2 { font-size:3.4rem; }
}
@media (prefers-reduced-motion:reduce) {
    .portal-home * { scroll-behavior:auto!important; transition:none!important; }
}


/* Homepage discovery extensions: Beauty Pulse, Routine Studio, Community Edit */
.portal-home .bh-pulse,
.portal-home .bh-routine,
.portal-home .bh-community {
    padding: clamp(4.5rem, 8vw, 9rem) 0;
}

.portal-home .bh-pulse {
    background: #fff;
    border-block: 1px solid rgba(28, 23, 32, .12);
}

.portal-home .bh-pulse__head,
.portal-home .bh-community__head {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr) auto;
    align-items: end;
    gap: clamp(1.5rem, 4vw, 5rem);
    padding-bottom: clamp(2.5rem, 5vw, 5rem);
}

.portal-home .bh-pulse__head h2,
.portal-home .bh-community__head h2,
.portal-home .bh-routine__head h2 {
    margin: .65rem 0 0;
    max-width: 14ch;
    font-size: clamp(2.7rem, 5.6vw, 6.8rem);
    line-height: .94;
    letter-spacing: -.065em;
}

.portal-home .bh-pulse__head > p,
.portal-home .bh-community__head > p,
.portal-home .bh-routine__head > p {
    margin: 0;
    color: var(--editorial-muted);
    line-height: 1.8;
}

.portal-home .bh-pulse__rail {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    border-top: 1px solid #1c1720;
}

.portal-home .bh-pulse-item {
    position: relative;
    display: grid;
    grid-template-rows: auto minmax(14rem, 23vw) auto;
    gap: 1rem;
    min-width: 0;
    padding: 1.1rem clamp(.75rem, 1.25vw, 1.35rem) 1.4rem;
    color: var(--editorial-ink);
    border-right: 1px solid var(--editorial-border);
    text-decoration: none;
}

.portal-home .bh-pulse-item:last-child { border-right: 0; }
.portal-home .bh-pulse-item__number { font: 600 .72rem/1 Montserrat, sans-serif; letter-spacing: .18em; }
.portal-home .bh-pulse-item__image { overflow: hidden; border-radius: 3px; background: #f1edf4; }
.portal-home .bh-pulse-item__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.portal-home .bh-pulse-item:hover img { transform: scale(1.035); }
.portal-home .bh-pulse-item small { color: var(--editorial-accent-strong); font-size: .68rem; letter-spacing: .12em; }
.portal-home .bh-pulse-item h3 { margin: .35rem 0 .55rem; font-size: clamp(1rem, 1.2vw, 1.3rem); line-height: 1.35; }
.portal-home .bh-pulse-item div > span { color: var(--editorial-muted); font-size: .78rem; }

.portal-home .bh-routine {
    color: #fff;
    background: #241d2a;
}

.portal-home .bh-routine .bh-eyebrow { color: #e8a9c7; }
.portal-home .bh-routine__head {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr);
    align-items: end;
    gap: clamp(2rem, 6vw, 8rem);
    margin-bottom: clamp(3rem, 6vw, 6rem);
}
.portal-home .bh-routine__head > p { color: rgba(255,255,255,.68); max-width: 32rem; }
.portal-home .bh-routine__grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.25); }
.portal-home .bh-routine-card {
    display: flex;
    min-height: 24rem;
    flex-direction: column;
    padding: clamp(1.5rem, 3vw, 3rem);
    color: #fff;
    border-right: 1px solid rgba(255,255,255,.2);
    text-decoration: none;
    background: transparent;
    transition: background .25s ease;
}
.portal-home .bh-routine-card:last-child { border-right: 0; }
.portal-home .bh-routine-card:hover { background: rgba(220,120,164,.1); }
.portal-home .bh-routine-card > span { color: #e8a9c7; font: 600 .72rem/1 Montserrat,sans-serif; letter-spacing: .18em; }
.portal-home .bh-routine-card h3 { margin: auto 0 1rem; color: #fff; font-size: clamp(1.6rem, 2.4vw, 2.8rem); letter-spacing: -.04em; }
.portal-home .bh-routine-card p { color: rgba(255,255,255,.64); max-width: 28rem; }
.portal-home .bh-routine-card strong { margin-top: 1.5rem; font-size: .8rem; letter-spacing: .08em; }

.portal-home .bh-community { background: #f1edf4; }
.portal-home .bh-community__list { border-top: 1px solid #1c1720; }
.portal-home .bh-community-row {
    display: grid;
    grid-template-columns: 5rem minmax(0, 1fr) 10rem 3rem;
    align-items: center;
    gap: clamp(1rem, 3vw, 3rem);
    padding: 1.5rem 0;
    border-bottom: 1px solid rgba(28,23,32,.16);
}
.portal-home .bh-community-row__rank { color: var(--editorial-accent-strong); font: 600 .8rem/1 Montserrat,sans-serif; letter-spacing: .12em; }
.portal-home .bh-community-row small { color: var(--editorial-muted); font-size: .68rem; letter-spacing: .1em; }
.portal-home .bh-community-row h3 { margin: .3rem 0 0; font-size: clamp(1.15rem, 1.8vw, 1.8rem); }
.portal-home .bh-community-row h3 a { color: inherit; text-decoration: none; }
.portal-home .bh-community-row__score { display: grid; grid-template-columns: auto 1fr; align-items: baseline; }
.portal-home .bh-community-row__score strong { font-size: 2rem; }
.portal-home .bh-community-row__score > small { grid-column: 1 / -1; }
.portal-home .bh-community-row > a:last-child { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: 1px solid currentColor; border-radius: 50%; color: inherit; text-decoration: none; }

@media (max-width: 1050px) {
    .portal-home .bh-pulse__head,
    .portal-home .bh-community__head { grid-template-columns: 1fr 1fr; }
    .portal-home .bh-pulse__head .bh-arrow-link { grid-column: 1 / -1; justify-self: start; }
    .portal-home .bh-pulse__rail { grid-template-columns: repeat(3, minmax(15rem, 1fr)); overflow-x: auto; }
    .portal-home .bh-pulse-item { min-width: 15rem; }
}

@media (max-width: 760px) {
    .portal-home .bh-pulse,
    .portal-home .bh-routine,
    .portal-home .bh-community { padding: 4.5rem 0; }
    .portal-home .bh-pulse__head,
    .portal-home .bh-community__head,
    .portal-home .bh-routine__head { grid-template-columns: 1fr; gap: 1.25rem; }
    .portal-home .bh-pulse__head h2,
    .portal-home .bh-community__head h2,
    .portal-home .bh-routine__head h2 { font-size: clamp(2.6rem, 14vw, 4.4rem); }
    .portal-home .bh-pulse__rail { grid-template-columns: repeat(5, 78vw); margin-right: calc(var(--editorial-gutter) * -1); }
    .portal-home .bh-pulse-item { grid-template-rows: auto 20rem auto; }
    .portal-home .bh-routine__grid { grid-template-columns: 1fr; }
    .portal-home .bh-routine-card { min-height: 18rem; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.2); }
    .portal-home .bh-community-row { grid-template-columns: 3rem minmax(0,1fr) 2.5rem; }
    .portal-home .bh-community-row__score { grid-column: 2; grid-row: 2; justify-self: start; }
    .portal-home .bh-community-row > a:last-child { grid-column: 3; grid-row: 1 / 3; }
}
