/* Authoritative public-site style. Replaces the duplicated Maison Customizer CSS.
 * !important is limited to theme/block/plugin declarations that already require it.
 * Product selection, stock visibility, gallery structure and policy text are unchanged.
 */
:root {
    --ff-cream: #f9f6f1;
    --ff-cream-2: #f3efe8;
    --ff-tile: #ebe7e1;
    --ff-ink: #24241f;
    --ff-text: #3b3a37;
    --ff-muted: #686257;
    --ff-line: #d9d0c2;
    --ff-gold: #7c623b;
    --ff-serif: "Cormorant Garamond", "Noto Serif TC", Georgia, "Songti TC", serif;
    --ff-sans: Jost, "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
    --ff-mono: var(--ff-sans);
    --ff-body: 16px;
    --ff-ui: 14px;
    --ff-meta: 13px;
    --ff-card: 16px;
    --ff-display: 64px;
    --ff-page-title: 48px;
    --ff-section: 40px;
    --ff-reading-title: 30px;
    --ff-control: 48px;
    --ff-space-1: 4px;
    --ff-space-2: 8px;
    --ff-space-3: 12px;
    --ff-space-4: 16px;
    --ff-space-6: 24px;
    --ff-space-8: 32px;
    --ff-space-12: 48px;
    --ff-space-16: 64px;
    --ast-global-color-0: var(--ff-ink);
    --ast-global-color-1: var(--ff-ink);
    --ast-global-color-2: var(--ff-ink);
    --ast-global-color-3: var(--ff-text);
    --ast-global-color-4: var(--ff-cream);
}

body.ff-site-style { color: var(--ff-text); background: var(--ff-cream); font: 400 var(--ff-body)/1.8 var(--ff-sans); letter-spacing: normal; -webkit-font-smoothing: antialiased; }
.ff-site-style :is(button, input, select, textarea) { font-family: var(--ff-sans); font-style: normal; font-weight: 400; letter-spacing: normal; }
.ff-site-style :is(.site-content, .ast-article-single, .ast-woocommerce-container) { background-color: var(--ff-cream); }
.ff-site-style ::selection { background: #dfcfb8; color: var(--ff-ink); }
.ff-site-style a { color: var(--ff-ink); text-underline-offset: 5px; text-decoration-thickness: 1px; }
.ff-site-style a:hover { color: var(--ff-gold); }
.ff-site-style :is(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid var(--ff-gold); outline-offset: 3px; }
.ff-site-style p { text-wrap: pretty; }
.ff-site-style :is(strong, b, th) { font-weight: 500; }
.ff-site-style :is(h1, h2, h3, h4, h5, h6, .entry-title) { color: var(--ff-ink); font-family: var(--ff-serif) !important; font-weight: 400 !important; font-style: normal; letter-spacing: normal; text-transform: none; text-wrap: balance; }
.ff-site-style .entry-content :is(p, li) { font-size: var(--ff-body); font-weight: 400; letter-spacing: normal; }
.ff-site-style .entry-content p { margin-bottom: var(--ff-space-4); }
.ff-site-style .entry-content :is(p, li)[lang="en"] { line-height: 1.8; }
.ff-site-style .entry-content :is(p, li)[lang="zh-Hant"] { line-height: 1.9; }
.ff-site-style :is(h1.entry-title, .entry-content h1) { font-size: var(--ff-display); line-height: 1.15; }
.ff-site-style .entry-content h2 { font-size: var(--ff-section); line-height: 1.3; }
.ff-site-style .entry-content h3 { font-size: 28px; line-height: 1.4; }
.ff-site-style .entry-content h3.uagb-heading-text { font-style: normal; }
.ff-site-style #ff-faq h2 { font-size: var(--ff-reading-title); font-weight: 400; line-height: 1.4; letter-spacing: normal; margin-bottom: 24px; }
.ff-site-style #ff-faq .ff-nav { gap: 8px 24px; margin-bottom: 48px; }
.ff-site-style #ff-faq .ff-nav a { font-size: var(--ff-ui); letter-spacing: normal; }
.ff-site-style #ff-faq section { margin-bottom: 64px; }
.ff-site-style #ff-faq summary { padding: 20px 4px; font: 400 var(--ff-body)/1.6 var(--ff-sans); letter-spacing: normal; }
.ff-site-style #ff-faq .ff-a { padding: 0 32px 24px 4px; font-size: var(--ff-body); line-height: 1.9; }
.ff-site-style #ff-faq :is(summary:hover, .ff-nav a:hover, .ff-a a) { color: var(--ff-gold); }
.ff-site-style.woocommerce-account .woocommerce h2 { font-size: 32px; line-height: 1.3; margin-bottom: 24px; }

/* Navigation retains Astra's menus, responsive trigger, cart and focus behavior. */
.ff-site-style #masthead :is(.ast-primary-header-bar, .ast-above-header-bar, .main-header-bar) { background: var(--ff-cream); border-color: var(--ff-line); }
.ff-site-style #masthead .menu-link { color: var(--ff-ink) !important; font-family: var(--ff-sans) !important; font-size: var(--ff-meta) !important; font-weight: 400 !important; letter-spacing: normal !important; text-transform: none; }
.ff-site-style #masthead .main-header-menu > .menu-item > .menu-link { padding-inline: 10px; }
.ff-site-style #masthead .current-menu-item > .menu-link { text-decoration: underline; text-underline-offset: 6px; }
.ff-site-style #masthead .sub-menu { background: var(--ff-cream); border: 1px solid var(--ff-line); box-shadow: none; }
.ff-site-style #masthead .sub-menu .menu-link { min-height: 44px; line-height: 1.5; padding-block: 12px; }
.ff-site-style #masthead :is(.ast-woo-header-cart-info-wrap, .woocommerce-Price-amount) { color: var(--ff-ink); font-size: var(--ff-meta); }
.ff-site-style #masthead :is(.count, .ast-count-text) { color: white; background: var(--ff-ink); }
.ff-site-style #masthead .astra-icon[data-cart-total]::after { color: white; background: var(--ff-ink); font: 400 10px/1.5 var(--ff-sans); }
.ff-site-style #masthead :is(.menu-toggle, .ast-mobile-menu-trigger-minimal, .ast-mobile-menu-trigger-outline, .ast-mobile-menu-trigger-fill) { color: var(--ff-ink); border-color: var(--ff-ink); background: transparent; }
.ff-site-style #masthead .menu-toggle :is(svg, .ast-mobile-svg) { fill: var(--ff-ink); }
.ff-site-style :is(#ast-hf-mobile-menu, .ast-mobile-popup-content, .ast-mobile-header-content) .menu-link { color: var(--ff-ink); font-family: var(--ff-sans); font-size: var(--ff-ui); letter-spacing: normal; }
.ff-site-style #ast-scroll-top { color: white; background: var(--ff-ink); border-radius: 0; }

/* Existing Spectra compositions: regular section headings, intentional hero italic. */
.ff-site-style #content :is(h2.uagb-ifb-title, h2.uagb-ifb-title-prefix) { font-size: var(--ff-section) !important; font-weight: 400; font-style: normal; line-height: 1.2; letter-spacing: normal; margin-bottom: var(--ff-space-6); }
.ff-site-style #content h3.uagb-ifb-title { font-size: 28px !important; font-weight: 400; font-style: normal; line-height: 1.3; }
.ff-site-style #content p.uagb-ifb-desc { font-family: var(--ff-sans); font-size: var(--ff-body) !important; font-weight: 400; line-height: 1.9; letter-spacing: normal; }
.ff-site-style #content h1.uagb-ifb-title { font-size: var(--ff-page-title) !important; font-weight: 400; font-style: italic; line-height: 1.2; text-transform: none; }
.ff-site-style .uagb-block-j0codm6x :is(.uagb-ifb-title, .uagb-ifb-title-prefix) { color: white !important; }
.ff-site-style #content p.uagb-ifb-title-prefix { font-family: var(--ff-serif); font-weight: 400; letter-spacing: .04em; }
.ff-site-style .uagb-ifb-content .uagb-buttons-repeater,
.ff-site-style .wp-block-uagb-buttons a.uagb-buttons-repeater,
.ff-site-style #content a.uagb-infobox-cta-link.wp-block-button__link { min-height: 44px; padding: 8px 0 !important; border: 0 !important; border-radius: 0; background: transparent !important; color: var(--ff-ink); box-shadow: none; font: 400 var(--ff-ui)/1.5 var(--ff-sans) !important; letter-spacing: normal; text-transform: none; text-decoration: underline; text-underline-offset: 6px; }
.ff-site-style .uagb-block-7d6fif2t :is(a.uagb-buttons-repeater, .uagb-button__link) { color: white !important; }
.ff-site-style :is(.uagb-ifb-content .uagb-buttons-repeater, .wp-block-uagb-buttons a.uagb-buttons-repeater) :is(svg, .uagb-button__icon) { display: none; }

/* One body and spacing scale for the existing About/Services block layouts. */
.ff-site-style .ff-page { --pad: clamp(20px, 4vw, 48px); }
.ff-site-style .ff-page p { font: 400 var(--ff-body)/1.9 var(--ff-sans); letter-spacing: normal; margin-bottom: var(--ff-space-4); }
.ff-site-style .ff-page .ff-title,
.ff-site-style .ff-page .ff-title.is-italic { font-size: var(--ff-display) !important; font-weight: 400 !important; font-style: normal; line-height: 1.2; letter-spacing: normal; }
.ff-site-style .ff-page .ff-hero { padding-block: var(--ff-space-16); }
.ff-site-style .ff-page .ff-title::after { margin-top: var(--ff-space-8); }
.ff-site-style .ff-page .ff-chapter { gap: var(--ff-space-16) !important; margin-bottom: 96px !important; }
.ff-site-style .ff-page h2.ff-h { font-size: 34px !important; line-height: 1.5 !important; letter-spacing: normal !important; margin-bottom: var(--ff-space-6) !important; }
.ff-site-style .ff-page :is(.ff-eyebrow, .ff-num) { font-size: var(--ff-meta); line-height: 1.6; letter-spacing: .04em; margin-bottom: var(--ff-space-4); }
.ff-site-style .ff-page .ff-num { font-style: normal; }
.ff-site-style .ff-page .ff-values { padding-block: var(--ff-space-16); margin-bottom: 96px; }
.ff-site-style .ff-page .ff-grid { gap: var(--ff-space-8) !important; margin-top: var(--ff-space-8) !important; }
.ff-site-style .ff-page .ff-grid h3 { font-size: 24px !important; letter-spacing: normal; margin-bottom: var(--ff-space-4) !important; }
.ff-site-style .ff-page .ff-intro { margin-bottom: 96px; }

/* Readable policy pages share layout rhythm while preserving their language UI. */
.ff-site-style :is(.ff-service, .ff-refund, .ff-shipping) { max-width: 1120px; padding: 64px 24px 80px; font: 400 var(--ff-body)/1.9 var(--ff-sans); }
.ff-site-style :is(.ff-service, .ff-refund, .ff-shipping) h1 { font-size: var(--ff-page-title); font-weight: 400; line-height: 1.2; margin: 0; }
.ff-site-style :is(.ff-service, .ff-refund, .ff-shipping) h2 { font-size: var(--ff-reading-title); font-weight: 400; line-height: 1.4; margin-bottom: var(--ff-space-6); }
.ff-site-style :is(.ff-service, .ff-refund, .ff-shipping) p { font-size: var(--ff-body); font-weight: 400; letter-spacing: normal; margin-bottom: 0; }
.ff-site-style :is(.ff-service, .ff-refund, .ff-shipping) p + p { margin-top: var(--ff-space-4); }
.ff-site-style :is(.ff-service__intro, .ff-refund__intro) { margin-top: var(--ff-space-8); }
.ff-site-style :is(.ff-service__layout, .ff-refund__layout, .ff-shipping__layout) { margin-top: var(--ff-space-8); padding-top: var(--ff-space-8); }
.ff-site-style :is(.ff-service, .ff-refund, .ff-shipping) section + section { margin-top: var(--ff-space-8); padding-top: var(--ff-space-8); }
.ff-site-style :is(.ff-service__clause, .ff-refund__clause) + :is(.ff-service__clause, .ff-refund__clause) { margin-top: var(--ff-space-6); }
.ff-site-style :is(.ff-service__subtitle, .ff-shipping__subtitle) { font-size: var(--ff-body); letter-spacing: normal; }
.ff-site-style :is(.ff-service__nav, .ff-refund__nav, .ff-shipping__nav) a { font-family: var(--ff-sans); font-size: var(--ff-ui); font-weight: 400; letter-spacing: normal; }
.ff-site-style :is(.ff-service__help, .ff-service__related a, .ff-service__policy-link, .ff-refund__help, .ff-shipping__help a, .ff-shipping__contact) { color: var(--ff-gold); }
.ff-site-style :is(.ff-service, .ff-refund, .ff-shipping) h3 { font-size: 22px; line-height: 1.4; }
.ff-site-style .ff-refund[data-language="en"] h1 > span[lang="en"] { font-size: var(--ff-page-title); }
.ff-site-style .ff-refund .ff-refund__language button { min-height: var(--ff-control); font-size: var(--ff-ui); }

/* Primary actions and text fields. Native WooCommerce semantics remain intact. */
.ff-site-style :is(.wp-block-button__link:not(.uagb-buttons-repeater), .button, button.button, .single_add_to_cart_button, .checkout-button, #place_order, .uqr_code_btn) { box-sizing: border-box; min-height: var(--ff-control); padding: 12px 24px !important; border: 1px solid var(--ff-ink) !important; border-radius: 0 !important; background: var(--ff-ink) !important; color: white !important; font: 400 var(--ff-ui)/1.5 var(--ff-sans) !important; letter-spacing: normal !important; text-transform: none; }
.ff-site-style :is(.button, .wp-block-button__link:not(.uagb-buttons-repeater), .uqr_code_btn):hover { color: white !important; background: var(--ff-gold) !important; border-color: var(--ff-gold) !important; }
.ff-site-style :is(.button, button):disabled { cursor: not-allowed; }
.ff-site-style :is(input[type="text"], input[type="search"], input[type="number"], input[type="email"], input[type="password"], input[type="tel"], input[type="url"], input[type="date"], textarea, select) { box-sizing: border-box; max-width: 100%; min-height: var(--ff-control); padding: 11px 12px; border: 1px solid var(--ff-line); border-radius: 0; background: transparent; color: var(--ff-ink); font: 400 var(--ff-body)/1.5 var(--ff-sans); caret-color: var(--ff-gold); }
.ff-site-style :is(input, textarea)::placeholder { color: var(--ff-muted); opacity: 1; }
.ff-site-style :is(.woocommerce-form, .wpcf7-form, .uagb-forms-main-form) label { font-size: var(--ff-ui); font-weight: 400; }
.ff-site-style :is(.woocommerce form, .wpcf7-form, .uagb-forms-main-form) :is(input:not([type="range"]), select, textarea):focus-visible { outline: 2px solid var(--ff-gold) !important; outline-offset: 3px; }
.ff-site-style :is(.widget_search, .widget_product_search) :is(label, .wp-block-search__label) { font-size: var(--ff-ui); font-weight: 400; margin-bottom: var(--ff-space-3); }
.ff-site-style .wp-block-search__inside-wrapper { display: flex; align-items: stretch; padding: 0; border: 1px solid var(--ff-line); }
.ff-site-style .wp-block-search__inside-wrapper:focus-within { outline: 2px solid var(--ff-gold); outline-offset: 3px; border-color: var(--ff-gold); }
.ff-site-style .wp-block-search__inside-wrapper .wp-block-search__input { min-width: 0; border: 0; padding: 11px 12px; margin: 0; }
.ff-site-style .wp-block-search__inside-wrapper .wp-block-search__input:focus-visible { outline: none; }
.ff-site-style .wp-block-search__inside-wrapper .wp-block-search__button { flex-shrink: 0; min-height: 46px; padding: 10px 12px; margin: 0; border: 0 !important; border-left: 1px solid var(--ff-line) !important; border-radius: 0; background: transparent; color: var(--ff-ink); font: 400 var(--ff-ui)/1.5 var(--ff-sans); letter-spacing: normal; white-space: nowrap; }
.ff-site-style .wp-block-search__inside-wrapper button:focus-visible { outline-offset: -5px; background: var(--ff-cream-2); }

/* Catalogue styling preserves the existing query, cards and image proportions. */
.ff-site-style ul.products { column-gap: 2px; row-gap: 48px; }
.ff-site-style ul.products li.product { margin-bottom: 0; padding: 0; background: transparent; box-shadow: none; text-align: left; }
.ff-site-style ul.products li.product .astra-shop-thumbnail-wrap { background: var(--ff-tile); overflow: hidden; }
.ff-site-style ul.products li.product img { width: 100%; aspect-ratio: 3/4; object-fit: cover; }
.ff-site-style ul.products li.product .astra-shop-summary-wrap { padding: 16px 10px 0; text-align: left; }
.ff-site-style.woocommerce ul.products li.product .woocommerce-loop-product__title,
.ff-site-style .woocommerce ul.products li.product .woocommerce-loop-product__title { color: var(--ff-ink); font: 400 var(--ff-card)/1.5 var(--ff-sans) !important; letter-spacing: normal; margin: 0 0 8px; }
.ff-site-style ul.products .price,
.ff-site-style ul.products .price * { color: var(--ff-muted); font: 400 var(--ff-ui)/1.5 var(--ff-sans); letter-spacing: normal; font-variant-numeric: tabular-nums; }
.ff-site-style .woocommerce-Price-currencySymbol::before { content: "HK"; }
.ff-site-style .ast-on-card-button { color: var(--ff-ink); background: var(--ff-cream); border-radius: 0; }
.ff-site-style :is(.woocommerce-result-count, .woocommerce-breadcrumb, .woocommerce-breadcrumb a, .posted_in, .posted_in a, .ast-woo-product-category, .single-product-category a) { color: var(--ff-muted); font-family: var(--ff-sans); font-size: var(--ff-meta); font-weight: 400; line-height: 1.7; letter-spacing: normal; text-transform: none; }
.ff-site-style .woocommerce-ordering select { min-height: var(--ff-control); font-size: var(--ff-body); }
.ff-site-style #secondary .widget { margin-top: 0; margin-bottom: var(--ff-space-8); padding: var(--ff-space-6); }
.ff-site-style #secondary :is(h2, h3, .widget-title, .wc-block-product-search__label) { font: 400 var(--ff-ui)/1.5 var(--ff-sans) !important; margin-bottom: 16px; }
.ff-site-style #secondary .wc-block-components-price-slider__controls { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.ff-site-style #secondary .wc-block-components-price-slider__control { min-width: 0; }
.ff-site-style #secondary .wc-block-components-price-slider__controls .wc-block-components-price-slider__amount { width: 100%; max-width: none; min-width: 0; padding: 11px 12px; border: 1px solid var(--ff-line) !important; border-radius: 0; font-size: var(--ff-body); font-variant-numeric: tabular-nums; }

/* Product detail controls do not alter Astra Pro's gallery DOM or event handlers. */
.ff-site-style.single-product div.product .summary .product_title { font: 400 var(--ff-page-title)/1.15 var(--ff-serif); letter-spacing: normal; margin-bottom: var(--ff-space-6); }
.ff-site-style.single-product .summary .price,
.ff-site-style.single-product .summary .price * { color: var(--ff-ink); font: 400 22px/1.5 var(--ff-sans); letter-spacing: normal; font-variant-numeric: tabular-nums; }
.ff-site-style.single-product .summary :is(p, li) { font: 400 var(--ff-body)/1.8 var(--ff-sans); letter-spacing: normal; }
.ff-site-style.single-product :is(.woocommerce-product-gallery, .woo-variation-product-gallery) { background: var(--ff-tile); }
.ff-site-style .cfvsw-swatches-option.cfvsw-label-option { min-width: var(--ff-control) !important; min-height: var(--ff-control) !important; height: auto !important; padding: 10px 16px; border: 1px solid var(--ff-line); border-radius: 0; color: var(--ff-ink); background: transparent; box-shadow: none; font: 400 var(--ff-ui)/1.5 var(--ff-sans); letter-spacing: normal; }
.ff-site-style .cfvsw-swatches-option.cfvsw-selected-swatch { border-color: var(--ff-ink); box-shadow: inset 0 0 0 1px var(--ff-ink); }
.ff-site-style.single-product .quantity :is(.qty, .minus, .plus) { height: var(--ff-control) !important; min-height: var(--ff-control) !important; border-color: var(--ff-line); border-radius: 0; color: var(--ff-ink); background: transparent; font-size: var(--ff-body); }
.ff-site-style.single-product .quantity .qty { padding: 0; }
.ff-site-style.single-product div.product form.cart .single_add_to_cart_button { height: auto; min-width: 180px; min-height: var(--ff-control); }
.ff-site-style.single-product .single_add_to_cart_button.disabled { opacity: .45; }
.ff-site-style.single-product .ast-accordion-header { min-height: 48px; padding-block: 16px; font: 400 var(--ff-ui)/1.5 var(--ff-sans) !important; letter-spacing: normal; text-transform: none; }
.ff-site-style.single-product .related > h2 { font: 400 34px/1.4 var(--ff-serif) !important; margin-bottom: var(--ff-space-6); }
.ff-site-style .woocommerce-product-details__short-description { margin-block: var(--ff-space-6); }
.ff-site-style .editorial-block-title { font-size: 20px; }

/* Keep existing business-specific presentation decisions from Additional CSS. */
.ff-site-style :is(.ast-stock-detail, .ast-shop-product-out-of-stock, .woocommerce .wps_wpr_view_log, .woocommerce .wps_ways_to_gain_points_section) { display: none !important; }
.ff-site-style :is(.ast-view-trigger.active, .ast-view-trigger:hover, .ast-view-trigger.active svg, .ast-view-trigger:hover svg) { color: var(--ff-ink); fill: var(--ff-ink); }

/* Native cart and classic checkout share the site's reading and control roles. */
.ff-site-style #masthead :is(.ast-woo-header-cart-info-wrap,.ast-woo-header-cart-info-wrap .woocommerce-Price-amount,.ast-woo-header-cart-info-wrap bdi) { font: 400 var(--ff-meta)/1.5 var(--ff-sans); font-variant-numeric: tabular-nums; }
.ff-site-style:is(.woocommerce-cart,.woocommerce-checkout) #content > .ast-container { max-width: 1416px; padding-inline: 48px; }
.ff-site-style:is(.woocommerce-cart,.woocommerce-checkout) #primary { width: 100%; margin-block: 48px 72px; padding: 0; }
.ff-site-style:is(.woocommerce-cart,.woocommerce-checkout) .ast-article-single { padding: 0; }
.ff-site-style:is(.woocommerce-cart,.woocommerce-checkout) :is(.woocommerce-message,.woocommerce-info) { background: var(--ff-cream-2); border: 1px solid var(--ff-line); border-radius: 0; padding: 16px 20px 16px 48px; margin-bottom: 24px; font: 400 var(--ff-ui)/1.8 var(--ff-sans); }
.ff-site-style:is(.woocommerce-cart,.woocommerce-checkout) :is(.woocommerce-message,.woocommerce-info)::before { top: 16px; left: 16px; }
.ff-site-style.woocommerce-cart #ast-cart-wrapper { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 32px; align-items: start; }
.ff-site-style.woocommerce-cart #ast-cart-wrapper > :is(.ast-cart-non-sticky,.cart-collaterals) { float: none; width: 100%; min-width: 0; margin: 0; padding: 0; }
.ff-site-style:is(.woocommerce-cart,.woocommerce-checkout) .entry-content > .woocommerce { width: 100%; max-width: none; margin: 0; }
.ff-site-style:is(.woocommerce-cart,.woocommerce-checkout) wc-order-attribution-inputs { display: contents; }
.ff-site-style.woocommerce-cart .woocommerce-cart-form { margin: 0; }
.ff-site-style.woocommerce-cart table.shop_table { border: 0; border-collapse: collapse; border-radius: 0; margin: 0; background: transparent; }
.ff-site-style.woocommerce-cart .woocommerce-cart-form table.shop_table :is(th,td) { padding: 20px 12px; border: 0; border-bottom: 1px solid var(--ff-line); vertical-align: middle; font: 400 var(--ff-body)/1.6 var(--ff-sans); }
.ff-site-style.woocommerce-cart .woocommerce-cart-form table.shop_table th { padding-block: 12px; font-size: var(--ff-ui); font-weight: 500; background: transparent; }
.ff-site-style.woocommerce-cart .woocommerce-cart-form table.shop_table thead { background: transparent; }
.ff-site-style.woocommerce-cart .woocommerce-cart-form :is(.product-price,.product-subtotal) { white-space: nowrap; font-variant-numeric: tabular-nums; }
.ff-site-style.woocommerce-cart .woocommerce-cart-form .product-name .ast-product-name { float: none; display: block; text-align: left; }
.ff-site-style.woocommerce-cart .woocommerce-cart-form .product-name dl.variation { display: grid; grid-template-columns: max-content minmax(0,1fr); gap: 4px 6px; text-align: left; }
.ff-site-style.woocommerce-cart .woocommerce-cart-form .product-name dl.variation :is(dt,dd) { float: none; width: auto; margin: 0; }
.ff-site-style.woocommerce-cart .woocommerce-cart-form .product-name dl.variation dd p { display: inline; margin: 0; }
.ff-site-style.woocommerce-cart .woocommerce-cart-form .product-name a { font-weight: 400; line-height: 1.6; }
.ff-site-style.woocommerce-cart .woocommerce-cart-form .product-name :is(dl,p) { font-size: var(--ff-ui); line-height: 1.6; margin: 8px 0 0; }
.ff-site-style.woocommerce-cart .woocommerce-cart-form .product-name :is(strong,b,dt) { font-weight: 400; }
.ff-site-style.woocommerce-cart .woocommerce-cart-form td.product-thumbnail { width: 88px; padding-inline: 0 16px; }
.ff-site-style.woocommerce-cart .woocommerce-cart-form .product-thumbnail img { width: 72px; max-width: 72px; height: 72px; object-fit: contain; }
.ff-site-style.woocommerce-cart .woocommerce-cart-form td.product-remove { width: 44px; padding-inline: 0; }
.ff-site-style.woocommerce-cart .product-remove a.remove { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; line-height: 1; }
.ff-site-style.woocommerce-cart .quantity { display: inline-flex; float: none; margin: 0; }
.ff-site-style.woocommerce-cart .quantity :is(.qty,.minus,.plus) { box-sizing: border-box; width: 44px; min-width: 44px; height: 48px; min-height: 48px; padding: 0; margin: 0; border-color: var(--ff-line); border-radius: 0; font: 400 16px/1.5 var(--ff-sans); }
.ff-site-style.woocommerce-cart .cart-collaterals .cart_totals { float: none; width: 100%; margin: 0; padding: 24px; border: 1px solid var(--ff-line); background: transparent; }
.ff-site-style.woocommerce-cart .cart-collaterals .cart_totals > h2 { padding: 0 0 24px; margin: 0; background: transparent; border: 0; font-size: 30px; line-height: 1.4; }
.ff-site-style.woocommerce-cart .cart_totals table.shop_table :is(th,td) { padding: 16px 0; border: 0; border-bottom: 1px solid var(--ff-line); background: transparent; font: 400 var(--ff-body)/1.6 var(--ff-sans); }
.ff-site-style.woocommerce-cart .cart_totals td { text-align: right; }
.ff-site-style.woocommerce-cart .cart_totals :is(strong,bdi,.woocommerce-Price-amount) { font-weight: 400; font-variant-numeric: tabular-nums; }
.ff-site-style.woocommerce-cart .cart_totals .order-total :is(th,strong,bdi) { font-weight: 500; }
.ff-site-style.woocommerce-cart .wc-proceed-to-checkout { padding: 24px 0 0; }
.ff-site-style.woocommerce-cart .wc-proceed-to-checkout .checkout-button { display: flex; align-items: center; justify-content: center; width: 100%; margin: 0; }
.ff-site-style.woocommerce-cart .cart_totals #coupon_code { width: 100%; min-height: 48px; font-size: 16px; }
.ff-site-style.woocommerce-checkout { --ff-checkout-heading: 28px; }
.ff-site-style.woocommerce-checkout form.checkout h3,
.ff-site-style.woocommerce-checkout form.checkout #customer_details h3,
.ff-site-style.woocommerce-checkout form.checkout #ast-order-review-wrapper #order_review_heading { font-size: var(--ff-checkout-heading); line-height: 1.4; margin: 32px 0 20px; padding: 0 0 16px; border-bottom: 1px solid var(--ff-line); }
.ff-site-style.woocommerce-checkout form.checkout #customer_details .ast-checkout-form-heading h3 { margin-top: 0; }
.ff-site-style.woocommerce-checkout form.checkout .form-row label { display: block; margin-bottom: 8px; font: 400 var(--ff-ui)/1.6 var(--ff-sans); }
.ff-site-style.woocommerce-checkout form.checkout .form-row :is(.optional,abbr.required) { font-weight: 400; }
.ff-site-style.woocommerce-checkout form.checkout .form-row { margin: 0 0 20px; }
.ff-site-style.woocommerce-checkout form.checkout #customer_details :is(.woocommerce-billing-fields__field-wrapper,.woocommerce-shipping-fields__field-wrapper) { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px 24px; margin: 0; }
.ff-site-style.woocommerce-checkout form.checkout #customer_details .form-row { width: 100%; min-width: 0; padding: 0; float: none; }
.ff-site-style.woocommerce-checkout form.checkout #customer_details :is(.woocommerce-billing-fields__field-wrapper,.woocommerce-shipping-fields__field-wrapper) > .form-row { grid-column: 1 / -1; margin: 0; }
.ff-site-style.woocommerce-checkout form.checkout #customer_details :is(.form-row-first,.form-row-last,#billing_city_field,#billing_state_field,#shipping_city_field,#shipping_state_field) { grid-column: auto; }
.ff-site-style.woocommerce-checkout form.checkout #customer_details :is(input.input-text,select,textarea,.select2-selection--single) { box-sizing: border-box; min-height: 48px; font: 400 16px/1.5 var(--ff-sans); background: var(--ff-cream); border-radius: 0; }
.ff-site-style.woocommerce-checkout form.checkout #customer_details .select2-selection--single { height: auto; padding: 10px 12px; }
.ff-site-style.woocommerce-checkout form.checkout #customer_details .select2-selection__rendered { padding: 0; line-height: 26px; }
.ff-site-style.woocommerce-checkout form.checkout #customer_details .select2-selection__arrow { height: 46px; }
.ff-site-style.woocommerce-checkout form.checkout #customer_details .woocommerce-additional-fields__field-wrapper { margin: 0; }
.ff-site-style.woocommerce-checkout form.checkout #customer_details textarea#order_comments { min-height: 104px; line-height: 1.6; }
.ff-site-style.woocommerce-checkout form.checkout #ast-order-review-wrapper #order_review_heading { margin-top: 0; }
.ff-site-style.woocommerce-checkout .ast-two-column-checkout form.checkout::before,
.ff-site-style.woocommerce-checkout .ast-two-column-checkout form.checkout::after { display: none; }
.ff-site-style.woocommerce-checkout form.checkout > .wcpay-express-checkout-wrapper { flex: 0 0 100%; width: 100%; }
.ff-site-style.woocommerce-checkout form.checkout #order_review table.shop_table { margin: 0; border: 0; border-collapse: collapse; background: transparent; }
.ff-site-style.woocommerce-checkout form.checkout #order_review table.shop_table :is(th,td) { padding: 16px 12px; border: 0; border-bottom: 1px solid var(--ff-line); background: transparent; font: 400 var(--ff-ui)/1.7 var(--ff-sans); }
.ff-site-style.woocommerce-checkout form.checkout #order_review table.shop_table :is(strong,bdi,.woocommerce-Price-amount) { font-weight: 400; font-variant-numeric: tabular-nums; }
.ff-site-style.woocommerce-checkout form.checkout #order_review table.shop_table .order-total :is(th,strong,bdi) { font-weight: 500; }
.ff-site-style.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.ff-site-style.woocommerce-checkout #payment ul.payment_methods { padding: 0; margin: 0 0 24px; border: 0; background: transparent; }
.ff-site-style.woocommerce-checkout form.checkout #payment ul.payment_methods > li.wc_payment_method { display: block; box-sizing: border-box; width: 100%; padding: 16px 0; border: 0; border-radius: 0; background: transparent; }
.ff-site-style.woocommerce-checkout form.checkout #payment ul.payment_methods > li.wc_payment_method + li.wc_payment_method { border-top: 1px solid var(--ff-line); }
.ff-site-style.woocommerce-checkout #payment ul.payment_methods .wc_payment_method > label { font: 400 var(--ff-body)/1.6 var(--ff-sans); }
.ff-site-style.woocommerce-checkout form.checkout #payment ul.payment_methods div.payment_box { box-sizing: border-box; width: 100%; max-width: 100%; padding: 16px; margin: 16px 0 0; border: 0; border-radius: 0; background: var(--ff-cream-2); }
.ff-site-style.woocommerce-checkout form.checkout #payment ul.payment_methods div.payment_box::before { display: none; }
.ff-site-style.woocommerce-checkout #payment .place-order { margin: 24px 0 0; padding: 0; }
.ff-site-style.woocommerce-checkout #place_order { width: 100%; margin: 16px 0 0; }
.ff-site-style.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper { font: 400 var(--ff-ui)/1.8 var(--ff-sans); }
.ff-site-style.woocommerce-checkout #payment .woocommerce-privacy-policy-text p { font: 400 var(--ff-ui)/1.8 var(--ff-sans); margin: 0 0 16px; }
.ff-site-style.woocommerce-checkout #ast-order-review-toggle { padding: 16px 0; background: transparent; border-color: var(--ff-line); font: 400 var(--ff-ui)/1.6 var(--ff-sans); }
.ff-site-style.woocommerce-checkout .ast-mobile-order-review-wrap { background: transparent; margin-bottom: 32px; }
@media(min-width:922px) {
    .ff-site-style.woocommerce-checkout .ast-two-column-checkout form.checkout { column-gap: 64px; }
    .ff-site-style.woocommerce-checkout .ast-two-column-checkout form.checkout #customer_details { width: calc(60% - 32px); min-width: 0; padding: 0; margin: 0; float: none; }
    .ff-site-style.woocommerce-checkout .ast-two-column-checkout form.checkout #ast-order-review-wrapper { width: calc(40% - 32px); min-width: 0; padding: 0; }
}
@media(max-width:1200px) {
    .ff-site-style.woocommerce-cart #ast-cart-wrapper { grid-template-columns: minmax(0,1fr); gap: 32px; }
    .ff-site-style.woocommerce-cart .cart-collaterals .cart_totals { max-width: 480px; margin-inline-start: auto; }
}
@media(max-width:760px) {
    .ff-site-style:is(.woocommerce-cart,.woocommerce-checkout) #content > .ast-container { padding-inline: 20px; }
    .ff-site-style:is(.woocommerce-cart,.woocommerce-checkout) #primary { margin-block: 24px 48px; }
    .ff-site-style.woocommerce-cart .cart-collaterals .cart_totals { max-width: none; padding: 24px; }
    .ff-site-style.woocommerce-cart .cart-collaterals .cart_totals > h2 { font-size: 28px; }
    .ff-site-style.woocommerce-cart table.shop_table_responsive tr.cart_item { display: grid; grid-template-columns: 72px minmax(0,1fr); gap: 12px 16px; position: relative; padding: 24px 0; border-bottom: 1px solid var(--ff-line); background: transparent; }
    .ff-site-style.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tr.cart_item td { grid-column: 2; display: flex; align-items: center; justify-content: space-between; gap: 12px; width: auto; min-width: 0; padding: 0; border: 0; text-align: right; font-size: var(--ff-ui); background: transparent; }
    .ff-site-style.woocommerce-cart table.shop_table_responsive tr.cart_item td::before { float: none; font: 400 var(--ff-ui)/1.6 var(--ff-sans); }
    .ff-site-style.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tr.cart_item td.product-thumbnail { grid-column: 1; grid-row: 1 / 3; display: block; }
    .ff-site-style.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tr.cart_item td.product-name { display: block; text-align: left; padding-inline-end: 40px; font-size: 16px; }
    .ff-site-style.woocommerce-cart table.shop_table_responsive tr.cart_item :is(.product-thumbnail,.product-name,.product-remove)::before { display: none; }
    .ff-site-style.woocommerce-cart .woocommerce-cart-form table.shop_table_responsive tr.cart_item td.product-remove { position: absolute; top: 16px; right: -8px; display: block; }
    .ff-site-style.woocommerce-cart .cart_totals td::before { font-weight: 400; }
    .ff-site-style.woocommerce-checkout { --ff-checkout-heading: 26px; }
    .ff-site-style.woocommerce-checkout #order_review table.shop_table :is(th,td) { padding-inline: 8px; }
}
@media(max-width:600px) {
    .ff-site-style.woocommerce-checkout form.checkout #customer_details :is(.woocommerce-billing-fields__field-wrapper,.woocommerce-shipping-fields__field-wrapper) { grid-template-columns: minmax(0,1fr); gap: 20px; }
    .ff-site-style.woocommerce-checkout form.checkout #customer_details :is(.woocommerce-billing-fields__field-wrapper,.woocommerce-shipping-fields__field-wrapper) > .form-row { grid-column: 1 / -1; }
}

/* Footer uses the same sans interface role as navigation, with quieter metadata. */
.ff-site-style footer.site-footer,
.ff-site-style footer.site-footer :is(.site-primary-footer-wrap, .site-above-footer-wrap, .site-below-footer-wrap) { color: var(--ff-text); background: var(--ff-cream-2); border-color: var(--ff-line); }
.ff-site-style footer.site-footer p { font: 400 var(--ff-ui)/1.8 var(--ff-sans); letter-spacing: normal; }
.ff-site-style footer.site-footer :is(.widget-title, h2, h3, h4, .menu-link, .footer-navigation a) { color: var(--ff-ink); font: 400 var(--ff-meta)/1.7 var(--ff-sans) !important; letter-spacing: normal; text-transform: none; }
.ff-site-style footer.site-footer :is(.menu-link, .footer-navigation a) { display: inline-block; min-height: 32px; padding-block: 6px; }
.ff-site-style footer.site-footer :is(.site-primary-footer-wrap, .site-above-footer-wrap) { padding-block: 48px; }
.ff-site-style footer.site-footer .ast-builder-social-element svg { fill: var(--ff-ink); }
.ff-site-style footer.site-footer .site-below-footer-wrap { min-height: 0; padding-block: 24px; border-top: 1px solid var(--ff-line); }
.ff-site-style :is(.ast-footer-copyright, .ast-footer-copyright *) { color: var(--ff-muted); font-size: 12px; }

@media (max-width: 921px) {
    :root { --ff-display: 52px; }
    .ff-site-style :is(.ff-service, .ff-refund, .ff-shipping) { padding-top: 48px; }
    .ff-site-style .ff-page .ff-chapter { gap: var(--ff-space-8) !important; }
}
@media (max-width: 760px) {
    :root { --ff-display: 44px; --ff-page-title: 38px; --ff-section: 32px; --ff-reading-title: 28px; --ff-card: 15px; }
    .ff-site-style #masthead .menu-link { font-size: var(--ff-ui) !important; }
    /* Compact the initial mobile header; Astra retains its native sticky header. */
    .ff-site-style #ast-mobile-header .ast-primary-header-bar .custom-logo { width: auto; height: 60px; max-height: 60px; }
    .ff-site-style #ast-mobile-header .ast-primary-header-bar .site-branding { padding-block: 10px; }
    .ff-site-style #ast-mobile-header .ast-primary-header-bar { min-height: 80px; }
    .ff-site-style #ast-mobile-header .menu-toggle { min-width: 44px; min-height: 44px; }

    .ff-site-style .ff-page .ff-hero { padding-block: 48px; }
    .ff-site-style .ff-page .ff-chapter { margin-bottom: 64px !important; }
    .ff-site-style .ff-page h2.ff-h { font-size: 28px !important; }
    .ff-site-style .ff-page :is(.ff-values, .ff-intro) { margin-bottom: 64px; }
    .ff-site-style .ff-page .ff-values { padding-block: 48px; }
    .ff-site-style.single-product div.product .summary .product_title { font-size: 36px; }
    .ff-site-style.single-product .summary .price,
    .ff-site-style.single-product .summary .price * { font-size: 20px; }
    .ff-site-style.single-product .single_add_to_cart_button { min-width: 0; flex: 1 1 150px; }
    .ff-site-style.single-product .related > h2 { font-size: 28px !important; }
    .ff-site-style ul.products { row-gap: 32px; }
    .ff-site-style ul.products li.product .astra-shop-summary-wrap { padding-inline: 4px; }
    .ff-site-style footer.site-footer :is(.menu-link, .footer-navigation a) { min-height: 44px; padding-block: 10px; }
}
@media (max-width: 600px) {
    .ff-site-style :is(.ff-service, .ff-refund, .ff-shipping) { padding: 32px 4px 56px; }
    .ff-site-style :is(.ff-service__layout, .ff-refund__layout, .ff-shipping__layout) { margin-top: 24px; padding-top: 24px; }
    .ff-site-style :is(.ff-service, .ff-refund, .ff-shipping) h2 { margin-bottom: 20px; }
    .ff-site-style #secondary .widget { padding: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .ff-site-style :is(a, button, .button) { transition: none; }
}
