/* ==========================================
   CavaleriBIO Farm — Custom Theme
   ========================================== */

:root {
	--cream: #FDFBF7;
	--cream-light: #F4EFE6;
	--cream-warm: #EBE3D5;
	--ink: #2D2A26;
	--ink-soft: #5a564f;
	--terra: #C84B31;
	--terra-soft: #D4A373;
	--olive: #4A5D23;
	--olive-dark: #3d4d1d;
	--border-soft: #D8CDBA;
	--white-75: rgba(255, 255, 255, 0.75);
	--white-10: rgba(255, 255, 255, 0.10);
}

/* ---------- BASE ---------- */
html
{
	scroll-behavior: smooth;
}

body
{
	font-family: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	color: var(--ink);
	background-color: var(--cream);
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
}

.display-serif,
.serif-h3,
h1, h2, h3, h4, h5
{
	font-family: 'Cormorant Garamond', serif;
	font-weight: 300;
	letter-spacing: -0.01em;
}

h1.display-serif
{
	font-size: clamp(2.4rem, 5.2vw, 3.75rem);
	line-height: 1.05;
}

h2.display-serif
{
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.1;
}

.serif-h3
{
	font-size: 1.25rem;
	font-weight: 500;
	margin-bottom: .25rem;
}

.serif
{
	font-family: 'Cormorant Garamond', serif;
}

.fw-500 { font-weight: 500; }

/* ---------- COLOR HELPERS ---------- */
.text-terra { color: var(--terra) !important; }
.text-terra-soft { color: var(--terra-soft) !important; }
.text-olive { color: var(--olive) !important; }
.text-white-75 { color: var(--white-75) !important; }
.text-muted-dark { color: var(--ink-soft) !important; }

.section-cream { background-color: var(--cream); }
.section-cream-light { background-color: var(--cream-light); }
.section-cream-warm { background-color: var(--cream-warm); }
.section-dark { background-color: var(--ink); }
.section-olive { background-color: var(--olive); }

.py-lg-6 { padding-top: 5rem !important; padding-bottom: 5rem !important; }
@media (min-width: 992px)
{
	.py-lg-6 { padding-top: 8rem !important; padding-bottom: 8rem !important; }
}

/* ---------- EYEBROW (handwritten) ---------- */
.eyebrow
{
	font-family: 'Caveat', cursive;
	font-size: 1.25rem;
	font-weight: 400;
	margin-bottom: 1rem;
	letter-spacing: .02em;
	line-height: 1;
}

.eyebrow-lg { font-size: 1.875rem; }

.eyebrow-terra { color: var(--terra); }
.eyebrow-soft { color: var(--terra-soft); }
.eyebrow-olive { color: var(--olive); }
.eyebrow-cream { color: var(--terra-soft); }

.product-tagline
{
	font-family: 'Caveat', cursive;
	font-size: 1.125rem;
	font-weight: 400;
	margin-bottom: 1rem;
	line-height: 1;
}

.product-tagline-olive { color: var(--olive); }
.product-tagline-soft { color: var(--terra-soft); }
.product-tagline-terra { color: var(--terra); }

/* ---------- BUTTONS ---------- */
.btn
{
	border-radius: 0;
	font-weight: 500;
	letter-spacing: .01em;
	transition: all .2s ease;
}

.btn-terra
{
	background-color: var(--terra);
	color: var(--cream);
	border: none;
}

.btn-terra:hover,
.btn-terra:focus
{
	background-color: #b3422b;
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(200, 75, 49, .25);
}

/* ---------- NAVBAR ---------- */
.site-nav
{
	background-color: rgba(253, 251, 247, 0.92);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	padding: .85rem 0;
	border-bottom: 1px solid rgba(0,0,0,.04);
}

.navbar-brand
{
	font-family: 'Cormorant Garamond', serif;
	font-size: 1.4rem;
	color: var(--ink);
	font-weight: 400;
}

.navbar-brand .brand-icon
{
	color: var(--olive);
	font-size: 1.4rem;
}

.brand-text strong
{
	color: var(--olive);
	font-weight: 600;
}

.site-nav .nav-link
{
	color: var(--ink);
	font-size: .95rem;
	font-weight: 500;
}

.site-nav .nav-link:hover { color: var(--terra); }

.navbar-toggler:focus { box-shadow: none; }

/* ---------- HERO ---------- */
.hero
{
	position: relative;
	min-height: 100vh;
	background-image: url('https://static.prod-images.emergentagent.com/jobs/f34e579a-4f13-4caa-afa7-bfcc0d22c00c/images/dee5b3885f2f01af1278fa4453b46da758d4f61998275a9f08ea5311d7fa8013.png');
	background-size: cover;
	background-position: center;
	display: flex;
	align-items: center;
	padding-top: 6rem;
	padding-bottom: 4rem;
	color: #fff;
}

.hero-overlay
{
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(0,0,0,.7), rgba(0,0,0,.4), rgba(0,0,0,0));
}

.hero-content
{
	position: relative;
	z-index: 2;
}

.lead-light
{
	color: var(--white-75);
	font-size: 1.15rem;
}

.lead-light strong { color: #fff; }

.hero-arrow
{
	position: absolute;
	bottom: 1.5rem;
	left: 50%;
	transform: translateX(-50%);
	color: rgba(255,255,255,.7);
	font-size: 1.5rem;
	z-index: 2;
	animation: bounce 2.2s infinite;
}

.hero-arrow:hover { color: #fff; }

@keyframes bounce
{
	0%, 100% { transform: translate(-50%, 0); }
	50% { transform: translate(-50%, 8px); }
}

/* ---------- PROBLEMA ---------- */
.problema-callout
{
	background-color: rgba(200, 75, 49, .15);
	border: 1px solid rgba(200, 75, 49, .25);
	border-radius: 0;
}

/* ---------- 60 ETTARI / QUOTE ---------- */
.quote-block
{
	border-left: 4px solid var(--olive);
	padding: 1.5rem;
	background-color: var(--cream);
	font-family: 'Cormorant Garamond', serif;
	font-style: italic;
	font-size: 1.1rem;
	color: var(--ink);
}

.quote-block footer
{
	font-family: 'Manrope', sans-serif;
	font-style: normal;
	font-size: .85rem;
	color: var(--ink-soft);
}

.hero-image
{
	width: 100%;
	border-radius: 2px;
}

.image-badge
{
	position: absolute;
	right: calc(var(--bs-gutter-x) * .5 - 24px);
	bottom: -24px;
	background-color: var(--olive);
	color: #fff;
	padding: 1.5rem;
	border-radius: 0;
}

.image-badge .badge-title
{
	font-family: 'Caveat', cursive;
	font-size: 1.25rem;
	color: #fff;
	line-height: 1.1;
}

.image-badge .small
{
	color: rgba(255,255,255,.8);
}

/* ---------- PRODUCT CARDS ---------- */
.product-card
{
	background-color: var(--cream-light);
	padding: 2rem;
	border: 1px solid var(--border-soft);
	border-radius: 0;
	transition: transform .25s ease;
}

.product-card:hover
{
	transform: translateY(-6px);
}

.product-icon
{
	font-size: 1.6rem;
	color: var(--olive);
	display: block;
	margin-bottom: 1.5rem;
}

.product-icon-terra { color: var(--terra); }
.product-icon-soft { color: var(--terra-soft); }

.products-hero
{
	width: 100%;
	max-width: 56rem;
	max-height: 600px;
	object-fit: cover;
	border-radius: 2px;
}

/* ---------- IL PATTO / OLIVE ---------- */
.section-olive .display-serif em { font-style: italic; }

.filiera-item
{
	background-color: rgba(255,255,255,.1);
	padding: 1rem;
	margin-bottom: 1rem;
	border-radius: 0;
}

.filiera-icon
{
	width: 32px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: transparent;
	margin-right: 1rem;
	color: #fff;
	font-size: 1.25rem;
	flex-shrink: 0;
}

.patto-callout
{
	background-color: rgba(255,255,255,.05);
	border: 1px solid rgba(255,255,255,.12);
	border-radius: 0;
	font-family: 'Cormorant Garamond', serif;
	font-size: 1.2rem;
}

/* ---------- FORM ---------- */
.form-card
{
	background-color: var(--cream);
	border: 1px solid var(--border-soft);
	border-radius: 0;
	box-shadow: none;
}

.form-label
{
	color: var(--ink);
	font-weight: 500;
	font-size: .875rem;
	margin-bottom: .5rem;
}

.form-control
{
	background-color: #fff;
	border: 1px solid var(--border-soft);
	border-radius: 0;
	color: var(--ink);
	padding: .75rem 1rem;
}

.form-control:focus
{
	border-color: var(--terra);
	box-shadow: 0 0 0 .2rem rgba(200, 75, 49, .15);
	background-color: #fff;
}

.btn-choice
{
	background-color: #fff;
	border: 1px solid var(--border-soft);
	border-radius: 0;
	color: var(--ink);
	padding: 1rem;
	font-size: .875rem;
}

.btn-choice:hover { border-color: var(--terra); color: var(--terra); }

.btn-choice.active
{
	background-color: var(--terra);
	border-color: var(--terra);
	color: #fff;
}

.btn-product-choice
{
	background-color: #fff;
	border: 1px solid var(--border-soft);
	border-radius: 0;
	color: var(--ink);
	padding: 1rem;
	display: flex;
	align-items: flex-start;
	gap: .75rem;
	transition: transform .2s ease, border-color .2s ease, background-color .2s ease;
}

.btn-product-choice:hover
{
	border-color: var(--terra);
	transform: translateY(-2px);
}

.btn-product-choice.active
{
	border-color: var(--terra);
	background-color: rgba(200, 75, 49, .05);
}

.btn-product-choice .check-icon
{
	font-size: 1.1rem;
	color: var(--ink-soft);
	margin-top: 2px;
	flex-shrink: 0;
}

.btn-product-choice.active .check-icon
{
	color: var(--terra);
}

/* ---------- REPORT LIST ---------- */
.report-list li
{
	color: var(--ink);
	padding: .35rem 0;
	font-size: .98rem;
}

.report-list i
{
	color: var(--olive);
	font-weight: 700;
	font-size: 1.1rem;
}

.report-image
{
	max-width: 28rem;
	width: 100%;
}

/* ---------- FOOTER ---------- */
.site-footer
{
	background-color: var(--ink);
	color: var(--white-75);
}

.site-footer .navbar-brand .brand-icon { color: var(--olive); }

.site-footer .brand-text { color: #fff; }
.site-footer .brand-text strong { color: var(--terra-soft); }

.footer-link
{
	color: var(--white-75);
	font-size: .85rem;
	text-decoration: none;
}

.footer-link:hover { color: #fff; }

/* ---------- RESPONSIVE TWEAKS ---------- */
@media (max-width: 991.98px)
{
	.site-nav .navbar-collapse
	{
		background-color: var(--cream);
		padding: 1rem;
		margin-top: .75rem;
		border-radius: 4px;
	}
	.image-badge
	{
		right: 16px;
		bottom: 16px;
	}
}

@media (max-width: 575.98px)
{
	h1.display-serif { font-size: 2.1rem; }
	h2.display-serif { font-size: 1.85rem; }
	.eyebrow { font-size: 1.2rem; }
	.hero { min-height: 90vh; }
}
