/* Cacio 2 global visual foundation. Header and approved Footer stay isolated. */
:root {
	--cacio-global-ink: #1d211d;
	--cacio-global-paper: #f5f3ec;
	--cacio-global-warm: #e5dfd1;
	--cacio-global-milk: #fffefa;
	--cacio-global-clay: #795f49;
	--cacio-global-line: #d5d1c6;
	--cacio-global-green: #50604d;
	--cacio-global-serif: Georgia, "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
	--cacio-global-sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
	--cacio-global-content-width: 1320px;
	--cacio-global-gutter: clamp(20px, 4vw, 64px);
	--cacio-global-space-1: 8px;
	--cacio-global-space-2: 16px;
	--cacio-global-space-3: 24px;
	--cacio-global-space-4: 40px;
	--cacio-global-space-5: 72px;
	--cacio-global-space-6: 120px;
	--cacio-global-radius: 0;
	--cacio-global-shadow: none;
}

body {
	background-color: var(--cacio-global-paper);
	color: var(--cacio-global-ink);
}

#content,
#content > .ast-container,
#content .site-content {
	background-color: var(--cacio-global-paper);
	color: var(--cacio-global-ink);
}

#content > .ast-container {
	max-width: var(--cacio-global-content-width);
	padding-inline: var(--cacio-global-gutter);
}

#content {
	font-family: var(--cacio-global-sans);
	font-size: 15px;
	line-height: 1.7;
}

#content h1,
#content h2,
#content h3 {
	color: var(--cacio-global-ink);
	font-family: var(--cacio-global-serif);
	font-weight: 400;
	line-break: strict;
}

#content h1 {
	font-size: clamp(42px, 5vw, 70px);
	line-height: 1.05;
}

#content h2 {
	font-size: clamp(30px, 3vw, 47px);
	line-height: 1.15;
}

#content h3 {
	font-size: 23px;
	line-height: 1.35;
}

#content p {
	color: inherit;
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
}

/* CMS plain-text fields opt in here: author-entered newlines remain visible,
   while each resulting line still wraps naturally within its layout. Use raw,
   escaped text in these nodes (not nl2br) to avoid doubling each line break. */
.cacio2-text-preline {
	white-space: pre-line;
	line-break: strict;
	word-break: normal;
	overflow-wrap: normal;
}

@supports (word-break: auto-phrase) {
	.cacio2-text-preline {
		word-break: auto-phrase;
	}
}

#content a {
	color: inherit;
	text-decoration: none;
}

#content a:hover,
#content a:focus-visible {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 4px;
}

#content .woocommerce-loop-product__title {
	font-family: var(--cacio-global-sans);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.4;
}

#content .wc-block-featured-category__title {
	color: var(--cacio-global-milk);
	font-family: var(--cacio-global-sans);
	font-size: 30px;
	font-weight: 600;
	line-height: 1.3;
	text-shadow: 0 1px 10px rgba(0, 0, 0, 0.45);
}

#content .wp-block-button__link,
#content .ast-button,
#content .ast-custom-button,
#content a.button,
#content button.button,
#content input.button,
#content #respond input#submit {
	min-height: 48px;
	padding: 0 26px;
	border: 1px solid var(--cacio-global-ink);
	border-radius: var(--cacio-global-radius);
	background-color: var(--cacio-global-ink);
	box-shadow: var(--cacio-global-shadow);
	color: var(--cacio-global-milk);
	font-family: var(--cacio-global-sans);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.4;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

#content .wp-block-button__link:hover,
#content .ast-button:hover,
#content .ast-custom-button:hover,
#content a.button:hover,
#content button.button:hover,
#content input.button:hover,
#content #respond input#submit:hover {
	border-color: var(--cacio-global-ink);
	background-color: transparent;
	color: var(--cacio-global-ink);
	text-decoration: none;
}

#content .wp-block-button.is-style-outline .wp-block-button__link {
	background-color: transparent;
	color: var(--cacio-global-ink);
}

#content .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: var(--cacio-global-ink);
	color: var(--cacio-global-milk);
}

/* Keep Astra's global Back to Top control within the Cacio palette. */
#ast-scroll-top {
	border-color: var(--cacio-global-ink) !important;
	background-color: var(--cacio-global-ink) !important;
	box-shadow: none !important;
	color: var(--cacio-global-milk) !important;
	outline: none !important;
	transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

#ast-scroll-top:hover {
	border-color: #a9bd74 !important;
	background-color: #a9bd74 !important;
	box-shadow: none !important;
	color: var(--cacio-global-ink) !important;
}

#ast-scroll-top:focus,
#ast-scroll-top:focus-visible {
	border-color: #a9bd74 !important;
	background-color: #a9bd74 !important;
	box-shadow: none !important;
	color: var(--cacio-global-ink) !important;
	outline: 2px solid var(--cacio-global-green) !important;
	outline-offset: 3px !important;
}

#ast-scroll-top:active {
	border-color: #879b5a !important;
	background-color: #879b5a !important;
	box-shadow: inset 0 1px 2px rgba(29, 33, 29, 0.18) !important;
	color: var(--cacio-global-ink) !important;
	outline: 2px solid var(--cacio-global-green) !important;
	outline-offset: 3px !important;
}

@media (max-width: 800px) {
	#content > .ast-container {
		padding-inline: 20px;
	}

	#content h1 {
		font-size: 42px;
	}

	#content h2 {
		font-size: 30px;
	}

	#content h3 {
		font-size: 20px;
	}

	#content .wp-block-button__link,
	#content .ast-button,
	#content .ast-custom-button,
	#content a.button,
	#content button.button,
	#content input.button,
	#content #respond input#submit {
		min-height: 48px;
		padding-inline: 20px;
	}
}

@media (prefers-reduced-motion: reduce) {
	#content .wp-block-button__link,
	#content .ast-button,
	#content .ast-custom-button,
	#content a.button,
	#content button.button,
	#content input.button,
	#content #respond input#submit {
		transition: none;
	}
}

/* WooCommerce cart visual consistency: neutral notices and the Cacio outlined button system.
   Scoped away from Atlas cards and approved product-page purchase controls. */
body.woocommerce-page #content .woocommerce-message,
body.woocommerce-page #content .woocommerce-info,
body.woocommerce-page #content .woocommerce-error {
	box-sizing: border-box;
	margin: 0 0 24px;
	padding: 20px 24px 20px 54px;
	border: 1px solid var(--cacio-global-line);
	border-inline-start: 3px solid var(--cacio-global-green);
	background: var(--cacio-global-milk);
	color: var(--cacio-global-ink);
	line-height: 1.6;
}

body.woocommerce-page #content .woocommerce-info {
	border-inline-start-color: var(--cacio-global-ink);
}

body.woocommerce-page #content .woocommerce-error {
	border-inline-start-color: #8a4a42;
}

body.woocommerce-page #content .woocommerce-message::before,
body.woocommerce-page #content .woocommerce-info::before {
	left: 20px;
	color: var(--cacio-global-green);
}

body.woocommerce-page #content .woocommerce-error::before {
	left: 20px;
	color: #8a4a42;
}

body.woocommerce-cart #content .woocommerce a.button,
body.woocommerce-cart #content .woocommerce button.button,
body.woocommerce-cart #content .woocommerce input.button,
body.woocommerce-cart #content .woocommerce-message a.button.wc-forward,
body.single-product #content .woocommerce-message a.button.wc-forward {
	box-sizing: border-box;
	min-height: 48px;
	padding: 12px 24px;
	border: 1px solid var(--cacio-global-ink);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--cacio-global-ink);
	font-family: var(--cacio-global-sans);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

body.woocommerce-cart #content .woocommerce .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 52px;
	margin: 0 0 1em;
	padding: 12px 24px;
	text-align: center;
}

body.woocommerce-cart #content .cacio-cart-return-shop {
	margin: 0 0 20px;
	color: var(--cacio-global-ink, #1d211d);
	font-size: 14px;
	line-height: 1.6;
}

body.woocommerce-cart #content .cacio-cart-return-shop a {
	color: inherit;
	text-decoration: none;
	text-underline-offset: 4px;
}

body.woocommerce-cart #content .cacio-cart-return-shop a:hover {
	text-decoration: underline;
}

body.woocommerce-cart #content .cacio-cart-return-shop a:focus-visible {
	outline: 2px solid var(--cacio-global-green, #50604d);
	outline-offset: 3px;
}

body.woocommerce-cart #content .woocommerce a.button:hover,
body.woocommerce-cart #content .woocommerce button.button:hover,
body.woocommerce-cart #content .woocommerce input.button:hover,
body.woocommerce-cart #content .woocommerce-message a.button.wc-forward:hover,
body.single-product #content .woocommerce-message a.button.wc-forward:hover,
body.woocommerce-cart #content .woocommerce a.button:focus-visible,
body.woocommerce-cart #content .woocommerce button.button:focus-visible,
body.woocommerce-cart #content .woocommerce input.button:focus-visible,
body.woocommerce-cart #content .woocommerce-message a.button.wc-forward:focus-visible,
body.single-product #content .woocommerce-message a.button.wc-forward:focus-visible {
	border-color: var(--cacio-global-ink);
	background: var(--cacio-global-ink);
	color: var(--cacio-global-milk);
	text-decoration: none;
}

body.woocommerce-cart #content .woocommerce a.button:focus-visible,
body.woocommerce-cart #content .woocommerce button.button:focus-visible,
body.woocommerce-cart #content .woocommerce input.button:focus-visible,
body.woocommerce-cart #content .woocommerce-message a.button.wc-forward:focus-visible,
body.single-product #content .woocommerce-message a.button.wc-forward:focus-visible {
	outline: 2px solid var(--cacio-global-green);
	outline-offset: 3px;
}

body.woocommerce-cart #content .woocommerce button.button:disabled,
body.woocommerce-cart #content .woocommerce button.button:disabled[disabled] {
	background: transparent;
	color: var(--cacio-global-ink);
	opacity: 0.55;
	cursor: not-allowed;
}

@media (max-width: 800px) {
	body.woocommerce-page #content .woocommerce-message,
	body.woocommerce-page #content .woocommerce-info,
	body.woocommerce-page #content .woocommerce-error {
		padding: 16px 16px 16px 42px;
	}

	body.woocommerce-page #content .woocommerce-message::before,
	body.woocommerce-page #content .woocommerce-info::before,
	body.woocommerce-page #content .woocommerce-error::before {
		left: 14px;
	}

	body.woocommerce-cart #content .woocommerce-message a.button.wc-forward {
		float: none;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		margin: 10px 0 0;
	}
}
body.woocommerce-page #content .woocommerce-message:focus-visible,
body.woocommerce-page #content .woocommerce-info:focus-visible,
body.woocommerce-page #content .woocommerce-error:focus-visible {
	outline: 2px solid var(--cacio-global-green);
	outline-offset: 3px;
}
/* Checkout-only Cacio controls: preserve WooCommerce geometry and behavior. */
body.woocommerce-checkout #content #payment #place_order {
	background-color: var(--cacio-global-milk);
	color: var(--cacio-global-ink);
	box-shadow: inset 0 0 0 1px var(--cacio-global-ink);
}

body.woocommerce-checkout #content #payment #place_order:hover,
body.woocommerce-checkout #content #payment #place_order:focus-visible {
	background-color: var(--cacio-global-ink);
	color: var(--cacio-global-milk);
}

body.woocommerce-checkout #content #payment #place_order:focus-visible {
	outline: 2px solid var(--cacio-global-green);
	outline-offset: 3px;
}

body.woocommerce-checkout #content #payment #place_order:disabled,
body.woocommerce-checkout #content #payment #place_order[disabled],
body.woocommerce-checkout #content #payment #place_order[aria-disabled="true"] {
	background-color: var(--cacio-global-milk);
	color: var(--cacio-global-ink);
	box-shadow: inset 0 0 0 1px var(--cacio-global-ink);
	opacity: 0.6;
	cursor: not-allowed;
}

/* Keep the shipping, terms, and any optional checkout checkboxes on one Cacio accent. */
body.woocommerce-checkout #content form.woocommerce-checkout input[type="checkbox"] {
	accent-color: var(--cacio-global-green);
}

body.woocommerce-checkout #content form.woocommerce-checkout input[type="checkbox"]:focus-visible {
	outline: 2px solid var(--cacio-global-green);
	outline-offset: 2px;
}

/* Cart empty notice: replace Astra/Woo's private-use icon glyph in this state only. */
body.woocommerce-cart #content .cart-empty.woocommerce-info::before {
	content: "";
	top: 50%;
	left: 20px;
	width: 18px;
	height: 18px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2350604d' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2l2.2 11.2a2 2 0 0 0 2 1.6h8.9a2 2 0 0 0 1.9-1.4L22 8H6'/%3E%3Ccircle cx='10' cy='20' r='1'/%3E%3Ccircle cx='19' cy='20' r='1'/%3E%3C/svg%3E") center / contain no-repeat;
	transform: translateY(-50%);
}

@media (max-width: 800px) {
	body.woocommerce-cart #content .cart-empty.woocommerce-info::before {
		left: 14px;
	}
}
