/* ==========================================================================
   CleanEko – site styles (header, footer, WooCommerce). Mobile first.
   Elementor global colours/fonts use the same values (set in cleaneko-core setup).
   ========================================================================== */

@font-face {
	font-family: "Manrope";
	src: url("../fonts/manrope-latin-wght-normal.woff2") format("woff2-variations");
	font-weight: 200 800;
	font-display: optional; /* preloaded; never swap mid-render (avoids layout shift) */
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Manrope";
	src: url("../fonts/manrope-latin-ext-wght-normal.woff2") format("woff2-variations");
	font-weight: 200 800;
	font-display: optional; /* preloaded; never swap mid-render (avoids layout shift) */
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
	--ce-ink: #1d2a2e;
	--ce-muted: #4f5f66;
	--ce-bg: #ffffff;
	--ce-surface: #f3f7f5;
	--ce-surface-2: #e5eeea;
	--ce-line: #d4dfda;
	--ce-primary: #0b7462;       /* teal-green, 5.6:1 on white */
	--ce-primary-dark: #075747;
	--ce-primary-soft: #e2f3ee;
	--ce-brand: #00c400;         /* logo green – decorative only */
	--ce-focus: #0b7462;
	--ce-danger: #b42318;

	--ce-font: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--ce-radius: 12px;
	--ce-radius-sm: 8px;
	--ce-shadow: 0 1px 2px rgb(29 42 46 / 6%), 0 8px 24px rgb(29 42 46 / 6%);
	--ce-container: 1240px;
	--ce-gutter: clamp(16px, 4vw, 32px);
	--ce-header-h: 68px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--ce-header-h) + 16px); }
/* The closed mobile menu sits off-screen to the right; clip (unlike hidden) keeps the sticky header working. */
html, body { overflow-x: clip; }
body {
	margin: 0;
	font-family: var(--ce-font);
	font-size: 1rem;
	line-height: 1.6;
	color: var(--ce-ink);
	background: var(--ce-bg);
	-webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; height: auto; }
a { color: var(--ce-primary); text-underline-offset: 3px; }
a:hover { color: var(--ce-primary-dark); }
h1, h2, h3, h4 { line-height: 1.2; font-weight: 800; letter-spacing: -0.01em; margin: 0 0 .5em; color: var(--ce-ink); }
h1 { font-size: clamp(1.75rem, 1.3rem + 2vw, 2.75rem); }
h2 { font-size: clamp(1.4rem, 1.15rem + 1.1vw, 2rem); }
h3 { font-size: 1.15rem; }
p { margin: 0 0 1em; }

:focus-visible { outline: 3px solid var(--ce-focus); outline-offset: 2px; border-radius: 4px; }
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.ce-skip-link {
	position: absolute; left: 12px; top: -100px; z-index: 1000;
	background: var(--ce-ink); color: #fff; padding: 10px 16px; border-radius: var(--ce-radius-sm);
}
.ce-skip-link:focus { top: 12px; color: #fff; }
.ce-main:focus { outline: none; }

.ce-container { width: 100%; max-width: var(--ce-container); margin-inline: auto; padding-inline: var(--ce-gutter); }
.ce-icon { width: 1.25em; height: 1.25em; flex: none; vertical-align: -0.25em; }

/* ---------- Buttons (also used by WooCommerce) ---------- */
.ce-btn,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce .button.alt,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.wc-block-components-button:not(.is-link) {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	min-height: 48px; padding: .75em 1.4em;
	font: 700 1rem/1.2 var(--ce-font);
	color: #fff; background: var(--ce-primary);
	border: 2px solid var(--ce-primary); border-radius: var(--ce-radius-sm);
	text-decoration: none; cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s;
}
.ce-btn:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce .button.alt:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover {
	color: #fff; background: var(--ce-primary-dark); border-color: var(--ce-primary-dark);
}
.ce-btn--ghost { color: var(--ce-primary); background: transparent; }
.ce-btn--ghost:hover { color: #fff; }
.woocommerce a.button.disabled, .woocommerce button.button:disabled { opacity: .5; cursor: not-allowed; }

/* ---------- Top bar ---------- */
.ce-topbar { background: var(--ce-ink); color: #e9f1ee; font-size: .875rem; }
.ce-topbar__inner { display: flex; justify-content: center; gap: 24px; padding-block: 8px; }
.ce-topbar p { margin: 0; display: flex; align-items: center; gap: 6px; }
.ce-topbar .ce-topbar__contact { display: none; gap: 20px; }
.ce-topbar .ce-topbar__contact a { color: inherit; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.ce-topbar .ce-topbar__contact a:hover { color: #fff; text-decoration: underline; }

/* ---------- Header ---------- */
.ce-header {
	position: sticky; top: 0; z-index: 100;
	/* Solid background on purpose: backdrop-filter would make the header the containing block of the fixed mobile menu. */
	background: #fff;
	border-bottom: 1px solid var(--ce-line);
}
.ce-header__inner { display: flex; align-items: center; gap: 16px; min-height: var(--ce-header-h); }
.ce-logo { display: block; flex: none; line-height: 0; }
.ce-logo img { width: 150px; height: auto; }
.ce-header__actions { display: flex; align-items: center; gap: 4px; margin-left: auto; }

.ce-iconbtn {
	position: relative; display: inline-grid; place-items: center;
	width: 44px; height: 44px; padding: 0;
	color: var(--ce-ink); background: none; border: 0; border-radius: 50%;
	cursor: pointer; text-decoration: none;
}
.ce-iconbtn:hover { background: var(--ce-surface); color: var(--ce-primary); }
/* Elementor's kit styles every <button> as a filled primary button; header icon buttons opt out. */
.ce-header button.ce-iconbtn { min-height: 0; padding: 0; color: var(--ce-ink); background: none; border: 0; border-radius: 50%; box-shadow: none; }
.ce-header button.ce-iconbtn:hover, .ce-header button.ce-iconbtn:focus { color: var(--ce-primary); background: var(--ce-surface); }
.ce-cart__count {
	position: absolute; top: 4px; right: 2px;
	min-width: 18px; height: 18px; padding: 0 5px;
	font-size: .7rem; font-weight: 800; line-height: 18px; text-align: center;
	color: #fff; background: var(--ce-primary); border-radius: 9px;
}
.ce-cart__count[hidden] { display: none; }

/* Search: icon-only on mobile, field from tablet up. */
.ce-search { display: flex; align-items: center; }
.ce-search input[type="search"] { display: none; }

/* Navigation – mobile panel */
.ce-nav-toggle__close { display: none; }
.ce-nav-open .ce-nav-toggle__open { display: none; }
.ce-nav-open .ce-nav-toggle__close { display: inline; }

.ce-nav {
	position: fixed; inset: calc(var(--ce-header-h) + 1px) 0 0 0;
	background: #fff; overflow-y: auto;
	padding: 8px var(--ce-gutter) 32px;
	transform: translateX(100%); visibility: hidden;
	transition: transform .2s ease, visibility 0s linear .2s;
}
.ce-nav-open .ce-nav { transform: none; visibility: visible; transition: transform .2s ease; }
.ce-nav-open { overflow: hidden; }
.ce-nav__list, .ce-nav__list .sub-menu { list-style: none; margin: 0; padding: 0; }
.ce-nav__list > li { border-bottom: 1px solid var(--ce-line); }
.ce-nav .ce-nav__list a {
	display: block; padding: 14px 4px;
	font-weight: 700; font-size: 1.05rem; color: var(--ce-ink); text-decoration: none;
}
.ce-nav .ce-nav__list a:hover, .ce-nav .ce-nav__list .current-menu-item > a, .ce-nav .ce-nav__list .current-menu-ancestor > a { color: var(--ce-primary); }
.ce-nav__list .sub-menu { padding: 0 0 10px 12px; }
.ce-nav .ce-nav__list .sub-menu a { padding: 8px 4px; font-weight: 600; font-size: .98rem; color: var(--ce-muted); }

@media (min-width: 640px) {
	.ce-topbar__inner { justify-content: space-between; }
	.ce-topbar .ce-topbar__contact { display: flex; }
	.ce-search input[type="search"] {
		display: block; width: 200px; height: 42px; padding: 0 12px;
		font: inherit; font-size: .95rem; color: var(--ce-ink);
		background: var(--ce-surface); border: 1px solid var(--ce-line); border-right: 0;
		border-radius: var(--ce-radius-sm) 0 0 var(--ce-radius-sm);
	}
	.ce-header .ce-search button.ce-iconbtn {
		width: 42px; height: 42px; border-radius: 0 var(--ce-radius-sm) var(--ce-radius-sm) 0;
		background: var(--ce-surface); border: 1px solid var(--ce-line); border-left: 0;
	}
	.ce-logo img { width: 180px; }
}

@media (min-width: 1024px) {
	:root { --ce-header-h: 80px; }
	.ce-nav-toggle { display: none; }
	.ce-nav {
		position: static; transform: none; visibility: visible; padding: 0; overflow: visible; background: none;
		margin-left: 12px;
	}
	.ce-nav__list { display: flex; gap: 4px; }
	.ce-nav__list > li { position: relative; border: 0; }
	.ce-nav__list > li > a { padding: 10px 12px; font-size: 1rem; border-radius: var(--ce-radius-sm); }
	.ce-nav__list > li > a:hover { background: var(--ce-surface); }
	.ce-nav__list .sub-menu {
		position: absolute; top: 100%; left: 0; min-width: 260px; z-index: 10;
		padding: 8px; background: #fff; border: 1px solid var(--ce-line); border-radius: var(--ce-radius);
		box-shadow: var(--ce-shadow);
		opacity: 0; visibility: hidden; transform: translateY(4px);
		transition: opacity .15s, transform .15s, visibility 0s linear .15s;
	}
	.ce-nav__list li:hover > .sub-menu, .ce-nav__list li:focus-within > .sub-menu {
		opacity: 1; visibility: visible; transform: none; transition: opacity .15s, transform .15s;
	}
	.ce-nav .ce-nav__list .sub-menu a { padding: 9px 12px; border-radius: var(--ce-radius-sm); color: var(--ce-ink); }
	.ce-nav__list .sub-menu a:hover { background: var(--ce-surface); }
	.ce-logo img { width: 200px; }
}
/* Small desktops: logo, menu and search must share ~1000px. */
@media (min-width: 1024px) and (max-width: 1279px) {
	.ce-logo img { width: 160px; }
	.ce-nav { margin-left: 4px; }
	.ce-nav__list > li > a { padding: 10px 8px; }
	.ce-search input[type="search"] { width: 140px; }
}

/* ---------- Footer ---------- */
.ce-footer { margin-top: 64px; background: var(--ce-ink); color: #cfdcd7; font-size: .95rem; }
/* Doubled class beats Elementor's kit link colour (.elementor-kit-N a), which loads after this file. */
.ce-footer.ce-footer a { color: #fff; text-decoration: none; }
.ce-footer.ce-footer a:hover { color: #fff; text-decoration: underline; }
.ce-footer__grid { display: grid; gap: 32px; padding-block: 48px 32px; }
.ce-footer__brand img { width: 180px; margin-bottom: 12px; }
.ce-footer__brand address { font-style: normal; line-height: 2; }
.ce-footer__title { color: #fff; font-size: 1rem; margin-bottom: 12px; }
.ce-footer__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ce-footer__bottom {
	display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px;
	padding-block: 20px 28px; border-top: 1px solid rgb(255 255 255 / 12%); font-size: .85rem;
}
.ce-footer__bottom p { margin: 0; }
@media (min-width: 640px) { .ce-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .ce-footer__grid { grid-template-columns: 1.6fr 1fr 1fr 1fr; } }

/* ---------- Prose (product descriptions, plain pages) ---------- */
.ce-prose { max-width: 72ch; }
.ce-prose h3 { margin-top: 1.6em; }
.ce-prose ul, .ce-prose ol { padding-left: 1.3em; }
.ce-prose li { margin-bottom: .35em; }
.ce-prose table { border-collapse: collapse; width: 100%; font-size: .95rem; }
.ce-prose th, .ce-prose td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--ce-line); vertical-align: top; }
.ce-prose th { width: 40%; font-weight: 700; background: var(--ce-surface); }

/* ---------- Plain pages (legal pages, cart/checkout, search, 404) ---------- */
.ce-page { padding-block: 32px 16px; }
.ce-page__header { margin-bottom: 24px; }
.ce-page__intro { color: var(--ce-muted); font-size: 1.1rem; max-width: 60ch; }
.ce-teaser { padding-block: 16px; border-bottom: 1px solid var(--ce-line); }
.ce-teaser__title { font-size: 1.2rem; margin-bottom: 6px; }
.ce-404 .woocommerce-product-search { display: flex; gap: 8px; max-width: 480px; margin-bottom: 20px; }
.ce-404 .woocommerce-product-search .search-field {
	flex: 1; min-height: 48px; padding: 0 14px; font: inherit; border: 1px solid #8fa39c; border-radius: var(--ce-radius-sm);
}
.ce-404__actions { display: flex; flex-wrap: wrap; gap: 12px; }
/* Cart and checkout blocks need the full container width, not the reading width. */
.woocommerce-cart .ce-page__content, .woocommerce-checkout .ce-page__content, .woocommerce-account .ce-page__content { max-width: none; }

/* Price / delivery tables inside Elementor text widgets. */
.ce-price-table { width: 100%; border-collapse: collapse; font-size: .98rem; margin-bottom: 8px; }
.ce-price-table th, .ce-price-table td { text-align: left; padding: 12px; border-bottom: 1px solid var(--ce-line); vertical-align: top; }
.ce-price-table th { font-weight: 700; background: var(--ce-surface); width: 45%; }

/* Linked icon-box titles in Elementor cards (services, "Mida teeme") look and behave like links. */
.elementor-widget-icon-box .elementor-icon-box-title a { text-decoration: none; }
.elementor-widget-icon-box .elementor-icon-box-title a:hover,
.elementor-widget-icon-box .elementor-icon-box-title a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }

/* Home category cards: product photos have different proportions; a fixed image box keeps the texts level. */
.ce-cat-card .elementor-image-box-img { width: 100% !important; --ce-cat-img: 260px; height: var(--ce-cat-img); display: flex !important; align-items: center; justify-content: center; margin-inline: auto !important; }
.ce-cat-card .elementor-image-box-img img { width: auto; max-width: 100%; height: var(--ce-cat-img) !important; object-fit: contain; margin-inline: auto; }
@media (max-width: 767px) { .ce-cat-card .elementor-image-box-img { --ce-cat-img: 220px; } }

/* "Vaata lähemalt" button sits at the bottom of each card, so buttons line up across a row. */
.ce-card-more { margin-top: auto; padding-top: 8px; }

/* ---------- WooCommerce: shared ---------- */
.ce-shop { padding-block: 16px 24px; }
.ce-crumbs { font-size: .875rem; color: var(--ce-muted); margin-bottom: 16px; }
.ce-crumbs a { color: var(--ce-muted); }
.ce-crumbs__sep { margin-inline: 8px; opacity: .6; }
.woocommerce .woocommerce-products-header__title { margin-top: 8px; }
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	padding: 14px 18px !important; border-radius: var(--ce-radius-sm); border: 1px solid var(--ce-line) !important;
	background: var(--ce-surface) !important; color: var(--ce-ink) !important; list-style: none;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none !important; }

.woocommerce .price, .woocommerce-Price-amount { color: var(--ce-ink); font-weight: 800; }
.woocommerce .price del { opacity: .6; font-weight: 600; }
.woocommerce .price ins { text-decoration: none; }

/* Product grid (shop, categories, related). */
.woocommerce ul.products {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px;
	list-style: none; margin: 0 0 32px; padding: 0;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product {
	position: relative; display: flex; flex-direction: column; float: none; width: auto; margin: 0;
	padding: 12px; background: #fff; border: 1px solid var(--ce-line); border-radius: var(--ce-radius);
	transition: box-shadow .15s, border-color .15s;
}
.woocommerce ul.products li.product:hover { box-shadow: var(--ce-shadow); border-color: transparent; }
/* WooCommerce sizes cards with % widths/margins for its float layout; in our grid the cell sets the width. */
.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products[class*="columns-"] li.product { width: auto; margin: 0; float: none; clear: none; }
.woocommerce ul.products li.product a img {
	aspect-ratio: 1; object-fit: contain; width: 100%; margin: 0 0 12px;
	background: var(--ce-surface); border-radius: var(--ce-radius-sm);
}
.woocommerce ul.products li.product .woocommerce-LoopProduct-link { color: inherit; text-decoration: none; flex: 1; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1rem; font-weight: 700; padding: 0; margin: 0 0 6px; }
.woocommerce ul.products li.product .price { display: block; margin-bottom: 12px; font-size: 1.05rem; }
.woocommerce ul.products li.product .button { width: 100%; margin-top: auto; min-height: 44px; padding-inline: .8em; font-size: .95rem; }
.woocommerce ul.products li.product .added_to_cart { display: block; margin-top: 8px; font-size: .9rem; text-align: center; }
@media (min-width: 768px) { .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; } }
@media (min-width: 1100px) { .woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* Category chips on shop/category pages: one horizontally scrollable row on phones. */
.ce-chips { margin: 8px 0 24px; }
.ce-chips ul { list-style: none; margin: 0; padding: 0 0 4px; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: thin; }
.ce-chips__sub { margin-top: 10px !important; }
.ce-chip {
	display: inline-flex; align-items: center; min-height: 40px; padding: 8px 16px; white-space: nowrap;
	font-weight: 700; font-size: .95rem; color: var(--ce-ink); text-decoration: none;
	background: #fff; border: 1px solid var(--ce-line); border-radius: 999px;
}
.ce-chips__sub .ce-chip { min-height: 36px; padding: 6px 14px; font-weight: 600; font-size: .9rem; background: var(--ce-surface); }
.ce-chip:hover { border-color: var(--ce-primary); color: var(--ce-primary); }
.ce-chip.is-active { color: #fff; background: var(--ce-primary); border-color: var(--ce-primary); }
@media (min-width: 768px) { .ce-chips ul { flex-wrap: wrap; overflow: visible; } }

.woocommerce .woocommerce-result-count { color: var(--ce-muted); font-size: .9rem; }
.woocommerce .woocommerce-ordering select {
	min-height: 44px; padding: 0 12px; font: inherit; border: 1px solid var(--ce-line); border-radius: var(--ce-radius-sm); background: #fff;
}

/* ---------- WooCommerce: single product ---------- */
.woocommerce div.product { display: grid; gap: 24px; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: auto; margin: 0; }
.woocommerce div.product div.images img { border-radius: var(--ce-radius); background: var(--ce-surface); }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-top: 8px; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; }
.woocommerce div.product .product_title { margin-bottom: 8px; }
.woocommerce div.product p.price { font-size: 1.75rem; margin: 0; }
.woocommerce-product-details__short-description { margin-block: 16px; color: var(--ce-muted); font-size: 1.05rem; }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 12px; margin: 20px 0; }
.woocommerce div.product form.cart .button { flex: 1 1 200px; font-size: 1.05rem; }
.woocommerce .quantity .qty {
	width: 84px; min-height: 48px; font: inherit; font-weight: 700; text-align: center;
	border: 1px solid var(--ce-line); border-radius: var(--ce-radius-sm);
}
.woocommerce div.product .stock { font-weight: 700; color: var(--ce-primary); }
.woocommerce div.product .out-of-stock { color: var(--ce-danger); }

.ce-product-section { grid-column: 1 / -1; padding-top: 32px; margin-top: 8px; border-top: 1px solid var(--ce-line); }
.woocommerce div.product .related, .woocommerce div.product .upsells { grid-column: 1 / -1; padding-top: 32px; border-top: 1px solid var(--ce-line); }

@media (min-width: 900px) {
	.woocommerce div.product { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 48px; align-items: start; }
}
/* Elements WooCommerce prints outside the two columns span the full width. */
.woocommerce div.product > .woocommerce-notices-wrapper,
.woocommerce div.product > .onsale { grid-column: 1 / -1; }
.woocommerce span.onsale {
	min-width: 0; min-height: 0; padding: 4px 10px; line-height: 1.4; border-radius: 99px;
	background: var(--ce-primary); font-size: .8rem;
}

/* ---------- Classic checkout ([woocommerce_checkout]) ---------- */
.woocommerce form .form-row { margin: 0 0 14px; padding: 0; }
.woocommerce form .form-row label { font-weight: 700; margin-bottom: 6px; display: block; }
.woocommerce form .form-row .input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea,
.woocommerce .select2-container .select2-selection--single {
	min-height: 48px; padding: 10px 14px; font: inherit; color: var(--ce-ink); background: #fff;
	border: 1px solid #8fa39c; border-radius: var(--ce-radius-sm);
}
.woocommerce .select2-container .select2-selection--single { display: flex; align-items: center; padding: 0 8px; }
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow { height: 46px; }
.woocommerce form .form-row.woocommerce-invalid .input-text { border-color: var(--ce-danger); }
.woocommerce form .form-row .required { color: var(--ce-danger); text-decoration: none; }
.woocommerce-checkout #customer_details { margin-bottom: 24px; }
.woocommerce-checkout h3 { font-size: 1.3rem; margin-top: 8px; }
.woocommerce-checkout #order_review_heading { margin-top: 24px; }
.woocommerce table.shop_table { border: 1px solid var(--ce-line); border-radius: var(--ce-radius); border-collapse: separate; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 12px 14px; border-color: var(--ce-line); }
.woocommerce ul#shipping_method li { margin-bottom: 8px; display: flex; gap: 8px; align-items: baseline; }
.woocommerce ul#shipping_method li label { display: inline; font-weight: 600; }
/* Only the visible select; selectWoo hides the original with .select2-hidden-accessible (must stay 1px). */
.ce-terminal select:not(.select2-hidden-accessible) { width: 100%; min-height: 48px; }
/* The hidden original select keeps its intrinsic width; confine it to the cell so it cannot widen the page. */
.ce-terminal td { position: relative; overflow: hidden; }
.ce-terminal__label { display: block; font-weight: 700; margin-bottom: 8px; }
.ce-terminal__error { color: var(--ce-danger); margin: 0; }
.woocommerce-checkout #payment { background: var(--ce-surface); border-radius: var(--ce-radius); }
.woocommerce-checkout #payment div.payment_box { background: #fff; color: var(--ce-ink); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fff; }
.woocommerce #payment #place_order { width: 100%; font-size: 1.1rem; min-height: 54px; }
@media (min-width: 900px) {
	.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 0 40px; align-items: start; }
	.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup, .woocommerce-checkout form.checkout > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
	.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
	.woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 { float: none; width: auto; }
	.woocommerce-checkout #order_review_heading { grid-column: 2; margin-top: 0; }
	.woocommerce-checkout #order_review { grid-column: 2; }
}

/* Cart / checkout blocks pick up the theme font and colours. */
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { font-family: var(--ce-font); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
