/*
 * Canaflora — rules theme.json cannot express. Tokens only (var(--wp--preset--*), var(--wp--custom--*)):
 * a city site's style variation changes the brand colours here without touching this file.
 */

:root {
	--cf-radius-sm: var(--wp--custom--radius--sm, 8px);
	--cf-radius-md: var(--wp--custom--radius--md, 14px);
	--cf-radius-lg: var(--wp--custom--radius--lg, 24px);
	--cf-touch: var(--wp--custom--touch, 44px);
	--cf-ease: var(--wp--custom--motion--fast, 160ms) ease-out;
}

/* Plugin UI this theme does not use (see inc/assets.php); belt and braces if markup slips through. */
.yith-wcqv-button, #yith-quick-view-modal, .yith-quick-view { display: none !important; }

/* Breadcrumb links: at least 24px tall targets (WCAG 2.2 target size). */
.woocommerce-breadcrumb a, .wc-block-breadcrumbs a { display: inline-block; padding: 4px 0; min-height: 24px; }

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

/* ---------- Header ---------------------------------------------------------------- */
.cf-announce p { margin: 0; }

/* Desktop: logo · menu · tools on one row. Phone: menu button · logo · tools. */
.cf-header > .wp-block-group {
	display: grid;
	grid-template-columns: auto 1fr auto;
	grid-template-areas: "logo nav tools";
	align-items: center;
	column-gap: var(--wp--preset--spacing--60);
}
.cf-header .cf-nav { grid-area: nav; justify-content: center; }
.cf-header .cf-nav .wp-block-navigation__container { column-gap: var(--wp--preset--spacing--50); flex-wrap: nowrap; }
.cf-header .cf-nav .wp-block-navigation-item__content { white-space: nowrap; }
.cf-header .cf-logo { grid-area: logo; margin: 0; font-variation-settings: "SOFT" 100; }
.cf-header .cf-header-tools { grid-area: tools; }
.cf-header .cf-logo a { text-decoration: none; }
.cf-header .cf-header-tools { justify-self: end; }
.cf-header .cf-nav .wp-block-navigation-item__content { text-decoration: none; padding: 10px 0; }
.cf-header .cf-nav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--primary); }
.cf-header .wp-block-search__button,
.cf-header .wc-block-customer-account a,
.cf-header .wc-block-mini-cart__button {
	min-width: var(--cf-touch);
	min-height: var(--cf-touch);
	background: transparent;
	color: var(--wp--preset--color--ink);
	border: 0;
}
.cf-header .wc-block-mini-cart__badge { background: var(--wp--preset--color--primary); color: #fff; }
.cf-header .cf-header-tools a,
.cf-header .cf-header-tools button {
	min-width: var(--cf-touch);
	min-height: var(--cf-touch);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
/* Core hides the menu button from 600px up; only size it where it is shown. */
@media (max-width: 599px) {
	.cf-header .wp-block-navigation__responsive-container-open {
		min-width: var(--cf-touch);
		min-height: var(--cf-touch);
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}
}

@media (max-width: 1023px) {
	.cf-header > .wp-block-group { grid-template-areas: "nav logo tools"; column-gap: var(--wp--preset--spacing--30); }
	.cf-header .cf-nav { justify-content: flex-start; }
	.cf-header .cf-logo { justify-self: center; }
}
@media (max-width: 781px) {
	.cf-header .cf-logo { font-size: 26px; }
	.cf-header .cf-search { display: none; }
}

/* ---------- Buttons: outline + chips ---------------------------------------------- */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--ink);
	border: 1px solid var(--wp--preset--color--ink);
	padding: 13px 27px;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--tint); color: var(--wp--preset--color--ink); }

.cf-chips { overflow-x: auto; scrollbar-width: none; padding-bottom: 4px; }
.cf-chips::-webkit-scrollbar { display: none; }
.cf-chips .wp-block-button { flex: none; }
.cf-chips .wp-block-button__link {
	background: var(--wp--preset--color--surface) !important;
	border-color: var(--wp--preset--color--line) !important;
	padding: 11px 20px;
	font-weight: 500;
	white-space: nowrap;
}
.cf-chips .wp-block-button:first-child .wp-block-button__link { background: var(--wp--preset--color--tint) !important; border-color: var(--wp--preset--color--tint) !important; }

/* ---------- Hero ------------------------------------------------------------------ */
.cf-hero { overflow: hidden; }
.cf-hero h1 { font-variation-settings: "SOFT" 80; }
.cf-hero__media { align-self: stretch; }
.cf-hero__img, .cf-hero__img img { height: 100%; width: 100%; margin: 0; }
.cf-hero__img img { object-fit: cover; min-height: 320px; max-height: 600px; display: block; }
@media (max-width: 781px) {
	.cf-hero > .wp-block-columns { flex-direction: column-reverse; }
	.cf-hero__img img { min-height: 0; height: 240px; }
	.cf-hero__text { padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40) var(--wp--preset--spacing--60) !important; }
}

/* ---------- Product cards ([products] shortcode, classic archive) -------------------- */
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--50);
	margin: 0;
	padding: 0;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	list-style: none;
	text-align: left;
}
.woocommerce ul.products li.product a img {
	aspect-ratio: 4 / 5;
	object-fit: contain;
	background: var(--wp--preset--color--surface);
	border-radius: var(--cf-radius-md);
	box-shadow: var(--wp--preset--shadow--soft);
	margin: 0 0 12px;
	transition: transform var(--cf-ease);
}
.woocommerce ul.products li.product a:hover img { transform: translateY(-2px); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	font-size: 20px;
	line-height: 1.2;
	padding: 0;
	color: var(--wp--preset--color--ink);
}
.woocommerce ul.products li.product .price {
	color: var(--wp--preset--color--ink-muted);
	font-size: 15px;
}
.woocommerce ul.products li.product .star-rating { display: none; } /* no reviews yet: no empty stars */
.woocommerce ul.products li.product .button {
	background: transparent;
	color: var(--wp--preset--color--ink);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	font-weight: 600;
	min-height: var(--cf-touch);
	display: inline-flex;
	align-items: center;
	padding: 0 18px;
}
.woocommerce ul.products li.product .button:hover { border-color: var(--wp--preset--color--ink); background: var(--wp--preset--color--tint); }

@media (max-width: 1023px) { .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 781px) {
	.woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 17px; }
}

/* ---------- Product cards (Product Collection block) ---------------------------------- */
.cf-products .wc-block-product-template {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--50);
	margin: 0;
	padding: 0;
}
.cf-products .wc-block-product { margin: 0; list-style: none; text-align: left; }
.cf-products .wc-block-components-product-image img {
	aspect-ratio: 4 / 5;
	object-fit: contain;
	background: var(--wp--preset--color--surface);
	border-radius: var(--cf-radius-md);
	box-shadow: var(--wp--preset--shadow--soft);
	transition: transform var(--cf-ease);
}
.cf-products .wc-block-components-product-image a:hover img { transform: translateY(-2px); }
.cf-products .cf-card-title { font-size: 20px; line-height: 1.2; margin: 12px 0 2px; text-align: left; }
.cf-products .cf-card-title a { color: var(--wp--preset--color--ink); text-decoration: none; }
.cf-products .wc-block-components-product-price { color: var(--wp--preset--color--ink-muted); text-align: left; font-family: var(--wp--preset--font-family--body); }
@media (max-width: 1023px) { .cf-products .wc-block-product-template { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 781px) {
	.cf-products .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.cf-products .cf-card-title { font-size: 17px; }
}

/* ---------- Studio / trust ---------------------------------------------------------- */
.cf-reasons h3 { margin-top: 0; }
.cf-footer-list { list-style: none; padding: 0; }
.cf-footer-list li { margin: 6px 0; }
.cf-footer a { text-decoration: none; }
.cf-footer a:hover { text-decoration: underline; }

/* ---------- WooCommerce single product (block template) ------------------------------ */
.single-product .wp-block-post-title { font-size: var(--wp--preset--font-size--xx-large); font-variation-settings: "SOFT" 60; }
.single-product .wc-block-components-product-price,
.single-product .price { font-family: var(--wp--preset--font-family--display); font-size: 28px; color: var(--wp--preset--color--ink); }
.single-product .woocommerce-product-gallery img { border-radius: var(--cf-radius-lg); background: var(--wp--preset--color--surface); }
.single-product .single_add_to_cart_button {
	background: var(--wp--preset--color--primary) !important;
	color: #fff !important;
	border-radius: 999px !important;
	min-height: 52px;
	padding: 0 32px !important;
	font-weight: 600;
}
.single-product .single_add_to_cart_button:hover { background: var(--wp--preset--color--deep) !important; }
.single-product .single_add_to_cart_button.disabled { opacity: .45; }

/* Size swatches (Woo Variation Swatches buttons) as cards until the size-upgrade block replaces them. */
.single-product .variable-items-wrapper .variable-item.button-variable-item {
	min-height: var(--cf-touch);
	padding: 0 18px;
	border-radius: var(--cf-radius-md);
	box-shadow: none;
	border: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--surface);
}
.single-product .variable-items-wrapper .variable-item.selected {
	border: 2px solid var(--wp--preset--color--primary);
	background: var(--wp--preset--color--tint);
}

/* ---------- Product page layout ------------------------------------------------------ */
.cf-product__summary .wp-block-post-title { margin-top: 0; }
.cf-product__pricerow { gap: 12px; margin-top: 8px; }
.cf-product__pricerow .wc-block-components-product-price { font-family: var(--wp--preset--font-family--display); color: var(--wp--preset--color--ink); }
.cf-free-delivery { color: var(--wp--preset--color--stem); font-weight: 600; margin: 0; }
.cf-florist-line {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--cf-radius-md);
	padding: 10px 14px;
}
.cf-product__gallery .woocommerce-product-gallery { position: sticky; top: 16px; }
/* WooCommerce starts the gallery at opacity 0 and fades it in once its script runs, which holds
   back the LCP image by seconds on phones. Show it immediately. */
.woocommerce-product-gallery { opacity: 1 !important; }
.cf-trust-mini .wp-block-column {
	background: var(--wp--preset--color--linen);
	border-radius: var(--cf-radius-md);
	padding: 12px 10px;
	text-align: center;
}
.cf-trust-mini p { margin: 0; line-height: 1.35; }
.cf-trust-mini strong { font-family: var(--wp--preset--font-family--display); font-weight: 500; font-size: 16px; }
.cf-product__details .wc-tabs { border-bottom: 1px solid var(--wp--preset--color--line); }

/* Hide the old attribute table/swatches when size cards are shown (select stays in the DOM). */
.cf-has-size-cards form.variations_form table.variations { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.cf-has-size-cards .woocommerce-variation-price { display: none; } /* price shows in cards + sticky bar */

/* ---------- Product page fields --------------------------------------------------- */
.cf-field { border: 0; margin: 0 0 var(--wp--preset--spacing--50); padding: 0; min-width: 0; }
.cf-field__title, .cf-field legend.cf-field__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
	margin: 0 0 10px;
	padding: 0;
}
.cf-field__title .cf-help { font-family: var(--wp--preset--font-family--body); font-size: 13px; margin-left: 6px; }
.cf-help { color: var(--wp--preset--color--ink-muted); font-size: 14px; margin: 8px 0 0; }

/* shared selectable tile */
.cf-size, .cf-chip, .cf-addon {
	position: relative;
	display: flex;
	flex-direction: column;
	cursor: pointer;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--cf-radius-md);
	transition: border-color var(--cf-ease), background var(--cf-ease);
}
.cf-size input, .cf-chip input, .cf-addon input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.cf-size:has(input:checked), .cf-chip:has(input:checked), .cf-addon:has(input:checked) {
	border: 2px solid var(--wp--preset--color--primary);
	background: var(--wp--preset--color--tint);
}
.cf-size:has(input:focus-visible), .cf-chip:has(input:focus-visible), .cf-addon:has(input:focus-visible) {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

.cf-sizes__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.cf-size { padding: 14px 10px; text-align: center; min-height: 88px; justify-content: center; }
.cf-size__name { font-weight: 600; }
.cf-size__note { font-size: 13px; color: var(--wp--preset--color--ink-muted); }
.cf-size__price { font-weight: 600; color: var(--wp--preset--color--deep); margin-top: 4px; }

.cf-chips-row { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 4px; scrollbar-width: none; }
.cf-chips-row::-webkit-scrollbar { display: none; }
.cf-chip { flex: none; min-width: 78px; min-height: 56px; padding: 6px 12px; justify-content: center; text-align: center; font-weight: 600; }
.cf-chip[hidden] { display: none; }
.cf-chip small { display: block; font-weight: 400; font-size: 12px; color: var(--wp--preset--color--ink-muted); }
.cf-other-date { margin: 10px 0 0; display: flex; gap: 10px; align-items: center; }
.cf-other-date[hidden] { display: none; }

.cf-addons__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.cf-addon { padding: 8px; text-align: center; font-size: 13px; }
.cf-addon__img img { width: 100%; height: auto; max-height: 120px; aspect-ratio: 1; object-fit: contain; border-radius: var(--cf-radius-sm); background: #fff; }
.cf-addon__name { font-weight: 600; margin-top: 6px; line-height: 1.25; }
.cf-addon__price { color: var(--wp--preset--color--ink-muted); }
.cf-addon__cta::before { content: "+ Add"; font-weight: 600; color: var(--wp--preset--color--deep); }
.cf-addon:has(input:checked) .cf-addon__cta::before { content: "✓ Added"; color: var(--wp--preset--color--stem); }
@media (max-width: 781px) { .cf-addons__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.cf-card__preview {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--cf-radius-md);
	box-shadow: var(--wp--preset--shadow--soft);
	padding: 18px;
	margin: 10px 0;
	transform: rotate(-1deg);
	font-family: var(--wp--preset--font-family--hand);
	font-size: 26px;
	line-height: 1.25;
	min-height: 70px;
	overflow-wrap: anywhere;
}
.cf-card__preview.is-empty { color: var(--wp--preset--color--ink-muted); }
.cf-card textarea { width: 100%; box-sizing: border-box; padding: 12px 14px; resize: vertical; }
.cf-card__count { text-align: right; margin-top: 4px; }

/* Add-to-cart row: WooCommerce lays this out as a grid/row; our fields need a single column. */
.cf-product form.cart,
.cf-product form.cart .woocommerce-variation-add-to-cart,
.cf-product form.cart .variations_button { display: block !important; width: 100%; min-width: 0; }
.cf-product form.cart .cf-field { width: 100%; }
.cf-product__summary { min-width: 0; }
.cf-product form.cart .quantity { display: none; } /* one bouquet per line; quantity in the cart */
.cf-product form.cart .single_add_to_cart_button { width: 100%; min-height: 56px; font-size: 17px; }

/* Sticky add-to-cart (phones) */
.cf-sticky-cart {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
	display: none; align-items: center; gap: 12px;
	padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
	background: var(--wp--preset--color--surface);
	border-top: 1px solid var(--wp--preset--color--line);
	box-shadow: 0 -8px 28px rgba(43, 38, 32, .10);
}
.cf-sticky-cart__price { font-family: var(--wp--preset--font-family--display); font-size: 20px; white-space: nowrap; }
.cf-sticky-cart__btn {
	flex: 1; min-height: 52px; border: 0; border-radius: 999px;
	background: var(--wp--preset--color--primary); color: #fff; font: inherit; font-weight: 600; cursor: pointer;
}
.cf-sticky-cart__btn:disabled { opacity: .5; }
@media (max-width: 781px) {
	.cf-sticky-cart.is-visible { display: flex; }
	.single-product .cf-footer { padding-bottom: 96px; }
	.cf-product__gallery .woocommerce-product-gallery { position: static; }
}

/* ---------- Category / shop archive ------------------------------------------------ */
.cf-archive__head .wp-block-query-title { margin: 0; font-variation-settings: "SOFT" 70; }
.cf-archive__intro { margin: 0; }
.cf-archive__intro p { margin: 0 0 .6em; }
.cf-archive__promise { color: var(--wp--preset--color--stem); font-weight: 600; margin: 0; }
.cf-archive__toolbar { margin-bottom: var(--wp--preset--spacing--40); gap: 12px; }
.cf-archive__toolbar .woocommerce-result-count { margin: 0; color: var(--wp--preset--color--ink-muted); }
.cf-archive__toolbar .woocommerce-ordering { margin: 0; }
.cf-archive__toolbar select.orderby { min-height: 44px; padding: 0 36px 0 12px; border-radius: 999px; }
.cf-products--archive .wc-block-product-template { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cf-archive__main { min-width: 0; }

.cf-filters { position: sticky; top: 16px; }
.cf-filters > summary {
	list-style: none; cursor: pointer;
	font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--large);
	margin-bottom: 8px;
}
.cf-filters > summary::-webkit-details-marker { display: none; }
.cf-filters__group { margin-top: 18px; }
.cf-filters__group h2, .cf-filters__group h3 { font-family: var(--wp--preset--font-family--body); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--wp--preset--color--ink-muted); margin: 0 0 6px; }
.cf-filters ul { list-style: none; margin: 0; padding: 0; }
.cf-filters li a, .cf-filters__all a {
	display: flex; justify-content: space-between; align-items: center; gap: 8px;
	min-height: 40px; padding: 4px 10px; border-radius: var(--cf-radius-sm);
	color: var(--wp--preset--color--ink); text-decoration: none;
}
.cf-filters li a:hover, .cf-filters__all a:hover { background: var(--wp--preset--color--linen); }
.cf-filters a.is-current { background: var(--wp--preset--color--tint); font-weight: 600; }
.cf-filters__all { margin: 0; }
.cf-filters__count { font-size: 13px; color: var(--wp--preset--color--ink-muted); }

.cf-pagination { margin-top: var(--wp--preset--spacing--60); gap: 6px; }
.cf-pagination a, .cf-pagination .page-numbers {
	min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center;
	border-radius: 999px; padding: 0 12px; text-decoration: none; color: var(--wp--preset--color--ink);
}
.cf-pagination .page-numbers.current { background: var(--wp--preset--color--ink); color: #fff; }
.cf-pagination a:hover { background: var(--wp--preset--color--linen); }

@media (max-width: 1023px) {
	.cf-products--archive .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 781px) {
	.cf-archive__body { flex-direction: column; }
	.cf-archive__side { flex-basis: auto !important; width: 100%; }
	.cf-filters { position: static; border: 1px solid var(--wp--preset--color--line); border-radius: var(--cf-radius-md); background: var(--wp--preset--color--surface); padding: 0 14px; }
	.cf-filters > summary { display: flex; justify-content: space-between; align-items: center; min-height: 52px; margin: 0; font-family: var(--wp--preset--font-family--body); font-size: 16px; font-weight: 600; }
	.cf-filters > summary::after { content: "+"; font-size: 22px; font-weight: 400; }
	.cf-filters[open] > summary::after { content: "–"; }
	.cf-filters[open] { padding-bottom: 12px; }
}

/* ---------- City landing pages + province hubs --------------------------------------- */
.cf-city__head h1 { margin: 0; font-variation-settings: "SOFT" 80; }
.cf-city-promise { color: var(--wp--preset--color--ink-muted); margin: 0; }
.cf-city__copy { font-size: 17px; }
.cf-city__copy h2 { font-size: var(--wp--preset--font-size--x-large); margin-top: 1.6em; }
.cf-city__copy h3 { font-size: var(--wp--preset--font-size--large); margin-top: 1.4em; }
.cf-city__copy img { max-width: 100%; height: auto; border-radius: var(--cf-radius-md); }
.cf-city__copy:empty { display: none; }
/* Elementor's saved HTML copy carries its toggle/icon SVGs without sizes: decorative, hide them. */
.cf-city__copy svg { display: none; }
.cf-city__copy h3[id^="elementor-tab-title"] {
	font-family: var(--wp--preset--font-family--body);
	font-size: 18px; font-weight: 600;
	margin: 1.4em 0 .4em; padding-top: 1em;
	border-top: 1px solid var(--wp--preset--color--line);
	cursor: default;
}
.cf-city__copy > br:first-child, .cf-city__copy h2 br, .cf-city__copy h3 br { display: none; }
.cf-city-links { background: var(--wp--preset--color--linen); border-radius: var(--cf-radius-lg); padding: var(--wp--preset--spacing--60); }
.cf-city-links h2 { margin-top: 0; font-size: var(--wp--preset--font-size--x-large); }
.cf-city-links__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px 16px; }
.cf-city-links__list.is-all { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.cf-city-links__list a { display: inline-flex; min-height: 36px; align-items: center; color: var(--wp--preset--color--ink); text-decoration: none; }
.cf-city-links__list a:hover { color: var(--wp--preset--color--primary); text-decoration: underline; }
.cf-city-links__all { margin: 16px 0 0; font-weight: 600; }
@media (max-width: 1023px) { .cf-city-links__list, .cf-city-links__list.is-all { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { .cf-city-links__list, .cf-city-links__list.is-all { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- Checkout (Shopify-style one page) ---------------------------------------- */
.cf-co-header .cf-logo { font-size: 28px; }
.cf-co-header p { margin: 0; }
.cf-co-page > .wp-block-post-content > .woocommerce { max-width: none; }

.cf-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 400px);
	grid-template-areas: "main summary";
	gap: var(--wp--preset--spacing--70);
	align-items: start;
}
.cf-checkout__main { grid-area: main; min-width: 0; }
.cf-checkout__summary {
	grid-area: summary;
	position: sticky; top: 16px;
	background: var(--wp--preset--color--linen);
	border-radius: var(--cf-radius-lg);
	padding: var(--wp--preset--spacing--50);
}
.cf-summary-toggle { display: none; }

.cf-co-section { margin: 0 0 var(--wp--preset--spacing--60); }
.cf-co-section h2 { font-family: var(--wp--preset--font-family--body); font-weight: 600; font-size: 20px; margin: 0 0 12px; }
.cf-co-section__head { display: flex; justify-content: space-between; align-items: baseline; }
.cf-co-section .cf-help { margin: -6px 0 12px; }
.cf-co-help { text-align: center; color: var(--wp--preset--color--ink-muted); font-size: 14px; }

/* Field grid: WooCommerce's form-row-first/last as two columns */
.cf-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; }
.cf-fields .form-row { grid-column: 1 / -1; margin: 0 0 12px; padding: 0; width: auto !important; float: none !important; }
.cf-fields .form-row-first { grid-column: 1; }
.cf-fields .form-row-last { grid-column: 2; }
.cf-checkout .form-row label { font-size: 14px; font-weight: 500; margin-bottom: 4px; display: block; }
.cf-checkout .form-row .required { color: var(--wp--preset--color--error); text-decoration: none; }
.cf-checkout input.input-text, .cf-checkout select, .cf-checkout textarea { width: 100%; min-height: 50px; padding: 0 12px; box-sizing: border-box; }
.cf-checkout textarea { padding: 12px; min-height: 90px; }
.cf-checkout .select2-container .select2-selection--single { height: 50px; border-color: var(--wp--preset--color--line); border-radius: var(--cf-radius-sm); }
.cf-checkout .select2-container .select2-selection--single .select2-selection__rendered { line-height: 48px; padding-left: 12px; }
.cf-checkout .select2-container .select2-selection--single .select2-selection__arrow { height: 48px; }
.cf-checkout .woocommerce-invalid input.input-text, .cf-checkout .woocommerce-invalid select { border-color: var(--wp--preset--color--error); }
.cf-checkout .create-account label.checkbox { display: flex; gap: 8px; align-items: center; font-weight: 400; }

/* Delivery methods + billing choice as Shopify-style stacked options */
.cf-ship-table, .cf-ship-table tbody, .cf-ship-table tr, .cf-ship-table td { display: block; width: 100%; border: 0; padding: 0; }
.cf-ship-table th { display: none; }
.cf-ship-table ul#shipping_method, .cf-radio-list {
	list-style: none; margin: 0; padding: 0;
	border: 1px solid var(--wp--preset--color--line); border-radius: var(--cf-radius-sm);
	background: var(--wp--preset--color--surface); overflow: hidden;
}
.cf-ship-table ul#shipping_method li, .cf-radio-list label {
	display: flex; align-items: center; gap: 10px; margin: 0; padding: 14px;
	border-bottom: 1px solid var(--wp--preset--color--line); cursor: pointer;
}
.cf-ship-table ul#shipping_method li:last-child, .cf-radio-list label:last-child { border-bottom: 0; }
.cf-ship-table ul#shipping_method li:has(input:checked), .cf-radio-list label:has(input:checked) { background: var(--wp--preset--color--tint); }
.cf-ship-table ul#shipping_method li label { flex: 1; display: flex; justify-content: space-between; cursor: pointer; margin: 0; }
.cf-ship-table input[type="radio"], .cf-radio-list input[type="radio"] { width: 18px; height: 18px; margin: 0; accent-color: var(--wp--preset--color--primary); }
.cf-ship-table .woocommerce-shipping-destination, .cf-ship-table .woocommerce-shipping-calculator { display: none; }
.cf-billing__fields { margin-top: 12px; }
.cf-billing__fields[hidden], .cf-checkout [hidden] { display: none !important; }

/* Tip */
.cf-tip__quick { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.cf-tip__quick button {
	min-height: 48px; border-radius: var(--cf-radius-sm); cursor: pointer; font: inherit;
	border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--ink);
}
.cf-tip__quick button[aria-pressed="true"] { border: 2px solid var(--wp--preset--color--primary); background: var(--wp--preset--color--tint); font-weight: 600; }
.cf-tip__plugin { margin-top: 10px; font-size: 14px; }
.cf-tip__plugin .wpslash-tip-title { display: none; }
.cf-tip__plugin .wpslash-tipping-form-wrapper { display: flex; gap: 8px; }
.cf-tip__plugin .wpslash-tip-input { max-width: 140px; min-height: 44px; padding: 0 10px; }
.cf-tip__plugin .wpslash-tip-submit { display: inline-flex; align-items: center; padding: 0 16px; border: 1px solid var(--wp--preset--color--ink); border-radius: var(--cf-radius-sm); cursor: pointer; color: var(--wp--preset--color--ink); text-decoration: none; }

/* Payment */
.cf-payment #payment { background: transparent; border-radius: 0; }
.cf-payment #payment ul.payment_methods {
	border: 1px solid var(--wp--preset--color--line); border-radius: var(--cf-radius-sm);
	background: var(--wp--preset--color--surface); padding: 0; margin: 0 0 16px;
}
.cf-payment #payment ul.payment_methods li { padding: 14px; border-bottom: 1px solid var(--wp--preset--color--line); }
.cf-payment #payment ul.payment_methods li:last-child { border-bottom: 0; }
.cf-payment #payment div.payment_box { background: var(--wp--preset--color--paper); border-radius: var(--cf-radius-sm); margin: 10px 0 0; }
.cf-payment #payment div.payment_box::before { display: none; }
.cf-payment #payment .place-order { padding: 0; margin: 0; }
.cf-payment #place_order {
	float: none; width: 100%; min-height: 56px; border-radius: var(--cf-radius-sm);
	background: var(--wp--preset--color--primary); color: #fff; font-size: 18px; font-weight: 600;
}
.cf-payment #place_order:hover { background: var(--wp--preset--color--deep); }
.cf-payment .woocommerce-terms-and-conditions-wrapper { font-size: 13px; color: var(--wp--preset--color--ink-muted); margin-bottom: 12px; }

/* Summary table */
.cf-review { width: 100%; border: 0 !important; border-collapse: collapse; margin: 0 0 12px; }
.cf-review td, .cf-review th { border: 0 !important; padding: 8px 0 !important; background: transparent !important; vertical-align: middle; font-weight: 400; text-align: left; }
.cf-review td.product-total, .cf-review tfoot td { text-align: right; white-space: nowrap; }
.cf-review .product-name { display: flex; gap: 12px; align-items: center; }
.cf-review__thumb { position: relative; flex: none; }
.cf-review__thumb img { width: 64px; height: 64px; object-fit: contain; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: var(--cf-radius-sm); }
.cf-review__qty { position: absolute; top: -8px; right: -8px; min-width: 20px; height: 20px; padding: 0 5px; box-sizing: border-box; border-radius: 999px; background: var(--wp--preset--color--ink-muted); color: #fff; font-size: 12px; display: flex; align-items: center; justify-content: center; }
.cf-review__text { font-size: 14px; line-height: 1.35; }
.cf-review__text dl.variation { margin: 4px 0 0; color: var(--wp--preset--color--ink-muted); font-size: 13px; }
.cf-review__text dl.variation dt, .cf-review__text dl.variation dd { display: inline; margin: 0; }
.cf-review__text dl.variation dd p { display: inline; margin: 0; }
.cf-review__text dl.variation dd::after { content: ""; display: block; }
.cf-review tfoot tr:first-child th, .cf-review tfoot tr:first-child td { border-top: 1px solid var(--wp--preset--color--line) !important; padding-top: 14px !important; }
.cf-review .order-total th, .cf-review .order-total td { font-size: 20px; font-weight: 600; padding-top: 12px !important; }
.cf-discount { display: flex; gap: 8px; }
.cf-discount input { flex: 1; min-height: 48px; padding: 0 12px; }
.cf-discount button { min-height: 48px; padding: 0 16px; border-radius: var(--cf-radius-sm); border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--ink); font: inherit; cursor: pointer; }

@media (max-width: 900px) {
	.cf-checkout { grid-template-columns: minmax(0, 1fr); grid-template-areas: "summary" "main"; gap: var(--wp--preset--spacing--50); }
	.cf-checkout__summary { position: static; padding: 0; background: transparent; }
	.cf-summary-toggle {
		display: flex; justify-content: space-between; align-items: center; width: 100%;
		padding: 16px; border: 0; border-radius: var(--cf-radius-md);
		background: var(--wp--preset--color--linen); color: var(--wp--preset--color--deep); font: inherit; cursor: pointer;
	}
	.cf-summary-toggle .cf-summary-total { color: var(--wp--preset--color--ink); font-weight: 600; font-size: 18px; }
	.cf-checkout__summary #order_review, .cf-checkout__summary .cf-discount { display: none; }
	.cf-checkout__summary.is-open #order_review, .cf-checkout__summary.is-open .cf-discount { display: block; }
	.cf-checkout__summary.is-open { background: var(--wp--preset--color--linen); border-radius: var(--cf-radius-md); padding: 0 16px 16px; }
	.cf-checkout__summary.is-open .cf-summary-toggle { padding: 16px 0; }
	.cf-checkout__summary.is-open .cf-discount { display: flex; }
}
@media (max-width: 480px) {
	.cf-fields .form-row-first, .cf-fields .form-row-last { grid-column: 1 / -1; }
}

/* ---------- Cart page -------------------------------------------------------------- */
.cf-cart-page .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); gap: var(--wp--preset--spacing--60); align-items: start; }
.cf-cart-page .woocommerce-notices-wrapper, .cf-cart-page .wc-empty-cart-message, .cf-cart-page .return-to-shop, .cf-cart-page .cart-empty { grid-column: 1 / -1; }
.cf-cart-page form.woocommerce-cart-form { min-width: 0; }
.cf-cart-page table.shop_table { border: 0; border-collapse: collapse; width: 100%; }
.cf-cart-page table.shop_table thead { display: none; }
.cf-cart-page table.shop_table td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: 16px 8px; vertical-align: middle; background: transparent; }
.cf-cart-page td.product-thumbnail img { width: 96px; height: 96px; object-fit: contain; background: #fff; border-radius: var(--cf-radius-md); border: 1px solid var(--wp--preset--color--line); }
.cf-cart-page td.product-name a { font-family: var(--wp--preset--font-family--display); font-size: 19px; color: var(--wp--preset--color--ink); text-decoration: none; }
.cf-cart-page td.product-name dl.variation { margin: 4px 0 0; font-size: 14px; color: var(--wp--preset--color--ink-muted); }
.cf-cart-page td.product-name dl.variation dt, .cf-cart-page td.product-name dl.variation dd { display: inline; margin: 0; }
.cf-cart-page td.product-name dl.variation dd p { display: inline; margin: 0; }
.cf-cart-page td.product-name dl.variation dd::after { content: ""; display: block; }
.cf-cart-page td.product-remove a.remove { color: var(--wp--preset--color--ink-muted) !important; font-size: 22px; width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; }
.cf-cart-page td.product-remove a.remove:hover { background: var(--wp--preset--color--linen); color: var(--wp--preset--color--error) !important; }
.cf-cart-page td.product-price { color: var(--wp--preset--color--ink-muted); }
.cf-cart-page td.product-subtotal { font-weight: 600; text-align: right; }
.cf-cart-page .quantity input.qty { width: 64px; min-height: 44px; text-align: center; }
.cf-cart-page td.actions { border-bottom: 0; text-align: right; }
.cf-cart-page td.actions .coupon { float: left; display: flex; gap: 8px; }
.cf-cart-page td.actions .coupon input { min-height: 44px; padding: 0 12px; width: 160px; }
.cf-cart-page td.actions .button { min-height: 44px; border-radius: 999px; padding: 0 18px; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--ink); border: 1px solid var(--wp--preset--color--line); font-weight: 600; }
.cf-upgrade {
	display: inline-flex; align-items: center; gap: 4px; margin-top: 8px; min-height: 36px;
	padding: 4px 12px; border-radius: 999px; background: var(--wp--preset--color--tint);
	color: var(--wp--preset--color--deep); font-size: 14px; font-weight: 600; text-decoration: none;
}
.cf-upgrade:hover { background: var(--wp--preset--color--primary); color: #fff; }
.cf-complete { margin-top: var(--wp--preset--spacing--60); }
.cf-complete h2 { font-size: var(--wp--preset--font-size--large); margin: 0 0 12px; }
.cf-complete ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.cf-gift { display: flex; align-items: center; gap: 12px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--cf-radius-md); padding: 8px 12px 8px 8px; }
.cf-gift img { width: 64px; height: 64px; object-fit: contain; flex: none; }
.cf-gift__text { flex: 1; display: flex; flex-direction: column; font-size: 14px; line-height: 1.3; }
.cf-gift__text span { color: var(--wp--preset--color--ink-muted); }
.cf-gift__add { flex: none; min-height: 44px; min-width: 64px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; border: 1px solid var(--wp--preset--color--ink); color: var(--wp--preset--color--ink); text-decoration: none; font-weight: 600; }
.cf-gift__add:hover { background: var(--wp--preset--color--tint); }
.cf-cart-page .cart-collaterals { width: 100%; }
.cf-cart-page .cart-collaterals .cart_totals { float: none; width: 100%; background: var(--wp--preset--color--linen); border-radius: var(--cf-radius-lg); padding: var(--wp--preset--spacing--50); position: sticky; top: 16px; }
.cf-cart-page .cart_totals h2 { font-size: var(--wp--preset--font-size--large); margin-top: 0; }
.cf-cart-page .cart_totals table.shop_table td, .cf-cart-page .cart_totals table.shop_table th { border: 0; padding: 8px 0; background: transparent; font-weight: 400; }
.cf-cart-page .cart_totals .order-total th, .cf-cart-page .cart_totals .order-total td { font-size: 20px; font-weight: 600; border-top: 1px solid var(--wp--preset--color--line); padding-top: 12px; }
.cf-cart-page .cart_totals ul#shipping_method { list-style: none; margin: 0; padding: 0; }
.cf-cart-page .cart_totals ul#shipping_method li { margin: 0 0 6px; }
.cf-cart-page .woocommerce-shipping-destination, .cf-cart-page .woocommerce-shipping-calculator { font-size: 13px; color: var(--wp--preset--color--ink-muted); }
.cf-cart-page .wc-proceed-to-checkout a.checkout-button {
	display: flex; align-items: center; justify-content: center; min-height: 56px; margin: 12px 0 0;
	border-radius: 999px; background: var(--wp--preset--color--primary); color: #fff; font-size: 18px; font-weight: 600;
}
.cf-cart-page .wc-proceed-to-checkout a.checkout-button:hover { background: var(--wp--preset--color--deep); }
@media (max-width: 900px) {
	.cf-cart-page .woocommerce { grid-template-columns: minmax(0, 1fr); }
	.cf-cart-page .cart-collaterals .cart_totals { position: static; }
	.cf-complete ul { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
	.cf-cart-page table.shop_table_responsive tr td { padding: 8px 0; }
	.cf-cart-page td.actions .coupon { float: none; margin-bottom: 8px; }
}

/* ---------- My account ---------------------------------------------------------------- */
.cf-account-page .woocommerce { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: var(--wp--preset--spacing--60); }
.cf-account-page .woocommerce:has(> .u-columns), .cf-account-page .woocommerce:has(> form.woocommerce-form-login) { display: block; }
.cf-account-page .woocommerce-MyAccount-navigation, .cf-account-page .woocommerce-MyAccount-content { float: none; width: auto; }
.cf-account-page .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.cf-account-page .woocommerce-MyAccount-navigation a { display: flex; min-height: 44px; align-items: center; padding: 0 12px; border-radius: var(--cf-radius-sm); color: var(--wp--preset--color--ink); text-decoration: none; }
.cf-account-page .woocommerce-MyAccount-navigation .is-active a { background: var(--wp--preset--color--tint); font-weight: 600; }
.cf-account-page .woocommerce-MyAccount-navigation a:hover { background: var(--wp--preset--color--linen); }
.cf-account-page .u-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--wp--preset--spacing--60); }
.cf-account-page .u-columns .u-column1, .cf-account-page .u-columns .u-column2 { float: none; width: auto; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--cf-radius-lg); padding: var(--wp--preset--spacing--50); }
.cf-account-page form.login, .cf-account-page form.register { border: 0 !important; padding: 0 !important; margin: 0 !important; }
.cf-account-page h2 { font-size: var(--wp--preset--font-size--large); margin-top: 0; }
.cf-account-page .form-row label { display: block; font-weight: 500; font-size: 14px; margin-bottom: 4px; }
.cf-account-page input.input-text { width: 100%; min-height: 48px; padding: 0 12px; box-sizing: border-box; }
.cf-account-page button.button, .cf-account-page .woocommerce-Button {
	min-height: 48px; padding: 0 24px; border-radius: 999px; border: 0;
	background: var(--wp--preset--color--primary); color: #fff; font-weight: 600;
}
.cf-account-page table.shop_table { border: 0; border-collapse: collapse; width: 100%; }
.cf-account-page table.shop_table th, .cf-account-page table.shop_table td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: 12px 8px; text-align: left; }
@media (max-width: 781px) {
	.cf-account-page .woocommerce, .cf-account-page .u-columns { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Thank-you page (order received) ------------------------------------------- */
.woocommerce-order { max-width: 760px; }
.woocommerce-order .woocommerce-thankyou-order-received {
	font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--x-large);
	background: var(--wp--preset--color--linen); border-radius: var(--cf-radius-lg); padding: var(--wp--preset--spacing--50);
}
.woocommerce-order ul.order_details { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 24px; }
.woocommerce-order ul.order_details li { border: 0; float: none; padding: 0; margin: 0; font-size: 14px; color: var(--wp--preset--color--ink-muted); text-transform: none; }
.woocommerce-order ul.order_details li strong { display: block; color: var(--wp--preset--color--ink); font-size: 16px; }
.woocommerce-order table.shop_table { border: 0; border-collapse: collapse; width: 100%; }
.woocommerce-order table.shop_table th, .woocommerce-order table.shop_table td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: 10px 0; text-align: left; }

/* ---------- Mini cart drawer (WooCommerce block) ---------------------------------------- */
.wc-block-mini-cart__drawer .components-modal__content, .wc-block-mini-cart__drawer .wc-block-components-drawer__content { background: var(--wp--preset--color--paper); }
.wc-block-mini-cart__drawer .wc-block-mini-cart__title { font-family: var(--wp--preset--font-family--display); font-weight: 500; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout { background: var(--wp--preset--color--primary) !important; color: #fff !important; border-radius: 999px !important; border: 0 !important; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-cart { border-radius: 999px !important; }

/* Inputs */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="search"], select, textarea {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--cf-radius-sm);
	min-height: var(--cf-touch);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--ink);
	font: inherit;
}
