/*
Theme Name: RegeneraVita
Theme URI: https://regeneravita.com/
Author: WebArt Technology
Author URI: https://webart.technology/
Description: A custom WooCommerce theme for RegeneraVita — a premium Italian nutraceutical and wellness brand. Built on scientific precision, quality, and global ambition.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: regeneravita
Tags: ecommerce, woocommerce, custom-menu, featured-images, translation-ready, wellness
WC requires at least: 6.0
WC tested up to: 9.0
*/

/* Base styles are enqueued from the assets directory via functions.php. */

/* ---------------------------------------------------------------------------
 * Theme overrides (loaded after the design CSS).
 * ------------------------------------------------------------------------- */

/*
 * Contact map: the design CSS only sets the map height inside mobile media
 * queries, so on desktop the iframe (height:100%) collapsed to ~150px. Give the
 * frame an explicit height per breakpoint (the iframe fills it). The design's
 * iframe border/radius live in a native-CSS-nesting rule some browsers ignore,
 * so restate them here.
 */
.contact_pages .map-frame {
	height: 100%;
}

.contact_pages .map-frame iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 3px solid #165c33;
	border-radius: 10px;
}

@media ( max-width: 991.98px ) {
	.contact_pages .map-frame {
		height: 374px;
	}
}

@media ( max-width: 575.98px ) {
	.contact_pages .map-frame {
		height: 304px;
	}
}

/* Header live search suggestions */
#search-results.hidden {
	display: none;
}
.search-suggest-list {
	list-style: none;
	margin: 10px 0 0;
	padding: 0;
	max-height: 340px;
	overflow-y: auto;
}
.search-suggest-list li + li {
	border-top: 1px solid rgba(22, 92, 51, 0.12);
}
.search-suggest-list a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 6px;
	color: #165c33;
	text-decoration: none;
}
.search-suggest-list a:hover {
	background: rgba(22, 92, 51, 0.06);
}
.search-suggest-list .s-type {
	flex: none;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .04em;
	background: #165c33;
	color: #fff;
	border-radius: 4px;
	padding: 2px 8px;
}
.search-suggest-none {
	padding: 14px 6px;
	color: #666;
}

/* =========================================================
   Innovation page (original layout, theme design language)
   ========================================================= */
.iv-lead {
	max-width: 760px;
	margin: 18px auto 26px;
	color: var(--muted);
	font-size: 18px;
	line-height: 1.7;
}

/* Intro */
.iv-intro {
	padding: 90px 0 60px;
	text-align: center;
	position: relative;
	overflow: hidden;
}
.iv-intro .sec_heading {
	justify-content: center;
}
.iv-intro-glow {
	position: absolute;
	top: -160px;
	left: 50%;
	transform: translateX(-50%);
	width: 560px;
	height: 560px;
	background: radial-gradient(circle, var(--mint) 0%, rgba(233, 248, 241, 0) 70%);
	z-index: 0;
	pointer-events: none;
}
.iv-intro .container {
	position: relative;
	z-index: 1;
}

/* Capabilities */
.iv-caps {
	padding: 40px 0 90px;
}
.iv-caps-head {
	text-align: center;
	margin-bottom: 46px;
}
.iv-caps-head .sec_heading {
	justify-content: center;
}
.iv-caps-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 26px;
}
.iv-cap {
	position: relative;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 20px;
	padding: 34px 28px;
	box-shadow: var(--soft-shadow);
	transition: transform .3s ease, box-shadow .3s ease;
	overflow: hidden;
}
.iv-cap::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 4px;
	background: linear-gradient(90deg, var(--forest), var(--sage));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .35s ease;
}
.iv-cap:hover {
	transform: translateY(-8px);
	box-shadow: var(--green-shadow);
}
.iv-cap:hover::before {
	transform: scaleX(1);
}
.iv-cap-ico {
	display: inline-grid;
	place-items: center;
	width: 76px;
	height: 76px;
	border-radius: 20px;
	background: var(--mint);
	margin-bottom: 22px;
}
.iv-cap-ico img {
	width: 38px;
	height: 38px;
	object-fit: contain;
}
.iv-cap h3 {
	font-family: var(--secondary-font);
	font-size: 22px;
	font-weight: 600;
	color: var(--forest);
	margin-bottom: 12px;
}
.iv-cap p {
	color: var(--muted);
	font-size: 15px;
	line-height: 1.7;
	margin: 0;
}

/* Steps timeline */
.iv-steps {
	padding: 90px 0;
	background: var(--pale);
}
.iv-steps-head {
	text-align: center;
	margin-bottom: 50px;
}
.iv-steps-head .sec_heading {
	justify-content: center;
}
.iv-steps-list {
	max-width: 820px;
	margin: 0 auto;
	position: relative;
}
.iv-steps-list::before {
	content: "";
	position: absolute;
	left: 29px;
	top: 8px;
	bottom: 8px;
	width: 2px;
	background: var(--line);
}
.iv-step {
	position: relative;
	display: flex;
	gap: 26px;
	padding-bottom: 36px;
}
.iv-step:last-child {
	padding-bottom: 0;
}
.iv-step-num {
	flex: none;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--forest);
	color: #fff;
	font-family: var(--secondary-font);
	font-size: 19px;
	font-weight: 700;
	letter-spacing: .02em;
	box-shadow: 0 10px 24px rgba(0, 93, 53, .25);
	position: relative;
	z-index: 1;
}
.iv-step-body {
	padding-top: 8px;
}
.iv-step-body h3 {
	font-family: var(--secondary-font);
	font-size: 20px;
	font-weight: 600;
	color: var(--ink);
	margin-bottom: 8px;
}
.iv-step-body p {
	color: var(--muted);
	line-height: 1.7;
	margin: 0;
}

/* Stats band */
.iv-stats {
	padding: 64px 0;
	background: linear-gradient(120deg, var(--deep), var(--forest));
	position: relative;
	overflow: hidden;
}
.iv-stats .iv-stats-leaf {
	position: absolute;
	right: -30px;
	bottom: -30px;
	width: 220px;
	opacity: .14;
	pointer-events: none;
}
.iv-stats-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-around;
	gap: 24px;
	text-align: center;
	position: relative;
	z-index: 1;
}
.iv-stat {
	flex: 1 1 180px;
	padding: 6px 16px;
	position: relative;
}
.iv-stat + .iv-stat::before {
	content: "";
	position: absolute;
	left: 0;
	top: 12%;
	height: 76%;
	width: 1px;
	background: rgba(255, 255, 255, .18);
}
.iv-stat strong {
	display: block;
	font-family: var(--primary-font);
	font-size: clamp(38px, 5vw, 54px);
	font-weight: 600;
	color: #fff;
	line-height: 1;
}
.iv-stat span {
	display: block;
	margin-top: 10px;
	color: rgba(255, 255, 255, .75);
	font-size: 15px;
	letter-spacing: .02em;
}

/* Focus split */
.iv-focus {
	padding: 96px 0;
}
.iv-focus-inner {
	display: grid;
	grid-template-columns: 1.02fr 1fr;
	gap: 60px;
	align-items: center;
}
.iv-focus-media {
	position: relative;
}
/* Soft layered accent behind the image (depth, done cleanly). */
.iv-focus-media::before {
	content: "";
	position: absolute;
	right: -20px;
	bottom: -20px;
	width: 68%;
	height: 70%;
	background: var(--mint);
	border-radius: 26px;
	z-index: 0;
}
.iv-focus-media img {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: clamp(380px, 38vw, 540px);
	object-fit: cover;
	border-radius: 24px;
	box-shadow: var(--soft-shadow);
}
.iv-focus-badge {
	position: absolute;
	left: 22px;
	bottom: 22px;
	z-index: 2;
	background: #fff;
	border-radius: 14px;
	padding: 13px 22px;
	box-shadow: var(--soft-shadow);
	font-family: var(--primary-font);
	font-size: 21px;
	color: var(--forest);
	font-weight: 600;
}
.iv-focus-body .sec_heading {
	margin-bottom: 10px;
}
.iv-focus-body .body-copy {
	color: var(--muted);
	line-height: 1.75;
	margin-top: 14px;
}
.iv-focus-list {
	list-style: none;
	padding: 0;
	margin: 26px 0 30px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px 26px;
}
.iv-focus-list li {
	position: relative;
	padding-left: 32px;
	margin: 0;
	color: var(--ink);
	font-size: 15.5px;
	line-height: 1.4;
}
.iv-focus-list li::before {
	content: "\2713";
	position: absolute;
	left: 0;
	top: 1px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--mint);
	color: var(--forest);
	display: grid;
	place-items: center;
	font-size: 12px;
	font-weight: 700;
}

/* CTA panel */
.iv-cta {
	padding: 20px 0 90px;
}
.iv-cta-panel {
	position: relative;
	overflow: hidden;
	background: linear-gradient(120deg, var(--forest), var(--deep));
	border-radius: 28px;
	padding: 56px 48px;
	text-align: center;
	box-shadow: var(--green-shadow);
}
.iv-cta-panel .sec_title {
	color: #fff;
	margin-bottom: 26px;
}
.iv-cta-panel .sec_title span {
	color: var(--sage);
}
.iv-cta-btns {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: center;
}

/* Buttons on the light innovation sections match the homepage light-section
   style (dark text/border + green-gradient icon circle). */
.iv-intro .cta_btn .btn_text,
.iv-focus .cta_btn .btn_text {
	color: #0b2416;
	border-color: #0b2416;
}
.iv-intro .cta_btn .btn_icon,
.iv-focus .cta_btn .btn_icon {
	background: linear-gradient(90deg, #0b2416 0%, #165c33 100%);
}

/* Focus split with no image: let the text span the full width. */
.iv-focus-inner.no-media {
	grid-template-columns: 1fr;
	max-width: 820px;
	margin: 0 auto;
}

/* Leaf decoration (theme signature) — subtle corner watermarks that bleed off
   the edge behind the content. Fully self-contained (overrides base .leaf_dna). */
.iv-intro,
.iv-focus {
	position: relative;
	overflow: hidden;
}
.iv-focus .container {
	position: relative;
	z-index: 1;
}
.iv-intro .leaf_dna,
.iv-focus .leaf_dna {
	position: absolute;
	width: 300px;
	max-width: 34vw;
	height: auto;
	margin: 0;
	opacity: .12;
	z-index: 0;
	rotate: 0deg;
	pointer-events: none;
}
.iv-intro .leaf_dna img,
.iv-focus .leaf_dna img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: contain;
}
.iv-intro .leaf_dna {
	top: -60px;
	right: -70px;
	left: auto;
	rotate: -18deg;
}
.iv-focus .leaf_dna {
	left: -70px;
	bottom: -60px;
	top: auto;
	rotate: 14deg;
}
@media ( max-width: 991.98px ) {
	.iv-intro .leaf_dna,
	.iv-focus .leaf_dna {
		display: none;
	}
}

@media ( max-width: 991.98px ) {
	.iv-focus-inner {
		grid-template-columns: 1fr;
		gap: 40px;
	}
	.iv-focus-media::before {
		right: -12px;
		bottom: -12px;
	}
	.iv-focus-media img {
		height: clamp(300px, 60vw, 460px);
	}
}
@media ( max-width: 575.98px ) {
	.iv-focus-list {
		grid-template-columns: 1fr;
	}
}
@media ( max-width: 575.98px ) {
	.iv-step {
		gap: 16px;
	}
	.iv-step-num {
		width: 52px;
		height: 52px;
		font-size: 20px;
	}
	.iv-steps-list::before {
		left: 25px;
	}
	.iv-cta-panel {
		padding: 40px 22px;
	}
}

/* 404 */
.error-404 .error-404-code {
	font-size: clamp(80px, 18vw, 190px);
	line-height: 1;
	font-family: var(--primary-font, serif);
	color: #165c33;
	opacity: .18;
	font-weight: 700;
}
.error-404 .error-404-inner {
	max-width: 640px;
	margin: 0 auto;
}
.error-404 .cta_btn {
	display: inline-flex;
	margin-top: 18px;
}

