/* BTO Storefront v1.0.110 */
:root {
    --bto-ink: #17243a;
    --bto-muted: #637086;
    --bto-blue: #1487f4;
    --bto-blue-dark: #0966d6;
    --bto-pink: #ff3f83;
    --bto-yellow: #ffbd18;
    --bto-orange: #ff8a1f;
    --bto-green: #65c934;
    --bto-purple: #7449dc;
    --bto-teal: #21bfc1;
    --bto-cream: #fff9ee;
    --bto-sky: #eef7ff;
    --bto-line: #e7ecf2;
    --bto-white: #fff;
    --bto-shadow: 0 16px 40px rgba(30, 48, 82, .10);
    --bto-radius: 22px;
    --bto-container: 1420px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--bto-ink);
    background: #fff;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
body.bto-menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--bto-blue-dark); }
img { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
    outline: 3px solid rgba(20, 135, 244, .35);
    outline-offset: 3px;
}
.screen-reader-text {
    border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute!important; width: 1px; word-wrap: normal!important;
}
.bto-skip-link { position: fixed; left: 16px; top: -100px; z-index: 99999; background: #fff; padding: 10px 14px; border-radius: 8px; box-shadow: var(--bto-shadow); }
.bto-skip-link:focus { top: 16px; }
.bto-container { width: min(calc(100% - 40px), var(--bto-container)); margin: 0 auto; }

h1,h2,h3,h4,.woocommerce div.product .product_title,.woocommerce-loop-product__title {
    font-family: "Arial Rounded MT Bold", "Trebuchet MS", ui-rounded, system-ui, sans-serif;
    color: var(--bto-ink);
    letter-spacing: -.035em;
}
h1 { font-size: clamp(2.75rem, 5vw, 5.4rem); line-height: .98; margin: 0 0 24px; }
h2 { font-size: clamp(2rem, 3.3vw, 3.65rem); line-height: 1.04; margin: 0; }
h3 { line-height: 1.15; }
p { margin-top: 0; }

/* Header */
.bto-site-header { position: sticky; top: 0; z-index: 1000; background: #fff; box-shadow: 0 1px 0 rgba(23,36,58,.08); }
.admin-bar .bto-site-header { top: 32px; }
.bto-topbar { background: var(--bto-ink); color: #fff; font-size: 13px; font-weight: 700; }
.bto-topbar__inner { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.bto-topbar a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.bto-main-header__inner { min-height: 104px; display: grid; grid-template-columns: 270px minmax(320px,1fr) auto; align-items: center; gap: 32px; }
.bto-brand { display: inline-flex; align-items: center; }
.bto-logo-picture { display: inline-flex; align-items: center; line-height: 0; }
.bto-logo { display: block; width: min(100%, 265px); max-height: 82px; object-fit: contain; }
.bto-header-search { width: 100%; }
.bto-product-search { display: flex; width: 100%; min-height: 52px; border: 2px solid #dfe6ee; border-radius: 999px; background: #f9fbfd; overflow: hidden; transition: border-color .2s, box-shadow .2s, background .2s; }
.bto-product-search:focus-within { border-color: var(--bto-blue); background: #fff; box-shadow: 0 0 0 5px rgba(20,135,244,.10); }
.bto-product-search__field { flex: 1; min-width: 0; border: 0; background: transparent; padding: 0 8px 0 22px; color: var(--bto-ink); outline: 0; }
.bto-product-search__field::placeholder { color: #8c98a9; }
.bto-product-search__submit { width: 58px; border: 0; background: var(--bto-yellow); color: var(--bto-ink); font-size: 25px; font-weight: 900; cursor: pointer; }
.bto-header-actions { display: flex; align-items: center; gap: 10px; }
.bto-account-link,.bto-basket-link { min-height: 56px; display: flex; align-items: center; gap: 10px; border-radius: 16px; padding: 8px 12px; white-space: nowrap; }
.bto-account-link:hover { background: var(--bto-sky); color: var(--bto-ink); }
.bto-basket-link { background: var(--bto-yellow); padding-right: 13px; position: relative; }
.bto-basket-link:hover { background: #ffca42; color: var(--bto-ink); }
.bto-header-actions small { display: block; color: #69768a; font-size: 11px; font-weight: 700; line-height: 1.1; }
.bto-basket-link small { color: rgba(23,36,58,.70); }
.bto-header-actions strong { display: block; font-size: 13px; line-height: 1.25; }
.bto-action-icon { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--bto-sky); color: var(--bto-blue-dark); font-weight: 900; }
.bto-basket-icon { background: rgba(255,255,255,.62); color: var(--bto-ink); }
.bto-cart-count { min-width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--bto-pink); color: #fff; font-size: 11px; font-weight: 900; }
.bto-category-nav { background: var(--bto-purple); color: #fff; }
.bto-category-nav__inner { min-height: 48px; display: flex; align-items: stretch; overflow-x: auto; scrollbar-width: none; }
.bto-category-nav__inner::-webkit-scrollbar { display: none; }
.bto-category-nav a { display: flex; align-items: center; padding: 0 15px; color: #fff; font-size: 13px; font-weight: 800; white-space: nowrap; }
.bto-category-nav a:hover { background: rgba(255,255,255,.12); color: #fff; }
.bto-category-nav a.is-current { background: var(--bto-pink)!important; color:#fff!important; }
.bto-category-nav a.is-current:hover { background: var(--bto-pink)!important; color:#fff!important; }
.bto-menu-toggle { display: none; width: 44px; height: 40px; border: 0; border-radius: 12px; background: var(--bto-sky); padding: 10px; cursor: pointer; }
.bto-menu-toggle > span:not(.screen-reader-text) { display: block; height: 2px; background: var(--bto-ink); margin: 4px 0; border-radius: 2px; }
.bto-mobile-nav { position: fixed; inset: 0 auto 0 0; width: min(92vw, 420px); z-index: 5000; background: #fff; box-shadow: 30px 0 70px rgba(17,30,50,.20); transform: translateX(-105%); transition: transform .18s ease; overflow-y: auto; }
.bto-mobile-nav.is-open { transform: translateX(0); }
.bto-mobile-nav__head { display: flex; align-items: center; justify-content: space-between; padding: 20px; border-bottom: 1px solid var(--bto-line); }
.bto-mobile-nav__head strong { font-size: 20px; }
.bto-mobile-nav__head button { border: 0; background: transparent; font-size: 34px; cursor: pointer; }
.bto-mobile-nav__search { padding: 18px 20px; }
.bto-mobile-nav__links { display: grid; }
.bto-mobile-nav__links a { padding: 14px 20px; border-top: 1px solid var(--bto-line); font-weight: 700; }

/* Utility */
.bto-btn,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,.wp-element-button,.wc-block-components-button {
    display: inline-flex!important; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 20px!important; border: 0!important; border-radius: 12px!important; font-weight: 850!important; line-height: 1!important; text-decoration: none!important; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.bto-btn:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,.wc-block-components-button:hover { transform: translateY(-1px); }
.bto-btn--primary,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,.wc-block-components-button { background: var(--bto-blue)!important; color: #fff!important; }
.bto-btn--primary:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover { background: var(--bto-blue-dark)!important; color: #fff!important; }
.bto-btn--yellow { background: var(--bto-yellow); color: var(--bto-ink); }
.bto-btn--yellow:hover { background: #ffcf50; color: var(--bto-ink); }
.bto-btn--ghost { border: 2px solid rgba(23,36,58,.16)!important; background: #fff; color: var(--bto-ink); }
.bto-text-link { font-weight: 850; color: var(--bto-blue-dark); }
.bto-eyebrow { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 14px; color: var(--bto-blue-dark); font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .14em; }
.bto-eyebrow::before { content: ""; width: 26px; height: 4px; border-radius: 99px; background: var(--bto-yellow); }
.bto-eyebrow--light { color: #fff; }
.bto-section { padding: clamp(68px, 7vw, 104px) 0; }
.bto-section-heading { margin-bottom: 34px; }
.bto-section-heading--split { display: flex; align-items: end; justify-content: space-between; gap: 30px; }

/* Home hero */
.bto-hero { position: relative; overflow: hidden; background: linear-gradient(135deg, #fff9ed 0%, #fff 47%, #eff7ff 100%); }
.bto-hero::before { content:""; position:absolute; width:460px; height:460px; border-radius:50%; right:-170px; top:-190px; background:rgba(255,63,131,.08); }
.bto-hero::after { content:""; position:absolute; width:260px; height:260px; border-radius:50%; left:-110px; bottom:-130px; background:rgba(101,201,52,.10); }
.bto-hero__grid { position: relative; z-index: 1; min-height: 640px; display: grid; grid-template-columns: minmax(0,.9fr) minmax(520px,1.1fr); align-items: center; gap: clamp(50px,7vw,110px); padding-top: 58px; padding-bottom: 68px; }
.bto-hero__copy { max-width: 690px; }
.bto-hero__copy h1 { max-width: 650px; }
.bto-hero__copy p { max-width: 650px; color: var(--bto-muted); font-size: clamp(1.05rem,1.5vw,1.25rem); }
.bto-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.bto-hero__trust { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 28px; color: #4e5c70; font-size: 13px; font-weight: 750; }
.bto-hero__trust span::before { content:"•"; margin-right:8px; color: var(--bto-pink); font-size: 18px; vertical-align:-1px; }
.bto-hero__products { position: relative; min-height: 520px; }
.bto-hero-product { position: absolute; display: block; width: 300px; border: 8px solid #fff; border-radius: 30px; background: #fff; box-shadow: 0 24px 55px rgba(35,55,90,.16); overflow: hidden; transition: transform .2s ease; }
.bto-hero-product:hover { transform: translateY(-6px) rotate(0deg)!important; color: var(--bto-ink); }
.bto-hero-product img { width: 100%; aspect-ratio: 1 / 1; object-fit: contain; background: #f7f9fc; padding: 16px; display:block; }
.bto-hero-product span { display:block; padding: 13px 16px 16px; font-weight:850; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bto-hero-product--1 { left: 3%; top: 7%; transform: rotate(-5deg); z-index:3; }
.bto-hero-product--2 { right: 2%; top: 1%; transform: rotate(5deg); z-index:2; }
.bto-hero-product--3 { left: 29%; bottom: 2%; transform: rotate(2deg); z-index:4; }
.bto-hero-spark { position:absolute; border-radius:50%; }
.bto-hero-spark--pink { width:38px;height:38px;background:var(--bto-pink);right:4%;bottom:14%; }
.bto-hero-spark--yellow { width:24px;height:24px;background:var(--bto-yellow);left:6%;bottom:22%; }
.bto-hero-spark--green { width:30px;height:30px;background:var(--bto-green);right:31%;top:6%; }

/* Category tiles */
.bto-category-section { background:#fff; }
.bto-category-grid { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:14px; }
.bto-category-tile { min-width:0; padding:14px 12px 16px; border-radius:20px; text-align:center; color:var(--bto-ink); transition:transform .18s ease, box-shadow .18s ease; }
.bto-category-tile:hover { transform:translateY(-4px); box-shadow:var(--bto-shadow); color:var(--bto-ink); }
.bto-category-tile--1{background:#eef7ff}.bto-category-tile--2{background:#fff1f6}.bto-category-tile--3{background:#fff7df}.bto-category-tile--4{background:#eff9e9}.bto-category-tile--5{background:#f3efff}.bto-category-tile--6{background:#eafafa}
.bto-category-tile__visual { width:100%; aspect-ratio:1/1; border-radius:16px; display:grid; place-items:center; overflow:hidden; background:rgba(255,255,255,.65); margin-bottom:12px; }
.bto-category-tile__visual img { width:100%;height:100%;object-fit:contain;padding:10px; }
.bto-category-tile__visual strong { font-size:46px;color:var(--bto-blue-dark); }
.bto-category-tile__name { display:block;font-weight:900;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.bto-category-tile small { color:var(--bto-muted);font-size:11px; }

/* Product grids */
.bto-products-section--blue { background:var(--bto-sky); }
.bto-products-section--yellow { background:#fff8e4; }
.woocommerce ul.products,.bto-product-grid { display:grid!important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px!important; margin:0!important; padding:0!important; }
.woocommerce ul.products::before,.woocommerce ul.products::after { display:none!important; }
.woocommerce ul.products li.product,.bto-product-grid li.product { width:auto!important; margin:0!important; float:none!important; list-style:none; position:relative; display:flex; flex-direction:column; min-width:0; padding:12px 12px 14px!important; border:1px solid rgba(23,36,58,.08); border-radius:20px; background:#fff; box-shadow:0 7px 24px rgba(28,48,80,.055); transition:transform .18s ease, box-shadow .18s ease; }
.woocommerce ul.products li.product:hover { transform:translateY(-4px); box-shadow:0 18px 42px rgba(28,48,80,.12); }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { color:var(--bto-ink); }
.bto-product-image-wrap { display:block; width:100%; aspect-ratio:5/6; border-radius:15px; overflow:hidden; background:#f7f9fc; margin-bottom:12px; }
.bto-product-image { width:100%!important;height:100%!important;object-fit:contain!important;padding:12px!important;margin:0!important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding:2px 2px 0!important; margin:0!important; font-size:1rem!important; line-height:1.28; min-height:2.55em; }
.bto-card-meta { padding:7px 2px 0; }
.bto-card-meta span { display:inline-flex; border-radius:999px; background:#eef5ff; color:#3169a5; padding:4px 8px; font-size:10px; font-weight:850; }
.woocommerce ul.products li.product .price { margin:10px 2px 12px!important; color:var(--bto-ink)!important; font-size:1.1rem!important; font-weight:900!important; }
.woocommerce ul.products li.product .price del { color:#8b96a6!important; font-size:.8em; opacity:1!important; }
.woocommerce ul.products li.product .price ins { color:var(--bto-pink)!important; text-decoration:none!important; }
.woocommerce ul.products li.product .button { margin-top:auto!important; width:100%; min-height:44px; background:var(--bto-yellow)!important; color:var(--bto-ink)!important; }
.woocommerce ul.products li.product .button:hover { background:#ffd04b!important; color:var(--bto-ink)!important; }
.woocommerce span.onsale { min-width:auto!important; min-height:auto!important; line-height:1!important; top:22px!important; left:22px!important; right:auto!important; margin:0!important; padding:8px 10px!important; border-radius:999px!important; background:var(--bto-pink)!important; font-size:11px!important; font-weight:900!important; z-index:6; }
.woocommerce .star-rating { color:var(--bto-yellow); }
.bto-sale-band { background:var(--bto-purple); color:#fff; }
.bto-sale-band h2 { color:#fff; }
.bto-product-grid--on-dark li.product { box-shadow:none!important; }

/* Age */
.bto-age-section { padding-top:0; }
.bto-age-panel { display:grid; grid-template-columns:minmax(0,.85fr) minmax(500px,1.15fr); gap:50px; align-items:center; padding:44px; border-radius:30px; background:linear-gradient(135deg,#fff4f8,#f4f2ff); }
.bto-age-panel__copy p { color:var(--bto-muted); margin-bottom:0; max-width:580px; }
.bto-age-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.bto-age-links a { display:flex; align-items:center; justify-content:center; gap:8px; min-height:88px; border-radius:18px; background:#fff; box-shadow:0 7px 20px rgba(40,55,85,.07); }
.bto-age-links span { color:var(--bto-muted); font-size:12px; font-weight:750; }
.bto-age-links strong { font-family:"Arial Rounded MT Bold","Trebuchet MS",sans-serif;font-size:1.7rem;color:var(--bto-purple); }
.bto-age-links a:hover { transform:translateY(-2px); color:var(--bto-ink); }

/* Confidence */
.bto-confidence-section { background:#fff; border-top:1px solid var(--bto-line); }
.bto-confidence-grid { display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:18px; align-items:stretch; }
.bto-confidence-intro { padding-right:30px; }
.bto-confidence-intro h2 { font-size:clamp(1.9rem,2.7vw,3rem); }
.bto-confidence-item { padding:26px; border:1px solid var(--bto-line); border-radius:20px; background:#fff; }
.bto-confidence-item strong { display:block; margin-bottom:8px; font-size:1.05rem; }
.bto-confidence-item p { color:var(--bto-muted); margin:0; font-size:.92rem; }

/* WooCommerce pages */
.bto-woo-main { padding:52px 0 90px; }
.woocommerce .woocommerce-breadcrumb { margin-bottom:24px!important; color:#788497!important; font-size:12px!important; }
.woocommerce .woocommerce-breadcrumb a { color:var(--bto-blue-dark)!important; }
.woocommerce-products-header { margin-bottom:28px; max-width:960px; }
.woocommerce-products-header__title.page-title { margin:0 0 10px; font-size:clamp(2.4rem,4vw,4.4rem); }
.term-description { color:var(--bto-muted); max-width:900px; }
.woocommerce .woocommerce-result-count { color:var(--bto-muted); font-size:13px; }
.woocommerce .woocommerce-ordering select { min-height:44px; border:1px solid #dce3ec; border-radius:11px; background:#fff; padding:0 38px 0 12px; }
.bto-subcategory-strip { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 24px; }
.bto-subcategory-strip a,.bto-filter-notice { border-radius:999px; padding:8px 13px; background:var(--bto-sky); color:var(--bto-blue-dark); font-size:12px; font-weight:800; }
.bto-filter-notice { display:flex; align-items:center; justify-content:space-between; gap:12px; border-radius:12px; margin-bottom:20px; }
.bto-filter-notice a { text-decoration:underline; }
.woocommerce nav.woocommerce-pagination { margin-top:40px; }
.woocommerce nav.woocommerce-pagination ul { border:0!important; display:flex!important; gap:7px; }
.woocommerce nav.woocommerce-pagination ul li { border:0!important; }
.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span { min-width:42px; height:42px; display:grid!important; place-items:center; border-radius:10px; background:#f4f7fb!important; color:var(--bto-ink)!important; }
.woocommerce nav.woocommerce-pagination ul li span.current { background:var(--bto-blue)!important; color:#fff!important; }

/* Single product */
.woocommerce div.product { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(430px,.95fr); column-gap:clamp(42px,6vw,90px); align-items:start; }
.woocommerce div.product > .woocommerce-tabs,.woocommerce div.product > .related,.woocommerce div.product > .up-sells,.woocommerce div.product > section { grid-column:1/-1; }
.woocommerce div.product .summary {
    float:none!important;
    width:auto!important;
    margin:0!important;
    position:static;
    top:auto;
}
.bto-gallery { min-width:0; }
.bto-gallery-main { width:100%; aspect-ratio:1/1; display:grid; place-items:center; overflow:hidden; border:1px solid var(--bto-line); border-radius:24px; background:#f8fafc; }
.bto-gallery-main img { width:100%;height:100%;object-fit:contain;padding:26px; }
.bto-gallery-thumbs { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin-top:12px; }
.bto-gallery-thumb { aspect-ratio:1/1; border:2px solid transparent; border-radius:13px; background:#f7f9fb; padding:6px; cursor:pointer; overflow:hidden; }
.bto-gallery-thumb.is-active { border-color:var(--bto-blue); }
.bto-gallery-thumb img { width:100%;height:100%;object-fit:contain; }
.woocommerce div.product .product_title { font-size:clamp(2.2rem,3.4vw,4rem); line-height:1.02; margin:0 0 14px; }
.woocommerce div.product p.price,.woocommerce div.product span.price { color:var(--bto-ink)!important; font-size:1.65rem!important; font-weight:900; }
.woocommerce div.product p.price ins,.woocommerce div.product span.price ins { color:var(--bto-pink)!important; text-decoration:none; }
.woocommerce-product-details__short-description { color:var(--bto-muted); font-size:1.02rem; }
.bto-product-specs { margin:20px 0; border:1px solid var(--bto-line); border-radius:16px; overflow:hidden; }
.bto-product-specs > div { display:grid; grid-template-columns:150px 1fr; gap:20px; padding:11px 14px; border-top:1px solid var(--bto-line); }
.bto-product-specs > div:first-child { border-top:0; }
.bto-product-specs dt { font-weight:850; }
.bto-product-specs dd { margin:0; color:var(--bto-muted); }
.woocommerce div.product form.cart { display:flex; gap:10px; flex-wrap:wrap; padding:18px 0 6px; }
.woocommerce .quantity .qty { min-height:48px; border:1px solid #dfe5ed; border-radius:10px; }
.woocommerce div.product form.cart .button { min-height:50px; background:var(--bto-yellow)!important; color:var(--bto-ink)!important; flex:1; }
.woocommerce div.product form.cart .button:hover { background:#ffd04b!important; color:var(--bto-ink)!important; }
.woocommerce div.product form.cart .variations { margin-bottom:12px; }
.woocommerce div.product form.cart .variations select { min-height:46px; border:1px solid #dfe5ed; border-radius:10px; padding:0 10px; }
.product_meta { margin-top:18px; padding-top:18px; border-top:1px solid var(--bto-line); color:var(--bto-muted); font-size:12px; }
.bto-product-reassurance { display:grid; grid-template-columns:repeat(3,1fr); margin-top:20px; border:1px solid var(--bto-line); border-radius:16px; overflow:hidden; }
.bto-product-reassurance span { padding:13px; border-left:1px solid var(--bto-line); }
.bto-product-reassurance span:first-child { border-left:0; }
.bto-product-reassurance strong,.bto-product-reassurance small { display:block; }
.bto-product-reassurance strong { font-size:12px; }
.bto-product-reassurance small { color:var(--bto-muted); font-size:10px; margin-top:3px; }
.woocommerce div.product .woocommerce-tabs { margin-top:72px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display:flex; flex-wrap:wrap; gap:8px; padding:0!important; margin:0 0 20px!important; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before,.woocommerce div.product .woocommerce-tabs ul.tabs li::before,.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display:none!important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border:0!important; border-radius:999px!important; background:#f1f5f9!important; margin:0!important; padding:0!important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background:var(--bto-ink)!important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding:10px 15px!important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color:#fff!important; }
.woocommerce div.product .woocommerce-tabs .panel { padding:26px; border:1px solid var(--bto-line); border-radius:18px; }
.related.products { margin-top:72px; }
.related.products > h2 { margin-bottom:28px; }

/* Cart / checkout / account */
.woocommerce table.shop_table { border:1px solid var(--bto-line)!important; border-radius:16px!important; overflow:hidden; }
.woocommerce table.shop_table th { font-weight:850; }
.woocommerce-cart-form .product-thumbnail img { width:90px!important; height:90px!important; object-fit:contain; }
.cart-collaterals .cart_totals { border:1px solid var(--bto-line); border-radius:18px; padding:22px; background:#fbfcfe; }
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,.select2-container--default .select2-selection--single { border:1px solid #dce3ec!important; border-radius:10px!important; min-height:46px; padding:10px 12px; background:#fff; }
.woocommerce-checkout-payment { background:#fff!important; border:1px solid var(--bto-line); border-radius:14px; }
.woocommerce-account .woocommerce { display:grid; grid-template-columns:250px minmax(0,1fr); gap:34px; }
.woocommerce-MyAccount-navigation ul { margin:0; padding:0; list-style:none; border:1px solid var(--bto-line); border-radius:16px; overflow:hidden; }
.woocommerce-MyAccount-navigation li a { display:block; padding:12px 14px; border-top:1px solid var(--bto-line); font-weight:750; }
.woocommerce-MyAccount-navigation li:first-child a { border-top:0; }
.woocommerce-MyAccount-navigation li.is-active a { background:var(--bto-blue); color:#fff; }
.woocommerce-message,.woocommerce-info,.woocommerce-error { border-top:0!important; border-radius:12px; background:#f4f8fc!important; }
.woocommerce-message { border-left:4px solid var(--bto-green)!important; }
.woocommerce-info { border-left:4px solid var(--bto-blue)!important; }
.woocommerce-error { border-left:4px solid var(--bto-pink)!important; }

/* Generic content */
.bto-main:not(.bto-home-main) { min-height:50vh; }
.bto-content-layout { padding:70px 0 90px; }
.bto-content-layout--narrow { max-width:980px; }
.bto-page-header { margin-bottom:32px; }
.bto-page-header h1 { font-size:clamp(2.5rem,4vw,4.5rem); }
.bto-entry-content { color:#354258; }
.bto-entry-content h2,.bto-entry-content h3 { margin-top:2em; }
.bto-post-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.bto-article-card { padding:24px; border:1px solid var(--bto-line); border-radius:18px; }
.bto-empty-state { text-align:center; padding:120px 20px; max-width:760px; }
.bto-empty-state p { color:var(--bto-muted); font-size:1.1rem; }

/* Footer */
.bto-footer-cta { background:var(--bto-blue); color:#fff; }
.bto-footer-cta__inner { min-height:190px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.bto-footer-cta h2 { color:#fff; font-size:clamp(2rem,3vw,3.3rem); max-width:760px; }
.bto-footer-main { background:var(--bto-ink); color:#cbd4e2; padding:58px 0 24px; }
.bto-footer-grid { display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:48px; }
.bto-logo--footer { filter:brightness(0) invert(1); opacity:.96; max-width:245px; max-height:74px; object-fit:contain; }
.bto-footer-brand p { max-width:390px; margin-top:20px; color:#aeb9c9; }
.bto-footer-main h3 { color:#fff; font-size:15px; margin:0 0 15px; letter-spacing:0; }
.bto-footer-main ul { list-style:none; margin:0; padding:0; }
.bto-footer-main li { margin:7px 0; }
.bto-footer-main a { color:#cbd4e2; font-size:13px; }
.bto-footer-main a:hover { color:#fff; }
.bto-paypal-note { margin-top:20px; padding:14px; border:1px solid rgba(255,255,255,.12); border-radius:12px; }
.bto-paypal-note strong,.bto-paypal-note span { display:block; }
.bto-paypal-note strong { color:#fff; font-size:12px; }
.bto-paypal-note span { color:#9fabba; font-size:11px; }
.bto-footer-bottom { margin-top:44px; padding-top:20px; border-top:1px solid rgba(255,255,255,.10); display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:11px; color:#93a0b2; }

/* Woo Blocks */
.wc-block-cart,.wc-block-checkout { max-width:var(--bto-container); margin:0 auto; padding:60px 20px 90px; }
.wc-block-components-product-name { font-weight:800!important; }
.wc-block-components-sidebar-layout .wc-block-components-main { padding-right:40px!important; }
.wc-block-components-sidebar { border:1px solid var(--bto-line); border-radius:18px; padding:18px!important; background:#fbfcfe; }

@media (max-width: 1180px) {
    .bto-main-header__inner { grid-template-columns:220px minmax(260px,1fr) auto; gap:18px; }
    .bto-logo { max-width:220px; }
    .bto-account-link span:not(.bto-action-icon) { display:none; }
    .bto-category-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .bto-hero__grid { grid-template-columns:1fr 1fr; gap:40px; }
    .bto-hero-product { width:240px; }
    .bto-confidence-grid { grid-template-columns:1fr 1fr; }
    .bto-confidence-intro { grid-column:1/-1; }
}

@media (max-width: 900px) {
    .admin-bar .bto-site-header { top:46px; }
    .bto-topbar__middle { display:none; }
    .bto-main-header__inner { min-height:82px; grid-template-columns:50px minmax(0,1fr) auto; gap:12px; }
    .bto-menu-toggle { display:block; }
    .bto-brand { justify-content:center; }
    .bto-logo { width:200px; max-height:66px; }
    .bto-header-search { grid-column:1/-1; grid-row:2; padding-bottom:14px; }
    .bto-header-actions .bto-account-link { display:none; }
    .bto-basket-link { min-height:46px; padding:6px 9px; }
    .bto-basket-link span:nth-child(2) { display:none; }
    .bto-category-nav { display:none; }
    .bto-hero__grid { min-height:auto; grid-template-columns:1fr; padding-top:48px; }
    .bto-hero__copy { max-width:760px; }
    .bto-hero__products { min-height:470px; max-width:680px; width:100%; margin:0 auto; }
    .bto-category-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .woocommerce ul.products,.bto-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px!important; }
    .bto-age-panel { grid-template-columns:1fr; gap:28px; }
    .bto-confidence-grid { grid-template-columns:1fr 1fr; }
    .woocommerce div.product { grid-template-columns:1fr; row-gap:36px; }
    .woocommerce div.product .summary { position:static; }
    .woocommerce-account .woocommerce { grid-template-columns:1fr; }
    .bto-footer-grid { grid-template-columns:1.3fr 1fr 1fr; }
    .bto-footer-grid > :last-child { grid-column:2/-1; }
}

@media (max-width: 640px) {
    .bto-container { width:min(calc(100% - 28px),var(--bto-container)); }
    .bto-topbar__inner { justify-content:center; min-height:30px; font-size:11px; }
    .bto-topbar__inner > :last-child { display:none; }
    .bto-main-header__inner { padding-top:6px; }
    .bto-logo { width:165px; }
    .bto-header-search { padding-bottom:10px; }
    .bto-product-search { min-height:46px; }
    h1 { font-size:clamp(2.45rem,14vw,4rem); }
    h2 { font-size:clamp(1.8rem,10vw,2.7rem); }
    .bto-section { padding:58px 0; }
    .bto-section-heading--split { align-items:flex-start; flex-direction:column; gap:14px; }
    .bto-hero__grid { padding:38px 0 50px; gap:22px; }
    .bto-hero__copy p { font-size:1rem; }
    .bto-hero__actions { display:grid; grid-template-columns:1fr; }
    .bto-hero__trust { gap:8px 14px; }
    .bto-hero__products { min-height:355px; }
    .bto-hero-product { width:180px; border-width:5px; border-radius:20px; }
    .bto-hero-product img { padding:10px; }
    .bto-hero-product span { font-size:11px; padding:8px 10px 10px; }
    .bto-hero-product--1 { left:0; top:8%; }
    .bto-hero-product--2 { right:0; }
    .bto-hero-product--3 { left:24%; bottom:0; }
    .bto-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .bto-category-tile { padding:10px; border-radius:16px; }
    .woocommerce ul.products,.bto-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px!important; }
    .woocommerce ul.products li.product,.bto-product-grid li.product { padding:8px 8px 10px!important; border-radius:15px; }
    .bto-product-image-wrap { border-radius:11px; margin-bottom:8px; }
    .bto-product-image { padding:6px!important; }
    .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size:.84rem!important; }
    .woocommerce ul.products li.product .price { font-size:.96rem!important; margin:7px 2px 9px!important; }
    .woocommerce ul.products li.product .button { min-height:40px; font-size:11px!important; padding:0 8px!important; }
    .woocommerce span.onsale { top:14px!important; left:14px!important; padding:6px 8px!important; }
    .bto-age-panel { padding:26px 18px; border-radius:22px; }
    .bto-age-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .bto-confidence-grid { grid-template-columns:1fr; }
    .bto-confidence-intro { padding-right:0; }
    .bto-woo-main { padding-top:36px; }
    .woocommerce-products-header__title.page-title { font-size:2.6rem; }
    .woocommerce .woocommerce-result-count { float:none!important; margin-bottom:10px; }
    .woocommerce .woocommerce-ordering { float:none!important; margin-bottom:22px!important; }
    .woocommerce div.product .product_title { font-size:2.45rem; }
    .bto-gallery-thumbs { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .bto-product-specs > div { grid-template-columns:120px 1fr; gap:12px; }
    .bto-product-reassurance { grid-template-columns:1fr; }
    .bto-product-reassurance span { border-left:0; border-top:1px solid var(--bto-line); }
    .bto-product-reassurance span:first-child { border-top:0; }
    .woocommerce div.product .woocommerce-tabs .panel { padding:18px; }
    .woocommerce-account .woocommerce { display:block; }
    .woocommerce-MyAccount-navigation { margin-bottom:22px; }
    .bto-footer-cta__inner { padding:35px 0; min-height:0; align-items:flex-start; flex-direction:column; }
    .bto-footer-grid { grid-template-columns:1fr 1fr; gap:30px 22px; }
    .bto-footer-brand { grid-column:1/-1; }
    .bto-footer-grid > :last-child { grid-column:auto; }
    .bto-footer-bottom { align-items:flex-start; flex-direction:column; }
    .wc-block-components-sidebar-layout .wc-block-components-main { padding-right:0!important; }
}


/* v1.0.1 — shorter, denser, more playful homepage */
body {
    font-family: "Trebuchet MS", Verdana, ui-sans-serif, system-ui, sans-serif;
    line-height: 1.5;
}

h1, h2, .bto-hero__copy h1, .bto-section-heading h2, .bto-age-panel h2 {
    font-family: "Cooper Black", "Arial Rounded MT Bold", "Trebuchet MS", ui-rounded, sans-serif;
    font-weight: 900;
    letter-spacing: -.025em;
}

h1 { font-size: clamp(2.6rem, 3.6vw, 3.65rem); line-height: 1.02; margin-bottom: 18px; }
h2 { font-size: clamp(1.95rem, 2.45vw, 2.75rem); line-height: 1.08; }

.bto-section { padding: 46px 0; }
.bto-section-heading { margin-bottom: 22px; }
.bto-section-heading--split { gap: 22px; }
.bto-eyebrow { margin-bottom: 9px; font-size: 11px; }

.bto-main-header__inner { min-height: 88px; }
.bto-logo { max-height: 66px; }

.bto-hero__grid {
    min-height: 500px;
    grid-template-columns: minmax(0,.86fr) minmax(470px,1.14fr);
    gap: clamp(34px,5vw,70px);
    padding-top: 36px;
    padding-bottom: 40px;
}
.bto-hero__copy { max-width: 610px; }
.bto-hero__copy h1 { max-width: 570px; }
.bto-hero__copy p { max-width: 590px; font-size: 1.05rem; line-height: 1.55; }
.bto-hero__actions { margin-top: 22px; }
.bto-hero__trust { margin-top: 18px; }
.bto-hero__products { min-height: 400px; }
.bto-hero-product {
    width: 230px;
    border-width: 6px;
    border-radius: 22px;
    box-shadow: 0 18px 42px rgba(35,55,90,.14);
}
.bto-hero-product img { padding: 11px; }
.bto-hero-product span { padding: 9px 12px 11px; font-size: 12px; }
.bto-hero-product--1 { left: 7%; top: 8%; }
.bto-hero-product--2 { right: 5%; top: 2%; }
.bto-hero-product--3 { left: 33%; bottom: 1%; }

.bto-category-grid { gap: 12px; }
.bto-category-tile { padding: 10px 10px 12px; border-radius: 17px; }
.bto-category-tile__visual { margin-bottom: 8px; border-radius: 13px; }
.bto-category-tile__name { font-size: 13px; }

.woocommerce ul.products, .bto-product-grid { gap: 16px !important; }
.woocommerce ul.products li.product, .bto-product-grid li.product {
    padding: 10px 10px 12px !important;
    border-radius: 17px;
    min-height: 0 !important;
}
.bto-product-image-wrap { aspect-ratio: 1/1; margin-bottom: 8px; border-radius: 13px; }
.bto-product-image { padding: 9px !important; }

.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.bto-product-grid li.product h2,
.bto-product-grid li.product .woocommerce-loop-product__title {
    display: -webkit-box !important;
    overflow: hidden !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    min-height: 2.5em !important;
    max-height: 2.5em !important;
    margin: 0 2px !important;
    padding: 0 !important;
    font-family: "Arial Rounded MT Bold", "Trebuchet MS", ui-rounded, sans-serif !important;
    font-size: 1.12rem !important;
    font-weight: 900 !important;
    line-height: 1.25 !important;
    letter-spacing: -.02em !important;
}
.bto-card-meta { padding-top: 5px; }
.woocommerce ul.products li.product .price { margin: 7px 2px 9px !important; font-size: 1rem !important; }
.woocommerce ul.products li.product .button {
    min-height: 40px !important;
    padding: 0 13px !important;
    border-radius: 10px !important;
    font-size: 13px !important;
}
.woocommerce span.onsale { top: 16px !important; left: 16px !important; padding: 7px 9px !important; }

.bto-age-section { padding: 30px 0; }
.bto-age-panel {
    grid-template-columns: 300px minmax(0,1fr);
    gap: 26px;
    padding: 25px 30px;
    border-radius: 22px;
}
.bto-age-panel__copy h2 { font-size: clamp(1.65rem,2vw,2.15rem); }
.bto-age-panel__copy p { display: none; }
.bto-age-links { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 9px; }
.bto-age-links a { min-height: 56px; border-radius: 14px; box-shadow: 0 4px 14px rgba(40,55,85,.06); }
.bto-age-links a span { font-size: 10px; }
.bto-age-links a strong { font-size: 1.02rem; color: var(--bto-purple); }

.bto-sale-band { padding-top: 46px; padding-bottom: 46px; }

.bto-footer-main { padding-top: 46px; padding-bottom: 24px; }
.bto-footer-grid { gap: 34px; }
.bto-footer-brand a {
    display: inline-flex;
    align-items: center;
    padding: 7px 10px;
    border-radius: 12px;
    background: #fff;
}
.bto-logo--footer {
    filter: none !important;
    opacity: 1 !important;
    width: 210px !important;
    max-width: 210px !important;
    max-height: 62px !important;
}
.bto-footer-brand p { margin-top: 14px; }
.bto-footer-bottom { margin-top: 30px; }

@media (max-width:1180px) {
    .bto-hero__grid { grid-template-columns:1fr 1fr; gap:30px; }
    .bto-hero-product { width:205px; }
    .bto-age-panel { grid-template-columns:250px 1fr; }
    .bto-age-links { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width:900px) {
    .bto-hero__grid { grid-template-columns:1fr; padding-top:32px; padding-bottom:36px; }
    .bto-hero__products { min-height:350px; }
    .bto-age-panel { grid-template-columns:1fr; gap:18px; }
    .bto-age-links { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width:640px) {
    h1 { font-size:clamp(2.2rem,11vw,3rem); }
    h2 { font-size:clamp(1.65rem,8vw,2.15rem); }
    .bto-section { padding:36px 0; }
    .bto-main-header__inner { min-height:74px; }
    .bto-hero__grid { padding:26px 0 32px; }
    .bto-hero__products { min-height:290px; }
    .bto-hero-product { width:145px; }
    .bto-hero-product--1 { left:0; top:10%; }
    .bto-hero-product--2 { right:0; top:0; }
    .bto-hero-product--3 { left:28%; bottom:0; }

    .woocommerce ul.products li.product h2,
    .woocommerce ul.products li.product .woocommerce-loop-product__title,
    .bto-product-grid li.product h2,
    .bto-product-grid li.product .woocommerce-loop-product__title {
        font-size:.94rem !important;
        min-height:2.45em !important;
        max-height:2.45em !important;
    }

    .bto-age-section { padding:24px 0; }
    .bto-age-panel { padding:20px; }
    .bto-age-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .bto-age-links a { min-height:50px; }
    .bto-footer-main { padding-top:36px; }
}


/* v1.0.2 — simplified age shopping */
.bto-age-shortcuts {
    padding: 34px 0;
    background: linear-gradient(90deg, #fff7fb 0%, #f7f3ff 100%);
}

.bto-age-shortcuts .bto-container {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    align-items: center;
    gap: 34px;
}

.bto-age-shortcuts__head .bto-eyebrow {
    margin-bottom: 6px;
}

.bto-age-shortcuts__head h2 {
    font-size: clamp(1.65rem, 2vw, 2.15rem);
}

.bto-age-shortcuts__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.bto-age-shortcut {
    min-height: 92px;
    padding: 14px 18px;
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: var(--bto-ink);
    box-shadow: 0 7px 22px rgba(35, 55, 90, .08);
    transition: transform .18s ease, box-shadow .18s ease;
}

.bto-age-shortcut:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 30px rgba(35, 55, 90, .13);
    color: var(--bto-ink);
}

.bto-age-shortcut strong {
    font-family: "Cooper Black", "Arial Rounded MT Bold", "Trebuchet MS", ui-rounded, sans-serif;
    font-size: 2rem;
    line-height: 1;
}

.bto-age-shortcut span {
    font-weight: 900;
    font-size: 1rem;
}

.bto-age-shortcut--baby {
    background: #e8f6ff;
}

.bto-age-shortcut--baby strong {
    color: #1487f4;
}

.bto-age-shortcut--toddler {
    background: #fff3c9;
}

.bto-age-shortcut--toddler strong {
    color: #e79000;
}

.bto-age-shortcut--kids {
    background: #ffe8f2;
}

.bto-age-shortcut--kids strong {
    color: #f02f78;
}

@media (max-width: 900px) {
    .bto-age-shortcuts .bto-container {
        grid-template-columns: 1fr;
        gap: 18px;
    }
}

@media (max-width: 640px) {
    .bto-age-shortcuts {
        padding: 28px 0;
    }

    .bto-age-shortcuts__grid {
        grid-template-columns: 1fr;
        gap: 9px;
    }

    .bto-age-shortcut {
        min-height: 68px;
        justify-content: flex-start;
    }

    .bto-age-shortcut strong {
        min-width: 78px;
        font-size: 1.7rem;
    }
}


/* =========================================================
   v1.0.3 — product-card system + category collages + footer
   ========================================================= */

/* Category explorer: product collages avoid repeated category artwork. */
.bto-category-tile__visual {
    padding: 7px;
}

.bto-category-collage {
    width: 100%;
    height: 100%;
    display: grid;
    grid-template-columns: 1.35fr .9fr;
    grid-template-rows: 1fr 1fr;
    gap: 5px;
}

.bto-category-collage > span {
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: #fff;
}

.bto-category-collage > span:first-child {
    grid-row: 1 / 3;
}

.bto-category-collage img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    padding: 4px !important;
}

.bto-category-collage--1 {
    display: block;
}
.bto-category-collage--1 > span {
    width: 100%;
    height: 100%;
}
.bto-category-collage--2 {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr;
}
.bto-category-collage--2 > span:first-child {
    grid-row: auto;
}

/* Every homepage/shop product card uses the same compact component. */
.bto-product-grid,
.woocommerce ul.products {
    grid-template-columns: repeat(4, minmax(0,1fr)) !important;
    gap: 14px !important;
}

.bto-product-grid li.product,
.woocommerce ul.products li.product {
    position: relative;
    overflow: hidden;
    display: flex !important;
    flex-direction: column !important;
    padding: 9px 9px 11px !important;
    border-radius: 16px !important;
    min-height: 0 !important;
}

.bto-product-grid li.product .bto-product-image-wrap,
.woocommerce ul.products li.product .bto-product-image-wrap {
    aspect-ratio: 4 / 3;
    margin-bottom: 8px;
    border-radius: 12px;
}

.bto-product-grid li.product .bto-product-image,
.woocommerce ul.products li.product .bto-product-image {
    padding: 7px !important;
}

/* Sale is overlaid instead of occupying a line in the card. */
.bto-product-grid li.product .onsale,
.woocommerce ul.products li.product .onsale,
.bto-product-grid li.product span.onsale,
.woocommerce ul.products li.product span.onsale {
    position: absolute !important;
    z-index: 8 !important;
    top: 18px !important;
    left: 18px !important;
    right: auto !important;
    margin: 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 7px 10px !important;
    border-radius: 999px !important;
    background: var(--bto-pink) !important;
    color: #fff !important;
    font-family: "Trebuchet MS", Verdana, sans-serif !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    box-shadow: 0 5px 14px rgba(160, 22, 79, .18);
}

/* Product titles: friendly but readable, not Cooper/novelty typography. */
.bto-product-grid li.product h2,
.bto-product-grid li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    order: initial;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    overflow: hidden !important;
    margin: 0 2px !important;
    padding: 0 !important;
    min-height: 2.45em !important;
    max-height: 2.45em !important;
    font-family: "Trebuchet MS", Verdana, sans-serif !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
    line-height: 1.23 !important;
    letter-spacing: -.015em !important;
    color: var(--bto-ink) !important;
}

/* Fix sale-band blanket h2 colour: only the section heading is coloured. */
.bto-sale-band h2 {
    color: var(--bto-ink) !important;
}
.bto-sale-band > .bto-container > .bto-section-heading h2 {
    color: var(--bto-ink) !important;
}

.bto-card-category {
    margin: 5px 2px 0;
    color: var(--bto-blue-dark);
    font-family: "Trebuchet MS", Verdana, sans-serif;
    font-size: 10px;
    font-weight: 900;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: .055em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bto-card-meta {
    margin-top: 6px;
    padding: 0 2px;
}
.bto-card-meta span {
    padding: 3px 7px;
    font-size: 9px;
}

.bto-product-grid li.product .price,
.woocommerce ul.products li.product .price {
    display: block !important;
    margin: 7px 2px 8px !important;
    min-height: 1.35em;
    font-family: "Trebuchet MS", Verdana, sans-serif;
    font-size: 1rem !important;
    font-weight: 900 !important;
    color: var(--bto-ink) !important;
}

.bto-product-grid li.product .price ins,
.woocommerce ul.products li.product .price ins {
    color: var(--bto-pink) !important;
    text-decoration: none !important;
}

.bto-product-grid li.product a.button,
.bto-product-grid li.product .button,
.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product .button {
    display: flex !important;
    width: 100% !important;
    min-height: 38px !important;
    margin: auto 0 0 !important;
    padding: 0 11px !important;
    border-radius: 9px !important;
    background: var(--bto-yellow) !important;
    color: var(--bto-ink) !important;
    font-family: "Trebuchet MS", Verdana, sans-serif !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    text-align: center !important;
    box-shadow: none !important;
}

.bto-product-grid li.product a.button:hover,
.woocommerce ul.products li.product a.button:hover {
    background: #ffd24f !important;
    color: var(--bto-ink) !important;
}

/* Sale no longer merges visually into the sticky purple category nav. */
.bto-sale-band {
    background: #fff0f6 !important;
    color: var(--bto-ink) !important;
}
.bto-sale-band .bto-eyebrow {
    color: #b81757 !important;
}
.bto-sale-band .bto-eyebrow::before {
    background: var(--bto-pink);
}
.bto-sale-band .bto-text-link {
    color: var(--bto-blue-dark);
}
.bto-product-grid--on-dark li.product {
    box-shadow: 0 7px 24px rgba(28,48,80,.06) !important;
}

/* Footer copy and PayPal acceptance graphic. */
.bto-footer-brand p {
    max-width: 310px;
    font-size: 14px;
    line-height: 1.5;
}

.bto-paypal-note {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 11px 13px;
    background: rgba(255,255,255,.035);
}

.bto-paypal-note img {
    width: 74px;
    height: auto;
    display: block;
    border-radius: 5px;
}

.bto-paypal-note > span {
    min-width: 0;
}

.bto-paypal-note strong {
    display: block;
    margin-bottom: 2px;
    color: #fff;
    font-size: 12px;
}

.bto-paypal-note small {
    display: block;
    color: #9fabba;
    font-size: 10px;
}

/* Keep the product rows compact even with eight products. */
.bto-products-section,
.bto-sale-band {
    padding-top: 42px;
    padding-bottom: 42px;
}

@media (max-width: 900px) {
    .bto-product-grid,
    .woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    }
}

@media (max-width: 640px) {
    .bto-product-grid,
    .woocommerce ul.products {
        gap: 9px !important;
    }

    .bto-product-grid li.product,
    .woocommerce ul.products li.product {
        padding: 7px 7px 9px !important;
    }

    .bto-product-grid li.product h2,
    .bto-product-grid li.product .woocommerce-loop-product__title,
    .woocommerce ul.products li.product h2,
    .woocommerce ul.products li.product .woocommerce-loop-product__title {
        font-size: .9rem !important;
    }

    .bto-card-category {
        font-size: 9px;
    }

    .bto-paypal-note {
        align-items: flex-start;
    }
}


/* =========================================================
   v1.0.4 — fuller product cards + cleaner age/sale + footer
   ========================================================= */

/* Age section: simpler and less gimmicky. */
.bto-age-shortcuts {
    background: #f7f4ff;
}

.bto-age-shortcuts__head .bto-eyebrow {
    color: var(--bto-purple);
}

.bto-age-shortcuts__head h2 {
    font-family: "Arial Rounded MT Bold", "Trebuchet MS", ui-rounded, sans-serif;
    font-size: clamp(1.75rem, 2.15vw, 2.25rem);
    letter-spacing: -.02em;
}

/* Sale wording/background: keep the section clearly separate from purple nav. */
.bto-sale-band {
    background: #fff4f7 !important;
}

.bto-sale-band .bto-eyebrow,
.bto-sale-band .bto-eyebrow--light {
    color: #be1e5d !important;
}

.bto-sale-band > .bto-container > .bto-section-heading h2 {
    font-family: "Arial Rounded MT Bold", "Trebuchet MS", ui-rounded, sans-serif;
    color: var(--bto-ink) !important;
}

/* Cards: less empty space, stronger hierarchy, proper retail CTA. */
.bto-product-grid li.product,
.woocommerce ul.products li.product {
    min-height: 390px !important;
}

.bto-product-grid li.product .bto-product-image-wrap,
.woocommerce ul.products li.product .bto-product-image-wrap {
    flex: 0 0 auto;
}

.bto-product-grid li.product .bto-card-category,
.woocommerce ul.products li.product .bto-card-category {
    margin-top: 7px;
}

.bto-product-grid li.product .bto-card-meta,
.woocommerce ul.products li.product .bto-card-meta {
    margin-top: 7px;
}

.bto-product-grid li.product .price,
.woocommerce ul.products li.product .price {
    margin-top: 8px !important;
    margin-bottom: 10px !important;
    font-size: 1.08rem !important;
}

/* Button gets more visual weight and a cart icon. */
.bto-product-grid li.product a.button,
.bto-product-grid li.product .button,
.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product .button {
    position: relative !important;
    min-height: 46px !important;
    padding: 0 16px 0 44px !important;
    font-size: 14px !important;
    border-radius: 11px !important;
    justify-content: center !important;
}

.bto-product-grid li.product a.button::before,
.bto-product-grid li.product .button::before,
.woocommerce ul.products li.product a.button::before,
.woocommerce ul.products li.product .button::before {
    content: "";
    position: absolute;
    left: 15px;
    top: 50%;
    width: 19px;
    height: 19px;
    transform: translateY(-50%);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2317243a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='19' cy='20' r='1'/%3E%3Cpath d='M3 4h2l2.4 10.3a2 2 0 0 0 2 1.7h7.7a2 2 0 0 0 2-1.6L21 7H6'/%3E%3C/svg%3E");
}

/* "Select options" is not literally adding, so use a neutral arrow icon instead. */
.bto-product-grid li.product a.button.product_type_variable::before,
.woocommerce ul.products li.product a.button.product_type_variable::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2317243a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
}

/* Keep text content grouped rather than floating in a tall blank card. */
.bto-product-grid li.product .woocommerce-LoopProduct-link,
.woocommerce ul.products li.product .woocommerce-LoopProduct-link {
    display: block;
}

/* Footer: use the brand column, and let category list fill two columns. */
.bto-footer-grid {
    grid-template-columns: 1.15fr 1.25fr .9fr .9fr;
    align-items: start;
}

.bto-footer-brand p {
    max-width: 320px;
    margin-bottom: 18px;
}

.bto-footer-trust {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    max-width: 320px;
}

.bto-footer-trust span {
    position: relative;
    padding: 8px 9px 8px 26px;
    border: 1px solid rgba(255,255,255,.11);
    border-radius: 9px;
    color: #dce4ef;
    font-size: 11px;
    font-weight: 800;
}

.bto-footer-trust span::before {
    content: "✓";
    position: absolute;
    left: 9px;
    top: 7px;
    color: var(--bto-green);
    font-weight: 900;
}

.bto-footer-grid > div:nth-child(2) ul {
    columns: 2;
    column-gap: 26px;
}

.bto-footer-grid > div:nth-child(2) li {
    break-inside: avoid;
}

@media (max-width: 1180px) {
    .bto-footer-grid {
        grid-template-columns: 1.2fr 1.2fr 1fr;
    }

    .bto-footer-grid > :last-child {
        grid-column: 3;
    }
}

@media (max-width: 900px) {
    .bto-product-grid li.product,
    .woocommerce ul.products li.product {
        min-height: 375px !important;
    }

    .bto-footer-grid {
        grid-template-columns: 1fr 1fr;
    }

    .bto-footer-brand {
        grid-column: 1 / -1;
    }

    .bto-footer-grid > :last-child {
        grid-column: auto;
    }
}

@media (max-width: 640px) {
    .bto-product-grid li.product,
    .woocommerce ul.products li.product {
        min-height: 330px !important;
    }

    .bto-product-grid li.product a.button,
    .bto-product-grid li.product .button,
    .woocommerce ul.products li.product a.button,
    .woocommerce ul.products li.product .button {
        min-height: 42px !important;
        padding-left: 38px !important;
        font-size: 12px !important;
    }

    .bto-product-grid li.product a.button::before,
    .bto-product-grid li.product .button::before,
    .woocommerce ul.products li.product a.button::before,
    .woocommerce ul.products li.product .button::before {
        left: 11px;
        width: 17px;
        height: 17px;
    }

    .bto-footer-trust {
        grid-template-columns: 1fr;
    }

    .bto-footer-grid > div:nth-child(2) ul {
        columns: 1;
    }
}


/* =========================================================
   v1.0.5 — browse-first homepage
   ========================================================= */

/* Homepage cards are discovery cards, not mini checkout forms. */
.bto-home-main .bto-product-grid li.product,
.bto-home-main .woocommerce ul.products li.product {
    min-height: 0 !important;
    padding-bottom: 14px !important;
}

.bto-home-main .bto-product-grid li.product .button,
.bto-home-main .bto-product-grid li.product a.button,
.bto-home-main .woocommerce ul.products li.product .button,
.bto-home-main .woocommerce ul.products li.product a.button,
.bto-home-main .added_to_cart {
    display: none !important;
}

.bto-home-main .bto-product-grid li.product .bto-product-image-wrap,
.bto-home-main .woocommerce ul.products li.product .bto-product-image-wrap {
    aspect-ratio: 1 / 1;
    margin-bottom: 11px;
}

.bto-home-main .bto-product-grid li.product h2,
.bto-home-main .bto-product-grid li.product .woocommerce-loop-product__title,
.bto-home-main .woocommerce ul.products li.product h2,
.bto-home-main .woocommerce ul.products li.product .woocommerce-loop-product__title {
    min-height: auto !important;
    max-height: 2.55em !important;
    font-size: 1.02rem !important;
    line-height: 1.26 !important;
}

.bto-home-main .bto-card-category {
    margin-top: 7px;
    color: #1671d9;
    font-size: 9px;
}

.bto-home-main .bto-card-meta {
    margin-top: 8px;
}

.bto-home-main .bto-product-grid li.product .price,
.bto-home-main .woocommerce ul.products li.product .price {
    margin: 10px 2px 0 !important;
    min-height: 0;
    font-size: 1.16rem !important;
    line-height: 1.2;
}

/* Slightly more visual, retail-like hover. */
.bto-home-main .bto-product-grid li.product:hover,
.bto-home-main .woocommerce ul.products li.product:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 30px rgba(28,48,80,.11);
}

/* Sale chips remain over image only. */
.bto-home-main .onsale {
    top: 16px !important;
    left: 16px !important;
}

/* Category collages get a little more visual separation. */
.bto-category-collage {
    gap: 6px;
}

.bto-category-collage > span {
    border: 1px solid rgba(23,36,58,.06);
}

/* Footer shop heading and All toys share one line. */
.bto-footer-heading-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}

.bto-footer-heading-row h3 {
    margin-bottom: 0 !important;
}

.bto-footer-all {
    font-size: 11px !important;
    font-weight: 900;
    color: #fff !important;
    white-space: nowrap;
}

.bto-footer-shop ul {
    columns: 2;
    column-gap: 26px;
}

.bto-footer-shop li {
    break-inside: avoid;
    margin: 6px 0;
}

/* Brand column gets useful content instead of dead space. */
.bto-footer-trust {
    margin-top: 14px;
}

/* Compact homepage copy: enough useful text without turning into an SEO essay. */
.bto-home-copy {
    padding: 54px 0;
    background: #f7f9fc;
    border-top: 1px solid var(--bto-line);
}

.bto-home-copy__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(300px, .55fr);
    gap: clamp(40px, 6vw, 90px);
    align-items: start;
}

.bto-home-copy__main {
    max-width: 850px;
}

.bto-home-copy__main h2 {
    margin-bottom: 18px;
    font-family: "Arial Rounded MT Bold", "Trebuchet MS", ui-rounded, sans-serif;
    font-size: clamp(1.8rem, 2.2vw, 2.4rem);
}

.bto-home-copy__main p {
    margin-bottom: 13px;
    color: #56657a;
    font-size: .98rem;
    line-height: 1.7;
}

.bto-home-copy__links {
    padding: 22px;
    border: 1px solid var(--bto-line);
    border-radius: 18px;
    background: #fff;
}

.bto-home-copy__links h3 {
    margin: 0 0 12px;
    font-family: "Trebuchet MS", Verdana, sans-serif;
    font-size: 1rem;
    letter-spacing: 0;
}

.bto-home-copy__links > div {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 16px;
}

.bto-home-copy__links a {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 0;
    border-bottom: 1px solid var(--bto-line);
    color: var(--bto-ink);
    font-size: 13px;
    font-weight: 800;
}

.bto-home-copy__links a span {
    color: var(--bto-blue);
}

/* Tone down decorative heading type on age/sale for a more retail feel. */
.bto-age-shortcuts__head h2,
.bto-sale-band > .bto-container > .bto-section-heading h2 {
    font-family: "Trebuchet MS", Verdana, sans-serif !important;
    font-weight: 900;
    letter-spacing: -.025em;
}

@media (max-width: 900px) {
    .bto-home-copy__grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .bto-footer-shop ul {
        columns: 1;
    }
}

@media (max-width: 640px) {
    .bto-home-main .bto-product-grid li.product .price,
    .bto-home-main .woocommerce ul.products li.product .price {
        font-size: 1rem !important;
    }

    .bto-home-copy {
        padding: 40px 0;
    }

    .bto-home-copy__links > div {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   v1.0.6 — stronger retail hero + complete category directory
   ========================================================= */

/* Hero: bold retail banner rather than floating decorative polaroids. */
.bto-hero--retail {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 95% 12%, rgba(255,255,255,.15) 0 130px, transparent 132px),
        radial-gradient(circle at 4% 88%, rgba(255,189,24,.22) 0 110px, transparent 112px),
        linear-gradient(125deg, #176fe8 0%, #3268e6 47%, #6b45db 100%);
}

.bto-hero--retail::before,
.bto-hero--retail::after {
    display: none;
}

.bto-hero--retail .bto-hero__grid {
    min-height: 500px;
    grid-template-columns: minmax(0,.88fr) minmax(560px,1.12fr);
    gap: clamp(40px,5vw,78px);
    padding-top: 44px;
    padding-bottom: 48px;
}

.bto-hero--retail .bto-hero__copy {
    max-width: 610px;
}

.bto-hero--retail .bto-eyebrow--hero {
    color: #fff;
}

.bto-hero--retail .bto-eyebrow--hero::before {
    background: var(--bto-yellow);
}

.bto-hero--retail h1 {
    max-width: 590px;
    margin-bottom: 18px;
    color: #fff;
    font-family: "Arial Rounded MT Bold", "Trebuchet MS", ui-rounded, sans-serif;
    font-size: clamp(3rem,4.2vw,4.55rem);
    line-height: .98;
    letter-spacing: -.04em;
}

.bto-hero--retail .bto-hero__copy > p {
    max-width: 585px;
    margin-bottom: 0;
    color: rgba(255,255,255,.88);
    font-size: 1.1rem;
    line-height: 1.62;
}

.bto-btn--hero {
    min-height: 50px !important;
    padding-inline: 23px !important;
}

.bto-btn--hero-secondary {
    min-height: 50px;
    padding: 0 22px !important;
    border: 2px solid rgba(255,255,255,.75) !important;
    background: rgba(255,255,255,.08);
    color: #fff;
}

.bto-btn--hero-secondary:hover {
    background: #fff;
    color: var(--bto-blue-dark);
}

.bto-hero-quicklinks {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 22px;
}

.bto-hero-quicklinks a {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 36px;
    padding: 0 12px;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 999px;
    background: rgba(255,255,255,.10);
    color: #fff;
    font-size: 12px;
    font-weight: 850;
}

.bto-hero-quicklinks a:hover {
    background: rgba(255,255,255,.18);
    color: #fff;
}

.bto-hero-quicklinks span {
    color: var(--bto-yellow);
}

.bto-hero--retail .bto-hero__trust {
    color: rgba(255,255,255,.85);
}

.bto-hero--retail .bto-hero__trust span::before {
    color: var(--bto-yellow);
}

/* Hero product showcase */
.bto-hero-showcase {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0,1.15fr) minmax(230px,.85fr);
    gap: 14px;
    align-items: stretch;
}

.bto-hero-feature-grid {
    display: grid;
    grid-template-rows: repeat(3, minmax(0,1fr));
    gap: 12px;
}

.bto-hero-feature {
    position: relative;
    min-width: 0;
    overflow: hidden;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(14,28,75,.20);
    color: var(--bto-ink);
}

.bto-hero-feature:hover {
    color: var(--bto-ink);
    transform: translateY(-3px);
}

.bto-hero-feature--main {
    display: flex;
    flex-direction: column;
    padding: 13px;
}

.bto-hero-feature--main .bto-hero-feature__image {
    flex: 1;
    min-height: 300px;
}

.bto-hero-feature--small {
    display: grid;
    grid-template-columns: 110px minmax(0,1fr);
    align-items: center;
    gap: 10px;
    padding: 9px;
}

.bto-hero-feature__label {
    position: absolute;
    z-index: 3;
    top: 16px;
    left: 16px;
    padding: 7px 10px;
    border-radius: 999px;
    background: var(--bto-pink);
    color: #fff;
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.bto-hero-feature__image {
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 16px;
    background: #f7f9fc;
}

.bto-hero-feature__image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 12px;
}

.bto-hero-feature--small .bto-hero-feature__image {
    width: 110px;
    height: 110px;
    border-radius: 13px;
}

.bto-hero-feature__details {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 14px;
    padding: 12px 4px 2px;
}

.bto-hero-feature__details strong {
    min-width: 0;
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-family: "Trebuchet MS", Verdana, sans-serif;
    font-size: .98rem;
    line-height: 1.25;
}

.bto-hero-feature__details > span {
    flex: 0 0 auto;
    color: var(--bto-pink);
    font-size: 1rem;
    font-weight: 900;
    white-space: nowrap;
}

.bto-hero-feature--small .bto-hero-feature__details {
    min-width: 0;
    display: block;
    padding: 0 5px 0 0;
}

.bto-hero-feature--small .bto-hero-feature__details strong {
    margin-bottom: 7px;
    font-size: .86rem;
}

.bto-hero-feature--small .bto-hero-feature__details > span {
    font-size: .9rem;
}

/* Complete category directory: 6 columns desktop, all categories visible. */
.bto-category-grid {
    grid-template-columns: repeat(6,minmax(0,1fr));
    gap: 14px;
}

.bto-category-tile {
    min-height: 235px;
}

.bto-category-tile__visual {
    aspect-ratio: 1.28 / 1;
}

@media (max-width: 1180px) {
    .bto-hero--retail .bto-hero__grid {
        grid-template-columns: 1fr 1fr;
    }

    .bto-hero-showcase {
        grid-template-columns: 1fr;
    }

    .bto-hero-feature-grid {
        grid-template-columns: repeat(3,minmax(0,1fr));
        grid-template-rows: auto;
    }

    .bto-hero-feature--small {
        grid-template-columns: 1fr;
    }

    .bto-hero-feature--small .bto-hero-feature__image {
        width: 100%;
        height: 135px;
    }

    .bto-category-grid {
        grid-template-columns: repeat(4,minmax(0,1fr));
    }
}

@media (max-width: 900px) {
    .bto-hero--retail .bto-hero__grid {
        grid-template-columns: 1fr;
    }

    .bto-hero-showcase {
        grid-template-columns: 1fr 1fr;
    }

    .bto-hero-feature-grid {
        grid-template-columns: 1fr;
        grid-template-rows: repeat(3,minmax(0,1fr));
    }

    .bto-hero-feature--small {
        grid-template-columns: 95px 1fr;
    }

    .bto-hero-feature--small .bto-hero-feature__image {
        width: 95px;
        height: 95px;
    }
}

@media (max-width: 640px) {
    .bto-hero--retail h1 {
        font-size: clamp(2.5rem,12vw,3.45rem);
    }

    .bto-hero--retail .bto-hero__grid {
        padding-top: 32px;
        padding-bottom: 34px;
    }

    .bto-hero-showcase {
        grid-template-columns: 1fr;
    }

    .bto-hero-feature--main .bto-hero-feature__image {
        min-height: 250px;
    }

    .bto-hero-feature-grid {
        grid-template-columns: repeat(3,minmax(0,1fr));
        grid-template-rows: auto;
    }

    .bto-hero-feature--small {
        display: block;
    }

    .bto-hero-feature--small .bto-hero-feature__image {
        width: 100%;
        height: 105px;
    }

    .bto-hero-feature--small .bto-hero-feature__details {
        padding: 8px 3px 2px;
    }

    .bto-hero-feature--small .bto-hero-feature__details strong {
        font-size: .72rem;
    }

    .bto-category-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .bto-category-tile {
        min-height: 0;
    }
}


/* =========================================================
   v1.0.7 — restore light hero + two-row category directory
   ========================================================= */

/* Revert v1.0.6 retail-hero treatment. */
.bto-hero--retail {
    background: none;
}

.bto-hero--retail::before,
.bto-hero--retail::after {
    display: initial;
}

/* The restored markup uses .bto-hero only; these rules reinforce it. */
.bto-hero {
    background: linear-gradient(135deg, #fff9ed 0%, #fff 47%, #eff7ff 100%);
}

.bto-hero__grid {
    min-height: 500px;
    grid-template-columns: minmax(0,.88fr) minmax(500px,1.12fr);
    gap: clamp(42px,5.5vw,82px);
    padding-top: 40px;
    padding-bottom: 44px;
}

.bto-hero__copy h1 {
    max-width: 560px;
    font-family: "Arial Rounded MT Bold", "Trebuchet MS", ui-rounded, sans-serif;
    font-size: clamp(2.9rem,3.7vw,3.9rem);
    line-height: 1;
    letter-spacing: -.035em;
}

.bto-hero__copy p {
    max-width: 590px;
    font-size: 1.06rem;
}

.bto-hero__products {
    min-height: 405px;
}

.bto-hero-product {
    width: 232px;
}

.bto-hero-product--1 { left: 6%; top: 6%; }
.bto-hero-product--2 { right: 4%; top: 1%; }
.bto-hero-product--3 { left: 32%; bottom: 0; }

/* Categories: always a maximum two rows on desktop. */
.bto-category-grid {
    grid-template-columns: repeat(6, minmax(0,1fr)) !important;
    gap: 14px;
}

.bto-category-tile {
    min-height: 0;
}

.bto-category-tile__visual {
    aspect-ratio: 1.25 / 1;
}

/* 'View all categories' remains the route to every category not shown here. */
.bto-category-section .bto-section-heading {
    margin-bottom: 22px;
}

@media (max-width:1180px) {
    .bto-category-grid {
        grid-template-columns: repeat(4,minmax(0,1fr)) !important;
    }
}

@media (max-width:900px) {
    .bto-hero__grid {
        grid-template-columns: 1fr;
    }

    .bto-category-grid {
        grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    }
}

@media (max-width:640px) {
    .bto-hero__copy h1 {
        font-size: clamp(2.4rem,11vw,3.15rem);
    }

    .bto-category-grid {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    }
}


/* =========================================================
   v1.0.8 — tighter hero with four rotating products
   ========================================================= */

.bto-hero__grid {
    min-height: 455px;
    padding-top: 32px;
    padding-bottom: 34px;
    grid-template-columns: minmax(0,.9fr) minmax(520px,1.1fr);
    gap: clamp(38px,5vw,70px);
}

.bto-hero__copy h1 {
    max-width: 540px;
    font-size: clamp(2.75rem,3.5vw,3.65rem);
}

.bto-hero__copy p {
    max-width: 570px;
    font-size: 1.02rem;
}

.bto-hero__actions--three {
    gap: 9px;
    margin-top: 20px;
}

.bto-hero__actions--three .bto-btn {
    min-height: 44px !important;
    padding-inline: 16px !important;
    font-size: 13px;
}

.bto-hero__products--four {
    position: static;
    min-height: 0;
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 12px;
    align-self: center;
}

.bto-hero__products--four .bto-hero-product {
    position: relative;
    inset: auto;
    width: auto;
    transform: none;
    border: 5px solid #fff;
    border-radius: 18px;
    display: grid;
    grid-template-columns: 105px minmax(0,1fr);
    grid-template-rows: auto auto;
    align-items: center;
    gap: 2px 10px;
    min-height: 150px;
    padding: 8px;
    box-shadow: 0 15px 34px rgba(35,55,90,.13);
}

.bto-hero__products--four .bto-hero-product:hover {
    transform: translateY(-3px) !important;
}

.bto-hero__products--four .bto-hero-product img {
    grid-row: 1 / 3;
    width: 105px;
    height: 120px;
    aspect-ratio: auto;
    object-fit: contain;
    padding: 7px;
    border-radius: 12px;
    background: #f7f9fc;
}

.bto-hero__products--four .bto-hero-product__name {
    min-width: 0;
    padding: 0;
    align-self: end;
    font-family: "Trebuchet MS", Verdana, sans-serif;
    font-size: .84rem;
    font-weight: 850;
    line-height: 1.2;
    white-space: normal;
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.bto-hero__products--four .bto-hero-product__price {
    padding: 0;
    align-self: start;
    color: var(--bto-pink);
    font-family: "Trebuchet MS", Verdana, sans-serif;
    font-size: .9rem;
    font-weight: 900;
}

.bto-hero__products--four .bto-hero-product__price del {
    color: #8b96a6;
    font-size: .82em;
}

.bto-hero__products--four .bto-hero-product__price ins {
    text-decoration: none;
}

@media (max-width: 1000px) {
    .bto-hero__grid {
        grid-template-columns: 1fr;
    }

    .bto-hero__products--four {
        max-width: 760px;
        width: 100%;
    }
}

@media (max-width: 640px) {
    .bto-hero__grid {
        padding-top: 26px;
        padding-bottom: 28px;
    }

    .bto-hero__actions--three {
        grid-template-columns: 1fr;
    }

    .bto-hero__products--four {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .bto-hero__products--four .bto-hero-product {
        display: block;
        min-height: 0;
        padding: 6px;
    }

    .bto-hero__products--four .bto-hero-product img {
        width: 100%;
        height: 125px;
    }

    .bto-hero__products--four .bto-hero-product__name {
        margin-top: 7px;
        font-size: .75rem;
    }

    .bto-hero__products--four .bto-hero-product__price {
        margin-top: 4px;
        font-size: .82rem;
    }
}


/* =========================================================
   v1.0.9 — four image-led hero cards
   ========================================================= */

.bto-hero__grid {
    min-height: 520px;
    padding-top: 38px;
    padding-bottom: 42px;
    grid-template-columns: minmax(0,.88fr) minmax(560px,1.12fr);
    gap: clamp(42px,5.5vw,78px);
}

.bto-hero__products--cards {
    position: relative;
    min-height: 430px;
    display: block;
    align-self: center;
}

.bto-hero-card {
    position: absolute;
    display: block;
    width: 245px;
    padding: 7px;
    border-radius: 22px;
    background: #fff;
    color: var(--bto-ink);
    box-shadow: 0 18px 42px rgba(35,55,90,.15);
    transition: transform .18s ease, box-shadow .18s ease;
}

.bto-hero-card:hover {
    color: var(--bto-ink);
    box-shadow: 0 24px 54px rgba(35,55,90,.20);
    z-index: 10;
}

.bto-hero-card__image {
    display: grid;
    place-items: center;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 16px;
    background: #f7f9fc;
}

.bto-hero-card__image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 12px;
}

.bto-hero-card__body {
    display: block;
    padding: 10px 9px 9px;
}

.bto-hero-card__body strong {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    min-height: 2.35em;
    font-family: "Trebuchet MS", Verdana, sans-serif;
    font-size: .84rem;
    font-weight: 850;
    line-height: 1.18;
}

.bto-hero-card__price {
    display: block;
    margin-top: 6px;
    color: var(--bto-pink);
    font-family: "Trebuchet MS", Verdana, sans-serif;
    font-size: .94rem;
    font-weight: 900;
}

.bto-hero-card__price del {
    color: #8b96a6;
    font-size: .8em;
}

.bto-hero-card__price ins {
    text-decoration: none;
}

/* Deliberately layered rather than a sterile 2x2 grid. */
.bto-hero-card--1 {
    left: 1%;
    top: 4%;
    transform: rotate(-3deg);
    z-index: 3;
}

.bto-hero-card--2 {
    right: 1%;
    top: 0;
    transform: rotate(3deg);
    z-index: 2;
}

.bto-hero-card--3 {
    left: 18%;
    bottom: 0;
    transform: rotate(2deg);
    z-index: 5;
}

.bto-hero-card--4 {
    right: 15%;
    bottom: 3%;
    transform: rotate(-2deg);
    z-index: 4;
}

.bto-hero-card--1:hover,
.bto-hero-card--2:hover,
.bto-hero-card--3:hover,
.bto-hero-card--4:hover {
    transform: translateY(-5px) rotate(0deg);
}

@media (max-width: 1180px) {
    .bto-hero__grid {
        grid-template-columns: 1fr 1fr;
    }

    .bto-hero-card {
        width: 205px;
    }

    .bto-hero__products--cards {
        min-height: 390px;
    }
}

@media (max-width: 1000px) {
    .bto-hero__grid {
        grid-template-columns: 1fr;
    }

    .bto-hero__products--cards {
        width: 100%;
        max-width: 720px;
        min-height: 430px;
        margin: 0 auto;
    }

    .bto-hero-card {
        width: 225px;
    }
}

@media (max-width: 640px) {
    .bto-hero__grid {
        min-height: 0;
        padding-top: 28px;
        padding-bottom: 32px;
    }

    .bto-hero__products--cards {
        min-height: 350px;
    }

    .bto-hero-card {
        width: 155px;
        padding: 5px;
        border-radius: 16px;
    }

    .bto-hero-card__image {
        border-radius: 12px;
    }

    .bto-hero-card__image img {
        padding: 7px;
    }

    .bto-hero-card__body {
        padding: 7px 6px 6px;
    }

    .bto-hero-card__body strong {
        font-size: .68rem;
    }

    .bto-hero-card__price {
        font-size: .76rem;
    }

    .bto-hero-card--1 { left: 0; top: 4%; }
    .bto-hero-card--2 { right: 0; top: 0; }
    .bto-hero-card--3 { left: 13%; bottom: 0; }
    .bto-hero-card--4 { right: 10%; bottom: 3%; }
}


/* =========================================================
   v1.0.10 — animated hero product orbit
   ========================================================= */

.bto-hero__products--orbit {
    position: relative;
    min-height: 445px;
    overflow: visible;
}

/* Use transforms for genuinely smooth movement between positions. */
.bto-hero__products--orbit .bto-hero-card {
    top: 0 !important;
    right: auto !important;
    bottom: auto !important;
    left: 0 !important;
    will-change: transform;
    transition:
        transform .8s cubic-bezier(.22,.8,.25,1),
        box-shadow .35s ease,
        opacity .35s ease;
}

/* Initial/static fallback before JS paints slots. */
.bto-hero__products--orbit .bto-hero-card:nth-child(1),
.bto-hero__products--orbit .bto-hero-card[data-orbit-slot="0"] {
    transform: translate3d(12px, 28px, 0) rotate(-4deg) scale(.95);
    z-index: 2;
}

.bto-hero__products--orbit .bto-hero-card:nth-child(2),
.bto-hero__products--orbit .bto-hero-card[data-orbit-slot="1"] {
    transform: translate3d(355px, 4px, 0) rotate(4deg) scale(.93);
    z-index: 1;
}

.bto-hero__products--orbit .bto-hero-card:nth-child(3),
.bto-hero__products--orbit .bto-hero-card[data-orbit-slot="2"] {
    transform: translate3d(320px, 205px, 0) rotate(-2deg) scale(1);
    z-index: 5;
}

.bto-hero__products--orbit .bto-hero-card:nth-child(4),
.bto-hero__products--orbit .bto-hero-card[data-orbit-slot="3"] {
    transform: translate3d(105px, 220px, 0) rotate(3deg) scale(.97);
    z-index: 4;
}

/* Once JS is active, data slots win over nth-child fallback. */
.bto-hero__products--orbit .bto-hero-card[data-orbit-slot] {
    opacity: 1;
}

.bto-hero__products--orbit .bto-hero-card:hover,
.bto-hero__products--orbit .bto-hero-card:focus-visible {
    box-shadow: 0 28px 58px rgba(35,55,90,.22);
}

/* Pause is handled in JS; give the front slot a touch more presence. */
.bto-hero__products--orbit .bto-hero-card[data-orbit-slot="2"] {
    box-shadow: 0 26px 56px rgba(35,55,90,.20);
}

@media (max-width: 1180px) {
    .bto-hero__products--orbit {
        min-height: 405px;
    }

    .bto-hero__products--orbit .bto-hero-card:nth-child(1),
    .bto-hero__products--orbit .bto-hero-card[data-orbit-slot="0"] {
        transform: translate3d(6px, 28px, 0) rotate(-4deg) scale(.94);
    }

    .bto-hero__products--orbit .bto-hero-card:nth-child(2),
    .bto-hero__products--orbit .bto-hero-card[data-orbit-slot="1"] {
        transform: translate3d(245px, 5px, 0) rotate(4deg) scale(.92);
    }

    .bto-hero__products--orbit .bto-hero-card:nth-child(3),
    .bto-hero__products--orbit .bto-hero-card[data-orbit-slot="2"] {
        transform: translate3d(235px, 190px, 0) rotate(-2deg) scale(1);
    }

    .bto-hero__products--orbit .bto-hero-card:nth-child(4),
    .bto-hero__products--orbit .bto-hero-card[data-orbit-slot="3"] {
        transform: translate3d(65px, 205px, 0) rotate(3deg) scale(.96);
    }
}

@media (max-width: 1000px) {
    .bto-hero__products--orbit {
        max-width: 660px;
        min-height: 425px;
    }

    .bto-hero__products--orbit .bto-hero-card:nth-child(1),
    .bto-hero__products--orbit .bto-hero-card[data-orbit-slot="0"] {
        transform: translate3d(20px, 24px, 0) rotate(-4deg) scale(.95);
    }

    .bto-hero__products--orbit .bto-hero-card:nth-child(2),
    .bto-hero__products--orbit .bto-hero-card[data-orbit-slot="1"] {
        transform: translate3d(370px, 0, 0) rotate(4deg) scale(.93);
    }

    .bto-hero__products--orbit .bto-hero-card:nth-child(3),
    .bto-hero__products--orbit .bto-hero-card[data-orbit-slot="2"] {
        transform: translate3d(330px, 205px, 0) rotate(-2deg) scale(1);
    }

    .bto-hero__products--orbit .bto-hero-card:nth-child(4),
    .bto-hero__products--orbit .bto-hero-card[data-orbit-slot="3"] {
        transform: translate3d(100px, 220px, 0) rotate(3deg) scale(.97);
    }
}

@media (max-width: 640px) {
    .bto-hero__products--orbit {
        min-height: 355px;
    }

    .bto-hero__products--orbit .bto-hero-card:nth-child(1),
    .bto-hero__products--orbit .bto-hero-card[data-orbit-slot="0"] {
        transform: translate3d(0, 18px, 0) rotate(-4deg) scale(.95);
    }

    .bto-hero__products--orbit .bto-hero-card:nth-child(2),
    .bto-hero__products--orbit .bto-hero-card[data-orbit-slot="1"] {
        transform: translate3d(calc(100vw - 195px), 0, 0) rotate(4deg) scale(.92);
    }

    .bto-hero__products--orbit .bto-hero-card:nth-child(3),
    .bto-hero__products--orbit .bto-hero-card[data-orbit-slot="2"] {
        transform: translate3d(calc(100vw - 205px), 176px, 0) rotate(-2deg) scale(1);
    }

    .bto-hero__products--orbit .bto-hero-card:nth-child(4),
    .bto-hero__products--orbit .bto-hero-card[data-orbit-slot="3"] {
        transform: translate3d(34px, 190px, 0) rotate(3deg) scale(.96);
    }
}

@media (prefers-reduced-motion: reduce) {
    .bto-hero__products--orbit .bto-hero-card {
        transition: none !important;
    }
}


/* =========================================================
   v1.0.13 — clean synchronized hero orbit + no top bar
   ========================================================= */

/* Header now begins with the main retail header. */
.bto-site-header {
    border-top: 0;
}

.bto-main-header {
    border-top: 0;
}

.bto-main-header__inner {
    min-height: 88px;
}

/* Remove any spacing assumptions left behind by the deleted top bar. */
.bto-topbar,
.bto-topbar__inner {
    display: none !important;
}

/* Hero orbit container */
.bto-hero__products--orbit {
    position: relative;
    min-height: 430px;
    overflow: visible;
}

/* Every card runs the SAME animation.
   Negative delays simply start each one at a different quarter of the route. */
.bto-hero__products--orbit .bto-hero-card {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: auto !important;
    bottom: auto !important;
    width: 245px;
    will-change: transform;

    animation-name: btoHeroOrbitSync !important;
    animation-duration: 16s !important;
    animation-timing-function: linear !important;
    animation-iteration-count: infinite !important;
    animation-fill-mode: both !important;

    transition: box-shadow .25s ease !important;
}

/* Start one card at each point of the orbit. */
.bto-hero__products--orbit .bto-hero-card:nth-child(1) { animation-delay: 0s !important; }
.bto-hero__products--orbit .bto-hero-card:nth-child(2) { animation-delay: -4s !important; }
.bto-hero__products--orbit .bto-hero-card:nth-child(3) { animation-delay: -8s !important; }
.bto-hero__products--orbit .bto-hero-card:nth-child(4) { animation-delay: -12s !important; }

/*
  One complete route:
  back-left -> front-left -> front-right -> back-right -> back-left

  Each quarter:
  - ~70% hold
  - ~30% move
  All four cards therefore move at the same moment.
*/
@keyframes btoHeroOrbitSync {
    /* BACK LEFT */
    0%, 17.5% {
        transform: translate3d(30px, 20px, 0) rotate(-4deg) scale(.84);
        opacity: .92;
        z-index: 1;
    }

    /* FRONT LEFT */
    25%, 42.5% {
        transform: translate3d(115px, 110px, 0) rotate(-1.5deg) scale(1);
        opacity: 1;
        z-index: 5;
    }

    /* FRONT RIGHT */
    50%, 67.5% {
        transform: translate3d(350px, 110px, 0) rotate(1.5deg) scale(1);
        opacity: 1;
        z-index: 6;
    }

    /* BACK RIGHT */
    75%, 92.5% {
        transform: translate3d(435px, 20px, 0) rotate(4deg) scale(.84);
        opacity: .92;
        z-index: 2;
    }

    /* Back to BACK LEFT */
    100% {
        transform: translate3d(30px, 20px, 0) rotate(-4deg) scale(.84);
        opacity: .92;
        z-index: 1;
    }
}

/* Pause the entire set together. */
.bto-hero__products--orbit:hover .bto-hero-card,
.bto-hero__products--orbit:focus-within .bto-hero-card {
    animation-play-state: paused !important;
}

/* Slightly stronger depth for foreground cards when paused/hovered. */
.bto-hero__products--orbit .bto-hero-card:hover,
.bto-hero__products--orbit .bto-hero-card:focus-visible {
    box-shadow: 0 30px 60px rgba(35,55,90,.24);
}

/* Medium desktop */
@media (max-width: 1180px) {
    .bto-hero__products--orbit {
        min-height: 395px;
    }

    .bto-hero__products--orbit .bto-hero-card {
        width: 205px;
    }

    @keyframes btoHeroOrbitSync {
        0%, 17.5% {
            transform: translate3d(16px, 16px, 0) rotate(-4deg) scale(.84);
            opacity: .92;
            z-index: 1;
        }
        25%, 42.5% {
            transform: translate3d(76px, 92px, 0) rotate(-1.5deg) scale(1);
            opacity: 1;
            z-index: 5;
        }
        50%, 67.5% {
            transform: translate3d(258px, 92px, 0) rotate(1.5deg) scale(1);
            opacity: 1;
            z-index: 6;
        }
        75%, 92.5% {
            transform: translate3d(318px, 16px, 0) rotate(4deg) scale(.84);
            opacity: .92;
            z-index: 2;
        }
        100% {
            transform: translate3d(16px, 16px, 0) rotate(-4deg) scale(.84);
            opacity: .92;
            z-index: 1;
        }
    }
}

/* Tablet */
@media (max-width: 1000px) {
    .bto-hero__products--orbit {
        width: 100%;
        max-width: 660px;
        min-height: 420px;
        margin: 0 auto;
    }

    .bto-hero__products--orbit .bto-hero-card {
        width: 225px;
    }

    @keyframes btoHeroOrbitSync {
        0%, 17.5% {
            transform: translate3d(18px, 14px, 0) rotate(-4deg) scale(.84);
            opacity: .92;
            z-index: 1;
        }
        25%, 42.5% {
            transform: translate3d(92px, 96px, 0) rotate(-1.5deg) scale(1);
            opacity: 1;
            z-index: 5;
        }
        50%, 67.5% {
            transform: translate3d(345px, 96px, 0) rotate(1.5deg) scale(1);
            opacity: 1;
            z-index: 6;
        }
        75%, 92.5% {
            transform: translate3d(417px, 14px, 0) rotate(4deg) scale(.84);
            opacity: .92;
            z-index: 2;
        }
        100% {
            transform: translate3d(18px, 14px, 0) rotate(-4deg) scale(.84);
            opacity: .92;
            z-index: 1;
        }
    }
}

/* Mobile */
@media (max-width: 640px) {
    .bto-hero__products--orbit {
        min-height: 315px;
        max-width: 100%;
    }

    .bto-hero__products--orbit .bto-hero-card {
        width: 155px;
    }

    @keyframes btoHeroOrbitSync {
        0%, 17.5% {
            transform: translate3d(0, 8px, 0) rotate(-4deg) scale(.84);
            opacity: .92;
            z-index: 1;
        }
        25%, 42.5% {
            transform: translate3d(40px, 84px, 0) rotate(-1.5deg) scale(1);
            opacity: 1;
            z-index: 5;
        }
        50%, 67.5% {
            transform: translate3d(calc(100vw - 220px), 84px, 0) rotate(1.5deg) scale(1);
            opacity: 1;
            z-index: 6;
        }
        75%, 92.5% {
            transform: translate3d(calc(100vw - 180px), 8px, 0) rotate(4deg) scale(.84);
            opacity: .92;
            z-index: 2;
        }
        100% {
            transform: translate3d(0, 8px, 0) rotate(-4deg) scale(.84);
            opacity: .92;
            z-index: 1;
        }
    }
}

@media (prefers-reduced-motion: reduce) {
    .bto-hero__products--orbit .bto-hero-card {
        animation: none !important;
    }

    .bto-hero__products--orbit .bto-hero-card:nth-child(1) {
        transform: translate3d(30px,20px,0) rotate(-4deg) scale(.84) !important;
        z-index: 1 !important;
    }
    .bto-hero__products--orbit .bto-hero-card:nth-child(2) {
        transform: translate3d(115px,110px,0) rotate(-1.5deg) scale(1) !important;
        z-index: 5 !important;
    }
    .bto-hero__products--orbit .bto-hero-card:nth-child(3) {
        transform: translate3d(350px,110px,0) rotate(1.5deg) scale(1) !important;
        z-index: 6 !important;
    }
    .bto-hero__products--orbit .bto-hero-card:nth-child(4) {
        transform: translate3d(435px,20px,0) rotate(4deg) scale(.84) !important;
        z-index: 2 !important;
    }
}


/* =========================================================
   v1.0.14 — one-row homepage product carousels
   12 loaded / 6 visible desktop / 3 tablet / 2 mobile
   ========================================================= */

.bto-product-carousel {
    position: relative;
    margin-inline: -2px;
}

.bto-product-carousel__viewport {
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    padding: 2px;
}

.bto-product-carousel__viewport::-webkit-scrollbar {
    display: none;
}

/* Defeat the normal 4-column product grid only inside the carousel. */
.bto-product-carousel .bto-product-grid--carousel,
.bto-product-carousel .woocommerce ul.products.bto-product-grid--carousel {
    display: flex !important;
    flex-wrap: nowrap !important;
    width: max-content !important;
    min-width: 100% !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 0 !important;
}

.bto-product-carousel .bto-product-grid--carousel li.product,
.bto-product-carousel .woocommerce ul.products.bto-product-grid--carousel li.product {
    flex: 0 0 calc((100vw - 24px - 2 * max(24px, calc((100vw - var(--bto-container)) / 2)) - 60px) / 6) !important;
    width: auto !important;
    min-width: 0 !important;
    scroll-snap-align: start;
    margin: 0 !important;
}

/* Container-relative fallback for browsers not liking the vw calculation. */
@supports (container-type: inline-size) {
    .bto-product-carousel {
        container-type: inline-size;
    }

    .bto-product-carousel .bto-product-grid--carousel li.product,
    .bto-product-carousel .woocommerce ul.products.bto-product-grid--carousel li.product {
        flex-basis: calc((100cqw - 60px) / 6) !important;
    }
}

/* Homepage carousel cards are deliberately compact. */
.bto-home-main .bto-product-carousel li.product {
    min-height: 0 !important;
}

.bto-home-main .bto-product-carousel li.product .bto-product-image-wrap {
    aspect-ratio: 1 / 1;
    margin-bottom: 8px;
}

.bto-home-main .bto-product-carousel li.product h2,
.bto-home-main .bto-product-carousel li.product .woocommerce-loop-product__title {
    font-size: .88rem !important;
    line-height: 1.22 !important;
    max-height: 2.45em !important;
}

.bto-home-main .bto-product-carousel .bto-card-category {
    margin-top: 6px;
    font-size: 8px;
}

.bto-home-main .bto-product-carousel .bto-card-meta {
    margin-top: 6px;
}

.bto-home-main .bto-product-carousel li.product .price {
    margin-top: 8px !important;
    font-size: 1rem !important;
}

/* Compact arrows sit just outside the row edge. */
.bto-product-carousel__arrow {
    position: absolute;
    z-index: 12;
    top: 42%;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(23,36,58,.12);
    border-radius: 50%;
    background: #fff;
    color: var(--bto-ink);
    box-shadow: 0 8px 24px rgba(27,45,78,.16);
    cursor: pointer;
    transform: translateY(-50%);
    transition: opacity .18s ease, transform .18s ease, background .18s ease;
}

.bto-product-carousel__arrow span {
    display: block;
    margin-top: -3px;
    font-family: Arial, sans-serif;
    font-size: 32px;
    font-weight: 400;
    line-height: 1;
}

.bto-product-carousel__arrow--prev {
    left: -20px;
}

.bto-product-carousel__arrow--next {
    right: -20px;
}

.bto-product-carousel__arrow:hover:not(:disabled) {
    background: var(--bto-yellow);
    transform: translateY(-50%) scale(1.05);
}

.bto-product-carousel__arrow:disabled {
    opacity: 0;
    pointer-events: none;
}

/* Product sections can now be shallower because there is only one row. */
.bto-products-section,
.bto-sale-band {
    padding-top: 38px !important;
    padding-bottom: 38px !important;
}

@media (max-width: 1000px) {
    .bto-product-carousel .bto-product-grid--carousel li.product,
    .bto-product-carousel .woocommerce ul.products.bto-product-grid--carousel li.product {
        flex-basis: calc((100vw - 48px - 24px) / 3) !important;
    }

    @supports (container-type: inline-size) {
        .bto-product-carousel .bto-product-grid--carousel li.product,
        .bto-product-carousel .woocommerce ul.products.bto-product-grid--carousel li.product {
            flex-basis: calc((100cqw - 24px) / 3) !important;
        }
    }

    .bto-product-carousel__arrow--prev {
        left: -10px;
    }

    .bto-product-carousel__arrow--next {
        right: -10px;
    }
}

@media (max-width: 640px) {
    .bto-product-carousel .bto-product-grid--carousel,
    .bto-product-carousel .woocommerce ul.products.bto-product-grid--carousel {
        gap: 9px !important;
    }

    .bto-product-carousel .bto-product-grid--carousel li.product,
    .bto-product-carousel .woocommerce ul.products.bto-product-grid--carousel li.product {
        flex-basis: calc((100vw - 30px - 9px) / 2) !important;
    }

    @supports (container-type: inline-size) {
        .bto-product-carousel .bto-product-grid--carousel li.product,
        .bto-product-carousel .woocommerce ul.products.bto-product-grid--carousel li.product {
            flex-basis: calc((100cqw - 9px) / 2) !important;
        }
    }

    .bto-product-carousel__arrow {
        display: none;
    }

    .bto-products-section,
    .bto-sale-band {
        padding-top: 32px !important;
        padding-bottom: 32px !important;
    }
}


/* =========================================================
   v1.0.15 — homepage trust strip
   ========================================================= */

.bto-trust-strip {
    background: #fff;
    border-top: 1px solid var(--bto-line);
    border-bottom: 1px solid var(--bto-line);
}

.bto-trust-strip__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
}

.bto-trust-item {
    min-width: 0;
    min-height: 96px;
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 18px 22px;
    border-right: 1px solid var(--bto-line);
}

.bto-trust-item:first-child {
    padding-left: 0;
}

.bto-trust-item:last-child {
    border-right: 0;
    padding-right: 0;
}

.bto-trust-item__icon {
    flex: 0 0 43px;
    width: 43px;
    height: 43px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: #f2f7ff;
    color: var(--bto-blue);
}

.bto-trust-item:nth-child(2) .bto-trust-item__icon {
    background: #fff5cf;
    color: #d88900;
}

.bto-trust-item:nth-child(3) .bto-trust-item__icon {
    background: #ffeaf3;
    color: var(--bto-pink);
}

.bto-trust-item:nth-child(4) .bto-trust-item__icon {
    background: #edf8e8;
    color: #2d8c39;
}

.bto-trust-item__icon svg {
    width: 23px;
    height: 23px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.bto-trust-item__copy {
    min-width: 0;
    display: block;
}

.bto-trust-item__copy strong {
    display: block;
    margin-bottom: 3px;
    color: var(--bto-ink);
    font-family: "Trebuchet MS", Verdana, sans-serif;
    font-size: .94rem;
    font-weight: 900;
    line-height: 1.2;
}

.bto-trust-item__copy > span {
    display: block;
    max-width: 240px;
    color: #68768a;
    font-size: .76rem;
    line-height: 1.35;
}

.bto-trust-strip__note {
    margin: 0;
    padding: 0 0 10px;
    color: #7a8697;
    font-size: 10px;
    line-height: 1.45;
    text-align: right;
}

.bto-trust-strip__note a {
    color: var(--bto-blue-dark);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* The new trust strip replaces the old tiny hero trust bullets. */
.bto-hero__trust {
    display: none !important;
}

@media (max-width: 1050px) {
    .bto-trust-strip__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .bto-trust-item {
        border-bottom: 1px solid var(--bto-line);
    }

    .bto-trust-item:nth-child(2) {
        border-right: 0;
    }

    .bto-trust-item:nth-child(3),
    .bto-trust-item:nth-child(4) {
        border-bottom: 0;
    }

    .bto-trust-item:first-child,
    .bto-trust-item:nth-child(3) {
        padding-left: 0;
    }

    .bto-trust-item:nth-child(2),
    .bto-trust-item:last-child {
        padding-right: 0;
    }

    .bto-trust-strip__note {
        padding-top: 8px;
    }
}

@media (max-width: 640px) {
    .bto-trust-strip__grid {
        grid-template-columns: 1fr;
    }

    .bto-trust-item {
        min-height: 0;
        padding: 14px 0 !important;
        border-right: 0;
        border-bottom: 1px solid var(--bto-line) !important;
    }

    .bto-trust-item:last-child {
        border-bottom: 0 !important;
    }

    .bto-trust-item__icon {
        flex-basis: 39px;
        width: 39px;
        height: 39px;
        border-radius: 11px;
    }

    .bto-trust-item__copy strong {
        font-size: .9rem;
    }

    .bto-trust-strip__note {
        padding: 8px 0 12px;
        text-align: left;
    }
}


/* =========================================================
   v1.0.26 — trust-strip corrections + proper basket icon
   ========================================================= */

.bto-uk-icon {
    width: 25px !important;
    height: 25px !important;
    fill: currentColor !important;
    stroke: none !important;
}

.bto-uk-icon path {
    fill: currentColor !important;
    stroke: none !important;
}

/* The returns qualifier belongs only to the returns item. */
.bto-trust-item__note {
    display: block;
    margin-top: 5px;
    max-width: 245px;
    color: #8993a1;
    font-size: 9px;
    line-height: 1.3;
}

.bto-trust-item__note a {
    color: var(--bto-blue-dark);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.bto-trust-strip__note {
    display: none !important;
}

/* A recognisable shopping basket with handle and slats. */
.bto-basket-icon svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.bto-basket-icon {
    background: rgba(255,255,255,.72);
}

/* =========================================================
   v1.0.26 — fixed discount badges + shop-by-budget layout
   ========================================================= */

.bto-discount-badge {
    min-width: 0 !important;
    padding: 7px 9px !important;
    background: var(--bto-pink) !important;
    color: #fff !important;
    font-family: "Trebuchet MS", Verdana, sans-serif !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    letter-spacing: .025em;
}

/* Keep Shop by Budget visually tied to Shop by Age without making the page taller. */
.bto-price-shortcuts {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 28px;
    align-items: center;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid rgba(23,36,58,.08);
}

.bto-price-shortcuts__head .bto-eyebrow {
    margin-bottom: 6px;
}

.bto-price-shortcuts__head h3 {
    margin: 0;
    color: var(--bto-ink);
    font-family: "Trebuchet MS", Verdana, sans-serif;
    font-size: 1.28rem;
    font-weight: 900;
    line-height: 1.15;
    letter-spacing: -.025em;
}

.bto-price-shortcuts__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 12px;
}

.bto-price-shortcuts__grid a {
    min-width: 0;
    min-height: 74px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 12px 16px;
    border: 1px solid rgba(23,36,58,.08);
    border-radius: 16px;
    color: var(--bto-ink);
    box-shadow: 0 5px 16px rgba(28,48,80,.04);
    transition: transform .18s ease, box-shadow .18s ease;
}

.bto-price-shortcuts__grid a:nth-child(1) { background:#eaf5ff; }
.bto-price-shortcuts__grid a:nth-child(2) { background:#fff4c9; }
.bto-price-shortcuts__grid a:nth-child(3) { background:#ffeaf3; }
.bto-price-shortcuts__grid a:nth-child(4) { background:#edf8e8; }

.bto-price-shortcuts__grid a:hover {
    transform: translateY(-2px);
    color: var(--bto-ink);
    box-shadow: 0 10px 24px rgba(28,48,80,.09);
}

.bto-price-shortcuts__grid strong {
    display:block;
    margin-bottom:3px;
    font-family:"Arial Rounded MT Bold", "Trebuchet MS", ui-rounded, sans-serif;
    font-size:1.12rem;
    font-weight:900;
    line-height:1.1;
}

.bto-price-shortcuts__grid span {
    display:block;
    color:#66758a;
    font-size:.74rem;
    line-height:1.25;
}

@media (max-width:900px) {
    .bto-price-shortcuts {
        grid-template-columns:1fr;
        gap:12px;
    }

    .bto-price-shortcuts__grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media (max-width:640px) {
    .bto-price-shortcuts__grid {
        gap:8px;
    }

    .bto-price-shortcuts__grid a {
        min-height:66px;
        padding:10px 12px;
    }
}

/* =========================================================
   v1.0.26 — budget row spans the full age-section grid
   ========================================================= */

.bto-age-shortcuts .bto-price-shortcuts {
    grid-column: 1 / -1;
    width: 100%;
    grid-template-columns: 250px minmax(0, 1fr);
}

.bto-age-shortcuts .bto-price-shortcuts__grid {
    width: 100%;
    min-width: 0;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bto-age-shortcuts .bto-price-shortcuts__grid a {
    width: 100%;
}

@media (max-width: 900px) {
    .bto-age-shortcuts .bto-price-shortcuts {
        grid-column: 1;
        grid-template-columns: 1fr;
    }

    .bto-age-shortcuts .bto-price-shortcuts__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .bto-age-shortcuts .bto-price-shortcuts__grid {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   v1.0.26 — align age and budget rows precisely
   ========================================================= */

.bto-age-shortcuts .bto-price-shortcuts {
    grid-column: 1 / -1;
    width: 100%;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 34px;
}

.bto-price-shortcuts__head h3 {
    margin: 0;
    font-family: "Trebuchet MS", Verdana, sans-serif !important;
    font-size: clamp(1.75rem, 2.15vw, 2.25rem);
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: -.025em;
    color: var(--bto-ink);
}

.bto-age-shortcuts .bto-price-shortcuts__grid {
    width: 100%;
    min-width: 0;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.bto-age-shortcuts .bto-price-shortcuts__grid a {
    width: 100%;
    min-width: 0;
}

@media (max-width: 900px) {
    .bto-age-shortcuts .bto-price-shortcuts {
        grid-column: 1;
        grid-template-columns: 1fr;
        gap: 12px;
    }
}


/* =========================================================
   v1.0.26 — shop + category browsing experience
   ========================================================= */

/* Archive surface */
.post-type-archive-product .bto-woo-main,
.tax-product_cat .bto-woo-main {
    padding: 34px 0 72px;
    background: #f7f9fc;
}

.post-type-archive-product .woocommerce-products-header,
.tax-product_cat .woocommerce-products-header {
    max-width: none;
    margin-bottom: 22px;
}

.post-type-archive-product .woocommerce-products-header__title.page-title,
.tax-product_cat .woocommerce-products-header__title.page-title {
    margin: 0 0 8px;
    font-family: "Arial Rounded MT Bold", "Trebuchet MS", ui-rounded, sans-serif;
    font-size: clamp(2.4rem, 3.5vw, 3.7rem);
    line-height: 1;
    letter-spacing: -.035em;
}

.post-type-archive-product .term-description,
.tax-product_cat .term-description,
.bto-shop-intro p {
    max-width: 780px;
    margin: 0;
    color: #65738a;
    font-size: .98rem;
    line-height: 1.65;
}

.bto-shop-intro {
    margin-top: 10px;
}

.bto-shop-intro .bto-eyebrow {
    margin-bottom: 8px;
}

/* Child categories remain compact and sit above the toolbar. */
.post-type-archive-product .bto-subcategory-strip,
.tax-product_cat .bto-subcategory-strip {
    margin: 0 0 16px;
}

/* One tidy control bar: quick filters | result count | sort. */
.bto-shop-toolbar {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto auto;
    gap: 18px;
    align-items: center;
    margin: 0 0 24px;
    padding: 13px 14px;
    border: 1px solid #dde5ef;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(28,48,80,.045);
}

.bto-archive-filters {
    min-width: 0;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
}

.bto-archive-filters__label {
    margin-right: 3px;
    color: #65738a;
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .055em;
}

.bto-archive-filter {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0 10px;
    border: 1px solid #dbe3ed;
    border-radius: 999px;
    background: #f8fafc;
    color: var(--bto-ink);
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.bto-archive-filter:hover,
.bto-archive-filter.is-active {
    border-color: #8ab9ff;
    background: #edf5ff;
    color: var(--bto-blue-dark);
}

.bto-archive-filter--clear {
    border-color: #ffd1df;
    background: #fff2f6;
    color: #bf2d5b;
}

.bto-shop-toolbar .woocommerce-result-count,
.bto-shop-toolbar .woocommerce-ordering {
    float: none !important;
    margin: 0 !important;
}

.bto-shop-toolbar .woocommerce-result-count {
    color: #718096;
    font-size: 12px;
    white-space: nowrap;
}

.bto-shop-toolbar .woocommerce-ordering select {
    min-width: 178px;
    min-height: 40px;
    border-radius: 10px;
    font-size: 12px;
}

/* Six retail cards across on the archive. */
.post-type-archive-product .woocommerce ul.products,
.tax-product_cat .woocommerce ul.products {
    grid-template-columns: repeat(6, minmax(0,1fr)) !important;
    gap: 13px !important;
}

.post-type-archive-product .woocommerce ul.products li.product,
.tax-product_cat .woocommerce ul.products li.product {
    min-height: 0 !important;
    padding: 9px 9px 12px !important;
    border-radius: 16px;
    box-shadow: 0 4px 15px rgba(28,48,80,.045);
}

.post-type-archive-product .woocommerce ul.products li.product:hover,
.tax-product_cat .woocommerce ul.products li.product:hover {
    transform: translateY(-3px);
    box-shadow: 0 13px 30px rgba(28,48,80,.11);
}

.post-type-archive-product .woocommerce ul.products li.product .bto-product-image-wrap,
.tax-product_cat .woocommerce ul.products li.product .bto-product-image-wrap {
    aspect-ratio: 1 / 1;
    margin-bottom: 9px;
    border-radius: 12px;
}

.post-type-archive-product .woocommerce ul.products li.product .bto-product-image,
.tax-product_cat .woocommerce ul.products li.product .bto-product-image {
    padding: 9px !important;
}

.post-type-archive-product .woocommerce ul.products li.product .woocommerce-loop-product__title,
.tax-product_cat .woocommerce ul.products li.product .woocommerce-loop-product__title {
    min-height: 2.45em;
    max-height: 2.45em;
    overflow: hidden;
    padding: 0 !important;
    font-size: .86rem !important;
    line-height: 1.22;
}

.post-type-archive-product .woocommerce ul.products li.product .bto-card-category,
.tax-product_cat .woocommerce ul.products li.product .bto-card-category {
    margin-top: 6px;
    font-size: 8px;
}

.post-type-archive-product .woocommerce ul.products li.product .bto-card-meta,
.tax-product_cat .woocommerce ul.products li.product .bto-card-meta {
    padding: 6px 0 0;
}

.post-type-archive-product .woocommerce ul.products li.product .bto-card-meta span,
.tax-product_cat .woocommerce ul.products li.product .bto-card-meta span {
    padding: 3px 6px;
    font-size: 8px;
}

.post-type-archive-product .woocommerce ul.products li.product .price,
.tax-product_cat .woocommerce ul.products li.product .price {
    margin: 8px 0 0 !important;
    font-size: 1rem !important;
}

/* Archive cards browse through to the product; no giant CTA under each card. */
.post-type-archive-product .woocommerce ul.products li.product .button,
.tax-product_cat .woocommerce ul.products li.product .button,
.post-type-archive-product .woocommerce ul.products li.product .added_to_cart,
.tax-product_cat .woocommerce ul.products li.product .added_to_cart {
    display: none !important;
}

.post-type-archive-product .woocommerce span.onsale,
.tax-product_cat .woocommerce span.onsale {
    top: 14px !important;
    left: 14px !important;
    padding: 6px 8px !important;
    font-size: 9px !important;
}

.post-type-archive-product .woocommerce nav.woocommerce-pagination,
.tax-product_cat .woocommerce nav.woocommerce-pagination {
    margin-top: 30px;
}

@media (max-width: 1250px) {
    .post-type-archive-product .woocommerce ul.products,
    .tax-product_cat .woocommerce ul.products {
        grid-template-columns: repeat(5,minmax(0,1fr)) !important;
    }

    .bto-shop-toolbar {
        grid-template-columns: 1fr auto;
    }

    .bto-shop-toolbar .bto-archive-filters {
        grid-column: 1 / -1;
    }
}

@media (max-width: 1000px) {
    .post-type-archive-product .woocommerce ul.products,
    .tax-product_cat .woocommerce ul.products {
        grid-template-columns: repeat(4,minmax(0,1fr)) !important;
    }
}

@media (max-width: 760px) {
    .bto-shop-toolbar {
        grid-template-columns: 1fr;
        gap: 11px;
    }

    .bto-shop-toolbar .woocommerce-result-count,
    .bto-shop-toolbar .woocommerce-ordering {
        width: 100%;
    }

    .bto-shop-toolbar .woocommerce-ordering select {
        width: 100%;
    }

    .post-type-archive-product .woocommerce ul.products,
    .tax-product_cat .woocommerce ul.products {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
        gap: 10px !important;
    }
}


/* =========================================================
   v1.0.26 — tighter category/shop archive
   ========================================================= */

/* Short useful archive intro directly below the title. */
.bto-category-intro {
    max-width: 820px;
    margin-top: 9px;
}

.bto-category-intro p {
    margin: 0;
    color: #65738a;
    font-size: .96rem;
    line-height: 1.55;
}

.post-type-archive-product .woocommerce-products-header,
.tax-product_cat .woocommerce-products-header {
    margin-bottom: 17px;
}

.post-type-archive-product .woocommerce-products-header__title.page-title,
.tax-product_cat .woocommerce-products-header__title.page-title {
    margin-bottom: 5px;
}

/* Breadcrumb is useful but should not compete with the category heading. */
.post-type-archive-product .woocommerce-breadcrumb,
.tax-product_cat .woocommerce-breadcrumb {
    margin-bottom: 18px;
    color: #8793a3;
    font-size: 11px;
}

.post-type-archive-product .woocommerce-breadcrumb a,
.tax-product_cat .woocommerce-breadcrumb a {
    color: #66809f;
}

/* One genuinely shallow desktop toolbar. */
.bto-shop-toolbar {
    grid-template-columns: minmax(0, 1fr) auto 190px !important;
    gap: 14px !important;
    min-height: 54px;
    margin-bottom: 18px !important;
    padding: 9px 12px !important;
}

.bto-shop-toolbar .bto-archive-filters {
    grid-column: auto !important;
    min-width: 0;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
}

.bto-shop-toolbar .bto-archive-filters::-webkit-scrollbar {
    display: none;
}

.bto-archive-filter {
    min-height: 30px;
    padding-inline: 9px;
}

.bto-result-count {
    color: #6f7f94 !important;
    font-size: 12px !important;
    white-space: nowrap;
}

.bto-result-count strong {
    color: var(--bto-ink);
    font-size: 13px;
}

.bto-shop-toolbar .woocommerce-ordering {
    width: 190px;
}

.bto-shop-toolbar .woocommerce-ordering select {
    width: 100%;
    min-width: 0 !important;
    min-height: 36px !important;
    padding: 0 32px 0 10px;
}

/* Six products remain six-across on normal desktop widths. */
.post-type-archive-product .bto-woo-main .woocommerce ul.products,
.tax-product_cat .bto-woo-main .woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

/* A category archive does not need to repeat the category beneath every title. */
.tax-product_cat .woocommerce ul.products li.product .bto-card-category {
    display: none !important;
}

.tax-product_cat .woocommerce ul.products li.product .bto-card-meta {
    margin-top: 5px;
}

/* Keep cards crisp at six across. */
.post-type-archive-product .bto-woo-main .woocommerce ul.products li.product,
.tax-product_cat .bto-woo-main .woocommerce ul.products li.product {
    padding: 8px 8px 11px !important;
}

.post-type-archive-product .bto-woo-main .woocommerce ul.products li.product .woocommerce-loop-product__title,
.tax-product_cat .bto-woo-main .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: .82rem !important;
    line-height: 1.2 !important;
}

/* Do not collapse desktop into 5/4 columns simply because of a moderately
   narrow CSS viewport / display scaling. */
@media (max-width: 900px) {
    .post-type-archive-product .bto-woo-main .woocommerce ul.products,
    .tax-product_cat .bto-woo-main .woocommerce ul.products {
        grid-template-columns: repeat(3, minmax(0,1fr)) !important;
    }

    .bto-shop-toolbar {
        grid-template-columns: 1fr auto !important;
    }

    .bto-shop-toolbar .bto-archive-filters {
        grid-column: 1 / -1 !important;
    }

    .bto-shop-toolbar .woocommerce-ordering {
        width: 180px;
    }
}

@media (max-width: 640px) {
    .post-type-archive-product .bto-woo-main .woocommerce ul.products,
    .tax-product_cat .bto-woo-main .woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
        gap: 9px !important;
    }

    .bto-shop-toolbar {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }

    .bto-shop-toolbar .bto-archive-filters {
        grid-column: 1 !important;
    }

    .bto-shop-toolbar .woocommerce-ordering {
        width: 100%;
    }
}


/* =========================================================
   v1.0.26 — compact archive panel + six-across + infinite load
   ========================================================= */

/* Breadcrumb sits above one consolidated archive panel. */
.post-type-archive-product .woocommerce-breadcrumb,
.tax-product_cat .woocommerce-breadcrumb {
    margin: 12px 0 12px !important;
}

.bto-archive-panel {
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(520px, 1.08fr);
    gap: clamp(28px, 4vw, 58px);
    align-items: center;
    margin-bottom: 18px;
    padding: 22px 24px;
    border: 1px solid var(--bto-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 8px 26px rgba(28,48,80,.045);
}

.bto-archive-panel__copy {
    min-width: 0;
}

.bto-archive-panel .woocommerce-products-header__title.page-title {
    margin: 0 0 8px !important;
    font-size: clamp(2.15rem, 3vw, 3.25rem) !important;
    line-height: 1 !important;
}

.bto-archive-panel__intro .bto-category-intro,
.bto-archive-panel__intro .bto-shop-intro,
.bto-archive-panel__intro .term-description {
    max-width: 650px;
    margin: 0 !important;
}

.bto-archive-panel__intro .bto-eyebrow {
    display: none;
}

.bto-archive-panel__intro p {
    margin: 0 !important;
    color: #65738a;
    font-size: .9rem;
    line-height: 1.5;
}

.bto-archive-panel__controls {
    min-width: 0;
}

.bto-archive-panel__controls-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 12px;
}

.bto-archive-total {
    display: flex;
    align-items: baseline;
    gap: 7px;
    white-space: nowrap;
}

.bto-archive-total strong {
    color: var(--bto-blue);
    font-family: "Trebuchet MS", Verdana, sans-serif;
    font-size: 2.15rem;
    font-weight: 900;
    line-height: 1;
}

.bto-archive-total span {
    color: #718096;
    font-size: .82rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.bto-archive-sort {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 230px;
}

.bto-archive-sort > span {
    color: #718096;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.bto-archive-sort .woocommerce-ordering {
    float: none !important;
    flex: 1;
    margin: 0 !important;
}

.bto-archive-sort select {
    width: 100%;
    min-height: 44px;
    padding: 0 34px 0 11px;
    border: 1px solid #d8e1ec;
    border-radius: 10px;
    background: #f8fafc;
    font-size: 12px;
}

.bto-archive-panel .bto-archive-filters {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    overflow-x: auto;
    padding-bottom: 1px;
    scrollbar-width: none;
}

.bto-archive-panel .bto-archive-filters::-webkit-scrollbar { display:none; }

.bto-archive-panel .bto-archive-filters__label {
    flex: 0 0 auto;
    margin-right: 2px;
    color: #718096;
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.bto-archive-panel .bto-archive-filter {
    flex: 0 0 auto;
    min-height: 30px;
    padding: 0 9px;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    font-size: 10px;
}

/* The archive template now owns the controls; suppress the old hooked toolbar if
   a plugin/theme path happens to output it elsewhere. */
.bto-shop-toolbar { display:none !important; }

/* Fix the real four-column issue by targeting the products list directly under
   the theme wrapper, rather than requiring a nested .woocommerce element. */
.bto-woo-main ul.products {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 0 !important;
}

.bto-woo-main ul.products > li.product {
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    float: none !important;
    clear: none !important;
    padding: 8px 8px 12px !important;
    border-radius: 15px !important;
}

.bto-woo-main ul.products > li.product .bto-product-image-wrap {
    aspect-ratio: 1 / 1 !important;
    margin-bottom: 8px !important;
}

.bto-woo-main ul.products > li.product .woocommerce-loop-product__title {
    min-height: 2.4em !important;
    max-height: 2.4em !important;
    font-size: .8rem !important;
    line-height: 1.2 !important;
}

.bto-woo-main ul.products > li.product .bto-card-meta {
    margin-top: 5px;
    padding: 0 92px 0 0 !important;
}

.bto-woo-main ul.products > li.product .price {
    max-width: calc(100% - 88px);
    margin: 8px 0 0 !important;
    font-size: 1rem !important;
    line-height: 1.15;
}

.bto-card-view {
    position: absolute;
    right: 9px;
    bottom: 10px;
    min-width: 78px;
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 9px;
    border-radius: 9px;
    background: var(--bto-blue);
    color: #fff;
    font-family: "Trebuchet MS", Verdana, sans-serif;
    font-size: 9px;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: .02em;
    transition: transform .16s ease, background .16s ease;
}

li.product:hover .bto-card-view {
    background: var(--bto-purple);
    transform: translateY(-1px);
}

/* Pagination stays in the DOM for crawlability/fallback and as the next-page
   source for the infinite loader, but disappears for JS-enabled visitors. */
.bto-js .bto-woo-main nav.woocommerce-pagination {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
}

.bto-infinite-sentinel {
    min-height: 78px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #748197;
    font-size: 12px;
    font-weight: 800;
    text-align: center;
}

.bto-infinite-sentinel__spinner {
    width: 18px;
    height: 18px;
    display: none;
    border: 2px solid #d7e0eb;
    border-top-color: var(--bto-blue);
    border-radius: 50%;
    animation: btoArchiveSpin .7s linear infinite;
}

.bto-infinite-sentinel.is-loading .bto-infinite-sentinel__spinner { display:block; }
.bto-infinite-sentinel.is-finished { color:#8c97a6; }
.bto-infinite-sentinel a { color:var(--bto-blue); text-decoration:underline; }

@keyframes btoArchiveSpin { to { transform: rotate(360deg); } }

@media (max-width: 1120px) {
    .bto-archive-panel {
        grid-template-columns: minmax(0,.85fr) minmax(450px,1.15fr);
        gap: 28px;
    }

    .bto-woo-main ul.products {
        grid-template-columns: repeat(5, minmax(0,1fr)) !important;
    }
}

@media (max-width: 900px) {
    .bto-archive-panel {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .bto-woo-main ul.products {
        grid-template-columns: repeat(3, minmax(0,1fr)) !important;
    }
}

@media (max-width: 640px) {
    .bto-archive-panel {
        padding: 18px 16px;
        border-radius: 16px;
    }

    .bto-archive-panel__controls-top {
        align-items: flex-end;
    }

    .bto-archive-total strong { font-size:1.75rem; }

    .bto-archive-sort {
        min-width: 0;
        width: 56%;
    }

    .bto-archive-sort > span { display:none; }

    .bto-woo-main ul.products {
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
        gap: 9px !important;
    }

    .bto-card-view {
        min-width: 66px;
        padding-inline: 7px;
        font-size: 8px;
    }

    .bto-woo-main ul.products > li.product .bto-card-meta {
        padding-right: 73px !important;
    }

    .bto-woo-main ul.products > li.product .price {
        max-width: calc(100% - 70px);
        font-size: .92rem !important;
    }
}


/* =========================================================
   v1.0.26 — archive card price / CTA alignment
   ========================================================= */

/* Let the product link fill the card so the final price/CTA line sits at the
   same vertical position even when product titles vary in length. */
.bto-woo-main ul.products > li.product > a.woocommerce-LoopProduct-link {
    display: flex !important;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 100%;
}

/* Price and View Product now form one visual bottom row. */
.bto-woo-main ul.products > li.product .price {
    display: flex !important;
    align-items: center;
    min-height: 30px;
    max-width: none !important;
    margin: auto 0 0 !important;
    padding: 7px 88px 0 1px;
    line-height: 1.1 !important;
}

.bto-woo-main ul.products > li.product .bto-card-meta {
    padding-right: 0 !important;
}

.bto-woo-main ul.products > li.product .bto-card-view {
    right: 9px;
    bottom: 11px;
    min-height: 30px;
}


/* =========================================================
   v1.0.27 — archive control alignment + sale-price spacing
   ========================================================= */

/* Treat the right-hand controls as one aligned unit. */
.bto-archive-panel__controls {
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

.bto-archive-panel__controls-top {
    justify-content: flex-end;
    gap: 12px;
    margin-bottom: 10px;
}

/* Compact item count that belongs with the controls. */
.bto-archive-total {
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid #dce5ef;
    border-radius: 10px;
    background: #f6f9fd;
    gap: 5px;
}

.bto-archive-total strong {
    font-size: 1.35rem;
    line-height: 1;
}

.bto-archive-total span {
    font-size: .7rem;
    letter-spacing: .045em;
}

/* Filters sit flush to the right underneath count + sort. */
.bto-archive-panel .bto-archive-filters {
    width: 100%;
    justify-content: flex-end;
    text-align: right;
}

.bto-archive-panel .bto-archive-filters__label {
    margin-left: auto;
}

/* Keep the crossed-out and live sale prices visually separate. */
.bto-woo-main ul.products > li.product .price {
    gap: 6px;
    flex-wrap: wrap;
}

.bto-woo-main ul.products > li.product .price del {
    margin-right: 1px;
    color: #8a94a3;
}

.bto-woo-main ul.products > li.product .price ins {
    text-decoration: none;
}

@media (max-width: 900px) {
    .bto-archive-panel .bto-archive-filters {
        justify-content: flex-start;
        text-align: left;
    }

    .bto-archive-panel .bto-archive-filters__label {
        margin-left: 0;
    }
}

@media (max-width: 640px) {
    .bto-archive-panel__controls-top {
        justify-content: space-between;
    }

    .bto-archive-total {
        min-height: 36px;
        padding-inline: 10px;
    }

    .bto-archive-total strong {
        font-size: 1.15rem;
    }
}


/* =========================================================
   v1.0.28 — square archive item count
   ========================================================= */

.bto-archive-total {
    flex: 0 0 64px;
    width: 64px;
    height: 64px;
    min-height: 64px;
    padding: 0;
    display: grid;
    grid-template-rows: auto auto;
    place-content: center;
    justify-items: center;
    gap: 1px;
    border-radius: 12px;
    text-align: center;
}

.bto-archive-total strong {
    display: block;
    font-size: 1.45rem;
    line-height: .95;
}

.bto-archive-total span {
    display: block;
    font-size: .58rem;
    line-height: 1;
    letter-spacing: .08em;
    text-transform: uppercase;
}

@media (max-width: 640px) {
    .bto-archive-total {
        flex-basis: 56px;
        width: 56px;
        height: 56px;
        min-height: 56px;
    }

    .bto-archive-total strong {
        font-size: 1.25rem;
    }
}


/* =========================================================
   v1.0.30 — reliable/toggleable archive filters
   ========================================================= */

.bto-archive-panel .bto-archive-filter.is-active,
.bto-archive-panel .bto-archive-filter[aria-pressed="true"] {
    border-color: #7045df !important;
    background: #7045df !important;
    color: #fff !important;
    box-shadow: 0 3px 10px rgba(112,69,223,.18);
}

.bto-archive-panel .bto-archive-filter.is-active:hover,
.bto-archive-panel .bto-archive-filter[aria-pressed="true"]:hover {
    border-color: #5d36c7 !important;
    background: #5d36c7 !important;
    color: #fff !important;
}

.bto-archive-panel .bto-archive-filter--clear {
    border-color: #ffc2d4 !important;
    background: #fff0f5 !important;
    color: #b72755 !important;
    font-weight: 900;
}

.bto-archive-panel .bto-archive-filter--clear:hover {
    border-color: #ff8bad !important;
    background: #ffe0ea !important;
    color: #981c45 !important;
}


/* =========================================================
   v1.0.31 — AJAX archive filters + deterministic age buckets
   ========================================================= */

.bto-woo-main {
    transition: opacity .18s ease;
}

.bto-woo-main.is-archive-updating {
    opacity: .58;
    cursor: progress;
}

.bto-woo-main.is-archive-updating .bto-archive-filter {
    pointer-events: none;
}

/* Active state must beat all earlier archive-chip rules. */
.bto-woo-main .bto-archive-panel a.bto-archive-filter.is-active,
.bto-woo-main .bto-archive-panel a.bto-archive-filter[aria-pressed="true"] {
    border-color: #7045df !important;
    background-color: #7045df !important;
    color: #fff !important;
    box-shadow: 0 3px 10px rgba(112,69,223,.2) !important;
}

.bto-woo-main .bto-archive-panel a.bto-archive-filter.is-active:visited,
.bto-woo-main .bto-archive-panel a.bto-archive-filter[aria-pressed="true"]:visited {
    color: #fff !important;
}


/* =========================================================
   v1.0.34 — complete category nav + corrected age filters
   ========================================================= */

@media (min-width: 901px) {
    .bto-category-nav .bto-category-nav__inner {
        width: min(calc(100% - 20px), 1460px);
        max-width: 1460px;
        margin-inline: auto;
        justify-content: center;
        overflow: visible;
    }

    .bto-category-nav a {
        padding-inline: 9px;
        font-size: 11px;
    }
}

/* URL-synchronised active state for both age and price chips. */
.bto-woo-main .bto-archive-panel a.bto-archive-filter.is-active,
.bto-woo-main .bto-archive-panel a.bto-archive-filter[aria-pressed="true"] {
    border-color: #7045df !important;
    background: #7045df !important;
    color: #fff !important;
    box-shadow: 0 3px 10px rgba(112,69,223,.22) !important;
}

/* v1.0.35: archive quick filters now bind to WooCommerce product query. */


/* =========================================================
   v1.0.40 — current category navigation state
   ========================================================= */

.bto-mobile-nav__links a.is-current {
    background: #fff1f6;
    color: var(--bto-pink);
    border-left: 4px solid var(--bto-pink);
    padding-left: 16px;
}

.bto-mobile-nav__links a.is-current strong {
    color: inherit;
}

/* =========================================================
   v1.0.43 — live header product search
   ========================================================= */

.bto-live-search-host {
    position: relative;
}

.bto-live-search-results {
    position: absolute;
    z-index: 3500;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid #dde5ef;
    border-radius: 16px;
    box-shadow: 0 22px 55px rgba(23,36,58,.18);
    overflow: hidden;
    text-align: left;
}

.bto-live-search-results[hidden] {
    display: none !important;
}

.bto-live-search-item {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    min-height: 72px;
    padding: 7px 12px;
    color: var(--bto-ink);
    border-bottom: 1px solid #edf1f6;
    background: #fff;
}

.bto-live-search-item:hover,
.bto-live-search-item:focus {
    color: var(--bto-ink);
    background: #f4f9ff;
    outline: 0;
}

.bto-live-search-item__image {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: #f6f8fb;
    overflow: hidden;
}

.bto-live-search-item__image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.bto-live-search-item__copy {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.bto-live-search-item__copy strong {
    min-width: 0;
    font-size: 14px;
    line-height: 1.25;
}

.bto-live-search-item__price {
    flex: 0 0 auto;
    font-size: 14px;
    font-weight: 800;
    white-space: nowrap;
}

.bto-live-search-item__price del {
    color: #8d97a6;
    font-weight: 500;
    margin-right: 4px;
}

.bto-live-search-item__price ins {
    color: var(--bto-pink);
    text-decoration: none;
}

.bto-live-search-loading,
.bto-live-search-empty {
    padding: 18px;
    color: var(--bto-muted);
    font-size: 14px;
}

.bto-live-search-all {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 11px 14px;
    background: var(--bto-sky);
    color: var(--bto-blue-dark);
    font-size: 13px;
    font-weight: 800;
}

.bto-live-search-all:hover,
.bto-live-search-all:focus {
    color: var(--bto-blue-dark);
    background: #dff0ff;
}

@media (max-width: 700px) {
    .bto-live-search-item__copy {
        display: block;
    }

    .bto-live-search-item__price {
        display: block;
        margin-top: 3px;
    }
}

/* =========================================================
   v1.0.44 — single-product scrolling
   Product summary now scrolls naturally with the gallery.
   The global site header remains sticky.
   ========================================================= */

/* =========================================================
   v1.0.45 — rebuilt single-product hierarchy
   ========================================================= */

/* Slightly tighter buying column and title scale. */
.single-product .woocommerce div.product {
    grid-template-columns: minmax(0, 1.06fr) minmax(400px, .94fr);
    column-gap: clamp(38px, 5vw, 78px);
}

.single-product .woocommerce div.product .product_title {
    font-size: clamp(2.2rem, 3.1vw, 3.55rem);
    line-height: 1.03;
    margin-bottom: 12px;
}

.single-product .woocommerce div.product p.price,
.single-product .woocommerce div.product span.price {
    margin: 0 0 16px !important;
}

/* Age / Size / Safety sit directly beneath the price as retail spec tiles. */
.single-product .bto-product-specs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
    margin: 0 0 18px;
    border: 0;
    border-radius: 0;
    overflow: visible;
}

.single-product .bto-product-specs > .bto-product-spec {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px 11px;
    border: 1px solid #dfe6ef;
    border-radius: 13px;
    background: #f8fbff;
}

.single-product .bto-product-spec__icon {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: #e9f4ff;
    color: var(--bto-blue);
}

.single-product .bto-product-spec__icon svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.single-product .bto-product-spec__copy {
    min-width: 0;
}

.single-product .bto-product-spec__copy strong,
.single-product .bto-product-spec__copy small {
    display: block;
}

.single-product .bto-product-spec__copy strong {
    color: var(--bto-ink);
    font-size: 13px;
    font-weight: 900;
    line-height: 1.15;
}

.single-product .bto-product-spec__copy small {
    margin-top: 2px;
    color: var(--bto-muted);
    font-size: 9px;
    line-height: 1.2;
}

.single-product .bto-product-spec--size .bto-product-spec__icon {
    background: #fff5d9;
    color: #a96700;
}

.single-product .bto-product-spec--safety .bto-product-spec__icon {
    background: #ebf8ef;
    color: #168444;
}

/* Basket block follows specs immediately. */
.single-product .woocommerce div.product form.cart {
    margin: 0 !important;
    padding: 0 0 8px;
}

.single-product .woocommerce div.product form.cart .button {
    border-radius: 12px !important;
    font-weight: 900 !important;
}

/* Coloured reassurance cards with real icons. */
.single-product .bto-product-reassurance {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
    margin: 12px 0 0;
    border: 0;
    border-radius: 0;
    overflow: visible;
}

.single-product .bto-reassurance-card {
    min-width: 0;
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 11px;
    border: 1px solid transparent;
    border-radius: 13px;
}

.single-product .bto-reassurance-card--delivery {
    background: #edf6ff;
    border-color: #d9eaff;
    color: #1769aa;
}

.single-product .bto-reassurance-card--secure {
    background: #edf9f1;
    border-color: #d7f0df;
    color: #187443;
}

.single-product .bto-reassurance-card--help {
    background: #f5efff;
    border-color: #e7dcff;
    color: #7141b8;
}

.single-product .bto-reassurance-card__icon {
    flex: 0 0 31px;
    width: 31px;
    height: 31px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: rgba(255,255,255,.75);
}

.single-product .bto-reassurance-card__icon svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.single-product .bto-reassurance-card strong,
.single-product .bto-reassurance-card small {
    display: block;
}

.single-product .bto-reassurance-card strong {
    color: var(--bto-ink);
    font-size: 11px;
    line-height: 1.2;
}

.single-product .bto-reassurance-card small {
    margin-top: 3px;
    color: var(--bto-muted);
    font-size: 9px;
    line-height: 1.3;
}

/* Delivery & returns now sits directly below the reassurance cards. */
.single-product .bto-delivery-details {
    margin-top: 9px;
    border: 1px solid var(--bto-line);
    border-radius: 13px;
    background: #fff;
    overflow: hidden;
}

.single-product .bto-delivery-details summary {
    min-height: 54px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    list-style: none;
    cursor: pointer;
}

.single-product .bto-delivery-details summary::-webkit-details-marker {
    display: none;
}

.single-product .bto-delivery-details__icon {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: #fff7dc;
    color: #996600;
}

.single-product .bto-delivery-details__icon svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.single-product .bto-delivery-details summary > span:nth-child(2) {
    min-width: 0;
    flex: 1;
}

.single-product .bto-delivery-details summary strong,
.single-product .bto-delivery-details summary small {
    display: block;
}

.single-product .bto-delivery-details summary strong {
    font-size: 12px;
}

.single-product .bto-delivery-details summary small {
    margin-top: 2px;
    color: var(--bto-muted);
    font-size: 9px;
}

.single-product .bto-delivery-details__chevron {
    font-size: 22px;
    transition: transform .18s ease;
}

.single-product .bto-delivery-details[open] .bto-delivery-details__chevron {
    transform: rotate(180deg);
}

.single-product .bto-delivery-details__body {
    padding: 0 13px 13px 54px;
    color: var(--bto-muted);
    font-size: 11px;
}

.single-product .bto-delivery-details__body ul {
    margin: 0 0 8px;
    padding-left: 17px;
}

.single-product .bto-delivery-details__body li + li {
    margin-top: 4px;
}

.single-product .bto-delivery-details__link {
    font-weight: 800;
    color: var(--bto-blue);
}

.single-product .product_meta {
    margin-top: 12px;
    padding-top: 12px;
}

/* Description moves below the complete purchase area. */
.single-product .bto-product-about {
    grid-column: 1 / -1;
    position: relative;
    margin-top: 52px;
    padding: clamp(24px, 3vw, 36px);
    border: 1px solid var(--bto-line);
    border-radius: 22px;
    background: #fff;
}

.single-product .bto-product-about__heading {
    margin-bottom: 18px;
}

.single-product .bto-product-about__heading h2 {
    margin: 3px 0 0;
    font-size: clamp(1.8rem, 2.5vw, 2.6rem);
}

.single-product .bto-product-about__content {
    position: relative;
    max-width: 900px;
    color: var(--bto-muted);
    font-size: 1rem;
    line-height: 1.72;
}

.single-product .bto-product-about__content.is-collapsible {
    max-height: 340px;
    overflow: hidden;
}

.single-product .bto-product-about__content.is-collapsible::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 95px;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(255,255,255,0), #fff 82%);
}

.single-product .bto-product-about__content.is-expanded {
    max-height: none;
    overflow: visible;
}

.single-product .bto-product-about__content.is-expanded::after {
    display: none;
}

.single-product .bto-product-about__content h2,
.single-product .bto-product-about__content h3,
.single-product .bto-product-about__content h4 {
    margin: 24px 0 8px;
    color: var(--bto-ink);
    font-size: 1.05rem;
}

.single-product .bto-product-about__content p {
    margin: 0 0 14px;
}

.single-product .bto-product-about__toggle {
    min-height: 42px;
    margin-top: 12px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0 15px;
    border: 0;
    border-radius: 10px;
    background: var(--bto-ink);
    color: #fff;
    font-weight: 850;
    cursor: pointer;
}

.single-product .bto-product-about__toggle[hidden] {
    display: none !important;
}

/* Description tab is no longer needed; remaining tabs, if any, stay compact. */
.single-product .woocommerce div.product .woocommerce-tabs {
    grid-column: 1 / -1;
    margin-top: 28px;
}

/* Related products use the same 12-loaded / 6-visible carousel as home. */
.single-product .bto-single-related {
    grid-column: 1 / -1;
    margin-top: 52px;
    padding-bottom: 4px;
    min-width: 0;
}

.single-product .bto-single-related__heading {
    margin-bottom: 20px;
}

.single-product .bto-single-related__heading h2 {
    margin: 3px 0 0;
    font-size: clamp(1.8rem, 2.5vw, 2.6rem);
}

.single-product .bto-single-related .bto-product-carousel__viewport {
    padding: 4px 4px 18px;
}

.single-product .bto-single-related .bto-product-grid--carousel li.product {
    min-height: 355px !important;
    padding-bottom: 12px !important;
}

.single-product .bto-single-related .bto-product-image-wrap {
    aspect-ratio: 1 / 1 !important;
}

.single-product .bto-single-related .woocommerce-loop-product__title {
    font-size: .82rem !important;
    line-height: 1.22 !important;
    min-height: 2.45em !important;
    max-height: 2.45em !important;
    overflow: hidden;
}

.single-product .bto-single-related .bto-card-category {
    font-size: 8px;
}

.single-product .bto-single-related .price {
    margin-top: auto !important;
    margin-bottom: 9px !important;
    font-size: 1rem !important;
}

.single-product .bto-single-related .bto-related-view {
    min-height: 36px !important;
    margin-top: 0 !important;
    padding: 0 12px !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    border-radius: 9px !important;
    background: var(--bto-blue) !important;
    color: #fff !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    text-transform: uppercase;
    letter-spacing: .02em;
}

.single-product .bto-single-related .bto-related-view::before {
    display: none !important;
}

.single-product .bto-single-related .bto-related-view:hover {
    background: var(--bto-purple) !important;
    color: #fff !important;
}

/* Do not allow the old WooCommerce related block to interfere if a plugin
   manually outputs one elsewhere. */
.single-product .related.products:not(.bto-single-related) {
    margin-top: 40px;
}

@media (max-width: 1000px) {
    .single-product .woocommerce div.product {
        grid-template-columns: minmax(0, 1fr) minmax(340px, .9fr);
        column-gap: 28px;
    }

    .single-product .bto-product-specs,
    .single-product .bto-product-reassurance {
        grid-template-columns: 1fr;
    }

    .single-product .bto-product-specs {
        gap: 7px;
    }
}

@media (max-width: 760px) {
    .single-product .woocommerce div.product {
        display: block;
    }

    .single-product .woocommerce div.product .summary {
        margin-top: 24px !important;
    }

    .single-product .bto-product-specs {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .single-product .bto-product-spec {
        display: block !important;
        padding: 9px !important;
        text-align: center;
    }

    .single-product .bto-product-spec__icon {
        margin: 0 auto 6px;
    }

    .single-product .bto-product-reassurance {
        grid-template-columns: 1fr;
    }

    .single-product .bto-product-about,
    .single-product .bto-single-related {
        margin-top: 36px;
    }

    .single-product .bto-product-about {
        padding: 22px 18px;
    }
}

@media (max-width: 480px) {
    .single-product .bto-product-specs {
        grid-template-columns: 1fr;
    }

    .single-product .bto-product-spec {
        display: flex !important;
        text-align: left;
    }

    .single-product .bto-product-spec__icon {
        margin: 0;
    }
}

/* =========================================================
   v1.0.46 — compact product accordions + rebuilt related rail
   ========================================================= */

/* About this toy now belongs in the purchase column, above the cart. */
.single-product .bto-product-about-accordion {
    margin: 0 0 14px;
    border: 1px solid var(--bto-line);
    border-radius: 13px;
    background: #fff;
    overflow: hidden;
}

.single-product .bto-product-about-accordion summary,
.single-product .bto-delivery-details summary {
    min-height: 58px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    list-style: none;
    cursor: pointer;
    user-select: none;
}

.single-product .bto-product-about-accordion summary::-webkit-details-marker,
.single-product .bto-delivery-details summary::-webkit-details-marker {
    display: none;
}

.single-product .bto-product-accordion__lead {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.single-product .bto-product-accordion__lead > span:last-child {
    min-width: 0;
}

.single-product .bto-product-accordion__lead strong,
.single-product .bto-product-accordion__lead small {
    display: block;
}

.single-product .bto-product-accordion__lead strong {
    color: var(--bto-ink);
    font-size: 12px;
    line-height: 1.2;
}

.single-product .bto-product-accordion__lead small {
    margin-top: 2px;
    color: var(--bto-muted);
    font-size: 9px;
    line-height: 1.25;
}

.single-product .bto-product-accordion__icon {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: #eef4ff;
    color: var(--bto-blue);
}

.single-product .bto-product-accordion__icon svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Shared + / - accordion control. */
.single-product .bto-product-accordion__toggle {
    position: relative;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border: 1px solid #d8e0ea;
    border-radius: 50%;
    background: #fff;
}

.single-product .bto-product-accordion__plus::before,
.single-product .bto-product-accordion__plus::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 2px;
    border-radius: 2px;
    background: var(--bto-ink);
    transform: translate(-50%, -50%);
    transition: transform .18s ease;
}

.single-product .bto-product-accordion__plus::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.single-product details[open] > summary .bto-product-accordion__plus::after {
    transform: translate(-50%, -50%) rotate(0deg);
}

.single-product .bto-product-about-accordion__body {
    max-height: 420px;
    overflow-y: auto;
    padding: 0 14px 15px 54px;
    border-top: 1px solid #edf1f5;
    color: var(--bto-muted);
    font-size: 12px;
    line-height: 1.65;
}

.single-product .bto-product-about-accordion__body p {
    margin: 12px 0;
}

.single-product .bto-product-about-accordion__body h2,
.single-product .bto-product-about-accordion__body h3,
.single-product .bto-product-about-accordion__body h4 {
    margin: 16px 0 6px;
    color: var(--bto-ink);
    font-size: 13px;
}

/* Old full-width About block is obsolete in .46. */
.single-product .bto-product-about {
    display: none !important;
}

/* Delivery accordion uses the same visual language. */
.single-product .bto-delivery-details summary {
    min-height: 58px;
}

.single-product .bto-delivery-details__chevron {
    display: none !important;
}

/* Related toys: completely independent card markup so WooCommerce product
   page/gallery CSS cannot stretch or clip the cards. */
.single-product .bto-single-related {
    grid-column: 1 / -1;
    min-width: 0;
    width: 100%;
    margin-top: 46px;
    padding: 0 0 10px;
}

.single-product .bto-single-related__heading {
    margin: 0 0 18px;
}

.single-product .bto-single-related__heading h2 {
    margin: 3px 0 0;
    color: var(--bto-ink);
    font-size: clamp(1.8rem, 2.5vw, 2.6rem);
}

.single-product .bto-related-carousel {
    width: 100%;
    min-width: 0;
}

.single-product .bto-related-carousel__viewport {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 3px 3px 14px;
}

.single-product .bto-related-carousel__track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 60px) / 6);
    gap: 12px;
    width: max-content;
    min-width: 100%;
}

.single-product .bto-related-card {
    position: relative;
    min-width: 0;
    width: 100%;
    min-height: 355px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #e3e8ef;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 4px 14px rgba(23,36,58,.04);
    scroll-snap-align: start;
}

.single-product .bto-related-card__media {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    display: grid;
    place-items: center;
    padding: 8px;
    background: #f8fafc;
    overflow: hidden;
}

.single-product .bto-related-card__image {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    margin: 0 !important;
    transform: none !important;
}

.single-product .bto-related-card__sale {
    position: absolute;
    z-index: 2;
    top: 9px;
    left: 9px;
    padding: 5px 8px;
    border-radius: 999px;
    background: var(--bto-pink);
    color: #fff;
    font-size: 9px;
    font-weight: 900;
}

.single-product .bto-related-card__body {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding: 11px;
}

.single-product .bto-related-card__title {
    min-height: 2.5em;
    max-height: 2.5em;
    overflow: hidden;
    color: var(--bto-ink);
    font-size: 12px;
    font-weight: 850;
    line-height: 1.25;
}

.single-product .bto-related-card__category {
    margin-top: 7px;
    overflow: hidden;
    color: var(--bto-blue);
    font-size: 8px;
    font-weight: 900;
    line-height: 1.2;
    text-transform: uppercase;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.single-product .bto-related-card__age {
    align-self: flex-start;
    margin-top: 7px;
    padding: 4px 7px;
    border-radius: 999px;
    background: #edf5ff;
    color: #3c6f9f;
    font-size: 8px;
    font-weight: 800;
}

.single-product .bto-related-card__bottom {
    margin-top: auto;
    padding-top: 12px;
}

.single-product .bto-related-card__price {
    min-height: 22px;
    color: var(--bto-ink);
    font-size: 15px;
    font-weight: 900;
}

.single-product .bto-related-card__price del {
    margin-right: 4px;
    color: #8c96a5;
    font-weight: 500;
}

.single-product .bto-related-card__price ins {
    color: var(--bto-pink);
    text-decoration: none;
}

.single-product .bto-related-card__button {
    width: 100%;
    min-height: 36px;
    margin-top: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    background: var(--bto-blue);
    color: #fff !important;
    font-size: 9px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .02em;
}

.single-product .bto-related-card__button:hover {
    background: var(--bto-purple);
}

/* Prevent v1.0.45 Woo product-card rules from touching the new cards. */
.single-product .bto-single-related .bto-product-grid--carousel,
.single-product .bto-single-related li.product,
.single-product .bto-single-related .bto-product-image-wrap,
.single-product .bto-single-related .woocommerce-loop-product__title,
.single-product .bto-single-related .bto-related-view {
    all: revert;
}

@media (max-width: 1000px) {
    .single-product .bto-related-carousel__track {
        grid-auto-columns: calc((100% - 24px) / 3);
    }
}

@media (max-width: 640px) {
    .single-product .bto-related-carousel__track {
        grid-auto-columns: calc((100% - 9px) / 2);
        gap: 9px;
    }

    .single-product .bto-related-card {
        min-height: 330px;
    }
}

/* =========================================================
   v1.0.47 — larger box text + simple six-card related row
   ========================================================= */

/* Raise text inside the spec / trust / accordion boxes by ~2pt. */
.single-product .bto-product-spec__copy strong {
    font-size: 16px;
}

.single-product .bto-product-spec__copy small {
    font-size: 12px;
}

.single-product .bto-reassurance-card strong {
    font-size: 14px;
}

.single-product .bto-reassurance-card small {
    font-size: 12px;
    line-height: 1.35;
}

.single-product .bto-product-accordion__lead strong,
.single-product .bto-delivery-details summary strong {
    font-size: 15px;
}

.single-product .bto-product-accordion__lead small,
.single-product .bto-delivery-details summary small {
    font-size: 12px;
    line-height: 1.3;
}

.single-product .bto-delivery-details__body {
    font-size: 13px;
    line-height: 1.55;
}

.single-product .bto-delivery-details__links {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 10px;
}

.single-product .bto-delivery-details__link {
    font-size: 13px;
}

/* Related products: one clean static row of six on desktop. */
.single-product .bto-related-carousel,
.single-product .bto-related-carousel__viewport,
.single-product .bto-related-carousel__track {
    display: none !important;
}

.single-product .bto-related-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
    width: 100%;
}

.single-product .bto-related-card {
    min-height: 360px;
}

.single-product .bto-related-card__title {
    font-size: 13px;
}

.single-product .bto-related-card__category {
    font-size: 9px;
}

.single-product .bto-related-card__age {
    font-size: 9px;
}

.single-product .bto-related-card__price {
    font-size: 16px;
}

.single-product .bto-related-card__button {
    font-size: 10px;
}

@media (max-width: 1100px) {
    .single-product .bto-related-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .single-product .bto-related-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }
}



/* =========================================================
   v1.0.48 — related product images use uncropped originals
   ========================================================= */

.single-product .bto-related-card__media {
    padding: 12px;
    background: #fff;
}

.single-product .bto-related-card__media .bto-related-card__image {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
}


/* =========================================================
   v1.0.49 — larger reassurance-card text
   ========================================================= */

.single-product .bto-reassurance-card strong {
    font-size: 19px;
    line-height: 1.2;
}

.single-product .bto-reassurance-card small {
    font-size: 15px;
    line-height: 1.35;
}


/* =========================================================
   v1.0.50 — tighter reassurance cards
   ========================================================= */

.single-product .bto-reassurance-card {
    align-items: flex-start;
    min-height: 0;
    padding: 11px 12px 10px;
}

.single-product .bto-reassurance-card__icon {
    margin-top: 1px;
    align-self: flex-start;
}

.single-product .bto-reassurance-card > span:last-child {
    min-width: 0;
    padding-top: 0;
}

.single-product .bto-reassurance-card strong {
    margin: 0;
    line-height: 1.08;
}

.single-product .bto-reassurance-card small {
    margin-top: 4px;
    line-height: 1.28;
}


/* =========================================================
   v1.0.51 — compact single reassurance strip
   ========================================================= */

.single-product .bto-product-reassurance {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    margin: 12px 0 0;
    overflow: hidden;
    border: 1px solid #dfe6ef;
    border-radius: 13px;
    background: #fff;
}

.single-product .bto-reassurance-card,
.single-product .bto-reassurance-card--delivery,
.single-product .bto-reassurance-card--secure,
.single-product .bto-reassurance-card--help {
    min-height: 64px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 13px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--bto-ink);
}

.single-product .bto-reassurance-card + .bto-reassurance-card {
    border-left: 1px solid #e4e9f0;
}

.single-product .bto-reassurance-card__icon {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    margin: 0;
    display: grid;
    place-items: center;
    border-radius: 50%;
}

.single-product .bto-reassurance-card--delivery .bto-reassurance-card__icon {
    background: #e8f3ff;
    color: #1769aa;
}

.single-product .bto-reassurance-card--secure .bto-reassurance-card__icon {
    background: #e9f7ee;
    color: #187443;
}

.single-product .bto-reassurance-card--help .bto-reassurance-card__icon {
    background: #f2ebff;
    color: #7141b8;
}

.single-product .bto-reassurance-card > span:last-child {
    min-width: 0;
    padding: 0;
}

.single-product .bto-reassurance-card strong {
    margin: 0;
    color: var(--bto-ink);
    font-size: 16px;
    line-height: 1.08;
    white-space: nowrap;
}

.single-product .bto-reassurance-card small {
    margin-top: 3px;
    color: var(--bto-muted);
    font-size: 12px;
    line-height: 1.2;
    white-space: nowrap;
}

@media (max-width: 1000px) {
    .single-product .bto-product-reassurance {
        grid-template-columns: 1fr;
    }

    .single-product .bto-reassurance-card + .bto-reassurance-card {
        border-left: 0;
        border-top: 1px solid #e4e9f0;
    }

    .single-product .bto-reassurance-card strong,
    .single-product .bto-reassurance-card small {
        white-space: normal;
    }
}


/* =========================================================
   v1.0.52 — reassurance icons use rounded squares
   ========================================================= */

.single-product .bto-reassurance-card__icon {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    aspect-ratio: 1 / 1;
    border-radius: 9px;
}


/* =========================================================
   v1.0.53 — clearly square reassurance icon tiles
   ========================================================= */

.single-product .bto-product-reassurance .bto-reassurance-card__icon {
    flex: 0 0 38px !important;
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 6px !important;
    display: grid !important;
    place-items: center !important;
    box-sizing: border-box !important;
}

.single-product .bto-product-reassurance .bto-reassurance-card__icon svg {
    display: block !important;
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    min-height: 20px !important;
    margin: 0 !important;
}


/* =========================================================
   v1.0.55 — rebalance single-product hero
   ========================================================= */

/* Reduce title dominance without making it feel small. */
.single-product .woocommerce div.product .product_title {
    font-size: clamp(1.95rem, 2.55vw, 3rem);
    line-height: 1.04;
    margin-bottom: 12px;
}

/* Give the gallery slightly less visual weight. */
.single-product .woocommerce div.product {
    grid-template-columns: minmax(0, .96fr) minmax(400px, 1.04fr);
    column-gap: clamp(38px, 4.5vw, 70px);
}

.single-product .woocommerce-product-gallery {
    max-width: 100%;
}

.single-product .woocommerce-product-gallery__wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
}

.single-product .woocommerce-product-gallery__image {
    display: flex !important;
    align-items: center;
    justify-content: center;
}

.single-product .woocommerce-product-gallery__image > a {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.single-product .woocommerce-product-gallery__image img {
    width: auto !important;
    max-width: 88% !important;
    max-height: 590px !important;
    height: auto !important;
    margin: 0 auto !important;
    object-fit: contain !important;
}

/* Keep the gallery panel itself generous, but not visually enormous. */
.single-product .woocommerce div.product div.images {
    padding: clamp(18px, 2vw, 28px);
}

@media (max-width: 1000px) {
    .single-product .woocommerce div.product {
        grid-template-columns: minmax(0, .95fr) minmax(340px, 1.05fr);
        column-gap: 28px;
    }

    .single-product .woocommerce-product-gallery__image img {
        max-width: 92% !important;
        max-height: 520px !important;
    }
}

@media (max-width: 760px) {
    .single-product .woocommerce div.product .product_title {
        font-size: clamp(1.8rem, 7vw, 2.4rem);
    }

    .single-product .woocommerce-product-gallery__image img {
        max-width: 96% !important;
        max-height: none !important;
    }
}


/* =========================================================
   v1.0.56 — clearly smaller product hero
   ========================================================= */

/* Make the title visibly smaller than .55. */
.single-product .woocommerce div.product .product_title {
    font-size: clamp(1.8rem, 2.15vw, 2.55rem) !important;
    line-height: 1.05 !important;
    margin-bottom: 12px !important;
}

/* Rebalance the columns and physically reduce the whole gallery panel. */
.single-product .woocommerce div.product {
    grid-template-columns: minmax(0, .88fr) minmax(420px, 1.12fr) !important;
    column-gap: clamp(42px, 5vw, 78px) !important;
}

.single-product .woocommerce div.product div.images {
    width: 88% !important;
    max-width: 570px !important;
    justify-self: start !important;
    padding: 18px !important;
    box-sizing: border-box !important;
}

.single-product .woocommerce-product-gallery__wrapper,
.single-product .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery__image > a {
    width: 100% !important;
    height: auto !important;
}

.single-product .woocommerce-product-gallery__image img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 82% !important;
    max-height: 500px !important;
    margin: 0 auto !important;
    object-fit: contain !important;
}

/* Keep sale badge anchored nicely after gallery shrink. */
.single-product .bto-product-sale-badge,
.single-product .bto-sale-badge {
    transform: none !important;
}

@media (max-width: 1100px) {
    .single-product .woocommerce div.product {
        grid-template-columns: minmax(0, .92fr) minmax(360px, 1.08fr) !important;
        column-gap: 30px !important;
    }

    .single-product .woocommerce div.product div.images {
        width: 94% !important;
        max-width: 520px !important;
    }

    .single-product .woocommerce-product-gallery__image img {
        max-width: 88% !important;
        max-height: 460px !important;
    }
}

@media (max-width: 760px) {
    .single-product .woocommerce div.product {
        display: block !important;
    }

    .single-product .woocommerce div.product div.images {
        width: 100% !important;
        max-width: none !important;
    }

    .single-product .woocommerce div.product .product_title {
        font-size: clamp(1.75rem, 7vw, 2.2rem) !important;
    }

    .single-product .woocommerce-product-gallery__image img {
        max-width: 94% !important;
        max-height: none !important;
    }
}


/* =========================================================
   v1.0.57 — target the ACTUAL custom BTO product gallery
   ========================================================= */

/* The single product uses .bto-gallery, not WooCommerce's stock gallery. */
.woocommerce div.product > .bto-gallery {
    width: 100% !important;
    max-width: 560px !important;
    justify-self: start !important;
}

.woocommerce div.product > .bto-gallery .bto-gallery-main {
    width: 100% !important;
    max-width: 560px !important;
    height: 560px !important;
    aspect-ratio: auto !important;
    padding: 18px !important;
    box-sizing: border-box !important;
}

.woocommerce div.product > .bto-gallery .bto-gallery-main img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    padding: 18px !important;
    margin: 0 !important;
    object-fit: contain !important;
    box-sizing: border-box !important;
}

/* Give more of the row to the purchase column. */
.woocommerce div.product {
    grid-template-columns: minmax(0, 560px) minmax(430px, 1fr) !important;
    column-gap: clamp(46px, 5vw, 82px) !important;
}

/* Concrete title size so the change is unmistakable. */
.woocommerce div.product .summary .product_title,
.woocommerce div.product h1.product_title {
    font-size: 46px !important;
    line-height: 1.04 !important;
    margin: 0 0 14px !important;
}

@media (max-width: 1180px) {
    .woocommerce div.product {
        grid-template-columns: minmax(0, 500px) minmax(380px, 1fr) !important;
        column-gap: 34px !important;
    }

    .woocommerce div.product > .bto-gallery {
        max-width: 500px !important;
    }

    .woocommerce div.product > .bto-gallery .bto-gallery-main {
        max-width: 500px !important;
        height: 500px !important;
    }

    .woocommerce div.product .summary .product_title,
    .woocommerce div.product h1.product_title {
        font-size: 40px !important;
    }
}

@media (max-width: 900px) {
    .woocommerce div.product {
        grid-template-columns: 1fr !important;
    }

    .woocommerce div.product > .bto-gallery {
        width: 100% !important;
        max-width: 620px !important;
        justify-self: center !important;
        margin: 0 auto !important;
    }

    .woocommerce div.product > .bto-gallery .bto-gallery-main {
        width: 100% !important;
        max-width: 620px !important;
        height: auto !important;
        aspect-ratio: 1 / 1 !important;
    }
}

@media (max-width: 640px) {
    .woocommerce div.product .summary .product_title,
    .woocommerce div.product h1.product_title {
        font-size: 34px !important;
    }
}


/* =========================================================
   v1.0.59 — read-only reviews accordion
   ========================================================= */

.single-product .bto-product-reviews-accordion {
    margin: 0 0 14px;
    overflow: hidden;
    border: 1px solid var(--bto-line);
    border-radius: 13px;
    background: #fff;
}

.single-product .bto-product-reviews-accordion summary {
    min-height: 58px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    list-style: none;
    cursor: pointer;
    user-select: none;
}

.single-product .bto-product-reviews-accordion summary::-webkit-details-marker {
    display: none;
}

.single-product .bto-product-accordion__icon--reviews {
    background: #fff3d8;
    color: #b47700;
}

.single-product .bto-product-accordion__icon--reviews svg {
    fill: none;
    stroke: currentColor;
}

.single-product .bto-product-reviews-accordion__summary-copy {
    min-width: 0;
}

.single-product .bto-product-reviews-accordion__summary-copy strong,
.single-product .bto-product-reviews-accordion__summary-copy small {
    display: block;
}

.single-product .bto-product-reviews-accordion__summary-copy strong {
    color: var(--bto-ink);
    font-size: 15px;
    line-height: 1.2;
}

.single-product .bto-product-reviews-accordion__summary-copy small {
    margin-top: 2px;
    color: var(--bto-muted);
    font-size: 12px;
    line-height: 1.25;
}

.single-product .bto-product-reviews-accordion__stars {
    color: #f2aa00;
    letter-spacing: 1px;
}

.single-product .bto-product-reviews-accordion__body {
    max-height: 430px;
    overflow-y: auto;
    padding: 2px 14px 14px 54px;
    border-top: 1px solid #edf1f5;
}

.single-product .bto-product-review {
    padding: 14px 0;
    border-bottom: 1px solid #edf1f5;
}

.single-product .bto-product-review:last-of-type {
    border-bottom: 0;
}

.single-product .bto-product-review__top {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.single-product .bto-product-review__author {
    color: var(--bto-ink);
    font-size: 13px;
}

.single-product .bto-product-review__verified {
    padding: 3px 7px;
    border-radius: 999px;
    background: #eaf7ee;
    color: #187443;
    font-size: 10px;
    font-weight: 800;
}

.single-product .bto-product-review time {
    margin-left: auto;
    color: var(--bto-muted);
    font-size: 10px;
}

.single-product .bto-product-review__rating {
    margin-top: 7px;
    color: #f2aa00;
    font-size: 14px;
    letter-spacing: 1px;
}

.single-product .bto-product-review__content {
    margin-top: 7px;
    color: var(--bto-muted);
    font-size: 12px;
    line-height: 1.55;
}

.single-product .bto-product-review__content p {
    margin: 0 0 8px;
}

.single-product .bto-product-review__content p:last-child {
    margin-bottom: 0;
}

.single-product .bto-product-reviews-accordion__note {
    margin: 10px 0 0;
    color: var(--bto-muted);
    font-size: 11px;
}

/* WooCommerce's default reviews/form are intentionally not rendered. */
.single-product #review_form_wrapper,
.single-product .comment-form-rating,
.single-product .woocommerce-Reviews-title {
    display: none;
}


/* =========================================================
   v1.0.60 — variable-product selector layout
   ========================================================= */

/* Remove WooCommerce's table-like variation presentation. */
.single-product form.variations_form table.variations {
    width: 100% !important;
    margin: 14px 0 16px !important;
    border: 0 !important;
    border-collapse: separate !important;
}

.single-product form.variations_form table.variations tbody {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    width: 100%;
}

/* Each variation attribute becomes its own tidy field. */
.single-product form.variations_form table.variations tr {
    min-width: 0;
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 6px;
    margin: 0 !important;
    padding: 0 !important;
}

/* One selector = full width. For an odd number, the final selector spans both. */
.single-product form.variations_form table.variations tr:only-child,
.single-product form.variations_form table.variations tr:last-child:nth-child(odd) {
    grid-column: 1 / -1;
}

.single-product form.variations_form table.variations th,
.single-product form.variations_form table.variations td {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    border: 0 !important;
    text-align: left !important;
}

.single-product form.variations_form table.variations .label {
    margin: 0 !important;
}

.single-product form.variations_form table.variations .label label {
    display: block;
    margin: 0 0 2px;
    color: var(--bto-ink);
    font-size: 14px;
    font-weight: 900;
    line-height: 1.2;
}

.single-product form.variations_form table.variations .value {
    position: relative;
}

.single-product form.variations_form table.variations select {
    width: 100% !important;
    min-height: 48px;
    margin: 0 !important;
    padding: 0 42px 0 14px !important;
    border: 1px solid #d9e2ec !important;
    border-radius: 12px !important;
    background-color: #fff !important;
    color: var(--bto-ink) !important;
    font-size: 14px !important;
    box-shadow: none !important;
}

.single-product form.variations_form table.variations select:focus {
    border-color: var(--bto-blue) !important;
    outline: 2px solid rgba(33, 133, 242, .12);
    outline-offset: 1px;
}

.single-product form.variations_form .reset_variations {
    display: inline-block !important;
    margin: 7px 0 0 !important;
    color: var(--bto-blue) !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
}

/* Keep variation price/availability compact before the buying controls. */
.single-product form.variations_form .single_variation_wrap {
    width: 100%;
}

.single-product form.variations_form .woocommerce-variation {
    margin: 0 0 10px;
}

.single-product form.variations_form .woocommerce-variation-price {
    margin-bottom: 8px;
}

/* Match simple-product quantity + button layout. */
.single-product form.variations_form .woocommerce-variation-add-to-cart {
    display: grid !important;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 12px;
    align-items: stretch;
    width: 100%;
    margin-top: 10px;
}

.single-product form.variations_form .woocommerce-variation-add-to-cart .quantity {
    width: 58px !important;
    margin: 0 !important;
}

.single-product form.variations_form .woocommerce-variation-add-to-cart .qty {
    width: 58px !important;
    height: 48px !important;
    min-height: 48px !important;
    padding: 0 8px !important;
    border: 1px solid #d9e2ec !important;
    border-radius: 12px !important;
    text-align: center;
    box-sizing: border-box;
}

.single-product form.variations_form .woocommerce-variation-add-to-cart .single_add_to_cart_button {
    width: 100% !important;
    min-height: 48px !important;
    margin: 0 !important;
    border-radius: 12px !important;
}

/* Disabled state remains visually obvious before valid options are chosen. */
.single-product form.variations_form .woocommerce-variation-add-to-cart .single_add_to_cart_button.disabled {
    opacity: .55;
    cursor: not-allowed;
}

@media (max-width: 640px) {
    .single-product form.variations_form table.variations tbody {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .single-product form.variations_form table.variations tr {
        grid-column: 1 / -1 !important;
    }
}


/* =========================================================
   v1.0.61 — tighter variation spacing + remove Clear link
   ========================================================= */

.single-product form.variations_form table.variations {
    margin: 6px 0 8px !important;
}

.single-product form.variations_form table.variations tbody {
    gap: 10px;
}

.single-product form.variations_form .reset_variations {
    display: none !important;
}

.single-product form.variations_form .woocommerce-variation {
    margin: 0 0 4px !important;
}

.single-product form.variations_form .woocommerce-variation-add-to-cart {
    margin-top: 4px !important;
}

.single-product form.variations_form {
    margin-top: 0 !important;
    margin-bottom: 8px !important;
}


/* =========================================================
   v1.0.62 — tighten variable-product vertical rhythm
   ========================================================= */

/* Pull variation selectors closer to the About accordion. */
.single-product .summary form.variations_form {
    margin-top: -2px !important;
    margin-bottom: 2px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.single-product .summary form.variations_form table.variations {
    margin: 0 0 6px !important;
}

.single-product .summary form.variations_form table.variations tbody {
    row-gap: 8px !important;
}

/* WooCommerce can reserve space here even when no variation message/price
   needs to be shown. Collapse that space unless content is present. */
.single-product .summary form.variations_form .single_variation_wrap {
    margin: 0 !important;
    padding: 0 !important;
}

.single-product .summary form.variations_form .single_variation {
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.single-product .summary form.variations_form .woocommerce-variation:empty,
.single-product .summary form.variations_form .single_variation:empty {
    display: none !important;
}

.single-product .summary form.variations_form .woocommerce-variation-add-to-cart {
    margin-top: 2px !important;
    padding-top: 0 !important;
}

/* Keep the trust strip close to the buying controls. */
.single-product .summary .bto-product-reassurance {
    margin-top: 10px !important;
}


/* =========================================================
   v1.0.63 — compact inline add-to-basket notices
   ========================================================= */

.single-product .bto-inline-cart-notices {
    margin: 8px 0 0;
}

.single-product .bto-inline-cart-notices:empty {
    display: none;
}

.single-product .bto-inline-cart-notices .woocommerce-message,
.single-product .bto-inline-cart-notices .woocommerce-info,
.single-product .bto-inline-cart-notices .woocommerce-error {
    min-height: 0;
    margin: 0 !important;
    padding: 10px 12px !important;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    border: 1px solid #d7eadc !important;
    border-radius: 10px !important;
    background: #f2fbf5 !important;
    color: var(--bto-ink) !important;
    box-shadow: none !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
}

.single-product .bto-inline-cart-notices .woocommerce-message::before,
.single-product .bto-inline-cart-notices .woocommerce-info::before,
.single-product .bto-inline-cart-notices .woocommerce-error::before {
    display: none !important;
}

.single-product .bto-inline-cart-notice__text {
    min-width: 0;
    display: flex;
    align-items: baseline;
    gap: 7px;
}

.single-product .bto-inline-cart-notice__text strong {
    color: #187443;
    font-size: 13px;
    white-space: nowrap;
}

.single-product .bto-inline-cart-notice__text span {
    color: var(--bto-muted);
}

.single-product .bto-inline-cart-notice__link {
    flex: 0 0 auto;
    color: var(--bto-blue) !important;
    font-weight: 900;
    white-space: nowrap;
}

.single-product .bto-inline-cart-notices .woocommerce-error {
    border-color: #f1d3d3 !important;
    background: #fff5f5 !important;
}

.single-product .bto-inline-cart-notices .woocommerce-error li {
    margin: 0 !important;
}

@media (max-width: 640px) {
    .single-product .bto-inline-cart-notices .woocommerce-message,
    .single-product .bto-inline-cart-notices .woocommerce-info,
    .single-product .bto-inline-cart-notices .woocommerce-error {
        align-items: flex-start;
    }

    .single-product .bto-inline-cart-notice__text {
        display: block;
    }

    .single-product .bto-inline-cart-notice__text strong,
    .single-product .bto-inline-cart-notice__text span {
        display: block;
    }
}


/* =========================================================
   v1.0.64 — right-align View basket in inline notice
   ========================================================= */

.single-product .bto-inline-cart-notice__link {
    margin-left: auto !important;
    text-align: right !important;
}


/* =========================================================
   v1.0.65 — hard-lock View basket to far right
   ========================================================= */

.single-product .bto-inline-cart-notices {
    width: 100% !important;
}

.single-product .bto-inline-cart-notices .woocommerce-message {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) max-content !important;
    align-items: center !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.single-product .bto-inline-cart-notice__text {
    min-width: 0 !important;
    justify-self: start !important;
}

.single-product .bto-inline-cart-notice__link {
    float: none !important;
    position: static !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-self: end !important;
    align-self: center !important;
    text-align: right !important;
    white-space: nowrap !important;
}


/* =========================================================
   v1.0.66 — tighter, even add-to-basket confirmation
   ========================================================= */

.single-product .bto-inline-cart-notices .woocommerce-message {
    min-height: 58px !important;
    padding: 7px 8px 7px 13px !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    column-gap: 14px !important;
}

.single-product .bto-inline-cart-notices .woocommerce-message .button,
.single-product .bto-inline-cart-notices .woocommerce-message a.button,
.single-product .bto-inline-cart-notice__link {
    min-height: 44px !important;
    height: 44px !important;
    display: block !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 18px !important;
    border-radius: 10px !important;
    box-sizing: border-box !important;
}

.single-product .bto-inline-cart-notices .woocommerce-message > :first-child {
    align-self: center !important;
}


/* =========================================================
   v1.0.67 — compact success strip + proper View basket button
   ========================================================= */

.single-product .bto-inline-cart-notices .woocommerce-message {
    min-height: 52px !important;
    padding: 6px 7px 6px 12px !important;
    border: 1px solid #cfe6d6 !important;
    border-top: 1px solid #cfe6d6 !important;
    border-right: 1px solid #cfe6d6 !important;
    border-bottom: 1px solid #cfe6d6 !important;
    border-left: 1px solid #cfe6d6 !important;
    border-radius: 10px !important;
    background: #f3fbf5 !important;
    box-shadow: none !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    column-gap: 12px !important;
}

.single-product .bto-inline-cart-notice__text {
    display: flex !important;
    align-items: baseline !important;
    gap: 7px !important;
    min-width: 0 !important;
}

.single-product .bto-inline-cart-notice__text strong {
    color: #187443 !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
}

.single-product .bto-inline-cart-notice__text span {
    color: var(--bto-muted) !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
}

.single-product .bto-inline-cart-notice__link {
    min-width: 96px !important;
    min-height: 38px !important;
    height: 38px !important;
    padding: 0 15px !important;
    display: block !important;
    align-items: center !important;
    justify-content: center !important;
    justify-self: end !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 9px !important;
    background: var(--bto-blue) !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    white-space: nowrap !important;
}

.single-product .bto-inline-cart-notice__link:hover,
.single-product .bto-inline-cart-notice__link:focus {
    background: var(--bto-purple) !important;
    color: #fff !important;
}

@media (max-width: 640px) {
    .single-product .bto-inline-cart-notices .woocommerce-message {
        grid-template-columns: 1fr auto !important;
    }

    .single-product .bto-inline-cart-notice__text {
        display: block !important;
    }
}


/* =========================================================
   v1.0.68 — genuinely centre the View basket button
   ========================================================= */

.single-product .bto-inline-cart-notices .woocommerce-message {
    min-height: 0 !important;
    height: auto !important;
    padding: 6px 7px 6px 12px !important;
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    column-gap: 12px !important;
    overflow: hidden !important;
}

.single-product .bto-inline-cart-notice__text {
    align-self: center !important;
    margin: 0 !important;
    padding: 0 !important;
}

.single-product .bto-inline-cart-notice__link {
    align-self: center !important;
    justify-self: end !important;
    min-height: 38px !important;
    height: 38px !important;
    margin: 0 !important;
    padding: 0 15px !important;
    box-sizing: border-box !important;
    transform: none !important;
    top: auto !important;
    bottom: auto !important;
}


/* =========================================================
   v1.0.69 — own the add-to-basket confirmation layout
   ========================================================= */

/* Neutralise WooCommerce's notice layout completely. */
.single-product .bto-inline-cart-notices .woocommerce-message {
    display: block !important;
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
}

.single-product .bto-inline-cart-notices .woocommerce-message::before,
.single-product .bto-inline-cart-notices .woocommerce-message::after {
    display: none !important;
    content: none !important;
}

/* Our inner confirmation owns all spacing and alignment. */
.single-product .bto-cart-confirmation {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 52px;
    padding: 6px 7px 6px 12px;
    border: 1px solid #cfe6d6;
    border-radius: 10px;
    background: #f3fbf5;
    box-sizing: border-box;
}

.single-product .bto-cart-confirmation__copy {
    min-width: 0;
    display: flex;
    align-items: baseline;
    gap: 7px;
    margin: 0;
    padding: 0;
}

.single-product .bto-cart-confirmation__copy strong {
    margin: 0;
    color: #187443;
    font-size: 13px;
    line-height: 1.2;
    white-space: nowrap;
}

.single-product .bto-cart-confirmation__copy span {
    margin: 0;
    color: var(--bto-muted);
    font-size: 12px;
    line-height: 1.2;
}

.single-product .bto-cart-confirmation__button {
    flex: 0 0 auto;
    width: auto !important;
    min-width: 96px !important;
    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    display: block !important;
    align-items: center !important;
    justify-content: center !important;
    position: static !important;
    float: none !important;
    inset: auto !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 15px !important;
    border: 0 !important;
    border-radius: 9px !important;
    background: var(--bto-blue) !important;
    color: #fff !important;
    box-shadow: none !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
}

.single-product .bto-cart-confirmation__button:hover,
.single-product .bto-cart-confirmation__button:focus {
    background: var(--bto-purple) !important;
    color: #fff !important;
}

@media (max-width: 640px) {
    .single-product .bto-cart-confirmation {
        gap: 10px;
    }

    .single-product .bto-cart-confirmation__copy {
        display: block;
    }

    .single-product .bto-cart-confirmation__copy strong,
    .single-product .bto-cart-confirmation__copy span {
        display: block;
    }
}

/* =========================================================
   v1.0.70 — rebuilt BTO basket
   ========================================================= */

.woocommerce-cart .bto-content-layout--narrow {
    max-width: var(--bto-container);
}

.woocommerce-cart .bto-content-layout {
    padding-top: 52px;
    padding-bottom: 80px;
}

.woocommerce-cart .bto-page-header {
    margin-bottom: 24px;
}

.woocommerce-cart .bto-page-header h1 {
    margin: 0;
    font-size: clamp(2.4rem, 3.6vw, 3.6rem);
    line-height: 1;
}

.woocommerce-cart .bto-entry-content {
    color: var(--bto-ink);
}

.woocommerce-cart .woocommerce {
    width: 100%;
}

.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper {
    margin-bottom: 16px;
}

.bto-cart-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(340px, .75fr);
    gap: clamp(28px, 3.5vw, 48px);
    align-items: start;
}

.bto-cart-products,
.bto-cart-summary {
    min-width: 0;
}

.bto-cart-section-heading,
.bto-cart-summary__heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.bto-cart-section-heading h2,
.bto-cart-summary__heading h2 {
    margin: 3px 0 0;
    color: var(--bto-ink);
    font-size: clamp(1.55rem, 2vw, 2.1rem);
    line-height: 1.08;
}

.bto-cart-item-count {
    flex: 0 0 auto;
    padding: 6px 10px;
    border-radius: 999px;
    background: #eef5ff;
    color: var(--bto-blue);
    font-size: 11px;
    font-weight: 900;
}

.bto-cart-form {
    margin: 0;
}

.bto-cart-items {
    overflow: hidden;
    border: 1px solid var(--bto-line);
    border-radius: 18px;
    background: #fff;
}

.bto-cart-item {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 18px;
    padding: 18px;
    border-top: 1px solid var(--bto-line);
}

.bto-cart-item:first-child {
    border-top: 0;
}

.bto-cart-item__media {
    width: 110px;
    height: 110px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 13px;
    background: #f8fafc;
}

.bto-cart-item__media a {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
}

.bto-cart-item__image {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    padding: 7px;
    margin: 0 !important;
    object-fit: contain !important;
    box-sizing: border-box;
}

.bto-cart-item__details {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 18px;
}

.bto-cart-item__name-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.bto-cart-item__name {
    display: inline-block;
    color: var(--bto-ink);
    font-size: 16px;
    font-weight: 900;
    line-height: 1.25;
}

.bto-cart-item__name:hover {
    color: var(--bto-blue);
}

.bto-cart-item__variation {
    margin-top: 6px;
    color: var(--bto-muted);
    font-size: 12px;
}

.bto-cart-item__variation dl.variation {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 12px;
    margin: 0;
}

.bto-cart-item__variation dl.variation dt,
.bto-cart-item__variation dl.variation dd {
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.bto-cart-item__variation dl.variation dt {
    font-weight: 850;
}

.bto-cart-item__variation dl.variation dd {
    margin-right: 10px !important;
}

.bto-cart-item__variation p {
    display: inline;
    margin: 0;
}

.bto-cart-item__remove {
    flex: 0 0 30px;
    width: 30px !important;
    height: 30px !important;
    display: grid !important;
    place-items: center;
    border: 1px solid #f0d2d2;
    border-radius: 50%;
    background: #fff6f6 !important;
    color: #d43b3b !important;
    font-size: 20px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
}

.bto-cart-item__remove:hover {
    border-color: #e8baba;
    background: #ffecec !important;
    color: #b82121 !important;
}

.bto-cart-item__meta-row {
    display: grid;
    grid-template-columns: minmax(100px, .9fr) 120px minmax(110px, .9fr);
    gap: 16px;
    align-items: end;
}

.bto-cart-item__meta-row small {
    display: block;
    margin-bottom: 5px;
    color: var(--bto-muted);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.bto-cart-item__meta-row strong {
    color: var(--bto-ink);
    font-size: 15px;
}

.bto-cart-item__subtotal {
    text-align: right;
}

.bto-cart-item__quantity .quantity {
    margin: 0 !important;
}

.bto-cart-item__quantity .qty {
    width: 74px !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 0 8px !important;
    border: 1px solid #d9e2ec !important;
    border-radius: 10px !important;
    text-align: center;
    box-sizing: border-box;
}

.bto-cart-form.is-updating {
    opacity: .68;
    pointer-events: none;
    transition: opacity .15s ease;
}

.bto-cart-actions {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-top: 14px;
}

.bto-cart-continue {
    padding-top: 10px;
    color: var(--bto-blue);
    font-size: 12px;
    font-weight: 850;
}

.bto-cart-coupon {
    width: min(330px, 100%);
    border: 1px solid var(--bto-line);
    border-radius: 11px;
    background: #fff;
}

.bto-cart-coupon summary {
    position: relative;
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 0 12px;
    list-style: none;
    cursor: pointer;
    color: var(--bto-ink);
    font-size: 12px;
    font-weight: 850;
}

.bto-cart-coupon summary::-webkit-details-marker {
    display: none;
}

.bto-cart-coupon__plus {
    position: relative;
    width: 22px;
    height: 22px;
    border: 1px solid #d8e1ec;
    border-radius: 50%;
}

.bto-cart-coupon__plus::before,
.bto-cart-coupon__plus::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 8px;
    height: 1.5px;
    border-radius: 2px;
    background: var(--bto-ink);
    transform: translate(-50%, -50%);
}

.bto-cart-coupon__plus::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.bto-cart-coupon[open] .bto-cart-coupon__plus::after {
    transform: translate(-50%, -50%);
}

.bto-cart-coupon__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    padding: 0 10px 10px;
}

.bto-cart-coupon__body .input-text {
    min-width: 0;
    height: 40px;
    padding: 0 10px !important;
}

.bto-cart-coupon__button {
    min-height: 40px !important;
    padding: 0 14px !important;
    border-radius: 9px !important;
    background: var(--bto-blue) !important;
    color: #fff !important;
    font-weight: 850 !important;
}

.bto-cart-summary-wrap {
    min-width: 0;
}

.bto-cart-summary {
    padding: 22px;
    border: 1px solid var(--bto-line);
    border-radius: 18px;
    background: #fbfcfe;
}

.bto-cart-summary__heading {
    display: block;
    margin-bottom: 16px;
}

.bto-cart-summary__rows {
    overflow: hidden;
    border: 1px solid var(--bto-line);
    border-radius: 13px;
    background: #fff;
}

.bto-cart-summary__row,
.bto-cart-summary__shipping {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 12px;
    border-top: 1px solid var(--bto-line);
    box-sizing: border-box;
}

.bto-cart-summary__rows > :first-child {
    border-top: 0;
}

.bto-cart-summary__row > span,
.bto-cart-summary__shipping-label {
    color: var(--bto-muted);
    font-size: 12px;
    font-weight: 750;
}

.bto-cart-summary__row > strong {
    color: var(--bto-ink);
    font-size: 13px;
    text-align: right;
}

.bto-cart-summary__shipping {
    align-items: flex-start;
}

.bto-cart-summary__shipping-label {
    padding-top: 2px;
}

.bto-cart-summary__shipping-methods {
    min-width: 0;
    flex: 1;
    text-align: right;
    font-size: 12px;
}

.bto-cart-summary__shipping-methods ul#shipping_method {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.bto-cart-summary__shipping-methods ul#shipping_method li {
    margin: 0 !important;
    padding: 0 !important;
}

.bto-cart-summary__shipping-methods .woocommerce-shipping-destination,
.bto-cart-summary__shipping-methods .woocommerce-shipping-calculator {
    margin: 6px 0 0 !important;
    font-size: 11px;
    line-height: 1.35;
}

.bto-cart-summary__shipping-methods .shipping-calculator-button {
    color: var(--bto-blue);
    font-weight: 800;
}

.bto-cart-summary__total {
    min-height: 58px;
    background: #f7f9fc;
}

.bto-cart-summary__total > span {
    color: var(--bto-ink);
    font-size: 15px;
    font-weight: 900;
}

.bto-cart-summary__total > strong,
.bto-cart-summary__total .woocommerce-Price-amount {
    color: var(--bto-ink);
    font-size: 20px;
    font-weight: 950;
}

.bto-cart-free-delivery {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
    padding: 10px 11px;
    border: 1px solid #cfe9d7;
    border-radius: 11px;
    background: #f1faf4;
}

.bto-cart-free-delivery--neutral {
    border-color: #dce7f4;
    background: #f3f8ff;
}

.bto-cart-free-delivery__icon {
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: #dff4e5;
    color: #13733e;
    font-size: 13px;
    font-weight: 950;
}

.bto-cart-free-delivery--neutral .bto-cart-free-delivery__icon {
    background: #e3efff;
    color: #1769aa;
}

.bto-cart-free-delivery strong,
.bto-cart-free-delivery small {
    display: block;
}

.bto-cart-free-delivery strong {
    color: var(--bto-ink);
    font-size: 12px;
}

.bto-cart-free-delivery small {
    margin-top: 2px;
    color: var(--bto-muted);
    font-size: 10px;
}

.bto-cart-checkout {
    padding: 0 !important;
    margin: 14px 0 0 !important;
}

.bto-cart-checkout .checkout-button {
    width: 100%;
    min-height: 52px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    padding: 0 18px !important;
    border-radius: 11px !important;
    background: var(--bto-yellow) !important;
    color: var(--bto-ink) !important;
    font-size: 15px !important;
    font-weight: 950 !important;
}

.bto-cart-checkout .checkout-button:hover {
    background: #ffd04b !important;
    color: var(--bto-ink) !important;
}

.bto-cart-trust {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    margin-top: 14px;
}

.bto-cart-trust > div {
    min-height: 42px;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px 8px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #fff;
}

.bto-cart-trust__icon {
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: #eef5ff;
    color: var(--bto-blue);
}

.bto-cart-trust__icon svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.bto-cart-trust strong,
.bto-cart-trust small {
    display: block;
}

.bto-cart-trust strong {
    color: var(--bto-ink);
    font-size: 11px;
}

.bto-cart-trust small {
    margin-top: 1px;
    color: var(--bto-muted);
    font-size: 9px;
}

.woocommerce-cart .cart-collaterals,
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-cart .cross-sells {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
}

/* Woo classic cart table is replaced by the BTO card layout. */
.woocommerce-cart table.shop_table.cart {
    display: none !important;
}

@media (max-width: 980px) {
    .bto-cart-layout {
        grid-template-columns: 1fr;
    }

    .bto-cart-summary {
        max-width: none;
    }
}

@media (max-width: 680px) {
    .woocommerce-cart .bto-content-layout {
        padding-top: 34px;
        padding-bottom: 60px;
    }

    .bto-cart-item {
        grid-template-columns: 82px minmax(0, 1fr);
        gap: 12px;
        padding: 13px;
    }

    .bto-cart-item__media {
        width: 82px;
        height: 82px;
    }

    .bto-cart-item__meta-row {
        grid-template-columns: 1fr 88px;
        gap: 10px;
    }

    .bto-cart-item__subtotal {
        grid-column: 1 / -1;
        display: flex;
        align-items: center;
        justify-content: space-between;
        text-align: left;
        padding-top: 8px;
        border-top: 1px solid var(--bto-line);
    }

    .bto-cart-item__subtotal small {
        margin: 0;
    }

    .bto-cart-actions {
        display: block;
    }

    .bto-cart-coupon {
        margin-top: 10px;
        width: 100%;
    }

    .bto-cart-section-heading {
        align-items: center;
    }
}



/* =========================================================
   v1.0.71 — basket row alignment + stronger continue button
   ========================================================= */

/* One horizontal commercial row: image | product | price | qty | subtotal | remove */
.bto-cart-item {
    grid-template-columns: 96px minmax(240px, 1fr) 92px 92px 106px 32px;
    gap: 14px;
    align-items: center;
    padding: 16px;
}

.bto-cart-item__media {
    width: 96px;
    height: 96px;
}

.bto-cart-item__info {
    min-width: 0;
    align-self: center;
}

.bto-cart-item__unit-price,
.bto-cart-item__quantity,
.bto-cart-item__subtotal {
    min-width: 0;
    align-self: center;
}

.bto-cart-item__unit-price,
.bto-cart-item__subtotal {
    text-align: right;
}

.bto-cart-item__quantity {
    text-align: center;
}

.bto-cart-item__unit-price small,
.bto-cart-item__quantity small,
.bto-cart-item__subtotal small {
    display: block;
    margin: 0 0 5px;
    color: var(--bto-muted);
    font-size: 9px;
    font-weight: 850;
    line-height: 1.1;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.bto-cart-item__unit-price strong,
.bto-cart-item__subtotal strong {
    color: var(--bto-ink);
    font-size: 14px;
    white-space: nowrap;
}

.bto-cart-item__quantity .quantity {
    display: flex;
    justify-content: center;
    margin: 0 !important;
}

.bto-cart-item__quantity .qty {
    width: 62px !important;
}

.bto-cart-item__remove-wrap {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

/* Old v1.0.70 nested layout no longer exists. */
.bto-cart-item__details,
.bto-cart-item__name-row,
.bto-cart-item__meta-row {
    display: contents;
}

/* Continue shopping should read as an intentional secondary action. */
.bto-cart-continue {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 15px;
    border: 1px solid #cbdcf3;
    border-radius: 10px;
    background: #f5f9ff;
    color: var(--bto-blue) !important;
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
}

.bto-cart-continue:hover {
    border-color: #b7d1f2;
    background: #eaf4ff;
    color: var(--bto-blue) !important;
}

/* Shipping should not present a paid option once a free rate exists. */
.bto-cart-summary__shipping-methods #shipping_method li[hidden] {
    display: none !important;
}

.bto-cart-summary__shipping-methods #shipping_method li {
    text-align: right;
}

.bto-cart-summary__shipping-methods #shipping_method input[type="radio"] {
    margin-right: 5px;
}

/* If free is the only visible method, reduce unnecessary radio-list feel. */
.bto-cart-summary__shipping-methods #shipping_method li:only-child {
    font-weight: 850;
    color: #187443;
}

@media (max-width: 1120px) {
    .bto-cart-item {
        grid-template-columns: 88px minmax(200px, 1fr) 80px 80px 94px 30px;
        gap: 10px;
    }

    .bto-cart-item__media {
        width: 88px;
        height: 88px;
    }
}

@media (max-width: 760px) {
    .bto-cart-item {
        grid-template-columns: 78px minmax(0, 1fr) 30px;
        gap: 10px;
        align-items: start;
    }

    .bto-cart-item__media {
        width: 78px;
        height: 78px;
        grid-row: 1 / span 2;
    }

    .bto-cart-item__info {
        grid-column: 2;
    }

    .bto-cart-item__remove-wrap {
        grid-column: 3;
        grid-row: 1;
    }

    .bto-cart-item__unit-price,
    .bto-cart-item__quantity,
    .bto-cart-item__subtotal {
        grid-row: 2;
        text-align: left;
    }

    .bto-cart-item__unit-price {
        grid-column: 2;
    }

    .bto-cart-item__quantity {
        grid-column: 2;
        margin-left: 82px;
        text-align: left;
    }

    .bto-cart-item__quantity .quantity {
        justify-content: flex-start;
    }

    .bto-cart-item__subtotal {
        grid-column: 2 / 4;
        justify-self: end;
        text-align: right;
    }
}

/* =========================================================
   v1.0.72 — rebuilt BTO checkout
   ========================================================= */

.woocommerce-checkout .bto-content-layout {
    padding-top: 48px;
    padding-bottom: 80px;
}

.woocommerce-checkout .bto-page-header {
    margin-bottom: 18px;
}

.woocommerce-checkout .bto-page-header h1 {
    margin: 0;
    font-size: clamp(2.45rem, 3.6vw, 3.55rem);
    line-height: 1;
}

/* Coupon: compact and secondary, not the first thing shoppers see. */
.woocommerce-checkout .woocommerce-form-coupon-toggle {
    margin: 0 0 16px;
}

.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
    min-height: 46px;
    margin: 0 !important;
    padding: 0 14px !important;
    display: flex;
    align-items: center;
    border: 1px solid #dce5ef !important;
    border-left: 1px solid #dce5ef !important;
    border-radius: 11px !important;
    background: #f7f9fc !important;
    color: var(--bto-muted) !important;
    font-size: 12px !important;
    box-shadow: none !important;
}

.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before {
    display: none !important;
}

.woocommerce-checkout .woocommerce-form-coupon-toggle .showcoupon {
    margin-left: 4px;
    color: var(--bto-blue);
    font-weight: 900;
}

.woocommerce-checkout form.checkout_coupon {
    max-width: 480px;
    margin: -7px 0 18px !important;
    padding: 12px !important;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    border: 1px solid #dce5ef !important;
    border-radius: 11px !important;
    background: #fff;
}

.woocommerce-checkout form.checkout_coupon p {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
}

.woocommerce-checkout form.checkout_coupon .form-row-first {
    grid-column: 1;
}

.woocommerce-checkout form.checkout_coupon .form-row-last {
    grid-column: 2;
}

.woocommerce-checkout form.checkout_coupon input {
    min-height: 42px;
}

.woocommerce-checkout form.checkout_coupon button {
    min-height: 42px;
    padding: 0 16px !important;
    border-radius: 9px !important;
    background: var(--bto-blue) !important;
    color: #fff !important;
    font-weight: 900 !important;
}

/* Top reassurance strip. */
.bto-checkout-trust {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
    margin-bottom: 24px;
    border: 1px solid var(--bto-line);
    border-radius: 13px;
    background: #fff;
}

.bto-checkout-trust > div {
    min-height: 64px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 13px;
}

.bto-checkout-trust > div + div {
    border-left: 1px solid var(--bto-line);
}

.bto-checkout-trust__icon {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: #edf5ff;
    color: var(--bto-blue);
}

.bto-checkout-trust > div:nth-child(2) .bto-checkout-trust__icon {
    background: #eaf7ee;
    color: #187443;
}

.bto-checkout-trust > div:nth-child(3) .bto-checkout-trust__icon {
    background: #f3ecff;
    color: #7141b8;
}

.bto-checkout-trust__icon svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.bto-checkout-trust strong,
.bto-checkout-trust small {
    display: block;
}

.bto-checkout-trust strong {
    color: var(--bto-ink);
    font-size: 13px;
    line-height: 1.2;
}

.bto-checkout-trust small {
    margin-top: 2px;
    color: var(--bto-muted);
    font-size: 10px;
    line-height: 1.25;
}

/* Two-column checkout. */
.bto-checkout-form {
    margin: 0;
}

.bto-checkout-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(370px, .75fr);
    gap: clamp(30px, 4vw, 52px);
    align-items: start;
}

.bto-checkout-details,
.bto-checkout-order {
    min-width: 0;
}

.bto-checkout-section-heading {
    margin-bottom: 16px;
}

.bto-checkout-section-heading h2 {
    margin: 3px 0 0;
    color: var(--bto-ink);
    font-size: clamp(1.7rem, 2.2vw, 2.25rem);
    line-height: 1.05;
}

.bto-checkout-section-heading p {
    margin: 6px 0 0;
    max-width: 620px;
    color: var(--bto-muted);
    font-size: 12px;
    line-height: 1.45;
}

/* Customer details no longer form separate side-by-side Woo columns. */
.bto-checkout-customer-details {
    width: 100% !important;
    margin: 0 !important;
}

.bto-checkout-customer-details::before,
.bto-checkout-customer-details::after {
    display: none !important;
}

.bto-checkout-customer-details .col-1,
.bto-checkout-customer-details .col-2 {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
}

.bto-checkout-customer-details .col-1 {
    padding: 22px;
    border: 1px solid var(--bto-line);
    border-radius: 18px;
    background: #fff;
}

.bto-checkout-customer-details .col-2 {
    margin-top: 14px !important;
}

/* Hide redundant default Billing details heading; our section heading already does the job. */
.bto-checkout-customer-details .woocommerce-billing-fields > h3 {
    display: none;
}

.bto-checkout-customer-details .woocommerce-billing-fields__field-wrapper {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 16px;
}

.bto-checkout-customer-details .form-row {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.bto-checkout-customer-details .form-row-wide,
.bto-checkout-customer-details #billing_company_field,
.bto-checkout-customer-details #billing_country_field,
.bto-checkout-customer-details #billing_address_1_field,
.bto-checkout-customer-details #billing_address_2_field,
.bto-checkout-customer-details #billing_city_field,
.bto-checkout-customer-details #billing_state_field,
.bto-checkout-customer-details #billing_postcode_field {
    grid-column: 1 / -1;
}

/* Phone + email read nicely side-by-side at desktop. */
.bto-checkout-customer-details #billing_phone_field {
    grid-column: 1;
}

.bto-checkout-customer-details #billing_email_field {
    grid-column: 2;
}

.bto-checkout-customer-details label {
    display: block;
    margin: 0 0 6px;
    color: var(--bto-ink);
    font-size: 12px;
    font-weight: 850;
    line-height: 1.25;
}

.bto-checkout-customer-details .optional {
    color: var(--bto-muted);
    font-size: 10px;
    font-weight: 500;
}

.bto-checkout-customer-details input.input-text,
.bto-checkout-customer-details textarea,
.bto-checkout-customer-details .select2-selection,
.bto-checkout-customer-details select {
    width: 100% !important;
    min-height: 46px;
    border: 1px solid #d9e2ec !important;
    border-radius: 10px !important;
    background: #fff !important;
    box-shadow: none !important;
    box-sizing: border-box;
}

.bto-checkout-customer-details input.input-text {
    padding: 0 12px !important;
}

.bto-checkout-customer-details textarea {
    min-height: 90px;
    padding: 10px 12px !important;
    resize: vertical;
}

.bto-checkout-customer-details .select2-container {
    width: 100% !important;
}

.bto-checkout-customer-details .select2-selection {
    display: flex;
    align-items: center;
}

.bto-checkout-customer-details .select2-selection__rendered {
    padding-left: 12px !important;
    line-height: 44px !important;
}

.bto-checkout-customer-details input:focus,
.bto-checkout-customer-details textarea:focus {
    border-color: var(--bto-blue) !important;
    outline: 2px solid rgba(33, 133, 242, .10);
    outline-offset: 1px;
}

/* "Deliver to a different address" is a compact secondary panel. */
.bto-checkout-customer-details .woocommerce-shipping-fields {
    padding: 16px 18px;
    border: 1px solid var(--bto-line);
    border-radius: 14px;
    background: #fbfcfe;
}

.bto-checkout-customer-details .woocommerce-shipping-fields #ship-to-different-address {
    margin: 0 !important;
    font-size: 14px;
    line-height: 1.3;
}

.bto-checkout-customer-details .woocommerce-shipping-fields #ship-to-different-address label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    cursor: pointer;
}

.bto-checkout-customer-details .shipping_address {
    margin-top: 16px;
}

.bto-checkout-customer-details .woocommerce-additional-fields {
    margin-top: 14px;
    padding: 16px 18px;
    border: 1px solid var(--bto-line);
    border-radius: 14px;
    background: #fff;
}

.bto-checkout-customer-details .woocommerce-additional-fields > h3 {
    margin: 0 0 10px;
    color: var(--bto-ink);
    font-size: 14px;
}

/* Right-hand order card. */
.bto-checkout-order {
    padding: 22px;
    border: 1px solid var(--bto-line);
    border-radius: 18px;
    background: #fbfcfe;
}

.bto-checkout-section-heading--order {
    margin-bottom: 14px;
}

.bto-checkout-review {
    width: 100%;
}

/* Order table. */
.bto-checkout-review table.shop_table {
    width: 100% !important;
    margin: 0 0 14px !important;
    overflow: hidden;
    border: 1px solid var(--bto-line) !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border-radius: 13px !important;
    background: #fff;
}

.bto-checkout-review table.shop_table th,
.bto-checkout-review table.shop_table td {
    padding: 11px 12px !important;
    border-top: 1px solid var(--bto-line) !important;
    border-right: 0 !important;
    border-left: 0 !important;
    font-size: 12px;
    vertical-align: top;
}

.bto-checkout-review table.shop_table thead th {
    border-top: 0 !important;
    color: var(--bto-muted);
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.bto-checkout-review table.shop_table th:last-child,
.bto-checkout-review table.shop_table td:last-child {
    text-align: right;
}

.bto-checkout-review .product-name {
    color: var(--bto-ink);
    font-weight: 800;
    line-height: 1.35;
}

.bto-checkout-review .product-quantity {
    color: var(--bto-muted);
}

.bto-checkout-review dl.variation {
    margin: 5px 0 0 !important;
    color: var(--bto-muted);
    font-size: 10px;
    font-weight: 500;
}

.bto-checkout-review dl.variation dt,
.bto-checkout-review dl.variation dd {
    float: none !important;
    display: inline !important;
    margin: 0 4px 0 0 !important;
    padding: 0 !important;
}

.bto-checkout-review dl.variation dd p {
    display: inline;
}

.bto-checkout-review tr.cart-subtotal th,
.bto-checkout-review tr.order-total th,
.bto-checkout-review tr.woocommerce-shipping-totals th {
    color: var(--bto-ink);
    font-weight: 900;
}

.bto-checkout-review tr.order-total th,
.bto-checkout-review tr.order-total td {
    background: #f7f9fc;
    font-size: 14px !important;
}

.bto-checkout-review tr.order-total .woocommerce-Price-amount {
    color: var(--bto-ink);
    font-size: 18px;
    font-weight: 950;
}

/* Checkout shipping. */
.bto-checkout-review #shipping_method {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.bto-checkout-review #shipping_method li {
    margin: 0 !important;
    padding: 0 !important;
    text-align: right;
}

.bto-checkout-review #shipping_method li[hidden] {
    display: none !important;
}

.bto-checkout-review #shipping_method.bto-free-shipping-available li:not([hidden]) {
    color: #187443;
    font-weight: 850;
}

/* Payment belongs inside the same order card. */
.bto-checkout-review #payment {
    margin-top: 14px;
    overflow: hidden;
    border: 1px solid var(--bto-line) !important;
    border-radius: 13px !important;
    background: #fff !important;
}

.bto-checkout-review #payment ul.payment_methods {
    margin: 0 !important;
    padding: 0 !important;
    border-bottom: 1px solid var(--bto-line) !important;
}

.bto-checkout-review #payment ul.payment_methods li {
    margin: 0 !important;
    padding: 13px !important;
}

/* v1.0.83 — slightly reduce the PayPal payment-method logo so it sits more neatly in the payment card, while keeping the full official wordmark visible.
   Keep the gateway text in the markup for accessibility. */
.bto-checkout-review #payment .payment_method_ppcp-gateway > label {
    position: relative;
    display: block !important;
    align-items: center;
    min-height: 44px;
    padding-left: 0;
    color: transparent !important;
    font-size: 0 !important;
    width: 172px;
    line-height: 1 !important;
    white-space: nowrap;
}

.bto-checkout-review #payment .payment_method_ppcp-gateway > label::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    width: 172px;
    height: 44px;
    transform: translateY(-50%);
    background-image: url('https://newsroom.paypal-corp.com/file.php/177465/pp_h_rgb_logo_tn.jpg?thumbnail=asset');
    background-repeat: no-repeat;
    background-position: left center;
    background-size: 158px 105px;
}

.bto-checkout-review #payment .payment_method_ppcp-gateway > label img {
    display: none !important;
}

.bto-checkout-review #payment .payment_box {
    margin: 10px 0 0 !important;
    border-radius: 9px !important;
    background: #f7f9fc !important;
    color: var(--bto-muted) !important;
    font-size: 11px !important;
}

.bto-checkout-review #payment .payment_box::before {
    display: none !important;
}

.bto-checkout-review #payment .woocommerce-info,
.bto-checkout-review #payment .woocommerce-notice {
    margin: 0 !important;
    padding: 13px !important;
    border: 0 !important;
    border-left: 3px solid var(--bto-blue) !important;
    border-radius: 9px !important;
    background: #f3f8ff !important;
    color: var(--bto-muted) !important;
    font-size: 12px !important;
    line-height: 1.55 !important;
    box-shadow: none !important;
}

.bto-checkout-review #payment .place-order {
    margin: 0 !important;
    padding: 14px !important;
}

.bto-checkout-review #payment .woocommerce-privacy-policy-text,
.bto-checkout-review #payment .woocommerce-terms-and-conditions-wrapper {
    color: var(--bto-muted);
    font-size: 10px;
    line-height: 1.45;
}

/* v1.0.81 — keep the native Place order button full width when WooCommerce needs it,
   but do not force its display state. PayPal Payments must be able to hide this
   button and replace it with its Smart Button on classic checkout. */
.bto-checkout-review #place_order {
    width: calc(100% + 28px) !important;
    max-width: none !important;
    min-height: 52px !important;
    margin: 12px -14px 0 !important;
    text-align: center !important;
    border-radius: 11px !important;
    background: var(--bto-yellow) !important;
    color: var(--bto-ink) !important;
    font-size: 15px !important;
    font-weight: 950 !important;
}

.bto-checkout-review #place_order:hover {
    background: #ffd04b !important;
    color: var(--bto-ink) !important;
}

/* Validation messages. */
.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-info {
    border-radius: 10px;
}

@media (max-width: 980px) {
    .bto-checkout-layout {
        grid-template-columns: 1fr;
    }

    .bto-checkout-order {
        order: 2;
    }
}

@media (max-width: 680px) {
    .woocommerce-checkout .bto-content-layout {
        padding-top: 34px;
        padding-bottom: 60px;
    }

    .bto-checkout-trust {
        grid-template-columns: 1fr;
    }

    .bto-checkout-trust > div + div {
        border-left: 0;
        border-top: 1px solid var(--bto-line);
    }

    .bto-checkout-customer-details .woocommerce-billing-fields__field-wrapper {
        grid-template-columns: 1fr;
    }

    .bto-checkout-customer-details .form-row,
    .bto-checkout-customer-details #billing_phone_field,
    .bto-checkout-customer-details #billing_email_field {
        grid-column: 1 / -1 !important;
    }

    .bto-checkout-customer-details .col-1,
    .bto-checkout-order {
        padding: 16px;
    }
}



/* =========================================================
   v1.0.73 — remove legacy checkout grid conflict
   ========================================================= */

.woocommerce-checkout form.checkout.bto-checkout-form {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.woocommerce-checkout form.checkout.bto-checkout-form .bto-checkout-layout {
    width: 100% !important;
    max-width: none !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1.42fr) minmax(390px, .78fr) !important;
    gap: clamp(32px, 4vw, 54px) !important;
    align-items: start !important;
}

.woocommerce-checkout form.checkout.bto-checkout-form #customer_details {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    grid-column: auto !important;
    margin: 0 !important;
}

.woocommerce-checkout form.checkout.bto-checkout-form #order_review {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    grid-column: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.woocommerce-checkout .bto-checkout-details,
.woocommerce-checkout .bto-checkout-order {
    width: 100% !important;
    max-width: none !important;
}

.woocommerce-checkout .bto-checkout-customer-details .col-1,
.woocommerce-checkout .bto-checkout-customer-details .col-2 {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
}

.woocommerce-checkout .bto-checkout-customer-details .woocommerce-billing-fields,
.woocommerce-checkout .bto-checkout-customer-details .woocommerce-billing-fields__field-wrapper {
    width: 100% !important;
    max-width: none !important;
}

/* Keep the right-hand order column useful but not oversized. */
.woocommerce-checkout .bto-checkout-order {
    position: relative;
}

/* Stop global form-row widths from shrinking fields inside our CSS grid. */
.woocommerce-checkout .bto-checkout-customer-details .woocommerce-billing-fields__field-wrapper > .form-row {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
}

@media (max-width: 980px) {
    .woocommerce-checkout form.checkout.bto-checkout-form .bto-checkout-layout {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }
}


/* =========================================================
   v1.0.74 — wider checkout + sticky order summary
   ========================================================= */

/* Use more of the available desktop width. */
.woocommerce-checkout .bto-content-layout,
.woocommerce-checkout .bto-content-layout--narrow {
    width: min(1480px, calc(100% - 48px)) !important;
    max-width: 1480px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Secure checkout should lead the page without overpowering it. */
.woocommerce-checkout .bto-page-header h1 {
    font-size: clamp(2.2rem, 3vw, 3.05rem) !important;
    line-height: 1.02 !important;
}

/* More practical 60/40-ish desktop split. */
.woocommerce-checkout form.checkout.bto-checkout-form .bto-checkout-layout {
    grid-template-columns: minmax(0, 1.48fr) minmax(430px, .92fr) !important;
    gap: clamp(36px, 4vw, 64px) !important;
}

/* Let the customer form breathe. */
.woocommerce-checkout .bto-checkout-details {
    min-width: 0 !important;
}

.woocommerce-checkout .bto-checkout-customer-details .col-1 {
    padding: 24px !important;
}

/* Keep the order visible while the customer completes longer address forms. */
@media (min-width: 981px) {
    .woocommerce-checkout .bto-checkout-order {
        position: sticky !important;
        top: 28px !important;
        align-self: start !important;
    }

    body.admin-bar.woocommerce-checkout .bto-checkout-order {
        top: 60px !important;
    }
}

/* Give the order summary more breathing room. */
.woocommerce-checkout .bto-checkout-order {
    padding: 24px !important;
}

.woocommerce-checkout .bto-checkout-review table.shop_table th,
.woocommerce-checkout .bto-checkout-review table.shop_table td {
    padding: 12px 13px !important;
}

.woocommerce-checkout .bto-checkout-review .product-name {
    font-size: 12px !important;
    line-height: 1.4 !important;
}

/* Make Total the clearest financial line in the summary. */
.woocommerce-checkout .bto-checkout-review tr.order-total th,
.woocommerce-checkout .bto-checkout-review tr.order-total td {
    padding-top: 14px !important;
    padding-bottom: 14px !important;
    background: #f3f6fa !important;
    border-top: 2px solid #dfe6ef !important;
}

.woocommerce-checkout .bto-checkout-review tr.order-total th {
    font-size: 14px !important;
    font-weight: 950 !important;
}

.woocommerce-checkout .bto-checkout-review tr.order-total td,
.woocommerce-checkout .bto-checkout-review tr.order-total .woocommerce-Price-amount {
    font-size: 20px !important;
    font-weight: 950 !important;
}

/* Slightly stronger hierarchy for the order-side heading. */
.woocommerce-checkout .bto-checkout-section-heading--order h2 {
    font-size: clamp(1.8rem, 2vw, 2.25rem) !important;
}

/* Keep the top reassurance strip aligned with the wider checkout. */
.woocommerce-checkout .bto-checkout-trust {
    width: 100% !important;
}

/* On medium widths, reduce the right column before stacking. */
@media (max-width: 1180px) and (min-width: 981px) {
    .woocommerce-checkout form.checkout.bto-checkout-form .bto-checkout-layout {
        grid-template-columns: minmax(0, 1.35fr) minmax(390px, .85fr) !important;
        gap: 32px !important;
    }
}

@media (max-width: 980px) {
    .woocommerce-checkout .bto-content-layout,
    .woocommerce-checkout .bto-content-layout--narrow {
        width: min(100% - 28px, 920px) !important;
    }

    .woocommerce-checkout .bto-checkout-order {
        position: static !important;
        top: auto !important;
    }
}


/* =========================================================
   v1.0.75 — final checkout order-line refinements
   ========================================================= */

.woocommerce-checkout .bto-checkout-product {
    min-width: 0;
}

.woocommerce-checkout .bto-checkout-product__title-row {
    display: flex;
    align-items: baseline;
    gap: 7px;
}

.woocommerce-checkout .bto-checkout-product__name {
    min-width: 0;
    color: var(--bto-ink);
    font-size: 12px;
    font-weight: 850;
    line-height: 1.35;
}

.woocommerce-checkout .bto-checkout-product__qty {
    flex: 0 0 auto;
    color: var(--bto-muted);
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}

.woocommerce-checkout .bto-checkout-product__variations {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 3px 5px;
    margin-top: 4px;
    color: var(--bto-muted);
    font-size: 10px;
    line-height: 1.35;
}

.woocommerce-checkout .bto-checkout-product__variations strong {
    color: #627087;
    font-weight: 800;
}

.woocommerce-checkout .bto-checkout-product__dot {
    color: #9ba6b5;
}

/* The custom BTO review row replaces Woo's default variation dl. */
.woocommerce-checkout .bto-checkout-review .bto-checkout-product dl.variation {
    display: none !important;
}


/* =========================================================
   v1.0.84 — custom order received / thank-you page
   ========================================================= */

.woocommerce-order-received .bto-page-content,
.woocommerce-view-order .bto-page-content {
    padding-top: clamp(34px, 4vw, 54px);
    padding-bottom: clamp(68px, 7vw, 96px);
}

.bto-thankyou-page {
    display: grid;
    gap: 30px;
}

.bto-thankyou-hero {
    padding: clamp(28px, 4vw, 42px);
    border: 1px solid var(--bto-line);
    border-radius: 28px;
    background: linear-gradient(135deg, #fff9ed 0%, #fff 55%, #eef7ff 100%);
    box-shadow: var(--bto-shadow);
}

.bto-thankyou-hero--failed {
    background: linear-gradient(135deg, #fff5f6 0%, #fff 100%);
}

.bto-thankyou-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
    gap: 24px;
    align-items: center;
}

.bto-thankyou-hero h1 {
    margin-bottom: 14px;
    font-size: clamp(2.2rem, 4vw, 4.4rem);
}

.bto-thankyou-hero p {
    max-width: 760px;
    color: var(--bto-muted);
    font-size: 1.05rem;
    margin-bottom: 0;
}

.bto-thankyou-highlight {
    padding: 22px;
    border-radius: 22px;
    background: #fff;
    border: 1px solid var(--bto-line);
}

.bto-thankyou-highlight__top {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
}

.bto-thankyou-highlight__top strong,
.bto-thankyou-highlight__meta strong {
    display: block;
    line-height: 1.2;
}

.bto-thankyou-highlight__top small,
.bto-thankyou-highlight__meta > div > span {
    display: block;
    color: var(--bto-muted);
    font-size: 13px;
    font-weight: 700;
}

.bto-thankyou-highlight__icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #e8f7df;
    color: var(--bto-green);
    font-size: 24px;
    font-weight: 900;
    flex: 0 0 48px;
}

.bto-thankyou-highlight__meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.bto-thankyou-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, .72fr);
    gap: clamp(24px, 3.2vw, 38px);
    align-items: start;
}

.bto-thankyou-main,
.bto-thankyou-side {
    display: grid;
    gap: 24px;
}

.bto-thankyou-card {
    padding: 24px;
    border-radius: 24px;
    background: #fff;
    border: 1px solid var(--bto-line);
    box-shadow: var(--bto-shadow);
}

.bto-thankyou-card__head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 20px;
}

.bto-thankyou-card__head .bto-eyebrow {
    margin-bottom: 10px;
}

.bto-thankyou-card__head h2 {
    font-size: clamp(1.5rem, 2.2vw, 2.35rem);
}

.bto-thankyou-facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.bto-thankyou-fact {
    padding: 18px;
    border-radius: 18px;
    border: 1px solid var(--bto-line);
    background: #f9fbfd;
}

.bto-thankyou-fact > span {
    display: block;
    color: var(--bto-muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: 8px;
}

.bto-thankyou-fact strong {
    display: block;
    line-height: 1.35;
    font-size: 1rem;
    word-break: break-word;
}

/* v1.0.85 — keep WooCommerce currency symbols and values together on thank-you page. */
.bto-thankyou-page .woocommerce-Price-amount,
.bto-thankyou-page .woocommerce-Price-amount bdi,
.bto-thankyou-page .woocommerce-Price-currencySymbol {
    display: inline !important;
    white-space: nowrap !important;
}

.bto-thankyou-items {
    display: grid;
    gap: 14px;
}

.bto-thankyou-item {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
    padding: 16px 0;
    border-top: 1px solid var(--bto-line);
}

.bto-thankyou-item:first-child {
    border-top: 0;
    padding-top: 0;
}

.bto-thankyou-item__copy strong {
    display: block;
    font-size: 1.03rem;
    line-height: 1.35;
}

.bto-thankyou-item__meta,
.bto-thankyou-item__copy .wc-item-meta {
    margin-top: 6px;
    color: var(--bto-muted);
    font-size: 14px;
}

.bto-thankyou-item__copy .wc-item-meta p,
.bto-thankyou-item__copy .wc-item-meta li,
.bto-thankyou-item__copy .wc-item-meta dd,
.bto-thankyou-item__copy .wc-item-meta dt {
    display: inline;
    margin: 0;
}

.bto-thankyou-item__totals {
    text-align: right;
    white-space: nowrap;
}

.bto-thankyou-item__totals span {
    display: block;
    color: var(--bto-muted);
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 4px;
}

.bto-thankyou-item__totals strong {
    display: block;
    font-size: 1rem;
}

.bto-thankyou-totals {
    margin-top: 16px;
    padding-top: 18px;
    border-top: 1px solid var(--bto-line);
    display: grid;
    gap: 10px;
}

.bto-thankyou-totals > div {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: baseline;
}

.bto-thankyou-totals > div span {
    color: var(--bto-muted);
    font-weight: 700;
}

.bto-thankyou-totals > div strong {
    text-align: right;
}

.bto-thankyou-totals .is-grand-total {
    margin-top: 6px;
    padding-top: 12px;
    border-top: 1px solid var(--bto-line);
}

.bto-thankyou-totals .is-grand-total span,
.bto-thankyou-totals .is-grand-total strong {
    color: var(--bto-ink);
    font-size: 1.08rem;
    font-weight: 900;
}

.bto-thankyou-address-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.bto-thankyou-address {
    padding: 18px;
    border-radius: 18px;
    background: #f9fbfd;
    border: 1px solid var(--bto-line);
}

.bto-thankyou-address h3 {
    margin: 0 0 12px;
    font-size: 1.2rem;
}

.bto-thankyou-address address {
    font-style: normal;
    color: var(--bto-ink);
    line-height: 1.75;
}

.bto-thankyou-address a {
    color: var(--bto-blue-dark);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.bto-thankyou-steps {
    list-style: none;
    counter-reset: step;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 16px;
}

.bto-thankyou-steps li {
    position: relative;
    padding-left: 54px;
    min-height: 40px;
}

.bto-thankyou-steps li::before {
    counter-increment: step;
    content: counter(step);
    position: absolute;
    left: 0;
    top: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--bto-yellow);
    color: var(--bto-ink);
    font-weight: 900;
}

.bto-thankyou-steps strong,
.bto-thankyou-support-list strong {
    display: block;
    margin-bottom: 4px;
}

.bto-thankyou-steps span {
    display: block;
    color: var(--bto-muted);
}

.bto-thankyou-support-list {
    list-style: none;
    margin: 0 0 18px;
    padding: 0;
    display: grid;
    gap: 12px;
}

.bto-thankyou-support-list li {
    display: grid;
    grid-template-columns: 24px 1fr;
    gap: 10px;
    align-items: start;
    color: var(--bto-ink);
}

.bto-thankyou-support-list span {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #e8f7df;
    color: var(--bto-green);
    font-weight: 900;
    font-size: 12px;
}

.bto-thankyou-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.bto-thankyou-actions .bto-btn,
.bto-thankyou-actions .woocommerce a.button {
    min-width: 190px;
}

.woocommerce-order-received .woocommerce-order,
.woocommerce-order-received .woocommerce-order-overview,
.woocommerce-order-received .woocommerce-order-details,
.woocommerce-order-received .woocommerce-customer-details,
.woocommerce-order-received .woocommerce-thankyou-order-received {
    display: none !important;
}

@media (min-width: 981px) {
    .bto-thankyou-side {
        position: sticky;
        top: 28px;
        align-self: start;
    }

    body.admin-bar .bto-thankyou-side {
        top: 60px;
    }
}

@media (max-width: 1100px) {
    .bto-thankyou-layout,
    .bto-thankyou-hero__inner {
        grid-template-columns: 1fr;
    }

    .bto-thankyou-facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .bto-thankyou-hero,
    .bto-thankyou-card {
        padding: 18px;
        border-radius: 20px;
    }

    .bto-thankyou-facts,
    .bto-thankyou-address-grid,
    .bto-thankyou-highlight__meta {
        grid-template-columns: 1fr;
    }

    .bto-thankyou-item {
        flex-direction: column;
    }

    .bto-thankyou-item__totals {
        text-align: left;
    }

    .bto-thankyou-actions {
        flex-direction: column;
    }

    .bto-thankyou-actions .bto-btn {
        width: 100%;
        min-width: 0;
    }
}


/* =========================================================
   v1.0.86 — robust My Account layout
   WooCommerce outputs a notices wrapper before the account
   navigation/content. Give each child an explicit grid area so
   notices cannot push the navigation/content into the wrong columns.
   ========================================================= */

.woocommerce-account .bto-content-layout--narrow {
    max-width: 1280px;
}

.woocommerce-account .woocommerce {
    display: grid !important;
    grid-template-columns: 235px minmax(0, 1fr) !important;
    grid-template-areas:
        "notices notices"
        "nav content" !important;
    gap: 24px 34px !important;
    align-items: start !important;
    width: 100% !important;
}

.woocommerce-account .woocommerce > .woocommerce-notices-wrapper {
    grid-area: notices !important;
    width: 100% !important;
    min-width: 0 !important;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
    grid-area: nav !important;
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

.woocommerce-account .woocommerce-MyAccount-content {
    grid-area: content !important;
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
    background: #fff;
    box-shadow: 0 12px 32px rgba(30,48,82,.07);
}

.woocommerce-account .woocommerce-MyAccount-navigation li a {
    padding: 14px 16px;
    font-size: 14px;
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
    background: var(--bto-blue) !important;
    color: #fff !important;
}

.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-info,
.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-message,
.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-error,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-error {
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 22px !important;
    padding: 18px 20px !important;
    line-height: 1.55 !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info .button,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message .button {
    float: none !important;
    margin: 0 14px 0 0 !important;
    vertical-align: middle;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
    width: 100% !important;
    margin: 0 !important;
    background: #fff;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table th,
.woocommerce-account .woocommerce-MyAccount-content table.shop_table td {
    padding: 14px 16px !important;
    vertical-align: middle;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions .button {
    min-height: 38px !important;
    padding: 0 14px !important;
    font-size: 12px !important;
}

@media (max-width: 820px) {
    .woocommerce-account .woocommerce {
        grid-template-columns: 1fr !important;
        grid-template-areas:
            "notices"
            "nav"
            "content" !important;
        gap: 20px !important;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation ul {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .woocommerce-account .woocommerce-MyAccount-navigation li a {
        border-top: 1px solid var(--bto-line) !important;
        border-left: 1px solid var(--bto-line) !important;
    }
}

@media (max-width: 520px) {
    .woocommerce-account .woocommerce-MyAccount-navigation ul {
        grid-template-columns: 1fr;
    }

    .woocommerce-account .woocommerce-MyAccount-content .woocommerce-info .button,
    .woocommerce-account .woocommerce-MyAccount-content .woocommerce-message .button {
        display: flex !important;
        width: 100% !important;
        margin: 0 0 12px !important;
    }
}


/* =========================================================
   v1.0.87 — My Account: Addresses + Account details
   ========================================================= */

/* Address book ------------------------------------------------ */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses.col2-set {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 22px !important;
    width: 100% !important;
    margin: 26px 0 0 !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses .col-1,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses .col-2 {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid var(--bto-line) !important;
    border-radius: 20px !important;
    background: #fff !important;
    overflow: hidden !important;
    box-shadow: 0 12px 32px rgba(30,48,82,.07);
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title.title {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    margin: 0 !important;
    padding: 18px 20px !important;
    border-bottom: 1px solid var(--bto-line) !important;
    background: #f9fbfd !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title h2 {
    float: none !important;
    margin: 0 !important;
    font-size: clamp(1.35rem, 2vw, 1.8rem) !important;
    line-height: 1.1 !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title .edit {
    float: none !important;
    flex: 0 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 38px !important;
    padding: 0 14px !important;
    border: 1px solid #d9e2ed !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: var(--bto-blue-dark) !important;
    font-size: 12px !important;
    font-weight: 850 !important;
    text-decoration: none !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title .edit:hover {
    border-color: var(--bto-blue) !important;
    background: var(--bto-sky) !important;
    color: var(--bto-blue-dark) !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address address {
    min-height: 170px;
    margin: 0 !important;
    padding: 20px !important;
    background: #fff !important;
    color: var(--bto-ink) !important;
    font-style: normal !important;
    line-height: 1.75 !important;
}

/* Edit billing/shipping address forms ------------------------- */
.woocommerce-account .woocommerce-MyAccount-content form .woocommerce-address-fields,
.woocommerce-account .woocommerce-MyAccount-content form .woocommerce-address-fields__field-wrapper {
    width: 100% !important;
}

.woocommerce-account .woocommerce-MyAccount-content form .woocommerce-address-fields__field-wrapper {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px 20px !important;
    padding: 24px !important;
    border: 1px solid var(--bto-line) !important;
    border-radius: 20px !important;
    background: #fff !important;
    box-shadow: 0 12px 32px rgba(30,48,82,.07);
}

.woocommerce-account .woocommerce-MyAccount-content form .woocommerce-address-fields__field-wrapper .form-row {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

.woocommerce-account .woocommerce-MyAccount-content form .woocommerce-address-fields__field-wrapper .form-row-wide,
.woocommerce-account .woocommerce-MyAccount-content form .woocommerce-address-fields__field-wrapper #billing_company_field,
.woocommerce-account .woocommerce-MyAccount-content form .woocommerce-address-fields__field-wrapper #billing_country_field,
.woocommerce-account .woocommerce-MyAccount-content form .woocommerce-address-fields__field-wrapper #billing_address_1_field,
.woocommerce-account .woocommerce-MyAccount-content form .woocommerce-address-fields__field-wrapper #billing_address_2_field,
.woocommerce-account .woocommerce-MyAccount-content form .woocommerce-address-fields__field-wrapper #shipping_company_field,
.woocommerce-account .woocommerce-MyAccount-content form .woocommerce-address-fields__field-wrapper #shipping_country_field,
.woocommerce-account .woocommerce-MyAccount-content form .woocommerce-address-fields__field-wrapper #shipping_address_1_field,
.woocommerce-account .woocommerce-MyAccount-content form .woocommerce-address-fields__field-wrapper #shipping_address_2_field {
    grid-column: 1 / -1 !important;
}

.woocommerce-account .woocommerce-MyAccount-content form .woocommerce-address-fields > p:last-child {
    margin-top: 18px !important;
}

.woocommerce-account .woocommerce-MyAccount-content form .woocommerce-address-fields .button {
    min-width: 170px !important;
}

/* Account details -------------------------------------------- */
.woocommerce-account .woocommerce-MyAccount-content form.woocommerce-EditAccountForm,
.woocommerce-account .woocommerce-MyAccount-content form.edit-account {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px 20px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 26px !important;
    border: 1px solid var(--bto-line) !important;
    border-radius: 20px !important;
    background: #fff !important;
    box-shadow: 0 12px 32px rgba(30,48,82,.07);
}

.woocommerce-account .woocommerce-MyAccount-content form.edit-account > .form-row,
.woocommerce-account .woocommerce-MyAccount-content form.woocommerce-EditAccountForm > .form-row {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

.woocommerce-account .woocommerce-MyAccount-content form.edit-account > .form-row-wide,
.woocommerce-account .woocommerce-MyAccount-content form.woocommerce-EditAccountForm > .form-row-wide,
.woocommerce-account .woocommerce-MyAccount-content form.edit-account > fieldset,
.woocommerce-account .woocommerce-MyAccount-content form.woocommerce-EditAccountForm > fieldset,
.woocommerce-account .woocommerce-MyAccount-content form.edit-account > p:last-child,
.woocommerce-account .woocommerce-MyAccount-content form.woocommerce-EditAccountForm > p:last-child,
.woocommerce-account .woocommerce-MyAccount-content form.edit-account > button,
.woocommerce-account .woocommerce-MyAccount-content form.woocommerce-EditAccountForm > button {
    grid-column: 1 / -1 !important;
}

.woocommerce-account .woocommerce-MyAccount-content form.edit-account em,
.woocommerce-account .woocommerce-MyAccount-content form.woocommerce-EditAccountForm em {
    display: block !important;
    margin-top: 7px !important;
    color: var(--bto-muted) !important;
    font-size: 12px !important;
    line-height: 1.5 !important;
}

.woocommerce-account .woocommerce-MyAccount-content form.edit-account fieldset,
.woocommerce-account .woocommerce-MyAccount-content form.woocommerce-EditAccountForm fieldset {
    margin: 8px 0 0 !important;
    padding: 22px !important;
    border: 1px solid var(--bto-line) !important;
    border-radius: 16px !important;
    background: #f9fbfd !important;
}

.woocommerce-account .woocommerce-MyAccount-content form.edit-account fieldset legend,
.woocommerce-account .woocommerce-MyAccount-content form.woocommerce-EditAccountForm fieldset legend {
    padding: 0 8px !important;
    color: var(--bto-ink) !important;
    font-family: "Cooper Black", "Arial Rounded MT Bold", "Trebuchet MS", ui-rounded, sans-serif !important;
    font-size: 1.2rem !important;
    font-weight: 900 !important;
}

.woocommerce-account .woocommerce-MyAccount-content form.edit-account fieldset .form-row,
.woocommerce-account .woocommerce-MyAccount-content form.woocommerce-EditAccountForm fieldset .form-row {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 16px !important;
}

.woocommerce-account .woocommerce-MyAccount-content form.edit-account fieldset .form-row:last-child,
.woocommerce-account .woocommerce-MyAccount-content form.woocommerce-EditAccountForm fieldset .form-row:last-child {
    margin-bottom: 0 !important;
}

.woocommerce-account .woocommerce-MyAccount-content form.edit-account .button,
.woocommerce-account .woocommerce-MyAccount-content form.woocommerce-EditAccountForm .button {
    min-width: 170px !important;
}

@media (max-width: 760px) {
    .woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses,
    .woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses.col2-set,
    .woocommerce-account .woocommerce-MyAccount-content form .woocommerce-address-fields__field-wrapper,
    .woocommerce-account .woocommerce-MyAccount-content form.woocommerce-EditAccountForm,
    .woocommerce-account .woocommerce-MyAccount-content form.edit-account {
        grid-template-columns: 1fr !important;
    }

    .woocommerce-account .woocommerce-MyAccount-content form .woocommerce-address-fields__field-wrapper .form-row,
    .woocommerce-account .woocommerce-MyAccount-content form.edit-account > .form-row,
    .woocommerce-account .woocommerce-MyAccount-content form.woocommerce-EditAccountForm > .form-row {
        grid-column: 1 / -1 !important;
    }

    .woocommerce-account .woocommerce-MyAccount-content form .woocommerce-address-fields__field-wrapper,
    .woocommerce-account .woocommerce-MyAccount-content form.woocommerce-EditAccountForm,
    .woocommerce-account .woocommerce-MyAccount-content form.edit-account {
        padding: 18px !important;
    }
}


/* =========================================================
   v1.0.88 — My Account address-card alignment correction
   Force WooCommerce's two address columns into an explicit
   grid position so legacy col-1/col-2 rules cannot stagger them.
   ========================================================= */

.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-Addresses,
.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-Addresses.col2-set,
.woocommerce-account .woocommerce-MyAccount-content > .u-columns.woocommerce-Addresses {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: auto !important;
    align-items: stretch !important;
    gap: 22px !important;
    width: 100% !important;
    max-width: none !important;
    clear: both !important;
}

.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-Addresses > .u-column1,
.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-Addresses > .col-1,
.woocommerce-account .woocommerce-MyAccount-content > .u-columns.woocommerce-Addresses > .u-column1,
.woocommerce-account .woocommerce-MyAccount-content > .u-columns.woocommerce-Addresses > .col-1 {
    grid-column: 1 !important;
    grid-row: 1 !important;
    float: none !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    align-self: stretch !important;
}

.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-Addresses > .u-column2,
.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-Addresses > .col-2,
.woocommerce-account .woocommerce-MyAccount-content > .u-columns.woocommerce-Addresses > .u-column2,
.woocommerce-account .woocommerce-MyAccount-content > .u-columns.woocommerce-Addresses > .col-2 {
    grid-column: 2 !important;
    grid-row: 1 !important;
    float: none !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    align-self: stretch !important;
}

.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-Addresses > .woocommerce-Address,
.woocommerce-account .woocommerce-MyAccount-content > .u-columns.woocommerce-Addresses > .woocommerce-Address {
    min-height: 100% !important;
}

.woocommerce-account .woocommerce-MyAccount-content > p:first-child + .woocommerce-Addresses,
.woocommerce-account .woocommerce-MyAccount-content > p:first-child + .u-columns.woocommerce-Addresses {
    margin-top: 20px !important;
}

@media (max-width: 760px) {
    .woocommerce-account .woocommerce-MyAccount-content > .woocommerce-Addresses,
    .woocommerce-account .woocommerce-MyAccount-content > .woocommerce-Addresses.col2-set,
    .woocommerce-account .woocommerce-MyAccount-content > .u-columns.woocommerce-Addresses {
        grid-template-columns: 1fr !important;
    }

    .woocommerce-account .woocommerce-MyAccount-content > .woocommerce-Addresses > .u-column1,
    .woocommerce-account .woocommerce-MyAccount-content > .woocommerce-Addresses > .col-1,
    .woocommerce-account .woocommerce-MyAccount-content > .woocommerce-Addresses > .u-column2,
    .woocommerce-account .woocommerce-MyAccount-content > .woocommerce-Addresses > .col-2,
    .woocommerce-account .woocommerce-MyAccount-content > .u-columns.woocommerce-Addresses > .u-column1,
    .woocommerce-account .woocommerce-MyAccount-content > .u-columns.woocommerce-Addresses > .col-1,
    .woocommerce-account .woocommerce-MyAccount-content > .u-columns.woocommerce-Addresses > .u-column2,
    .woocommerce-account .woocommerce-MyAccount-content > .u-columns.woocommerce-Addresses > .col-2 {
        grid-column: 1 !important;
        grid-row: auto !important;
    }
}


/* =========================================================
   v1.0.89 — My Account: individual View Order page
   ========================================================= */

.woocommerce-view-order .woocommerce-MyAccount-content > p:first-child {
    margin: 0 0 24px !important;
    padding: 18px 20px !important;
    border: 1px solid var(--bto-line) !important;
    border-left: 4px solid var(--bto-blue) !important;
    border-radius: 14px !important;
    background: #f4f8fc !important;
    color: var(--bto-ink) !important;
    line-height: 1.55 !important;
}

.woocommerce-view-order .woocommerce-MyAccount-content > p:first-child mark {
    padding: 0 !important;
    background: transparent !important;
    color: var(--bto-ink) !important;
    font-weight: 900 !important;
}

.woocommerce-view-order .woocommerce-order-details,
.woocommerce-view-order .woocommerce-customer-details {
    margin: 0 0 24px !important;
    padding: 24px !important;
    border: 1px solid var(--bto-line) !important;
    border-radius: 20px !important;
    background: #fff !important;
    box-shadow: 0 12px 32px rgba(30,48,82,.07) !important;
}

.woocommerce-view-order .woocommerce-order-details__title,
.woocommerce-view-order .woocommerce-customer-details > h2,
.woocommerce-view-order .woocommerce-column__title {
    margin: 0 0 18px !important;
    font-size: clamp(1.55rem, 2.3vw, 2.15rem) !important;
    line-height: 1.08 !important;
}

.woocommerce-view-order .woocommerce-order-details table.shop_table {
    overflow: hidden !important;
    border: 1px solid var(--bto-line) !important;
    border-radius: 16px !important;
    background: #fff !important;
    box-shadow: none !important;
}

.woocommerce-view-order .woocommerce-order-details table.shop_table thead th {
    background: #f9fbfd !important;
    color: var(--bto-muted) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: .05em !important;
}

.woocommerce-view-order .woocommerce-order-details table.shop_table th,
.woocommerce-view-order .woocommerce-order-details table.shop_table td {
    padding: 14px 16px !important;
    border-color: var(--bto-line) !important;
}

.woocommerce-view-order .woocommerce-order-details table.shop_table tfoot tr:last-child th,
.woocommerce-view-order .woocommerce-order-details table.shop_table tfoot tr:last-child td {
    background: #f4f8fc !important;
    color: var(--bto-ink) !important;
    font-size: 1.06rem !important;
    font-weight: 900 !important;
}

.woocommerce-view-order .woocommerce-customer-details {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 20px !important;
}

.woocommerce-view-order .woocommerce-customer-details > h2 {
    grid-column: 1 / -1 !important;
    margin-bottom: 0 !important;
}

.woocommerce-view-order .woocommerce-customer-details .woocommerce-column,
.woocommerce-view-order .woocommerce-customer-details .woocommerce-column--billing-address,
.woocommerce-view-order .woocommerce-customer-details .woocommerce-column--shipping-address {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid var(--bto-line) !important;
    border-radius: 16px !important;
    background: #f9fbfd !important;
    overflow: hidden !important;
}

.woocommerce-view-order .woocommerce-customer-details .woocommerce-column__title {
    margin: 0 !important;
    padding: 16px 18px !important;
    border-bottom: 1px solid var(--bto-line) !important;
    background: #f4f8fc !important;
    font-size: 1.25rem !important;
}

.woocommerce-view-order .woocommerce-customer-details address {
    margin: 0 !important;
    padding: 18px !important;
    color: var(--bto-ink) !important;
    font-style: normal !important;
    line-height: 1.7 !important;
}

.woocommerce-view-order .woocommerce-customer-details address p,
.woocommerce-view-order .woocommerce-customer-details address .woocommerce-customer-details--phone,
.woocommerce-view-order .woocommerce-customer-details address .woocommerce-customer-details--email {
    margin: 8px 0 0 !important;
}

@media (max-width: 760px) {
    .woocommerce-view-order .woocommerce-order-details,
    .woocommerce-view-order .woocommerce-customer-details {
        padding: 18px !important;
        border-radius: 18px !important;
    }

    .woocommerce-view-order .woocommerce-customer-details {
        grid-template-columns: 1fr !important;
    }

    .woocommerce-view-order .woocommerce-order-details table.shop_table,
    .woocommerce-view-order .woocommerce-order-details table.shop_table tbody,
    .woocommerce-view-order .woocommerce-order-details table.shop_table tfoot,
    .woocommerce-view-order .woocommerce-order-details table.shop_table tr,
    .woocommerce-view-order .woocommerce-order-details table.shop_table th,
    .woocommerce-view-order .woocommerce-order-details table.shop_table td {
        font-size: 13px !important;
    }
}


/* =========================================================
   v1.0.90 — View Order address alignment + Delivery wording
   ========================================================= */

/* WooCommerce wraps the two customer address columns in an inner
   .woocommerce-columns container. Make that wrapper the actual grid. */
.woocommerce-view-order .woocommerce-customer-details {
    display: block !important;
}

.woocommerce-view-order .woocommerce-customer-details .woocommerce-columns--addresses,
.woocommerce-view-order .woocommerce-customer-details .woocommerce-columns.woocommerce-columns--2,
.woocommerce-view-order .woocommerce-customer-details .col2-set.addresses {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 20px !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.woocommerce-view-order .woocommerce-customer-details .woocommerce-columns--addresses > .woocommerce-column,
.woocommerce-view-order .woocommerce-customer-details .woocommerce-columns--addresses > .col-1,
.woocommerce-view-order .woocommerce-customer-details .woocommerce-columns--addresses > .col-2 {
    float: none !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    align-self: stretch !important;
}

@media (max-width: 760px) {
    .woocommerce-view-order .woocommerce-customer-details .woocommerce-columns--addresses,
    .woocommerce-view-order .woocommerce-customer-details .woocommerce-columns.woocommerce-columns--2,
    .woocommerce-view-order .woocommerce-customer-details .col2-set.addresses {
        grid-template-columns: 1fr !important;
    }
}


/* =========================================================
   v1.0.91 — definitive View Order address grid
   WooCommerce may wrap the address columns inside an inner
   columns element. Use display:contents so the actual address
   cards participate in the outer two-column grid directly.
   ========================================================= */

.woocommerce-view-order .woocommerce-customer-details {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: auto !important;
    gap: 20px !important;
    align-items: stretch !important;
}

.woocommerce-view-order .woocommerce-customer-details > h2,
.woocommerce-view-order .woocommerce-customer-details > .woocommerce-customer-details__title {
    grid-column: 1 / -1 !important;
}

.woocommerce-view-order .woocommerce-customer-details > .woocommerce-columns--addresses,
.woocommerce-view-order .woocommerce-customer-details > .woocommerce-columns.woocommerce-columns--2,
.woocommerce-view-order .woocommerce-customer-details > .col2-set.addresses,
.woocommerce-view-order .woocommerce-customer-details > .addresses {
    display: contents !important;
}

.woocommerce-view-order .woocommerce-customer-details .woocommerce-column--billing-address,
.woocommerce-view-order .woocommerce-customer-details .woocommerce-column--1,
.woocommerce-view-order .woocommerce-customer-details .col-1 {
    grid-column: 1 !important;
    grid-row: 1 !important;
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    align-self: stretch !important;
}

.woocommerce-view-order .woocommerce-customer-details .woocommerce-column--shipping-address,
.woocommerce-view-order .woocommerce-customer-details .woocommerce-column--2,
.woocommerce-view-order .woocommerce-customer-details .col-2 {
    grid-column: 2 !important;
    grid-row: 1 !important;
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    align-self: stretch !important;
}

@media (max-width: 760px) {
    .woocommerce-view-order .woocommerce-customer-details {
        grid-template-columns: 1fr !important;
    }

    .woocommerce-view-order .woocommerce-customer-details .woocommerce-column--billing-address,
    .woocommerce-view-order .woocommerce-customer-details .woocommerce-column--1,
    .woocommerce-view-order .woocommerce-customer-details .col-1,
    .woocommerce-view-order .woocommerce-customer-details .woocommerce-column--shipping-address,
    .woocommerce-view-order .woocommerce-customer-details .woocommerce-column--2,
    .woocommerce-view-order .woocommerce-customer-details .col-2 {
        grid-column: 1 !important;
        grid-row: auto !important;
    }
}


/* =========================================================
   v1.0.92 — My Account dashboard rebuild
   ========================================================= */

.woocommerce-account .bto-account-dashboard {
    display: grid;
    gap: 24px;
    width: 100%;
}

.woocommerce-account .bto-account-welcome {
    padding: 26px 28px;
    border: 1px solid var(--bto-line);
    border-radius: 22px;
    background: linear-gradient(135deg, #fff9ed 0%, #fff 58%, #eef7ff 100%);
    box-shadow: var(--bto-shadow);
}

.woocommerce-account .bto-account-welcome .bto-eyebrow {
    margin-bottom: 10px;
}

.woocommerce-account .bto-account-welcome h2 {
    margin: 0 0 10px;
    font-size: clamp(1.8rem, 2.8vw, 2.65rem);
}

.woocommerce-account .bto-account-welcome p {
    margin: 0;
    color: var(--bto-muted);
    font-size: 1rem;
}

.woocommerce-account .bto-account-quicklinks {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.woocommerce-account .bto-account-quicklink {
    min-width: 0;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    padding: 22px;
    border: 1px solid var(--bto-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(30, 48, 82, .07);
    color: var(--bto-ink);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.woocommerce-account .bto-account-quicklink:hover {
    transform: translateY(-2px);
    border-color: rgba(20, 135, 244, .35);
    box-shadow: var(--bto-shadow);
    color: var(--bto-ink);
}

.woocommerce-account .bto-account-quicklink__icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    background: var(--bto-sky);
    color: var(--bto-blue-dark);
}

.woocommerce-account .bto-account-quicklink__icon svg {
    width: 25px;
    height: 25px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.woocommerce-account .bto-account-quicklink__copy {
    min-width: 0;
    display: block;
}

.woocommerce-account .bto-account-quicklink__copy > strong {
    display: block;
    margin-bottom: 7px;
    font-size: 1.04rem;
    line-height: 1.3;
}

.woocommerce-account .bto-account-quicklink__copy > small {
    display: block;
    min-height: 45px;
    color: var(--bto-muted);
    font-size: 13px;
    line-height: 1.55;
}

.woocommerce-account .bto-account-quicklink__cta {
    display: block;
    margin-top: 14px;
    color: var(--bto-blue-dark);
    font-size: 13px;
    font-weight: 900;
}

.woocommerce-account .bto-account-recent-order {
    padding: 24px;
    border: 1px solid var(--bto-line);
    border-radius: 22px;
    background: #fff;
    box-shadow: var(--bto-shadow);
}

.woocommerce-account .bto-account-recent-order__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 20px;
}

.woocommerce-account .bto-account-recent-order__head .bto-eyebrow {
    margin-bottom: 8px;
}

.woocommerce-account .bto-account-recent-order__head h3 {
    margin: 0;
    font-size: clamp(1.45rem, 2vw, 1.9rem);
}

.woocommerce-account .bto-account-order-status {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    background: #eef7ff;
    color: var(--bto-blue-dark);
    font-size: 12px;
    font-weight: 900;
}

.woocommerce-account .bto-account-order-status--completed {
    background: #e8f7df;
    color: #397a1e;
}

.woocommerce-account .bto-account-order-status--processing,
.woocommerce-account .bto-account-order-status--on-hold {
    background: #fff5d7;
    color: #805b00;
}

.woocommerce-account .bto-account-recent-order__meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 20px;
}

.woocommerce-account .bto-account-recent-order__meta > div {
    padding: 14px 16px;
    border: 1px solid var(--bto-line);
    border-radius: 15px;
    background: #f9fbfd;
}

.woocommerce-account .bto-account-recent-order__meta > div > span {
    display: block;
    margin-bottom: 4px;
    color: var(--bto-muted);
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.woocommerce-account .bto-account-recent-order__meta strong {
    display: block;
    font-size: .96rem;
}

.woocommerce-account .bto-account-recent-order__meta .woocommerce-Price-amount,
.woocommerce-account .bto-account-recent-order__meta .woocommerce-Price-currencySymbol {
    display: inline !important;
    white-space: nowrap !important;
    margin: 0 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}

@media (max-width: 1050px) {
    .woocommerce-account .bto-account-quicklinks {
        grid-template-columns: 1fr;
    }

    .woocommerce-account .bto-account-quicklink__copy > small {
        min-height: 0;
    }
}

@media (max-width: 680px) {
    .woocommerce-account .bto-account-welcome,
    .woocommerce-account .bto-account-recent-order,
    .woocommerce-account .bto-account-quicklink {
        padding: 18px;
        border-radius: 18px;
    }

    .woocommerce-account .bto-account-quicklink {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    .woocommerce-account .bto-account-quicklink__icon {
        width: 42px;
        height: 42px;
        border-radius: 13px;
    }

    .woocommerce-account .bto-account-quicklink__icon svg {
        width: 22px;
        height: 22px;
    }

    .woocommerce-account .bto-account-recent-order__head {
        flex-direction: column;
    }

    .woocommerce-account .bto-account-recent-order__meta {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   v1.0.94 — definitive mobile commerce pass
   ========================================================= */

/* Header icons use real line icons. */
.bto-action-icon svg,
.bto-mobile-nav__account-links svg {
    width: 20px;
    height: 20px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.bto-mobile-nav__account-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 16px 20px 6px;
}

.bto-mobile-nav__account-links a {
    min-height: 50px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--bto-line);
    border-radius: 13px;
    background: #f8fbff;
    color: var(--bto-ink);
    font-size: 13px;
}

.bto-mobile-nav__account-links a span {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #eaf4ff;
    color: var(--bto-blue-dark);
}

/* Mobile add-to-basket confirmation: clear message first, action second. */
@media (max-width: 640px) {
    .single-product .bto-cart-confirmation {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 9px !important;
        padding: 10px !important;
        border-color: #bfe0c8 !important;
        border-radius: 12px !important;
        background: #f4fbf6 !important;
    }

    .single-product .bto-cart-confirmation__copy {
        display: block !important;
        min-width: 0 !important;
    }

    .single-product .bto-cart-confirmation__copy strong {
        font-size: 13px !important;
        margin-bottom: 2px !important;
    }

    .single-product .bto-cart-confirmation__copy span {
        font-size: 11px !important;
        line-height: 1.35 !important;
    }

    .single-product .bto-cart-confirmation__button {
        width: 100% !important;
        min-width: 0 !important;
        height: 42px !important;
        min-height: 42px !important;
        display: flex !important;
        border-radius: 10px !important;
        font-size: 13px !important;
    }
}

/* Basket: make the second row a deliberate Price / Quantity / Subtotal strip. */
@media (max-width: 760px) {
    .bto-cart-item {
        grid-template-columns: 70px minmax(56px, 1fr) 72px minmax(72px, 1fr) 30px !important;
        grid-template-rows: auto auto !important;
        gap: 10px 8px !important;
        align-items: start !important;
        padding: 13px !important;
    }

    .bto-cart-item__media {
        grid-column: 1 !important;
        grid-row: 1 !important;
        width: 70px !important;
        height: 70px !important;
    }

    .bto-cart-item__info {
        grid-column: 2 / 5 !important;
        grid-row: 1 !important;
        align-self: center !important;
    }

    .bto-cart-item__remove-wrap {
        grid-column: 5 !important;
        grid-row: 1 !important;
        justify-content: flex-end !important;
    }

    .bto-cart-item__unit-price,
    .bto-cart-item__quantity,
    .bto-cart-item__subtotal {
        grid-row: 2 !important;
        margin: 0 !important;
        padding-top: 9px !important;
        border-top: 1px solid var(--bto-line) !important;
        align-self: stretch !important;
        justify-self: stretch !important;
    }

    .bto-cart-item__unit-price {
        grid-column: 1 / 3 !important;
        text-align: left !important;
    }

    .bto-cart-item__quantity {
        grid-column: 3 !important;
        text-align: center !important;
    }

    .bto-cart-item__subtotal {
        grid-column: 4 / 6 !important;
        text-align: right !important;
        display: block !important;
    }

    .bto-cart-item__unit-price small,
    .bto-cart-item__quantity small,
    .bto-cart-item__subtotal small {
        margin-bottom: 5px !important;
        font-size: 8px !important;
        white-space: nowrap !important;
    }

    .bto-cart-item__unit-price strong,
    .bto-cart-item__subtotal strong,
    .bto-cart-item__unit-price .woocommerce-Price-amount,
    .bto-cart-item__subtotal .woocommerce-Price-amount {
        display: inline !important;
        white-space: nowrap !important;
        font-size: 13px !important;
    }

    .bto-cart-item__quantity .quantity {
        justify-content: center !important;
    }

    .bto-cart-item__quantity .qty {
        width: 58px !important;
        min-width: 58px !important;
    }
}

/* Checkout: later desktop rules had been overriding the earlier mobile stack.
   Own the small-screen layout here, at the end of the stylesheet. */
@media (max-width: 980px) {
    .woocommerce-checkout form.checkout.bto-checkout-form .bto-checkout-layout {
        display: block !important;
        grid-template-columns: none !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .woocommerce-checkout .bto-checkout-details,
    .woocommerce-checkout .bto-checkout-order {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        position: static !important;
        inset: auto !important;
        transform: none !important;
    }

    .woocommerce-checkout .bto-checkout-order {
        margin-top: 24px !important;
    }

    .woocommerce-checkout form.checkout.bto-checkout-form #customer_details,
    .woocommerce-checkout form.checkout.bto-checkout-form #order_review {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow: visible !important;
    }
}

@media (max-width: 680px) {
    .woocommerce-checkout .bto-content-layout,
    .woocommerce-checkout .bto-content-layout--narrow {
        width: calc(100% - 24px) !important;
        max-width: none !important;
    }

    .woocommerce-checkout .bto-checkout-details,
    .woocommerce-checkout .bto-checkout-order,
    .woocommerce-checkout .bto-checkout-customer-details .col-1 {
        padding: 14px !important;
        border-radius: 16px !important;
    }

    .woocommerce-checkout .bto-checkout-section-heading h2 {
        font-size: 1.85rem !important;
    }

    .woocommerce-checkout .bto-checkout-review table.shop_table {
        table-layout: fixed !important;
        width: 100% !important;
    }

    .woocommerce-checkout .bto-checkout-review table.shop_table th,
    .woocommerce-checkout .bto-checkout-review table.shop_table td {
        padding: 10px !important;
        overflow-wrap: anywhere !important;
    }
}

/* Mobile header: keep a compact account icon available next to Basket. */
@media (max-width: 900px) {
    .bto-header-actions {
        gap: 6px !important;
    }

    .bto-header-actions .bto-account-link {
        display: flex !important;
        width: 44px !important;
        min-width: 44px !important;
        min-height: 46px !important;
        padding: 6px !important;
        justify-content: center !important;
        background: #f3f8ff !important;
    }

    .bto-header-actions .bto-account-link > span:not(.bto-action-icon) {
        display: none !important;
    }

    .bto-header-actions .bto-account-link .bto-action-icon {
        width: 32px !important;
        height: 32px !important;
    }
}

@media (max-width: 420px) {
    .bto-main-header__inner {
        grid-template-columns: 44px minmax(0, 1fr) auto !important;
        gap: 8px !important;
    }

    .bto-logo {
        width: min(150px, 100%) !important;
    }

    .bto-header-actions .bto-account-link {
        width: 40px !important;
        min-width: 40px !important;
    }

    .bto-basket-link {
        padding: 5px 7px !important;
    }
}

/* Footer: shorter, cleaner and deliberately mobile-first. */
@media (max-width: 900px) {
    .bto-site-footer {
        margin-top: 24px;
    }

    .bto-footer-main {
        padding-top: 0 !important;
    }

    .bto-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 24px 18px !important;
        padding-top: 34px !important;
        padding-bottom: 26px !important;
    }

    .bto-footer-brand {
        grid-column: 1 / -1 !important;
        display: grid !important;
        grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr) !important;
        gap: 18px !important;
        align-items: center !important;
    }

    .bto-footer-brand > a,
    .bto-footer-brand > p {
        grid-column: 1 !important;
    }

    .bto-footer-trust {
        grid-column: 2 !important;
        grid-row: 1 / span 2 !important;
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
        margin: 0 !important;
    }

    .bto-footer-shop,
    .bto-footer-help {
        grid-column: auto !important;
    }

    .bto-footer-info {
        grid-column: 1 / -1 !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) minmax(220px, .85fr) !important;
        gap: 16px 24px !important;
        align-items: end !important;
    }

    .bto-footer-info h3 {
        grid-column: 1 / -1 !important;
    }

    .bto-footer-info ul {
        margin: 0 !important;
    }

    .bto-footer-info .bto-paypal-note {
        margin: 0 !important;
    }
}

@media (max-width: 640px) {
    .bto-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 24px 16px !important;
        padding-top: 28px !important;
    }

    .bto-footer-brand {
        display: block !important;
        text-align: center !important;
    }

    .bto-footer-brand .bto-logo--footer {
        margin: 0 auto !important;
    }

    .bto-footer-brand p {
        margin: 10px auto 16px !important;
        max-width: 280px !important;
    }

    .bto-footer-trust {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 7px !important;
    }

    .bto-footer-trust span {
        min-height: 38px !important;
        display: flex !important;
        align-items: center !important;
        padding: 8px 10px !important;
        font-size: 10px !important;
    }

    .bto-footer-shop,
    .bto-footer-help {
        min-width: 0 !important;
    }

    .bto-footer-links-group h3 {
        margin-bottom: 10px !important;
        font-size: 15px !important;
    }

    .bto-footer-links-group ul {
        display: grid !important;
        gap: 7px !important;
        margin: 0 !important;
    }

    .bto-footer-links-group li,
    .bto-footer-links-group a {
        font-size: 11px !important;
        line-height: 1.35 !important;
    }

    /* The full category list remains available in the mobile menu; keep the
       footer useful rather than making it another enormous category menu. */
    .bto-footer-shop li:nth-child(n+7) {
        display: none !important;
    }

    .bto-footer-info {
        grid-column: 1 / -1 !important;
        display: block !important;
        padding-top: 4px !important;
        border-top: 1px solid rgba(255,255,255,.12) !important;
    }

    .bto-footer-info ul {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        margin-bottom: 16px !important;
    }

    .bto-paypal-note {
        width: 100% !important;
        max-width: none !important;
    }

    .bto-footer-bottom {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 6px !important;
        text-align: center !important;
        padding-top: 16px !important;
        padding-bottom: 18px !important;
        font-size: 10px !important;
    }
}


/* =========================================================
   v1.0.95 — mobile basket / checkout / footer hardening
   ========================================================= */

/* Product cards: keep content rows aligned in the 2-up mobile grid. */
@media (max-width: 640px) {
    .woocommerce ul.products li.product .woocommerce-LoopProduct-link,
    .bto-product-grid li.product .woocommerce-LoopProduct-link {
        display: flex !important;
        flex-direction: column !important;
        height: 100% !important;
        min-width: 0 !important;
    }

    .woocommerce ul.products li.product .bto-product-image-wrap,
    .bto-product-grid li.product .bto-product-image-wrap {
        flex: 0 0 auto !important;
    }

    .woocommerce ul.products li.product .woocommerce-loop-product__title,
    .bto-product-grid li.product .woocommerce-loop-product__title {
        min-height: 42px !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
    }

    .woocommerce ul.products li.product .bto-card-category,
    .bto-product-grid li.product .bto-card-category {
        min-height: 22px !important;
        display: flex !important;
        align-items: flex-start !important;
    }

    .woocommerce ul.products li.product .bto-card-meta,
    .bto-product-grid li.product .bto-card-meta {
        min-height: 31px !important;
        display: flex !important;
        align-items: flex-start !important;
    }

    .woocommerce ul.products li.product .price,
    .bto-product-grid li.product .price {
        margin-top: auto !important;
    }
}

/* Basket: no horizontal overflow, with a true 3-column price strip. */
.woocommerce-cart,
.woocommerce-cart .bto-page-content,
.woocommerce-cart .bto-cart-layout,
.woocommerce-cart .bto-cart-products,
.woocommerce-cart .bto-cart-form,
.woocommerce-cart .bto-cart-items {
    max-width: 100% !important;
    min-width: 0 !important;
}

@media (max-width: 760px) {
    body.woocommerce-cart {
        overflow-x: hidden !important;
    }

    .woocommerce-cart .bto-content-layout,
    .woocommerce-cart .bto-content-layout--narrow {
        width: calc(100% - 24px) !important;
        max-width: none !important;
        min-width: 0 !important;
    }

    .bto-cart-item {
        position: relative !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        grid-template-rows: auto auto !important;
        gap: 10px 8px !important;
        padding: 12px !important;
    }

    .bto-cart-item__media {
        grid-column: 1 !important;
        grid-row: 1 !important;
        width: 64px !important;
        height: 64px !important;
        max-width: 100% !important;
    }

    .bto-cart-item__info {
        grid-column: 2 / 4 !important;
        grid-row: 1 !important;
        min-width: 0 !important;
        padding-right: 24px !important;
        align-self: center !important;
    }

    .bto-cart-item__name {
        overflow-wrap: anywhere !important;
        word-break: normal !important;
    }

    .bto-cart-item__remove-wrap {
        position: absolute !important;
        top: 10px !important;
        right: 10px !important;
        width: 28px !important;
        height: 28px !important;
        z-index: 2 !important;
    }

    .bto-cart-item__unit-price,
    .bto-cart-item__quantity,
    .bto-cart-item__subtotal {
        grid-row: 2 !important;
        min-width: 0 !important;
        width: auto !important;
        margin: 0 !important;
        padding: 9px 2px 0 !important;
        border-top: 1px solid var(--bto-line) !important;
        text-align: center !important;
        justify-self: stretch !important;
        overflow: hidden !important;
    }

    .bto-cart-item__unit-price { grid-column: 1 !important; text-align: left !important; }
    .bto-cart-item__quantity   { grid-column: 2 !important; }
    .bto-cart-item__subtotal   { grid-column: 3 !important; text-align: right !important; }

    .bto-cart-item__unit-price small,
    .bto-cart-item__quantity small,
    .bto-cart-item__subtotal small {
        display: block !important;
        width: 100% !important;
        margin: 0 0 6px !important;
        font-size: 8px !important;
        line-height: 1.1 !important;
        white-space: normal !important;
    }

    .bto-cart-item__unit-price strong,
    .bto-cart-item__subtotal strong,
    .bto-cart-item__unit-price .woocommerce-Price-amount,
    .bto-cart-item__subtotal .woocommerce-Price-amount,
    .bto-cart-item__unit-price .woocommerce-Price-currencySymbol,
    .bto-cart-item__subtotal .woocommerce-Price-currencySymbol {
        display: inline !important;
        white-space: nowrap !important;
        font-size: 13px !important;
    }

    .bto-cart-item__quantity .qty {
        width: 54px !important;
        min-width: 54px !important;
        max-width: 54px !important;
    }
}

/* The basket never needs a customer-facing shipping calculator for this UK-only store. */
.woocommerce-cart .woocommerce-shipping-calculator,
.woocommerce-cart .shipping-calculator-button,
.woocommerce-cart .woocommerce-shipping-destination {
    display: none !important;
}

.bto-delivery-note {
    display: block;
    margin-top: 3px;
    color: var(--bto-muted);
    font-size: 10px;
    line-height: 1.3;
}

/* Turnstile: contain the flexible widget inside checkout cards on narrow screens. */
.bto-turnstile-wrap,
.cf-turnstile {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.bto-turnstile-wrap {
    overflow: hidden !important;
}

.cf-turnstile iframe {
    max-width: 100% !important;
}

@media (max-width: 680px) {
    .woocommerce-checkout .bto-turnstile-wrap {
        margin: 10px 0 !important;
    }
}

/* Footer trust checks sit beside their labels rather than over them. */
@media (max-width: 640px) {
    .bto-footer-trust span {
        position: relative !important;
        gap: 7px !important;
        padding: 8px 9px !important;
        line-height: 1.25 !important;
    }

    .bto-footer-trust span::before {
        position: static !important;
        display: inline-block !important;
        flex: 0 0 auto !important;
        margin: 0 !important;
        line-height: 1 !important;
    }

    /* Restore the complete category directory on mobile. */
    .bto-footer-shop ul {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        column-gap: 14px !important;
        row-gap: 7px !important;
        columns: auto !important;
    }

    .bto-footer-shop li:nth-child(n) {
        display: list-item !important;
    }

    .bto-footer-help ul,
    .bto-footer-info ul {
        grid-template-columns: 1fr !important;
    }
}


/* =========================================================
   v1.0.96 — mobile card alignment, budget row, footer order
   and compact checkout-security presentation
   ========================================================= */

/* Homepage product carousels: use explicit content rows on mobile.
   Older homepage carousel rules used natural title height, which meant a
   one-line title pulled category, age and price upwards relative to a
   neighbouring two-line title. */
@media (max-width: 640px) {
    .bto-home-main .bto-product-carousel li.product > a.woocommerce-LoopProduct-link,
    .bto-home-main .bto-product-carousel li.product > a.woocommerce-loop-product__link {
        display: grid !important;
        grid-template-rows: auto 44px 24px 34px 30px !important;
        align-content: start !important;
        height: 100% !important;
        min-height: 0 !important;
    }

    .bto-home-main .bto-product-carousel li.product .bto-product-image-wrap {
        grid-row: 1 !important;
        margin-bottom: 8px !important;
    }

    .bto-home-main .bto-product-carousel li.product h2,
    .bto-home-main .bto-product-carousel li.product .woocommerce-loop-product__title {
        grid-row: 2 !important;
        height: 44px !important;
        min-height: 44px !important;
        max-height: 44px !important;
        margin: 0 !important;
        overflow: hidden !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
    }

    .bto-home-main .bto-product-carousel li.product .bto-card-category {
        grid-row: 3 !important;
        min-height: 24px !important;
        height: 24px !important;
        margin: 0 !important;
        display: flex !important;
        align-items: flex-start !important;
        overflow: hidden !important;
    }

    .bto-home-main .bto-product-carousel li.product .bto-card-meta {
        grid-row: 4 !important;
        min-height: 34px !important;
        height: 34px !important;
        margin: 0 !important;
        display: flex !important;
        align-items: center !important;
    }

    .bto-home-main .bto-product-carousel li.product .price {
        grid-row: 5 !important;
        align-self: end !important;
        min-height: 30px !important;
        height: 30px !important;
        margin: 0 2px !important;
        display: flex !important;
        align-items: flex-end !important;
        white-space: nowrap !important;
    }
}

/* Budget shortcuts: four equal cards with content aligned to identical rows.
   Previously justify-content:center made cards with a two-line description
   sit differently from those with a three-line description. */
@media (max-width: 640px) {
    .bto-age-shortcuts .bto-price-shortcuts__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 8px !important;
        align-items: stretch !important;
    }

    .bto-age-shortcuts .bto-price-shortcuts__grid a {
        min-width: 0 !important;
        min-height: 112px !important;
        height: 100% !important;
        padding: 11px 8px !important;
        justify-content: flex-start !important;
        align-items: flex-start !important;
        text-align: left !important;
    }

    .bto-age-shortcuts .bto-price-shortcuts__grid strong {
        min-height: 38px !important;
        margin: 0 0 4px !important;
        font-size: 1rem !important;
        line-height: 1.08 !important;
    }

    .bto-age-shortcuts .bto-price-shortcuts__grid span {
        min-height: 48px !important;
        font-size: .68rem !important;
        line-height: 1.25 !important;
    }
}

/* Mobile footer: Information belongs directly beneath Customer help. */
@media (max-width: 640px) {
    .bto-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        grid-template-rows: auto auto auto !important;
        align-items: start !important;
    }

    .bto-footer-brand {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
    }

    .bto-footer-shop {
        grid-column: 1 !important;
        grid-row: 2 / span 2 !important;
    }

    .bto-footer-help {
        grid-column: 2 !important;
        grid-row: 2 !important;
    }

    .bto-footer-info {
        grid-column: 2 !important;
        grid-row: 3 !important;
        display: block !important;
        padding-top: 14px !important;
        border-top: 1px solid rgba(255,255,255,.12) !important;
    }

    .bto-footer-info h3 {
        margin-bottom: 10px !important;
    }

    .bto-footer-info ul {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 7px !important;
        margin-bottom: 16px !important;
    }

    .bto-footer-info .bto-paypal-note {
        margin-top: 14px !important;
    }
}

/* Turnstile now sits outside WooCommerce's AJAX-refreshed #order_review.
   Keep its security block neatly contained and centre compact mobile widgets. */
.woocommerce-checkout .bto-turnstile-wrap {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    box-sizing: border-box !important;
    margin: 14px 0 0 !important;
    padding: 12px !important;
    overflow: hidden !important;
    border: 1px solid var(--bto-line) !important;
    border-radius: 16px !important;
    background: #fff !important;
}

.woocommerce-checkout .bto-turnstile-wrap .cf-turnstile {
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex: 0 1 auto !important;
}

.woocommerce-checkout .bto-turnstile-wrap iframe {
    display: block !important;
    max-width: 100% !important;
}

@media (max-width: 680px) {
    .woocommerce-checkout .bto-turnstile-wrap {
        padding: 10px !important;
        border-radius: 14px !important;
    }
}


/* =========================================================
   v1.0.97 — Footer PayPal is an independent full-width mobile row.
   ========================================================= */
.bto-footer-paypal {
    min-width: 0;
    align-self: end;
}

.bto-footer-paypal .bto-paypal-note {
    width: 100%;
    margin: 20px 0 0;
    box-sizing: border-box;
}

@media (min-width: 1181px) {
    .bto-footer-info {
        grid-column: 4;
        grid-row: 1;
    }

    .bto-footer-paypal {
        grid-column: 4;
        grid-row: 2;
    }
}

@media (min-width: 901px) and (max-width: 1180px) {
    .bto-footer-info {
        grid-column: 3 !important;
        grid-row: 1 !important;
    }

    .bto-footer-paypal {
        grid-column: 3 !important;
        grid-row: 2 !important;
    }
}

@media (max-width: 900px) {
    .bto-footer-paypal {
        grid-column: 1 / -1 !important;
        width: 100% !important;
    }

    .bto-footer-paypal .bto-paypal-note {
        display: grid !important;
        grid-template-columns: 76px minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 14px !important;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 12px 14px !important;
    }

    .bto-footer-paypal .bto-paypal-note img {
        width: 76px !important;
        max-width: 76px !important;
    }

    .bto-footer-paypal .bto-paypal-note strong,
    .bto-footer-paypal .bto-paypal-note small {
        white-space: normal !important;
    }
}

@media (max-width: 640px) {
    .bto-footer-grid {
        grid-template-rows: auto auto auto auto !important;
    }

    .bto-footer-paypal {
        grid-column: 1 / -1 !important;
        grid-row: 4 !important;
        margin-top: 2px !important;
    }
}


/* =========================================================
   v1.0.100 — existing customer pages + cookie policy handling
   ========================================================= */
.bto-main--info {
    padding: clamp(38px, 5vw, 72px) 0 clamp(70px, 8vw, 110px);
    background: #fff;
}

.bto-info-shell {
    max-width: 1180px;
}

.bto-info-page {
    display: grid;
    gap: 26px;
}

.bto-info-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 132px;
    gap: 34px;
    align-items: center;
    padding: clamp(28px, 4vw, 46px);
    border: 1px solid var(--bto-line);
    border-radius: 28px;
    background: linear-gradient(135deg, #fff9ed 0%, #ffffff 52%, #eef7ff 100%);
    box-shadow: var(--bto-shadow);
}

.bto-info-hero h1 {
    margin: 4px 0 14px;
    font-size: clamp(2.45rem, 5vw, 4.8rem);
    line-height: .98;
}

.bto-info-hero p {
    max-width: 780px;
    margin: 0;
    color: var(--bto-muted);
    font-size: 1.08rem;
    line-height: 1.72;
}

.bto-info-hero__icon {
    width: 112px;
    height: 112px;
    border-radius: 28px;
    display: grid;
    place-items: center;
    justify-self: end;
    background: #fff;
    color: var(--bto-blue);
    border: 1px solid var(--bto-line);
    box-shadow: 0 15px 35px rgba(25, 59, 103, .10);
}

.bto-info-hero__icon svg,
.bto-contact-detail__icon svg {
    width: 48px;
    height: 48px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.bto-info-stat-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.bto-info-stat {
    padding: 22px;
    border: 1px solid var(--bto-line);
    border-radius: 20px;
    background: #f9fbfd;
}

.bto-info-stat strong,
.bto-info-stat span {
    display: block;
}

.bto-info-stat strong {
    margin-bottom: 6px;
    color: var(--bto-blue-dark);
    font-family: var(--bto-font-display);
    font-size: 1.7rem;
    line-height: 1;
}

.bto-info-stat span {
    color: var(--bto-muted);
    line-height: 1.45;
}

.bto-info-grid,
.bto-contact-layout {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    align-items: stretch;
}

.bto-info-card {
    padding: clamp(24px, 3vw, 34px);
    border: 1px solid var(--bto-line);
    border-radius: 24px;
    background: #fff;
    box-shadow: var(--bto-shadow);
}

.bto-info-card h2,
.bto-info-cta h2 {
    margin: 5px 0 16px;
    font-size: clamp(1.65rem, 2.6vw, 2.45rem);
}

.bto-info-card h3 {
    margin: 24px 0 10px;
}

.bto-info-card p,
.bto-info-card li,
.bto-info-note p,
.bto-info-cta p {
    color: var(--bto-muted);
    line-height: 1.75;
}

.bto-info-card p:last-child,
.bto-info-note p:last-child,
.bto-info-cta p:last-child {
    margin-bottom: 0;
}

.bto-info-card ul {
    margin: 12px 0 0;
    padding-left: 20px;
}

.bto-info-card li + li {
    margin-top: 9px;
}

.bto-info-card a,
.bto-contact-links a {
    color: var(--bto-blue-dark);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.bto-info-policy {
    display: grid;
    gap: 18px;
}

.bto-info-note {
    padding: 22px 24px;
    border-left: 4px solid var(--bto-yellow);
    border-radius: 16px;
    background: #fff9ea;
}

.bto-info-note strong {
    display: block;
    margin-bottom: 5px;
    font-size: 1.05rem;
}

.bto-info-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding: clamp(26px, 4vw, 38px);
    border-radius: 24px;
    background: var(--bto-ink);
    color: #fff;
}

.bto-info-cta .bto-eyebrow,
.bto-info-cta h2,
.bto-info-cta p {
    color: #fff;
}

.bto-info-cta .bto-btn {
    flex: 0 0 auto;
}

.bto-contact-layout {
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
}

.bto-contact-details {
    align-self: start;
}

.bto-contact-detail {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 14px;
    padding: 18px 0;
    border-top: 1px solid var(--bto-line);
}

.bto-contact-detail__icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: #eef7ff;
    color: var(--bto-blue);
}

.bto-contact-detail__icon svg {
    width: 22px;
    height: 22px;
}

.bto-contact-detail strong {
    display: block;
    margin-bottom: 5px;
}

.bto-contact-detail p {
    margin: 0;
}

.bto-contact-links {
    display: grid;
    gap: 9px;
    margin-top: 10px;
}

.bto-contact-form {
    display: grid;
    gap: 18px;
}

.bto-contact-form__row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.bto-contact-form p {
    margin: 0;
}

.bto-contact-form label {
    display: block;
    margin-bottom: 7px;
    color: var(--bto-ink);
    font-weight: 800;
}

.bto-contact-form label span {
    color: #b50d21;
}

.bto-contact-form label small {
    color: var(--bto-muted);
    font-weight: 500;
}

.bto-contact-form input,
.bto-contact-form textarea {
    display: block !important;
    width: 100% !important;
    min-height: 48px;
    border: 1px solid #c9d5e3 !important;
    border-radius: 12px !important;
    background: #fbfdff !important;
    color: var(--bto-ink) !important;
    font: inherit;
    padding: 13px 14px !important;
    box-sizing: border-box !important;
    box-shadow: inset 0 1px 2px rgba(23, 36, 58, .03);
}

.bto-contact-form input:focus,
.bto-contact-form textarea:focus {
    outline: 3px solid rgba(33, 145, 241, .12);
    border-color: var(--bto-blue);
}

.bto-contact-form textarea {
    min-height: 165px !important;
    resize: vertical;
}

.bto-contact-form .bto-btn {
    justify-self: start;
}

.bto-contact-hp {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.bto-form-message {
    margin-bottom: 20px;
    padding: 14px 16px;
    border-radius: 12px;
}

.bto-form-message--success {
    background: #edf9e9;
    border: 1px solid #bde5af;
    color: #245918;
}

.bto-form-message--error {
    background: #fff1f2;
    border: 1px solid #f3bec5;
    color: #8d1726;
}

@media (max-width: 820px) {
    .bto-info-hero,
    .bto-info-grid,
    .bto-contact-layout {
        grid-template-columns: 1fr;
    }

    .bto-info-hero__icon {
        display: none;
    }

    .bto-info-stat-grid {
        grid-template-columns: 1fr;
    }

    .bto-contact-form__row {
        grid-template-columns: 1fr;
    }

    .bto-info-cta {
        align-items: stretch;
        flex-direction: column;
    }

    .bto-info-cta .bto-btn,
    .bto-contact-form .bto-btn {
        width: 100%;
        justify-content: center;
    }
}

@media (max-width: 520px) {
    .bto-main--info {
        padding-top: 24px;
    }

    .bto-info-page {
        gap: 18px;
    }

    .bto-info-hero,
    .bto-info-card,
    .bto-info-cta {
        padding: 20px;
        border-radius: 20px;
    }

    .bto-info-hero h1 {
        font-size: 2.55rem;
    }

    .bto-info-stat-grid {
        gap: 12px;
    }
}


/* =========================================================
   v1.0.100 — visible contact fields + clear returns icon
   ========================================================= */
.bto-contact-form input:not([type="hidden"]),
.bto-contact-form textarea {
    border: 1px solid #c9d5e3 !important;
    background: #fbfdff !important;
}

.bto-contact-form input:not([type="hidden"]):hover,
.bto-contact-form textarea:hover {
    border-color: #aebfd2 !important;
}

.bto-info-page--refunds .bto-info-hero__icon svg {
    width: 54px;
    height: 54px;
    stroke-width: 1.7;
}

/* v1.0.101 — responsive image request optimisation
   Product archive cards now request WooCommerce thumbnails instead of 1600px masters.
   Homepage hero/category imagery uses medium_large sources. */


/* v1.0.102 — uncropped product-card imagery
   Loop cards use an uncropped responsive source; the existing square card frame
   continues to use object-fit:contain so the full product artwork remains visible. */


/* =========================================================
   v1.0.109 — restore View basket alignment + clean alert focus
   ========================================================= */

/* WooCommerce focuses its success notice after add-to-basket.
   Keep that accessibility behaviour without drawing a second blue
   browser outline around our already-visible confirmation panel. */
.single-product .bto-inline-cart-notices .woocommerce-message:focus,
.single-product .bto-inline-cart-notices .woocommerce-message:focus-visible {
    outline: none !important;
}

/* The action is a fixed-height control, so use flex on every viewport
   (not only mobile) to keep the label genuinely centred vertically. */
.single-product .bto-cart-confirmation__button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* v1.0.109 — trim stock WooCommerce admin-email filler and app promotion */

/* v1.0.110 — customer-facing basket/delivery wording cleanup */
