@media (min-width: 801px) {
	body.home .cacio2-home > .home-announcement {
		margin-block-end: 32px;
	}
}
/* Cacio 2 Home — scoped to the page content; approved Header and Footer stay outside this scope. */
body.home .ast-article-single > .entry-header {
	display: none;
}

body.home .ast-article-single > .entry-content {
	margin: 0;
	padding: 0;
}

body.home #content {
	overflow-x: clip;
}

/* At desktop widths free the canvas for the full-bleed hero and subscription.
   Tablet/mobile retain Astra's original gutters and the previously checked layout. */
@media (min-width: 801px) {
	body.home #content .ast-container {
		width: 100%;
		max-width: none;
		padding: 0;
	}

	body.home #content .content-area {
		margin-top: 0;
	}

}

/* Scope the Home root to Astra's padded content box; a 100vw breakout is
   clipped unevenly by Astra at narrower viewports (including scrollbar width). */
body.home #content .entry-content > .cacio2-home {
	width: 100%;
	max-width: none;
	margin: 0;
	box-sizing: border-box;
	color: var(--cacio-global-ink);
	font-family: var(--cacio-global-sans);
	font-size: 15px;
	line-height: 1.7;
}

.cacio2-home *,
.cacio2-home *::before,
.cacio2-home *::after {
	box-sizing: border-box;
}

.cacio2-home img {
	max-width: 100%;
}

.cacio2-home .eyebrow {
	color: var(--cacio-global-green);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1.4;
	text-transform: uppercase;
}

.cacio2-home .section {
	width: 100%;
	max-width: var(--cacio-global-content-width);
	margin: 0 auto;
	padding: var(--cacio-global-space-6) var(--cacio-global-gutter);
}

.cacio2-home .section-top {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 38px;
}

#content .cacio2-home h1,
#content .cacio2-home h2,
#content .cacio2-home h3 {
	margin-top: 0;
	color: inherit;
	font-family: var(--cacio-global-serif);
	font-weight: 400;
}

#content .cacio2-home h2 {
	margin-bottom: 0;
	font-size: clamp(30px, 3vw, 47px);
	letter-spacing: -0.03em;
	line-height: 1.15;
}

.cacio2-home p {
	margin-top: 0;
}

.cacio2-home a {
	color: inherit;
}

.cacio2-home .text-link {
	display: inline-block;
	padding-bottom: 2px;
	border-bottom: 1px solid currentColor;
	font-size: 13px;
	line-height: 1.5;
	text-decoration: none;
}

.cacio2-home .text-link:hover,
.cacio2-home .text-link:focus-visible {
	text-underline-offset: 5px;
	text-decoration: underline;
}

/* The text-link already has its own bottom-border underline. Keep the global
 * content-link underline from drawing a second line on this component. */
#content .cacio2-home .text-link:hover,
#content .cacio2-home .text-link:focus-visible {
	text-decoration: none;
}

#content .cacio2-home a.button {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	padding: 0 26px;
	border: 1px solid var(--cacio-global-ink);
	border-radius: var(--cacio-global-radius);
	background: var(--cacio-global-ink);
	box-shadow: none;
	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 .cacio2-home a.button:hover,
#content .cacio2-home a.button:focus-visible {
	border-color: var(--cacio-global-ink);
	background: transparent;
	color: var(--cacio-global-ink);
}

#content .cacio2-home a.button.light {
	background: transparent;
	color: var(--cacio-global-ink);
}

#content .cacio2-home a.button.light:hover,
#content .cacio2-home a.button.light:focus-visible {
	background: var(--cacio-global-ink);
	color: var(--cacio-global-milk);
}

.cacio2-home .hero.hero-photo-hero {
	position: relative;
	display: block;
	width: 100%;
	max-width: none;
	min-height: 0;
	margin: 0;
	padding: 0 0 clamp(42px, 5vw, 72px);
}

.cacio2-home .hero-photo-hero .hero-image {
	position: relative;
	width: 100%;
	height: clamp(590px, 68vw, 820px);
	min-height: 0;
	margin: 0;
	aspect-ratio: auto;
	background: #252722;
}

.cacio2-home .hero-photo-hero .hero-image::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(15, 18, 15, var(--home-hero-overlay-desktop-1, 0.5)) 0%, rgba(15, 18, 15, var(--home-hero-overlay-desktop-2, 0.16)) 32%, rgba(15, 18, 15, var(--home-hero-overlay-desktop-3, 0)) 64%);
	content: "";
	pointer-events: none;
}

.cacio2-home .hero-photo-hero .hero-image picture {
	display: block;
	width: 100%;
	height: 100%;
}

.cacio2-home .hero-photo-hero .hero-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.cacio2-home .hero-photo-hero .hero-copy {
	position: absolute;
	top: clamp(170px, 22vw, 280px);
	left: max(var(--cacio-global-gutter), calc((100vw - var(--cacio-global-content-width)) / 2 + var(--cacio-global-gutter)));
	z-index: 1;
	width: min(590px, 43vw);
	padding: 0;
	color: #fff;
}

.cacio2-home .hero-photo-hero .hero-copy .eyebrow {
	color: var(--home-hero-eyebrow-color, #fff);
}

.cacio2-home .hero-brand-signature-desktop {
	display: inline;
	color: var(--home-hero-eyebrow-color, #fff);
	font-size: 11px;
	letter-spacing: 0.14em;
}

.cacio2-home .hero-brand-signature-mobile,
.cacio2-home .hero-brand-type {
	display: none;
}

#content .cacio2-home .hero-photo-hero .hero-copy h1 {
	max-width: 8.5em;
	margin: 24px 0 0;
	color: var(--home-hero-title-color, #fff);
	font-size: clamp(44px, 5.1vw, 76px);
	letter-spacing: -0.045em;
	line-height: 1.12;
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.22);
}

.cacio2-home .hero-photo-hero .hero-photo-after {
	position: absolute;
	top: clamp(510px, 53vw, 650px);
	left: max(var(--cacio-global-gutter), calc((100vw - var(--cacio-global-content-width)) / 2 + var(--cacio-global-gutter)));
	z-index: 1;
	width: min(420px, 35vw);
	color: #fff;
}

.cacio2-home .hero-photo-after p {
	margin: 0 0 22px;
	max-width: 340px;
	color: var(--home-hero-text-color, #fff);
	font-size: 15px;
	line-height: 1.9;
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.3);
}

#content .cacio2-home .hero-photo-after .button {
	min-height: 44px;
	padding: 0 20px;
	border-color: var(--home-hero-button-bg, var(--cacio-global-ink));
	background: var(--home-hero-button-bg, transparent);
	color: var(--home-hero-button-text, var(--cacio-global-ink));
}

#content .cacio2-home .hero-photo-after .button:hover,
#content .cacio2-home .hero-photo-after .button:focus-visible {
	border-color: var(--home-hero-button-hover-bg, var(--cacio-global-ink));
	background: var(--home-hero-button-hover-bg, var(--cacio-global-ink));
	color: var(--home-hero-button-hover-text, var(--cacio-global-milk));
}

.cacio2-home .intro-strip {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
	align-items: start;
	gap: 20px;
	padding: var(--cacio-global-space-5) var(--cacio-global-gutter);
	border-top: 1px solid var(--cacio-global-line);
	border-bottom: 1px solid var(--cacio-global-line);
}

#content .cacio2-home .intro-strip h2 {
	margin: 0;
	font-size: 30px;
	letter-spacing: 0;
	line-height: 1.25;
}

.cacio2-home .intro-caciolab > div {
	display: flex;
	width: min(100%, 670px);
	flex-direction: column;
	align-items: flex-start;
	gap: 22px;
}

.cacio2-home .intro-strip p {
	margin: 0;
	font-size: 18px;
	line-height: 1.85;
}

.cacio2-home .categories {
	background: var(--home-find-background-color, var(--cacio-global-warm));
}

.cacio2-home .categories .section-top .eyebrow {
	color: var(--home-find-eyebrow-color, var(--cacio-global-green));
}

.cacio2-home .categories .section-top h2 {
	color: var(--home-find-title-color, inherit);
}

.cacio2-home .categories .section-top > .text-link {
	color: var(--home-find-secondary-text-color, inherit);
}

.cacio2-home .home-find-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.cacio2-home .home-find-tile {
	position: relative;
	display: block;
	min-width: 0;
	aspect-ratio: 1.15 / 1;
	overflow: hidden;
	background: var(--cacio-global-ink);
	color: var(--home-find-tile-label-color, #fff);
}

.cacio2-home .home-find-tile-fresh,
.cacio2-home .home-find-tile-aged {
	grid-column: span 2;
	aspect-ratio: 2.4 / 1;
}

.cacio2-home .home-find-tile img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 1;
	transition: transform 0.5s ease, opacity 0.3s ease;
}

.cacio2-home .home-find-tile:hover img,
.cacio2-home .home-find-tile:focus-visible img {
	transform: scale(1.03);
	opacity: 0.65;
}

.cacio2-home .home-find-tile span {
	position: absolute;
	right: 16px;
	bottom: 16px;
	left: 16px;
	font-size: 16px;
	font-weight: 500;
	color: var(--home-find-tile-label-color, #fff);
	line-height: 1.35;
	text-shadow: 0 1px 10px rgba(0, 0, 0, 0.45);
}

/* Follow the prototype's Japanese line-breaking rules across Home copy. */
.cacio2-home h1,
.cacio2-home h2,
.cacio2-home h3,
.cacio2-home p,
.cacio2-home blockquote {
	line-break: strict;
	word-break: normal;
	word-break: auto-phrase;
	overflow-wrap: normal;
}

.cacio2-home .jp-word-nowrap {
	white-space: nowrap;
}

.cacio2-home .home-find-tile-gift {
	background: #e8dfd1;
}



.cacio2-home .home-find-tile-vera img {
	object-position: center 58%;
	transform: scale(1.08);
}

.cacio2-home .featured-card {
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(280px, 0.88fr);
	align-items: center;
	gap: clamp(30px, 7vw, 110px);
}

.cacio2-home .featured-photo {
	display: block;
	aspect-ratio: 1.15;
	overflow: hidden;
	background: #e7e2d6;
}

.cacio2-home .featured-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

#content .cacio2-home .featured-copy h3 {
	margin: 10px 0 18px;
	font-size: clamp(31px, 3.4vw, 48px);
	letter-spacing: -0.03em;
	line-height: 1.12;
}

.cacio2-home .featured-copy > p:not(.featured-price),
.cacio2-home .featured-description > p {
	max-width: 390px;
	margin: 0 0 18px;
}

.cacio2-home .featured-price {
	margin: 0 0 25px;
	font-size: 17px;
}

.cacio2-home .featured-price small {
	color: #64645e;
	font-size: 12px;
}

/* CMS color overrides for the existing featured section only. Empty options
   emit no custom properties, so the approved live colors remain the fallback. */
.cacio2-home .featured-cheese {
	background-color: var(--home-featured-background-color, transparent);
}

.cacio2-home .featured-cheese .featured-copy > .eyebrow {
	color: var(--home-featured-eyebrow-color, var(--cacio-global-green));
}

#content .cacio2-home .featured-cheese .featured-copy h3 {
	color: var(--home-featured-title-color, inherit);
}

#content .cacio2-home .featured-cheese .featured-copy > p:not(.featured-price),
#content .cacio2-home .featured-cheese .featured-copy .featured-description {
	color: var(--home-featured-copy-color, inherit);
}

#content .cacio2-home .featured-cheese .featured-price,
#content .cacio2-home .featured-cheese .featured-price .woocommerce-Price-amount,
#content .cacio2-home .featured-cheese .featured-price .woocommerce-Price-currencySymbol {
	color: var(--home-featured-price-color, inherit);
}

.cacio2-home .featured-cheese .featured-price small {
	color: var(--home-featured-secondary-text-color, #64645e);
}

#content .cacio2-home .featured-cheese .featured-copy > a.button {
	border-color: var(--cacio-global-ink);
	background-color: transparent;
	color: var(--cacio-global-ink);
}

#content .cacio2-home .featured-cheese .featured-copy > a.button:hover,
#content .cacio2-home .featured-cheese .featured-copy > a.button:focus-visible,
#content .cacio2-home .featured-cheese .featured-copy > a.button:active {
	border-color: var(--cacio-global-ink);
	background-color: var(--cacio-global-ink);
	color: var(--cacio-global-milk);
	text-decoration: none;
}

.cacio2-home .home-announcement {
	--home-news-background: #EEE4C8;
	--home-news-label-color: #665F4D;
	--home-news-title-color: #242720;
	--home-news-link-color: #323B30;
	--home-news-border-color: var(--cacio-global-line);
	width: 100%;
	max-width: var(--cacio-global-content-width);
	margin: 0 auto;
	padding: 0 var(--cacio-global-gutter);
	background-color: var(--home-news-background);
	border-top: 1px solid var(--home-news-border-color);
	border-bottom: 1px solid var(--home-news-border-color);
}

.cacio2-home .home-announcement-inner {
	display: grid;
	min-height: 98px;
	grid-template-columns: minmax(130px, 0.55fr) minmax(0, 2fr) auto;
	align-items: center;
	gap: 28px;
	border-top: 0;
	border-bottom: 0;
}

.cacio2-home .home-announcement-label {
	color: var(--home-news-label-color);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
}

#content .cacio2-home .home-announcement .home-announcement-title {
	min-width: 0;
	margin: 0;
	color: var(--home-news-title-color);
	font-family: var(--cacio-global-serif);
	font-size: clamp(19px, 1.8vw, 24px);
	line-height: 1.4;
	line-break: strict;
}

#content .cacio2-home .home-announcement .text-link {
	color: var(--home-news-link-color);
	font-size: 12px;
	white-space: nowrap;
}

.cacio2-home .features {
	background: var(--cacio-global-ink);
	color: var(--cacio-global-milk);
}

#content .cacio2-home .features h2 {
	color: var(--cacio-global-milk);
}

.cacio2-home .features .eyebrow {
	color: #bbc7b8;
}

.cacio2-home .feature-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
}

.cacio2-home .feature {
	padding-top: 16px;
	border-top: 1px solid #6e7069;
}

.cacio2-home .feature b {
	font-family: var(--cacio-global-serif);
	font-size: 26px;
	font-weight: 400;
}

.cacio2-home .feature p {
	max-width: 260px;
	margin-bottom: 0;
	color: #d8d7d0;
	font-size: 13px;
}

.cacio2-home .subscription {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: stretch;
	background: #dce1d7;
}

.cacio2-home .subscription-image-link {
	display: block;
	min-width: 0;
	min-height: 430px;
	overflow: hidden;
}

.cacio2-home .subscription-image {
	width: 100%;
	height: 100%;
	min-height: 430px;
	background: url("../assets/images/home/home-subscription.jpg") center / cover no-repeat;
}

.cacio2-home .subscription-image.has-cms-image {
	background-image: none;
}

.cacio2-home .subscription-image.has-cms-image img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: inherit;
	object-fit: cover;
	object-position: center;
}

.cacio2-home .subscription-copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	padding: clamp(38px, 7vw, 110px);
}

#content .cacio2-home .subscription-copy h2 {
	margin: 10px 0 0;
	max-width: 13em;
	font-size: clamp(30px, 3vw, 47px);
	letter-spacing: -0.04em;
	line-height: 1.15;
	text-wrap: balance;
}

.cacio2-home .subscription-copy p {
	max-width: 360px;
	margin: 22px 0 28px;
}

.cacio2-home .story {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(30px, 8vw, 130px);
}

.cacio2-home .story-photo {
	aspect-ratio: 0.86;
	overflow: hidden;
}

.cacio2-home .story-photo-link:focus-visible {
	outline: 2px solid var(--cacio-global-ink, #1d211d);
	outline-offset: 4px;
}

.cacio2-home .story-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

.cacio2-home .story-copy p {
	max-width: 410px;
}

.cacio2-home .testimonials-home {
	border-top: 1px solid var(--cacio-global-line);
	background-color: var(--home-testimonials-background-color, transparent);
}

#content .cacio2-home .testimonials-home .section-top h2 {
	color: var(--home-testimonials-title-color, var(--cacio-global-ink));
}

.cacio2-home .testimonials-home .section-top {
	align-items: flex-start;
}

.cacio2-home .testimonials-home-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: start;
	gap: 24px;
}

.cacio2-home .testimonials-home-grid article {
	min-width: 0;
	padding: 20px 4px 0;
	border-top: 1px solid var(--cacio-global-ink);
}

.cacio2-home .testimonials-home-grid blockquote {
	display: block;
	margin: 0;
	font-family: var(--cacio-global-serif);
	font-size: clamp(20px, 2vw, 28px);
	font-weight: 400;
	letter-spacing: -0.02em;
	line-height: 1.45;
	font-style: normal;
	color: var(--home-testimonials-review-text-color, var(--cacio-global-ink));
}

.cacio2-home .testimonials-home-grid blockquote .review-line {
	display: block;
}

#content .cacio2-home .testimonials-home-grid blockquote {
	border: 0;
	padding: 0;
	font-style: normal;
}

.cacio2-home .testimonials-home-grid article > span {
	display: block;
	margin-top: 24px;
	color: var(--home-testimonials-attribution-color, #66675f);
	font-size: 11px;
	letter-spacing: 0.04em;
}

.cacio2-home .testimonials-home-grid .review-attribution {
	display: block;
	margin-top: 24px;
	color: var(--home-testimonials-attribution-color, #66675f);
	font-size: 11px;
	letter-spacing: 0.04em;
}

.cacio2-home .testimonials-home-grid .review-attribution a {
	color: inherit;
}

.cacio2-home .testimonials-home-grid .review-rating {
	margin: 0 0 10px;
	color: var(--cacio-global-green);
	font-size: 13px;
	letter-spacing: 0.08em;
}

.cacio2-home .testimonials-home-link {
	margin-top: 34px;
	color: var(--home-testimonials-link-color, var(--cacio-global-ink));
}

.cacio2-home .home-professionals {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: stretch;
	padding: 0;
	background: transparent;
}

.cacio2-home .home-professionals-copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	padding: var(--cacio-global-space-6) var(--cacio-global-gutter);
	background: var(--home-prof-bg, var(--cacio-global-clay));
	color: var(--home-prof-title, #fff);
}

#content .cacio2-home .home-professionals-copy h2 {
	color: var(--home-prof-title, #fff);
}

.cacio2-home .home-professionals-copy .eyebrow {
	margin-bottom: 8px;
	color: var(--home-prof-eyebrow, #eadfce);
}

.cacio2-home .home-professionals-copy p {
	max-width: 440px;
	color: var(--home-prof-text, #f0e9df);
}

#content .cacio2-home .home-professionals-copy .button {
	border-color: var(--home-prof-btn-bg, #fff);
	background: var(--home-prof-btn-bg, #fff);
	color: var(--home-prof-btn-text, var(--cacio-global-ink));
}

#content .cacio2-home .home-professionals-copy .button:hover,
#content .cacio2-home .home-professionals-copy .button:focus-visible {
	border-color: var(--home-prof-btn-hover-bg, var(--cacio-global-ink));
	background: var(--home-prof-btn-hover-bg, var(--cacio-global-ink));
	color: var(--home-prof-btn-hover-text, #fff);
}

.cacio2-home .home-professionals-media {
	min-width: 0;
	overflow: hidden;
	background: var(--home-prof-bg, var(--cacio-global-clay));
}

.cacio2-home .home-professionals-media-link {
	display: block;
	width: 100%;
	height: 100%;
}

.cacio2-home .home-professionals-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

@media (max-width: 800px) {
	/* Home mobile surfaces: one 20px page gutter, then each section's own inner padding. */
	.cacio2-home > .section,
	.cacio2-home > .intro-caciolab,
	.cacio2-home > .home-announcement,
	.cacio2-home > .b2b {
		width: calc(100% + 40px);
		max-width: none;
		margin-inline: -20px;
		padding-inline: 20px;
	}

	/* Hero media and post-image copy meet the viewport edge; text keeps its inner gutter. */
	.cacio2-home > .hero.hero-photo-hero .hero-image,
	.cacio2-home > .hero.hero-photo-hero .hero-photo-after {
		width: calc(100% + 40px);
		max-width: none;
		margin-inline: -20px;
	}

	.cacio2-home {
		display: flex;
		flex-direction: column;
	}

	.cacio2-home > .hero { order: 1; }
	.cacio2-home > .intro-caciolab { order: 2; }
	.cacio2-home > .categories { order: 3; }
	.cacio2-home > .featured-cheese { order: 4; }
	body.home .cacio2-home > .home-announcement { order: 5; }
	.cacio2-home > .subscription { order: 6; }
	.cacio2-home > .features { order: 9; }
	.cacio2-home > .story { order: 10; }
	.cacio2-home > .testimonials-home { order: 11; }
	.cacio2-home > .b2b { order: 12; }

	.cacio2-home .hero.hero-photo-hero {
		display: flex;
		flex-direction: column;
		min-height: 0;
		padding-bottom: 52px;
	}

	.cacio2-home .hero-photo-hero .hero-image {
		position: relative;
		top: auto;
		right: auto;
		bottom: auto;
		left: auto;
		order: 1;
		height: clamp(500px, 128vw, 560px);
	}

	.cacio2-home .hero-photo-hero .hero-image picture {
		height: 100%;
	}

	.cacio2-home .hero-photo-hero .hero-content {
		position: static;
		order: 2;
		padding-top: 0;
	}

	.cacio2-home .hero-photo-hero .hero-image::after {
		background: linear-gradient(0deg, rgba(15, 18, 15, var(--home-hero-overlay-mobile-1, 0.55)) 0%, rgba(15, 18, 15, var(--home-hero-overlay-mobile-2, 0.12)) 52%, rgba(15, 18, 15, var(--home-hero-overlay-mobile-3, 0.04)) 100%);
	}

	.cacio2-home .hero-photo-hero .hero-image img {
		object-position: 58% center;
	}

	.cacio2-home .hero-photo-hero .hero-copy {
		top: clamp(270px, 70vw, 310px);
		left: 28px;
		width: calc(100% - 56px);
	}

	.cacio2-home .hero-brand-signature-desktop,
	.cacio2-home .hero-brand-type {
		display: none;
	}

	.cacio2-home .hero-brand-signature-mobile {
		display: inline;
		color: var(--home-hero-eyebrow-color, #fff);
		font-size: 11px;
		letter-spacing: 0.14em;
	}

	#content .cacio2-home .hero-photo-hero .hero-copy h1 {
		max-width: none;
		margin-top: 14px;
		font-size: clamp(34px, 9.2vw, 37px);
		line-height: 1.16;
	}

	.cacio2-home .hero-photo-hero .hero-photo-after {
		position: relative;
		top: auto;
		left: auto;
		width: auto;
		margin: 0;
		padding: 24px 20px 0;
		color: var(--cacio-global-ink);
	}

	.cacio2-home .hero-photo-after p {
		margin-bottom: 20px;
		max-width: none;
		color: var(--home-hero-text-color, var(--cacio-global-ink));
		font-size: 15px;
		line-height: 1.85;
		text-shadow: none;
	}

	.cacio2-home .section {
		padding: var(--cacio-global-space-5) 20px;
	}

	.cacio2-home .section-top {
		align-items: flex-start;
		flex-direction: column;
		gap: 14px;
		margin-bottom: 26px;
	}

	.cacio2-home .intro-strip {
		display: block;
		padding: 55px 20px;
	}

	.cacio2-home .intro-caciolab > div {
		width: 100%;
		gap: 18px;
		margin-top: 22px;
	}

	.cacio2-home .intro-strip p {
		font-size: 16px;
	}

	.cacio2-home .home-find-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.cacio2-home .home-find-tile,
	.cacio2-home .home-find-tile-fresh,
	.cacio2-home .home-find-tile-aged {
		height: 112px;
		min-height: 112px;
		grid-column: auto;
		aspect-ratio: auto;
	}

	.cacio2-home .home-find-tile span {
		right: 10px;
		bottom: 10px;
		left: 10px;
		font-size: 13px;
		line-height: 1.25;
	}

	.cacio2-home .featured-card {
		grid-template-columns: minmax(0, 1fr);
		gap: 24px;
	}

	.cacio2-home .featured-photo {
		aspect-ratio: 1.18;
	}

	#content .cacio2-home .featured-copy h3 {
		margin: 8px 0 14px;
		font-size: 34px;
	}

	.cacio2-home .featured-copy > p:not(.featured-price) {
		font-size: 15px;
		line-height: 1.65;
	}

	.cacio2-home .home-announcement {
		padding: 0 20px;
	}

	.cacio2-home .home-announcement-inner {
		min-height: 0;
		grid-template-columns: minmax(0, 1fr);
		align-items: start;
		gap: 10px;
		padding: 24px 0;
	}

	.cacio2-home .home-announcement-label {
		grid-column: auto;
	}

	#content .cacio2-home .home-announcement .home-announcement-title {
		font-size: clamp(19px, 5vw, 22px);
		line-height: 1.45;
	}

	.cacio2-home .home-announcement .text-link {
		justify-self: start;
		white-space: nowrap;
	}

	.cacio2-home .features {
		padding-top: 68px;
		padding-bottom: 68px;
	}

	.cacio2-home .feature-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}

	.cacio2-home .subscription {
		display: flex;
		flex-direction: column;
	}

	.cacio2-home .subscription-copy {
		padding: 58px 20px;
	}

	.cacio2-home .subscription-image-link,
	.cacio2-home .subscription-image {
		width: 100%;
		min-height: 290px;
	}

	.cacio2-home .subscription-image-link {
		order: 2;
	}

	#content .cacio2-home .subscription-copy h2 {
		max-width: 12em;
		font-size: clamp(30px, 8.2vw, 36px);
	}

	.cacio2-home .story {
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}

	.cacio2-home .story-photo {
		aspect-ratio: 0.86;
	}

	.cacio2-home .testimonials-home {
		padding-top: 60px;
		padding-bottom: 60px;
	}

	.cacio2-home .testimonials-home-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 30px;
	}

	.cacio2-home .testimonials-home-grid article {
		padding-top: 16px;
	}

	.cacio2-home .testimonials-home-grid blockquote {
		font-size: 22px;
	}

	.cacio2-home .testimonials-home-grid article > span {
		margin-top: 18px;
	}

	.cacio2-home .testimonials-home-grid .review-attribution {
		margin-top: 18px;
	}

	.cacio2-home .testimonials-home-grid blockquote .review-line {
		display: inline;
	}

	.cacio2-home .home-professionals {
		display: flex;
		flex-direction: column;
	}

	.cacio2-home .home-professionals-copy {
		padding: 58px 20px;
	}

	.cacio2-home .home-professionals-media {
		width: 100%;
		aspect-ratio: 1 / 1;
	}

	.cacio2-home .home-professionals-media img {
		height: 100%;
	}

	#content .cacio2-home a.button {
		padding-inline: 20px;
	}
}

@media (max-width: 430px) {
	.cacio2-home .home-find-grid {
		gap: 10px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cacio2-home .home-find-tile img,
	#content .cacio2-home a.button {
		transition: none;
	}
}

@media (min-width: 801px) {
	.cacio2-home .hero.hero-photo-hero {
		min-height: calc(clamp(590px, 68vw, 820px) + clamp(32px, 3.2vw, 56px) + clamp(42px, 5vw, 72px));
		padding-top: clamp(32px, 3.2vw, 56px);
	}

	.cacio2-home .hero-photo-hero .hero-image {
		position: absolute;
		top: clamp(32px, 3.2vw, 56px);
		right: 0;
		bottom: clamp(42px, 5vw, 72px);
		left: 0;
		height: auto;
		/* The image keeps its approved frame; the dark media wrapper can extend behind longer content. */
	}

	.cacio2-home .hero-photo-hero .hero-image picture,
	.cacio2-home .hero-photo-hero .hero-image img {
		height: 100%;
	}

	.cacio2-home .hero-photo-hero .hero-content {
		position: relative;
		z-index: 1;
		padding-top: calc(clamp(170px, 22vw, 280px) - clamp(32px, 3.2vw, 56px));
		padding-bottom: var(--cacio-global-space-3);
	}

	.cacio2-home .hero-photo-hero .hero-copy {
		position: relative;
		top: auto;
		left: auto;
		margin: 0 0 0 max(var(--cacio-global-gutter), calc((100vw - var(--cacio-global-content-width)) / 2 + var(--cacio-global-gutter)));
	}

	.cacio2-home .hero-photo-hero .hero-photo-after {
		position: relative;
		top: auto;
		left: auto;
		/* Derive the flow gap from the legacy overlay coordinates and the normal two-line title scale. */
		margin: max(24px, calc(clamp(510px, 53vw, 650px) - clamp(170px, 22vw, 280px) - clamp(44px, 5.1vw, 76px) - clamp(44px, 5.1vw, 76px) - clamp(11px, 1.2vw, 18px) - 39px)) 0 0 max(var(--cacio-global-gutter), calc((100vw - var(--cacio-global-content-width)) / 2 + var(--cacio-global-gutter)));
	}

	/* Let the Subscription row grow with its copy without enlarging/cropping its photo. */
	.cacio2-home .subscription-image {
		background-size: contain;
	}

	.cacio2-home .subscription-image.has-cms-image img {
		object-fit: contain;
		object-position: center;
	}

	#content .cacio2-home .subscription-copy h2 {
		max-width: 11em;
		font-family: var(--cacio-global-sans);
		font-size: 1.5em;
		font-weight: 700;
		letter-spacing: normal;
		line-height: 1.7;
	}
}
/* Desktop-only restoration: keep the approved light Home hero CTA independent of mobile colors. */
@media (min-width: 801px) {
	#content .cacio2-home .hero-photo-after .button {
		border-color: rgba(255, 255, 255, 0.8);
		background: transparent;
		color: #fff;
	}

	#content .cacio2-home .hero-photo-after .button:hover,
	#content .cacio2-home .hero-photo-after .button:focus-visible {
		border-color: #fff;
		background: #fff;
		color: var(--cacio-global-ink, #1d211d);
	}
}

/* H01: alternate editorial tile sets fill rows in DOM order. Default six unchanged. */
.cacio2-home .home-find-grid[data-layout="compact"]{display:flex;flex-wrap:wrap;align-items:stretch}
.cacio2-home .home-find-grid[data-layout="compact"] > .home-find-tile{flex:1 1 calc((100% - 42px)/4)}
.cacio2-home .home-find-grid[data-layout="compact"] > :is(.home-find-tile-fresh,.home-find-tile-aged){flex-basis:calc((100% - 14px)/2)}
.cacio2-home .home-find-tile-flow-caption{display:flex;align-items:flex-end;aspect-ratio:auto;min-height:200px}
.cacio2-home .home-find-tile-flow-caption img{position:absolute;inset:0}
.cacio2-home .home-find-tile-flow-caption span{position:relative;inset:auto;display:block;padding:16px;overflow-wrap:anywhere}
.cacio2-home .home-find-tile-copy{display:block;font-size:.8125em;line-height:1.5;margin-top:6px}
@media(max-width:800px){
 .cacio2-home .home-find-grid[data-layout="compact"] > .home-find-tile{flex-basis:calc((100% - 10px)/2)}
 .cacio2-home .home-find-tile-flow-caption{height:auto;min-height:112px}
}

/* H02: optional compact editorial campaign; OFF adds no markup or spacing. */
.cacio2-home .home-promo.section{padding-block:0}
.cacio2-home .home-promo-card{position:relative;isolation:isolate;overflow:hidden;background:var(--cacio-global-green,#323b30);color:#fffefa}
.cacio2-home .home-promo-media{position:absolute;inset:0;z-index:-2}
.cacio2-home .home-promo-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.cacio2-home .home-promo-card::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(35,46,35,.98),rgba(35,46,35,.88) 44%,rgba(35,46,35,.3))}
.cacio2-home .home-promo-content{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:12px;min-height:230px;padding:30px 36px}
.cacio2-home .home-promo-card.has-image .home-promo-content{width:68%;max-width:740px}
.cacio2-home .home-promo-eyebrow{font-size:12px;letter-spacing:.14em;line-height:1.4}
.cacio2-home .home-promo-title{margin:0;color:inherit;font-size:clamp(28px,3vw,42px);line-height:1.12;overflow-wrap:anywhere}
.cacio2-home .home-promo-copy{margin:0;color:inherit;font-size:15px;line-height:1.6;overflow-wrap:anywhere}
.cacio2-home .home-promo-title,.cacio2-home .home-promo-copy{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.cacio2-home .home-promo .button.home-promo-cta{margin:4px 0 0;min-height:44px;white-space:normal;overflow-wrap:anywhere;border-color:#fffefa;background:#fffefa;color:#323b30}
@media(max-width:800px){
 .cacio2-home .home-promo-content,.cacio2-home .home-promo-card.has-image .home-promo-content{width:100%;max-width:none;min-height:200px;padding:24px;gap:10px}
 .cacio2-home .home-promo-card::before{background:rgba(35,46,35,.82)}
 .cacio2-home .home-promo-title{font-size:28px}
 .cacio2-home .home-promo-copy{font-size:14px}
}

@media(max-width:800px){.cacio2-home > .home-promo{order:3}}

/* H02 overlay control: image pixels/opacity remain untouched; strong uses existing rules. */
.cacio2-home .home-promo-card[data-overlay="none"]::before{background:none}
.cacio2-home .home-promo-card[data-overlay="light"]::before{background:linear-gradient(90deg,rgba(35,46,35,.4),rgba(35,46,35,.28) 44%,rgba(35,46,35,.08))}
.cacio2-home .home-promo-card[data-overlay="medium"]::before{background:linear-gradient(90deg,rgba(35,46,35,.8),rgba(35,46,35,.7) 70%,rgba(35,46,35,.22))}
.cacio2-home .home-promo-card:is([data-overlay="none"],[data-overlay="light"]) :is(.home-promo-eyebrow,.home-promo-title,.home-promo-copy){background:#232e23;color:#fffefa;box-shadow:0 0 0 4px #232e23;max-width:100%;text-shadow:none}
@media(max-width:800px){
 .cacio2-home .home-promo-card[data-overlay="light"]::before{background:rgba(35,46,35,.25)}
 .cacio2-home .home-promo-card[data-overlay="medium"]::before{background:rgba(35,46,35,.7)}
}

/* H02: independent text treatments; no changes to card geometry or CTA. */
#content .cacio2-home .home-promo-card[data-text-bg] :is(.home-promo-eyebrow,.home-promo-title,.home-promo-copy){color:var(--promo-text,#fffefa)}
.cacio2-home .home-promo-card[data-text-bg="current"]:is([data-overlay="none"],[data-overlay="light"]) :is(.home-promo-eyebrow,.home-promo-title,.home-promo-copy){background:var(--promo-backing,#232e23);box-shadow:0 0 0 4px var(--promo-backing,#232e23)}
.cacio2-home .home-promo-card[data-text-bg="none"] :is(.home-promo-eyebrow,.home-promo-title,.home-promo-copy){background:transparent;box-shadow:none;text-shadow:0 1px 2px var(--promo-halo),0 -1px 2px var(--promo-halo),1px 0 2px var(--promo-halo),-1px 0 2px var(--promo-halo)}
.cacio2-home .home-promo-card[data-text-bg="discreet"] :is(.home-promo-eyebrow,.home-promo-title,.home-promo-copy){background:var(--promo-soft);box-shadow:0 0 0 4px var(--promo-soft);text-shadow:none}
.cacio2-home .home-promo-card[data-text-bg="current"]:not([data-text-color="white"]):is([data-overlay="medium"],[data-overlay="strong"]) :is(.home-promo-eyebrow,.home-promo-title,.home-promo-copy){text-shadow:0 1px 2px var(--promo-halo),0 -1px 2px var(--promo-halo),1px 0 2px var(--promo-halo),-1px 0 2px var(--promo-halo)}

/* H03: mobile title contributes to its photo row; approved short title keeps the same frame. */
@media (max-width: 800px) {
 .cacio2-home .hero.hero-photo-hero { display: grid; grid-template-columns: minmax(0, 1fr); }
 .cacio2-home .hero-photo-hero .hero-content { display: contents; }
 .cacio2-home .hero-photo-hero .hero-image {
  grid-area: 1 / 1; height: auto; min-height: clamp(500px, 128vw, 560px); align-self: stretch;
 }
 .cacio2-home .hero-photo-hero .hero-image picture,
 .cacio2-home .hero-photo-hero .hero-image > img { position: absolute; inset: 0; }
 .cacio2-home .hero-photo-hero .hero-copy {
  grid-area: 1 / 1; position: relative; top: auto; left: auto; align-self: start;
  margin: clamp(270px, 70vw, 310px) 28px 0; padding-bottom: 28px;
 }
 .cacio2-home .hero-photo-hero .hero-photo-after { grid-area: 2 / 1; }
}
