/*
Theme Name: Hello Elementor Child - San Vicente
Template: hello-elementor
Version: 1.0.0
Text Domain: hello-elementor-child
*/

:root {
	--sv-light: #d1e563;
	--sv-dark: #00a13d;
	--sv-text: #1a1a1a;
	--sv-muted: #555;
	--sv-card-bg: #fff;
	--sv-card-border: #e3e3e3;
}

* { box-sizing: border-box; }

body, h1, h2, h3, h4, h5, h6, p, a, li, button, input, textarea, select,
body span:not([class*="dashicons"]):not([class*="fa-"]):not([class*="eicon"]):not(.ab-icon),
body div:not([class*="dashicons"]):not([class*="eicon"]) {
	font-family: "Space Grotesk", system-ui, sans-serif !important;
}

.fa, .fas, .far, .fal, .fab, .fa-solid, .fa-regular, .fa-brands,
[class^="fa-"], [class*=" fa-"] {
	font-family: "Font Awesome 6 Free", "Font Awesome 6 Brands" !important;
}
.fa-brands, .fab { font-family: "Font Awesome 6 Brands" !important; }

body {
	margin: 0;
	color: var(--sv-text);
	background: #fff;
}

.sv-main {
	width: 95%;
	margin: 80px auto 0;
	padding: 0;
}

@media (max-width: 1024px) {
	.sv-main { width: 100%; }
}

a { color: inherit; }

img { max-width: 100%; height: auto; display: block; }

.sv-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 24px;
}

/* ---------- CONTACT PAGE ---------- */
.sv-contact-hero {
	position: relative;
	background: linear-gradient(135deg, var(--sv-dark) 0%, #007a2d 100%);
	color: #fff;
	padding: 80px 56px;
	border-radius: 24px;
	margin-top: 40px;
	overflow: hidden;
}
.sv-contact-hero-inner { position: relative; z-index: 2; max-width: 720px; }
.sv-contact-hero h1 {
	margin: 8px 0 18px;
	font-size: 48px;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -.5px;
}
.sv-contact-hero p { font-size: 18px; line-height: 1.55; opacity: .92; max-width: 600px; margin: 0; }
.sv-eyebrow {
	display: inline-block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	background: var(--sv-light);
	color: #1a1a1a;
	padding: 6px 14px;
	border-radius: 999px;
}
.sv-contact-hero-mark {
	position: absolute;
	right: -80px;
	bottom: -120px;
	width: 380px;
	height: 380px;
	border-radius: 50%;
	background: radial-gradient(circle at 30% 30%, rgba(209,229,99,.5), transparent 70%);
	pointer-events: none;
}

.sv-contact-grid {
	display: grid;
	grid-template-columns: 360px 1fr;
	gap: 32px;
	margin-top: 48px;
}

.sv-contact-info {
	background: #fff;
	border: 1px solid #eee;
	border-radius: 20px;
	padding: 36px 32px;
	align-self: start;
	position: sticky;
	top: 100px;
}
.sv-contact-info h3 {
	margin: 0 0 22px;
	font-size: 20px;
	color: var(--sv-dark);
	font-weight: 700;
}
.sv-info-list {
	list-style: none;
	padding: 0;
	margin: 0 0 28px;
	display: flex;
	flex-direction: column;
	gap: 22px;
}
.sv-info-list li {
	display: flex;
	gap: 16px;
	align-items: flex-start;
}
.sv-info-ico {
	width: 42px;
	height: 42px;
	border-radius: 12px;
	background: var(--sv-light);
	color: var(--sv-dark);
	display: grid;
	place-items: center;
	font-size: 18px;
	flex-shrink: 0;
}
.sv-info-list strong {
	display: block;
	font-size: 13px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #666;
	font-weight: 700;
	margin-bottom: 4px;
}
.sv-info-list a, .sv-info-list span {
	color: #1a1a1a;
	text-decoration: none;
	font-size: 15px;
	line-height: 1.5;
}
.sv-info-list a:hover { color: var(--sv-dark); }

.sv-info-tip {
	display: flex;
	gap: 12px;
	padding: 16px;
	background: #f3fbe6;
	border: 1px dashed var(--sv-dark);
	border-radius: 12px;
	color: #1a1a1a;
}
.sv-info-tip i { color: var(--sv-dark); font-size: 18px; margin-top: 2px; }
.sv-info-tip p { margin: 0; font-size: 13px; line-height: 1.5; }

.sv-contact-card {
	background: #fff;
	border: 1px solid #eee;
	border-radius: 20px;
	padding: 44px 48px;
	box-shadow: 0 8px 30px rgba(0,0,0,.04);
}
.sv-contact-card-head { margin-bottom: 28px; }
.sv-contact-card-head h2 {
	margin: 0 0 6px;
	font-size: 28px;
	font-weight: 700;
	color: #1a1a1a;
}
.sv-contact-card-head p { margin: 0; color: #666; font-size: 14px; }
.sv-contact-card-head .req { color: var(--sv-dark); font-weight: 700; }

.sv-form { display: flex; flex-direction: column; gap: 22px; }
.sv-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.sv-field { display: flex; flex-direction: column; gap: 8px; }
.sv-label {
	font-size: 13px;
	font-weight: 700;
	color: #1a1a1a;
	letter-spacing: .3px;
}
.sv-label em {
	color: var(--sv-dark);
	font-style: normal;
	margin-left: 2px;
}
.sv-form input, .sv-form select, .sv-form textarea {
	width: 100%;
	border: 1.5px solid #e3e3e3;
	background: #fafafa;
	border-radius: 10px;
	padding: 14px 16px;
	font-size: 15px;
	color: #1a1a1a;
	transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
	outline: none;
}
.sv-form textarea { resize: vertical; min-height: 140px; font-family: inherit; }
.sv-form input:focus, .sv-form select:focus, .sv-form textarea:focus {
	border-color: var(--sv-dark);
	background: #fff;
	box-shadow: 0 0 0 4px rgba(0,161,61,.12);
}

.sv-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 14px;
	line-height: 1.5;
	color: #333;
	cursor: pointer;
}
.sv-checkbox input {
	width: 18px;
	height: 18px;
	margin-top: 2px;
	accent-color: var(--sv-dark);
	flex-shrink: 0;
}
.sv-checkbox a { color: var(--sv-dark); text-decoration: underline; }

.sv-form-actions {
	display: flex;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
	margin-top: 8px;
}
.sv-form-actions small { color: #888; font-size: 13px; }

.sv-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	background: var(--sv-dark);
	color: #fff;
	border: none;
	padding: 14px 28px;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	letter-spacing: .3px;
	text-decoration: none;
	transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
	line-height: 1;
}
.sv-btn i {
	font-size: 1em !important;
	line-height: 1;
	color: inherit;
	display: inline-block;
	vertical-align: middle;
}
.sv-btn span {
	line-height: 1;
	display: inline-block;
	vertical-align: middle;
}
.sv-btn:hover {
	background: var(--sv-light);
	color: #1a1a1a;
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(0,161,61,.3);
}
.sv-btn-ghost {
	background: transparent;
	color: var(--sv-dark);
	border: 2px solid var(--sv-dark);
}
.sv-btn-ghost:hover {
	background: var(--sv-dark);
	color: #fff;
}

.sv-faq {
	margin-top: 80px;
	padding: 56px 0;
}
.sv-faq h2 {
	font-size: 32px;
	font-weight: 700;
	margin: 0 0 32px;
	color: #1a1a1a;
	text-align: center;
}
.sv-faq-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}
.sv-faq details {
	background: #f7f9f3;
	border: 1px solid #e3e3e3;
	border-radius: 14px;
	padding: 20px 24px;
	transition: background .25s ease, border-color .25s ease;
}
.sv-faq details[open] {
	background: #fff;
	border-color: var(--sv-dark);
	box-shadow: 0 6px 24px rgba(0,0,0,.04);
}
.sv-faq summary {
	cursor: pointer;
	font-weight: 700;
	font-size: 16px;
	color: #1a1a1a;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
}
.sv-faq summary::-webkit-details-marker { display: none; }
.sv-faq summary::after {
	content: "+";
	color: var(--sv-dark);
	font-size: 24px;
	line-height: 1;
	font-weight: 400;
	transition: transform .25s ease;
}
.sv-faq details[open] summary::after { transform: rotate(45deg); }
.sv-faq details p {
	margin: 14px 0 0;
	color: #555;
	font-size: 14px;
	line-height: 1.55;
}

.sv-cta-back {
	text-align: center;
	margin: 40px 0 60px;
}

@media (max-width: 1024px) {
	.sv-contact-grid { grid-template-columns: 1fr; }
	.sv-contact-info { position: static; }
	.sv-faq-grid { grid-template-columns: 1fr; }
	.sv-contact-hero { padding: 56px 32px; }
	.sv-contact-hero h1 { font-size: 36px; }
	.sv-contact-card { padding: 32px 24px; }
	.sv-field-row { grid-template-columns: 1fr; }
}

/* ---------- SEARCH RESULTS ---------- */
.sv-search-results { padding: 56px 0; }
.sv-inline-search {
	display: flex;
	gap: 12px;
	margin-bottom: 36px;
	max-width: 700px;
}
.sv-inline-search input {
	flex: 1;
	border: 1.5px solid #e3e3e3;
	background: #fff;
	border-radius: 999px;
	padding: 14px 22px;
	font-size: 15px;
	outline: none;
}
.sv-inline-search input:focus {
	border-color: var(--sv-dark);
	box-shadow: 0 0 0 4px rgba(0,161,61,.12);
}
.sv-result-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 16px;
}
.sv-result-link {
	display: block;
	background: #fff;
	border: 1px solid #eee;
	border-radius: 14px;
	padding: 24px 28px;
	color: inherit;
	text-decoration: none;
	transition: border-color .25s, box-shadow .25s, transform .25s;
}
.sv-result-link:hover {
	border-color: var(--sv-dark);
	box-shadow: 0 8px 24px rgba(0,161,61,.1);
	transform: translateY(-2px);
}
.sv-result-meta {
	font-size: 12px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--sv-dark);
	font-weight: 700;
	margin-bottom: 6px;
}
.sv-result-link h3 {
	margin: 0 0 8px;
	font-size: 20px;
	color: #1a1a1a;
}
.sv-result-link p {
	margin: 0 0 12px;
	color: #555;
	font-size: 14px;
	line-height: 1.55;
}
.sv-result-cta {
	font-weight: 700;
	font-size: 14px;
	color: var(--sv-dark);
}
.sv-result-cta i { margin-left: 6px; transition: transform .25s; }
.sv-result-link:hover .sv-result-cta i { transform: translateX(4px); }
.sv-pagination {
	margin-top: 32px;
	display: flex;
	gap: 8px;
	justify-content: center;
	flex-wrap: wrap;
}
.sv-pagination .page-numbers {
	padding: 10px 16px;
	border-radius: 8px;
	background: #f7f9f3;
	color: #1a1a1a;
	text-decoration: none;
	font-weight: 700;
	font-size: 14px;
}
.sv-pagination .page-numbers.current { background: var(--sv-dark); color: #fff; }
.sv-pagination a.page-numbers:hover { background: var(--sv-light); }

.sv-empty-state {
	text-align: center;
	padding: 60px 20px;
	background: #fafafa;
	border-radius: 16px;
}
.sv-empty-state i { font-size: 48px; color: #aaa; margin-bottom: 16px; }
.sv-empty-state h3 { margin: 0 0 8px; font-size: 22px; }
.sv-empty-state p { margin: 0 0 22px; color: #666; }

/* ---------- SCROLL REVEAL ---------- */
.sv-fade {
	opacity: 0;
	transition: opacity 1s ease;
	will-change: opacity;
}
.sv-fade.is-visible { opacity: 1; }

.sv-reveal {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity .7s ease, transform .7s ease;
	will-change: opacity, transform;
}
.sv-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}
.sv-reveal-stagger > * {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity .6s ease, transform .6s ease;
}
.sv-reveal-stagger.is-visible > * {
	opacity: 1;
	transform: translateY(0);
}
.sv-reveal-stagger.is-visible > *:nth-child(1) { transition-delay: .05s; }
.sv-reveal-stagger.is-visible > *:nth-child(2) { transition-delay: .12s; }
.sv-reveal-stagger.is-visible > *:nth-child(3) { transition-delay: .19s; }
.sv-reveal-stagger.is-visible > *:nth-child(4) { transition-delay: .26s; }
.sv-reveal-stagger.is-visible > *:nth-child(5) { transition-delay: .33s; }
.sv-reveal-stagger.is-visible > *:nth-child(6) { transition-delay: .40s; }
.sv-reveal-stagger.is-visible > *:nth-child(7) { transition-delay: .47s; }
.sv-reveal-stagger.is-visible > *:nth-child(8) { transition-delay: .54s; }
.sv-mobile-nav .sv-mobile-menu {
	margin: 0 0 32px;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 22px;
}
.sv-mobile-actions, .sv-mobile-social {
	display: flex;
	gap: 22px;
	flex-wrap: wrap;
	justify-content: flex-start;
	font-size: 22px;
	margin-top: auto;
	padding-top: 18px;
}
.sv-mobile-actions { border-top: 1px solid #eee; }
.sv-mobile-social { margin-top: 16px; padding-top: 16px; border-top: 1px solid #eee; }
.sv-mobile-actions a, .sv-mobile-social a {
	color: #222;
	text-decoration: none;
}
.sv-mobile-actions a:hover, .sv-mobile-social a:hover { color: var(--sv-dark); }
.sv-mobile-menu a {
	color: #222;
	text-decoration: none;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0.6px;
	text-transform: uppercase;
}
.sv-mobile-menu a:hover { color: var(--sv-dark); }

/* ---------- PAGE WITH SIDEBAR ---------- */
.sv-page {
	max-width: 1280px;
	margin: 60px auto 0;
	padding: 40px 24px 80px;
	animation: sv-page-fade .7s ease-out both;
}
.sv-page .sv-page-content {
	animation: sv-page-fade-up .8s .05s ease-out both;
}
.sv-page .sv-sidebar {
	animation: sv-page-fade-up .8s .18s ease-out both;
}
@keyframes sv-page-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}
@keyframes sv-page-fade-up {
	from { opacity: 0; transform: translateY(14px); }
	to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
	.sv-page,
	.sv-page .sv-page-content,
	.sv-page .sv-sidebar {
		animation: none !important;
	}
}
.sv-page-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 48px;
	align-items: start;
}
.sv-page-with-sidebar .sv-page-grid {
	grid-template-columns: minmax(0, 1fr) 280px;
}
.sv-page-content {
	min-width: 0;
}
.sv-page-title {
	color: var(--sv-dark);
	font-weight: 700;
	font-size: 22px;
	letter-spacing: 1px;
	margin: 0 0 28px;
	text-transform: uppercase;
}
.sv-page-content .sv-section {
	margin-bottom: 32px;
}
.sv-page-content h2 {
	font-size: 17px;
	font-weight: 700;
	color: var(--sv-text);
	margin: 0 0 14px;
}
.sv-page-content p {
	font-size: 15px;
	line-height: 1.7;
	color: #333;
	margin: 0 0 14px;
	text-align: justify;
}
.sv-page-content ul {
	margin: 0 0 16px 18px;
	padding: 0;
}
.sv-page-content ul li {
	font-size: 15px;
	line-height: 1.7;
	color: #333;
	margin-bottom: 8px;
}
.sv-page-content ul li strong {
	color: var(--sv-text);
}
.sv-link-highlight {
	color: var(--sv-dark);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color .2s;
}
.sv-link-highlight:hover {
	border-bottom-color: var(--sv-dark);
}

/* ---------- SIDEBAR ---------- */
.sv-sidebar {
	position: sticky;
	top: 100px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.sv-sidebar-title {
	font-style: italic;
	font-weight: 500;
	font-size: 17px;
	color: var(--sv-text);
	margin: 8px 0 6px;
	text-align: center;
}
.sv-sidebar-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.sv-sidebar-list a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 12px;
	background: #fff;
	border: 1px solid var(--sv-card-border);
	border-radius: 10px;
	text-decoration: none;
	color: var(--sv-text);
	transition: border-color .2s, transform .15s, box-shadow .2s;
}
.sv-sidebar-list a:hover {
	border-color: var(--sv-dark);
	box-shadow: 0 4px 14px rgba(0, 161, 61, 0.12);
	transform: translateX(2px);
}
.sv-sidebar-ico {
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
}
/* Todos los iconos del sidebar al mismo tamaño (32px), sin importar si son
   SVG, imagen raster o FontAwesome. */
.sv-sidebar-ico img {
	width: 32px;
	height: 32px;
	max-width: 32px;
	max-height: 32px;
	object-fit: contain;
}
.sv-sidebar-ico i {
	font-size: 28px;
	color: var(--sv-dark);
}
/* Rec. Restos Vegetales: un poco más grande (el raster tiene más margen interno) */
.sv-sidebar-ico img[src*="icon-vegetales-eco"] {
	width: 38px;
	height: 38px;
	max-width: 38px;
	max-height: 38px;
}
.sv-sidebar-label {
	font-style: italic;
	font-size: 14px;
	line-height: 1.25;
	color: var(--sv-text);
}
.sv-sidebar-block {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	text-decoration: none;
	color: var(--sv-dark);
	margin-top: 6px;
}
.sv-sidebar-block img {
	width: 100%;
	border-radius: 8px;
	border: 1px solid var(--sv-card-border);
}
.sv-sidebar-block span {
	font-style: italic;
	font-size: 14px;
	color: var(--sv-dark);
}
.sv-sidebar-block:hover span {
	text-decoration: underline;
}

@media (max-width: 1024px) {
	.sv-page-with-sidebar .sv-page-grid {
		grid-template-columns: 1fr;
	}
	.sv-sidebar {
		position: static;
		max-width: 420px;
		margin: 0 auto;
		width: 100%;
	}
}
@media (max-width: 600px) {
	.sv-page {
		padding: 24px 16px 60px;
	}
	.sv-page-grid {
		gap: 32px;
	}
}

/* ---------- CONTACT FORM (page-ejemplo) ---------- */
.sv-contact-intro p {
	font-size: 15px;
	line-height: 1.7;
	color: #333;
	margin: 0 0 12px;
}
.sv-contact-intro {
	margin-bottom: 28px;
}

.sv-alert {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 16px 18px;
	border-radius: 12px;
	margin-bottom: 24px;
	border: 1px solid;
}
.sv-alert i { font-size: 22px; line-height: 1.2; margin-top: 2px; }
.sv-alert strong { display: block; font-size: 15px; margin-bottom: 2px; }
.sv-alert span { font-size: 14px; line-height: 1.5; }
.sv-alert-ok {
	background: #f1faea;
	border-color: var(--sv-light);
	color: #1a4d1a;
}
.sv-alert-ok i { color: var(--sv-dark); }
.sv-alert-err {
	background: #fdecec;
	border-color: #f5b5b5;
	color: #8a1f1f;
}
.sv-alert-err i { color: #c0392b; }

.sv-contact-form {
	display: flex;
	flex-direction: column;
	gap: 18px;
	background: #fff;
	border: 1px solid var(--sv-card-border);
	border-radius: 18px;
	padding: 32px;
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.04);
	position: relative;
}
.sv-cf-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.sv-cf-label {
	font-size: 13px;
	font-weight: 600;
	color: var(--sv-text);
	letter-spacing: .3px;
}
.sv-cf-label em {
	color: var(--sv-dark);
	font-style: normal;
	font-weight: 700;
}
.sv-contact-form input[type="text"],
.sv-contact-form input[type="tel"],
.sv-contact-form input[type="email"],
.sv-contact-form textarea {
	font-family: inherit;
	font-size: 15px;
	padding: 13px 16px;
	border: 1.5px solid #e3e3e3;
	border-radius: 12px;
	background: #fafafa;
	color: var(--sv-text);
	transition: border-color .2s, background .2s, box-shadow .2s;
	width: 100%;
}
.sv-contact-form input:focus,
.sv-contact-form textarea:focus {
	border-color: var(--sv-dark);
	background: #fff;
	box-shadow: 0 0 0 4px rgba(0, 161, 61, 0.12);
	outline: none;
}
.sv-contact-form textarea {
	resize: vertical;
	min-height: 150px;
	line-height: 1.5;
}
.sv-cf-check {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 14px;
	line-height: 1.5;
	color: #444;
	cursor: pointer;
}
.sv-cf-check input[type="checkbox"] {
	margin-top: 3px;
	width: 18px;
	height: 18px;
	accent-color: var(--sv-dark);
	flex-shrink: 0;
	cursor: pointer;
}
.sv-cf-check a {
	color: var(--sv-dark);
	font-weight: 600;
	text-decoration: none;
}
.sv-cf-check a:hover { text-decoration: underline; }

.sv-cf-actions {
	display: flex;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
	margin-top: 6px;
}
.sv-cf-btn,
.sv-cf-btn:hover,
.sv-cf-btn:focus,
.sv-cf-btn:active,
.sv-cf-btn:visited {
	color: #fff !important;
	border: 0 !important;
	outline: none !important;
	text-decoration: none !important;
}
.sv-cf-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: linear-gradient(135deg, var(--sv-dark) 0%, #00873a 100%);
	border-radius: 999px;
	padding: 14px 30px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1px;
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(0, 161, 61, 0.3);
	transition: transform .15s, box-shadow .2s, filter .2s;
	-webkit-appearance: none;
	appearance: none;
}
.sv-cf-btn:hover {
	filter: brightness(1.05);
	transform: translateY(-1px);
	box-shadow: 0 8px 22px rgba(0, 161, 61, 0.4);
}
.sv-cf-btn:active { transform: translateY(0); }
.sv-cf-btn i { font-size: 12px; color: #fff !important; }
.sv-cf-btn span { color: #fff !important; }
.sv-cf-actions small {
	font-size: 12px;
	color: #888;
}
/* Botones flotantes de contacto rápido (WhatsApp / Glovo) */
.sv-floats {
	position: fixed;
	right: 20px;
	/* Se levanta para dejar aire sobre el selector de idioma. */
	bottom: calc(var(--sv-ls-alto) + 24px);
	z-index: 9999;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.sv-float {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 26px;
	text-decoration: none;
	box-shadow: 0 6px 18px rgba(0,0,0,.25);
	transition: transform .15s ease, box-shadow .2s ease;
}
.sv-float:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0,0,0,.3); color: #fff; }
.sv-float i { color: #fff; }
.sv-float-wa {
	background: #25d366;
	width: 64px;
	height: 64px;
	font-size: 30px;
}
.sv-float-glovo { background: #ffc244; color: #1a1a1a; }
.sv-float-glovo i { color: #1a1a1a; }

/* Selector de idioma de TranslatePress.
   Por defecto se pega al borde inferior y a 10vw del lateral. Aquí se alinea
   con la columna de botones flotantes para que quede justo debajo del de
   WhatsApp. --sv-ls-alto es su altura plegada: sirve para subir esa columna
   sin taparlo. No se le pone altura fija al nav porque crece hacia arriba al
   desplegarse. */
:root { --sv-ls-alto: 55px; }
nav.trp-floating-switcher {
	right: 20px;
	bottom: 0;
	left: auto;
}

@media (max-width: 768px) {
	.sv-floats { right: 14px; bottom: calc(var(--sv-ls-alto) + 20px); }
	.sv-float { width: 50px; height: 50px; font-size: 23px; }
	.sv-float-wa { width: 56px; height: 56px; font-size: 27px; }
	nav.trp-floating-switcher { right: 14px; bottom: 0; }
}

/* Texto justificado (p. ej. página de tipos de contenedor) */
.sv-justify,
.sv-justify p,
.sv-justify li { text-align: justify; }

/* Mensajes de envío y errores del formulario versionado */
.sv-cf-msg {
	border-radius: 12px;
	padding: 14px 18px;
	font-size: 15px;
	line-height: 1.5;
	margin-bottom: 18px;
}
.sv-cf-success { background: #e4f6ea; color: #10331c; border: 1px solid #b6e3c6; }
.sv-cf-error { background: #fddede; color: #b82105; border: 1px solid #f3b6b6; }
.sv-cf-err { display: block; margin-top: 6px; color: #b82105; font-size: 13px; }
.sv-contact-form input.sv-cf-invalid,
.sv-contact-form textarea.sv-cf-invalid { border-color: #b82105; }

@media (max-width: 768px) {
	.sv-contact-form { padding: 22px 18px; }
	.sv-cf-actions {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}
	.sv-cf-btn {
		display: flex !important;
		width: 100% !important;
		justify-content: center !important;
		padding: 16px 24px !important;
	}
	.sv-cf-actions small {
		width: 100%;
		text-align: center;
	}
}

/* ---------- MENSAJES DE RESPUESTA CF7 ---------- */
.wpcf7 .wpcf7-response-output {
	margin: 22px 0 0 !important;
	padding: 16px 20px 16px 52px !important;
	border: 0 !important;
	border-radius: 14px;
	position: relative;
	font-size: 15px;
	line-height: 1.5;
	font-weight: 600;
	letter-spacing: .2px;
	animation: sv-cf-pop .35s cubic-bezier(.22,1,.36,1);
}
.wpcf7 .wpcf7-response-output::before {
	position: absolute;
	left: 20px;
	top: 50%;
	transform: translateY(-50%);
	width: 22px;
	height: 22px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	font-weight: 900;
	color: #fff;
}
/* Éxito */
.wpcf7 form.sent .wpcf7-response-output {
	background: linear-gradient(135deg, rgba(0,161,61,.10), rgba(0,135,58,.14));
	color: #0a7a34;
	box-shadow: 0 8px 24px rgba(0,161,61,.16), inset 0 0 0 1px rgba(0,161,61,.28);
}
.wpcf7 form.sent .wpcf7-response-output::before {
	content: "\2713";
	background: linear-gradient(135deg, var(--sv-dark, #00a13d) 0%, #00873a 100%);
}
/* Error / validación */
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
	background: linear-gradient(135deg, rgba(220,38,38,.08), rgba(185,28,28,.12));
	color: #b91c1c;
	box-shadow: 0 8px 24px rgba(220,38,38,.14), inset 0 0 0 1px rgba(220,38,38,.26);
}
.wpcf7 form.invalid .wpcf7-response-output::before,
.wpcf7 form.failed .wpcf7-response-output::before,
.wpcf7 form.unaccepted .wpcf7-response-output::before,
.wpcf7 form.spam .wpcf7-response-output::before,
.wpcf7 form.aborted .wpcf7-response-output::before {
	content: "\0021";
	background: linear-gradient(135deg, #ef4444 0%, #b91c1c 100%);
}
@keyframes sv-cf-pop {
	from { opacity: 0; transform: translateY(8px) scale(.98); }
	to   { opacity: 1; transform: translateY(0) scale(1); }
}
@media (max-width: 768px) {
	.wpcf7 .wpcf7-response-output {
		font-size: 14px;
		padding: 14px 16px 14px 46px !important;
	}
	.wpcf7 .wpcf7-response-output::before { left: 16px; width: 20px; height: 20px; }
}

/* ---------- POLÍTICA DE PRIVACIDAD ---------- */
.sv-pp-h2 {
	font-size: 16px;
	font-weight: 700;
	color: var(--sv-text);
	margin: 30px 0 16px;
	text-transform: uppercase;
	letter-spacing: .5px;
}
.sv-pp-h3 {
	font-size: 15px;
	font-weight: 700;
	color: var(--sv-text);
	margin: 26px 0 12px;
	text-transform: uppercase;
	letter-spacing: .3px;
}
.sv-pp-h4 {
	font-size: 14.5px;
	font-weight: 700;
	color: var(--sv-dark);
	margin: 18px 0 8px;
}
.sv-pp-list {
	margin: 0 0 16px 18px;
	padding: 0;
}
.sv-pp-list li {
	font-size: 15px;
	line-height: 1.7;
	color: #333;
	margin-bottom: 6px;
}
.sv-pp-list a, .sv-page-content a {
	color: var(--sv-dark);
	text-decoration: none;
	font-weight: 600;
}
.sv-pp-list a:hover, .sv-page-content a:hover {
	text-decoration: underline;
}

.sv-pp-table {
	border: 1px solid var(--sv-card-border);
	border-radius: 6px;
	overflow: hidden;
	margin: 0 0 30px;
	background: #fff;
}
.sv-pp-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-bottom: 1px solid var(--sv-card-border);
}
.sv-pp-row:last-child { border-bottom: 0; }
.sv-pp-cell {
	padding: 18px 20px;
	font-size: 14px;
	line-height: 1.55;
	color: var(--sv-text);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	border-right: 1px solid var(--sv-card-border);
}
.sv-pp-cell:last-child { border-right: 0; }
.sv-pp-label {
	font-weight: 700;
	color: var(--sv-text);
}
.sv-pp-row-head .sv-pp-cell {
	background: #fafafa;
}

/* ---------- EN CONSTRUCCIÓN ---------- */
.sv-wip-main { padding: 0 !important; }
.sv-wip {
	position: relative;
	min-height: calc(100vh - 200px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 80px 24px;
	overflow: hidden;
	background: linear-gradient(180deg, #f9fdf5 0%, #ffffff 100%);
}
.sv-wip-bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
	overflow: hidden;
}
.sv-wip-blob {
	position: absolute;
	border-radius: 50%;
	filter: blur(110px);
	opacity: .35;
}
.sv-wip-blob-1 {
	width: 460px; height: 460px;
	background: #d1e563;
	top: -120px; left: -120px;
	animation: sv-wip-float 14s ease-in-out infinite;
}
.sv-wip-blob-2 {
	width: 520px; height: 520px;
	background: #00a13d;
	bottom: -180px; right: -160px;
	opacity: .22;
	animation: sv-wip-float 18s ease-in-out infinite reverse;
}
@keyframes sv-wip-float {
	0%, 100% { transform: translate(0, 0); }
	50%      { transform: translate(40px, 30px); }
}
.sv-wip-inner {
	position: relative;
	z-index: 1;
	max-width: 640px;
	text-align: center;
	animation: sv-wip-in .8s ease-out both;
}
@keyframes sv-wip-in {
	from { opacity: 0; transform: translateY(20px); }
	to   { opacity: 1; transform: translateY(0); }
}
.sv-wip-art {
	width: 180px;
	height: 180px;
	margin: 0 auto 24px;
}
.sv-wip-art svg { width: 100%; height: 100%; display: block; }
.sv-wip-gear {
	transform-origin: 100px 100px;
	animation: sv-wip-rotate 10s linear infinite;
}
@keyframes sv-wip-rotate {
	from { transform: rotate(0); }
	to   { transform: rotate(360deg); }
}
.sv-wip-ring {
	transform-origin: 100px 100px;
	animation: sv-wip-rotate-rev 24s linear infinite;
}
@keyframes sv-wip-rotate-rev {
	from { transform: rotate(0); }
	to   { transform: rotate(-360deg); }
}
.sv-wip-spark circle {
	animation: sv-wip-twinkle 3s ease-in-out infinite;
}
.sv-wip-spark circle:nth-child(2) { animation-delay: .6s; }
.sv-wip-spark circle:nth-child(3) { animation-delay: 1.2s; }
.sv-wip-spark circle:nth-child(4) { animation-delay: 1.8s; }
@keyframes sv-wip-twinkle {
	0%, 100% { opacity: 1; transform: scale(1); }
	50%      { opacity: .3; transform: scale(.6); }
}

.sv-wip-tag {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #fff;
	border: 1.5px solid var(--sv-light);
	color: var(--sv-dark);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	padding: 8px 16px;
	border-radius: 999px;
	margin-bottom: 18px;
	box-shadow: 0 4px 14px rgba(0, 161, 61, 0.08);
}
.sv-wip-title {
	font-size: 38px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--sv-text);
	margin: 0 0 16px;
}
.sv-wip-title span {
	color: var(--sv-dark);
	font-weight: 600;
	font-size: 28px;
}
.sv-wip-text {
	font-size: 16px;
	line-height: 1.65;
	color: #555;
	max-width: 520px;
	margin: 0 auto 30px;
}
.sv-wip-progress {
	width: 240px;
	max-width: 100%;
	height: 6px;
	border-radius: 999px;
	background: #ececec;
	overflow: hidden;
	margin: 0 auto 32px;
}
.sv-wip-progress-bar {
	display: block;
	height: 100%;
	width: 40%;
	background: linear-gradient(90deg, var(--sv-light), var(--sv-dark));
	border-radius: inherit;
	animation: sv-wip-progress 2.4s ease-in-out infinite;
}
@keyframes sv-wip-progress {
	0%   { transform: translateX(-110%); width: 40%; }
	50%  { width: 60%; }
	100% { transform: translateX(260%); width: 40%; }
}
.sv-wip-actions {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px;
}
.sv-wip-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 26px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .5px;
	text-decoration: none;
	transition: transform .15s, box-shadow .2s, background .2s, color .2s;
	border: 1.5px solid transparent;
}
.sv-wip-btn-primary {
	background: linear-gradient(135deg, var(--sv-dark) 0%, #00873a 100%);
	color: #fff !important;
	box-shadow: 0 6px 18px rgba(0, 161, 61, 0.3);
}
.sv-wip-btn-primary:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 22px rgba(0, 161, 61, 0.4);
	filter: brightness(1.05);
}
.sv-wip-btn-ghost {
	background: #fff;
	color: var(--sv-dark) !important;
	border-color: var(--sv-light);
}
.sv-wip-btn-ghost:hover {
	background: var(--sv-light);
	color: var(--sv-text) !important;
	transform: translateY(-1px);
}

@media (max-width: 600px) {
	.sv-wip { padding: 50px 18px; min-height: 70vh; }
	.sv-wip-art { width: 140px; height: 140px; }
	.sv-wip-title { font-size: 28px; }
	.sv-wip-title span { font-size: 22px; }
	.sv-wip-text { font-size: 15px; }
	.sv-wip-actions { width: 100%; flex-direction: column; }
	.sv-wip-btn { width: 100%; justify-content: center; }
}

@media (max-width: 600px) {
	.sv-pp-row { grid-template-columns: 1fr; }
	.sv-pp-cell {
		border-right: 0;
		border-bottom: 1px solid #f0f0f0;
		text-align: left;
		justify-content: flex-start;
	}
	.sv-pp-row .sv-pp-cell:last-child { border-bottom: 0; }
}

/* ---------- ORGÁNICA: qué depositar / qué no ---------- */
.sv-org-lists {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 24px;
	align-items: start;
}
.sv-org-panel {
	border: 1px solid var(--sv-card-border);
	border-radius: 20px;
	padding: 30px 32px;
	background: #fff;
}
.sv-org-panel h2 {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 22px;
	margin: 0 0 22px;
}
.sv-org-yes { border-color: rgba(0,161,61,.35); background: #f5fbec; }
.sv-org-yes h2 { color: var(--sv-dark); }
.sv-org-no { border-color: #f0c9c9; background: #fdf3f3; }
.sv-org-no h2 { color: #b82105; }
.sv-org-chips {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
.sv-org-chips li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #fff;
	border: 1px solid var(--sv-card-border);
	border-radius: 999px;
	padding: 10px 18px;
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .4px;
	color: var(--sv-text);
}
.sv-org-yes .sv-org-chips li i { color: var(--sv-dark); }
.sv-org-no .sv-org-chips li i { color: #b82105; }

@media (max-width: 768px) {
	.sv-org-lists { grid-template-columns: 1fr; }
}

.sv-dark .sv-org-yes { background: #14231a; border-color: #2c4a30; }
.sv-dark .sv-org-no { background: #241615; border-color: #4a2c2c; }
.sv-dark .sv-org-chips li { background: var(--sv-card-bg); border-color: var(--sv-card-border); color: var(--sv-text); }
.sv-dark .sv-org-no h2 { color: #ff7a5c; }
.sv-dark .sv-org-no .sv-org-chips li i { color: #ff7a5c; }

/* ---------- GALERÍA MIXTA (masonry) ---------- */
.sv-gal {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-rows: 190px;
	grid-auto-flow: dense;
	gap: 14px;
}
.sv-gal figure {
	position: relative;
	margin: 0;
	border-radius: 16px;
	overflow: hidden;
	line-height: 0;
	box-shadow: 0 14px 28px -6px rgba(0,0,0,.28);
}
.sv-gal img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .4s ease;
}
.sv-gal figure:hover img { transform: scale(1.05); }
.sv-gal figcaption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 30px 18px 16px;
	color: #fff;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: .5px;
	text-transform: uppercase;
	line-height: 1.2;
	text-shadow: 0 1px 3px rgba(0,0,0,.5);
	background: linear-gradient(transparent, rgba(0,0,0,.78));
}
.sv-gal-lg { grid-column: span 2; grid-row: span 2; }
.sv-gal-wide { grid-column: span 2; }
.sv-gal-tall { grid-row: span 2; }

/* Galería "no se puede": 3 fotos en fila */
.sv-gal-no {
	grid-template-columns: repeat(3, 1fr);
	grid-auto-rows: 240px;
}

/* Eyebrow sí / no */
.sv-eyebrow-yes { background: var(--sv-light); color: #10331c; }
.sv-eyebrow-no { background: #fddede; color: #b82105; }
.sv-eyebrow-planning { background: #fdecc8; color: #8a5a00; }
.sv-eyebrow i { margin-right: 4px; }

@media (max-width: 768px) {
	.sv-gal { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 150px; }
	.sv-gal-lg { grid-column: span 2; grid-row: span 2; }
	.sv-gal-wide { grid-column: span 2; grid-row: span 1; }
	.sv-gal-tall { grid-column: span 1; grid-row: span 2; }
	.sv-gal-no { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 140px; }
}

/* ---------- HOME: servicios destacados + compromiso ---------- */
/* Secciones nuevas de la home al mismo ancho que el resto (1440). */
.home .sv-rru-wrap { max-width: 1440px; }

.sv-home-svc {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.sv-home-svc-card {
	position: relative;
	display: block;
	border-radius: 20px;
	overflow: hidden;
	text-decoration: none;
	box-shadow: 0 14px 28px -8px rgba(0,0,0,.28);
}
.sv-home-svc-card img {
	width: 100%;
	height: 340px;
	object-fit: cover;
	display: block;
	transition: transform .45s ease;
}
.sv-home-svc-card:hover img { transform: scale(1.05); }
.sv-home-svc-body {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 40px 26px 22px;
	background: linear-gradient(transparent, rgba(0,0,0,.78));
	color: #fff;
}
.sv-home-svc-body h3 { color: #fff; margin: 0 0 8px; font-size: 23px; line-height: 1.2; }
.sv-home-svc-more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 700;
	color: #fff;
}
.sv-home-svc-more i { transition: transform .2s; }
.sv-home-svc-card:hover .sv-home-svc-more i { transform: translateX(4px); }

.sv-home-compromiso-img {
	margin: 0;
	border-radius: 20px;
	overflow: hidden;
	line-height: 0;
	box-shadow: 0 14px 28px -8px rgba(0,0,0,.22);
}
.sv-home-compromiso-img { align-self: center; }
.sv-home-compromiso-img img { width: 100%; height: 540px; object-fit: cover; object-position: center 30%; }

@media (max-width: 900px) {
	.sv-home-svc { grid-template-columns: 1fr; }
	.sv-home-compromiso-img img { height: 280px; }
}

/* Hero + banda de atención de la home (encaje con la estética del sitio) */
.home .sv-hero img {
	height: 700px;
	object-fit: cover;
	object-position: center 40%;
}
.home .sv-band {
	background: linear-gradient(135deg, var(--sv-dark) 0%, #007a2d 100%);
	color: #fff;
	padding: 46px 24px 52px;
}
.home .sv-band h2 { color: #fff; font-size: 30px; font-weight: 700; margin: 0 0 20px; }
.home .sv-band p { color: rgba(255,255,255,.9); font-size: 15px; margin: 0 0 14px; }
.home .sv-phone {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: var(--global-body-font-family, inherit) !important;
	background: #fff;
	color: var(--sv-dark);
	padding: 14px 32px;
	border-radius: 999px;
	font-size: 30px;
	font-weight: 700;
	letter-spacing: 2px;
	box-shadow: 0 10px 26px -8px rgba(0,0,0,.35);
}
.home .sv-phone::before {
	content: "\f095";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: .62em;
	letter-spacing: 0;
}
@media (max-width: 640px) {
	.home .sv-hero img { height: 260px; }
	.home .sv-band h2 { font-size: 22px; }
	.home .sv-phone { font-size: 22px; padding: 12px 24px; }
}

/* Móvil: los banners no ocupan el 100%, dejan margen lateral */
@media (max-width: 767px) {
	.sv-lv-hero,
	.sv-rru .sv-contact-hero,
	.home .sv-hero,
	.home .sv-band {
		margin-left: 16px;
		margin-right: 16px;
	}
	/* Overlay más oscuro para que el texto se lea bien sobre la imagen */
	.sv-lv-hero-overlay {
		background: linear-gradient(180deg, rgba(0,45,18,.45) 0%, rgba(0,55,22,.85) 100%);
	}
}

/* Texto resaltado (acentos verdes en el compromiso) */
.sv-hl { color: var(--sv-dark); font-weight: 700; }
.sv-hl-bg {
	background: var(--sv-light);
	color: #10331c;
	font-weight: 700;
	padding: 1px 7px;
	border-radius: 6px;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
}
.sv-dark .sv-hl { color: var(--sv-light); }
.sv-dark .sv-hl-bg { background: #1f3a24; color: var(--sv-light); }

/* Rediseño de los 3 bloques "triple" de la home (imagen arriba, cuerpo blanco) */
.home .sv-triple { align-items: stretch; }
.home .sv-triple-col {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--sv-card-border);
	border-radius: 18px;
	overflow: hidden;
	padding: 0 0 26px;
	box-shadow: 0 12px 28px -12px rgba(0,0,0,.18);
	transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.home .sv-triple-col::before { content: none !important; }
.home .sv-triple-col:hover {
	transform: translateY(-6px);
	border-color: var(--sv-dark);
	box-shadow: 0 20px 38px -14px rgba(0,161,61,.32);
}
.home .sv-triple-col img {
	order: -1;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	margin: 0 0 22px;
	transition: transform .5s ease;
}
.home .sv-triple-col:hover img { transform: scale(1.05); }
.home .sv-triple-col h3 {
	order: 0;
	text-align: left;
	padding: 0 26px;
	margin: 0 0 12px;
	font-size: 22px;
	font-weight: 700;
	color: var(--sv-dark);
	word-spacing: normal;
}
.home .sv-triple-col p {
	text-align: left;
	padding: 0 26px;
	margin: 0 0 20px;
	font-weight: 400;
	font-size: 15px;
	line-height: 1.65;
	color: #444;
}
.home .sv-triple-col .more {
	order: 3;
	margin-top: auto;
	text-align: left;
	padding: 0 26px;
	color: var(--sv-dark);
	font-weight: 700;
	font-size: 15px;
	text-decoration: none;
}
.home .sv-triple-col .more::after { text-align: left; padding-left: 26px; }

/* Dark mode */
.sv-dark .home .sv-triple-col {
	background: var(--sv-card-bg);
	border-color: var(--sv-card-border);
}
.sv-dark .home .sv-triple-col h3 { color: var(--sv-light); }
.sv-dark .home .sv-triple-col p { color: #bcc2b9; }
.sv-dark .home .sv-triple-col .more { color: var(--sv-light); }

/* ---------- BOTÓN MODO OSCURO ---------- */
/* Oculto por ahora (no eliminado). Para reactivarlo, quita esta regla. */
.sv-dark-toggle { display: none !important; }

.sv-dark-toggle {
	background: transparent;
	border: 0;
	outline: 0;
	box-shadow: none;
	cursor: pointer;
	color: #222;
	font-size: 25px;
	line-height: 1;
	padding: 0;
	display: inline-flex;
	align-items: center;
	-webkit-appearance: none;
	appearance: none;
	transition: color .2s, transform .2s;
}
.sv-dark-toggle:hover { color: var(--sv-dark); transform: rotate(-15deg); }
.sv-dark-toggle i { font-size: inherit !important; }
@media (max-width: 1024px) {
	/* En móvil el toggle del header se oculta; se usa el del drawer. */
	.sv-icons-right .sv-dark-toggle { display: none; }
}
.sv-dark-toggle-mobile { font-size: 22px; color: #222; }

/* ---------- TEMA OSCURO ---------- */
html.sv-dark {
	--sv-text: #e8eae6;
	--sv-muted: #a7afa5;
	--sv-card-bg: #182019;
	--sv-card-border: #2c352d;
}
html.sv-dark body { background: #0e130f; color: var(--sv-text); }
.sv-dark .content-bg,
.sv-dark body.content-style-unboxed .site { background: #0e130f; }

/* Header / nav */
.sv-dark .sv-header { background: #111713 !important; }
.sv-dark .sv-header.is-stuck { box-shadow: 0 4px 16px rgba(0,0,0,.5); }
.sv-dark .sv-nav a,
.sv-dark .sv-social-left a,
.sv-dark .sv-icons-right a,
.sv-dark .sv-burger,
.sv-dark .sv-dark-toggle { color: #e8eae6; }
.sv-dark .sv-nav a:hover,
.sv-dark .sv-social-left a:hover,
.sv-dark .sv-icons-right a:hover,
.sv-dark .sv-dark-toggle:hover { color: var(--sv-light); }

/* Drawer móvil / buscador */
.sv-dark .sv-mobile-panel { background: #141a16; }
.sv-dark .sv-mobile-menu a,
.sv-dark .sv-mobile-actions a,
.sv-dark .sv-mobile-social a,
.sv-dark .sv-mobile-close,
.sv-dark .sv-dark-toggle-mobile { color: #e8eae6; }
.sv-dark .sv-search-form { background: #182019; }
.sv-dark .sv-search-form input[type="search"] { color: #e8eae6; }
.sv-dark .sv-search-form .sv-search-close { color: #cbd0c8; }

/* Footer */
.sv-dark .sv-footer { background: #111713; }
.sv-dark .sv-footer-nav a,
.sv-dark .sv-footer-legal a,
.sv-dark .sv-footer-social a,
.sv-dark .sv-footer-copy,
.sv-dark .sv-logo-text strong { color: #cfd3cd; }
.sv-dark .sv-footer-legal li + li::before { color: #667; }

/* Tipografía de contenido */
.sv-dark .sv-rru-lead,
.sv-dark .sv-rru-head p,
.sv-dark .sv-rru-card p,
.sv-dark .sv-rru-step p,
.sv-dark .sv-rru-frac p,
.sv-dark .sv-rru-panel p,
.sv-dark .sv-lv-strip-body p,
.sv-dark .sv-lv-ecard p,
.sv-dark .sv-lv-elist li,
.sv-dark .sv-page-content p,
.sv-dark .sv-page-content ul li { color: #bcc2b9; }
.sv-dark .sv-page-content h2,
.sv-dark .sv-page-title { color: var(--sv-text); }

/* Superficies (tarjetas / paneles) */
.sv-dark .sv-rru-card,
.sv-dark .sv-rru-step,
.sv-dark .sv-lv-strip,
.sv-dark .sv-rru-panel,
.sv-dark .sv-contact-card,
.sv-dark .sv-contact-info,
.sv-dark .sv-result-link,
.sv-dark .sv-faq details,
.sv-dark .sv-contact-form,
.sv-dark .sv-pp-table,
.sv-dark .sv-sidebar-list a {
	background: var(--sv-card-bg);
	border-color: var(--sv-card-border);
}
.sv-dark .sv-lv-strip:nth-child(even) { background: #141b15; }
.sv-dark .sv-faq details[open] { background: #1d271e; }
.sv-dark .sv-rru-note { background: #16241a; border-color: #2c4a30; }
.sv-dark .sv-rru-note p { color: #c4cabb; }
.sv-dark .sv-lv-esp-col .sv-lv-ecard:not(:last-child) { border-color: #2c352d; }

/* Formularios */
.sv-dark .sv-form input,
.sv-dark .sv-form select,
.sv-dark .sv-form textarea,
.sv-dark .sv-contact-form input,
.sv-dark .sv-contact-form textarea,
.sv-dark .sv-inline-search input {
	background: #10160f;
	border-color: #2c352d;
	color: var(--sv-text);
}

/* Elementos con verde claro se mantienen legibles */
.sv-dark .sv-eyebrow { color: #10331c; }

/* ---------- RECOGIDA DE RESIDUOS URBANOS ---------- */
.sv-rru { padding-bottom: 40px; }
.sv-rru-hero-btn { margin-top: 26px; }

.sv-rru-wrap {
	max-width: 1100px;
	margin: 64px auto 0;
	padding: 0 24px;
}
.sv-rru-lead {
	font-size: 19px;
	line-height: 1.7;
	color: #333;
	text-align: center;
	max-width: 860px;
	margin: 0 auto;
}
.sv-rru-lead sub { font-size: .8em; }

.sv-rru-head { text-align: center; margin-bottom: 36px; }
.sv-rru-head h2 {
	font-size: 32px;
	font-weight: 700;
	color: var(--sv-text);
	margin: 16px 0 12px;
	line-height: 1.2;
}
.sv-rru-head p {
	font-size: 16px;
	line-height: 1.6;
	color: #555;
	max-width: 640px;
	margin: 0 auto;
}

/* Fracciones */
.sv-rru-fractions {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
.sv-rru-frac {
	background: #fff;
	border: 1px solid var(--sv-card-border);
	border-radius: 16px;
	padding: 28px 24px;
	text-align: center;
	transition: transform .25s ease, box-shadow .25s ease;
}
.sv-rru-frac:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 30px rgba(0,0,0,.08);
}
.sv-rru-frac-ico {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	margin: 0 auto 16px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--frac, var(--sv-dark)) 14%, #fff);
	color: var(--frac, var(--sv-dark));
	font-size: 26px;
}
.sv-rru-frac h3 { font-size: 19px; margin: 0 0 8px; color: var(--sv-text); }
.sv-rru-frac p { font-size: 14px; line-height: 1.6; color: #555; margin: 0; }
.sv-rru-frac-link { text-decoration: none; color: inherit; display: block; }
.sv-rru-frac-more {
	display: inline-block;
	margin-top: 14px;
	font-size: 13px;
	font-weight: 700;
	color: var(--frac, var(--sv-dark));
}
.sv-rru-frac-more i { transition: transform .2s; }
.sv-rru-frac-link:hover .sv-rru-frac-more i { transform: translateX(4px); }
.sv-dark .sv-rru-frac p { color: #b7bdb4; }

/* Split 2 columnas */
.sv-rru-split {
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 40px;
	align-items: center;
}
.sv-rru-split-text .sv-eyebrow { margin-bottom: 14px; }
.sv-lv-hero-inner .sv-eyebrow + .sv-eyebrow { margin-left: 8px; }
.sv-rru-panel-badge { display: inline-block; margin-bottom: 12px; }
.sv-rru-split-text h2 { font-size: 26px; margin: 0 0 16px; color: var(--sv-text); }
.sv-rru-split-text p { font-size: 16px; line-height: 1.7; color: #333; margin: 0 0 14px; }
.sv-rru-list { margin: 0; padding: 0 0 0 18px; }
.sv-rru-list li { font-size: 15px; line-height: 1.7; color: #333; margin-bottom: 12px; }
.sv-rru-list li strong { color: var(--sv-text); }

.sv-rru-stat {
	background: linear-gradient(135deg, var(--sv-dark) 0%, #007a2d 100%);
	color: #fff;
	border-radius: 20px;
	padding: 40px 32px;
	text-align: center;
}
.sv-rru-stat-num { display: block; font-size: 68px; font-weight: 700; line-height: 1; }
.sv-rru-stat-label { display: block; font-size: 15px; line-height: 1.5; margin-top: 12px; opacity: .95; }

/* Tarjetas (pilas/aceite/raee) */
.sv-rru-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
.sv-rru-card {
	background: #fff;
	border: 1px solid var(--sv-card-border);
	border-radius: 16px;
	padding: 30px 26px;
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.sv-rru-card:hover {
	transform: translateY(-4px);
	border-color: var(--sv-dark);
	box-shadow: 0 12px 30px rgba(0,161,61,.1);
}
.sv-rru-card-ico {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: var(--sv-light);
	color: var(--sv-dark);
	font-size: 24px;
	margin-bottom: 18px;
}
.sv-rru-card h3 { font-size: 20px; margin: 0 0 10px; color: var(--sv-text); }
.sv-rru-card p { font-size: 14px; line-height: 1.65; color: #555; margin: 0; }

.sv-rru-map {
	margin-top: 24px;
	border-radius: 18px;
	overflow: hidden;
	border: 1px solid var(--sv-card-border);
	line-height: 0;
}
.sv-rru-map iframe { width: 100%; height: 360px; border: 0; }

/* Nota / adhesión */
.sv-rru-note {
	background: #f3fbe6;
	border: 1px solid var(--sv-light);
	border-radius: 20px;
	padding: 32px 30px;
}
.sv-rru-note h3 { margin: 0 0 12px; font-size: 20px; color: var(--sv-dark); }
.sv-rru-note p { font-size: 15px; line-height: 1.65; color: #333; margin: 0 0 20px; }
.sv-rru-note-btn { margin-bottom: 14px; }
.sv-rru-note-btn,
.sv-rru-note-btn:hover,
.sv-rru-note-btn span,
.sv-rru-note-btn i { color: #fff; }
.sv-rru-note-link {
	display: inline-block;
	font-size: 14px;
	font-weight: 700;
	color: var(--sv-dark);
	text-decoration: none;
}
.sv-rru-note-link:hover { text-decoration: underline; }

/* Duo panels */
.sv-rru-duo {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}
.sv-rru-panel {
	background: #fff;
	border: 1px solid var(--sv-card-border);
	border-radius: 16px;
	padding: 32px 28px;
}
.sv-rru-panel { display: flex; flex-direction: column; }
.sv-rru-panel h3 { font-size: 20px; margin: 0 0 12px; color: var(--sv-text); }
.sv-rru-panel p { font-size: 15px; line-height: 1.7; color: #444; margin: 0; }
.sv-rru-panel .sv-rru-note-link { margin-top: 16px; }
.sv-rru-panel .sv-btn { margin-top: 20px; align-self: flex-start; }

.sv-rru-cta { text-align: center; margin-top: 32px; }

/* Espacios públicos: imagen + columna de tarjetas con contorno */
.sv-lv-esp {
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.sv-lv-esp-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	align-items: stretch;
}
.sv-lv-esp-img {
	margin: 0;
	border-radius: 20px;
	overflow: hidden;
	line-height: 0;
	box-shadow: 0 8px 24px rgba(0,0,0,.06);
}
.sv-lv-esp-img img {
	width: 100%;
	height: 100%;
	min-height: 300px;
	object-fit: cover;
	display: block;
}
.sv-lv-esp-col {
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.sv-lv-ecard {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 4px 0;
}
.sv-lv-esp-col .sv-lv-ecard:not(:last-child) {
	border-bottom: 1px solid #e6efdc;
	padding-bottom: 22px;
	margin-bottom: 2px;
}
.sv-lv-ecard h3 {
	font-size: 18px;
	line-height: 1.3;
	color: var(--sv-dark);
	margin: 0 0 8px;
}
.sv-lv-ecard p {
	font-size: 14.5px;
	line-height: 1.65;
	color: #333;
	margin: 0;
}
.sv-lv-elist { margin: 6px 0 0; padding-left: 18px; }
.sv-lv-elist li {
	font-size: 14.5px;
	line-height: 1.6;
	color: #333;
	margin-bottom: 8px;
}
.sv-lv-elist li:last-child { margin-bottom: 0; }

/* Tiras de contenido (actuaciones intensivas) */
.sv-lv-strips {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.sv-lv-strip {
	display: flex;
	align-items: center;
	gap: 26px;
	background: #fff;
	border: 1px solid var(--sv-card-border);
	border-radius: 14px;
	padding: 22px 30px;
	transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.sv-lv-strip:nth-child(even) { background: #f7faf1; }
.sv-lv-strip:hover {
	transform: translateX(4px);
	box-shadow: 0 10px 26px rgba(0,161,61,.1);
}
.sv-lv-strip-num {
	flex: 0 0 auto;
	width: 72px;
	text-align: center;
	font-size: 48px;
	font-weight: 700;
	line-height: 1;
	color: var(--sv-dark);
	background: linear-gradient(180deg, var(--sv-dark), var(--sv-light));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.sv-lv-strip-body { min-width: 0; }
.sv-lv-strip-body h3 {
	font-size: 20px;
	color: var(--sv-text);
	margin: 0 0 6px;
	line-height: 1.25;
}
.sv-lv-strip-body p {
	font-size: 15px;
	line-height: 1.65;
	color: #555;
	margin: 0;
}
@media (max-width: 560px) {
	.sv-lv-strip {
		gap: 14px;
		padding: 18px 20px;
		align-items: flex-start;
	}
	.sv-lv-strip-num { width: 48px; font-size: 34px; }
	.sv-lv-strip-body h3 { font-size: 17px; }
}

/* Hero con imagen (limpieza viaria) */
/* Todos los banners de estas páginas comparten ancho (1440, centrado). */
.sv-rru .sv-contact-hero {
	max-width: 1440px;
	margin-left: auto;
	margin-right: auto;
}
.sv-lv-hero {
	position: relative;
	max-width: 1440px;
	margin: 40px auto 0;
	border-radius: 24px;
	overflow: hidden;
	min-height: 420px;
	display: flex;
	align-items: flex-end;
}
.sv-lv-hero-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.sv-lv-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0,58,22,.85) 0%, rgba(0,90,38,.55) 45%, rgba(0,90,38,.05) 100%);
}
.sv-lv-hero-inner {
	position: relative;
	z-index: 2;
	color: #fff;
	max-width: 640px;
	padding: 48px 56px;
}
.sv-lv-hero-inner h1 {
	color: #fff;
	font-size: 46px;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -.5px;
	margin: 12px 0 16px;
}
.sv-lv-hero-inner p { font-size: 18px; line-height: 1.55; opacity: .95; margin: 0; }

/* Tarjetas numeradas (proceso) */
.sv-rru-steps {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
.sv-rru-step {
	position: relative;
	background: #fff;
	border: 1px solid var(--sv-card-border);
	border-radius: 16px;
	padding: 28px 26px;
	overflow: hidden;
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.sv-rru-step:hover {
	transform: translateY(-4px);
	border-color: var(--sv-dark);
	box-shadow: 0 12px 30px rgba(0,161,61,.1);
}
.sv-rru-step-num {
	display: inline-block;
	font-size: 34px;
	font-weight: 700;
	line-height: 1;
	color: var(--sv-dark);
	background: var(--sv-light);
	border-radius: 12px;
	padding: 8px 14px;
	margin-bottom: 16px;
}
.sv-rru-step h3 { font-size: 19px; margin: 0 0 10px; color: var(--sv-text); }
.sv-rru-step p { font-size: 14px; line-height: 1.65; color: #555; margin: 0; }

@media (max-width: 900px) {
	.sv-rru-fractions,
	.sv-rru-cards,
	.sv-rru-steps { grid-template-columns: repeat(2, 1fr); }
	.sv-rru-split,
	.sv-rru-duo { grid-template-columns: 1fr; }
	.sv-lv-esp-row { grid-template-columns: 1fr; }
	.sv-lv-esp-row .sv-lv-esp-img { order: -1; }
	.sv-lv-esp-img img { min-height: 240px; }
	.sv-lv-hero-inner { padding: 40px 32px; }
	.sv-lv-hero-inner h1 { font-size: 34px; }
}
@media (max-width: 560px) {
	.sv-rru-fractions,
	.sv-rru-cards,
	.sv-rru-steps { grid-template-columns: 1fr; }
	.sv-rru-wrap { margin-top: 48px; }
	.sv-rru-head h2 { font-size: 26px; }
	.sv-rru-stat-num { font-size: 54px; }
	.sv-lv-hero { min-height: 340px; }
}

/* Honeypot anti-spam: oculto para personas, visible para bots */
.sv-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	opacity: 0;
}

/* Tarjeta home: icono FontAwesome (dumpster de Tipos de contenedores).
   Sigue el mismo patrón que los svg/img: blanco por defecto, verde al hover. */
.sv-card-icon i {
	font-size: 58px;
	line-height: 1;
	color: #fff;
	transition: color .45s ease .05s;
}
.sv-card:hover .sv-card-icon i { color: var(--sv-dark) !important; }

/* ---------- MENÚ DESPLEGABLE (Atención Ciudadana) ---------- */
/* Escritorio: apertura por hover */
.sv-nav .menu-item-has-children { position: relative; }
.sv-nav .menu-item-has-children > a::after {
	content: "\f078"; /* fa chevron-down */
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 9px;
	margin-left: 7px;
	vertical-align: middle;
	transition: transform .2s;
	display: inline-block;
}
.sv-nav .menu-item-has-children:hover > a::after { transform: rotate(180deg); }
.sv-nav .sub-menu {
	display: block;      /* anula el flex heredado de .sv-nav ul */
	gap: 0;
	list-style: none;
	margin: 0;
	padding: 12px 0;
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%) translateY(8px);
	min-width: 250px;
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 14px 40px rgba(0,0,0,.14);
	opacity: 0;
	visibility: hidden;
	transition: opacity .22s ease, transform .22s ease;
	z-index: 10000;
}
/* puente invisible para que el hover no se corte en el hueco */
.sv-nav .menu-item-has-children::before {
	content: "";
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	height: 18px;
}
.sv-nav .menu-item-has-children:hover > .sub-menu,
.sv-nav .menu-item-has-children:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}
.sv-nav .sub-menu li { display: block; width: 100%; }
.sv-nav .sub-menu a {
	display: block;
	width: 100%;
	padding: 10px 22px;
	font-size: 12px;
	letter-spacing: .3px;
	text-transform: none;
	white-space: nowrap;
	box-sizing: border-box;
}
.sv-nav .sub-menu a:hover { background: rgba(0,0,0,.04); }

/* Móvil: acordeón */
.sv-mobile-menu .menu-item-has-children > a::after {
	content: "\f078";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 11px;
	float: right;
	transition: transform .2s;
}
.sv-mobile-menu .menu-item-has-children.is-open > a::after { transform: rotate(180deg); }
.sv-mobile-menu .sub-menu {
	list-style: none;
	margin: 6px 0 4px;
	padding: 0 0 0 14px;
	border-left: 2px solid rgba(0,0,0,.08);
	max-height: 0;
	overflow: hidden;
	transition: max-height .3s ease;
}
.sv-mobile-menu .menu-item-has-children.is-open > .sub-menu { max-height: 500px; }
.sv-mobile-menu .sub-menu a { font-size: 14px; padding: 8px 0; text-transform: none; }

/* Modo oscuro */
.sv-dark .sv-nav .sub-menu { background: #182019; box-shadow: 0 14px 40px rgba(0,0,0,.5); }
.sv-dark .sv-nav .sub-menu a:hover { background: rgba(255,255,255,.06); }
.sv-dark .sv-mobile-menu .sub-menu { border-left-color: rgba(255,255,255,.12); }

/* Ecoparque: dos calendarios por fila en escritorio. */
.sv-page .sv-ecop-gallery {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

@media (max-width: 480px) {
	.sv-page .sv-ecop-gallery { grid-template-columns: 1fr; gap: 12px; }
}
