/* A&H Bundle Steps: no boxes / lines around each bundled item (all screen sizes) */
.woosb-products,
.woosb-products[class*="woosb-products-layout-grid"]{border:0}
.woosb-products .woosb-product,
.woosb-products[class*="woosb-products-layout-grid"] .woosb-product{border:0;border-bottom:0;box-shadow:none;background:transparent}
.woosb-products[class*="woosb-products-layout-grid"] .woosb-product:hover{border:0}
.woosb-products .woosb-item-text{border-bottom:0}
.woosb-products .woosb-product .variations_form .variations .variation{border:0;padding:5px 0}

/* Steps: every screen size (phone, tablet, desktop). The controls stay hidden until the script has built them. */
.ahbs-head,.ahbs-foot,.ahbs-summary,.ahbs-item-title{display:none}
/* until the script has built the steps, keep the long list out of sight (failsafe: shown again after 2.5 s) */
.woosb-wrap:not(.ahbs-ready) .woosb-products[data-variables="yes"],
.woosb-wrap:not(.ahbs-ready) .woosb-products[data-optional="yes"]{visibility:hidden;animation:ahbs-reveal 0s 2.5s forwards}
@keyframes ahbs-reveal{to{visibility:visible}}

.ahbs-ready .woosb-products{display:block;margin:0}
/* not display:none: the owner's size script (Kids / Adults headings) only dresses items that have a layout */
.ahbs-ready .woosb-product:not(.ahbs-current){position:fixed!important;left:-9999px!important;top:0!important;width:340px!important;visibility:hidden!important;pointer-events:none!important;margin:0!important}
.ahbs-ready .woosb-products[class*="woosb-products-layout-grid"] .woosb-product{width:100%;margin:0;padding:0}
.ahbs-final .woosb-products{display:none}

.ahbs-head{display:block;margin:0 0 14px;scroll-margin-top:84px}
.ahbs-count{font-weight:700;font-size:15px;line-height:22px;height:22px;margin:0 0 8px;overflow:hidden;white-space:nowrap}
.ahbs-bar{display:flex;gap:6px;margin:0 0 -6px}
.ahbs-dot{position:relative;flex:1;height:28px;min-height:0;padding:0;margin:0;border:0;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}
.ahbs-dot::before{content:'';position:absolute;left:0;right:0;top:50%;height:8px;margin-top:-4px;border-radius:4px;background:#dde1e8}
.ahbs-dot.is-done::before{background:#ffbb00}
.ahbs-dot.is-current::before{background:var(--theme-palette-color-4,#1f2a4a)}
.ahbs-dot[disabled]{cursor:default;opacity:.6}

.ahbs-foot{display:block;position:relative;margin:18px 0 0}
.ahbs-nav{display:flex;gap:10px;margin:0}
.ahbs-btn{flex:1 1 0;min-height:52px;margin:0;padding:0 14px;border:2px solid transparent;border-radius:12px;font-weight:700;font-size:16px;line-height:1.2;cursor:pointer;box-shadow:none;-webkit-tap-highlight-color:transparent;transition:none}
.ahbs-next{background:#ffbb00;color:var(--theme-palette-color-4,#1f2a4a)}
.ahbs-next.is-inactive{background:#f6df9c;color:#8a7a4a}
.ahbs-back{flex:0 0 32%;background:transparent;border-color:#ffbb00;color:var(--theme-palette-color-4,#1f2a4a)}
.ahbs-back[hidden]{display:none}
.ahbs-msg{display:block;position:absolute;left:0;right:0;bottom:calc(100% + 8px);margin:0;padding:9px 12px;border-radius:10px;background:#fdecea;font-size:14px;line-height:1.4;color:#a02622}
.ahbs-final .ahbs-msg{position:static;margin:0 0 10px}
.ahbs-msg:empty,.ahbs-final .ahbs-msg:empty{display:none}
.ahbs-missing{outline:2px solid #d63638;outline-offset:2px;border-radius:6px}

/* one item fills the screen width */
.ahbs-ready .woosb-product.ahbs-current .woosb-name{display:none}
.ahbs-ready .ahbs-item-title{display:flex;align-items:center;justify-content:center;text-align:center;font-weight:700;font-size:18px;line-height:1.3;height:48px;margin:0 0 10px;overflow:hidden}
.ahbs-ready .woosb-product.ahbs-current .woosb-thumb{position:relative;width:62%!important;max-width:240px;aspect-ratio:1/1;margin:0 auto 12px;border-radius:16px;overflow:hidden;background:#f2f4f7}
.ahbs-ready .woosb-product.ahbs-current .woosb-thumb > div{position:absolute;inset:0;padding:0!important}
.ahbs-ready .woosb-product.ahbs-current .woosb-thumb img{width:100%;height:100%;object-fit:cover;border-radius:16px;display:block}
/* each option group (type, size, colour) is its own full-width row: as inline blocks a short group (colour) jumped up beside the size row when kids sizes were hidden */
.ahbs-ready .woosb-product.ahbs-current .variations,.ahbs-ready .woosb-product.ahbs-current .variations .variation{display:block!important;width:100%}
.ahbs-ready .woosb-product.ahbs-current .variation .cfvsw-swatches-container{width:100%}
.ahbs-ready .woosb-product.ahbs-current .variation .label{text-align:center}
.ahbs-ready .woosb-product.ahbs-current .cfvsw-swatches-container{justify-content:center;text-align:center}
.ahbs-ready .woosb-product.ahbs-current .cfvsw-swatches-container > div:not(.cfvsw-swatches-option){flex:0 0 100%;width:100%;text-align:center!important}
.ahbs-ready .woosb-product.ahbs-current .kids-label,.ahbs-ready .woosb-product.ahbs-current .adults-label{text-align:center!important;display:block;width:100%}
.ahbs-ready .woosb-product.ahbs-current .woosb-availability:empty{display:none}
.ahbs-active .woosb-alert{display:none!important}
/* the per-item price and the 'Selected: N' counter only add noise next to the progress bar and the summary */
.ahbs-ready .woosb-product .woosb-price,.ahbs-active .woosb-count{display:none!important}
/* the description above the bundle is read once, on the first step */
.ahbs-ready:not(.ahbs-first) .woosb-before-text{display:none}
/* the 'Clear' link appears after the first choice and pushes everything below it down; another tap on a swatch changes the choice anyway */
.ahbs-ready .woosb-product.ahbs-current .reset{display:none!important}
.ahbs-ready .woosb-product.ahbs-current{display:block!important}

/* summary */
.ahbs-summary{display:none}
.ahbs-final .ahbs-summary{display:block}
.ahbs-final{display:flex;flex-direction:column}
.ahbs-final .ahbs-head{order:0}
.ahbs-final .ahbs-summary{order:1}
.ahbs-final .woosb-summary{order:2}
.ahbs-final .ahbs-foot{order:3;margin:12px 0 14px}
.ahbs-final.ahbs-nochoice .woosb-summary{display:none}
.ahbs-sum-row{display:flex;align-items:center;gap:12px;padding:10px 0}
.ahbs-sum-row + .ahbs-sum-row{border-top:0}
.ahbs-sum-img{flex:0 0 64px;width:64px;height:64px;border-radius:12px;object-fit:cover;background:#f2f4f7}
.ahbs-sum-txt{flex:1 1 auto;min-width:0}
.ahbs-sum-name{font-weight:700;font-size:15px;line-height:1.3}
.ahbs-sum-opts{font-size:14px;color:#5a6378;line-height:1.3;margin-top:2px}
.ahbs-sum-edit{flex:0 0 auto;min-height:40px;padding:0 14px;border:0;border-radius:8px;background:#eceff4;color:var(--theme-palette-color-4,#1f2a4a);font-weight:600;font-size:14px;cursor:pointer}

/* the price + Add to cart only on the summary step; any custom-field choice on the product (print side, a name to add...) is not
   part of "an item", so it leads, above even the item picker. It is asked once: shown on the first step only, not repeated on
   later items; the review screen only lists it (owner, 2026-11-09); the choice itself still goes to the cart normally either way, since the
   field is only hidden with CSS, never removed from the form. */
.ahbs-active .single_add_to_cart_button{white-space:nowrap}
.ahbs-active:not(.ahbs-is-final){display:flex;flex-direction:column}
.ahbs-active:not(.ahbs-is-final) > form.cart{order:-1}
.ahbs-active:not(.ahbs-is-final) > form.cart > *:not(.wcpa_form_outer){display:none}
.ahbs-active > form.cart > .wcpa_form_outer{display:none}
.ahbs-active:not(.ahbs-is-final):has(> .woosb-wrap.ahbs-first) > form.cart > .wcpa_form_outer{display:block;margin:0 0 18px}
/* text boxes of the bundled items (a year, a letter, a date: .wapf-fields, printed into the cart form by the "fields for bundle
   products" snippet). The script moves an item's own box into that item's step; what stays in the cart form is one box for the
   whole bundle, shown like the print side: first step only. Look of the print-option fields. */
.ahbs-active > form.cart > .wapf-custom-fields{display:none}
.ahbs-active:not(.ahbs-is-final):has(> .woosb-wrap.ahbs-first) > form.cart > .wapf-custom-fields:has(.wapf-fields){display:block;margin:0 0 18px}
.ahbs-active .wapf-product-title{display:none}
.ahbs-active .wapf-fields .wapf-field-container{margin:0;padding:0}
.ahbs-active .wapf-fields .wapf-field-label label{display:block;margin:0 0 6px;font-size:16px;font-weight:700;color:#3a4f66}
.ahbs-active .wapf-fields .wapf-field-label abbr{color:#d63638;text-decoration:none;border:0}
.ahbs-active .wapf-fields .wapf-input{width:100%;min-height:48px;margin:0;padding:8px 12px;border:2px solid rgba(0,0,0,.125);border-radius:10px;background:#fff;font-size:16px;color:#3a4f66;box-shadow:none}
.ahbs-active .wapf-fields .wapf-input:focus{border-color:#ffbb00;outline:0}
.ahbs-active .wapf-fields .wapf-input::placeholder{color:#8a96a6;opacity:1}
/* the example is moved into the box as its placeholder by the script; never shown as a line under it */
.ahbs-active .wapf-fields .description{display:none}
/* an item's own box: full width under the item's options, text starting on the reading side (right in Arabic, left in English) */
.ahbs-ready .woosb-product .wapf-fields{width:100%;margin:14px 0 0;text-align:start}
.ahbs-ready .woosb-product .wapf-fields .wapf-input{text-align:start}
.ahbs-active:not(.ahbs-is-final) .woosb-summary{display:none}
body.ahbs-not-final .ct-floating-bar{display:none!important}
@media (max-width:689px){body.ahbs-not-final .ct-back-to-top{display:none!important}}

/* pointer + keyboard polish (desktop / tablet with a mouse or keyboard) */
.ahbs-next:not(.is-inactive):hover{background:#f2b300}
.ahbs-back:hover{background:#fff6dc}
.ahbs-sum-edit:hover{background:#e2e6ee}
.ahbs-btn:focus-visible,.ahbs-dot:focus-visible,.ahbs-sum-edit:focus-visible{outline:2px solid var(--theme-palette-color-4,#1f2a4a);outline-offset:2px}
