/*
Theme Name: Foam
Description: The approved Familiar, refined design for foam.co.uk, built on Ollie.
Author: Tempered
Template: ollie
Version: 0.4.0
Text Domain: foam
*/

/* Compatibility aliases for inherited Ollie compositions, never extra palette choices. */
:root,.editor-styles-wrapper {
    --wp--preset--color--primary-alt:var(--wp--preset--color--primary-accent);
    --wp--preset--color--primary-alt-accent:var(--wp--preset--color--primary);
    --wp--preset--color--border-dark:var(--wp--preset--color--foam-border);
    --wp--preset--color--contrast:var(--wp--preset--color--main);
    --wp--preset--font-family--expanded:var(--wp--preset--font-family--secondary);
    --wp--preset--font-family--condensed:var(--wp--preset--font-family--secondary);
    --wp--preset--font-family--narrow:var(--wp--preset--font-family--secondary);
}
:where(a){text-underline-offset:.2em}
:where(button,input,select,textarea){font-family:inherit}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible,
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator :focus-visible{
    outline:3px solid var(--wp--preset--color--main);outline-offset:4px;
    box-shadow:0 0 0 4px var(--wp--preset--color--base);
}
:where(.wp-element-button,.wp-block-button__link,.wc-block-components-button){min-height:48px;box-sizing:border-box}
.wp-block-button.is-style-outline .wp-block-button__link{border:1px solid var(--wp--preset--color--foam-border);color:var(--wp--preset--color--main);background:transparent}
.wp-block-button.is-style-outline .wp-block-button__link:hover{background:var(--wp--preset--color--primary-accent)}
:where(.wp-block-post-title,.wp-block-heading){text-wrap:balance}
.foam-header{background:var(--wp--preset--color--base);border-bottom:1px solid var(--wp--preset--color--border-light)}
.foam-header-row{padding-block:1.5rem;gap:1.5rem}
.foam-wordmark{font-family:var(--wp--preset--font-family--secondary);font-size:2.125rem;font-weight:800;letter-spacing:-.06em;line-height:1;margin:0}
.foam-wordmark a{text-decoration:none;color:var(--wp--preset--color--primary)}
.foam-wordmark .foam-dot{color:var(--wp--preset--color--foam-action)}
.foam-endorsement{font-size:.6875rem;letter-spacing:.13em;font-weight:600;line-height:1.5;text-transform:uppercase;color:var(--wp--preset--color--secondary);margin-top:.5rem}
.foam-header .wp-block-navigation{font-size:.9375rem}
.foam-header .wp-block-navigation-item__content{min-height:44px;display:flex;align-items:center}
.foam-header .wp-block-woocommerce-mini-cart{color:var(--wp--preset--color--main)}
.foam-header .wp-block-navigation__responsive-container-open,.foam-header .wp-block-navigation__responsive-container-close{min-width:44px;min-height:44px}
.foam-footer{background:var(--wp--preset--color--main);color:var(--wp--preset--color--base);margin-top:0}
.foam-footer .foam-wordmark a,.foam-footer a{color:var(--wp--preset--color--base)}
.foam-footer .foam-endorsement{color:var(--wp--preset--color--main-accent)}
.foam-hero{padding-block:clamp(2.5rem,6vw,4rem)}
.foam-hero h1{font-size:var(--wp--preset--font-size--xx-large);max-width:650px}
.foam-hero .foam-emphasis{color:var(--wp--preset--color--primary)}
.foam-eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--wp--preset--color--primary)}
.foam-hero-copy{max-width:440px;color:var(--wp--preset--color--secondary);font-size:1.0625rem}
.foam-hero-art{padding:1.5rem;border-radius:120px 14px 14px 14px;background:var(--wp--preset--color--primary-accent)}
.foam-hero-art img{width:100%;height:auto;display:block}
.foam-home-content{padding-block:var(--wp--preset--spacing--large) var(--wp--preset--spacing--xx-large)}

/* Brand the existing plugin UI; no geometry, quote or commerce behaviour lives here. */
.wp-site-blocks .gbfoam-configurator,.editor-styles-wrapper .gbfoam-configurator{
    --foam-ink:var(--wp--preset--color--main);--foam-muted:var(--wp--preset--color--secondary);
    --foam-line:var(--wp--preset--color--border-light);--foam-accent:var(--wp--preset--color--primary);
    --foam-pale:var(--wp--preset--color--primary-accent);--foam-error:var(--wp--preset--color--foam-error);
    font-family:var(--wp--preset--font-family--primary);line-height:1.6;border-radius:14px;background:var(--wp--preset--color--base);
}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator h2,.gbfoam-configurator h3,.gbfoam-configurator .gbfoam-total>strong{font-family:var(--wp--preset--font-family--secondary);font-weight:700}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator .gbfoam-purchase{background:var(--wp--preset--color--base)}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator input:not([type=radio]):not([type=checkbox]),.gbfoam-configurator select,.gbfoam-configurator .gbfoam-material,.gbfoam-configurator .gbfoam-refresh{border-color:var(--wp--preset--color--foam-border);border-radius:8px}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator input:not([type=radio]):not([type=checkbox]),.gbfoam-configurator select,.gbfoam-configurator button{min-height:48px;font-size:1rem}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator .gbfoam-material.is-selected{border-color:var(--foam-accent)}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator input[aria-invalid=true]{border-color:var(--foam-error)}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator .gbfoam-layer-row{border-color:var(--foam-line);border-radius:8px}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator .gbfoam-step{background:var(--foam-pale);color:var(--foam-accent);border:1px solid var(--foam-accent)}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator .gbfoam-add{background:var(--wp--preset--color--foam-action);border-color:var(--wp--preset--color--foam-action);color:var(--wp--preset--color--base)}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator .gbfoam-add:hover:not(:disabled){background:var(--wp--preset--color--foam-action-hover);border-color:var(--wp--preset--color--foam-action-hover)}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator button:disabled{opacity:1;background:var(--wp--preset--color--tertiary);border-color:var(--wp--preset--color--foam-border);color:var(--foam-muted);cursor:not-allowed}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator .gbfoam-face-top{fill:#C5DCE7}.gbfoam-configurator .gbfoam-face-front{fill:#91B6CA}.gbfoam-configurator .gbfoam-face-side{fill:#628AA3}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator .gbfoam-drawing polygon{stroke:var(--foam-muted)}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator .gbfoam-dimension-line path{stroke:var(--foam-ink)}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator .gbfoam-dimension-line text{fill:var(--foam-ink);font-family:var(--wp--preset--font-family--primary)}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator .gbfoam-dimension-line.is-active path{stroke:var(--foam-accent)}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator .gbfoam-dimension-line.is-active text{fill:var(--foam-accent)}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator .gbfoam-layer-seams path{stroke:var(--foam-ink)}

/* WooCommerce keeps its native controls, state and totals. */
.woocommerce :where(input.input-text,select,textarea),.wc-block-components-form .wc-block-components-text-input input,.wc-block-components-combobox .wc-block-components-combobox-control input{font-family:var(--wp--preset--font-family--primary);border-color:var(--wp--preset--color--foam-border);border-radius:8px;min-height:48px}
.wc-block-components-button:not(.is-link):not(.outlined),.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt{background:var(--wp--preset--color--foam-action);color:var(--wp--preset--color--base);border-radius:8px;font-weight:600}
.wc-block-components-button:not(.is-link):not(.outlined):hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover{background:var(--wp--preset--color--foam-action-hover);color:var(--wp--preset--color--base)}
.wc-block-components-notice-banner.is-error{color:var(--wp--preset--color--foam-error);background:var(--wp--preset--color--foam-error-surface);border-color:var(--wp--preset--color--foam-error)}
.wc-block-components-notice-banner.is-success{color:var(--wp--preset--color--foam-success);background:var(--wp--preset--color--foam-success-surface);border-color:var(--wp--preset--color--foam-success)}
.ollie-product-button-hover-group,.ollie-product-button-hover:focus-within .ollie-product-button-hover-group{opacity:1;visibility:visible;transform:none}
@media(max-width:600px){.foam-header-row{gap:1rem}.foam-wordmark{font-size:1.75rem}.foam-hero-art{border-radius:70px 14px 14px 14px}.foam-footer-row{align-items:flex-start!important;flex-direction:column}.foam-hero .wp-block-buttons{gap:.75rem}}
@media(prefers-reduced-motion:reduce){.wp-site-blocks *{scroll-behavior:auto;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Keep calculator instructions readable independently of plugin defaults. */
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator h3{font-size:1.25rem;line-height:1.25}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator :is(.gbfoam-limit,.gbfoam-precision,.gbfoam-small,.gbfoam-preview figcaption,.gbfoam-preview small,.gbfoam-material small,.gbfoam-field label small,.gbfoam-shape,.gbfoam-measure-help,.gbfoam-error,.gbfoam-status){font-size:.875rem}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator :is(.gbfoam-unit-label,.gbfoam-material strong,.gbfoam-quantity-row label){font-size:1rem}

.woocommerce #review_form input:not([type=checkbox]),.woocommerce #review_form textarea{max-width:100%;box-sizing:border-box}

/* Adapt Ollie catalogue compositions, whose card surfaces use inline styles. */
.wp-block-group:has(>.wc-block-catalog-sorting){flex-wrap:wrap}
.wc-block-catalog-sorting,.wc-block-catalog-sorting select{max-width:100%}
.ollie-product-button-hover-group{background:var(--wp--preset--color--foam-action)!important;border-radius:8px!important;padding:0!important}
.ollie-product-button-hover-group .wc-block-components-product-button__button{padding:.8rem 1rem!important;font-size:1rem!important}
.ollie-product-button-hover-group:has(a:hover){background:var(--wp--preset--color--foam-action-hover)!important}

/* Enhanced contrast for small text and actions across the purchase journey. */
.foam-endorsement{color:var(--wp--preset--color--main)}
.foam-basket-link{margin:0}.foam-basket-link a{min-height:44px;display:inline-flex;align-items:center;gap:.5rem;font-weight:650;white-space:nowrap}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator{--foam-muted:var(--wp--preset--color--main);--foam-accent:var(--wp--preset--color--main)}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator .gbfoam-add,.wc-block-components-button:not(.is-link):not(.outlined),.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt{background:var(--wp--preset--color--foam-action-hover);border-color:var(--wp--preset--color--foam-action-hover)}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator .gbfoam-add:hover:not(:disabled),.wc-block-components-button:not(.is-link):not(.outlined):hover{background:var(--wp--preset--color--main);border-color:var(--wp--preset--color--main)}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator .gbfoam-field.is-active>label{color:var(--wp--preset--color--main)}
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator .gbfoam-step{color:var(--wp--preset--color--main);border-color:var(--wp--preset--color--main)}
.foam-reading{margin-top:1.5rem}.foam-reading summary{cursor:pointer;min-height:44px;display:list-item;padding:.5rem 0}
.foam-reading-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;padding:1rem 0}
.foam-reading-controls label{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;min-height:44px}
.foam-reading-controls select{font:inherit;padding:.65rem;min-height:48px;border:1px solid #738297;border-radius:8px;background:#fff;color:#17283B}
.foam-reading-controls input{width:24px;height:24px;margin:0}
html[data-foam-reading=soft]{--foam-reader-ink:#17283B;--foam-reader-surface:#F3F6F8;--foam-reader-canvas:#E9F1F8;--foam-reader-border:#506174;--foam-reader-tint:#E9F1F8}
html[data-foam-reading=dark]{--foam-reader-ink:#FFFFFF;--foam-reader-surface:#17283B;--foam-reader-canvas:#0D1824;--foam-reader-border:#D2DCE5;--foam-reader-tint:#263F57}
html:is([data-foam-reading=soft],[data-foam-reading=dark]) body{background:var(--foam-reader-canvas);color:var(--foam-reader-ink)}
html:is([data-foam-reading=soft],[data-foam-reading=dark]) :is(.foam-header,.foam-homepage,.foam-home-card,.gbfoam-configurator,.gbfoam-purchase,.gbfoam-material){color:var(--foam-reader-ink);background:var(--foam-reader-surface)}
html:is([data-foam-reading=soft],[data-foam-reading=dark]) :is(.foam-header,.foam-homepage) a:not(.wp-element-button):not(.foam-wordmark a){color:inherit}
html:is([data-foam-reading=soft],[data-foam-reading=dark]) .gbfoam-configurator{--foam-ink:var(--foam-reader-ink);--foam-muted:var(--foam-reader-ink);--foam-pale:var(--foam-reader-tint);--foam-accent:var(--foam-reader-ink)}
html:is([data-foam-reading=soft],[data-foam-reading=dark]) .gbfoam-configurator :is(input:not([type=radio]):not([type=checkbox]),select,.gbfoam-refresh,.gbfoam-shape-grid button){color:var(--foam-reader-ink);background:var(--foam-reader-surface);border-color:var(--foam-reader-border)}
html:is([data-foam-reading=soft],[data-foam-reading=dark]) .gbfoam-configurator :is(.gbfoam-step,.gbfoam-material.is-selected,.gbfoam-shape-grid button[aria-pressed=true]){background:var(--foam-reader-tint);color:var(--foam-reader-ink);border-color:var(--foam-reader-border)}
html:is([data-foam-reading=soft],[data-foam-reading=dark]) .foam-homepage .is-style-outline .wp-element-button{color:var(--foam-reader-ink);border-color:var(--foam-reader-border)}
html:is([data-foam-reading=soft],[data-foam-reading=dark]) .foam-endorsement{color:inherit}
html[data-foam-reading=dark] .gbfoam-configurator :is(.gbfoam-error,[aria-invalid=true]){color:#FFF0EF;border-color:#FFF0EF}
html[data-foam-reading=dark] .gbfoam-configurator .gbfoam-step{border-color:#D2DCE5}
html[data-foam-reading=dark] :is(.foam-homepage details,.foam-home-card){border-color:#D2DCE5}
html[data-foam-spacing] .wp-site-blocks :is(p,li,a,label,summary,button,input,select,h1,h2,h3,small,span){line-height:1.6!important;letter-spacing:.12em!important;word-spacing:.16em!important}
html[data-foam-spacing] .wp-site-blocks p{margin-bottom:2em!important}
html[data-foam-spacing] .foam-header-row>div{flex-wrap:wrap!important}
@media(forced-colors:active){.gbfoam-shape-grid button[aria-pressed=true]{outline:3px solid Highlight}.gbfoam-shape-grid svg{fill:Canvas;stroke:CanvasText}.gbfoam-shape-drawing path{stroke:CanvasText}.gbfoam-configurator :is(input,select,button){forced-color-adjust:auto}}

.foam-footer-row>p a{display:inline-flex;align-items:center;min-height:44px}.wc-block-components-quantity-selector{min-width:140px}.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button{min-width:44px;min-height:44px}

/* Keep captions and focused measurements at enhanced contrast in every reading mode. */
:is(.wp-site-blocks,.editor-styles-wrapper) .gbfoam-configurator .gbfoam-preview figcaption{color:var(--foam-ink)}
html:is([data-foam-reading=soft],[data-foam-reading=dark]) .wp-site-blocks{color:var(--foam-reader-ink)}
html:is([data-foam-reading=soft],[data-foam-reading=dark]) .wp-site-blocks .gbfoam-configurator .gbfoam-purchase{background:var(--foam-reader-surface)}
html:is([data-foam-reading=soft],[data-foam-reading=dark]) .wp-site-blocks .gbfoam-configurator .gbfoam-field.is-active>label{color:var(--foam-reader-ink)}
html[data-foam-reading=dark] .foam-header .foam-wordmark :is(a,.foam-dot){color:#fff}
/* Woo's native form surfaces retain a consistent ink/white contrast pair. */
html:is([data-foam-reading=soft],[data-foam-reading=dark]) :is(.wc-block-cart,.wc-block-checkout){background:#fff;color:#17283B}

.woocommerce-breadcrumb,.woocommerce-breadcrumb a{color:var(--wp--preset--color--main)!important}
html:is([data-foam-reading=soft],[data-foam-reading=dark]) .has-tertiary-background-color{color:#17283B}
html:is([data-foam-reading=soft],[data-foam-reading=dark]) :is(.wc-block-grid,.wp-block-woocommerce-product-collection){background:#fff;color:#17283B}

/* Native Woo floating labels and payment help also meet the enhanced text ratio. */
.wp-site-blocks .wc-block-checkout :is(.wc-block-components-text-input label,.wc-blocks-components-select__label,.wc-block-components-radio-control-accordion-content){color:var(--wp--preset--color--main)}
.wp-site-blocks .wc-block-cart-link .wc-block-cart-link__text{color:var(--wp--preset--color--main)}

/* Purchased measurements and finishing must remain visible at the final review. */
.wp-site-blocks .wc-block-components-order-summary .wc-block-components-order-summary-item__description :is(.wc-block-components-product-metadata,.wc-block-components-product-details,p){display:block;-webkit-line-clamp:unset;line-clamp:unset;overflow:visible;max-height:none;font-size:.875rem;line-height:1.6}
.wp-site-blocks :is(.wc-block-cart,.wc-block-checkout) .wc-block-components-product-details>span{display:block;margin-block:.5rem;overflow-wrap:anywhere}
.wp-site-blocks :is(.wc-block-cart,.wc-block-checkout) .wc-block-components-product-details>span>[aria-hidden=true]{display:none}
.wp-site-blocks :is(.wc-block-cart,.wc-block-checkout) .wc-block-components-product-details__name{font-weight:650}
.gbfoam-extra input{accent-color:var(--foam-ink)}
@media(max-width:600px){
 .wp-site-blocks .wc-block-components-order-summary .wc-block-components-order-summary-item{display:grid;grid-template-columns:48px minmax(0,1fr);gap:.75rem}
 .wp-site-blocks .wc-block-components-order-summary .wc-block-components-order-summary-item__image{grid-column:1;grid-row:1;margin:0}
 .wp-site-blocks .wc-block-components-order-summary .wc-block-components-order-summary-item__total-price{grid-column:2;grid-row:1;margin:0;text-align:right}
 .wp-site-blocks .wc-block-components-order-summary .wc-block-components-order-summary-item__description{grid-column:1/-1;grid-row:2;min-width:0;width:100%;padding:0;margin:0}
}
