/**
 * CaravanExpress — theme styles.
 * Colors come from theme.json presets: var(--wp--preset--color--<slug>).
 */

:root {
	--ce-primary: var(--wp--preset--color--primary, #0E4D3C);
	--ce-primary-dark: var(--wp--preset--color--primary-dark, #0B3B2E);
	--ce-accent: var(--wp--preset--color--accent, #C2410C);
	--ce-accent-dark: var(--wp--preset--color--accent-dark, #9A3412);
	--ce-accent-light: var(--wp--preset--color--accent-light, #FDBA74);
	--ce-tint: var(--wp--preset--color--tint, #E8F1EC);
	--ce-peach: var(--wp--preset--color--peach, #FCE7D6);
	--ce-base: var(--wp--preset--color--base, #F6F7F4);
	--ce-text: var(--wp--preset--color--contrast, #17221E);
	--ce-muted: var(--wp--preset--color--muted, #5B6661);
	--ce-border: var(--wp--preset--color--border, #E3E6E1);
	--ce-line: #EEF0EC;
	--ce-input: #D3DAD5;
	--ce-on-dark: #D5E3DC;
	--ce-star: #B45309;
	--ce-radius: 14px;
	--ce-radius-sm: 10px;
	--ce-radius-lg: 20px;
	/* Elevation scale (tinted with the brand green, never pure black). */
	--ce-shadow-sm: 0 1px 2px rgba(14, 77, 60, 0.06), 0 1px 3px rgba(14, 77, 60, 0.08);
	--ce-shadow-md: 0 4px 12px rgba(14, 77, 60, 0.08), 0 2px 4px rgba(14, 77, 60, 0.05);
	--ce-shadow-lg: 0 18px 40px rgba(14, 77, 60, 0.14), 0 4px 10px rgba(14, 77, 60, 0.06);
	/* Motion tokens. */
	--ce-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
	--ce-fast: 160ms;
	--ce-base-dur: 240ms;
	--ce-topbar-h: 37px;
}

/* ---------- Basics ---------- */

body { -webkit-font-smoothing: antialiased; }
.wp-site-blocks > header,
.wp-site-blocks > footer,
.wp-site-blocks > main { margin-block-start: 0; }
.ce-site-header > * { margin-block-start: 0 !important; }
.ce-muted { color: var(--ce-muted); }
.ce-card {
	background: #fff;
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius);
}
.ce-stars { color: var(--ce-star); letter-spacing: 2px; }
.ce-main { padding-block: 24px 72px; }
.ce-main--home { padding-top: 0; }
.ce-page-title { margin-top: 16px !important; margin-bottom: 24px !important; font-size: 34px; }
.ce-main > .ce-page-title { max-width: var(--wp--style--global--content-size) !important; }
/* Regular pages: the title lines up with the 820px text column below it. */
.ce-main--page > .ce-page-title { max-width: 820px !important; }
:where(input, select, textarea) { font: inherit; }
:focus-visible { outline: 2px solid var(--ce-primary); outline-offset: 2px; }

/* ---------- Top bar ---------- */

.ce-topbar { background: var(--ce-primary); color: #fff; font-size: 13px; padding-block: 8px; }
.ce-topbar p { margin: 0; }
.ce-topbar__inner { gap: 6px 24px; }
.ce-topbar__links { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.ce-topbar a { color: #fff; }
.ce-topbar a:hover { color: var(--ce-accent-light); }

/* ---------- Header ---------- */

.ce-header { background: #fff; padding-block: 16px; }
.ce-header__inner { gap: 14px 32px; }
.ce-header__inner > * { margin: 0; }
.ce-logo { margin: 0; font-size: 26px; font-weight: 800; letter-spacing: -0.03em; line-height: 1; }
.ce-logo a { display: inline-flex; align-items: center; gap: 0; color: var(--ce-primary); }
.ce-logo a:hover { color: var(--ce-primary); }
.ce-logo a::before {
	content: "";
	width: 34px;
	height: 34px;
	flex: none;
	margin-right: 10px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C2410C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6h11v9H2z'/%3E%3Cpath d='M13 9h4l4 4v2h-8z'/%3E%3Ccircle cx='6' cy='17.5' r='2'/%3E%3Ccircle cx='17' cy='17.5' r='2'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ce-logo mark { padding: 0; }
.ce-logo--light a, .ce-logo--light a:hover { color: #fff; }
.ce-logo--light a::before { display: none; }
/* Logo image from Caravan → Header; --ce-logo-h is the height chosen there. */
.ce-logo--image a::before { display: none !important; }
/* Wide logos (about 7:1, like the CaravanExpress one) need room: the caps only stop very wide files taking over the header. */
.ce-logo__img { display: block; width: auto; height: var(--ce-logo-h, 40px); max-width: 420px; object-fit: contain; }
/* Footer: about the size of the old text logo there, whatever the header height. */
.ce-footer .ce-logo__img { height: 28px; max-width: 100%; }
.ce-drawer__head .ce-logo__img { height: min(var(--ce-logo-h, 40px), 30px); max-width: 230px; }

.ce-search { flex: 1 1 380px; min-width: 0; }
.ce-search .wp-block-search__inside-wrapper {
	border: 1.5px solid var(--ce-primary);
	border-radius: 12px;
	overflow: hidden;
	padding: 0;
	background: #fff;
}
.ce-search .wp-block-search__input {
	border: 0;
	height: 46px;
	padding: 0 16px;
	font-size: 15px;
	color: var(--ce-text);
	min-width: 0;
}
.ce-search .wp-block-search__input:focus { outline: none; }
.ce-search .wp-block-search__inside-wrapper:focus-within { box-shadow: 0 0 0 3px rgba(14, 77, 60, 0.18); }
.ce-search .wp-block-search__button {
	margin: 0;
	border-radius: 0;
	width: 56px;
	padding: 0;
	background: var(--ce-primary);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ce-search .wp-block-search__button:hover { background: var(--ce-primary-dark); }
.ce-search .wp-block-search__button svg { width: 22px; height: 22px; fill: currentColor; }

.ce-header__actions { gap: 8px; }
.ce-header__actions .wc-block-customer-account__link,
.ce-header__actions .wc-block-mini-cart__button {
	color: var(--ce-text);
	font-size: 13px;
	font-weight: 500;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 0 8px;
}
.ce-header__actions .wc-block-customer-account__link:hover,
.ce-header__actions .wc-block-mini-cart__button:hover { color: var(--ce-primary); }
.wc-block-mini-cart__badge { background: var(--ce-accent) !important; color: #fff !important; font-weight: 700; }

/* Category menu */
.ce-catnav { background: #fff; border-top: 1px solid var(--ce-line); border-bottom: 1px solid var(--ce-border); }
.ce-catnav__menu { overflow-x: auto; scrollbar-width: none; }
.ce-catnav__menu::-webkit-scrollbar { display: none; }
.ce-catnav__menu .wp-block-navigation__container { gap: 28px; flex-wrap: nowrap; }
.ce-catnav__menu .wp-block-navigation-item__content {
	display: inline-block;
	padding: 13px 0;
	white-space: nowrap;
	color: var(--ce-text);
}
.ce-catnav__menu .wp-block-navigation-item__content:hover { color: var(--ce-accent); }
.ce-nav-all .wp-block-navigation-item__content { font-weight: 700; color: var(--ce-primary); }
.ce-nav-all .wp-block-navigation-item__content::before {
	content: "";
	display: inline-block;
	width: 18px;
	height: 18px;
	margin-right: 8px;
	vertical-align: -4px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E4D3C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ce-nav-deals .wp-block-navigation-item__content { color: var(--ce-accent); font-weight: 700; }

/* ---------- Buttons ---------- */

.wp-block-button__link { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.ce-btn-lg .wp-block-button__link { min-height: 54px; padding: 15px 34px; font-size: 17px; }
.ce-btn-arrow .wp-block-button__link::after { content: "→"; font-weight: 700; }
.ce-btn-light .wp-block-button__link { background: #fff; color: var(--ce-primary); }
.ce-btn-light .wp-block-button__link:hover { background: var(--ce-tint); color: var(--ce-primary); }

/* ---------- Hero ---------- */

.ce-hero { background: var(--ce-primary); color: #fff; padding-block: 64px 72px; margin-block-start: 0 !important; }
.ce-hero__cols { gap: 48px; align-items: center; margin: 0; }
.ce-hero__text > * { margin-block: 0; }
.ce-hero__text > * + * { margin-block-start: 22px; }
.ce-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	width: fit-content;
	background: rgba(255, 255, 255, 0.12);
	padding: 7px 14px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
}
.ce-pill::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--ce-accent-light); }
.ce-hero__title {
	color: #fff;
	font-size: var(--wp--preset--font-size--hero);
	line-height: 1.05;
	letter-spacing: -0.035em;
}
.ce-hero__title mark { padding: 0; }
.ce-hero__lead { font-size: 18px; line-height: 1.6; color: var(--ce-on-dark); max-width: 520px; }
.ce-hero__buttons { gap: 12px; }
.ce-checks { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 26px; font-size: 14px; color: var(--ce-on-dark); }
.ce-checks li { display: flex; align-items: center; gap: 8px; }
.ce-checks li::before { content: ""; width: 18px; height: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDBA74' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / contain no-repeat; }

.ce-hero__tiles {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: 210px 210px;
	gap: 16px;
}
.ce-hero__tiles > * { margin: 0 !important; }
.ce-tile {
	border-radius: 20px;
	overflow: hidden;
	padding: 22px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 4px;
	background-size: cover;
	background-position: center;
	color: var(--ce-text);
}
.ce-tile p { margin: 0; }
/* Hero tiles: a photo (hero-*.jpg in assets/images) shows when the file exists;
   otherwise the drawing (hero-*.svg) shows. The white fade keeps the text readable.
   You can also set a Background image on a tile in the Editor — that replaces both. */
.ce-tile { background-repeat: no-repeat; }
.ce-tile--big {
	grid-row: span 2;
	background-color: var(--ce-peach);
	background-image: linear-gradient(to top, rgba(255,255,255,0.94) 0, rgba(255,255,255,0.75) 28%, rgba(255,255,255,0) 55%), url(../images/hero-fashion.jpg), url(../images/hero-fashion.svg);
	background-size: cover, cover, cover;
	background-position: center, center, center top;
}
.ce-tile--mint {
	background-color: var(--ce-tint);
	background-image: linear-gradient(to top, rgba(255,255,255,0.94) 0, rgba(255,255,255,0.7) 40%, rgba(255,255,255,0) 72%), url(../images/hero-home.jpg), url(../images/hero-home.svg);
	background-size: cover, cover, cover;
	background-position: center, center, center top;
}
.ce-tile--white {
	background-color: #fff;
	background-image: linear-gradient(to top, rgba(255,255,255,0.94) 0, rgba(255,255,255,0.7) 40%, rgba(255,255,255,0) 72%), url(../images/hero-tech.jpg), url(../images/hero-tech.svg);
	background-size: cover, cover, cover;
	background-position: center, center, center top;
}
.ce-tile__label { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ce-primary); }
.ce-tile--big .ce-tile__label { color: #7C2D12; }
.ce-tile__title { font-size: 19px; font-weight: 800; }
.ce-tile--big .ce-tile__title { font-size: 22px; }
.ce-tile__title a { color: var(--ce-text); }
.ce-tile__title a:hover { color: var(--ce-accent); }
.ce-tile__sub { font-size: 15px; }

/* ---------- Sections ---------- */

.ce-section { padding-block: 56px 8px; }
.ce-main > .ce-section, .ce-main > .wp-block-group { margin-block-start: 0; }
.ce-section-head { gap: 12px; margin-bottom: 24px; }
.ce-section-head > * { margin: 0; }
.ce-section-head h2 { margin: 0; }
.ce-section-head__text > p { margin: 6px 0 0; font-size: 16px; }
.ce-more { margin: 0; }
.ce-more a { font-weight: 600; font-size: 15px; }
.ce-lead-center { max-width: 560px; margin-inline: auto !important; margin-bottom: 32px; }

/* Category grid */
.ce-cat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(104px, 1fr)); gap: 20px 12px; }
.ce-cat-tile { display: flex; flex-direction: column; align-items: center; gap: 12px; color: var(--ce-text); font-size: 14px; font-weight: 600; text-align: center; }
.ce-cat-tile:hover { color: var(--ce-primary); }
.ce-cat-tile__circle {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--ce-border);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--ce-primary);
	transition: background 0.2s, color 0.2s;
}
.ce-cat-tile:hover .ce-cat-tile__circle { background: var(--ce-primary); color: #fff; }

/* ---------- Product cards (all product grids) ---------- */

.ce-products ul.wc-block-product-template {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ce-products--deals ul.wc-block-product-template { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.ce-products li.wc-block-product {
	background: #fff;
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0 0 16px;
	width: auto !important;
	text-align: left;
	transition: box-shadow 0.2s;
}
.ce-products li.wc-block-product:hover { box-shadow: 0 10px 28px rgba(14, 77, 60, 0.12); }
.ce-products li.wc-block-product > * { margin: 0; padding-inline: 16px; }
.ce-products li.wc-block-product > * + * { margin-top: 6px; }
.ce-products .wc-block-components-product-image { padding: 0 !important; margin: 0 0 8px !important; background: var(--ce-tint); }
.ce-products .wc-block-components-product-image img { aspect-ratio: 1 / 1; object-fit: cover; width: 100%; height: auto; display: block; }
.ce-card-cat, .ce-card-cat a { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ce-muted); }
.ce-card-title { font-size: 15px !important; font-weight: 600; line-height: 1.35; letter-spacing: 0; }
.ce-card-title a { color: var(--ce-text); }
.ce-card-title a:hover { color: var(--ce-accent); }
.wc-block-components-product-rating__stars,
.wc-block-components-product-rating .star-rating { color: var(--ce-star); }
.ce-products .wc-block-components-product-rating { font-size: 13px; }
.ce-products .wp-block-woocommerce-product-price { margin-top: auto !important; padding-top: 6px; }
.wc-block-components-product-price { font-weight: 800; color: var(--ce-text); }
.ce-products .wc-block-components-product-price { font-size: 19px; }
.wc-block-components-product-price del { color: var(--ce-muted); font-weight: 400; font-size: 0.75em; }
.wc-block-components-product-price ins { text-decoration: none; }
.ce-products--deals .wc-block-components-product-price ins { color: var(--ce-accent); }
.ce-products .wc-block-components-product-button { margin-top: 10px !important; }
.ce-products .wc-block-components-product-button__button,
.ce-products .wc-block-components-product-button .wp-block-button__link {
	width: 100%;
	min-height: 44px;
	background: var(--ce-primary) !important;
	color: #fff !important;
	border: 0;
	border-radius: 10px !important;
	font-size: 15px;
	font-weight: 600;
}
.ce-products .wc-block-components-product-button__button:hover { background: var(--ce-primary-dark) !important; }
.wc-block-components-product-sale-badge {
	background: var(--ce-accent) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 6px !important;
	font-size: 12px !important;
	font-weight: 700;
	padding: 5px 9px !important;
	text-transform: none !important;
}
.wc-block-components-product-sale-badge--align-left { top: 12px !important; left: 12px !important; }

/* ---------- Offers ---------- */

.ce-promos { gap: 20px; margin: 0 0 36px; }
.ce-promo {
	border-radius: 20px;
	padding: 36px !important;
	min-height: 240px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 12px;
	color: #fff;
}
.ce-promo > * { margin: 0 !important; }
.ce-promo--orange { background: var(--ce-accent); }
.ce-promo--dark { background: var(--ce-text); }
.ce-promo__eyebrow { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; }
.ce-promo--orange .ce-promo__eyebrow, .ce-promo--orange p { color: #FFEDD5; }
.ce-promo--dark .ce-promo__eyebrow { color: var(--ce-accent-light); }
.ce-promo--dark p { color: var(--ce-on-dark); }
.ce-promo__title { color: #fff !important; font-size: 34px !important; font-weight: 800; line-height: 1.1; }
.ce-promo code { color: #fff; background: rgba(255, 255, 255, 0.12); padding: 3px 8px; border-radius: 6px; font-family: inherit; font-weight: 700; letter-spacing: 0.06em; }
.ce-promo--orange .ce-btn-light .wp-block-button__link { color: var(--ce-accent-dark); }
.ce-promo .wp-block-buttons { margin-top: 6px !important; }

.ce-deals-title { gap: 14px 20px; align-items: center; }
.ce-deals-title > * { margin: 0; }
.ce-countdown { display: flex; align-items: center; gap: 6px; font-size: 14px; color: var(--ce-muted); }
.ce-countdown__box { background: var(--ce-accent); color: #fff; font-weight: 700; padding: 6px 9px; border-radius: 6px; font-variant-numeric: tabular-nums; }

/* ---------- Why us ---------- */

.ce-why-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.ce-why-grid > * { margin: 0 !important; }
.ce-why { padding: 28px; }
.ce-why > * { margin: 0; }
.ce-why::before {
	content: "";
	display: block;
	width: 56px;
	height: 56px;
	border-radius: 14px;
	margin-bottom: 16px;
	background: var(--ce-tint) center / 28px no-repeat;
}
.ce-why--delivery::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E4D3C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6h11v9H2z'/%3E%3Cpath d='M13 9h4l4 4v2h-8z'/%3E%3Ccircle cx='6' cy='17.5' r='2'/%3E%3Ccircle cx='17' cy='17.5' r='2'/%3E%3C/svg%3E"); }
.ce-why--secure::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E4D3C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v6c0 4.5-3.4 8.2-8 9-4.6-.8-8-4.5-8-9V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E"); }
.ce-why--support::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E4D3C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 14v-2a8 8 0 0 1 16 0v2'/%3E%3Crect x='3' y='14' width='4' height='6' rx='1.5'/%3E%3Crect x='17' y='14' width='4' height='6' rx='1.5'/%3E%3Cpath d='M19 20c0 1-2 2-5 2'/%3E%3C/svg%3E"); }
.ce-why--returns::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E4D3C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 3-6.7'/%3E%3Cpath d='M3 4v5h5'/%3E%3C/svg%3E"); }
.ce-why h3 { font-size: 19px; }
.ce-why p { margin-top: 10px; font-size: 15px; line-height: 1.6; color: var(--ce-muted); }

/* ---------- Reviews ---------- */

.ce-rating-summary { margin: 0; font-size: 15px; }
.ce-review-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
.ce-review-grid > * { margin: 0 !important; }
.ce-review { padding: 26px; display: flex; flex-direction: column; gap: 14px; }
.ce-review > * { margin: 0 !important; }
.ce-review__stars { font-size: 18px; }
.ce-review__text { font-size: 16px; line-height: 1.6; }
.ce-review__author { margin-top: auto !important; font-size: 13px; color: var(--ce-muted); line-height: 1.5; }
.ce-review__author strong { font-size: 15px; color: var(--ce-text); }

/* ---------- Newsletter ---------- */

.ce-section:has(.ce-newsletter) { padding-bottom: 0; }
.ce-newsletter {
	background: var(--ce-tint);
	border-radius: 24px;
	padding: 44px clamp(20px, 4vw, 56px);
	gap: 24px 48px;
}
.ce-newsletter__text { flex: 1 1 360px; }
.ce-newsletter__text > * { margin: 0; }
.ce-newsletter__text h2 { color: var(--ce-primary); font-size: 28px; }
.ce-newsletter__text p { margin-top: 8px; color: #34433D; }
.ce-newsletter__form { flex: 1 1 420px; display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.ce-newsletter__form input {
	flex: 1 1 240px;
	min-width: 0;
	height: 52px;
	border: 1.5px solid #B9CEC4;
	border-radius: 12px;
	padding: 0 18px;
	font-size: 15px;
	background: #fff;
}
.ce-newsletter__form button { min-height: 52px; padding: 0 28px; cursor: pointer; }

/* ---------- Footer ---------- */

.ce-footer { background: var(--ce-primary-dark); color: var(--ce-on-dark); font-size: 14px; padding-top: 56px; }
.ce-footer a { color: var(--ce-on-dark); }
.ce-footer a:hover { color: var(--ce-accent-light); }
.ce-footer__cols { gap: 36px; margin: 0; }
.ce-footer__brand p { line-height: 1.6; }
.ce-footer .ce-logo { font-size: 24px; }
.ce-footer__title { color: #fff !important; font-size: 15px !important; margin: 0 0 14px; }
.ce-footer__links { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.ce-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	margin-top: 32px;
	padding-block: 20px;
	gap: 12px 24px;
}
.ce-footer__bottom p { margin: 0; }
.ce-footer__bottom p a { color: inherit; font-size: 1.15em; font-weight: 700; text-decoration: none; }
.ce-footer__bottom p a:hover,
.ce-footer__bottom p a:focus-visible { text-decoration: underline; text-underline-offset: 2px; }
.ce-footer--simple { padding-top: 0; }
.ce-footer--simple .ce-footer__bottom { border-top: 0; margin-top: 0; }
.ce-footer__inline-links { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.ce-pay-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.ce-pay-pills span { background: #fff; color: var(--ce-text); font-size: 12px; font-weight: 700; padding: 6px 10px; border-radius: 6px; }
.ce-pay-pills .ce-pay-visa { color: #1A1F71; font-weight: 800; }

/* ---------- Breadcrumbs & notices ---------- */

.woocommerce-breadcrumb, .wc-block-breadcrumbs { font-size: 14px; color: var(--ce-muted); }
.wc-block-components-notice-banner { border-radius: 12px; }

/* ---------- Shop page ---------- */

.ce-shop-head { gap: 16px; margin: 16px 0 24px; }
.ce-shop-head > * { margin: 0; }
.ce-shop-head h1 { margin: 0; font-size: 34px; }
.ce-shop-head .woocommerce-result-count { margin: 6px 0 0; color: var(--ce-muted); font-size: 15px; }
.woocommerce-ordering { margin: 0; }
.woocommerce-ordering select,
.wc-block-catalog-sorting select {
	height: 44px;
	min-width: 220px;
	border: 1.5px solid var(--ce-input);
	border-radius: 10px;
	padding: 0 40px 0 14px;
	background-color: #fff;
	font-size: 15px;
	color: var(--ce-text);
}

.ce-shop-layout { display: flex; flex-wrap: wrap; gap: 28px; align-items: flex-start; }
.ce-shop-layout > * { margin: 0 !important; }
.ce-filters { flex: 1 1 260px; max-width: 100%; padding: 22px; }
.ce-results { flex: 999 1 560px; min-width: 0; }
.ce-results > * + * { margin-top: 20px; }

.ce-filter-form__head { display: flex; justify-content: space-between; align-items: center; }
.ce-filter-form__title { margin: 0; font-size: 18px !important; font-weight: 700; letter-spacing: 0; }
.ce-filter-form__clear { color: var(--ce-accent); font-weight: 600; font-size: 14px; }
.ce-filter { border: 0; margin: 20px 0 0; padding: 20px 0 0; border-top: 1px solid var(--ce-line); min-width: 0; }
.ce-filter legend { font-size: 15px; font-weight: 700; padding: 0; margin-bottom: 8px; float: left; width: 100%; }
.ce-filter legend + * { clear: both; }
.ce-check { display: flex; align-items: center; gap: 10px; min-height: 36px; font-size: 14px; cursor: pointer; }
.ce-check input { width: 18px; height: 18px; margin: 0; accent-color: var(--ce-primary); flex: none; }
.ce-price-inputs { display: flex; align-items: center; gap: 8px; }
.ce-price-inputs input {
	width: 100%;
	min-width: 0;
	height: 44px;
	border: 1.5px solid var(--ce-input);
	border-radius: 10px;
	padding: 0 12px;
	font-size: 15px;
}
.ce-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.ce-chip {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 0 14px;
	border-radius: 999px;
	border: 1px solid var(--ce-input);
	background: #fff;
	font-size: 13px;
	font-weight: 500;
	color: var(--ce-text);
}
.ce-chip:hover, .ce-chip.is-active { border-color: var(--ce-primary); color: var(--ce-primary); }
.ce-chip.is-active { background: var(--ce-tint); }
.ce-filter-form__apply {
	width: 100%;
	margin-top: 22px;
	background: var(--ce-primary) !important;
	cursor: pointer;
	border: 0;
	min-height: 44px;
}
.ce-filter-form__apply:hover { background: var(--ce-primary-dark) !important; }

.ce-active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ce-active-filters__label { font-size: 14px; color: var(--ce-muted); margin-right: 4px; }
.ce-active-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 36px;
	padding: 0 12px 0 14px;
	border-radius: 999px;
	background: var(--ce-tint);
	color: var(--ce-primary);
	font-size: 13px;
	font-weight: 600;
}
.ce-active-chip:hover { background: #D6E7DD; color: var(--ce-primary); }
.ce-active-filters__clear { font-size: 14px; font-weight: 600; color: var(--ce-accent); margin-left: 4px; }

.ce-empty { padding: 40px 24px; text-align: center; }

.ce-pagination { margin-top: 28px !important; gap: 8px; }
.ce-pagination .page-numbers,
.ce-pagination a {
	min-width: 44px;
	height: 44px;
	border-radius: 10px;
	border: 1px solid var(--ce-input);
	background: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 14px;
	font-weight: 600;
	color: var(--ce-text);
}
.ce-pagination .page-numbers.current { background: var(--ce-primary); border-color: var(--ce-primary); color: #fff; }
.ce-pagination .page-numbers.dots { border: 0; background: none; }

/* ---------- Single product ---------- */

.ce-product { gap: 48px; margin-top: 20px; }
.ce-product .woocommerce-product-gallery {
	background: #fff;
	border: 1px solid var(--ce-border);
	border-radius: 20px;
	overflow: hidden;
	padding: 0;
}
.ce-product .woocommerce-product-gallery .flex-control-thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; padding: 12px !important; margin: 0; }
.ce-product .woocommerce-product-gallery .flex-control-thumbs li { width: auto !important; margin: 0 !important; float: none !important; }
.ce-product .woocommerce-product-gallery .flex-control-thumbs img { border-radius: 12px; border: 1px solid var(--ce-border); opacity: 0.7; }
.ce-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active { opacity: 1; border: 2px solid var(--ce-primary); }
.ce-buybox > * { margin-block: 0; }
.ce-buybox > * + * { margin-block-start: 16px; }
.ce-eyebrow, .ce-eyebrow a { font-size: 13px; color: var(--ce-muted); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; }
.ce-product__title { font-size: 34px; line-height: 1.15; }
.ce-product__price .wc-block-components-product-price,
.ce-product__price { font-size: 38px !important; color: var(--ce-accent); letter-spacing: -0.02em; }
.ce-product__price .wc-block-components-product-price del { font-size: 18px; }
.ce-product__price ins { color: var(--ce-accent); }
.wc-block-components-product-stock-indicator { font-size: 15px; font-weight: 600; }
.wc-block-components-product-stock-indicator--in-stock { color: #15803D; }
.wc-block-components-product-stock-indicator--out-of-stock { color: #B91C1C; }
.ce-product__summary { font-size: 15px; color: #34433D; }

.wp-block-add-to-cart-form form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; margin: 0; }
.wp-block-add-to-cart-form form.variations_form { display: block; }
.wp-block-add-to-cart-form .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 12px; }
.wp-block-add-to-cart-form .quantity { margin: 0 !important; }
.wp-block-add-to-cart-form .quantity .qty {
	height: 52px;
	width: 84px;
	border: 1.5px solid var(--ce-input);
	border-radius: 10px;
	font-size: 17px;
	font-weight: 700;
	text-align: center;
}
.wp-block-add-to-cart-form .single_add_to_cart_button {
	flex: 1 1 200px;
	min-height: 52px;
	background: var(--ce-accent) !important;
	color: #fff !important;
	border: 0;
	border-radius: 10px !important;
	font-size: 16px !important;
	font-weight: 600;
	cursor: pointer;
}
.wp-block-add-to-cart-form .single_add_to_cart_button:hover { background: var(--ce-accent-dark) !important; }
.wp-block-add-to-cart-form table.variations { margin-bottom: 12px; }
.wp-block-add-to-cart-form table.variations select { height: 44px; line-height: 1.2; border: 1.5px solid var(--ce-input); border-radius: 10px; padding: 0 36px 0 12px; min-width: 200px; font-size: 15px; background-color: #fff; }
.wp-block-add-to-cart-form table.variations th, .wp-block-add-to-cart-form table.variations td { vertical-align: middle; padding: 6px 12px 6px 0; }
.wp-block-add-to-cart-form .reset_variations { font-size: 14px; }

.ce-delivery { padding: 6px 18px; }
.ce-delivery__row {
	margin: 0;
	padding: 14px 0 14px 38px;
	border-bottom: 1px solid var(--ce-line);
	font-size: 14px;
	color: var(--ce-muted);
	background: left 16px / 24px no-repeat;
}
.ce-delivery__row:last-child { border-bottom: 0; }
.ce-delivery__row strong { font-size: 15px; color: var(--ce-text); }
.ce-delivery__row--truck { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E4D3C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6h11v9H2z'/%3E%3Cpath d='M13 9h4l4 4v2h-8z'/%3E%3Ccircle cx='6' cy='17.5' r='2'/%3E%3Ccircle cx='17' cy='17.5' r='2'/%3E%3C/svg%3E"); }
.ce-delivery__row--cash { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E4D3C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='6' width='20' height='12' rx='2'/%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3Cpath d='M6 12h.01M18 12h.01'/%3E%3C/svg%3E"); }
.ce-delivery__row--returns { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E4D3C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 3-6.7'/%3E%3Cpath d='M3 4v5h5'/%3E%3C/svg%3E"); }

.ce-product-tabs { margin-top: 56px !important; overflow: hidden; }
.ce-product-tabs .woocommerce-tabs { margin: 0; padding: 0; }
.ce-product-tabs .woocommerce-tabs ul.tabs {
	display: flex;
	overflow-x: auto;
	margin: 0 !important;
	padding: 0 12px !important;
	list-style: none;
	border-bottom: 1px solid var(--ce-border) !important;
	background: none !important;
}
.ce-product-tabs .woocommerce-tabs ul.tabs::before,
.ce-product-tabs .woocommerce-tabs ul.tabs li::before,
.ce-product-tabs .woocommerce-tabs ul.tabs li::after { display: none !important; }
.ce-product-tabs .woocommerce-tabs ul.tabs li {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	border-radius: 0 !important;
}
.ce-product-tabs .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 18px 18px 15px !important;
	font-size: 15px;
	font-weight: 600;
	color: var(--ce-muted) !important;
	white-space: nowrap;
	border-bottom: 3px solid transparent;
}
.ce-product-tabs .woocommerce-tabs ul.tabs li.active a { color: var(--ce-primary) !important; border-bottom-color: var(--ce-accent); }
.ce-product-tabs .woocommerce-tabs .panel { padding: 28px clamp(20px, 3vw, 36px) 36px; margin: 0 !important; font-size: 15px; color: #34433D; }
.ce-product-tabs .woocommerce-tabs .panel > h2:first-child { font-size: 20px; }
.ce-product-tabs table.shop_attributes { border: 0; }
.ce-product-tabs table.shop_attributes th,
.ce-product-tabs table.shop_attributes td { border-bottom: 1px solid var(--ce-line); padding: 12px 16px 12px 0; text-align: left; background: none !important; font-style: normal; }
.ce-product-tabs table.shop_attributes th { color: var(--ce-muted); font-weight: 500; width: 40%; }
.ce-product-tabs #review_form #submit { background: var(--ce-primary); color: #fff; border-radius: 10px; }

.ce-related { padding-top: 56px; }
.ce-related h2 { margin: 0 0 22px; }

/* ---------- Cart & checkout steps ---------- */

.ce-steps { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; font-size: 14px; font-weight: 600; color: var(--ce-muted); }
.ce-steps li { display: flex; align-items: center; gap: 8px; }
.ce-steps li a { display: flex; align-items: center; gap: 8px; color: var(--ce-primary); }
.ce-steps li + li::before { content: ""; width: 40px; height: 2px; background: var(--ce-input); margin-right: 4px; }
.ce-steps span {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 1.5px solid var(--ce-input);
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
}
.ce-steps .is-current { color: var(--ce-primary); }
.ce-steps .is-current span { background: var(--ce-primary); border-color: var(--ce-primary); color: #fff; }
.ce-steps .is-done span { background: var(--ce-tint); border-color: var(--ce-tint); color: var(--ce-primary); }
.ce-steps .is-current::before, .ce-steps .is-done + li::before { background: var(--ce-primary); }

.ce-header--checkout .ce-secure-note { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; margin: 0; font-size: 14px; color: var(--ce-muted); }
.ce-lock { color: var(--ce-primary); display: inline-flex; align-items: center; gap: 8px; }
.ce-lock::before { content: ""; width: 18px; height: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E4D3C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E") center / contain no-repeat; }

/* ---------- WooCommerce Cart & Checkout blocks ---------- */

.wp-block-woocommerce-cart .wc-block-components-main,
.wp-block-woocommerce-cart .wc-block-components-sidebar {
	background: #fff;
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius);
	padding: 20px 24px !important;
}
.wp-block-woocommerce-cart .wc-block-components-sidebar { align-self: flex-start; }
.wp-block-woocommerce-checkout .wc-block-components-checkout-order-summary__content,
.wp-block-woocommerce-checkout-order-summary-block { background: #fff; border-radius: var(--ce-radius); }
.wp-block-woocommerce-checkout .wc-block-components-checkout-step {
	background: #fff;
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius);
	padding: 24px clamp(18px, 2.5vw, 28px) !important;
	margin-bottom: 20px !important;
}
.wp-block-woocommerce-checkout .wc-block-components-checkout-step::after { display: none; }
.wc-block-components-checkout-step__heading .wc-block-components-title,
.wc-block-cart .wc-block-cart__totals-title,
.wc-block-components-checkout-order-summary__title-text { font-size: 20px !important; font-weight: 800 !important; text-transform: none !important; color: var(--ce-text); }
.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-textarea {
	border-radius: 10px !important;
	border-color: var(--ce-input) !important;
}
.wc-block-components-text-input.is-active input:focus,
.wc-block-components-text-input input:focus { border-color: var(--ce-primary) !important; box-shadow: 0 0 0 1px var(--ce-primary) !important; }
.wc-block-components-radio-control__option,
.wc-block-components-radio-control-accordion-option { border-radius: 12px; }
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	box-shadow: inset 0 0 0 2px var(--ce-primary) !important;
	background: #F3F8F5;
}
.wc-block-components-radio-control__input:checked { border-color: var(--ce-primary) !important; }
.wc-block-components-radio-control__input:checked::before { background: var(--ce-primary) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--ce-primary); border-color: var(--ce-primary); }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: #fff; }

.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	background: var(--ce-accent) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 10px !important;
	min-height: 52px;
	font-weight: 600 !important;
	font-size: 16px !important;
}
.wc-block-components-button:not(.is-link):hover { background: var(--ce-accent-dark) !important; }
.wc-block-components-totals-coupon .wc-block-components-button { min-height: 46px; background: var(--ce-primary) !important; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 20px; font-weight: 800; }
.wc-block-components-quantity-selector { border-radius: 10px !important; border-color: var(--ce-input) !important; }
.wc-block-components-quantity-selector::after { border-radius: 10px !important; border-color: var(--ce-input) !important; }
.wc-block-cart-item__remove-link { color: var(--ce-muted) !important; }
.wc-block-cart-item__remove-link:hover { color: #B91C1C !important; }
.wc-block-components-product-name { font-weight: 700; color: var(--ce-text); }
.wc-block-cart-items .wc-block-cart-items__header { color: var(--ce-muted); font-size: 13px; }
.wc-block-cart-item__image img { border-radius: 12px; }

/* ---------- My Account (WooCommerce account pages) ---------- */

.woocommerce-account .ce-account-page .woocommerce { display: flex; flex-wrap: wrap; gap: 28px; align-items: flex-start; }
.woocommerce-account .woocommerce-MyAccount-navigation {
	flex: 1 1 260px;
	float: none !important;
	width: auto !important;
	background: #fff;
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius);
	padding: 16px;
}
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.woocommerce-MyAccount-navigation li a {
	display: flex;
	align-items: center;
	min-height: 48px;
	padding: 0 14px;
	border-radius: 10px;
	font-size: 15px;
	font-weight: 600;
	color: var(--ce-text);
}
.woocommerce-MyAccount-navigation li a:hover { background: var(--ce-base); color: var(--ce-primary); }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--ce-tint); color: var(--ce-primary); }
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout { border-top: 1px solid var(--ce-line); margin-top: 8px; padding-top: 8px; }
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a { color: #B91C1C; }
.woocommerce-account .woocommerce-MyAccount-content {
	flex: 999 1 560px;
	min-width: 0;
	float: none !important;
	width: auto !important;
	background: #fff;
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius);
	padding: 28px;
}
.woocommerce-MyAccount-content > p:first-child { font-size: 16px; }
.woocommerce-account table.shop_table {
	width: 100%;
	border-collapse: collapse;
	border: 0;
	border-radius: 0;
	font-size: 15px;
	display: block;
	overflow-x: auto;
}
.woocommerce-account table.shop_table thead th {
	background: #FAFBF9;
	font-size: 13px;
	color: var(--ce-muted);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	text-align: left;
	padding: 14px 16px;
	white-space: nowrap;
}
.woocommerce-account table.shop_table td,
.woocommerce-account table.shop_table tbody th { padding: 16px; border-top: 1px solid var(--ce-line); vertical-align: middle; }
.woocommerce-orders-table__cell-order-number a { font-weight: 700; }
.woocommerce-orders-table__cell-order-status { font-weight: 700; }
.woocommerce-orders-table__row--status-processing .woocommerce-orders-table__cell-order-status { color: #1E40AF; }
.woocommerce-orders-table__row--status-on-hold .woocommerce-orders-table__cell-order-status { color: #9A3412; }
.woocommerce-orders-table__row--status-completed .woocommerce-orders-table__cell-order-status { color: #166534; }
.woocommerce-orders-table__row--status-cancelled .woocommerce-orders-table__cell-order-status,
.woocommerce-orders-table__row--status-failed .woocommerce-orders-table__cell-order-status { color: #4B5652; }

.woocommerce :is(a.button, button.button, input.button, .woocommerce-Button) {
	background: var(--ce-primary);
	color: #fff;
	border: 0;
	border-radius: 10px;
	padding: 11px 18px;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.3;
	min-height: 40px;
}
.woocommerce :is(a.button, button.button, input.button, .woocommerce-Button):hover { background: var(--ce-primary-dark); color: #fff; }
.woocommerce .woocommerce-orders-table .button + .button { margin-left: 6px; }

.woocommerce-Addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; margin-top: 16px; }
.woocommerce-Addresses::before, .woocommerce-Addresses::after { display: none !important; }
.woocommerce-Addresses .woocommerce-Address { float: none !important; width: auto !important; border: 1px solid var(--ce-border); border-radius: var(--ce-radius); padding: 24px; }
.woocommerce-Address-title { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.woocommerce-Address-title h2 { font-size: 17px; margin: 0; }
.woocommerce-Address address { font-style: normal; line-height: 1.7; color: #34433D; margin-top: 12px; }

.woocommerce form .form-row { padding: 0; margin: 0 0 16px; }
.woocommerce form .form-row label { font-size: 14px; font-weight: 600; margin-bottom: 6px; display: block; }
.woocommerce form .form-row :is(input.input-text, textarea, select) {
	height: 48px;
	border: 1.5px solid var(--ce-input);
	border-radius: 10px;
	padding: 0 14px;
	font-size: 15px;
	background: #fff;
	width: 100%;
}
.woocommerce form .form-row textarea { height: 96px; padding: 12px 14px; }
.woocommerce form .form-row :is(input.input-text, textarea, select):focus { border-color: var(--ce-primary); outline: 2px solid var(--ce-primary); outline-offset: 1px; }
.woocommerce-EditAccountForm fieldset { border: 1px solid var(--ce-border); border-radius: 12px; padding: 18px 20px 4px; margin: 8px 0 20px; }
.woocommerce-EditAccountForm legend { font-size: 16px; font-weight: 700; padding: 0 6px; }
.woocommerce :is(.woocommerce-form-login, .woocommerce-form-register) {
	background: #fff;
	border: 1px solid var(--ce-border) !important;
	border-radius: var(--ce-radius) !important;
	padding: 28px !important;
}
.woocommerce .woocommerce-form-login .woocommerce-form-login__submit { background: var(--ce-accent); }

/* Classic sale badge (product page gallery) */
.woocommerce span.onsale, .wp-block-woocommerce-product-image-gallery .onsale {
	background: var(--ce-accent);
	color: #fff;
	border-radius: 8px;
	min-height: 0;
	min-width: 0;
	line-height: 1;
	padding: 7px 11px;
	font-size: 13px;
	font-weight: 700;
	top: 16px;
	left: 16px;
	right: auto;
	margin: 0;
}

/* ---------- Posts ---------- */

.ce-post-card { padding: 24px; margin-bottom: 20px; }
.ce-post-card h2 { font-size: 22px; margin: 0 0 8px; }

/* ---------- Small screens ---------- */

@media (max-width: 781px) {
	.ce-hero { padding-block: 44px 52px; }
	.ce-hero__tiles { grid-template-rows: 150px 150px; }
	.ce-promo { padding: 28px !important; }
	.ce-promo__title { font-size: 28px !important; }
	.ce-product { gap: 28px; }
	.ce-product__title, .ce-page-title, .ce-shop-head h1 { font-size: 28px; }
	.ce-header__actions .wc-block-customer-account__account-name { display: none; }
	.woocommerce-account .woocommerce-MyAccount-content { padding: 20px; }
}

/* =====================================================================
   Design refresh (v1.1)
   Same brand colors and font; adds depth, clearer hierarchy, consistent
   interaction states and a tighter mobile layout. Overrides rules above.
   ===================================================================== */

html { scroll-behavior: smooth; scroll-padding-top: 140px; }
::selection { background: var(--ce-accent-light); color: var(--ce-text); }
:focus-visible { outline: 2px solid var(--ce-accent); outline-offset: 3px; border-radius: 4px; }
a, button, .wp-block-button__link { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
h1, h2, h3 { text-wrap: balance; }

/* ---------- Buttons ---------- */

.wp-block-button__link,
.wc-block-components-button:not(.is-link),
.ce-newsletter__form button {
	transition: background-color var(--ce-fast) var(--ce-ease), color var(--ce-fast) var(--ce-ease), box-shadow var(--ce-base-dur) var(--ce-ease), transform var(--ce-fast) var(--ce-ease);
}
.wp-block-button__link:hover { box-shadow: 0 6px 16px rgba(194, 65, 12, 0.24); transform: translateY(-1px); }
.wp-block-button__link:active { transform: translateY(0) scale(0.98); box-shadow: none; }
.ce-btn-light .wp-block-button__link:hover { box-shadow: 0 6px 16px rgba(0, 0, 0, 0.14); }
.ce-btn-arrow .wp-block-button__link::after { transition: transform var(--ce-fast) var(--ce-ease); }
.ce-btn-arrow .wp-block-button__link:hover::after { transform: translateX(3px); }

/* ---------- Header (sticky on desktop; top bar scrolls away) ---------- */

.ce-site-header { position: relative; z-index: 100; }
@media (min-width: 782px) {
	.ce-site-header {
		position: sticky;
		top: calc(var(--wp-admin--admin-bar--height, 0px) - var(--ce-topbar-h));
	}
}
.ce-catnav { transition: box-shadow var(--ce-base-dur) var(--ce-ease); }
.ce-site-header.is-scrolled .ce-catnav { box-shadow: 0 8px 24px rgba(14, 77, 60, 0.08); }

.ce-topbar { font-weight: 500; letter-spacing: 0.01em; }
.ce-topbar__inner > p:first-child { display: flex; align-items: center; gap: 8px; }
.ce-topbar__inner > p:first-child::before {
	content: "";
	width: 16px;
	height: 16px;
	flex: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDBA74' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6h11v9H2z'/%3E%3Cpath d='M13 9h4l4 4v2h-8z'/%3E%3Ccircle cx='6' cy='17.5' r='2'/%3E%3Ccircle cx='17' cy='17.5' r='2'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ce-topbar__links span { opacity: 0.8; }

.ce-header { padding-block: 14px; }
.ce-search .wp-block-search__inside-wrapper {
	border: 1.5px solid var(--ce-border);
	background: var(--ce-base);
	border-radius: 999px;
	padding: 4px;
	transition: border-color var(--ce-fast) var(--ce-ease), background-color var(--ce-fast) var(--ce-ease), box-shadow var(--ce-fast) var(--ce-ease);
}
.ce-search .wp-block-search__inside-wrapper:hover { border-color: #C9D3CD; }
.ce-search .wp-block-search__inside-wrapper:focus-within {
	border-color: var(--ce-primary);
	background: #fff;
	box-shadow: 0 0 0 4px rgba(14, 77, 60, 0.12);
}
.ce-search .wp-block-search__input { height: 42px; background: transparent; padding: 0 18px; }
.ce-search .wp-block-search__input::placeholder { color: #6B7570; }
.ce-search .wp-block-search__button { width: 48px; height: 42px; border-radius: 999px; flex: none; }
.ce-search .wp-block-search__button svg { width: 20px; height: 20px; }

.ce-header__actions { gap: 4px; }
.ce-header__actions .wc-block-customer-account__link,
.ce-header__actions .wc-block-mini-cart__button {
	min-height: 44px;
	min-width: 44px;
	justify-content: center;
	padding: 0 12px;
	border-radius: 999px;
	font-size: 14px;
	transition: background-color var(--ce-fast) var(--ce-ease), color var(--ce-fast) var(--ce-ease);
}
.ce-header__actions .wc-block-customer-account__link:hover,
.ce-header__actions .wc-block-mini-cart__button:hover { background: var(--ce-tint); color: var(--ce-primary); }
.ce-header__actions svg { width: 24px !important; height: 24px !important; }
.wc-block-mini-cart__badge { box-shadow: 0 0 0 2px #fff; }

/* Category menu: animated underline, deals pill, edge fade while it can scroll */
.ce-catnav__menu {
	-webkit-mask-image: linear-gradient(to right, #000 calc(100% - 40px), transparent);
	mask-image: linear-gradient(to right, #000 calc(100% - 40px), transparent);
}
@media (min-width: 1280px) {
	.ce-catnav__menu { -webkit-mask-image: none; mask-image: none; }
}
.ce-catnav__menu .wp-block-navigation__container { gap: 26px; }
.ce-catnav__menu .wp-block-navigation-item__content {
	position: relative;
	padding: 14px 0;
	font-weight: 500;
	transition: color var(--ce-fast) var(--ce-ease);
}
.ce-catnav__menu .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	border-radius: 2px;
	background: var(--ce-accent);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--ce-base-dur) var(--ce-ease);
}
.ce-catnav__menu .wp-block-navigation-item__content:hover { color: var(--ce-primary); }
.ce-catnav__menu .wp-block-navigation-item__content:hover::after,
.ce-catnav__menu .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.ce-nav-deals { margin-left: auto; }
.ce-nav-deals .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 14px;
	margin-block: 7px;
	border-radius: 999px;
	background: var(--ce-peach);
	color: var(--ce-accent-dark);
}
.ce-nav-deals .wp-block-navigation-item__content::after { display: none; }
.ce-nav-deals .wp-block-navigation-item__content::before {
	content: "";
	width: 15px;
	height: 15px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239A3412' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.6 13.4l-7.2 7.2a2 2 0 0 1-2.8 0L3 13V3h10l7.6 7.6a2 2 0 0 1 0 2.8z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ce-nav-deals .wp-block-navigation-item__content:hover { background: #FBD5B8; color: var(--ce-accent-dark); }

/* ---------- Hero ---------- */

.ce-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: 72px 80px;
	background:
		radial-gradient(900px 480px at 85% -10%, rgba(255, 255, 255, 0.10), transparent 60%),
		radial-gradient(700px 420px at -10% 110%, rgba(253, 186, 116, 0.16), transparent 60%),
		var(--ce-primary);
}
.ce-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: radial-gradient(rgba(255, 255, 255, 0.07) 1px, transparent 1px);
	background-size: 22px 22px;
	-webkit-mask-image: linear-gradient(to bottom, #000, transparent 85%);
	mask-image: linear-gradient(to bottom, #000, transparent 85%);
}
.ce-pill { border: 1px solid rgba(255, 255, 255, 0.16); }
.ce-pill::before { box-shadow: 0 0 0 4px rgba(253, 186, 116, 0.22); }
.ce-hero__title { letter-spacing: -0.04em; }
.ce-hero__buttons .wp-block-button:first-child .wp-block-button__link { box-shadow: 0 10px 24px rgba(0, 0, 0, 0.22); }
.ce-checks li { font-weight: 500; }

.ce-tile {
	position: relative;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
	transition: transform var(--ce-base-dur) var(--ce-ease), box-shadow var(--ce-base-dur) var(--ce-ease);
}
.ce-tile:hover { transform: translateY(-4px); box-shadow: 0 20px 44px rgba(0, 0, 0, 0.26); }
/* The whole tile is clickable, not only the title text. */
.ce-tile__title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.ce-tile__title a:focus-visible { outline: none; }
.ce-tile:has(a:focus-visible) { outline: 3px solid var(--ce-accent-light); outline-offset: 3px; }
.ce-tile__title { display: flex; align-items: center; gap: 8px; }
.ce-tile__title::after {
	content: "";
	width: 28px;
	height: 28px;
	flex: none;
	margin-left: auto;
	border-radius: 50%;
	background: var(--ce-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 14px no-repeat;
	transition: transform var(--ce-base-dur) var(--ce-ease), background-color var(--ce-fast) var(--ce-ease);
}
.ce-tile:hover .ce-tile__title::after { transform: translateX(3px); background-color: var(--ce-accent); }
.ce-tile__sub { font-weight: 600; color: var(--ce-accent-dark); }

/* ---------- Sections ---------- */

.ce-section { padding-block: 72px 0; }
.ce-section-head { margin-bottom: 28px; }
.ce-section-head h2,
.ce-section > h2,
.ce-deals-title h2 { font-size: clamp(26px, 2.6vw, 34px); letter-spacing: -0.03em; }
.ce-more a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 16px;
	border-radius: 999px;
	border: 1px solid var(--ce-border);
	background: #fff;
	font-size: 14px;
	transition: border-color var(--ce-fast) var(--ce-ease), background-color var(--ce-fast) var(--ce-ease), color var(--ce-fast) var(--ce-ease);
}
.ce-more a:hover { border-color: var(--ce-primary); background: var(--ce-primary); color: #fff; }

/* Category grid: soft cards instead of loose circles */
.ce-cat-grid { grid-template-columns: repeat(auto-fit, minmax(112px, 1fr)); gap: 14px; }
.ce-cat-tile {
	gap: 12px;
	padding: 20px 10px 16px;
	background: #fff;
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius);
	font-size: 13.5px;
	line-height: 1.3;
	transition: transform var(--ce-base-dur) var(--ce-ease), box-shadow var(--ce-base-dur) var(--ce-ease), border-color var(--ce-fast) var(--ce-ease);
}
.ce-cat-tile:hover { transform: translateY(-3px); box-shadow: var(--ce-shadow-md); border-color: rgba(14, 77, 60, 0.35); color: var(--ce-primary); }
.ce-cat-tile__circle {
	width: 64px;
	height: 64px;
	border: 0;
	border-radius: 18px;
	background: var(--ce-tint);
	transition: background-color var(--ce-base-dur) var(--ce-ease), color var(--ce-base-dur) var(--ce-ease), transform var(--ce-base-dur) var(--ce-ease);
}
.ce-cat-tile__circle svg { width: 30px; height: 30px; }
.ce-cat-tile:nth-child(even) .ce-cat-tile__circle { background: var(--ce-peach); color: var(--ce-accent-dark); }
.ce-cat-tile:hover .ce-cat-tile__circle { background: var(--ce-primary); color: #fff; transform: scale(1.05); }

/* ---------- Product cards ---------- */

.ce-products li.wc-block-product {
	position: relative;
	transition: transform var(--ce-base-dur) var(--ce-ease), box-shadow var(--ce-base-dur) var(--ce-ease), border-color var(--ce-fast) var(--ce-ease);
}
.ce-products li.wc-block-product:hover { transform: translateY(-4px); box-shadow: var(--ce-shadow-lg); border-color: transparent; }
.ce-products .wc-block-components-product-image { overflow: hidden; margin-bottom: 12px !important; }
.ce-products .wc-block-components-product-image img { transition: transform 500ms var(--ce-ease); }
.ce-products li.wc-block-product:hover .wc-block-components-product-image img { transform: scale(1.05); }
.ce-card-cat, .ce-card-cat a { font-size: 11.5px; letter-spacing: 0.06em; }
.ce-card-cat a:hover { color: var(--ce-primary); }
.ce-card-title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: calc(2 * 1.35em);
}
.ce-products .wc-block-components-product-price { font-size: 20px; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.ce-products .wc-block-components-product-price ins { color: var(--ce-accent); }
/* Card buttons are soft (secondary) so the page keeps one loud primary action; they fill on hover. */
.ce-products .wc-block-components-product-button__button,
.ce-products .wc-block-components-product-button .wp-block-button__link {
	background: var(--ce-tint) !important;
	color: var(--ce-primary) !important;
	font-weight: 700;
	transition: background-color var(--ce-fast) var(--ce-ease), color var(--ce-fast) var(--ce-ease);
}
.ce-products li.wc-block-product:hover .wc-block-components-product-button__button,
.ce-products li.wc-block-product:hover .wc-block-components-product-button .wp-block-button__link {
	background: var(--ce-primary) !important;
	color: #fff !important;
}
.ce-products li.wc-block-product .wc-block-components-product-button__button:hover { background: var(--ce-primary-dark) !important; }
.wc-block-components-product-sale-badge {
	border-radius: 999px !important;
	padding: 5px 11px !important;
	letter-spacing: 0.02em;
	box-shadow: 0 4px 10px rgba(194, 65, 12, 0.28);
}

/* ---------- Offers ---------- */

.ce-promo {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: 260px;
	transition: transform var(--ce-base-dur) var(--ce-ease), box-shadow var(--ce-base-dur) var(--ce-ease);
}
.ce-promo::after {
	content: "";
	position: absolute;
	z-index: -1;
	width: 340px;
	height: 340px;
	right: -90px;
	bottom: -140px;
	border-radius: 50%;
	border: 56px solid rgba(255, 255, 255, 0.08);
}
.ce-promo:hover { transform: translateY(-3px); box-shadow: var(--ce-shadow-lg); }
.ce-promo--orange { background: linear-gradient(135deg, #C2410C 0%, #B33C0B 55%, var(--ce-accent-dark) 100%); }
.ce-promo--dark { background: radial-gradient(420px 260px at 100% 100%, rgba(253, 186, 116, 0.18), transparent 70%), var(--ce-primary-dark); }
.ce-promo--dark::after { border-color: rgba(253, 186, 116, 0.10); }
.ce-promo code { border: 1px dashed rgba(255, 255, 255, 0.5); background: rgba(255, 255, 255, 0.10); }

.ce-countdown__label { font-weight: 600; }
.ce-countdown__box {
	min-width: 38px;
	text-align: center;
	padding: 7px 8px;
	border-radius: 8px;
	background: var(--ce-text);
	font-size: 15px;
	box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.25);
}

/* ---------- Why us ---------- */

.ce-why { transition: transform var(--ce-base-dur) var(--ce-ease), box-shadow var(--ce-base-dur) var(--ce-ease), border-color var(--ce-fast) var(--ce-ease); }
.ce-why:hover { transform: translateY(-3px); box-shadow: var(--ce-shadow-md); border-color: transparent; }
.ce-why::before { border-radius: 16px; transition: transform var(--ce-base-dur) var(--ce-ease); }
.ce-why:hover::before { transform: rotate(-6deg) scale(1.05); }

/* ---------- Reviews ---------- */

.ce-review { position: relative; overflow: hidden; }
.ce-review::after {
	content: "\201C";
	position: absolute;
	top: -18px;
	right: 18px;
	font-size: 120px;
	font-weight: 800;
	line-height: 1;
	color: var(--ce-tint);
	pointer-events: none;
}
.ce-review > * { position: relative; z-index: 1; }
.ce-review__author { padding-top: 14px; border-top: 1px solid var(--ce-line); }
.ce-rating-summary {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--ce-border);
}

/* ---------- Newsletter: a strong closing call to action ---------- */

.ce-newsletter {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: 52px;
	background:
		radial-gradient(520px 300px at 100% 0%, rgba(253, 186, 116, 0.22), transparent 70%),
		var(--ce-primary);
}
.ce-newsletter::after {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background-image: radial-gradient(rgba(255, 255, 255, 0.07) 1px, transparent 1px);
	background-size: 22px 22px;
}
.ce-newsletter__text h2 { color: #fff; font-size: clamp(24px, 2.4vw, 30px); }
.ce-newsletter__text p { color: var(--ce-on-dark); }
.ce-newsletter__form input {
	border: 1.5px solid transparent;
	border-radius: 999px;
	padding: 0 22px;
	transition: box-shadow var(--ce-fast) var(--ce-ease);
}
.ce-newsletter__form input:focus { outline: none; box-shadow: 0 0 0 4px rgba(253, 186, 116, 0.5); }
.ce-newsletter__form button { border-radius: 999px; }

/* ---------- Footer ---------- */

.ce-footer { padding-top: 64px; }
.ce-footer__title { letter-spacing: 0.02em; }
.ce-footer__links a { display: inline-block; transition: color var(--ce-fast) var(--ce-ease), transform var(--ce-fast) var(--ce-ease); }
.ce-footer__links a:hover { transform: translateX(3px); }
.ce-footer__bottom { color: rgba(213, 227, 220, 0.85); }
.ce-pay-pills span { border-radius: 8px; padding: 7px 12px; }

/* ---------- Shop, filters, single product ---------- */

.ce-filters { position: sticky; top: 130px; box-shadow: var(--ce-shadow-sm); }
.ce-check { border-radius: 8px; padding-inline: 6px; margin-inline: -6px; transition: background-color var(--ce-fast) var(--ce-ease); }
.ce-check:hover { background: var(--ce-base); }
.ce-chip { transition: border-color var(--ce-fast) var(--ce-ease), color var(--ce-fast) var(--ce-ease), background-color var(--ce-fast) var(--ce-ease); }
.ce-pagination .page-numbers:not(.current):not(.dots):hover { border-color: var(--ce-primary); color: var(--ce-primary); }
.woocommerce-ordering select:focus,
.ce-price-inputs input:focus { outline: none; border-color: var(--ce-primary); box-shadow: 0 0 0 4px rgba(14, 77, 60, 0.12); }

/* ---------- Single product ---------- */

.ce-single-product .woocommerce-breadcrumb { margin-bottom: 4px; }
.ce-product { gap: 56px; align-items: flex-start; }
/* The gallery fills its column (WooCommerce caps it at the image size otherwise). */
.ce-product .wp-block-woocommerce-product-image-gallery { width: 100%; max-width: none; }
.ce-product .woocommerce-product-gallery {
	width: 100% !important;
	max-width: none !important;
	float: none !important;
	box-shadow: var(--ce-shadow-sm);
}
.ce-product .woocommerce-product-gallery__image img { width: 100% !important; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }
.ce-product .woocommerce-product-gallery__trigger {
	top: 16px !important;
	right: 16px !important;
	width: 40px !important;
	height: 40px !important;
	border-radius: 50% !important;
	background: #fff !important;
	box-shadow: var(--ce-shadow-md);
}
@media (min-width: 782px) {
	.ce-product__gallery { position: sticky; top: 140px; align-self: flex-start; }
}

.ce-buybox > * + * { margin-block-start: 18px; }
.ce-eyebrow a { display: inline-flex; padding: 5px 12px; border-radius: 999px; background: var(--ce-tint); color: var(--ce-primary); letter-spacing: 0.05em; }
.ce-eyebrow a:hover { background: var(--ce-primary); color: #fff; }
.ce-product__title { font-size: clamp(28px, 2.8vw, 38px); letter-spacing: -0.03em; }
.ce-product__price .wc-block-components-product-price { display: inline-flex; align-items: baseline; gap: 10px; font-variant-numeric: tabular-nums; }
.wc-block-components-product-stock-indicator {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 12px;
	border-radius: 999px;
	font-size: 14px;
}
.wc-block-components-product-stock-indicator::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.wc-block-components-product-stock-indicator--in-stock { background: #E7F5EC; }
.wc-block-components-product-stock-indicator--out-of-stock { background: #FDECEC; }
/* The stock block above already shows this; hide the form's duplicate line. */
.ce-buybox .wp-block-add-to-cart-form .stock { display: none; }
.ce-product__summary { font-size: 16px; line-height: 1.65; padding-bottom: 20px; border-bottom: 1px solid var(--ce-border); }

/* Quantity + button on one row, flush with the column edges. */
.wp-block-add-to-cart-form form.cart:not(.variations_form) { flex-wrap: nowrap; justify-content: flex-start; padding: 0; }
/* WooCommerce's clearfix pseudo-elements become flex items and add stray gaps. */
.wp-block-add-to-cart-form form.cart::before,
.wp-block-add-to-cart-form form.cart::after { display: none !important; }
.wp-block-add-to-cart-form .quantity { flex: none; gap: 0; }
.wp-block-add-to-cart-form .quantity .screen-reader-text { position: absolute !important; }
.wp-block-add-to-cart-form .single_add_to_cart_button { flex: 1 1 0 !important; }
.wp-block-add-to-cart-form .quantity .qty { height: 56px; width: 88px !important; margin: 0 !important; background: #fff; }
.wp-block-add-to-cart-form .quantity .qty:focus { outline: none; border-color: var(--ce-primary); box-shadow: 0 0 0 4px rgba(14, 77, 60, 0.12); }
.wp-block-add-to-cart-form .single_add_to_cart_button {
	min-height: 56px;
	font-size: 17px !important;
	font-weight: 700;
	box-shadow: 0 8px 20px rgba(194, 65, 12, 0.24);
	transition: background-color var(--ce-fast) var(--ce-ease), box-shadow var(--ce-base-dur) var(--ce-ease), transform var(--ce-fast) var(--ce-ease);
}
.wp-block-add-to-cart-form .single_add_to_cart_button:hover { transform: translateY(-1px); box-shadow: 0 12px 26px rgba(194, 65, 12, 0.3); }
.wp-block-add-to-cart-form .single_add_to_cart_button:active { transform: scale(0.98); }

.ce-delivery { padding: 4px 20px; box-shadow: var(--ce-shadow-sm); }
/* Icons sit on a mint square drawn behind the row. */
.ce-delivery { position: relative; isolation: isolate; }
.ce-delivery__row { position: relative; padding-left: 54px; background-size: 20px; background-position: 9px center; }
.ce-delivery__row::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 38px;
	height: 38px;
	margin-top: -19px;
	border-radius: 10px;
	background: var(--ce-tint);
	z-index: -1;
}
.ce-buybox .wp-block-woocommerce-product-sku { font-size: 13px; color: var(--ce-muted); }

.ce-product-tabs { box-shadow: var(--ce-shadow-sm); }
.ce-product-tabs .woocommerce-tabs ul.tabs li a { transition: color var(--ce-fast) var(--ce-ease), border-color var(--ce-fast) var(--ce-ease); }
.ce-product-tabs .woocommerce-tabs ul.tabs li a:hover { color: var(--ce-primary) !important; }
.ce-product-tabs .woocommerce-tabs .panel { max-width: 75ch; line-height: 1.7; }
/* Hide "You may also like" when there are no related products. */
.ce-related:not(:has(li.wc-block-product)) { display: none; }

/* ---------- Cart & checkout ---------- */

.ce-steps { margin-top: 12px; }
.ce-steps li + li::before { border-radius: 2px; }
.ce-steps .is-current span { box-shadow: 0 0 0 4px rgba(14, 77, 60, 0.14); }
.ce-cart-page .ce-page-title, .ce-checkout-page .ce-page-title { margin-top: 24px !important; letter-spacing: -0.03em; }

.wp-block-woocommerce-cart .wc-block-components-main,
.wp-block-woocommerce-cart .wc-block-components-sidebar,
.wp-block-woocommerce-checkout .wc-block-components-checkout-step,
.wp-block-woocommerce-checkout-order-summary-block { box-shadow: var(--ce-shadow-sm); }
.wp-block-woocommerce-checkout-order-summary-block { border: 1px solid var(--ce-border) !important; border-radius: var(--ce-radius) !important; background: #fff; }
.wp-block-woocommerce-cart .wc-block-components-sidebar { position: sticky; top: 140px; }
.wc-block-checkout__sidebar.is-sticky { top: 100px !important; }

.wc-block-cart-items__row { transition: background-color var(--ce-fast) var(--ce-ease); }
.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img { border-radius: 12px; background: var(--ce-tint); }
.wc-block-components-order-summary-item__quantity { background: var(--ce-primary) !important; color: #fff !important; border: 2px solid #fff !important; box-shadow: none !important; font-weight: 700; }
.wc-block-components-product-name:hover { color: var(--ce-primary); }

/* "Save $X" badge: brand peach instead of grey */
.wc-block-components-sale-badge {
	background: var(--ce-peach) !important;
	color: var(--ce-accent-dark) !important;
	border: 0 !important;
	border-radius: 999px !important;
	padding: 3px 10px !important;
	font-size: 12px !important;
	font-weight: 700 !important;
}

.wc-block-components-totals-wrapper { border-color: var(--ce-line) !important; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color: var(--ce-text); font-variant-numeric: tabular-nums; }
.wc-block-components-panel__button { font-weight: 600; }

.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select { background: #fff !important; transition: border-color var(--ce-fast) var(--ce-ease), box-shadow var(--ce-fast) var(--ce-ease); }
.wc-block-components-text-input input:focus,
.wc-block-components-combobox .wc-block-components-combobox-control input:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus {
	border-color: var(--ce-primary) !important;
	box-shadow: 0 0 0 4px rgba(14, 77, 60, 0.12) !important;
	outline: none !important;
}
.wc-block-components-checkout-step__title { letter-spacing: -0.01em; }

.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	min-height: 56px;
	font-size: 17px !important;
	font-weight: 700 !important;
	box-shadow: 0 8px 20px rgba(194, 65, 12, 0.24);
}
.wc-block-components-checkout-place-order-button .wc-block-components-button__text,
.wc-block-cart__submit-button .wc-block-components-button__text { display: inline-flex !important; align-items: center; justify-content: center; gap: 8px; }
.wc-block-components-checkout-place-order-button .wc-block-components-button__text::before {
	content: "";
	display: inline-block;
	flex: none;
	width: 18px;
	height: 18px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ce-header--checkout { border-bottom: 1px solid var(--ce-border); }
.ce-header--checkout .ce-lock { padding: 6px 12px; border-radius: 999px; background: var(--ce-tint); }

/* ---------- Mini-cart drawer ---------- */

.wc-block-components-drawer { background: #fff; box-shadow: -24px 0 48px rgba(14, 77, 60, 0.16); }
.wp-block-woocommerce-mini-cart-contents,
.wp-block-woocommerce-filled-mini-cart-contents-block,
.wc-block-mini-cart__title { background: #fff !important; }
.wc-block-mini-cart__title {
	margin: 0 !important;
	padding: 22px 64px 18px 24px !important;
	font-size: 20px !important;
	font-weight: 800;
	letter-spacing: -0.02em;
	border-bottom: 1px solid var(--ce-border);
}
.wc-block-mini-cart__title .wp-block-woocommerce-mini-cart-title-items-counter-block { color: var(--ce-muted); font-weight: 500; }

/* Close: a quiet round icon button, not a primary action */
.wc-block-components-drawer__close-wrapper .wc-block-components-drawer__close {
	top: 14px !important;
	right: 14px !important;
	width: 44px;
	height: 44px;
	min-height: 0;
	padding: 0 !important;
	border-radius: 50% !important;
	background: transparent !important;
	color: var(--ce-text) !important;
	box-shadow: none;
	opacity: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.wc-block-components-drawer__close-wrapper .wc-block-components-drawer__close:hover { background: var(--ce-tint) !important; color: var(--ce-primary) !important; }
.wc-block-components-drawer__close svg { width: 24px; height: 24px; fill: currentColor; }

.wc-block-mini-cart__items { padding: 8px 24px !important; }
.wc-block-mini-cart-items .wc-block-cart-items__row { padding: 18px 0 !important; border-bottom: 1px solid var(--ce-line); }
.wc-block-mini-cart-items .wc-block-cart-items__row:last-child { border-bottom: 0; }
.wc-block-mini-cart-items .wc-block-cart-item__image img { background: var(--ce-tint); }
.wc-block-mini-cart-items .wc-block-components-product-name { font-size: 15px; line-height: 1.35; }
.wc-block-mini-cart-items .wc-block-components-product-metadata { font-size: 13px; color: var(--ce-muted); }

.wc-block-mini-cart__footer {
	padding: 20px 24px 24px !important;
	background: var(--ce-base);
	border-top: 1px solid var(--ce-border);
	box-shadow: 0 -8px 24px rgba(14, 77, 60, 0.06);
}
.wc-block-mini-cart__footer-subtotal { font-size: 18px; font-weight: 800; }
.wc-block-mini-cart__footer-subtotal .wc-block-components-totals-item__description { font-size: 13px; font-weight: 400; color: var(--ce-muted); }
.wc-block-mini-cart__footer-actions { gap: 10px !important; margin-top: 16px; }
.wc-block-mini-cart__footer-actions .wc-block-components-button {
	flex: 1 1 0;
	min-height: 50px;
	padding: 0 16px !important;
	margin: 0 !important;
	font-size: 15px !important;
}
/* "View cart" is secondary; "Go to checkout" stays the one orange action. */
.wc-block-mini-cart__footer-actions .wc-block-mini-cart__footer-cart {
	background: #fff !important;
	color: var(--ce-primary) !important;
	box-shadow: inset 0 0 0 1.5px var(--ce-primary);
}
.wc-block-mini-cart__footer-actions .wc-block-mini-cart__footer-cart:hover { background: var(--ce-tint) !important; }
.wc-block-mini-cart__footer-actions .wc-block-mini-cart__footer-checkout { box-shadow: 0 8px 20px rgba(194, 65, 12, 0.24); }
.wc-block-mini-cart__empty-cart-wrapper { padding: 48px 24px; text-align: center; }
.wc-block-mini-cart__shopping-button { min-height: 50px; padding: 0 28px !important; }

/* ---------- Mobile menu (☰ button + slide-in drawer, small screens only) ---------- */

.ce-menu-toggle {
	display: none;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-left: -10px !important;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: none;
	color: var(--ce-text);
	cursor: pointer;
	transition: background-color var(--ce-fast) var(--ce-ease);
}
.ce-menu-toggle:hover { background: var(--ce-tint); color: var(--ce-primary); }

/* Closed panels stay in the DOM but hidden, after the slide-out has finished. */
.ce-drawer { position: fixed; inset: 0; z-index: 100000; visibility: hidden; transition: visibility 0s var(--ce-base-dur); }
.ce-drawer.is-open { visibility: visible; transition: none; }
.ce-drawer__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(11, 59, 46, 0.45);
	opacity: 0;
	transition: opacity var(--ce-base-dur) var(--ce-ease);
}
.ce-drawer__panel {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	display: flex;
	flex-direction: column;
	width: min(86vw, 340px);
	background: #fff;
	box-shadow: var(--ce-shadow-lg);
	transform: translateX(-100%);
	transition: transform var(--ce-base-dur) var(--ce-ease);
}
.ce-drawer.is-open .ce-drawer__backdrop { opacity: 1; }
.ce-drawer.is-open .ce-drawer__panel { transform: none; }
html.ce-panel-open { overflow: hidden; }
/* The ☰ menu lives inside the header, so lift the whole header over the bottom bar and chat button while it is open. */
html.ce-panel-open .ce-site-header { z-index: 100000; }

.ce-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 8px 12px 20px;
	border-bottom: 1px solid var(--ce-line);
}
.ce-drawer__head .ce-logo { font-size: 20px; }
.ce-drawer__head .ce-logo a::before { width: 26px; height: 26px; margin-right: 8px; }
.ce-drawer__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: none;
	color: var(--ce-text);
	cursor: pointer;
}
.ce-drawer__close:hover { background: var(--ce-tint); }

.ce-drawer__body { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 16px 12px 24px; }
.ce-drawer__body ul { margin: 0; padding: 0; list-style: none; }
.ce-drawer__label {
	margin: 20px 8px 6px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ce-muted);
}
.ce-drawer__body a {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 48px;
	padding: 0 8px;
	border-radius: var(--ce-radius-sm);
	color: var(--ce-text);
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
}
.ce-drawer__body a:hover { background: var(--ce-base); color: var(--ce-primary); }
.ce-drawer__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: var(--ce-tint);
	color: var(--ce-primary);
}
.ce-drawer__cats li:nth-child(even) .ce-drawer__icon { background: var(--ce-peach); color: var(--ce-accent); }
.ce-drawer__body .ce-drawer__all { color: var(--ce-primary); font-weight: 700; }
.ce-drawer__links a { min-height: 44px; color: var(--ce-muted); }

.ce-drawer__body .ce-drawer__deals {
	justify-content: center;
	background: var(--ce-peach);
	color: var(--ce-accent-dark);
	font-weight: 700;
}
.ce-drawer__body .ce-drawer__deals:hover { background: #FBD5B8; color: var(--ce-accent-dark); }

.ce-drawer__foot { padding: 12px 20px 20px; border-top: 1px solid var(--ce-line); }
.ce-drawer__account {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	border-radius: var(--ce-radius-sm);
	background: var(--ce-primary);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}
.ce-drawer__account:hover { background: var(--ce-primary-dark); color: #fff; }
.ce-drawer__note { margin: 10px 0 0; text-align: center; font-size: 12.5px; color: var(--ce-muted); }

@media (min-width: 782px) {
	.ce-drawer { display: none !important; }
}

/* ---------- Shop toolbar + filter panel (phones) ---------- */

.ce-shop-head__tools { gap: 10px; }
.ce-shop-head__tools > * { margin: 0; }
.ce-filter-toggle,
.ce-filter-form__close,
.ce-filters-backdrop { display: none; }
.ce-filter-toggle {
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 44px;
	padding: 0 16px;
	border: 1.5px solid var(--ce-input);
	border-radius: 10px;
	background: #fff;
	color: var(--ce-text);
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
}
.ce-filter-toggle:hover { border-color: var(--ce-primary); color: var(--ce-primary); }
.ce-filter-toggle__count {
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--ce-accent);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	line-height: 20px;
}

/* ---------- Bottom bar (phones) ---------- */

.ce-bottombar { display: none; }

@media (max-width: 781px) {
	.ce-shop-head__tools { flex: 1 1 100%; }
	.ce-filter-toggle { display: inline-flex; flex: 0 0 auto; }
	.ce-shop-head__tools .wc-block-catalog-sorting { flex: 1 1 0; min-width: 0; }
	.ce-shop-head__tools .wc-block-catalog-sorting select { width: 100%; min-width: 0; }

	.ce-filters {
		position: fixed !important;
		top: 0;
		bottom: 0;
		left: 0;
		z-index: 100001;
		width: min(88vw, 360px);
		max-width: none;
		padding: 0 20px;
		border: 0;
		border-radius: 0;
		overflow-y: auto;
		overscroll-behavior: contain;
		visibility: hidden;
		transform: translateX(-100%);
		transition: transform var(--ce-base-dur) var(--ce-ease), visibility 0s var(--ce-base-dur);
	}
	.ce-filters.is-open {
		visibility: visible;
		transform: none;
		box-shadow: var(--ce-shadow-lg);
		transition: transform var(--ce-base-dur) var(--ce-ease);
	}
	.ce-filters:focus { outline: none; }
	.ce-filters-backdrop {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 100000;
		background: rgba(11, 59, 46, 0.45);
		opacity: 0;
		visibility: hidden;
		transition: opacity var(--ce-base-dur) var(--ce-ease), visibility 0s var(--ce-base-dur);
	}
	.ce-filters.is-open + .ce-filters-backdrop { opacity: 1; visibility: visible; transition: opacity var(--ce-base-dur) var(--ce-ease); }

	/* Title row stays at the top and "Apply filters" at the bottom while the list scrolls. */
	.ce-filter-form__head {
		position: sticky;
		top: 0;
		z-index: 1;
		gap: 12px;
		margin: 0 -20px;
		padding: 10px 8px 10px 20px;
		background: #fff;
		border-bottom: 1px solid var(--ce-line);
	}
	.ce-filter-form__title { margin-right: auto; }
	.ce-filter-form__close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		padding: 0;
		border: 0;
		border-radius: 999px;
		background: none;
		color: var(--ce-text);
		cursor: pointer;
	}
	.ce-filter-form__close:hover { background: var(--ce-tint); }
	.ce-filter-form .ce-filter:first-of-type { border-top: 0; }
	.ce-filter-form__foot {
		position: sticky;
		bottom: 0;
		margin: 22px -20px 0;
		padding: 12px 20px calc(12px + env(safe-area-inset-bottom));
		background: #fff;
		border-top: 1px solid var(--ce-line);
	}
	.ce-filter-form__foot .ce-filter-form__apply { margin: 0; min-height: 50px; }

	.ce-bottombar {
		display: grid;
		grid-template-columns: repeat(5, 1fr);
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 9990;
		padding-bottom: env(safe-area-inset-bottom);
		background: #fff;
		border-top: 1px solid var(--ce-border);
		box-shadow: 0 -6px 20px rgba(14, 77, 60, 0.07);
	}
	.ce-bottombar__item {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 3px;
		min-height: 60px;
		color: var(--ce-muted);
		font-size: 11.5px;
		font-weight: 600;
		text-decoration: none;
	}
	.ce-bottombar__item:hover { color: var(--ce-primary); }
	.ce-bottombar__item.is-active { color: var(--ce-primary); }

	.ce-bottombar__icon { position: relative; display: inline-flex; }
	.ce-bottombar__badge {
		position: absolute;
		top: -5px;
		right: -9px;
		min-width: 18px;
		height: 18px;
		padding: 0 5px;
		border-radius: 999px;
		background: var(--ce-accent);
		box-shadow: 0 0 0 2px #fff;
		color: #fff;
		font-size: 11px;
		font-weight: 700;
		line-height: 18px;
		text-align: center;
	}
	.ce-bottombar__badge[hidden] { display: none; }
	/* Keep the footer's last lines clear of the bar. */
	body { padding-bottom: calc(60px + env(safe-area-inset-bottom)); }
}

/* ---------- Homepage pieces driven by Caravan → Home ---------- */

/* Flash deals: own block under the banners; the days box only shows when a day or more is left. */
.ce-deals { margin-top: 48px; }
.ce-promos[hidden] + .ce-deals, .ce-section > .ce-deals:first-child { margin-top: 0; }
.ce-deals > * + * { margin-top: 20px; }
.ce-countdown__group { display: inline-flex; align-items: center; gap: 4px; margin-right: 2px; }
.ce-countdown__group[hidden] { display: none; }
.ce-countdown__unit { font-weight: 600; }

/* Reviews are real quotes now (figure/blockquote): reset browser margins. */
.ce-review { margin: 0; }
.ce-review__text { margin: 0; padding: 0; border: 0; }
.ce-review__text p { margin: 0; }
.ce-review__stars { margin: 0; }
.ce-review__author a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

/* Newsletter: success and error messages; the anti-spam field is never shown. */
.ce-newsletter__trap { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.ce-newsletter__done {
	display: flex;
	align-items: center;
	gap: 10px;
	flex: 1 1 420px;
	margin: 0;
	padding: 16px 20px;
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	font-weight: 600;
}
.ce-newsletter__done svg { flex: none; color: var(--ce-accent-light); }
.ce-newsletter__error { flex: 1 1 100%; margin: 0; color: #FFD7C2; font-size: 14px; font-weight: 600; }
.ce-newsletter__form input[aria-invalid="true"] { box-shadow: 0 0 0 3px rgba(255, 215, 194, 0.9); }

/* ---------- Info pages (FAQ, Contact, Payment methods…) ---------- */

/* FAQ: native <details> questions — keyboard and screen-reader friendly, no script. */
.wp-block-details {
	margin: 0 0 10px;
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-sm);
	background: #fff;
}
.wp-block-details summary {
	position: relative;
	padding: 16px 48px 16px 18px;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 18px;
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--ce-primary);
	border-bottom: 2px solid var(--ce-primary);
	transform: translateY(-70%) rotate(45deg);
	transition: transform var(--ce-fast) var(--ce-ease);
}
.wp-block-details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.wp-block-details summary:hover { color: var(--ce-primary); }
.wp-block-details > :not(summary) { margin: 0; padding: 0 18px 16px; color: var(--ce-muted); }

/* Contact details and payment methods lists. */
.ce-contact-list, .ce-payment-list { margin: 0 0 24px; padding: 0; list-style: none; }
.ce-contact-list li, .ce-payment-list li {
	margin: 0 0 10px;
	padding: 14px 18px;
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-sm);
	background: #fff;
	line-height: 1.6;
}
.ce-payment-list li p { margin: 4px 0 0; color: var(--ce-muted); }

/* Contact us: form card, with the other ways to reach us beside it (below it on phones). */
.ce-contact {
	--ce-error: #B42318;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 250px;
	gap: 24px;
	align-items: start;
	margin: 8px 0 32px;
	scroll-margin-top: 140px;
}
.ce-contact__main {
	padding: 28px;
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius);
	background: #fff;
	box-shadow: var(--ce-shadow-sm);
}
.ce-cf { display: grid; gap: 18px; margin: 0; }
.ce-cf__row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.ce-cf__field { display: grid; gap: 6px; align-content: start; }
.ce-cf__field label { font-size: 15px; font-weight: 600; color: var(--ce-text); }
.ce-cf__optional { font-weight: 400; color: var(--ce-muted); }
.ce-cf input, .ce-cf select, .ce-cf textarea {
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	padding: 11px 14px;
	border: 1.5px solid var(--ce-input);
	border-radius: var(--ce-radius-sm);
	background: #fff;
	color: var(--ce-text);
	font: inherit;
	font-size: 16px; /* 16px stops phones zooming in on tap. */
	line-height: 1.4;
	transition: border-color var(--ce-fast) var(--ce-ease), box-shadow var(--ce-fast) var(--ce-ease);
}
.ce-cf textarea { min-height: 150px; resize: vertical; }
.ce-cf select { cursor: pointer; }
.ce-cf input:hover, .ce-cf select:hover, .ce-cf textarea:hover { border-color: #A9B7B0; }
.ce-cf input:focus, .ce-cf select:focus, .ce-cf textarea:focus {
	outline: none;
	border-color: var(--ce-primary);
	box-shadow: 0 0 0 3px rgba(14, 77, 60, 0.16);
}
.ce-cf [aria-invalid="true"] { border-color: var(--ce-error); }
.ce-cf [aria-invalid="true"]:focus { box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.16); }
.ce-cf__help { margin: 0; font-size: 14px; color: var(--ce-muted); }
.ce-cf__error {
	display: flex;
	gap: 6px;
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--ce-error);
}
.ce-cf__error::before { content: "!"; flex: none; display: grid; place-items: center; width: 18px; height: 18px; margin-top: 1px; border-radius: 50%; background: var(--ce-error); color: #fff; font-size: 12px; }
.ce-cf__error[hidden] { display: none; }
.ce-cf__alert {
	margin: 0;
	padding: 12px 16px;
	border-left: 4px solid var(--ce-error);
	border-radius: 6px;
	background: #FEF3F2;
	color: var(--ce-error);
	font-weight: 600;
}
.ce-cf__trap { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.ce-cf__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.ce-cf__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 50px;
	padding: 0 28px;
	cursor: pointer;
}
.ce-cf__submit[aria-disabled="true"] { opacity: 0.6; cursor: progress; }
.ce-cf__privacy { flex: 1 1 220px; margin: 0; font-size: 14px; color: var(--ce-muted); }
.ce-cf__done { display: flex; gap: 14px; outline: none; }
.ce-cf__done svg { flex: none; color: var(--ce-primary); }
.ce-cf__done p { margin: 0 0 6px; }
.ce-cf__done-title { font-size: 20px; font-weight: 700; color: var(--ce-primary); }
.ce-contact__aside-title { margin: 0 0 12px; font-size: 18px; }
.ce-contact__aside .ce-contact-list { margin-bottom: 14px; }
.ce-contact__aside .ce-contact-list li { overflow-wrap: anywhere; }
.ce-contact__faq { margin: 0; color: var(--ce-muted); }
@media (max-width: 781px) {
	.ce-contact { grid-template-columns: 1fr; }
	.ce-contact__main { padding: 20px 16px; }
	.ce-cf__row { grid-template-columns: 1fr; }
	.ce-cf__submit { width: 100%; }
}

/* ---------- Caravan settings (Caravan → Header / WhatsApp) ---------- */

.ce-no-topbar .ce-topbar { display: none; }

/* Round WhatsApp chat button. On phones it sits above the bottom bar. */
.ce-wa-float {
	position: fixed;
	bottom: 24px;
	z-index: 9980;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 999px;
	background: #25D366;
	box-shadow: 0 8px 24px rgba(14, 77, 60, 0.25);
	color: #fff;
	transition: transform var(--ce-fast) var(--ce-ease), box-shadow var(--ce-fast) var(--ce-ease);
}
.ce-wa-float:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(14, 77, 60, 0.3); }
.ce-wa-float--right { right: 24px; }
.ce-wa-float--left { left: 24px; }
.ce-drawer__body .ce-drawer__wa { color: #128C4A; font-weight: 600; }

/* Back to top arrow: bottom right, above the WhatsApp button when that is on the right too. */
.ce-to-top {
	--ce-to-top-bottom: 24px;
	position: fixed;
	right: 24px;
	bottom: var(--ce-to-top-bottom);
	z-index: 9980;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 1px solid var(--ce-border);
	border-radius: 999px;
	background: #fff;
	box-shadow: var(--ce-shadow-md);
	color: var(--ce-primary);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity var(--ce-base-dur) var(--ce-ease), transform var(--ce-base-dur) var(--ce-ease), visibility 0s var(--ce-base-dur), background-color var(--ce-fast) var(--ce-ease);
}
.ce-to-top[hidden] { display: none; }
.ce-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition: opacity var(--ce-base-dur) var(--ce-ease), transform var(--ce-base-dur) var(--ce-ease), background-color var(--ce-fast) var(--ce-ease);
}
.ce-to-top:hover { background: var(--ce-primary); color: #fff; }
.ce-wa-float--right ~ .ce-to-top { --ce-to-top-bottom: 92px; }
.ce-drawer__wa svg { flex: none; }

/* ---------- Wishlist ---------- */

/* Heart on product images (round) and on the product page (full width). */
.wc-block-components-product-image { position: relative; }
.ce-wish-btn {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: var(--ce-shadow-sm);
	color: var(--ce-text);
	cursor: pointer;
	transition: transform var(--ce-fast) var(--ce-ease), color var(--ce-fast) var(--ce-ease);
}
.ce-wish-btn:hover { color: var(--ce-accent); }
.ce-wish-btn:active { transform: scale(0.9); }
.ce-wish-btn.is-saved { color: var(--ce-accent); }
.ce-wish-btn.is-saved svg { fill: currentColor; }
.ce-wish-btn--full {
	position: static;
	gap: 8px;
	width: 100%;
	height: 48px;
	margin-top: 12px;
	border: 1.5px solid var(--ce-input);
	border-radius: var(--ce-radius-sm);
	background: #fff;
	box-shadow: none;
	font: inherit;
	font-size: 15px;
	font-weight: 600;
}
.ce-wish-btn--full:hover { border-color: var(--ce-accent); }
.ce-wish-btn--full.is-saved { border-color: var(--ce-accent); background: var(--ce-peach); color: var(--ce-accent-dark); }

/* Header heart (desktop; phones use the bottom bar). */
.ce-header-wish {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	border-radius: 999px;
	color: var(--ce-text);
	transition: background-color var(--ce-fast) var(--ce-ease), color var(--ce-fast) var(--ce-ease);
}
.ce-header-wish:hover { background: var(--ce-tint); color: var(--ce-primary); }
.ce-header-wish__count,
.ce-drawer__count {
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--ce-accent);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
}
/* Same size as WooCommerce's mini-cart badge next to it. */
.ce-header-wish__count {
	position: absolute;
	top: 4px;
	right: 2px;
	box-sizing: border-box;
	min-width: 17.5px;
	height: 17.5px;
	padding: 0 3px;
	font-size: 12.25px;
	line-height: 17.5px;
	box-shadow: 0 0 0 2px #fff;
}
.ce-header-wish__count[hidden], .ce-drawer__count[hidden] { display: none; }
.ce-drawer__body .ce-drawer__wish { margin-top: 8px; font-weight: 600; }
.ce-drawer__wish .ce-drawer__icon { background: var(--ce-peach); color: var(--ce-accent); }
.ce-drawer__count { margin-left: auto; }

/* "Added to your wishlist · View" message. */
.ce-toast {
	position: fixed;
	left: 50%;
	bottom: 24px;
	z-index: 99999;
	display: flex;
	align-items: center;
	gap: 16px;
	max-width: calc(100% - 32px);
	padding: 12px 18px;
	border-radius: 12px;
	background: var(--ce-text);
	box-shadow: var(--ce-shadow-lg);
	color: #fff;
	font-size: 14px;
	font-weight: 500;
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, 12px);
	transition: opacity var(--ce-base-dur) var(--ce-ease), transform var(--ce-base-dur) var(--ce-ease);
}
.ce-toast.is-visible { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }
.ce-toast a { color: var(--ce-accent-light); font-weight: 700; text-decoration: none; white-space: nowrap; }

/* /wishlist/ page */
.ce-wishlist__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ce-wish-card {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius);
}
.ce-wish-card.is-loading { min-height: 320px; background: linear-gradient(100deg, #fff 30%, var(--ce-line) 50%, #fff 70%) 0 0 / 300% 100%; animation: ce-shimmer 1.4s linear infinite; }
@keyframes ce-shimmer { to { background-position: -300% 0; } }
.ce-wish-card__img { display: block; background: var(--ce-tint); }
.ce-wish-card__img img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
.ce-wish-card__remove {
	position: absolute;
	top: 10px;
	right: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: var(--ce-shadow-sm);
	color: var(--ce-text);
	cursor: pointer;
}
.ce-wish-card__remove:hover { color: var(--ce-accent); }
.ce-wish-card__body { display: flex; flex: 1; flex-direction: column; gap: 8px; padding: 14px; }
.ce-wish-card__title { color: var(--ce-text); font-size: 15px; font-weight: 600; line-height: 1.35; text-decoration: none; }
.ce-wish-card__title:hover { color: var(--ce-primary); }
.ce-wish-card__price { font-size: 17px; font-weight: 700; }
.ce-wish-card__price del { color: var(--ce-muted); font-size: 0.8em; font-weight: 500; }
.ce-wish-card__price ins { color: var(--ce-accent); text-decoration: none; }
/* Same look as the product grid's buttons, whether it is a <button> (add to cart) or a link (options / read more). */
.ce-wish-card .ce-wish-card__cart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	min-height: 44px;
	margin-top: auto;
	padding: 0 12px;
	border: 0;
	border-radius: var(--ce-radius-sm);
	background: var(--ce-tint);
	color: var(--ce-primary);
	font-size: 14px;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
}
.ce-wish-card .ce-wish-card__cart:hover { background: var(--ce-primary); color: #fff; }
.ce-wish-card .ce-wish-card__cart.is-added,
.ce-wish-card .ce-wish-card__cart.is-added:hover { background: var(--ce-tint); color: var(--ce-primary); opacity: 1; cursor: default; }
.ce-wishlist__empty { max-width: 520px; margin: 8px auto 0; padding: 40px 24px; text-align: center; }
.ce-wishlist__empty svg { color: var(--ce-accent); }
.ce-wishlist__empty h2 { margin: 12px 0 6px; font-size: 22px; }
.ce-wishlist__empty p { margin: 0 0 20px; }

/* ---------- Small screens ---------- */

@media (max-width: 781px) {
	html { scroll-padding-top: 16px; }
	.ce-header-wish { display: none; }
	.ce-wa-float { bottom: calc(76px + env(safe-area-inset-bottom)); width: 52px; height: 52px; }
	.ce-wa-float--right { right: 16px; }
	.ce-wa-float--left { left: 16px; }
	/* Above the bottom bar (60px + gap), and above the WhatsApp button when it is on the right. */
	.ce-to-top { right: 16px; width: 44px; height: 44px; --ce-to-top-bottom: calc(76px + env(safe-area-inset-bottom)); }
	.ce-wa-float--right ~ .ce-to-top { --ce-to-top-bottom: calc(140px + env(safe-area-inset-bottom)); }
	.ce-wish-btn:not(.ce-wish-btn--full) { top: 8px; right: 8px; width: 36px; height: 36px; }
	.ce-wish-btn:not(.ce-wish-btn--full) svg { width: 18px; height: 18px; }
	.ce-toast { bottom: calc(72px + env(safe-area-inset-bottom)); }
	.ce-wishlist__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.ce-wish-card__body { padding: 10px; }
	.ce-wish-card__title { font-size: 14px; }
	.ce-wish-card .ce-wish-card__cart { min-height: 40px; font-size: 13px; padding-inline: 8px; }
	/* Top bar: one line, delivery message only */
	.ce-topbar { font-size: 12.5px; }
	.ce-topbar__inner { justify-content: center !important; }
	.ce-topbar__links { display: none; }

	/* Header: logo + icons on one row, full-width search below */
	.ce-header { padding-block: 12px; }
	.ce-header__inner { gap: 12px 8px; }
	.ce-menu-toggle { display: inline-flex; order: 0; }
	.ce-logo { order: 1; font-size: 22px; }
	/* ☰ + logo + icons share one row, so the header logo drops its truck mark. */
	.ce-header__inner > .ce-menu-toggle ~ .ce-logo a::before { display: none; }
	.ce-drawer__head .ce-logo { order: 0; font-size: 20px; }
	/* Leave room for ☰, account and cart on one row. */
	/* Up to 36px tall, and never wider than what is left beside ☰ (34px), account + cart (112px), the gaps (16px) and the
	   page padding (40px). Auto width and height keep the proportions when either limit applies. */
	.ce-header .ce-logo__img { width: auto; height: auto; max-height: min(var(--ce-logo-h, 40px), 36px); max-width: min(190px, calc(100vw - 206px)); }
	.ce-logo a::before { width: 28px; height: 28px; margin-right: 8px; }
	.ce-header__actions { order: 2; margin-left: auto !important; }
	.ce-search { order: 3; flex: 1 1 100%; }
	.ce-header__actions .wc-block-customer-account__link,
	.ce-header__actions .wc-block-mini-cart__button { padding: 0 10px; }
	/* Icon only on phones; the label stays for screen readers. */
	.ce-header__actions .wc-block-customer-account__link .label {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}

	.ce-nav-deals { margin-left: 0; }
	/* The ☰ button opens the real menu now, so this is a plain link on phones. */
	.ce-nav-all .wp-block-navigation-item__content::before { display: none; }

	.ce-hero { padding-block: 40px 48px; }
	.ce-hero__text > * + * { margin-block-start: 18px; }
	.ce-hero__lead { font-size: 16px; }
	.ce-hero__buttons .wp-block-button { flex: 1 1 100%; }
	.ce-hero__buttons .wp-block-button__link { width: 100%; }
	.ce-hero__tiles { grid-template-rows: 150px 150px; gap: 12px; }
	.ce-tile { padding: 16px; border-radius: 16px; }
	.ce-tile__title, .ce-tile--big .ce-tile__title { font-size: 16px; }
	.ce-tile__title::after { width: 24px; height: 24px; background-size: 12px; }

	.ce-section { padding-top: 48px; }
	.ce-section-head { margin-bottom: 20px; }
	.ce-more a { min-height: 36px; padding: 0 12px; font-size: 13px; }

	.ce-cat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px 8px; }
	.ce-cat-tile { padding: 0; background: none; border: 0; font-size: 12px; gap: 8px; }
	.ce-cat-tile:hover { transform: none; box-shadow: none; }
	.ce-cat-tile__circle { width: 100%; max-width: 68px; height: auto; aspect-ratio: 1; border-radius: 18px; }
	.ce-cat-tile__circle svg { width: 26px; height: 26px; }

	/* Two products per row, compact cards */
	.ce-products ul.wc-block-product-template,
	.ce-products--deals ul.wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.ce-products li.wc-block-product { padding-bottom: 12px; border-radius: 12px; }
	.ce-products li.wc-block-product > * { padding-inline: 10px; }
	.ce-products .wc-block-components-product-image { padding: 0 !important; margin-bottom: 8px !important; }
	.ce-card-title { font-size: 14px !important; }
	.ce-products .wc-block-components-product-price { font-size: 17px; }
	.ce-products .wc-block-components-product-button__button { font-size: 13px; min-height: 40px; padding-inline: 8px; }
	.wc-block-components-product-sale-badge { font-size: 11px !important; padding: 4px 9px !important; }

	.ce-promos { gap: 14px; }
	.ce-promo { min-height: 0; }
	.ce-newsletter { padding-block: 36px; border-radius: 20px; }
	/* .ce-filters becomes a slide-in panel on phones; see "Shop toolbar + filter panel". */

	/* Checkout header: logo first, then the secure note */
	.ce-header--checkout .ce-secure-note { order: 2; flex: 1 1 100%; font-size: 13px; gap: 6px 12px; }
	/* Steps: shorter connectors so all three fit on one line */
	.ce-steps { gap: 6px 8px; font-size: 13px; }
	.ce-steps li + li::before { width: 16px; }
	.ce-steps span { width: 26px; height: 26px; }
	/* The last step shows only its number on phones. */
	.ce-steps li:last-child:not(.is-current) { font-size: 0; gap: 0; }
	.ce-steps li:last-child:not(.is-current) span { font-size: 13px; }

	/* Cart: keep the item row inside its card */
	.wp-block-woocommerce-cart .wc-block-components-main { padding: 4px 16px !important; }
	.wp-block-woocommerce-cart .wc-block-components-sidebar { position: static; padding: 16px !important; }
	.wc-block-cart-items { width: 100% !important; }
	.wc-block-cart-items__row { grid-template-columns: 72px minmax(0, 1fr) auto !important; }
	.wc-block-cart-item__total { width: auto; }

	.ce-product__gallery { position: static; }
	.ce-delivery { padding-inline: 16px; }
	.ce-footer { padding-top: 48px; }
}

/* Respect users who ask for less motion */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
	.ce-tile:hover, .ce-products li.wc-block-product:hover, .ce-cat-tile:hover,
	.ce-promo:hover, .ce-why:hover, .wp-block-button__link:hover { transform: none; }
}
