/* Ööloom theme styles. Colours, fonts and sizes live in theme.json. */

:root {
  --ool-teal: var(--wp--preset--color--teal, #23BBA9);
  --ool-yellow: var(--wp--preset--color--yellow, #F7CE3E);
  --ool-ink: var(--wp--preset--color--ink, #141414);
  --ool-wave-h: 64px;
}

/* ---------- Wavy bottom edge (block style "Wavy bottom") ---------- */
.is-style-wave:not(.wp-block-image),
.wp-block-image.is-style-wave img {
  -webkit-mask-image: url(../images/wave.svg), linear-gradient(#000, #000);
          mask-image: url(../images/wave.svg), linear-gradient(#000, #000);
  -webkit-mask-size: 360px var(--ool-wave-h), 100% calc(100% - var(--ool-wave-h) + 2px);
          mask-size: 360px var(--ool-wave-h), 100% calc(100% - var(--ool-wave-h) + 2px);
  -webkit-mask-position: left bottom, left top;
          mask-position: left bottom, left top;
  -webkit-mask-repeat: round no-repeat, no-repeat;
          mask-repeat: round no-repeat, no-repeat;
}
/* keep the wavy block above the next block so the next block can slide underneath */
.is-style-wave:not(.wp-block-image) { position: relative; z-index: 1; }
.ool-under-wave { margin-top: calc(var(--ool-wave-h) * -1) !important; padding-top: calc(var(--ool-wave-h) + clamp(32px, 4vw, 64px)) !important; }

/* ---------- Sticky teal header ---------- */
header.wp-block-template-part { position: sticky; top: 0; z-index: 50; }
.admin-bar header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { .admin-bar header.wp-block-template-part { top: 46px; } }
@media (max-width: 600px) { .admin-bar header.wp-block-template-part { top: 0; } }

.ool-logo { display: inline-flex; align-items: center; gap: 10px; color: var(--ool-ink); text-decoration: none; }
.ool-logo svg { display: block; width: auto; }
.ool-logo .ool-logo-mark { height: 40px; }
.ool-logo .ool-logo-word { height: 19px; }

/* Navigation: yellow marker slides in on hover / keyboard focus */
.ool-header .wp-block-navigation .wp-block-navigation-item__content {
  padding: 10px 0;
  text-decoration: none;
  background: linear-gradient(var(--ool-yellow), var(--ool-yellow)) no-repeat 0 calc(50% + 7px) / 0% 0.45em;
  transition: background-size 0.22s cubic-bezier(0.3, 1.4, 0.5, 1);
}
.ool-header .wp-block-navigation .wp-block-navigation-item__content:hover,
.ool-header .wp-block-navigation .wp-block-navigation-item__content:focus-visible { background-size: 100% 0.45em; }
.ool-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.ool-header .wp-block-navigation [aria-current="page"] { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 6px; }

/* Mini cart as a black pill */
.ool-header .wc-block-mini-cart__button {
  background: var(--ool-ink); color: #fff; border-radius: 999px; min-height: 44px; padding: 0 18px; font-weight: 700;
  transition: transform 140ms ease, box-shadow 140ms ease;
}
.ool-header .wc-block-mini-cart__button:hover { transform: translateY(-3px); box-shadow: 0 4px 0 0 var(--ool-ink); }
.ool-header .wc-block-mini-cart__badge { background: var(--ool-yellow); color: var(--ool-ink); border: 0; }

/* ---------- Buttons: lift + coloured shadow on hover ---------- */
.wp-element-button,
.wp-block-button__link,
.woocommerce a.button, .woocommerce button.button, .woocommerce .button {
  transition: transform 140ms ease, box-shadow 140ms ease, background-color 160ms ease, color 160ms ease;
  box-shadow: 0 0 0 0 var(--ool-teal);
}
.wp-element-button:hover, .wp-element-button:focus-visible,
.wp-block-button__link:hover, .wp-block-button__link:focus-visible,
.woocommerce a.button:hover, .woocommerce button.button:hover {
  transform: translateY(-3px);
  box-shadow: 0 4px 0 0 var(--ool-teal);
}
.wp-element-button:active, .wp-block-button__link:active { transform: translateY(1px); box-shadow: none; }
.has-teal-background-color .wp-block-button__link:hover,
.has-teal-background-color .wp-element-button:hover { box-shadow: 0 4px 0 0 var(--ool-yellow); }

.wp-block-button.is-style-yellow .wp-block-button__link { background-color: var(--ool-yellow); color: var(--ool-ink); }
.wp-block-button.is-style-yellow .wp-block-button__link:hover { box-shadow: 0 4px 0 0 var(--ool-ink); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: currentColor; border: 2px solid currentColor; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--ool-yellow); color: var(--ool-ink); border-color: var(--ool-ink); box-shadow: 0 4px 0 0 var(--ool-ink); }

/* ---------- Doodles: small wiggle ---------- */
@keyframes ool-wiggle {
  0%   { transform: translate(0, 0) rotate(var(--ool-rot, 0deg)); }
  33%  { transform: translate(1.5px, -1px) rotate(calc(var(--ool-rot, 0deg) + 1.4deg)); }
  66%  { transform: translate(-1px, 1px) rotate(calc(var(--ool-rot, 0deg) - 1.6deg)); }
}
.is-style-wiggle img { animation: ool-wiggle 1.35s steps(1, end) infinite; }


/* ---------- Hero ---------- */
.ool-hero { min-height: max(480px, min(62vw, 940px, calc(100svh - var(--ool-header-h, 120px)))) !important; padding-top: clamp(24px, 5vh, 96px) !important; padding-bottom: clamp(100px, 15vh, 176px) !important; }
.ool-hero .wp-block-cover__inner-container { position: static; }
.ool-hero-text { position: relative; z-index: 3; gap: clamp(12px, 1.4vw, 20px) !important; }
.ool-label {
  display: inline-block; margin: 0; background: var(--ool-ink); color: #fff; padding: 6px 12px;
  font-family: var(--wp--preset--font-family--dm-mono); font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase;
  transform: rotate(-2deg);
}
.ool-hl-white { max-width: 30ch; margin: 0; font-size: clamp(16px, 1.35vw, 19px); line-height: 1.55; }
.ool-hl-white mark { background: #fff; color: var(--ool-ink); padding: 0.15em 0.4em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }

/* ---------- Yellow sticker headline ---------- */
.wp-block-heading.is-style-sticker {
  max-width: 13ch; margin: 0;
  font-size: clamp(30px, min(4.8vw, 7.4vh), 78px); line-height: 1.24; letter-spacing: -0.04em;
  transform: rotate(-2deg); transform-origin: left bottom;
}
.wp-block-heading.is-style-sticker mark,
.wp-block-heading.is-style-sticker:not(:has(mark)) {
  background: var(--ool-yellow); color: var(--ool-ink); padding: 0.04em 0.18em;
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
}
.wp-block-heading.is-style-sticker mark { display: inline; }

/* Buttons with a little arrow */
.ool-arrow .wp-block-button__link::after { content: "\2192"; display: inline-block; margin-left: 10px; font-weight: 800; }

/* ---------- Doodle positions ---------- */
.ool-doodle img { width: 100%; height: auto; display: block; }
.ool-d-hero-spiral { top: 7%; left: 5%; width: clamp(70px, 9vw, 150px); z-index: 2; }
.ool-d-hero-squiggle { top: 9%; right: 4%; width: clamp(130px, 17vw, 270px); z-index: 2; --ool-rot: -6deg; }
.ool-d-hero-ghost { bottom: 16%; right: 7%; width: clamp(90px, 11vw, 190px); z-index: 2; --ool-rot: 8deg; }
.ool-d-envelope { top: 20px; right: 3%; width: clamp(80px, 10vw, 150px); --ool-rot: 6deg; }
@media (max-width: 700px) {
  .ool-d-hero-spiral { top: 4%; width: 64px; }
  .ool-d-hero-ghost { bottom: auto; top: 6%; right: 6%; width: 84px; }
}

/* ---------- Peeking creature (About) ---------- */
.is-style-peek { position: relative; overflow: hidden; }
.ool-peek-creature {
  position: absolute; right: 5%; bottom: calc(-1 * clamp(90px, 12vw, 230px)); z-index: 1; margin: 0 !important;
  height: clamp(430px, 56vw, 820px); aspect-ratio: 292 / 402; max-width: none !important;
  transition: transform 800ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
.ool-peek-creature .ool-peek-body { position: absolute; inset: 0; width: 100%; height: 100%; }
.ool-peek-creature .ool-peek-d1 { position: absolute; top: -13%; left: 22%; width: 11%; --ool-rot: -6deg; }
.ool-peek-creature .ool-peek-d2 { position: absolute; top: -11%; right: 6%; width: 21%; --ool-rot: 10deg; }
.ool-peek-creature span img { width: 100%; height: auto; display: block; }
.ool-js .is-style-peek .ool-peek-creature { transform: translateY(75%); }
.ool-js .is-style-peek.is-visible .ool-peek-creature { transform: translateY(0); }
.ool-story-text { position: relative; z-index: 2; max-width: min(640px, 52%) !important; margin-left: max(0px, calc((100% - 1360px) / 2)) !important; min-height: clamp(380px, 40vw, 600px); display: flex; flex-direction: column; justify-content: center; }
.ool-story-text p { max-width: 52ch; }
@media (max-width: 900px) {
  .ool-story-text { max-width: none !important; min-height: 0; }
  .is-style-peek { padding-bottom: 300px !important; }
  .ool-peek-creature { height: 380px; right: 8%; bottom: -110px; }
}

/* ---------- Width helpers ---------- */
.ool-w-14ch { max-width: 14ch; }
.ool-w-16ch { max-width: 16ch; }

/* Yellow button on black: hover shadow must stay visible */
.has-ink-background-color .wp-block-button.is-style-yellow .wp-block-button__link:hover,
.has-ink-background-color .wp-block-button__link:hover { box-shadow: 0 4px 0 0 var(--ool-teal); }

/* ---------- Anchors land below the sticky header ---------- */
html { scroll-padding-top: var(--ool-header-h, 130px); scroll-behavior: smooth; }
.ool-header .wp-block-navigation-item.is-active > .wp-block-navigation-item__content { background-size: 100% 0.45em; }

/* ---------- Product grid (homepage line-up and shop) ---------- */
body ul.products { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(40px, 5vw, 72px) clamp(24px, 4.5vw, 80px); margin: 0 !important; padding: 0; }
@media (max-width: 900px) { body ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { body ul.products { grid-template-columns: minmax(0, 1fr); } }
body ul.products::before, body ul.products::after { display: none !important; }
body ul.products li.product { width: auto !important; float: none !important; margin: 0 !important; padding: 0 !important; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 8px; position: relative; }
body ul.products li.product .woocommerce-LoopProduct-link { display: flex; flex-direction: column; align-items: center; gap: 8px; color: var(--ool-ink); text-decoration: none; position: relative; width: 100%; }
body ul.products li.product a img { width: 100%; height: auto; margin: 0 0 6px !important; background: transparent; box-shadow: none; transition: transform 320ms cubic-bezier(0.34, 1.56, 0.64, 1); }
body ul.products li.product:hover a img,
body ul.products li.product a:focus-visible img { transform: translateY(-10px) rotate(-4deg); }
body ul.products li.product .woocommerce-loop-product__title { margin: 10px 0 0 !important; padding: 0 !important; font-size: clamp(26px, 2.6vw, 38px) !important; line-height: 1 !important; font-weight: 800; letter-spacing: -0.02em; }
body ul.products li.product .price { display: block; margin: 0 !important; color: var(--ool-ink) !important; font-family: var(--wp--preset--font-family--dm-mono); font-size: 17px !important; font-weight: 500; }
body ul.products li.product .button { margin-top: 4px !important; min-height: 44px; display: inline-flex; align-items: center; padding: 0 22px !important; font-size: 15px !important; font-weight: 700; }
body ul.products li.product.outofstock a img { opacity: 0.55; }
body ul.products li.product.outofstock .woocommerce-LoopProduct-link::before {
  content: "Sold out"; position: absolute; top: 0; left: 50%; transform: translateX(-50%); z-index: 2;
  background: var(--ool-ink); color: #fff; border-radius: 999px; padding: 3px 12px;
  font-family: var(--wp--preset--font-family--dm-mono); font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; white-space: nowrap;
}
body ul.products li.product.outofstock .button { background: transparent !important; color: var(--ool-ink) !important; text-decoration: underline; text-underline-offset: 4px; box-shadow: none !important; transform: none !important; }
body ul.products li.product .added_to_cart { font-weight: 700; color: var(--ool-ink); }
.woocommerce a.button, .woocommerce button.button, .woocommerce .button {
  background: var(--ool-ink); color: #fff; border-radius: 999px; font-family: inherit; font-weight: 800; padding: 0.9em 1.6em;
}
.woocommerce span.onsale { background: var(--ool-yellow); color: var(--ool-ink); }


/* ---------- Shop header ---------- */
.ool-w-40ch { max-width: 40ch; }
.ool-d-shop-squiggle { top: 18%; right: 18%; width: clamp(130px, 15vw, 240px); --ool-rot: -8deg; }
.ool-d-shop-ghost { bottom: 30%; right: 5%; width: clamp(80px, 9vw, 150px); --ool-rot: 8deg; }
.woocommerce-products-header, .woocommerce-pagination, .woocommerce-result-count, .woocommerce-ordering { display: none !important; }

/* ---------- Single product ---------- */
.ool-product .wp-block-woocommerce-breadcrumbs, .ool-product .woocommerce-breadcrumb { font-family: var(--wp--preset--font-family--dm-mono); font-size: 13px; margin: 0; }
.ool-product .woocommerce-breadcrumb a { color: var(--ool-ink); }
.ool-product-gallery .woocommerce-product-gallery { width: 100% !important; float: none !important; margin: 0 !important; }
.ool-product-gallery .woocommerce-product-gallery__image img { background: #fff; }
.ool-product-gallery .flex-control-thumbs { display: flex; flex-wrap: wrap; gap: 12px; margin: 16px 0 0 !important; padding: 0; }
.ool-product-gallery .flex-control-thumbs li { width: calc(25% - 9px) !important; margin: 0 !important; float: none !important; list-style: none; }
.ool-product-gallery .flex-control-thumbs li img { background: var(--wp--preset--color--stone); opacity: 1 !important; transition: box-shadow 140ms ease; }
.ool-product-gallery .flex-control-thumbs li img.flex-active { box-shadow: 0 6px 0 -1px var(--ool-ink); }
.ool-product-gallery .woocommerce-product-gallery__trigger { background: #fff; border: 2px solid var(--ool-ink); }
.ool-buybox .wp-block-post-title { margin: 0; line-height: 1; letter-spacing: -0.04em; }
.ool-price, .ool-price .wc-block-components-product-price, .ool-buybox .price {
  font-size: clamp(34px, 3.2vw, 48px) !important; line-height: 1.1; font-weight: 800; color: var(--ool-ink);
}
.ool-price .wc-block-components-product-price__value, .ool-price .amount, .ool-price .woocommerce-Price-amount {
  background: linear-gradient(var(--ool-yellow), var(--ool-yellow)) no-repeat 0 88% / 100% 0.42em; padding: 0 0.08em;
}
.ool-excerpt p { margin: 0; max-width: 46ch; }
.ool-buybox form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 6px 0 0 !important; }
.ool-buybox form.cart .quantity { margin: 0 !important; }
.ool-buybox form.cart .quantity input.qty {
  width: 96px; min-height: 56px; border: 2px solid var(--ool-ink); border-radius: 999px; background: var(--wp--preset--color--stone);
  font: inherit; font-size: 18px; font-weight: 700; text-align: center;
}
.ool-buybox form.cart .single_add_to_cart_button, .ool-buybox .wp-block-button__link {
  font-size: 18px !important; font-weight: 800; border-radius: 999px;
  background: var(--ool-ink) !important; color: #fff !important;
}
.ool-buybox .stock { font-family: var(--wp--preset--font-family--dm-mono); font-size: 13px; color: var(--ool-ink) !important; margin: 0; }
.ool-buybox .stock.out-of-stock { display: inline-block; background: var(--ool-ink); color: #fff !important; border-radius: 999px; padding: 3px 12px; text-transform: uppercase; letter-spacing: 0.04em; }
.ool-details summary { font-size: 18px; padding: 16px 0; }
.ool-product-story .wp-block-post-content > * + * { margin-top: 1em; }
.ool-product-story h2, .ool-product-story h3 { font-size: clamp(30px, 3.4vw, 52px); line-height: 1.05; letter-spacing: -0.03em; }
.ool-product-story p { font-size: 19px; max-width: 60ch; }
.ool-product-story img { max-width: 160px; height: auto; }
@media (max-width: 781px) { .ool-product-top { flex-direction: column; } }


/* ---------- Business gifts ---------- */
.ool-w-9ch { max-width: 9ch; } .ool-w-10ch { max-width: 10ch; } .ool-w-12ch { max-width: 12ch; } .ool-w-13ch { max-width: 13ch; } .ool-w-46ch { max-width: 46ch; }
.ool-d-bg-spiral { bottom: 22%; left: 44%; width: clamp(60px, 7vw, 110px); --ool-rot: -6deg; }
.ool-d-bg-squiggle { top: 12%; right: 5%; width: clamp(110px, 14vw, 220px); --ool-rot: -8deg; }
.ool-mask-pile { position: relative; min-height: clamp(300px, 30vw, 440px); }
.ool-mask-pile span { position: absolute; display: block; }
.ool-mask-pile img { width: 100%; height: auto; display: block; }
.ool-pile-1 { top: 4%; left: 2%; width: 62%; --ool-rot: -10deg; }
.ool-pile-2 { top: 30%; right: 0; width: 60%; --ool-rot: 8deg; }
.ool-pile-3 { bottom: 2%; left: 14%; width: 64%; --ool-rot: -4deg; }
.ool-way { text-align: center; align-items: center; }
.ool-way > * { margin-left: auto !important; margin-right: auto !important; }
.ool-way p { max-width: 46ch; }
.ool-marker mark { background: linear-gradient(var(--ool-yellow), var(--ool-yellow)) no-repeat 0 88% / 100% 0.45em; color: inherit; }
.ool-strip { overflow-x: auto; scroll-snap-type: x proximity; gap: clamp(14px, 1.8vw, 24px) !important; padding-bottom: 14px; align-items: flex-start !important; scrollbar-color: var(--ool-ink) transparent; }
.ool-strip .wp-block-image { flex: none; margin: 0; scroll-snap-align: start; width: min-content; }
.ool-strip .wp-block-image img { height: clamp(200px, 20vw, 280px); width: auto; max-width: none; display: block; }
.ool-strip .wp-element-caption { margin: 10px 0 0; text-align: left; font-size: 15px; font-weight: 700; line-height: 1.35; color: var(--ool-ink); }
.ool-step-n { font-size: clamp(56px, 6vw, 96px); line-height: 1; font-weight: 800; letter-spacing: -0.04em; margin: 0; }
.ool-steps { gap: 36px clamp(24px, 3vw, 48px) !important; }

/* ---------- Cart & checkout ---------- */
.ool-cart .wc-block-cart__submit-button, .ool-checkout .wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-empty-cart-block .wp-block-button__link { border-radius: 999px; font-weight: 800; min-height: 56px; }
.ool-cart .wc-block-cart-items .wc-block-components-product-name { font-size: 22px; font-weight: 800; text-decoration: none; color: var(--ool-ink); }
.ool-cart .wc-block-cart-item__image img { width: 120px; }
.ool-cart .wc-block-components-product-metadata { display: none; }
.ool-cart .wc-block-components-quantity-selector, .ool-checkout .wc-block-components-text-input input,
.ool-checkout .wc-block-components-combobox .components-combobox-control__input { border-radius: 14px; border-width: 2px; }
.ool-cart .wc-block-components-quantity-selector { border: 2px solid var(--ool-ink); border-radius: 999px; }
.ool-cart .wc-block-components-quantity-selector::after { display: none; }
.wp-block-woocommerce-empty-cart-block { text-align: center; padding: clamp(24px, 4vw, 56px) 0; }
.wp-block-woocommerce-empty-cart-block::before {
  content: ""; display: block; width: clamp(140px, 16vw, 220px); aspect-ratio: 1; margin: 0 auto 16px;
  background: url(../images/doodle-banana.svg) center / contain no-repeat; animation: ool-wiggle 1.35s steps(1, end) infinite;
}
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title { font-size: clamp(28px, 3vw, 44px); font-weight: 800; }
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title::before { display: none !important; }


/* ---------- Logo hover ---------- */
.ool-logo .ool-logo-mark { transition: transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1); transform-origin: 50% 90%; }
.ool-logo:hover .ool-logo-mark, .ool-logo:focus-visible .ool-logo-mark { animation: ool-wiggle 0.9s steps(1, end) infinite; --ool-rot: -4deg; }

/* ---------- Product page v2 ---------- */
.ool-buybox form.cart .single_add_to_cart_button, .ool-buybox .single_add_to_cart_button.button { display: inline-block !important; height: auto !important; min-height: 0 !important; line-height: 24px !important; padding: 16px 34px !important; margin: 0 !important; vertical-align: middle; }
.ool-product-gallery .woocommerce-product-gallery { display: grid !important; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; align-items: start; }
.ool-product-gallery .woocommerce-product-gallery > .flex-viewport,
.ool-product-gallery .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper { grid-column: 2; grid-row: 1; }
.ool-product-gallery .woocommerce-product-gallery > .woocommerce-product-gallery__trigger { grid-column: 2; grid-row: 1; justify-self: end; align-self: start; position: relative !important; z-index: 9; margin: 12px; }
.ool-product-gallery .flex-control-thumbs { grid-column: 1; grid-row: 1; flex-direction: column; flex-wrap: nowrap; gap: 12px; margin: 0 !important; }
.ool-product-gallery .flex-control-thumbs li { width: 100% !important; }
.ool-product-gallery .woocommerce-product-gallery__image img { width: 100%; height: auto; }
@media (max-width: 700px) {
  .ool-product-gallery .woocommerce-product-gallery { grid-template-columns: minmax(0, 1fr); }
  .ool-product-gallery .flex-control-thumbs { grid-column: 1; grid-row: 2; flex-direction: row; }
  .ool-product-gallery .flex-control-thumbs li { width: calc(25% - 9px) !important; }
}

.ool-product-gallery .flex-control-thumbs li img { border-radius: 8px; opacity: .55; transition: opacity 150ms ease, transform 200ms ease; cursor: pointer; }
.ool-product-gallery .flex-control-thumbs li img.flex-active, .ool-product-gallery .flex-control-thumbs li img:hover { opacity: 1; }
.ool-product-gallery .flex-control-thumbs li img:hover { transform: translateY(-2px); }

/* v0.3.4: big main image, same height as the thumbnail column, photo sits on the bottom edge */
.ool-product-gallery .woocommerce-product-gallery { --ool-gal-h: clamp(440px, 48vw, 820px); grid-template-columns: 80px minmax(0, 1fr) !important; gap: 14px !important; align-items: start !important; }
.ool-product-gallery .woocommerce-product-gallery > .flex-viewport { height: var(--ool-gal-h) !important; margin: 0 !important; }
.ool-product-gallery .woocommerce-product-gallery__wrapper { margin: 0 !important; }
.ool-product-gallery .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image { height: var(--ool-gal-h); overflow: hidden; position: relative; background: #fff; }
.ool-product-gallery .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image > a { display: block; height: 100%; }
.ool-product-gallery .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image img.wp-post-image,
.ool-product-gallery .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image > a > img { width: 100% !important; height: 100% !important; max-width: none; object-fit: contain; object-position: center; }
.ool-product-gallery .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child > a > img { object-fit: cover; object-position: center bottom; }
.ool-product-gallery .flex-control-thumbs { max-height: var(--ool-gal-h); overflow-y: auto; scrollbar-width: none; gap: 10px !important; }
.ool-product-gallery .flex-control-thumbs li img { display: block; width: 100% !important; height: auto; aspect-ratio: 1; object-fit: contain; background: #fff; }
@media (max-width: 700px) {
  .ool-product-gallery .woocommerce-product-gallery { --ool-gal-h: min(110vw, 560px); grid-template-columns: minmax(0, 1fr) !important; }
  .ool-product-gallery .flex-control-thumbs { max-height: none; overflow: visible; }
}

/* v0.3.5: every slide is always the full width of the image area */
.ool-product-gallery .flex-viewport .woocommerce-product-gallery__wrapper { width: 100% !important; transform: none !important; }
.ool-product-gallery .flex-viewport .woocommerce-product-gallery__image { width: 100% !important; float: left; margin-right: -100% !important; }

/* v0.3.6: nothing between the column and the photo may be narrower than the column */
.ool-product-gallery > *,
.ool-product-gallery .wp-block-woocommerce-product-image-gallery,
.ool-product-gallery div.images,
.ool-product-gallery .woocommerce-product-gallery,
.woocommerce .ool-product-gallery div.product div.images,
.woocommerce div.product .ool-product-gallery div.images { width: 100% !important; max-width: none !important; float: none !important; margin-left: 0 !important; margin-right: 0 !important; }
.ool-product-gallery .woocommerce-product-gallery { position: relative; }
.ool-product-gallery .woocommerce-product-gallery > .flex-viewport,
.ool-product-gallery .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper { width: 100% !important; max-width: none !important; justify-self: stretch; }
.ool-product-gallery .woocommerce-product-gallery > .woocommerce-product-gallery__trigger { position: absolute !important; top: 14px !important; right: 14px !important; left: auto !important; margin: 0 !important; z-index: 9; }

/* Back-in-stock form */
.ool-notify { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; max-width: 460px; }
.ool-notify label { font-weight: 700; font-size: 15px; }
.ool-notify-row { display: flex; flex-wrap: wrap; gap: 10px; }
.ool-notify input[type="email"] { flex: 1 1 220px; min-height: 52px; padding: 0 22px; border: 2px solid var(--ool-ink); border-radius: 999px; font: inherit; font-size: 16px; box-sizing: border-box; }
.ool-notify button { min-height: 52px; padding: 0 26px; font-size: 16px; }
.ool-notify-done { margin: 12px 0 0; font-size: 17px; }

/* ---------- Business gifts v2 ---------- */
.ool-way-img { margin: 0 0 8px !important; }
.ool-way-img { width: 100%; }
.ool-way-img img { width: 100%; max-width: 440px; height: clamp(150px, 15vw, 200px); object-fit: contain; object-position: center; display: block; margin: 0 auto; }
.ool-steps-list { padding-left: 1.2em; font-size: 17px; }
.ool-steps-list li { margin-bottom: 6px; padding-left: 4px; }
.ool-form { display: flex; flex-direction: column; gap: 18px; }
.ool-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px 20px; }
.ool-form label { display: flex; flex-direction: column; gap: 6px; font-weight: 700; font-size: 15px; }
.ool-form label > span em { font-style: normal; font-weight: 400; }
.ool-form input[type="text"], .ool-form input[type="email"], .ool-form input[type="tel"], .ool-form input[type="date"], .ool-form textarea {
  min-height: 56px; box-sizing: border-box; padding: 0 22px; border: 2px solid var(--ool-ink); border-radius: 999px; background: #fff; color: var(--ool-ink); font: inherit; font-weight: 400; font-size: 16px;
}
.ool-form textarea { padding: 16px 22px; border-radius: 28px; resize: vertical; }
.ool-form ::placeholder, .ool-newsletter-form ::placeholder, .ool-notify ::placeholder { color: #8A8A8A; opacity: 1; }
.ool-form input:focus-visible, .ool-form textarea:focus-visible { outline: 3px solid var(--ool-ink); outline-offset: 2px; }
.ool-form-kind { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.ool-form-kind legend { font-weight: 700; font-size: 15px; padding: 0 0 8px; }
.ool-form-kind label { flex-direction: row; }
.ool-form-kind input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ool-form-kind label span { display: inline-flex; align-items: center; min-height: 46px; padding: 0 20px; border: 2px solid var(--ool-ink); border-radius: 999px; font-weight: 700; font-size: 16px; cursor: pointer; }
.ool-form-kind input:checked + span { background: var(--ool-ink); color: #fff; }
.ool-form-kind input:focus-visible + span { outline: 3px solid var(--ool-ink); outline-offset: 2px; }
.ool-form button { align-self: flex-start; min-height: 56px; padding: 0 32px; font-size: 18px; }
.ool-form-error { margin: 0; font-weight: 700; color: #7A1010; }
.ool-hp { position: absolute !important; left: -9999px; }
.ool-form-done-title { font-size: clamp(28px, 3vw, 44px); font-weight: 800; line-height: 1.05; margin: 0 0 8px; }

/* ---------- Newsletter form ---------- */
.ool-newsletter-form { display: flex; flex-wrap: wrap; gap: 10px; }
.ool-newsletter-form input[type="email"] {
  flex: 1 1 220px; min-height: 56px; padding: 0 22px; border: 2px solid var(--ool-ink); border-radius: 999px;
  background: #fff; color: var(--ool-ink); font: inherit; font-size: 16px; box-sizing: border-box;
}
.ool-newsletter-form button { flex: 0 0 auto; min-height: 56px; padding: 0 28px; font-size: 17px; }

/* ---------- Absolute-positioned decorations ---------- */
.ool-has-doodles { position: relative; }
.ool-doodle { position: absolute; margin: 0 !important; pointer-events: none; z-index: 0; }
.ool-has-doodles > *:not(.ool-doodle) { position: relative; z-index: 1; }
@media (max-width: 700px) { .ool-doodle.ool-hide-mobile { display: none; } }

/* ---------- FAQ (details block) ---------- */
.wp-block-details { border-top: 2px solid var(--ool-ink); border-bottom: 0; padding: 0 !important; margin: 0 !important; }
.wp-block-details:last-child, .ool-faq .wp-block-details:last-of-type { border-bottom: 2px solid var(--ool-ink); }
.wp-block-details summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px;
  padding: 20px 0; font-size: clamp(18px, 1.7vw, 22px); font-weight: 700; line-height: 1.3; min-height: 44px;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; flex: none; width: 32px; text-align: center; font-size: 30px; font-weight: 400; line-height: 1; transition: transform 200ms ease; }
.wp-block-details[open] summary::after { content: "\2212"; }
.wp-block-details summary:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px; }
.wp-block-details > :not(summary) { margin: 0 0 22px !important; padding-right: 48px; font-size: 17px; }

/* ---------- Footer ---------- */
.ool-footer a { color: inherit; text-decoration: none; }
.ool-footer a:hover { text-decoration: underline; text-underline-offset: 4px; }
.ool-footer .ool-footer-label { font-family: var(--wp--preset--font-family--dm-mono); font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--wp--preset--color--smoke); }

.ool-footer ul { list-style: none; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.ool-footer-mark { height: 60px; width: auto; }

/* The wavy block before the footer lets the black footer run underneath its scallops */
.wp-site-blocks > main, .wp-site-blocks > footer { margin-block-start: 0; }
.ool-wave-over-next { margin-bottom: calc(var(--ool-wave-h) * -1) !important; }
.ool-wave-over-next + footer .ool-footer { padding-top: calc(clamp(48px, 6vw, 88px) + var(--ool-wave-h)) !important; }
.ool-narrow { max-width: 11ch; }
.is-layout-constrained > :is(.ool-w-9ch, .ool-w-10ch, .ool-w-12ch, .ool-w-13ch, .ool-w-14ch, .ool-w-16ch, .ool-w-40ch, .ool-w-46ch):not(.has-text-align-center) { margin-left: max(0px, calc((100% - 1360px) / 2)) !important; margin-right: auto !important; }
.is-layout-constrained > .ool-narrow { margin-left: max(0px, calc((100% - 1360px) / 2)) !important; }
.ool-pos-top-right { top: 48px; right: 6%; }
.ool-pos-bottom-right { bottom: 24px; right: 6%; }
.ool-pos-top-left { top: 40px; left: 4%; }

/* ---------- Mono labels ---------- */
.ool-mono { font-family: var(--wp--preset--font-family--dm-mono); }


/* ---------- Mini cart drawer ---------- */
.wc-block-mini-cart__drawer .wc-block-mini-cart__title { font-size: clamp(24px, 2.4vw, 30px); letter-spacing: -0.02em; }
.wc-block-mini-cart__drawer .wc-block-cart-items__row { grid-template-columns: 112px 1fr auto; gap: 0 18px; padding: 18px 0; border-top: 2px solid var(--ool-ink); }
.wc-block-mini-cart__drawer .wc-block-cart-items__row:first-child { border-top: 0; }
.wc-block-mini-cart__drawer .wc-block-cart-item__image { width: 112px; padding-right: 0; }
.wc-block-mini-cart__drawer .wc-block-cart-item__image img { width: 100%; height: auto; }
.wc-block-mini-cart__drawer .wc-block-components-product-name { font-size: 20px; font-weight: 800; line-height: 1.2; text-decoration: none; color: var(--ool-ink); }
.wc-block-mini-cart__drawer .wc-block-components-product-name:hover { text-decoration: underline; text-underline-offset: 4px; }
.wc-block-mini-cart__drawer .wc-block-cart-item__prices,
.wc-block-mini-cart__drawer .wc-block-cart-item__total { font-size: 17px; font-weight: 700; }
.wc-block-mini-cart__drawer .wc-block-components-product-metadata { display: none; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector { border: 2px solid var(--ool-ink); border-radius: 999px; min-height: 44px; font-size: 17px; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector::after { display: none; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector__button { min-width: 44px; font-size: 20px; color: var(--ool-ink); opacity: 1; }
.wc-block-mini-cart__drawer .wc-block-components-totals-item__label,
.wc-block-mini-cart__drawer .wc-block-components-totals-item__value { font-size: 20px; font-weight: 800; }
.wc-block-mini-cart__drawer .wc-block-components-totals-item__description { font-size: 15px; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions .wc-block-components-button {
  font-size: 16px; min-height: 52px; padding: 12px 20px; border-radius: 999px;
}
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions .wc-block-components-button.outlined { border: 2px solid var(--ool-ink); }
.wc-block-mini-cart__drawer .wc-block-components-drawer__close:focus { outline: 2px solid var(--ool-ink); outline-offset: -6px; box-shadow: none; }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .is-style-wiggle img, .wp-block-woocommerce-empty-cart-block::before { animation: none; }
  .ool-js .is-style-peek .ool-peek-creature { transform: none; transition: none; }
  .wp-element-button, .wp-block-button__link, body ul.products li.product a img,
  .ool-header .wp-block-navigation .wp-block-navigation-item__content { transition: none; }
  .wp-element-button:hover, .wp-block-button__link:hover, ul.products li.product a:hover img { transform: none; }
}

/* ---------- v0.3.2: all shop buttons, text dead-centre ---------- */
body ul.products li.product a.button,
body .ool-buybox .single_add_to_cart_button,
body .woocommerce .single_add_to_cart_button {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  box-sizing: border-box !important; height: auto !important; line-height: 1.2 !important; white-space: nowrap;
  gap: 0 !important; flex-wrap: nowrap !important;
}
body ul.products li.product a.button { min-height: 48px !important; padding: 12px 24px !important; }
body .ool-buybox .single_add_to_cart_button, body .woocommerce .single_add_to_cart_button { min-height: 56px !important; padding: 16px 34px !important; }
/* WooCommerce adds a tick / spinner icon that wraps to a second line and pushes the text up */
body .woocommerce a.button.added::after, body .woocommerce a.button.loading::after,
body a.button.added::after, body a.button.loading::after,
body .single_add_to_cart_button::after, body .single_add_to_cart_button::before,
body ul.products li.product a.button::after { content: none !important; display: none !important; }
body a.button.loading { opacity: .6; }
/* No "View cart" link under the button – the cart icon in the header updates instead */
body a.added_to_cart, body .added_to_cart.wc-forward { display: none !important; }

/* ---------- v0.3.9: cart drawer rows ---------- */
.wc-block-mini-cart__drawer .wc-block-cart-items__row { display: grid !important; grid-template-columns: 128px minmax(0, 1fr) auto !important; column-gap: 20px !important; align-items: start; }
.wc-block-mini-cart__drawer .wc-block-cart-item__image { width: 128px !important; max-width: 128px !important; padding: 0 !important; overflow: hidden; grid-column: 1 !important; grid-row: 1 / span 2 !important; }
.wc-block-mini-cart__drawer .wc-block-cart-item__image a { display: block; }
.wc-block-mini-cart__drawer .wc-block-cart-item__image img { width: 128px !important; max-width: 128px !important; height: auto !important; object-fit: contain; display: block; }
.wc-block-mini-cart__drawer .wc-block-cart-item__product { grid-column: 2 / 3 !important; min-width: 0; padding: 0 !important; }
.wc-block-mini-cart__drawer .wc-block-cart-item__total { grid-column: 3 !important; grid-row: 1 !important; padding: 0 !important; }
/* the price per mask is the same as the line total for one mask – show it only once, on the right */
.wc-block-mini-cart__drawer .wc-block-cart-item__prices { display: none !important; }
.wc-block-mini-cart__drawer .wc-block-cart-item__quantity { margin-top: 12px; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__title { font-size: clamp(24px, 2.4vw, 30px) !important; line-height: 1.15; }

/* =========================================================
   v0.4.0: classic checkout / thank-you page in Ööloom style
   ========================================================= */
.ool-checkout .wp-block-post-content, .ool-checkout .woocommerce { max-width: 1360px !important; width: 100%; margin-left: auto !important; margin-right: auto !important; }
.ool-checkout .woocommerce { font-size: 17px; }

/* Layout: your details left, the order on the right */
.ool-checkout form.woocommerce-checkout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); column-gap: clamp(32px, 5vw, 88px); align-items: start; }
.ool-checkout form.woocommerce-checkout > * { grid-column: 1; }
.ool-checkout form.woocommerce-checkout > #customer_details { grid-column: 1; grid-row: 1 / span 3; }
.ool-checkout form.woocommerce-checkout > #order_review_heading { grid-column: 2; grid-row: 1; margin-top: 0; }
.ool-checkout form.woocommerce-checkout > #order_review { grid-column: 2; grid-row: 2; position: sticky; top: calc(var(--ool-header-h, 100px) + 24px); }
.ool-checkout .col2-set, .ool-checkout .col2-set .col-1, .ool-checkout .col2-set .col-2 { width: 100% !important; float: none !important; max-width: none; }
.ool-checkout .col2-set .col-2 { margin-top: 32px; }
.ool-checkout .col2-set::before, .ool-checkout .col2-set::after { display: none !important; }
@media (max-width: 900px) {
  .ool-checkout form.woocommerce-checkout { grid-template-columns: minmax(0, 1fr); }
  .ool-checkout form.woocommerce-checkout > * { grid-column: 1 !important; grid-row: auto !important; position: static !important; }
}

/* Headings */
.ool-checkout .woocommerce h3, .ool-checkout #order_review_heading, .ool-checkout .woocommerce-order h2 { font-size: clamp(26px, 2.4vw, 34px); font-weight: 800; letter-spacing: -0.02em; line-height: 1.1; margin: 0 0 20px; }
.ool-checkout #ship-to-different-address { margin: 0; }
.ool-checkout #ship-to-different-address label { display: flex; align-items: center; gap: 12px; cursor: pointer; font-size: 20px; }
.ool-checkout #ship-to-different-address label span { font-size: clamp(20px, 1.8vw, 24px); }

/* Fields */
.ool-checkout .woocommerce form .form-row { padding: 0; margin: 0 0 18px; }
.ool-checkout .woocommerce-billing-fields__field-wrapper, .ool-checkout .woocommerce-shipping-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; column-gap: 16px; }
.ool-checkout .woocommerce-billing-fields__field-wrapper > .form-row, .ool-checkout .woocommerce-shipping-fields__field-wrapper > .form-row { grid-column: 1 / -1; width: auto !important; float: none !important; }
.ool-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first, .ool-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-first { grid-column: 1; }
.ool-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last, .ool-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-last { grid-column: 2; }
@media (max-width: 520px) {
  .ool-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first, .ool-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last,
  .ool-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-first, .ool-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-last { grid-column: 1 / -1; }
}
.ool-checkout .woocommerce form .form-row label { display: block; font-weight: 700; font-size: 15px; line-height: 1.3; margin: 0 0 8px; }
.ool-checkout .woocommerce form .form-row label .optional { font-weight: 400; color: #6B6B6B; }
.ool-checkout .woocommerce form .form-row .required { color: var(--ool-ink); text-decoration: none; border: 0; }
.ool-checkout .woocommerce form .form-row input.input-text,
.ool-checkout .woocommerce form .form-row select,
.ool-checkout .woocommerce .select2-container .select2-selection--single,
.ool-checkout .woocommerce form .checkout_coupon input.input-text {
  box-sizing: border-box; width: 100%; min-height: 54px; height: auto; padding: 0 22px; border: 2px solid var(--ool-ink) !important; border-radius: 999px !important;
  background: #fff; color: var(--ool-ink); font: inherit; font-size: 16px; line-height: 50px; box-shadow: none; outline: none;
}
.ool-checkout .woocommerce form .form-row textarea { box-sizing: border-box; width: 100%; min-height: 130px; padding: 16px 22px; border: 2px solid var(--ool-ink) !important; border-radius: 28px !important; font: inherit; font-size: 16px; line-height: 1.5; resize: vertical; }
.ool-checkout .woocommerce form .form-row #billing_address_2, .ool-checkout .woocommerce form .form-row #shipping_address_2 { margin-top: 10px; }
.ool-checkout .woocommerce form .form-row input.input-text:focus, .ool-checkout .woocommerce form .form-row textarea:focus, .ool-checkout .woocommerce form .form-row select:focus { box-shadow: 0 0 0 4px var(--ool-yellow); }
.ool-checkout .woocommerce ::placeholder { color: #8A8A8A; opacity: 1; }
.ool-checkout .select2-container .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 50px; color: var(--ool-ink); }
.ool-checkout .select2-container .select2-selection--single .select2-selection__arrow { height: 50px; right: 16px; }
.ool-checkout .woocommerce form .form-row.woocommerce-invalid input.input-text, .ool-checkout .woocommerce form .form-row.woocommerce-invalid select { border-color: #D2372B !important; }
.ool-checkout input[type="checkbox"], .ool-checkout input[type="radio"] { accent-color: var(--ool-ink); width: 20px; height: 20px; margin: 0; flex: 0 0 auto; }

/* Notices (coupon, errors, info) */
.ool-checkout .woocommerce-info, .ool-checkout .woocommerce-message, .ool-checkout .woocommerce-error, .ool-checkout .wc-block-components-notice-banner {
  border: 0 !important; border-radius: 20px !important; background: var(--wp--preset--color--mist) !important; color: var(--ool-ink) !important; padding: 16px 22px !important; font-size: 16px; margin: 0 0 28px !important; box-shadow: none !important;
}
.ool-checkout .woocommerce-error, .ool-checkout .wc-block-components-notice-banner.is-error { background: #FBE3E1 !important; }
.ool-checkout .woocommerce-info::before, .ool-checkout .woocommerce-message::before, .ool-checkout .woocommerce-error::before { display: none !important; }
.ool-checkout .wc-block-components-notice-banner > svg { background: var(--ool-ink) !important; fill: #fff; }
.ool-checkout .woocommerce-info a, .ool-checkout .woocommerce-message a { color: var(--ool-ink); font-weight: 700; text-underline-offset: 3px; }
.ool-checkout form.checkout_coupon { border: 0 !important; border-radius: 24px; background: var(--wp--preset--color--stone); padding: 22px !important; margin: -12px 0 28px !important; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.ool-checkout form.checkout_coupon p:first-child { flex: 1 0 100%; margin: 0; }
.ool-checkout form.checkout_coupon .form-row { width: auto !important; float: none !important; margin: 0 !important; }
.ool-checkout form.checkout_coupon .form-row-first { flex: 1 1 220px; }
.ool-checkout .clear { display: none; }

/* Order summary card */
.ool-checkout #order_review { background: var(--wp--preset--color--stone); border-radius: 28px; padding: clamp(20px, 2.4vw, 32px); }
.ool-checkout table.shop_table { border: 0 !important; border-radius: 0; margin: 0 0 8px !important; border-collapse: collapse !important; width: 100%; font-size: 16px; }
.ool-checkout table.shop_table th, .ool-checkout table.shop_table td { border: 0 !important; border-top: 2px solid rgba(20, 20, 20, .12) !important; padding: 14px 0 !important; background: transparent !important; vertical-align: top; text-align: left; }
.ool-checkout table.shop_table thead th { border-top: 0 !important; padding-top: 0 !important; font-family: var(--wp--preset--font-family--dm-mono); font-size: 13px; font-weight: 400; text-transform: uppercase; letter-spacing: .06em; }
.ool-checkout table.shop_table td:last-child, .ool-checkout table.shop_table th:last-child { text-align: right; }
.ool-checkout table.shop_table .product-name { font-weight: 700; }
.ool-checkout table.shop_table .product-quantity { font-weight: 400; color: #6B6B6B; }
.ool-checkout table.shop_table tfoot th { font-weight: 700; }
.ool-checkout table.shop_table tfoot .order-total th, .ool-checkout table.shop_table tfoot .order-total td { border-top: 2px solid var(--ool-ink) !important; font-size: 22px; font-weight: 800; padding-top: 18px !important; }
.ool-checkout table.shop_table tfoot .order-total td strong { font-weight: 800; }
.ool-checkout table.shop_table .includes_tax, .ool-checkout table.shop_table small { display: block; font-size: 13px; font-weight: 400; color: #6B6B6B; }
.ool-checkout table.shop_table #shipping_method { list-style: none; margin: 0; padding: 0; text-align: right; }
.ool-checkout table.shop_table #shipping_method li { display: flex; gap: 10px; align-items: center; justify-content: flex-end; margin: 0 0 8px; }
.ool-checkout table.shop_table .woocommerce-shipping-totals td { font-weight: 400; font-size: 15px; }

/* Payment box */
.ool-checkout #payment { background: transparent !important; border-radius: 0; margin-top: 8px; }
.ool-checkout #payment ul.payment_methods { border: 0 !important; padding: 0 0 8px !important; margin: 0; list-style: none; }
.ool-checkout #payment ul.payment_methods li { background: #fff; border-radius: 20px; padding: 14px 18px !important; margin: 0 0 10px; line-height: 1.4; }
.ool-checkout #payment ul.payment_methods li > label { font-weight: 700; display: inline; }
.ool-checkout #payment ul.payment_methods li.woocommerce-notice { background: transparent; padding: 0 !important; }
.ool-checkout #payment div.payment_box { background: var(--wp--preset--color--mist) !important; border-radius: 16px; color: var(--ool-ink) !important; font-size: 15px; margin: 12px 0 0 !important; }
.ool-checkout #payment div.payment_box::before { display: none !important; }
.ool-checkout #payment div.form-row.place-order { padding: 8px 0 0 !important; margin: 0 !important; }
.ool-checkout .woocommerce-terms-and-conditions-wrapper { font-size: 15px; margin-bottom: 18px; }
.ool-checkout .woocommerce-privacy-policy-text p { margin: 0 0 14px; color: #555; }
.ool-checkout .woocommerce-terms-and-conditions-checkbox-text { line-height: 1.4; }
.ool-checkout .woocommerce-form__label-for-checkbox { display: flex !important; gap: 12px; align-items: flex-start; font-weight: 400 !important; }
.ool-checkout .woocommerce-form__label-for-checkbox input { margin-top: 1px !important; }
.ool-checkout #place_order, .ool-checkout .woocommerce button.button, .ool-checkout .woocommerce a.button {
  display: inline-flex !important; align-items: center; justify-content: center; box-sizing: border-box; min-height: 56px; padding: 14px 32px !important; line-height: 1.2 !important;
  border: 0; border-radius: 999px !important; background: var(--ool-ink) !important; color: #fff !important; font: inherit; font-size: 18px !important; font-weight: 800 !important; cursor: pointer;
  transition: transform 180ms ease, box-shadow 180ms ease;
}
.ool-checkout #place_order { width: 100%; float: none !important; }
.ool-checkout #place_order:hover, .ool-checkout .woocommerce button.button:hover, .ool-checkout .woocommerce a.button:hover { transform: translateY(-3px); box-shadow: 0 5px 0 0 var(--ool-teal); }
.ool-checkout .blockUI.blockOverlay { border-radius: 28px; }

/* Thank-you page */
.ool-checkout .woocommerce-order { display: grid; gap: 28px; }
.ool-checkout .woocommerce-notice--success, .ool-checkout .woocommerce-thankyou-order-received {
  background: var(--ool-yellow); border-radius: 24px; padding: 24px 28px; font-size: clamp(22px, 2.2vw, 30px); font-weight: 800; letter-spacing: -0.01em; line-height: 1.2; margin: 0;
}
.ool-checkout ul.woocommerce-order-overview { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.ool-checkout ul.woocommerce-order-overview li { border: 0 !important; margin: 0 !important; padding: 14px 20px !important; background: var(--wp--preset--color--stone); border-radius: 18px; font-family: var(--wp--preset--font-family--dm-mono); font-size: 12px; text-transform: uppercase; letter-spacing: .05em; }
.ool-checkout ul.woocommerce-order-overview li strong { display: block; margin-top: 4px; font-family: var(--wp--preset--font-family--parkinsans); font-size: 17px; text-transform: none; letter-spacing: 0; }
.ool-checkout .woocommerce-order-details, .ool-checkout .woocommerce-customer-details { background: var(--wp--preset--color--stone); border-radius: 28px; padding: clamp(20px, 2.4vw, 32px); margin: 0 !important; }
.ool-checkout .woocommerce-customer-details address { border: 0 !important; padding: 0 !important; font-style: normal; line-height: 1.6; }
.ool-checkout .woocommerce-customer-details .woocommerce-columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; }
.ool-checkout .woocommerce-customer-details .woocommerce-column { width: auto !important; float: none !important; }
.ool-checkout #ship-to-different-address { margin-bottom: 32px !important; }
.ool-checkout #payment ul.payment_methods li.woocommerce-notice { background: #fff !important; padding: 14px 18px !important; margin: 0 0 10px !important; border-radius: 18px !important; font-size: 15px; }
.ool-checkout .woocommerce-terms-and-conditions-wrapper a, .ool-checkout .woocommerce-privacy-policy-text a { color: var(--ool-ink); font-weight: 700; text-underline-offset: 3px; }
.ool-checkout .woocommerce form .form-row select { appearance: none; -webkit-appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23141414' stroke-width='2.4'/%3E%3C/svg%3E") no-repeat right 22px center; padding-right: 50px; }

/* v0.4.1: drawer – one image only, bigger text, calmer buttons */
.wc-block-mini-cart__drawer .wc-block-cart-item__image > * + *,
.wc-block-mini-cart__drawer .wc-block-cart-item__image img + img,
.wc-block-mini-cart__drawer .wc-block-cart-item__image a + a { display: none !important; }
.wc-block-mini-cart__drawer .wc-block-cart-items__row:focus, .wc-block-mini-cart__drawer .wc-block-cart-items__row:focus-within, .wc-block-mini-cart__drawer .wc-block-cart-items:focus { outline: none !important; box-shadow: none !important; }
.wc-block-mini-cart__drawer .wc-block-components-product-name { font-size: 24px !important; font-weight: 800 !important; line-height: 1.15 !important; }
.wc-block-mini-cart__drawer .wc-block-cart-item__total, .wc-block-mini-cart__drawer .wc-block-cart-item__total .wc-block-components-product-price { font-size: 22px !important; font-weight: 800 !important; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector { min-height: 52px !important; width: 150px !important; font-size: 20px !important; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector input { font-size: 20px !important; font-weight: 700; }
.wc-block-mini-cart__drawer .wc-block-cart-item__remove-link svg { width: 28px; height: 28px; }
.wc-block-mini-cart__drawer .wc-block-cart-item__quantity { display: flex; align-items: center; gap: 14px; margin-top: 14px !important; }
.wc-block-mini-cart__drawer .wc-block-components-totals-item__label, .wc-block-mini-cart__drawer .wc-block-components-totals-item__value { font-size: 24px !important; }
.wc-block-mini-cart__drawer .wc-block-components-totals-item__description { font-size: 16px !important; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions .wc-block-components-button,
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions a.wc-block-components-button {
  min-height: 0 !important; height: 56px !important; padding: 0 20px !important; font-size: 17px !important; line-height: 1 !important;
  display: inline-flex !important; align-items: center; justify-content: center;
}
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions .wc-block-components-button .wc-block-components-button__text { line-height: 1; }

/* v0.4.2: Adult / Kids pills in the shop header */
.ool-shop-filter { display: flex; flex-wrap: wrap; gap: 12px; margin-top: clamp(14px, 1.6vw, 24px) !important; position: relative; z-index: 3; }
.is-layout-constrained > .ool-shop-filter { margin-left: max(0px, calc((100% - 1360px) / 2)) !important; margin-right: auto !important; }
.ool-shop-pill { display: inline-flex; align-items: center; min-height: 52px; padding: 0 26px; border: 2px solid var(--ool-ink); border-radius: 999px; color: var(--ool-ink); background: transparent; font-weight: 800; font-size: 17px; text-decoration: none; transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease; }
.ool-shop-pill:hover { transform: translateY(-3px); box-shadow: 0 4px 0 0 var(--ool-ink); color: var(--ool-ink); }
.ool-shop-pill.is-active { background: var(--ool-ink); color: #fff; }
.ool-shop-pill.is-active:hover { color: #fff; box-shadow: 0 4px 0 0 var(--ool-teal); }
.ool-shop-pill.is-active::after { content: "×"; margin-left: 10px; font-weight: 400; font-size: 20px; line-height: 1; }

/* =========================================================
   v0.4.4: mobile fixes
   ========================================================= */
/* Menu on one line */
.ool-header .wp-block-navigation .wp-block-navigation-item__content { white-space: nowrap; }
@media (max-width: 600px) {
  .ool-header .wp-block-navigation, .ool-header .wp-block-navigation__container { gap: 6px 16px !important; flex-wrap: nowrap !important; }
  .ool-header .wp-block-navigation .wp-block-navigation-item__content { font-size: 16px !important; }
}
@media (max-width: 360px) {
  .ool-header .wp-block-navigation, .ool-header .wp-block-navigation__container { gap: 6px 11px !important; }
  .ool-header .wp-block-navigation .wp-block-navigation-item__content { font-size: 14.5px !important; }
}

/* Shop header: ghost sits up by the title, never on the buttons */
@media (max-width: 700px) {
  .ool-d-shop-ghost { bottom: auto !important; top: 14px !important; right: 4% !important; width: 64px !important; }
}

/* Hero: photo on top, text below it on white (text only overlaps the photo's lower edge) */
@media (max-width: 700px) {
  .ool-hero { --ool-hero-img: min(108vw, 520px); min-height: 0 !important; padding-top: calc(var(--ool-hero-img) - 64px) !important; background: #fff; }
  .ool-hero > .wp-block-cover__image-background { height: var(--ool-hero-img) !important; bottom: auto !important; object-position: 62% 18% !important; }
  .ool-hero > .wp-block-cover__background { height: var(--ool-hero-img) !important; bottom: auto !important; }
  .ool-d-hero-ghost { top: 3% !important; }
}
@media (max-width: 440px) {
  .ool-header .wp-block-navigation, .ool-header .wp-block-navigation__container { gap: 6px 12px !important; }
  .ool-header .wp-block-navigation .wp-block-navigation-item__content { font-size: 14.5px !important; }
}
@media (max-width: 600px) {
  .ool-header .wp-block-navigation { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
  .ool-header .wp-block-navigation::-webkit-scrollbar { display: none; }
}

/* v0.4.5: checkout – shipping choices as a tidy list, country field same height as the others */
.ool-checkout table.shop_table tr.woocommerce-shipping-totals { display: grid; grid-template-columns: 1fr; border-top: 2px solid rgba(20, 20, 20, .12); }
.ool-checkout table.shop_table tr.woocommerce-shipping-totals > th, .ool-checkout table.shop_table tr.woocommerce-shipping-totals > td { display: block; border-top: 0 !important; text-align: left !important; }
.ool-checkout table.shop_table tr.woocommerce-shipping-totals > th { padding-bottom: 6px !important; }
.ool-checkout table.shop_table tr.woocommerce-shipping-totals > td { padding-top: 0 !important; }
.ool-checkout table.shop_table #shipping_method { text-align: left; display: grid; gap: 8px; }
.ool-checkout table.shop_table #shipping_method li { display: flex; align-items: center; justify-content: flex-start; gap: 12px; margin: 0; padding: 12px 16px; background: #fff; border-radius: 16px; border: 2px solid transparent; cursor: pointer; }
.ool-checkout table.shop_table #shipping_method li:has(input:checked) { border-color: var(--ool-ink); }
.ool-checkout table.shop_table #shipping_method li > input { margin: 0 !important; }
.ool-checkout table.shop_table #shipping_method li > label { flex: 1; display: flex; justify-content: space-between; gap: 12px; margin: 0; cursor: pointer; font-size: 15px; font-weight: 400; }
.ool-checkout table.shop_table #shipping_method li > label .amount { font-weight: 800; white-space: nowrap; }
.ool-checkout table.shop_table #shipping_method li > *:not(input):not(label) { flex: 1 0 100%; }
.ool-checkout table.shop_table #shipping_method li { flex-wrap: wrap; }
.ool-checkout .woocommerce .select2-container .select2-selection--single { height: 54px !important; min-height: 54px; display: flex; align-items: center; padding: 0 22px !important; line-height: normal !important; }
.ool-checkout .select2-container .select2-selection--single .select2-selection__rendered { line-height: 1.2 !important; padding: 0 !important; }
.ool-checkout .select2-container .select2-selection--single .select2-selection__arrow { top: 50% !important; transform: translateY(-50%); height: 20px !important; }
.ool-checkout .woocommerce .select2-container { width: 100% !important; }

/* =========================================================
   v0.4.6: thank-you page (order received), whatever template WooCommerce uses
   ========================================================= */
body.woocommerce-order-received .woocommerce-order { display: flex; flex-direction: column; gap: 28px; font-size: 17px; }
body.woocommerce-order-received .woocommerce-order > * { margin-top: 0 !important; margin-bottom: 0 !important; }
body.woocommerce-order-received .woocommerce-notice--success,
body.woocommerce-order-received .woocommerce-thankyou-order-received {
  background: var(--ool-yellow); border-radius: 24px; padding: 24px 28px; font-size: clamp(22px, 2.2vw, 30px); font-weight: 800; letter-spacing: -0.01em; line-height: 1.2; margin: 0;
}
body.woocommerce-order-received ul.woocommerce-order-overview { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
body.woocommerce-order-received ul.woocommerce-order-overview::before, body.woocommerce-order-received ul.woocommerce-order-overview::after { display: none; }
body.woocommerce-order-received ul.woocommerce-order-overview li { float: none; border: 0 !important; margin: 0 !important; padding: 14px 20px !important; background: var(--wp--preset--color--stone); border-radius: 18px; font-family: var(--wp--preset--font-family--dm-mono); font-size: 12px; text-transform: uppercase; letter-spacing: .05em; }
body.woocommerce-order-received ul.woocommerce-order-overview li strong { display: block; margin-top: 4px; font-family: var(--wp--preset--font-family--parkinsans); font-size: 17px; text-transform: none; letter-spacing: 0; }
body.woocommerce-order-received .woocommerce-order h2 { font-size: clamp(24px, 2.2vw, 30px); font-weight: 800; letter-spacing: -0.02em; line-height: 1.1; margin: 0 0 16px; }
body.woocommerce-order-received .woocommerce-order-details,
body.woocommerce-order-received .woocommerce-customer-details,
body.woocommerce-order-received .woocommerce-order > section:not(.woocommerce-order-details):not(.woocommerce-customer-details) {
  background: var(--wp--preset--color--stone); border-radius: 28px; padding: clamp(20px, 2.4vw, 32px); margin: 0 !important;
}
body.woocommerce-order-received table.shop_table { border: 0 !important; border-radius: 0; margin: 0 !important; border-collapse: collapse !important; width: 100%; font-size: 16px; }
body.woocommerce-order-received table.shop_table th, body.woocommerce-order-received table.shop_table td { border: 0 !important; border-top: 2px solid rgba(20, 20, 20, .12) !important; padding: 14px 0 !important; background: transparent !important; text-align: left; vertical-align: top; }
body.woocommerce-order-received table.shop_table thead th { border-top: 0 !important; padding-top: 0 !important; font-family: var(--wp--preset--font-family--dm-mono); font-size: 13px; font-weight: 400; text-transform: uppercase; letter-spacing: .06em; }
body.woocommerce-order-received table.shop_table td:last-child, body.woocommerce-order-received table.shop_table th:last-child { text-align: right; }
body.woocommerce-order-received table.shop_table .product-name a { color: var(--ool-ink); font-weight: 700; text-decoration: none; }
body.woocommerce-order-received table.shop_table .product-quantity { font-weight: 400; color: #6B6B6B; }
body.woocommerce-order-received table.shop_table tfoot tr:last-child th, body.woocommerce-order-received table.shop_table tfoot tr:last-child td { border-top: 2px solid var(--ool-ink) !important; font-size: 22px; font-weight: 800; padding-top: 18px !important; }
body.woocommerce-order-received table.shop_table small, body.woocommerce-order-received table.shop_table .includes_tax { display: block; font-size: 13px; font-weight: 400; color: #6B6B6B; }
body.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; }
body.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns::before, body.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns::after { display: none; }
body.woocommerce-order-received .woocommerce-customer-details .woocommerce-column { width: auto !important; float: none !important; padding: 0 !important; }
body.woocommerce-order-received .woocommerce-order address,
body.woocommerce-order-received .woocommerce-order section address { border: 0 !important; padding: 0 !important; margin: 0; font-style: normal; line-height: 1.6; background: transparent; }
body.woocommerce-order-received .woocommerce-order section > div, body.woocommerce-order-received .woocommerce-order section > p { border: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }

/* =========================================================
   v0.4.7: order confirmation (block template)
   ========================================================= */
.ool-thanks-head .wp-block-woocommerce-order-confirmation-status { position: relative; z-index: 3; max-width: 1360px; }
.ool-thanks-head .wp-block-woocommerce-order-confirmation-status h1 { font-size: clamp(48px, 7vw, 120px) !important; font-weight: 800; letter-spacing: -0.04em; line-height: 0.95; margin: 0 0 18px; }
.ool-thanks-head .wp-block-woocommerce-order-confirmation-status p { max-width: 40ch; font-size: clamp(18px, 1.6vw, 22px); line-height: 1.45; margin: 0; }
.ool-thanks-body { display: flex; flex-direction: column; gap: clamp(20px, 2.4vw, 28px); padding-bottom: 0 !important; }
.ool-thanks-body > * { margin-top: 0 !important; margin-bottom: 0 !important; max-width: 1360px; width: 100%; }
.ool-thanks-body h2.wp-block-heading { font-size: clamp(24px, 2.2vw, 30px) !important; font-weight: 800; letter-spacing: -0.02em; line-height: 1.1; margin: 0 0 16px !important; }

/* Summary chips */
.ool-thanks .wc-block-order-confirmation-summary, .ool-thanks .wp-block-woocommerce-order-confirmation-summary { margin: 0; }
.ool-thanks .wc-block-order-confirmation-summary-list { list-style: none; margin: 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 12px; }
.ool-thanks .wc-block-order-confirmation-summary-list-item { flex: 0 1 auto !important; margin: 0 !important; padding: 14px 20px !important; background: var(--wp--preset--color--stone); border-radius: 18px; font-size: 17px; }
.ool-thanks .wc-block-order-confirmation-summary-list-item__key { display: block; margin-bottom: 4px; font-family: var(--wp--preset--font-family--dm-mono); font-size: 12px !important; font-weight: 400 !important; text-transform: uppercase; letter-spacing: .05em; }
.ool-thanks .wc-block-order-confirmation-summary-list-item__value { font-weight: 700; }

/* Cards */
.ool-thanks .wp-block-woocommerce-order-confirmation-totals-wrapper,
.ool-thanks .wp-block-woocommerce-order-confirmation-downloads-wrapper,
.ool-thanks .wp-block-woocommerce-order-confirmation-shipping-wrapper,
.ool-thanks .wp-block-woocommerce-order-confirmation-billing-wrapper,
.ool-thanks .wp-block-woocommerce-order-confirmation-additional-fields-wrapper,
.ool-thanks .wp-block-woocommerce-order-confirmation-additional-information > * {
  background: var(--wp--preset--color--stone); border-radius: 28px; padding: clamp(20px, 2.4vw, 32px); box-sizing: border-box; height: 100%;
}
.ool-thanks .wp-block-woocommerce-order-confirmation-additional-information { display: flex; flex-direction: column; gap: 20px; }
.ool-thanks .wp-block-woocommerce-order-confirmation-additional-information > *:empty { display: none; }
.ool-thanks .ool-thanks-addresses { gap: clamp(20px, 2.4vw, 28px) !important; margin: 0 !important; }
.ool-thanks address, .ool-thanks .wc-block-order-confirmation-address-wrapper, .ool-thanks .wp-block-woocommerce-order-confirmation-shipping-address, .ool-thanks .wp-block-woocommerce-order-confirmation-billing-address {
  border: 0 !important; padding: 0 !important; margin: 0; background: transparent !important; font-style: normal; line-height: 1.6; font-size: 17px;
}
.ool-thanks .wp-block-woocommerce-order-confirmation-additional-information h2,
.ool-thanks .wp-block-woocommerce-order-confirmation-additional-information h3 { font-size: clamp(22px, 2vw, 26px) !important; font-weight: 800; margin: 0 0 12px; }
.ool-thanks .wp-block-woocommerce-order-confirmation-additional-information * { border-color: transparent; }

/* Totals table */
.ool-thanks table { border: 0 !important; border-collapse: collapse !important; width: 100%; font-size: 16px; margin: 0; }
.ool-thanks table th, .ool-thanks table td { border: 0 !important; border-top: 2px solid rgba(20, 20, 20, .12) !important; padding: 14px 0 !important; background: transparent !important; text-align: left; vertical-align: top; }
.ool-thanks table thead th { border-top: 0 !important; padding-top: 0 !important; font-family: var(--wp--preset--font-family--dm-mono); font-size: 13px; font-weight: 400; text-transform: uppercase; letter-spacing: .06em; }
.ool-thanks table td:last-child, .ool-thanks table th:last-child { text-align: right; }
.ool-thanks table a { color: var(--ool-ink); font-weight: 700; text-decoration: none; }
.ool-thanks table tfoot tr:last-child th, .ool-thanks table tfoot tr:last-child td { border-top: 2px solid var(--ool-ink) !important; font-size: 22px; font-weight: 800; padding-top: 18px !important; }
.ool-thanks table small, .ool-thanks table .includes_tax { display: block; font-size: 13px; font-weight: 400; color: #6B6B6B; }

/* Sign-off card */
.ool-thanks-card { display: flex; gap: clamp(20px, 3vw, 40px); align-items: center; background: var(--ool-teal); color: var(--ool-ink); border-radius: 32px; padding: clamp(24px, 3.4vw, 48px); max-width: 1360px; margin: 0 auto; box-sizing: border-box; }
.ool-thanks-doodle { width: clamp(80px, 9vw, 130px); height: auto; flex: 0 0 auto; transform: rotate(-8deg); animation: ool-wiggle 1.35s steps(1, end) infinite; }
.ool-thanks-kicker { margin: 0 0 6px; font-family: var(--wp--preset--font-family--dm-mono); font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: var(--ool-ink); }
.ool-thanks-title { margin: 0 0 10px; font-size: clamp(26px, 2.8vw, 40px); font-weight: 800; letter-spacing: -0.02em; line-height: 1.1; color: var(--ool-ink); }
.ool-thanks-text { margin: 0 0 22px; max-width: 52ch; font-size: 17px; line-height: 1.55; color: var(--ool-ink); }
.ool-thanks-links { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin: 0; }
.ool-thanks-card .wp-element-button { background: var(--ool-ink) !important; color: #fff !important; }
.ool-thanks-card .wp-element-button:hover { box-shadow: 0 5px 0 0 var(--ool-yellow) !important; }
.ool-thanks-mail { color: var(--ool-ink); font-size: 15px; text-underline-offset: 4px; }
@media (max-width: 700px) { .ool-thanks-card { flex-direction: column; align-items: flex-start; } }
@media (prefers-reduced-motion: reduce) { .ool-thanks-doodle { animation: none; } }

/* v0.5.0: short laptop screens – the spiral would sit on the label */
@media (min-width: 701px) and (max-height: 760px) { .ool-d-hero-spiral { display: none !important; } }

/* v0.5.1: carrier logos in the shipping list */
.ool-checkout table.shop_table #shipping_method li > label { align-items: center; }
.ool-carrier-logo { width: 26px; height: 26px; object-fit: contain; flex: 0 0 26px; margin-right: 2px; }
:is(.ool-checkout, .ool-cart) table.shop_table #shipping_method li > label:has(.ool-carrier-logo) { justify-content: flex-start; }
:is(.ool-checkout, .ool-cart) table.shop_table #shipping_method li > label:has(.ool-carrier-logo) .amount { margin-left: auto; }


/* =========================================================
   v0.5.2: classic cart page in the same card system as checkout
   ========================================================= */
.ool-cart .wp-block-post-content, .ool-cart .woocommerce { max-width: 1360px !important; width: 100%; margin-left: auto !important; margin-right: auto !important; }
.ool-cart .woocommerce { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); column-gap: clamp(28px, 4vw, 72px); align-items: start; font-size: 17px; }
.ool-cart .woocommerce > * { grid-column: 1 / -1; }
.ool-cart .woocommerce > form.woocommerce-cart-form { grid-column: 1; grid-row: 2; margin: 0; }
.ool-cart .woocommerce > .cart-collaterals { grid-column: 2; grid-row: 2; width: auto; position: sticky; top: calc(var(--ool-header-h, 100px) + 24px); }
.ool-cart .cart-collaterals .cart_totals, .ool-cart .cart-collaterals .cross-sells { width: 100% !important; float: none !important; }
@media (max-width: 900px) {
  .ool-cart .woocommerce { grid-template-columns: minmax(0, 1fr); }
  .ool-cart .woocommerce > form.woocommerce-cart-form, .ool-cart .woocommerce > .cart-collaterals { grid-column: 1; grid-row: auto; position: static; margin-top: 24px; }
}

/* Item rows as white cards on a stone panel */
.ool-cart form.woocommerce-cart-form { background: var(--wp--preset--color--stone); border-radius: 28px; padding: clamp(16px, 2vw, 24px); }
.ool-cart table.shop_table.cart { border: 0 !important; margin: 0 !important; width: 100%; border-collapse: separate !important; border-spacing: 0; }
.ool-cart table.shop_table.cart thead { display: none; }
.ool-cart table.shop_table.cart tbody { display: grid; gap: 12px; }
.ool-cart table.shop_table.cart tr.cart_item {
  display: grid; grid-template-columns: 96px minmax(0, 1fr) auto auto; grid-template-areas: "img name qty total" "img price qty total";
  align-items: center; column-gap: 18px; row-gap: 2px; background: #fff; border-radius: 20px; padding: 14px 16px; position: relative;
}
.ool-cart table.shop_table.cart tr.cart_item td { display: block; border: 0 !important; padding: 0 !important; background: transparent !important; text-align: left !important; }
.ool-cart table.shop_table.cart tr.cart_item td::before { display: none !important; }
.ool-cart table.shop_table.cart td.product-thumbnail { grid-area: img; }
.ool-cart table.shop_table.cart td.product-thumbnail img { width: 96px !important; height: auto; display: block; }
.ool-cart table.shop_table.cart td.product-name { grid-area: name; align-self: end; padding-right: 28px !important; }
.ool-cart table.shop_table.cart td.product-name a { color: var(--ool-ink); font-size: 22px; font-weight: 800; text-decoration: none; letter-spacing: -0.01em; }
.ool-cart table.shop_table.cart td.product-price { grid-area: price; align-self: start; color: #6B6B6B; font-size: 15px; }
.ool-cart table.shop_table.cart td.product-quantity { grid-area: qty; }
.ool-cart table.shop_table.cart td.product-subtotal { grid-area: total; font-size: 20px; font-weight: 800; min-width: 84px; text-align: right !important; }
.ool-cart table.shop_table.cart td.product-remove { position: absolute; top: 10px; right: 10px; }
.ool-cart table.shop_table.cart td.product-remove a.remove {
  display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; font-size: 20px; line-height: 1;
  color: var(--ool-ink) !important; background: var(--wp--preset--color--stone); text-decoration: none; font-weight: 400;
}
.ool-cart table.shop_table.cart td.product-remove a.remove:hover { background: var(--ool-ink); color: #fff !important; }
.ool-cart table.shop_table.cart tr.cart_item:has(td.product-remove) td.product-subtotal { margin-right: 30px; }
.ool-cart .quantity .qty { width: 84px; min-height: 48px; border: 2px solid var(--ool-ink); border-radius: 999px; text-align: center; font: inherit; font-size: 17px; font-weight: 700; background: #fff; }
@media (max-width: 600px) {
  .ool-cart table.shop_table.cart tr.cart_item { grid-template-columns: 72px minmax(0, 1fr) auto; grid-template-areas: "img name name" "img price price" "img qty total"; row-gap: 8px; }
  .ool-cart table.shop_table.cart td.product-thumbnail img { width: 72px !important; }
  .ool-cart table.shop_table.cart td.product-name a { font-size: 19px; }
  .ool-cart table.shop_table.cart tr.cart_item:has(td.product-remove) td.product-subtotal { margin-right: 0; }
}

/* Coupon + update row */
.ool-cart table.shop_table.cart tr:not(.cart_item) { display: block; }
.ool-cart table.shop_table.cart td.actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; border: 0 !important; padding: 8px 0 0 !important; background: transparent !important; }
.ool-cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; float: none !important; }
.ool-cart td.actions .coupon label { display: none; }
.ool-cart td.actions .coupon .input-text { width: 200px !important; min-height: 48px; padding: 0 20px !important; border: 2px solid var(--ool-ink) !important; border-radius: 999px !important; font: inherit; font-size: 16px; background: #fff; margin: 0 !important; }
.ool-cart td.actions .button, .ool-cart .woocommerce button.button, .ool-cart .woocommerce a.button {
  display: inline-flex !important; align-items: center; justify-content: center; min-height: 48px; padding: 12px 24px !important; line-height: 1.2 !important;
  border: 2px solid var(--ool-ink) !important; border-radius: 999px !important; background: transparent !important; color: var(--ool-ink) !important; font: inherit; font-size: 16px !important; font-weight: 800 !important; cursor: pointer;
  transition: transform 180ms ease, box-shadow 180ms ease; float: none !important;
}
.ool-cart td.actions .button:hover, .ool-cart .woocommerce button.button:hover { transform: translateY(-2px); box-shadow: 0 4px 0 0 var(--ool-ink); }
.ool-cart td.actions .button:disabled, .ool-cart td.actions .button[disabled] { opacity: .35; transform: none; box-shadow: none; cursor: default; }

/* Totals card (same as checkout order card) */
.ool-cart .cart_totals { background: var(--wp--preset--color--stone); border-radius: 28px; padding: clamp(20px, 2.4vw, 32px); box-sizing: border-box; }
.ool-cart .cart_totals h2 { font-size: clamp(26px, 2.4vw, 34px); font-weight: 800; letter-spacing: -0.02em; line-height: 1.1; margin: 0 0 16px; }
.ool-cart .cart_totals table.shop_table { border: 0 !important; margin: 0 0 18px !important; border-collapse: collapse !important; width: 100%; font-size: 16px; }
.ool-cart .cart_totals table.shop_table th, .ool-cart .cart_totals table.shop_table td { border: 0 !important; border-top: 2px solid rgba(20, 20, 20, .12) !important; padding: 14px 0 !important; background: transparent !important; vertical-align: top; text-align: left; }
.ool-cart .cart_totals table.shop_table tr:first-child th, .ool-cart .cart_totals table.shop_table tr:first-child td { border-top: 0 !important; padding-top: 0 !important; }
.ool-cart .cart_totals table.shop_table td { text-align: right; }
.ool-cart .cart_totals table.shop_table td::before { display: none !important; }
.ool-cart .cart_totals table.shop_table th { font-weight: 700; width: 40%; }
.ool-cart .cart_totals .order-total th, .ool-cart .cart_totals .order-total td { border-top: 2px solid var(--ool-ink) !important; font-size: 22px; font-weight: 800; padding-top: 18px !important; }
.ool-cart .cart_totals .includes_tax, .ool-cart .cart_totals small { display: block; font-size: 13px; font-weight: 400; color: #6B6B6B; }
.ool-cart .cart_totals tr.woocommerce-shipping-totals { display: grid; grid-template-columns: 1fr; border-top: 2px solid rgba(20, 20, 20, .12); }
.ool-cart .cart_totals tr.woocommerce-shipping-totals > th, .ool-cart .cart_totals tr.woocommerce-shipping-totals > td { display: block; width: auto; border-top: 0 !important; text-align: left !important; }
.ool-cart .cart_totals tr.woocommerce-shipping-totals > th { padding-bottom: 6px !important; }
.ool-cart .cart_totals tr.woocommerce-shipping-totals > td { padding-top: 0 !important; font-size: 15px; }
.ool-cart .cart_totals #shipping_method { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 8px; text-align: left; }
.ool-cart .cart_totals #shipping_method li { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0; padding: 12px 16px; background: #fff; border-radius: 16px; border: 2px solid transparent; }
.ool-cart .cart_totals #shipping_method li:has(input:checked) { border-color: var(--ool-ink); }
.ool-cart .cart_totals #shipping_method li > input { margin: 0 !important; accent-color: var(--ool-ink); width: 20px; height: 20px; }
.ool-cart .cart_totals #shipping_method li > label { flex: 1; display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0; cursor: pointer; font-weight: 400; }
.ool-cart .cart_totals #shipping_method li > label .amount { font-weight: 800; white-space: nowrap; }
.ool-cart .cart_totals #shipping_method li > *:not(input):not(label) { flex: 1 0 100%; }
.ool-cart .cart_totals .woocommerce-shipping-destination { margin: 0 0 6px; color: #555; }
.ool-cart .cart_totals .shipping-calculator-button { color: var(--ool-ink); font-weight: 700; text-underline-offset: 3px; }
.ool-cart .wc-proceed-to-checkout { padding: 0 !important; }
.ool-cart .wc-proceed-to-checkout a.checkout-button {
  display: flex !important; width: 100%; box-sizing: border-box; align-items: center; justify-content: center; min-height: 56px; padding: 14px 32px !important; margin: 0 !important;
  border: 0 !important; border-radius: 999px !important; background: var(--ool-ink) !important; color: #fff !important; font-size: 18px !important; font-weight: 800 !important; text-decoration: none;
  transition: transform 180ms ease, box-shadow 180ms ease;
}
.ool-cart .wc-proceed-to-checkout a.checkout-button:hover { transform: translateY(-3px); box-shadow: 0 5px 0 0 var(--ool-teal); }
.ool-cart .cross-sells { margin-top: 28px; }
.ool-cart .cross-sells > h2 { font-size: 24px; font-weight: 800; }

/* Notices on the cart page */
.ool-cart .woocommerce-info, .ool-cart .woocommerce-message, .ool-cart .woocommerce-error {
  border: 0 !important; border-radius: 20px !important; background: var(--wp--preset--color--mist) !important; color: var(--ool-ink) !important; padding: 16px 22px !important; margin: 0 0 24px !important; font-size: 16px; list-style: none;
}
.ool-cart .woocommerce-error { background: #FBE3E1 !important; }
.ool-cart .woocommerce-info::before, .ool-cart .woocommerce-message::before, .ool-cart .woocommerce-error::before { display: none !important; }
.ool-cart .woocommerce-message .button { margin-left: 12px; }
.ool-cart .cart_totals table.shop_table, .ool-cart .cart_totals table.shop_table > tbody { display: block; width: 100%; }
.ool-cart .cart_totals table.shop_table tr { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; border-top: 2px solid rgba(20, 20, 20, .12); padding: 14px 0; }
.ool-cart .cart_totals table.shop_table tr:first-child { border-top: 0; padding-top: 0; }
.ool-cart .cart_totals table.shop_table tr > th, .ool-cart .cart_totals table.shop_table tr > td { border: 0 !important; padding: 0 !important; width: auto; }
.ool-cart .cart_totals table.shop_table tr.order-total { border-top: 2px solid var(--ool-ink); padding-top: 18px; }
.ool-cart .cart_totals table.shop_table tr.order-total > th, .ool-cart .cart_totals table.shop_table tr.order-total > td { border: 0 !important; padding: 0 !important; }
.ool-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals { display: block; }
.ool-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals > th { display: block; margin-bottom: 10px; }
.ool-cart .cart_totals #shipping_method li { flex-wrap: nowrap; }
.ool-cart .cart_totals #shipping_method li > label { min-width: 0; }
@media (max-width: 600px) {
  .ool-cart table.shop_table.cart tr.cart_item { column-gap: 12px; }
  .ool-cart .quantity .qty { width: 64px; min-height: 44px; }
  .ool-cart table.shop_table.cart td.product-subtotal { min-width: 0; font-size: 18px; }
  .ool-cart td.actions .coupon, .ool-cart td.actions .coupon .input-text { width: 100% !important; }
  .ool-cart td.actions .coupon .input-text { flex: 1 1 160px; }
}
