/* CHG-088: editorial roles shared by V2 and legacy page templates.
 * One selector list per shared type role; component aliases keep their markup.
 * Shadow cards inherit the same tokens, with standalone fallbacks in their adapter.
 * Existing component rules use !important; keep this preview override last.
 * Jeferson is the registered family name of the site's Jefferson font.
 */
body.bn1-typography-preview {
    /* Shared font families, scale, card roles and palette. */
    --bn1-font-display: "Jeferson", Georgia, serif;
    --bn1-font-body: "Geologica", sans-serif;
    --bn1-type-h1: 72px;
    --bn1-type-h2: 58px;
    --bn1-type-display-card: 42px;
    --bn1-type-card: 36px;
    --bn1-type-product: 30px;
    --bn1-type-subtitle: 24px;
    --bn1-type-body: 16px;
    --bn1-type-small: 14px;
    --bn1-type-price: 40px;
    --bn1-type-control: 12px;
    --bn1-type-action: 18px;
    --bn1-font-card-title: 500 var(--bn1-type-product)/1 var(--bn1-font-body);
    --bn1-font-card-copy: 200 var(--bn1-type-body)/1.2 var(--bn1-font-body);
    --bn1-font-card-meta: 400 var(--bn1-type-small)/1.2 var(--bn1-font-body);
    --bn1-font-card-price: 500 var(--bn1-type-price)/1.1 var(--bn1-font-body);
    --bn1-font-card-from: 300 var(--bn1-type-subtitle)/1.2 var(--bn1-font-body);
    --bn1-font-card-control: 300 var(--bn1-type-control)/1.2 var(--bn1-font-body);
    --bn1-font-card-selector: 300 var(--bn1-type-control)/1.15 var(--bn1-font-body);
    --bn1-font-card-status: 500 var(--bn1-type-product)/1.2 var(--bn1-font-body);
    --bn1-font-card-action: 400 var(--bn1-type-action)/1.2 var(--bn1-font-body);
    --bn1-color-dark: var(--Banya-Base-color-Dark-Background, #14120d);
    --bn1-color-light: var(--Banya-Brown-50, #f6f3ef);
    --bn1-color-forest: #003e37;
    --bn1-color-ink: #000;
}

/* Decorative page eyebrows and the redundant event booking summary. */
body.bn1-typography-preview .bn1-about-v2 .bn1-about-v2__hero .bn1-about-v2__kicker,
body.bn1-typography-preview .bn1-about-v2__kicker:has(~ :is(h1, h2, h3, h4, h5, h6)),
body.bn1-typography-preview .bn1-v2-hero .bn1-v2-kicker,
body.bn1-typography-preview .bn1-v2-kicker:has(~ :is(h1, h2, h3, h4, h5, h6)),
body.bn1-typography-preview .bn1-sessions-v2__hero-copy > .bn1-sessions-v2__eyebrow,
body.bn1-typography-preview .heading-main__title-box > .heading-main__subtitle:has(~ h1),
body.bn1-typography-preview .heading__subtitle:has(~ :is(h1, h2, h3, h4, h5, h6)),
body.bn1-typography-preview:is(.post-type-archive-bn1_voucher, .post-type-archive-voucher, .single-bn1_voucher, .single-voucher) :is(.breadcrumbs, .breadcrumbs-wrapper),
body.bn1-typography-preview.single-workshops-and-events .bn1-event-seats-preview__time {
    display: none !important;
}

body.bn1-typography-preview .wrapper > main h1,
body.bn1-typography-preview .bn1-home-v2 .bn1-v2-hero .heading-main__title-box h1,
body.bn1-typography-preview .bn1-about-v2 h1,
body.bn1-typography-preview .bn1-sessions-v2 h1 {
    font-family: var(--bn1-font-display) !important;
    font-size: var(--bn1-type-h1) !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    overflow-wrap: break-word;
}

/* Keep long page-title words intact while allowing normal breaks between words. */
body.bn1-typography-preview.page-template-membership-template .heading-main__title,
body.bn1-typography-preview #bn1-affordable-v2 .bn1-sessions-v2__hero-title {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

body.bn1-typography-preview.page-template-membership-template .heading-main__content {
    column-gap: clamp(24px, 3vw, 48px);
}

body.bn1-typography-preview.page-template-membership-template .heading-main__left-col {
    min-width: min-content;
    max-width: none;
}

body.bn1-typography-preview .bn1-home-v2 .bn1-v2-offer-card .promo-slide-copy__text,
body.bn1-typography-preview .wrapper > main :is(p, li),
body.bn1-typography-preview :is(.heading-main__text-holder, .bn1-v2-hero__copy,
    .bn1-about-v2__hero-text, .bn1-sessions-v2__hero-text),
body.bn1-typography-preview :is(.heading-main__text-holder, .bn1-v2-hero__copy,
    .bn1-about-v2__hero-text, .bn1-sessions-v2__hero-text) p,
body.bn1-typography-preview .wrapper > main .paragraph,
body.bn1-typography-preview .wrapper > main .paragraph p,
body.bn1-typography-preview .experience .accordion__text-holder > p,
body.bn1-typography-preview .bn1-about-v2__card-copy > p,
body.bn1-typography-preview .bn1-about-v2__benefit-copy > p,
body.bn1-typography-preview .bn1-about-v2__card-body,
body.bn1-typography-preview .bn1-about-v2__card-body p {
    font-family: var(--bn1-font-body) !important;
    font-size: var(--bn1-type-body) !important;
    font-weight: 200 !important;
    line-height: 1.6 !important;
}

body.bn1-typography-preview #faq-section .faq-title,
body.bn1-typography-preview .wrapper > main h2,
body.bn1-typography-preview .bn1-home-v2 .bn1-v2-section-head h2,
body.bn1-typography-preview .bn1-about-v2 .bn1-about-v2__section-head h2,
body.bn1-typography-preview .bn1-treatments-v2 .bn1-editorial-section .bn1-mybanya-section-heading h2,
body.bn1-typography-preview .bn1-treatments-v2 .bn1-treatments-v2__section-band [data-bn1-heading-size="facilities"] .bn1-mybanya-section-heading h2,
body.bn1-typography-preview .bn1-mybanya-section-heading h2 {
    font-family: var(--bn1-font-display) !important;
    font-size: var(--bn1-type-h2) !important;
    font-weight: 400 !important;
    line-height: 1.05 !important;
    overflow-wrap: break-word;
}

body.bn1-typography-preview .bn1-about-v2 .bn1-about-v2__section-description p,
body.bn1-typography-preview .bn1-home-v2 .bn1-mybanya-heading-description p,
body.bn1-typography-preview .bn1-home-v2 :is(.bn1-v2-section--facilities,
    .bn1-v2-section--awards, .bn1-v2-section--celebrity, .bn1-v2-proof-panel)
    .bn1-mybanya-heading-description p,
body.bn1-typography-preview .bn1-mybanya-heading-description,
body.bn1-typography-preview .bn1-mybanya-heading-description p,
body.bn1-typography-preview .heading__text-holder,
body.bn1-typography-preview .heading__text-holder p,
body.bn1-typography-preview .bn1-sessions-v2__section-head > p,
body.bn1-typography-preview .bn1-sessions-v2__section-head .bn1-sessions-v2__intro,
body.bn1-typography-preview .bn1-about-v2 .bn1-about-v2__title-pair .heading-main__subtitle {
    font-family: var(--bn1-font-body) !important;
    font-size: var(--bn1-type-body) !important;
    font-weight: 200 !important;
    line-height: 1.5 !important;
}

/* Main descriptions use weight 200; short subtitles have their own role below. */
body.bn1-typography-preview .bn1-treatments-v2 .bn1-mybanya-heading-description,
body.bn1-typography-preview .bn1-treatments-v2 .bn1-mybanya-heading-description p,
body.bn1-typography-preview .bn1-sessions-v2 .bn1-mybanya-heading-description,
body.bn1-typography-preview .bn1-sessions-v2 .bn1-mybanya-heading-description p,
body.bn1-typography-preview .bn1-about-v2 #thermal-cycle .bn1-about-v2__section-description,
body.bn1-typography-preview .bn1-about-v2 #thermal-cycle .bn1-about-v2__section-description p,
body.bn1-typography-preview .bn1-home-v2 :is(#facilities, #dining-in, #awards, #celebrity-guests, #press-and-reviews, #maps-block) .bn1-mybanya-heading-description,
body.bn1-typography-preview .bn1-home-v2 :is(#facilities, #dining-in, #awards, #celebrity-guests, #press-and-reviews, #maps-block) .bn1-mybanya-heading-description p,
body.bn1-typography-preview .bn1-home-v2 #facilities .bn1-v2-facility-group__intro > p,
body.bn1-typography-preview .bn1-home-v2 :is(#facilities, #dining-in) .bn1-v2-facility-card__summary,
body.bn1-typography-preview .bn1-home-v2 :is(#facilities, #dining-in) .bn1-v2-facility-card__summary p,
body.bn1-typography-preview .bn1-home-v2 :is(#facilities, #dining-in) .bn1-v2-facility-card__summary .bn1-v2-facility-group__heading-row > span {
    font-size: var(--bn1-type-body) !important;
    font-weight: 200 !important;
}

/* Homepage section subtitles are separate from longer body descriptions. */
body.bn1-typography-preview #faq-section .accordion__title,
body.bn1-typography-preview #bn1-affordable-v2 .bn1-affordable-v2__subtitle,
body.bn1-typography-preview .wrapper > main h4,
body.bn1-typography-preview .wrapper > main .heading-main__subtitle:not(h1),
body.bn1-typography-preview .heading-main__subtitle:not(h1),
body.bn1-typography-preview .bn1-about-v2 .bn1-about-v2__title-pair .heading-main__subtitle,
body.bn1-typography-preview .bn1-home-v2 .bn1-v2-title-pair > .heading-main__subtitle,
body.bn1-typography-preview .bn1-home-v2 .bn1-v2-section--facilities .bn1-v2-title-pair > .heading-main__subtitle,
body.bn1-typography-preview .experience .accordion__title {
    font-family: var(--bn1-font-body) !important;
    font-size: var(--bn1-type-subtitle) !important;
    font-weight: 500 !important;
    text-transform: uppercase;
    line-height: 1.3 !important;
}

body.bn1-typography-preview .wrapper > main h3,
body.bn1-typography-preview .wrapper > main .bn1-home-v2 .bn1-celebrity-testimonial .bn1-celebrity-testimonial__name,
body.bn1-typography-preview .bn1-home-v2 #facilities .bn1-v2-facility-group__heading-row h3,
body.bn1-typography-preview.single-workshops-and-events h2.text-box__title,
body.bn1-typography-preview .bn1-home-v2 #press-and-reviews .bn1-v2-panel-head h2,
body.bn1-typography-preview .bn1-about-v2__benefit-copy h3,
body.bn1-typography-preview .bn1-about-v2__card-label,
body.bn1-typography-preview .bn1-sessions-v2__text-card h3,
body.bn1-typography-preview .bn1-treatments-v2 :is(#tubs-product-block-scrubs,
    #tubs-product-block-masks-wraps, #tubs-product-block-siberian-body-wash)
    .bn1-mybanya-section-heading h2 {
    font-family: var(--bn1-font-body) !important;
    font-size: var(--bn1-type-card) !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    text-transform: uppercase;
}

body.bn1-typography-preview.single-workshops-and-events h2.text-box__title,
body.bn1-typography-preview:is(.post-type-archive-bn1_voucher, .post-type-archive-voucher, .single-bn1_voucher, .single-voucher) .service-card__name {
    text-transform: uppercase;
}

/* Thermal cycle: Hot / Cold / Rest, explanation and Why. */
body.bn1-typography-preview .experience .accordion__title {
    line-height: 1.3 !important;
    align-items: center !important;
}

body.bn1-typography-preview .experience .accordion__icon-holder {
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
}

body.bn1-typography-preview .experience .accordion__icon-holder img {
    display: block;
}

body.bn1-typography-preview .experience .accordion__close {
    top: calc(12px + var(--bn1-type-subtitle) * 0.65);
    transform: translateY(-50%);
}

body.bn1-typography-preview.page-template-affordable-spa-page-template .wrapper > main .item-tickets__savings,
body.bn1-typography-preview.page-template-affordable-spa-page-template .wrapper > main .item-tickets__savings :is(p, strong, span),
body.bn1-typography-preview .wrapper > main :is(small, [role="note"], .bn1-field-note, .bn1-express-note, .bn1-secure-payment-note, .group-stripe-note),
body.bn1-typography-preview .wrapper > main .bn1-about-v2__why-quote > span,
body.bn1-typography-preview .wrapper > main .bn1-about-v2__why-quote blockquote,
body.bn1-typography-preview .wrapper > main .bn1-about-v2__why > span,
body.bn1-typography-preview .wrapper > main .bn1-about-v2__why p,
body.bn1-typography-preview .wrapper > main .bn1-about-v2__research,
body.bn1-typography-preview .wrapper > main .bn1-about-v2__benefit-meta :is(p, a) {
    font-size: var(--bn1-type-small) !important;
    font-family: var(--bn1-font-body) !important;
    font-weight: 400 !important;
    line-height: 1.55 !important;
}

/* Product-card roles: shared by Treatments, Gift Cards and legacy membership cards. */
body.bn1-typography-preview.page-template-affordable-spa-page-template .item-tickets__title,
body.bn1-typography-preview.page-template-affordable-spa-page-template #image-accordion-section-1 :is(.slide-image-accordion__preview-title, .slide-image-accordion__title),
body.bn1-typography-preview #image-accordion-section :is(.slide-image-accordion__preview-title, .slide-image-accordion__title),
body.bn1-typography-preview .bn1-home-v2 :is(#facilities, #dining-in) .bn1-v2-facility-card__copy h4,
body.bn1-typography-preview .bn1-treatments-v2 .bn1-editorial-card h3,
body.bn1-typography-preview:is(.post-type-archive-bn1_voucher, .post-type-archive-voucher, .single-bn1_voucher, .single-voucher) .service-card__name {
    font: var(--bn1-font-card-title) !important;
}

body.bn1-typography-preview #faq-section .accordion__title,
body.bn1-typography-preview #image-accordion-section :is(.slide-image-accordion__preview-title, .slide-image-accordion__title),
body.bn1-typography-preview.page-template-affordable-spa-page-template #image-accordion-section-1 :is(.slide-image-accordion__preview-title, .slide-image-accordion__title) {
    font-weight: 400 !important;
}

body.bn1-typography-preview #faq-section .accordion__title {
    text-transform: none;
}

body.bn1-typography-preview .bn1-treatments-v2 .bn1-editorial-card__description,
body.bn1-typography-preview .bn1-treatments-v2 .bn1-editorial-card__description p,
body.bn1-typography-preview .bn1-treatments-v2 .bn1-editorial-card__subtitle,
body.bn1-typography-preview:is(.post-type-archive-bn1_voucher, .post-type-archive-voucher, .single-bn1_voucher, .single-voucher) :is(.service-card__text-holder, .bn1-archive-card-copy__subtitle, .bn1-archive-card-copy__description) {
    font: var(--bn1-font-card-copy) !important;
}

body.bn1-typography-preview .bn1-treatments-v2 .bn1-editorial-card__duration {
    font: var(--bn1-font-card-meta) !important;
}

body.bn1-typography-preview.page-template-affordable-spa-page-template .item-tickets__price,
body.bn1-typography-preview.single-workshops-and-events #heading-main-section .item-tickets__price .price-container-inner__current-price,
body.bn1-typography-preview .bn1-treatments-v2 .bn1-editorial-card__detail .treatment-link,
body.bn1-typography-preview:is(.post-type-archive-bn1_voucher, .post-type-archive-voucher, .single-bn1_voucher, .single-voucher) :is(.price-container:not(.price-container--including) [class*="price-container-inner__current-price"], .bn1-selected-price > strong, .bn1-total-amount) {
    font: var(--bn1-font-card-price) !important;
}

body.bn1-typography-preview .bn1-home-v2 .bn1-v2-offer-card .promo-slide-copy__title,
body.bn1-typography-preview .bn1-about-v2__card--guide h3 {
    font-family: var(--bn1-font-display) !important;
    font-size: var(--bn1-type-display-card) !important;
    font-weight: 400 !important;
    line-height: 1.15 !important;
}

body.bn1-typography-preview .bn1-home-v2 .bn1-v2-offer-card .promo-slide-copy__title {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
}

body.bn1-typography-preview .bn1-about-v2__text-card-number,
body.bn1-typography-preview .bn1-about-v2__card-number {
    font-family: var(--bn1-font-display) !important;
    font-size: var(--bn1-type-display-card) !important;
    font-weight: 400 !important;
    line-height: 1 !important;
}

/* Archive pages use the homepage's dark palette. */
body.bn1-typography-preview:is(.post-type-archive-workshops-and-events, .post-type-archive-offer),
body.bn1-typography-preview:is(.post-type-archive-workshops-and-events, .post-type-archive-offer) :is(.bn1-home-v2, #cloth-blog-section, #services-section) {
    background: var(--bn1-color-dark) !important;
    color: var(--bn1-color-light);
}

body.bn1-typography-preview:is(.post-type-archive-workshops-and-events, .post-type-archive-offer) :is(h1, .heading__title) {
    color: var(--bn1-color-light) !important;
}

body.bn1-typography-preview:is(.post-type-archive-workshops-and-events, .post-type-archive-offer) :is(.bn1-about-v2__hero-title, .heading__title-box, .heading-main__title-box) {
    padding-left: 24px;
}

body.bn1-typography-preview:is(.post-type-archive-workshops-and-events, .post-type-archive-offer) :is(.bn1-about-v2__hero-title, .heading__title-box, .heading-main__title-box)::before {
    top: 0;
    bottom: 0;
    width: 2px;
    height: 100%;
    background: var(--bn1-color-light);
}

body.bn1-typography-preview.post-type-archive-workshops-and-events :is(.bn1-v2-section-head, h1) {
    width: 100%;
    max-width: none;
}

body.bn1-typography-preview.post-type-archive-workshops-and-events .heading__title-box {
    flex-basis: 100%;
}

body.bn1-typography-preview.post-type-archive-workshops-and-events .heading__right-col,
body.bn1-typography-preview.post-type-archive-offer .breadcrumbs-wrapper {
    display: none !important;
}

body.bn1-typography-preview.post-type-archive-offer .facetwp-radio {
    border-color: var(--Banya-Brown-300, #bdaf95) !important;
    color: var(--bn1-color-light) !important;
}

body.bn1-typography-preview.post-type-archive-offer .facetwp-radio:is(.checked, :hover, :focus-visible) {
    background: var(--bn1-color-light) !important;
    border-color: var(--bn1-color-light) !important;
    color: var(--bn1-color-dark) !important;
}

/* Gift-card typography follows the Product Library's title, body and price roles. */
body.bn1-typography-preview.bn1-bf-active:is(.post-type-archive-bn1_voucher, .post-type-archive-voucher, .single-bn1_voucher:has(.is-price-type-monetary), .single-voucher:has(.is-price-type-monetary)) :is(.bn1-vouchers-v2__hero-wrap, .heading-main-bg__Brown-100, #heading-main-section) {
    background: #000 !important;
    color: var(--bn1-color-light);
}

body.bn1-typography-preview.bn1-bf-active:is(.post-type-archive-bn1_voucher, .post-type-archive-voucher, .single-bn1_voucher:has(.is-price-type-monetary), .single-voucher:has(.is-price-type-monetary)) #heading-main-section :is(h1, .heading-main__subtitle, .paragraph, .paragraph p, .paragraph strong, [class*="price-container-inner__current-price"], .price-container-inner__name-price) {
    color: var(--bn1-color-light) !important;
}

body.bn1-typography-preview.bn1-bf-active:is(.post-type-archive-bn1_voucher, .post-type-archive-voucher, .single-bn1_voucher:has(.is-price-type-monetary), .single-voucher:has(.is-price-type-monetary)) #heading-main-section :is(.bn1-about-v2__hero-title, .heading-main__title-box)::before {
    width: 2px;
    background: var(--bn1-color-light);
}

body.bn1-typography-preview.bn1-bf-active:is(.single-bn1_voucher, .single-voucher) .is-price-type-monetary {
    --bn1-color-ink: var(--bn1-color-light);
    color-scheme: dark;
    background: #000;
    color: var(--bn1-color-light);
}

body.bn1-typography-preview.bn1-bf-active:is(.single-bn1_voucher, .single-voucher) .is-price-type-monetary :is(.bn1-inline-step-card, .bn1-purchase-custom-amount) {
    background: var(--bn1-color-dark) !important;
    border-color: rgba(186, 168, 134, .5) !important;
}

body.bn1-typography-preview.bn1-bf-active:is(.single-bn1_voucher, .single-voucher) .is-price-type-monetary :is(label, .bn1-public-price-title, .bn1-selected-title, .bn1-selected-price, .bn1-selected-price strong, .bn1-selected-price > span, .bn1-quantity-shortcuts-title, .bn1-inline-step-title) {
    color: var(--bn1-color-light) !important;
}

body.bn1-typography-preview.bn1-bf-active:is(.single-bn1_voucher, .single-voucher) .is-price-type-monetary :is(.bn1-field-note, .bn1-gift-message-limit, .bn1-inline-step-summary, .bn1-selected-price em, .sbInfo, .wps_wgm_price) {
    color: #c8c3ba !important;
}

body.bn1-typography-preview.bn1-bf-active:is(.single-bn1_voucher, .single-voucher) .is-price-type-monetary :is(input:where(:not([type="checkbox"]):not([type="radio"]):not([type="hidden"])), textarea, select, .bn1-stepper button, .bn1-quantity-shortcut, .bn1-quantity-reset, .bn1-option-button) {
    background: var(--bn1-color-dark) !important;
    color: var(--bn1-color-light) !important;
    border-color: var(--Banya-Brown-300, #bdaf95) !important;
}

body.bn1-typography-preview.bn1-bf-active:is(.single-bn1_voucher, .single-voucher) .is-price-type-monetary :is(input, textarea)::placeholder {
    color: #c8c3ba;
    opacity: 1;
}

body.bn1-typography-preview.bn1-bf-active:is(.single-bn1_voucher, .single-voucher) .is-price-type-monetary :is(.bn1-option-button, .bn1-quantity-shortcut) :is(strong, span, small) {
    color: inherit !important;
}

body.bn1-typography-preview.bn1-bf-active:is(.single-bn1_voucher, .single-voucher) .is-price-type-monetary :is(.bn1-option-button, .bn1-quantity-shortcut):is(.is-active, [aria-pressed="true"], :hover, :focus-visible),
body.bn1-typography-preview.bn1-bf-active:is(.single-bn1_voucher, .single-voucher) .is-price-type-monetary :is(.bn1-inline-step-number, .bn1-add-to-basket) {
    background: var(--Banya-Brown-300, #bdaf95) !important;
    color: var(--bn1-color-dark) !important;
}

body.bn1-typography-preview.bn1-bf-active:is(.single-bn1_voucher, .single-voucher) .is-price-type-monetary :is(.bn1-inline-step-status, .bn1-quantity-reset) {
    color: var(--Banya-Brown-300, #bdaf95) !important;
}

body.bn1-typography-preview.bn1-bf-active:is(.single-bn1_voucher, .single-voucher) .is-price-type-monetary :is(.bn1-inline-step-header, .bn1-delivery-details-block) {
    border-color: rgba(186, 168, 134, .5);
}

body.bn1-typography-preview.bn1-bf-active:is(.single-bn1_voucher, .single-voucher) .is-price-type-monetary :is(input, textarea, select, button, [role="button"]):focus-visible {
    outline: 2px solid var(--Banya-Brown-300, #bdaf95);
    outline-offset: 2px;
}

body.bn1-typography-preview.bn1-bf-active:is(.single-bn1_voucher, .single-voucher) .is-price-type-monetary :is(input[type="checkbox"], input[type="radio"]) {
    accent-color: var(--Banya-Brown-300, #bdaf95);
}

body.bn1-typography-preview.bn1-bf-active:is(.single-bn1_voucher, .single-voucher) .is-price-type-monetary :is(.bn1-field-error:is(input, textarea, select), .bn1-field-error :is(input, textarea, select), [aria-invalid="true"]) {
    border-color: #e58b80 !important;
}

body.bn1-typography-preview.bn1-bf-active:is(.single-bn1_voucher, .single-voucher) .is-price-type-monetary :is(.bn1-voucher-error, .bn1-checkout-errors, .bn1-step-errors) {
    background: #2c1717;
    color: var(--bn1-color-light);
    border-color: #e58b80;
}

body.bn1-typography-preview:is(.post-type-archive-bn1_voucher, .post-type-archive-voucher) #gift .services__content {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
    gap: 24px;
}

body.bn1-typography-preview:is(.post-type-archive-bn1_voucher, .post-type-archive-voucher) #gift .service-card {
    width: 100% !important;
    min-width: 0;
    max-width: none !important;
    flex: none;
    padding: 0;
}

body.bn1-typography-preview:is(.post-type-archive-bn1_voucher, .post-type-archive-voucher) #gift .service-card__content {
    padding: 20px;
}

body.bn1-typography-preview:is(.post-type-archive-bn1_voucher, .post-type-archive-voucher, .single-bn1_voucher, .single-voucher) .service-card__name {
    display: block;
    min-height: 0;
    overflow: visible;
    text-overflow: clip;
    -webkit-line-clamp: unset;
    line-clamp: unset;
    color: var(--bn1-color-forest) !important;
    letter-spacing: normal;
    margin-bottom: 32px !important;
    text-wrap: balance;
}

body.bn1-typography-preview:is(.post-type-archive-bn1_voucher, .post-type-archive-voucher, .single-bn1_voucher, .single-voucher) :is(.service-card__text-holder, .bn1-archive-card-copy__subtitle, .bn1-archive-card-copy__description) {
    display: block;
    overflow: visible;
    -webkit-line-clamp: unset;
    line-clamp: unset;
    line-height: 1.5 !important;
}

body.bn1-typography-preview:is(.post-type-archive-bn1_voucher, .post-type-archive-voucher, .single-bn1_voucher, .single-voucher) :is(.service-card__text-holder, .bn1-archive-card-copy__description) :is(p, li, .bn1-catalogue-step__text) {
    font-size: var(--bn1-type-body) !important;
}

body.bn1-typography-preview.page-template-affordable-spa-page-template .item-tickets__price,
body.bn1-typography-preview.single-workshops-and-events #heading-main-section .item-tickets__price .price-container-inner__current-price,
body.bn1-typography-preview:is(.post-type-archive-bn1_voucher, .post-type-archive-voucher, .single-bn1_voucher, .single-voucher) :is(.price-container:not(.price-container--including) [class*="price-container-inner__current-price"], .bn1-selected-price > strong, .bn1-total-amount) {
    color: var(--bn1-color-ink) !important;
}

body.bn1-typography-preview.single-workshops-and-events #heading-main-section .item-tickets__price,
body.bn1-typography-preview.single-workshops-and-events #heading-main-section .item-tickets__price .text_before_price_simple,
body.bn1-typography-preview:is(.post-type-archive-bn1_voucher, .post-type-archive-voucher, .single-bn1_voucher, .single-voucher) .price-container-inner__name-price {
    font: var(--bn1-font-card-from) !important;
    color: var(--bn1-color-ink) !important;
}

body.bn1-typography-preview.single-workshops-and-events #heading-main-section :is(.item-tickets__price, .item-tickets__price span) {
    letter-spacing: normal;
}

body.bn1-typography-preview.single-workshops-and-events #heading-main-section .item-tickets__price .price-container-inner__current-price {
    display: inline-block;
    white-space: nowrap;
}

/* Let the Affordable title keep whole words beside its image. */
@media (min-width: 768px) {
    body.bn1-typography-preview #bn1-affordable-v2 .bn1-sessions-v2__hero-grid {
        grid-template-columns: minmax(min-content, 1.15fr) minmax(0, 1fr);
        gap: clamp(24px, 3vw, 48px);
    }
}

/* Desktop values are exact; scale large headings on narrower viewports. */
@media (max-width: 1199px) {
    body.bn1-typography-preview.post-type-archive-offer #services-section {
        padding-top: 200px !important;
    }

    body.bn1-typography-preview.page-template-affordable-spa-page-template.has-top-banner #heading-main-section {
        padding-top: calc(120px + var(--top-banner-height, 80px) + var(--top-banner-offset, 0px));
    }
}

@media (min-width: 1200px) {
    body.bn1-typography-preview .bn1-about-v2__hero-grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr);
        gap: clamp(24px, 3vw, 64px);
    }
}

@media (max-width: 1023px) {
    body.bn1-typography-preview {
        --bn1-type-h1: clamp(38px, 8vw, 64px);
        --bn1-type-h2: clamp(34px, 7vw, 52px);
    }
}

@media (max-width: 767px) {
    body.bn1-typography-preview:is(.post-type-archive-bn1_voucher, .post-type-archive-voucher) #gift .services__container {
        padding-inline: 16px;
    }

    body.bn1-typography-preview:is(.post-type-archive-bn1_voucher, .post-type-archive-voucher) #gift .service-card__content {
        padding: 16px;
    }

    body.bn1-typography-preview .bn1-about-v2__hero,
    body.bn1-typography-preview .bn1-sessions-v2__hero:not(.bn1-treatments-v2__hero--video) {
        padding-top: 120px;
    }
}
