/* WCAG 2.2 AAA purchase journey: native controls and lightweight reading preferences. */
:root{--foam-access-ink:#17283B;--foam-access-surface:#fff;--foam-access-tint:#E9F1F8;--foam-access-border:#506174;--foam-access-error:#91252B}
html:is([data-foam-reading=soft],[data-foam-reading=dark]){--foam-access-ink:var(--foam-reader-ink);--foam-access-surface:var(--foam-reader-surface);--foam-access-tint:var(--foam-reader-tint);--foam-access-border:var(--foam-reader-border)}
html[data-foam-reading=dark]{--foam-access-error:#FFF0EF}
html[data-foam-text="125"]{font-size:125%}html[data-foam-text="150"]{font-size:150%}html[data-foam-text="200"]{font-size:200%}
.wp-site-blocks :is(p,li,dd){text-align:start}
.wp-site-blocks p{max-inline-size:80ch}
html[data-foam-spacing] .wp-site-blocks p{margin-block-end:2.4em!important}
.foam-order-steps ol{display:flex;flex-wrap:wrap;gap:.5rem 1rem;list-style:none;padding:0;margin:0 0 1rem}
.foam-order-steps li{display:flex;align-items:center;gap:1rem}
.foam-order-steps li+li::before{content:'›';speak:never}
.foam-order-steps :is(a,[aria-current]){display:inline-flex;align-items:center;min-width:48px;min-height:48px;color:inherit}
.foam-order-steps [aria-current]{font-weight:750;text-decoration:underline;text-underline-offset:.25em}
.foam-purchase-page{padding-block:2rem;background:var(--foam-access-surface);color:var(--foam-access-ink)}
.foam-order-help,.gbfoam-terms{margin-block:1rem;border:1px solid var(--foam-access-border);border-radius:8px;padding:.5rem 1rem}
.foam-order-help summary,.gbfoam-terms summary{cursor:pointer;min-height:48px;align-content:center;font-weight:650}
.foam-order-help a{color:inherit}
.foam-header a,.foam-footer-row>p a,.foam-basket-link a{min-width:48px;min-height:48px}
.foam-header .wp-block-navigation-item__content{min-width:48px;min-height:48px}
/* Keep the text either side of the red dot together as one wordmark. */
.foam-wordmark a{display:inline-flex;align-items:center;min-height:48px;white-space:nowrap}
.gbfoam-configurator .gbfoam-small>a:only-child{display:inline-flex;align-items:center;min-height:48px}
.foam-consent label{min-height:48px;box-sizing:border-box}
.foam-reading-controls{align-items:flex-start}
.foam-reading-controls label{min-height:48px;max-width:100%}
.foam-reading-controls select{max-width:100%}
.foam-reading-controls input{flex:0 0 24px}
/* Enhanced focus area, including links on dark surfaces and native Woo sub-controls. */
.wp-site-blocks :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--foam-access-ink)!important;outline-offset:3px!important;box-shadow:0 0 0 3px var(--foam-access-surface)!important;scroll-margin-block:3rem}
.foam-footer{--foam-access-ink:#fff;--foam-access-surface:#17283B}
.foam-purchase-page :is(.wc-block-cart,.wc-block-checkout){background:var(--foam-access-surface)!important;color:var(--foam-access-ink)!important}
.foam-purchase-page :is(a,.wc-block-components-product-name,.wc-block-components-panel__button,.wc-block-components-radio-control-accordion-content,.wc-block-components-text-input label,.wc-blocks-components-select__label){color:var(--foam-access-ink)!important}
.foam-purchase-page :is(.wc-block-components-quantity-selector,.wc-block-components-radio-control__option,.wc-block-components-checkbox__input){border-color:var(--foam-access-border)!important}
.foam-purchase-page :is(input,select,textarea){color:var(--foam-access-ink)!important;background-color:var(--foam-access-surface)!important;border-color:var(--foam-access-border)!important;max-width:100%;box-sizing:border-box}
.foam-purchase-page input::placeholder,.foam-purchase-page textarea::placeholder{color:var(--foam-access-ink);opacity:1}
.foam-purchase-page :is(.wc-block-components-validation-error,.wc-block-components-validation-error p,.wc-block-components-validation-error span){color:var(--foam-access-error)!important}
.foam-purchase-page :is(input,select,textarea)[aria-invalid=true]{border-color:var(--foam-access-error)!important}
.foam-purchase-page .wc-block-components-validation-error svg{fill:currentColor;flex-shrink:0}
.foam-purchase-page :is(.wc-block-components-panel__button,.wc-block-components-address-form__address_2-toggle){min-height:48px;display:flex;align-items:center;gap:.5rem;box-sizing:border-box;white-space:normal}
.foam-purchase-page .wc-block-components-checkbox label{min-height:48px;display:flex;align-items:center;gap:.5rem}
.foam-purchase-page .wc-block-components-checkbox label .wc-block-components-checkbox__input{flex-shrink:0;margin:0}
.foam-purchase-page .wc-block-components-checkbox label .wc-block-components-checkbox__label{padding:0}
.foam-purchase-page .wc-block-components-product-name{display:inline-flex;align-items:center;min-height:48px}
.foam-purchase-page .wc-block-cart-item__image a{display:flex;min-height:48px;min-width:48px}
.foam-purchase-page .wc-block-cart-item__quantity{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.wp-site-blocks .foam-purchase-page .wc-block-components-quantity-selector{display:flex;min-width:0;width:auto;max-width:100%;height:auto;min-height:48px;overflow:visible;margin:0}
.wp-site-blocks .foam-purchase-page .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button{min-width:48px;min-height:48px;width:48px;height:auto;flex:0 0 48px;color:var(--foam-access-ink)}
.wp-site-blocks .foam-purchase-page .wc-block-components-quantity-selector .wc-block-components-quantity-selector__input{min-height:48px;min-width:48px;width:4ch;flex:1 1 4ch;padding:.25rem;text-align:center;font-size:1rem}
.wp-site-blocks .foam-purchase-page .wc-block-cart-item__remove-link{min-height:48px;min-width:48px;width:auto;height:auto;padding:.5rem;color:var(--foam-access-ink)}
/* Keep labels above controls; floating overlays clip enlarged and spaced text. */
.foam-purchase-page .wc-block-components-text-input{display:flex;flex-direction:column;gap:.35rem}
.wp-site-blocks .foam-purchase-page .wc-block-components-text-input label{position:static!important;transform:none!important;order:-1;font-size:1rem!important;max-width:none;line-height:1.6;margin:0;white-space:normal}
.wp-site-blocks .foam-purchase-page .wc-block-components-text-input input{padding:.75rem!important;min-height:48px;font-size:1rem;line-height:1.5;margin:0}
.foam-purchase-page .wc-blocks-components-select__container{display:flex;flex-direction:column;gap:.35rem;height:auto;padding:0;background:transparent}
.foam-purchase-page .wc-blocks-components-select__label{position:static!important;transform:none!important;font-size:1rem!important;order:-1;max-width:none;line-height:1.6;white-space:normal}
.foam-purchase-page .wc-blocks-components-select__select{padding:.75rem 2.5rem .75rem .75rem!important;min-height:48px;height:auto;font-size:1rem!important;line-height:1.5;border:1px solid var(--foam-access-border)!important;border-radius:8px}
.foam-purchase-page .wc-blocks-components-select__expand{top:auto;bottom:1rem;fill:var(--foam-access-ink)}
.foam-purchase-page .wc-block-components-radio-control__label-group{color:var(--foam-access-ink)}
.foam-purchase-page :is(.wc-block-components-radio-control__input,.wc-block-components-checkbox__input){accent-color:var(--foam-access-ink)}
.foam-purchase-page .wc-block-components-totals-coupon__button{min-width:48px}
@media(max-width:600px){.foam-purchase-page .wc-block-cart-items__row{min-width:0}.foam-purchase-page .wc-block-components-product-metadata{overflow-wrap:anywhere}.foam-reading-controls{display:grid;grid-template-columns:minmax(0,1fr)}}
@media(forced-colors:active){.wp-site-blocks :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline-color:Highlight!important;box-shadow:none!important}.foam-purchase-page :is(input,select,textarea,button){forced-color-adjust:auto}}

/* Ollie scales its quantity widget to 80%; preserve the actual 48px hit areas. */
.wp-site-blocks .foam-purchase-page .wc-block-components-quantity-selector{transform:none!important}
.wp-site-blocks .foam-purchase-page .wc-block-components-button:not(.is-link):not(.outlined){color:#fff!important;background:#91252B!important;border-color:#91252B!important}
.wp-site-blocks .foam-purchase-page .wc-block-components-button:not(.is-link):not(.outlined):hover{background:#17283B!important;border-color:#17283B!important}

/* Reflow enlarged text without squeezing the basket into fixed image/price columns. */
.foam-header-row>*,.foam-footer-row>*{min-width:0;max-width:100%}
.foam-wordmark{font-size:min(2.125rem,10vw)}
.foam-footer p,.foam-order-help p{overflow-wrap:anywhere}
.wp-site-blocks .foam-purchase-page .wc-block-cart-items__row td{min-width:0}
@media(max-width:48em){
 .wp-site-blocks .foam-purchase-page .wc-block-cart-items__row{grid-template-columns:minmax(0,1fr);gap:1rem}
 .wp-site-blocks .foam-purchase-page .wc-block-cart-items__row td{grid-column:1;grid-row:auto;width:100%;padding:0}
 .wp-site-blocks .foam-purchase-page .wc-block-cart-item__image{display:none}
 .wp-site-blocks .foam-purchase-page .wc-block-cart-item__total{justify-content:flex-start}
 .foam-purchase-page .wc-block-components-product-name{overflow-wrap:anywhere}
}
/* The skip link is outside wp-site-blocks and must keep its own light surface. */
.skip-link:focus{background:#fff!important;color:#17283B!important;outline:3px solid #17283B!important;outline-offset:3px;box-shadow:0 0 0 3px #fff;min-height:48px;min-width:48px}

.foam-purchase-page .wc-block-checkout__terms{color:var(--foam-access-ink)!important;background:var(--foam-access-surface)!important}
.foam-purchase-page .wc-block-components-checkbox__label{min-width:0;overflow-wrap:anywhere}
.foam-purchase-page .wc-block-components-radio-control__label-group{flex-wrap:wrap;gap:.5rem;min-width:0}
.foam-purchase-page .wc-block-components-radio-control__secondary-label{margin:0;max-width:100%}
.foam-purchase-page .wc-block-components-radio-control__option-layout{min-width:0}
.foam-purchase-page .wc-block-checkout__shipping-option{min-width:0}
.foam-purchase-page .wc-block-components-checkout-order-summary__title{gap:.5rem;flex-wrap:wrap}
.foam-purchase-page .wc-block-components-checkout-order-summary__title-text{min-width:0;overflow-wrap:anywhere}
.foam-purchase-page .wc-block-components-checkout-order-summary__title-icon{flex-shrink:0}

.foam-basket-link a{white-space:normal;max-width:100%;overflow-wrap:anywhere}
.foam-purchase-page fieldset{min-inline-size:0}
.foam-purchase-page .wc-block-components-checkout-step__heading{min-width:0}
.foam-purchase-page .wc-block-components-checkout-step__title{overflow-wrap:anywhere}
.foam-purchase-page .wc-block-components-radio-control__label{overflow-wrap:anywhere}

.wp-site-blocks :is(h1,h2,h3){overflow-wrap:anywhere}
.foam-order-steps li{min-width:0;max-width:100%}
.foam-order-steps :is(a,[aria-current]){min-width:0;overflow-wrap:anywhere}
.foam-order-steps li+li::before{flex-shrink:0}
.foam-purchase-page .wc-blocks-components-select__label{overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.foam-purchase-page .wc-block-components-address-card{flex-wrap:wrap;gap:.5rem;overflow-wrap:anywhere}

.foam-order-note-label{display:block;font-weight:600;line-height:1.6;margin-block:.5rem}

/* Let grid items shrink to the viewport even with doubled, spaced text. */
.foam-homepage{overflow-wrap:anywhere}
.foam-homepage :is(.foam-home-hero,.foam-home-cards,.foam-home-help,.foam-home-support)>*{min-width:0}
.foam-reading-controls select{box-sizing:border-box;min-width:0}
.gbfoam-input-unit{flex-wrap:wrap}
.gbfoam-input-unit input{flex:1 1 8ch}

/* The shared privacy controls sit outside the WordPress content wrapper. */
.foam-consent,.foam-consent-controls{color:var(--foam-access-ink);background:var(--foam-access-surface);overflow-wrap:anywhere;border-color:var(--foam-access-border)}
.foam-consent fieldset{min-inline-size:0}
.foam-consent p,.foam-consent label,.foam-consent-controls p{max-inline-size:80ch;line-height:1.6;text-align:start}
html[data-foam-spacing] :is(.foam-consent,.foam-consent-controls) :is(p,label,button,legend){line-height:1.6!important;letter-spacing:.12em!important;word-spacing:.16em!important}
html[data-foam-spacing] :is(.foam-consent,.foam-consent-controls) p{margin-block-end:2.4em!important}
:is(.foam-consent,.foam-consent-controls) :is(button,input):focus-visible{outline:3px solid var(--foam-access-ink);outline-offset:3px;box-shadow:0 0 0 3px var(--foam-access-surface)}

/* Empty and completed purchase states retain the same contrast and reading controls. */
.wp-site-blocks .foam-purchase-page :is(a.wp-block-button__link,.woocommerce-button,button.button){color:#fff!important;background:#91252B!important;min-height:48px;min-width:48px;box-sizing:border-box;white-space:normal;overflow-wrap:anywhere}
.wp-site-blocks .foam-purchase-page :is(a.wp-block-button__link,.woocommerce-button,button.button):hover{background:#17283B!important}
.foam-purchase-page .wc-block-components-notice-banner.is-error{background:var(--foam-access-surface)!important;color:var(--foam-access-error)!important;border-color:var(--foam-access-error)!important}
.foam-purchase-page .wc-block-components-notice-banner.is-error>svg{background:var(--foam-access-error)!important;fill:var(--foam-access-surface)!important}
.foam-empty-basket,.wc-block-checkout-empty{max-width:60ch;margin-block:2rem;text-align:start}
.foam-empty-basket h2:focus,.wc-block-checkout-empty__title:focus{outline:3px solid var(--foam-access-ink);outline-offset:3px}
.foam-purchase-page .wc-block-checkout-empty__title{font-size:1.5rem;line-height:1.4;display:block;overflow-wrap:anywhere}
.foam-purchase-page .wc-block-checkout-empty__image{display:none}
.foam-order-confirmation :is(table,th,td,address,form){color:var(--foam-access-ink);background:var(--foam-access-surface);border-color:var(--foam-access-border);font-size:1rem;line-height:1.6}
.foam-order-confirmation :is(.wc-block-order-confirmation-summary, .wc-block-order-confirmation-totals, .wc-block-order-confirmation-status){font-size:1rem}
.foam-order-confirmation .wc-block-order-confirmation-summary ul{display:flex;flex-wrap:wrap;gap:1rem 2rem}
.foam-order-confirmation .wc-block-order-confirmation-summary li{min-width:0;max-width:100%;margin:0;overflow-wrap:anywhere}
.foam-order-confirmation table{width:100%;table-layout:fixed;border-collapse:collapse}
.foam-order-confirmation :is(th,td){padding:.75rem .5rem;vertical-align:top;overflow-wrap:anywhere}
.foam-order-confirmation .wc-block-order-confirmation-totals__total{width:30%;white-space:normal}
.foam-order-confirmation :is(.amount,.wc-item-meta li,.wc-item-meta p){white-space:normal;overflow-wrap:anywhere}
.foam-order-confirmation .wc-item-meta{padding-inline-start:1.25rem}
.foam-order-confirmation .wc-item-meta strong{float:none}
.foam-order-confirmation td>a{display:inline-flex;align-items:center;min-height:48px}
.foam-order-addresses{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:2rem}
.foam-order-addresses>*{min-width:0;overflow-wrap:anywhere}
.foam-order-confirmation .woocommerce-verify-email label{display:block}
.foam-order-confirmation .woocommerce-verify-email input{font:inherit;min-height:48px;padding:.75rem;width:100%;max-width:32rem}

.foam-order-confirmation .woocommerce-verify-email button{font:inherit;padding:.75rem 1rem;max-width:100%;line-height:1.6}
.foam-order-confirmation .woocommerce-error{color:var(--foam-access-error)!important;background:var(--foam-access-surface)!important;border-color:var(--foam-access-error)!important;overflow-wrap:anywhere}

/* Woo's empty-checkout paragraph adds nested fixed padding, and notice dismiss
   buttons otherwise shrink to 16px. Keep error recovery usable at large text sizes. */
.foam-purchase-page .wc-block-checkout-empty{min-width:0;width:100%;overflow-wrap:anywhere}
.foam-purchase-page .wc-block-checkout-empty__description{padding:0!important;overflow-wrap:anywhere}
.foam-purchase-page .wc-block-components-notice-banner{display:grid!important;grid-template-columns:minmax(0,1fr) 48px;gap:.5rem;padding:1rem!important;font-size:1rem!important;line-height:1.6!important;align-items:start}
.foam-purchase-page .wc-block-components-notice-banner>svg{grid-column:1;grid-row:1}
.foam-purchase-page .wc-block-components-notice-banner__content{grid-column:1/-1;grid-row:2;min-width:0;overflow-wrap:anywhere}
.wp-site-blocks .foam-purchase-page .wc-block-components-notice-banner__dismiss{position:static!important;grid-column:2;grid-row:1;min-width:48px!important;width:48px!important;min-height:48px!important;height:48px!important;max-height:none!important;padding:.5rem!important;transform:none!important;opacity:1!important}

.foam-empty-basket{overflow-wrap:anywhere}
