/*
Theme Name: Rosario
Description: Tema hijo de Hello Elementor para Rosario - Agricultura Regenerativa.
Author: Estudio
Template: hello-elementor
Version: 1.7.6
Text Domain: rosario
*/

/* ==========================================================================
   Hello Elementor limita ".site-main" a un ancho maximo (800-1140px) para
   el contenido clasico. Nuestras paginas manejan su propio ancho seccion
   por seccion (.rs-wrap), asi que liberamos ese contenedor por completo.
   ========================================================================== */
body.rs-page .site-main,
body.single-producto .site-main,
body.single-evento .site-main{ max-width: none !important; padding-inline-start: 0 !important; padding-inline-end: 0 !important; width: 100%; }
.rs-page .page-content{ max-width: none; }

/* ==========================================================================
   Design tokens (paleta y tipografia extraidas de la maqueta)
   ========================================================================== */
:root{
	/* Paleta oficial de marca (handoff-graficos/LEER-PRIMERO.md) */
	--rs-cream: #F4EEE0;
	--rs-cream-alt: #EFE7D6;
	--rs-white: #FFFFFF;
	--rs-green-950: #13301C;
	--rs-green-900: #1C4327;
	--rs-green-800: #204A29;
	--rs-green-700: #265E30;
	--rs-green-600: #2E7D3A;
	--rs-green-500: #5D9147;
	--rs-green-400: #7EAD4E;
	--rs-lime: #C2D015;
	--rs-lime-dark: #A8B512;
	--rs-lime-bright: #8DC63F;
	--rs-lime-soft: #E3EBA0;
	--rs-text: #1F2A22;
	--rs-text-soft: #4B5B4E;
	--rs-border: #DCD6C4;

	--rs-font-heading: "Montserrat", "Segoe UI", sans-serif;
	--rs-font-body: "Montserrat", "Segoe UI", sans-serif;

	--rs-radius-sm: 10px;
	--rs-radius-md: 18px;
	--rs-radius-lg: 28px;
	--rs-radius-pill: 999px;

	--rs-container: 1180px;
	--rs-shadow: 0 20px 45px -25px rgba(18, 52, 27, 0.35);
}

/* ==========================================================================
   Base
   ========================================================================== */
body{
	background: var(--rs-cream);
	color: var(--rs-text);
	font-family: var(--rs-font-body);
	font-size: 16px;
	line-height: 1.6;
}
h1,h2,h3,h4,h5,h6{
	font-family: var(--rs-font-heading);
	color: var(--rs-green-700);
	font-weight: 800;
	line-height: 1.15;
	margin: 0 0 .5em;
}
h1{ font-size: clamp(2.1rem, 3.2vw, 3.4rem); }
h2{ font-size: clamp(1.7rem, 2.4vw, 2.4rem); }
h3{ font-size: 1.3rem; }
p{ margin: 0 0 1em; }
a{ color: var(--rs-green-700); text-decoration: none; }
img{ max-width: 100%; height: auto; display: block; }
.site-main{ overflow: hidden; }
.rs-page .page-header{ display: none; }

.rs-wrap{
	max-width: var(--rs-container);
	margin: 0 auto;
	padding: 0 24px;
}
/* Secciones de pagina (bloques Grupo de Gutenberg): el mismo recorte de
   ancho que .rs-wrap, pero aplicado a los hijos directos en vez de un div
   envoltorio, para que el bloque siga siendo valido para el editor. */
.wp-block-group.rs-section > *{
	max-width: var(--rs-container);
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
	box-sizing: border-box;
}
.wp-block-group.rs-section > *:first-child{ margin-top: 0; }
.rs-section{ padding: 72px 0; }
.rs-section--sm{ padding: 48px 0; }
/* Hero (primera seccion del home): la identificamos por posicion, no por
   una className, para que sobreviva aunque se re-guarde el bloque desde el
   editor (un className agregado a mano se puede perder en un guardado). */
body.home .site-main .rs-section:first-of-type{
	min-height: calc(85vh - 90px);
	display: flex;
	align-items: center;
}
body.home .site-main .rs-section:first-of-type > *{ width: 100%; max-width: 65vw; }
body.home .site-main .rs-section:first-of-type .wp-block-columns{ gap: 72px; }
body.home .site-main .rs-section:first-of-type .wp-block-columns > .wp-block-column{ flex-basis: 50%; }
body.home .site-main .rs-section:first-of-type h1{ font-size: clamp(2.6rem, 4vw, 4.2rem); margin-bottom: .5em; }
body.home .site-main .rs-section:first-of-type p{ font-size: 1.15rem; line-height: 1.7; color: var(--rs-text-soft); max-width: 46ch; margin-bottom: 1.6em; }
body.home .site-main .rs-section:first-of-type .wp-block-buttons{ margin-top: 8px; gap: 18px; }
body.home .site-main .rs-section:first-of-type .wp-block-button__link{ font-size: 1rem; padding: 16px 30px; }
@media (max-width: 782px){
	body.home .site-main .rs-section:first-of-type{ min-height: auto; padding: 56px 0; }
	body.home .site-main .rs-section:first-of-type .wp-block-columns{ gap: 40px; }
	body.home .site-main .rs-section:first-of-type h1{ font-size: clamp(2.1rem, 7vw, 2.8rem); }
}
.rs-section--cream-alt{ background: var(--rs-cream-alt); }
.rs-section--dark{ background: var(--rs-green-900); color: var(--rs-cream); }
.rs-section--dark h2, .rs-section--dark h3{ color: var(--rs-white); }
.rs-section--dark p{ color: #C9D6C3; }

.rs-section--regen .wp-block-columns{ gap: 80px; }
.rs-section--regen{ padding-bottom: 0; }
.rs-section--dark-fade{ padding-bottom: 0; }
.rs-section-lead{ color: var(--rs-text-soft); font-size: 1.05rem; line-height: 1.7; max-width: 62ch; margin-bottom: 1.6em; }
/* Las montañas van en el flujo normal de la pagina (no flotando encima del
   contenido con position:absolute), asi nunca se pueden montar sobre una
   tarjeta o texto sin importar cuanto crezca la seccion. */
.wp-block-group.rs-section > .rs-wave-divider{
	width: 100%; max-width: none; margin: 40px 0 0; padding: 0;
	line-height: 0;
}
.rs-wave-divider img{ display: block; width: 100%; height: auto; }
.rs-wave-divider--inverted{ background: var(--rs-green-900); }
@media (max-width: 782px){
	.wp-block-group.rs-section > .rs-wave-divider{ margin-top: 24px; }
}

/* Tarjetas "familia de productos" (Enmiendas Solidas / Productos Liquidos):
   grid fija de 2 columnas: si el cliente duplica una tarjeta y agrega una
   tercera familia, siempre baja a una fila nueva en vez de achicar todas. */
.rs-family-grid{ display: grid; grid-template-columns: repeat(2, 1fr); align-items: stretch; gap: 24px; margin-top: 32px; }
.rs-family-grid > *{ height: 100%; margin: 0 !important; align-self: stretch; }
.rs-family-card{
	padding: 32px;
	border-radius: var(--rs-radius-lg);
	background: linear-gradient(135deg, var(--rs-green-600) 0%, var(--rs-green-900) 100%);
	color: var(--rs-white);
}
@media (max-width: 700px){
	.rs-family-grid{ grid-template-columns: 1fr; }
}
.rs-family-card--liquida{ background: linear-gradient(135deg, var(--rs-lime-bright) 0%, var(--rs-green-700) 100%); }
.rs-family-card--microbiano{ background: linear-gradient(135deg, var(--rs-green-800) 0%, var(--rs-green-950) 100%); }
.rs-family-card__top{ display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px !important; }
.rs-family-icon-img{ width: 56px; height: 56px; border-radius: 50%; border: 2px solid rgba(255,255,255,.5); display: flex; align-items: center; justify-content: center; margin: 0 !important; padding: 14px; }
.rs-family-icon-img img{ width: 28px; height: 28px; }
.rs-family-badge{ background: rgba(255,255,255,.18); color: var(--rs-white); font-size: .72rem; font-weight: 700; letter-spacing: .06em; padding: 6px 14px; border-radius: var(--rs-radius-pill); margin: 0 !important; }
.rs-family-card h3{ color: var(--rs-white); font-size: 1.4rem; margin-bottom: 10px; }
.rs-family-card p{ color: rgba(255,255,255,.85); margin-bottom: 1em; }
.rs-family-card a{ color: var(--rs-white); font-weight: 700; }

.rs-eyebrow{
	display: inline-block;
	font-family: var(--rs-font-heading);
	font-weight: 700;
	font-size: .78rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--rs-green-600);
	margin-bottom: 10px;
}
.rs-section--dark .rs-eyebrow{ color: var(--rs-lime); }

.rs-center{ text-align: center; max-width: 720px; margin-left: auto; margin-right: auto; }
/* Si el cliente elige manualmente una alineacion distinta para un texto
   dentro de una seccion centrada, que se respete esa eleccion. */
.rs-center .has-text-align-left{ text-align: left !important; }
.rs-center .has-text-align-right{ text-align: right !important; }

/* ==========================================================================
   Botones y badges
   ========================================================================== */
.rs-btn{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--rs-font-heading);
	font-weight: 700;
	font-size: .95rem;
	padding: 14px 26px;
	border-radius: var(--rs-radius-pill);
	border: 2px solid transparent;
	cursor: pointer;
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
	line-height: 1;
}
.rs-btn:hover{ transform: translateY(-2px); }
.rs-btn-lime{ background: var(--rs-lime); color: var(--rs-green-900); }
.rs-btn-lime:hover{ background: var(--rs-lime-dark); color: var(--rs-green-900); }
.rs-btn-outline{ background: transparent; border-color: currentColor; color: var(--rs-green-900); }
.rs-section--dark .rs-btn-outline{ color: var(--rs-white); }
.rs-btn-outline:hover{ background: rgba(255,255,255,.08); }
.rs-btn-dark{ background: var(--rs-green-900); color: var(--rs-white); }
.rs-btn-dark:hover{ background: var(--rs-green-800); color: var(--rs-white); }
.rs-btn-sm{ padding: 8px 0; border-radius: 0; font-size: .9rem; color: var(--rs-green-700); }
.rs-btn-sm:hover{ transform: none; text-decoration: underline; }

.rs-badge{
	display: inline-block;
	font-family: var(--rs-font-heading);
	font-weight: 700;
	font-size: .68rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 6px 14px;
	border-radius: var(--rs-radius-pill);
	background: var(--rs-lime);
	color: var(--rs-green-900);
}
.rs-badge--liquida{ background: var(--rs-green-400); color: var(--rs-green-950); }
.rs-badge--soft{ background: var(--rs-lime-soft); color: var(--rs-green-800); }

/* ==========================================================================
   Header
   ========================================================================== */
.rs-header{
	background: var(--rs-cream-alt);
	position: sticky;
	top: 0;
	z-index: 100;
}
.rs-header__inner{
	max-width: var(--rs-container);
	margin: 0 auto;
	padding: 16px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}
.rs-logo{ display: flex; align-items: center; }
.rs-logo img{ height: 86px; width: auto; }
.rs-logo-text{ font-family: var(--rs-font-heading); font-weight: 800; font-size: 1.5rem; color: var(--rs-green-700); }
.rs-logo-text span{ display:block; font-family: var(--rs-font-body); font-weight: 500; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--rs-green-600); }

.rs-nav{ display: flex; align-items: center; gap: 28px; }
.rs-nav ul{ list-style: none; display: flex; align-items: center; gap: 26px; margin: 0; padding: 0; }
.rs-nav a{ font-weight: 600; color: var(--rs-green-700); font-size: 1.08rem; white-space: nowrap; }
.rs-nav a:hover{ color: var(--rs-green-600); }
.rs-nav li{ position: relative; }
.rs-nav li > a{ display: inline-flex; align-items: center; gap: 4px; }
.rs-caret{ display: inline-block; width: 10px; height: 10px; flex-shrink: 0; }
.rs-caret svg{ display: block; width: 100%; height: 100%; transition: transform .15s ease; }

/* Mega menu de Productos: lista dinamica de Sólidas / Líquidas */
.has-mega{ padding-bottom: 20px; margin-bottom: -20px; }
.rs-mega-menu{
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%) translateY(8px);
	background: var(--rs-cream);
	border-radius: var(--rs-radius-md);
	box-shadow: var(--rs-shadow);
	padding: 26px 30px;
	display: flex;
	gap: 40px;
	min-width: 460px;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .15s ease, transform .15s ease;
	z-index: 200;
}
.has-mega:hover .rs-mega-menu,
.has-mega:focus-within .rs-mega-menu{
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateX(-50%) translateY(0);
}
.has-mega:hover .rs-caret svg{ transform: rotate(180deg); }
.rs-mega-menu__col{ min-width: 190px; }
.rs-mega-menu__col h4{
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: var(--rs-font-heading);
	font-size: .74rem;
	letter-spacing: .06em;
	color: var(--rs-green-700);
	margin: 0 0 14px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--rs-border);
	white-space: nowrap;
}
.rs-mega-menu__col ul{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.rs-mega-menu__col a{ font-weight: 600; font-size: .92rem; color: var(--rs-text); white-space: nowrap; }
.rs-mega-menu__col a:hover{ color: var(--rs-green-600); }

@media (max-width: 900px){
	.rs-mega-menu{ position: static; transform: none; opacity: 1; visibility: visible; pointer-events: auto; box-shadow: none; min-width: 0; flex-direction: column; gap: 20px; display: none; }
	.has-mega:hover .rs-mega-menu, .has-mega.is-open .rs-mega-menu{ display: flex; }
}
.rs-nav-cta{ display:flex; align-items:center; gap: 14px; }
.rs-menu-toggle{ display: none; background: none; border: none; cursor: pointer; padding: 6px; }
.rs-menu-toggle span{ display: block; width: 24px; height: 2px; background: var(--rs-green-700); margin: 5px 0; }

@media (max-width: 900px){
	.rs-nav ul{ display: none; }
	.rs-menu-toggle{ display: block; }
}

/* ==========================================================================
   Footer
   ========================================================================== */
.rs-footer{ background: var(--rs-green-900); color: #BFD1C0; padding: 64px 0 0; }
.rs-footer__grid{
	display: grid;
	grid-template-columns: 1.6fr 1fr 1fr 1fr;
	gap: 32px;
	padding-bottom: 40px;
	border-bottom: 1px solid rgba(255,255,255,.12);
}
.rs-footer__brand .rs-logo-text{ color: var(--rs-white); }
.rs-footer__brand p{ margin-top: 14px; font-size: .92rem; color: #A9C0AA; }
.rs-footer h4{ color: var(--rs-white); font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; font-family: var(--rs-font-heading); margin-bottom: 16px; }
.rs-footer ul{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.rs-footer a{ color: #C9D6C3; font-size: .92rem; }
.rs-footer a:hover{ color: var(--rs-lime); }
.rs-social{ display: flex; gap: 10px; margin-top: 20px; }
.rs-social a{ width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,.08); display: flex; align-items: center; justify-content: center; color: var(--rs-white); transition: background .15s ease; }
.rs-social a:hover{ background: var(--rs-lime); color: var(--rs-green-900); }
.rs-social a svg{ width: 18px; height: 18px; color: inherit !important; }
.rs-footer-logo{ height: 42px; width: auto; margin-bottom: 4px; }
.rs-footer__bottom{ display: flex; justify-content: space-between; align-items: center; padding: 22px 0; font-size: .82rem; flex-wrap: wrap; gap: 8px; }

/* ==========================================================================
   Tarjetas de producto (con placeholder de foto en degrade, como la maqueta)
   ========================================================================== */
.rs-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.rs-grid--2{ grid-template-columns: repeat(2, 1fr); }
.rs-grid--4col{ grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1100px){ .rs-grid--4col{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px){ .rs-grid, .rs-grid--2{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px){ .rs-grid, .rs-grid--2, .rs-grid--4col{ grid-template-columns: 1fr; } }

/* Bloque nativo "Consulta" (Query Loop): mismo grid, pero la estructura es
   una lista <ul>/<li> en vez de un <div> con hijos directos. */
.rs-query-productos .wp-block-post-template{
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 26px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.rs-query-productos .wp-block-post{ margin: 0; }
@media (max-width: 1100px){ .rs-query-productos .wp-block-post-template{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px){ .rs-query-productos .wp-block-post-template{ grid-template-columns: 1fr; } }

.rs-card{
	background: var(--rs-white);
	border-radius: var(--rs-radius-md);
	overflow: hidden;
	box-shadow: var(--rs-shadow);
	display: flex;
	flex-direction: column;
	transition: transform .18s ease;
}
.rs-card:hover{ transform: translateY(-4px); }
.rs-card__photo{
	position: relative;
	height: 150px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	color: var(--rs-white);
	text-align: center;
	padding: 16px;
	background: linear-gradient(155deg, var(--rs-green-600) 0%, var(--rs-green-900) 100%);
}
.rs-card__photo.is-liquida{ background: linear-gradient(155deg, var(--rs-green-400) 0%, var(--rs-green-700) 100%); }
.rs-card__photo img{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; padding: 0; }
.rs-card__badge{ position: absolute; top: 14px; left: 14px; z-index: 2; }
.rs-card__icon{ width: 34px; height: 34px; opacity: .9; }
.rs-card__photo-label{ font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; opacity: .85; font-weight: 700; }
.rs-card__caption{ font-size: .8rem; opacity: .95; max-width: 85%; }

/* Tarjetas de blog: caja de foto clara (sin degradado oscuro) */
.rs-card__photo--article{
	height: 190px;
	background: var(--rs-cream-alt);
	color: var(--rs-text-soft);
}
.rs-card__photo--article .rs-card__photo-label{ color: var(--rs-text-soft); }
.rs-card__photo--article .rs-card__caption{ color: var(--rs-text-soft); }
.rs-card__meta{ display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: .82rem; color: var(--rs-text-soft); }

.rs-card__body{ padding: 22px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.rs-card__body h3{ margin: 0; font-size: 1.15rem; }
.rs-card__body p{ margin: 0; font-size: .9rem; color: var(--rs-text-soft); flex: 1; }
.rs-card__link{ margin-top: 6px; font-family: var(--rs-font-heading); font-weight: 700; font-size: .88rem; color: var(--rs-green-700); }
.rs-card__link:hover{ text-decoration: underline; }
.rs-card .wp-block-read-more{ margin-top: 6px; font-family: var(--rs-font-heading); font-weight: 700; font-size: .88rem; color: var(--rs-green-700); text-decoration: none; }
.rs-card .wp-block-read-more:hover{ text-decoration: underline; }
.rs-card .wp-block-post-featured-image{ margin: 0; }
.rs-card .wp-block-post-excerpt{ margin: 0; flex: 1; }
.rs-card .wp-block-post-excerpt__excerpt{ margin: 0; font-size: .9rem; color: var(--rs-text-soft); }
.rs-card .wp-block-post-title{ margin: 0; font-size: 1.15rem; }

/* ==========================================================================
   Eventos: lista horizontal (home, "Encontremonos en terreno")
   ========================================================================== */
.rs-events-list{ display: flex; flex-direction: column; gap: 16px; margin-top: 28px; }
.rs-event-row{
	display: flex;
	align-items: center;
	gap: 20px;
	padding: 20px 24px;
	border-radius: var(--rs-radius-md);
	border: 1px solid rgba(255,255,255,.14);
	background: rgba(255,255,255,.04);
}
.rs-event-row__date{
	flex-shrink: 0;
	width: 56px;
	height: 56px;
	border-radius: var(--rs-radius-sm);
	background: var(--rs-lime);
	color: var(--rs-green-900);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1.15;
}
.rs-event-row__date strong{ font-size: 1.3rem; font-weight: 800; }
.rs-event-row__date span{ font-size: .62rem; font-weight: 700; letter-spacing: .05em; }
.rs-event-row__body{ flex: 1; min-width: 0; }
.rs-event-row__body h3{ color: var(--rs-white); font-size: 1.05rem; margin: 0 0 6px; }
.rs-event-row__meta{ display: flex; flex-wrap: wrap; gap: 6px 20px; font-size: .85rem; color: #C9D6C3; }
.rs-event-row__meta span{ display: inline-flex; align-items: center; gap: 6px; }
.rs-event-row__meta svg{ width: 15px; height: 15px; flex-shrink: 0; }
.rs-event-row__arrow{
	flex-shrink: 0;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	border: 1px solid rgba(255,255,255,.3);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--rs-white);
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.rs-event-row__arrow svg{ width: 16px; height: 16px; }
.rs-event-row__arrow:hover{ background: var(--rs-lime); border-color: var(--rs-lime); color: var(--rs-green-900); }
@media (max-width: 600px){
	.rs-event-row{ flex-wrap: wrap; }
	.rs-event-row__arrow{ margin-left: auto; }
}
.rs-section--dark p a{ color: var(--rs-lime); }

/* Ficha de evento: hero foto+info y tarjetas "Proximas fechas" */
.rs-event-hero{
	display: flex;
	gap: 40px;
	align-items: center;
	flex-wrap: wrap;
	background: var(--rs-white);
	border-radius: var(--rs-radius-lg);
	padding: 28px;
	box-shadow: var(--rs-shadow);
}
.rs-event-hero__photo{ flex: 1 1 420px; min-width: 280px; }
.rs-event-hero__photo .rs-hero-photo{ aspect-ratio: 4/3; }
.rs-event-hero__photo .rs-hero-photo.rs-card__photo{ height: auto; }
.rs-event-hero__info{ flex: 1 1 420px; min-width: 280px; }
.rs-event-hero__info h1{ margin: 14px 0 10px; }
.rs-event-hero__info .rs-event-row__meta{ color: var(--rs-text-soft); }
.rs-event-hero__dateline{ color: var(--rs-green-700); font-weight: 700; margin: 14px 0 0; font-size: .95rem; }
.rs-event-hero__desc{ color: var(--rs-text-soft); font-size: 1.02rem; line-height: 1.65; margin: 10px 0 18px; }
.rs-event-hero__meta{ margin-top: 4px; }
@media (max-width: 900px){ .rs-event-hero{ gap: 24px; padding: 18px; } }

.rs-events-grid--fecha{ grid-template-columns: repeat(3,1fr); }
@media (max-width: 900px){ .rs-events-grid--fecha{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 620px){ .rs-events-grid--fecha{ grid-template-columns: 1fr; } }
.rs-event-date-card{ background: var(--rs-white); border-radius: var(--rs-radius-md); padding: 22px; box-shadow: var(--rs-shadow); display: flex; flex-direction: column; gap: 4px; }
.rs-event-date-card__top{ display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.rs-event-date-card .rs-event-row__date{ width: 50px; height: 50px; }
.rs-event-date-card .rs-event-row__date strong{ font-size: 1.1rem; }
.rs-event-date-card h3{ margin: 0 0 6px; font-size: 1.05rem; }
.rs-event-date-card p{ margin: 0; font-size: .9rem; color: var(--rs-text-soft); flex: 1; }

/* Tabs de filtro Todos / Solidas / Liquidas */
.rs-tabs{ display: flex; gap: 10px; margin: 0 0 34px; flex-wrap: wrap; }
.rs-tab{
	font-family: var(--rs-font-heading);
	font-weight: 700;
	font-size: .88rem;
	padding: 10px 22px;
	border-radius: var(--rs-radius-pill);
	border: 2px solid var(--rs-green-900);
	background: transparent;
	color: var(--rs-green-900);
	cursor: pointer;
}
.rs-tab.is-active{ background: var(--rs-green-900); color: var(--rs-white); }

/* ==========================================================================
   Iconos / checklist / stats
   ========================================================================== */
.rs-check-list{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.rs-check-list li{ display: flex; align-items: flex-start; gap: 12px; font-weight: 500; }
.rs-check-list li::before{
	content: "\2713";
	flex-shrink: 0;
	width: 24px; height: 24px;
	border-radius: 50%;
	background: var(--rs-lime);
	color: var(--rs-green-900);
	display: flex; align-items: center; justify-content: center;
	font-size: .75rem; font-weight: 700;
}

/* ==========================================================================
   Ficha de producto: hero
   ========================================================================== */
.rs-badge--dark{ background: var(--rs-green-900); color: var(--rs-white); }
.rs-product-hero{ display: flex; gap: 56px; align-items: center; flex-wrap: wrap; }
.rs-product-hero__info{ flex: 1 1 420px; min-width: 280px; }
.rs-product-hero__info h1{ margin: 16px 0 8px; }
.rs-product-hero__subtitle{ color: var(--rs-green-700); font-weight: 700; font-size: 1.05rem; margin-bottom: 14px; }
.rs-product-hero__desc p{ color: var(--rs-text-soft); font-size: 1.05rem; line-height: 1.7; margin-bottom: 1em; }
.rs-product-hero__info .rs-eyebrow{ margin: 22px 0 12px; }
.rs-product-hero__actions{ display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin-top: 24px; }
.rs-product-hero__format{ margin-top: 22px; font-size: .92rem; color: var(--rs-text); }
.rs-product-hero__photo{ flex: 0 0 420px; width: 420px; max-width: 100%; margin: 0 auto; }
.rs-product-photo-frame{ position: relative; width: 100%; aspect-ratio: 1/1; }
.rs-product-photo-frame .rs-circle-photo{ position: absolute; inset: 0; border: 9px solid var(--rs-green-900); }
.rs-product-photo-frame .rs-circle-photo.rs-card__photo{ height: auto; }
.rs-product-photo-frame__ring{ position: absolute; inset: -16px; width: calc(100% + 32px); height: calc(100% + 32px); pointer-events: none; z-index: 1; }
@media (max-width: 900px){
	.rs-product-hero{ gap: 32px; }
	.rs-product-hero__photo{ flex-basis: 280px; width: 280px; }
}

.rs-stats{ display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; margin: 34px 0; }
.rs-stat{ background: rgba(255,255,255,.06); border-radius: var(--rs-radius-md); padding: 20px 24px; }
.rs-stat strong{ display:block; font-family: var(--rs-font-heading); font-size: 2.4rem; color: var(--rs-lime); }
.rs-stat span{ font-size: .85rem; color: #C9D6C3; }

.rs-icon-grid{ display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; }
@media (max-width: 900px){ .rs-icon-grid{ grid-template-columns: repeat(2,1fr); } .rs-stats{ grid-template-columns: 1fr; } }
.rs-icon-box{ background: var(--rs-white); border-radius: var(--rs-radius-md); padding: 26px; box-shadow: var(--rs-shadow); }
.rs-icon-box .rs-icon-circle{ width: 46px; height: 46px; border-radius: 50%; background: var(--rs-cream-alt); display: flex; align-items: center; justify-content: center; margin-bottom: 14px; font-size: 1.3rem; }
.rs-icon-box h3{ font-size: 1.02rem; margin-bottom: 6px; }
.rs-icon-box p{ font-size: .88rem; color: var(--rs-text-soft); margin: 0; }
.rs-icon-circle-img{ width: 46px; height: 46px; border-radius: 50%; background: var(--rs-cream-alt); display: flex; align-items: center; justify-content: center; margin: 0 0 14px; padding: 0; }
.rs-icon-circle-img img{ width: 22px; height: 22px; display: block; }

/* Home: "Respaldo tecnico, no promesas" - variante plana sin tarjeta,
   con chip cuadrado lima. Con clase modificadora para no afectar los
   icon-grid de Nosotros/Productos, que siguen con el estilo de tarjeta. */
.rs-icon-grid--respaldo{ grid-template-columns: repeat(3,1fr); gap: 32px 40px; }
@media (max-width: 900px){ .rs-icon-grid--respaldo{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px){ .rs-icon-grid--respaldo{ grid-template-columns: 1fr; } }
.rs-icon-grid--respaldo .rs-icon-box{
	display: grid;
	grid-template-columns: 44px 1fr;
	column-gap: 16px;
	row-gap: 4px;
	background: none;
	box-shadow: none;
	padding: 0;
	border-radius: 0;
}
.rs-icon-grid--respaldo .rs-icon-box .rs-icon-circle-img{
	grid-column: 1;
	grid-row: 1 / 3;
	width: 44px;
	height: 44px;
	border-radius: var(--rs-radius-sm);
	background: var(--rs-lime);
	margin: 0;
}
.rs-icon-grid--respaldo .rs-icon-box h3{ grid-column: 2; grid-row: 1; align-self: center; margin: 0; font-size: 1.05rem; color: var(--rs-green-800); }
.rs-icon-grid--respaldo .rs-icon-box p{ grid-column: 2; grid-row: 2; margin: 0; font-size: .92rem; }

.rs-benefit-list{ display: flex; flex-direction: column; gap: 10px; }
.rs-benefit-list > *{ margin: 0 !important; }
.rs-benefit-card{
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 22px 24px;
	border: 1px solid rgba(255,255,255,.14);
	border-radius: var(--rs-radius-md);
	background: rgba(255,255,255,.03);
}
.rs-benefit-icon{
	flex-shrink: 0;
	width: 40px; height: 40px;
	border-radius: 10px;
	background: var(--rs-lime);
	display: flex; align-items: center; justify-content: center;
	font-size: 1.1rem;
	color: var(--rs-green-900) !important;
}
.rs-benefit-icon svg{ width: 22px; height: 22px; color: inherit !important; }
.rs-benefit-icon-img{
	flex-shrink: 0;
	width: 40px; height: 40px;
	border-radius: 10px;
	background: var(--rs-lime);
	display: flex; align-items: center; justify-content: center;
	margin: 0; padding: 8px;
}
.rs-benefit-icon-img img{ width: 22px; height: 22px; display: block; }
.rs-benefit-card__text{ flex: 1; min-width: 0; }
.rs-benefit-card h3{ color: var(--rs-white); font-size: 1rem; margin: 0 0 6px; }
.rs-benefit-card p{ color: #C9D6C3; font-size: .9rem; line-height: 1.55; margin: 0; }

/* ==========================================================================
   Tablas tecnicas (composicion / contaminantes)
   ========================================================================== */
.rs-table-wrap{ background: var(--rs-white); border-radius: var(--rs-radius-md); overflow: hidden; box-shadow: var(--rs-shadow); }
.rs-table-wrap h4{
	font-family: var(--rs-font-heading);
	font-size: .78rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--rs-white);
	background: var(--rs-green-800);
	padding: 16px 22px;
	margin: 0;
}
table.rs-table{ width: 100%; border-collapse: collapse; border: 1px solid var(--rs-white); }
table.rs-table tr{ border-top: 1px solid var(--rs-border); }
table.rs-table tr:nth-child(even){ background: var(--rs-cream-alt); }
table.rs-table td{ padding: 14px 22px; font-size: .92rem; }
table.rs-table td:last-child{ text-align: right; font-weight: 700; color: var(--rs-green-800); }

.rs-origin-card{
	margin-top: 20px;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 20px 24px;
	border-radius: var(--rs-radius-md);
	background: var(--rs-lime-soft);
	color: var(--rs-green-900);
	font-weight: 600;
	font-size: .92rem;
}
.rs-origin-card__icon{ flex-shrink: 0; width: 22px; height: 22px; color: var(--rs-green-900); }
.rs-origin-card__icon svg{ width: 100%; height: 100%; }

/* ==========================================================================
   Formularios (Contact Form 7)
   ========================================================================== */
.rs-form-card{ background: var(--rs-white); border-radius: var(--rs-radius-lg); padding: 34px; box-shadow: var(--rs-shadow); color: var(--rs-text); }
.rs-form-card.is-dark{ background: rgba(255,255,255,.06); color: var(--rs-white); }
.rs-advice-card{
	margin-top: 20px;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 20px 24px;
	border-radius: var(--rs-radius-md);
	background: var(--rs-lime-soft);
	color: var(--rs-green-900);
	font-weight: 600;
	transition: background .15s ease;
}
.rs-advice-card:hover{ background: var(--rs-lime); }
.rs-advice-card__icon{ flex-shrink: 0; width: 22px; height: 22px; color: var(--rs-green-900); }
.rs-advice-card__icon svg{ width: 100%; height: 100%; }
.wpcf7-form p{ margin-bottom: 16px; color: var(--rs-text); }
.wpcf7-form label{ display: block; font-family: var(--rs-font-heading); font-weight: 700; font-size: .82rem; margin-bottom: 8px; color: var(--rs-green-700); }
.wpcf7-form .wpcf7-form-control-wrap{ display: block; }
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form select,
.wpcf7-form textarea{
	box-sizing: border-box;
	width: 100%;
	padding: 13px 16px;
	border-radius: var(--rs-radius-sm);
	border: 1px solid var(--rs-border);
	font-family: var(--rs-font-body);
	font-size: .95rem;
	background: var(--rs-cream);
}
.wpcf7-form input[type="submit"]{
	background: var(--rs-lime);
	color: var(--rs-green-900);
	border: none;
	font-family: var(--rs-font-heading);
	font-weight: 700;
	padding: 14px 30px;
	border-radius: var(--rs-radius-pill);
	cursor: pointer;
}
.wpcf7-form input[type="submit"]:hover{ background: var(--rs-lime-dark); }
.rs-newsletter-form .wpcf7-form{ display: flex; gap: 10px; flex-wrap: wrap; }
.rs-newsletter-form .wpcf7-form p{ margin: 0; flex: 1; min-width: 220px; }

/* CTA de cotizacion (home): contacto (email/telefono) + tarjeta de formulario */
.rs-cta-contact{ display: flex; flex-wrap: wrap; gap: 12px 32px; margin-top: 24px; }
.rs-cta-contact a{ display: inline-flex; align-items: center; gap: 8px; color: var(--rs-lime); font-weight: 700; }
.rs-cta-contact svg{ width: 18px; height: 18px; flex-shrink: 0; }
.rs-form-card--cta{ max-width: 520px; margin-left: auto; }
.rs-form-card--cta .wpcf7-form input[type="submit"]{ width: 100%; }
@media (max-width: 782px){ .rs-form-card--cta{ margin-left: 0; } }

/* ==========================================================================
   Hero circular image (blob-like con la maqueta)
   ========================================================================== */
.rs-hero-photo{
	border-radius: var(--rs-radius-lg);
	overflow: hidden;
	position: relative;
	box-shadow: var(--rs-shadow);
}
.rs-hero-photo img{ width: 100%; height: 100%; object-fit: cover; }
.rs-circle-photo{ border-radius: 50%; overflow: hidden; box-shadow: var(--rs-shadow); aspect-ratio: 1/1; }
.rs-circle-photo img{ width: 100%; height: 100%; object-fit: cover; }

/* Hero: foto principal + inset, recorte circular automatico via CSS.
   Cualquier foto que suba el cliente queda recortada en circulo sola,
   sin necesidad de editarla antes. */
/* Contenedor con aspect-ratio fijo: las dos fotos son absolute inset,
   asi el traslape no depende del margen que el navegador le pone por
   defecto a <figure> (eso era lo que las separaba). */
.rs-hero-visual{ position: relative; width: 62%; margin: 0 0 0 auto; aspect-ratio: 1/1; align-self: flex-start; flex-shrink: 0; }
.rs-hero-photo-main{ position: absolute; inset: 0; z-index: 1; margin: 0; }
.rs-hero-photo-main img{ display: block; width: 100%; height: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: 50%; box-shadow: var(--rs-shadow); }
.rs-hero-photo-inset{ position: absolute; right: 2%; bottom: 3%; width: 42%; z-index: 2; margin: 0; }
.rs-hero-photo-inset img{ display: block; width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: 50%; border: 6px solid var(--rs-white); box-shadow: var(--rs-shadow); }
.rs-hero-swirl{ position: absolute; top: -8%; left: -10%; width: 55%; z-index: 0; pointer-events: none; }
.rs-hero-swirl img{ display: block; width: 100%; height: auto; }
@media (max-width: 782px){
	.rs-hero-photo-inset{ width: 38%; }
	.rs-hero-visual{ width: 100%; max-width: 320px; margin: 0 auto; }
}

/* ==========================================================================
   Utilidades de columnas para bloques nativos de Gutenberg
   ========================================================================== */
.wp-block-columns.rs-columns-align-center{ align-items: center; }
.rs-container-block{ max-width: var(--rs-container); margin-left: auto; margin-right: auto; padding-left: 24px; padding-right: 24px; }

@media (max-width: 782px){
	.rs-section{ padding: 48px 0; }
	.rs-footer__grid{ grid-template-columns: 1fr 1fr; }
}

/* ==========================================================================
   Compatibilidad con bloques nativos de Gutenberg (editor de bloques)
   Permite usar los bloques core (Grupo, Encabezado, Parrafo, Botones,
   Columnas, Imagen) con nuestras clases sin escribir HTML a mano.
   ========================================================================== */
.wp-block-group.rs-section{ padding-left: 0; padding-right: 0; }

.wp-block-buttons{ gap: 14px; }
/* Hello Elementor's theme.css (".page-content a{text-decoration:underline}")
   carga despues de nuestro stylesheet y con mayor especificidad, asi que
   sin esto los botones salen subrayados. */
.wp-block-button__link,
.wp-block-button__link:hover{ text-decoration: none !important; border-radius: var(--rs-radius-pill); }
.wp-block-button.rs-btn-lime .wp-block-button__link{ background: var(--rs-lime); color: var(--rs-green-900); border-radius: var(--rs-radius-pill); font-family: var(--rs-font-heading); font-weight: 700; padding: 14px 26px; }
.wp-block-button.rs-btn-lime .wp-block-button__link:hover{ background: var(--rs-lime-dark); }
.wp-block-button.rs-btn-outline .wp-block-button__link{ background: transparent; border: 2px solid currentColor; color: inherit; border-radius: var(--rs-radius-pill); font-family: var(--rs-font-heading); font-weight: 700; padding: 12px 26px; }
.wp-block-button.rs-btn-dark .wp-block-button__link{ background: var(--rs-green-900); color: var(--rs-white); border-radius: var(--rs-radius-pill); font-family: var(--rs-font-heading); font-weight: 700; padding: 14px 26px; }
.wp-block-button.rs-btn-dark .wp-block-button__link:hover{ background: var(--rs-green-800); }

.rs-eyebrow-block{ display:inline-block; font-family: var(--rs-font-heading); font-weight:700; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color: var(--rs-green-600); }
.rs-section--dark .rs-eyebrow-block{ color: var(--rs-lime); }

.rs-round-img img{ border-radius: 50%; aspect-ratio: 1/1; object-fit: cover; box-shadow: var(--rs-shadow); }
.rs-card-img img{ border-radius: var(--rs-radius-lg); box-shadow: var(--rs-shadow); }

.rs-columns-center{ align-items: center; }
@media (max-width: 782px){ .wp-block-columns:not(.is-not-stacked-on-mobile){ gap: 28px !important; } }
