/*
Theme Name: Close Prisma
Theme URI: https://close.technology
Description: Block theme for Prisma – distribución de productos de limpieza profesional. Compatible con WordPress 6.5+ y Full Site Editing.
Author: Closemarketing
Author URI: https://close.marketing
Version: 1.0.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: close-prisma-theme
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 7.4
*/

/* Global styles are defined in theme.json. This file holds theme metadata and minimal overrides. */

/*
 * Párrafos sin tamaño elegido en el bloque: aplica preset "body".
 * Si el JSON del bloque incluye fontSize, WordPress añade has-*-font-size y no se pisa.
 */
.wp-block-paragraph:not([class*="-font-size"]) {
	font-size:   var(--wp--preset--font-size--body);
	font-weight: 300;
	line-height: 1.6;
}

/* Preset tipográfico medium-small (theme.json): un poco más de interlineado que el cuerpo (1.6). */
.has-medium-small-font-size {
	line-height: 1.55;
}

/*
 * Alignfull: salir del contenedor constrained para ocupar todo el ancho del viewport.
 * El template envuelve el contenido en un Group con layout constrained, por eso
 * alignfull por sí solo no llega al 100vw sin este breakout.
 */
.alignfull {
	width:         100vw;
	max-width:     100vw;
	margin-left:  calc(50% - 50vw);
	box-sizing:   border-box;
}

/* ## Menú
 * ------------------------------------------------------------------ */
.catalogo-menu.wp-block-buttons  {
	margin-left:30px;
}

/* Block gap: 30 px vertical between page-level sections; 0 inside groups/covers. */
.wp-site-blocks {
	--wp--style--block-gap: 30px;
}
.wp-block-group.has-background,
.wp-block-cover {
	--wp--style--block-gap: 0 var(--wp--preset--spacing--50);
}

/* ## Feature icon badge + icon cards section
 * Used in feature-cards-with-icons pattern. No inline styles.
 * ------------------------------------------------------------------ */
.feature-icon-badge {
	display:         inline-flex;
	align-items:     center;
	justify-content: center;
	width:           48px;
	height:          48px;
	background:      var(--wp--preset--color--accent);
	border-radius:   10px;
	flex-shrink:     0;
}

.feature-cards-icons-section {
	padding-top:    var(--wp--preset--spacing--80);
	padding-bottom: var(--wp--preset--spacing--80);
}

.feature-card-icon-card {
	border-radius: 12px;
	padding-top:    var(--wp--preset--spacing--60);
	padding-right:  var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--60);
	padding-left:   var(--wp--preset--spacing--50);
}

.feature-card-icon-card h3.wp-block-heading {
	margin-top:    var(--wp--preset--spacing--40);
	margin-bottom: var(--wp--preset--spacing--30);
	font-size:     var(--wp--preset--font-size--medium);
	font-weight:   400;
}

/* ## Tarjetas solo texto (feature-cards-text-only)
 * ------------------------------------------------------------------ */
.feature-cards-text-only-section {
	padding-top:    var(--wp--preset--spacing--80);
	padding-bottom: var(--wp--preset--spacing--80);
	padding-left:   var(--wp--preset--spacing--60);
	padding-right:  var(--wp--preset--spacing--60);
}

.feature-cards-text-only-section .feature-cards-text-only-heading {
	margin-top:    0;
	margin-bottom: var(--wp--preset--spacing--80);
	font-weight:   400;

}

.feature-card-text-only {
	border-radius:   12px;
	display:         flex;
	align-items:     center;
	justify-content: center;
	padding-top:     var(--wp--preset--spacing--60);
	padding-right:   var(--wp--preset--spacing--60);
	padding-bottom:  var(--wp--preset--spacing--60);
	padding-left:    var(--wp--preset--spacing--60);
}

.feature-card-text-only p {
	margin:      0;

	
	font-weight: 300;
	color:       #5a6572;
}

@media (max-width: 781px) {
	.feature-cards-text-only-section {
		padding-left:  var(--wp--preset--spacing--50);
		padding-right: var(--wp--preset--spacing--50);
	}
}

/* ## ¿Qué nos diferencia? (patrón feature-cards-icons, tarjetas solo texto)
 * Fondo: preset surface-ice (#E5F5FC).
 * ------------------------------------------------------------------ */
.feature-card-diferencia {
	border-radius:   30px;
	min-height:      150px;
	display:         flex;
	align-items:     center;
	justify-content: flex-start;
	padding-top:     var(--wp--preset--spacing--60);
	padding-right:   var(--wp--preset--spacing--50);
	padding-bottom:  var(--wp--preset--spacing--60);
	padding-left:    var(--wp--preset--spacing--50);
}

.feature-card-diferencia p {
	margin:      0;
	width:       100%;
	
	text-align:  left;
}

@media (max-width: 781px) {
	/* Columnas apiladas: aire entre pastillas (si no están forzadas en fila). */
	.feature-diferencia-band .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column:not(:last-child) {
		margin-bottom: var(--wp--preset--spacing--50);
	}
}

/* ## Hero – pill buttons
 * Ensures icon + text align inline and the SVG inherits current color.
 * ------------------------------------------------------------------ */
.hero-btn .wp-block-button__link {
	display:         inline-flex;
	align-items:     center;
	gap:             0.5rem;
	font-weight:     500;
	font-size:       var(--wp--preset--font-size--button-text);
	white-space:     nowrap;
	transition:      background 0.2s, color 0.2s, border-color 0.2s;
}
.hero-btn .wp-block-button__link svg {
	flex-shrink: 0;
	margin-right: 0; /* gap handles spacing */
}

/*
 * Botón “Explora”: gradiente inline; sin transición de background (evita salto visual).
 * Sin borde (antes is-style-outline del core).
 */
.hero-btn--filled .wp-block-button__link {
	border:     none;
	box-shadow: none;
	transition: color 0.2s ease;
}

/* Explora: hover a azul primario (sustituye el gradiente inline del bloque). */
.hero-btn--filled .wp-block-button__link:hover,
.hero-btn--filled .wp-block-button__link:focus {
	background:   var(--wp--preset--color--primary) !important;
	color:        var(--wp--preset--color--contrast) !important;
	border:       none;
	box-shadow:   none;
}

/* ¿Hablamos?: estado normal accent (azul claro); hover primario. */
.hero-btn--outline .wp-block-button__link:hover,
.hero-btn--outline .wp-block-button__link:focus {
	background:   var(--wp--preset--color--primary);
	color:        var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--primary);
}

/* ## Feature Grid – tarjetas asimétricas con imagen
 * ------------------------------------------------------------------ */
.feature-grid-section {
	padding-top:    var(--wp--preset--spacing--80);
	padding-right:  var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--80);
	padding-left:   var(--wp--preset--spacing--60);
}

.feature-card > .wp-block-columns > .wp-block-column:not(.feature-card__img-col) {
	padding-top:    var(--wp--preset--spacing--60);
	padding-right:  var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--60);
	padding-left:   var(--wp--preset--spacing--60);
}

.wp-block-cover.feature-card.feature-card--cover {
	min-height:  361px;
	border-radius: 12px;
	padding:    var(--wp--preset--spacing--60);
}

.feature-grid-spacer {
	height: var(--wp--preset--spacing--50);
}

/* Tarjeta base: recorta la imagen al borde redondeado */
.feature-card {
	border-radius:  12px;
	overflow:       hidden;
	display:        flex;
	flex-direction: column;
	height:         100%;
}

/* La columna de imagen ocupa todo el espacio disponible y alinea al fondo */
.feature-card__img-col {
	align-self:  stretch;
	display:     flex;
	align-items: flex-end;
}

.feature-card__img {
	width:  100%;
	height: 100%;
	margin: 0;
}

.feature-card__img img {
	width:      100%;
	height:     100%;
	object-fit: cover;
	display:    block;
}

/* Botón circular de flecha */
.wp-block-button.feature-card__arrow .wp-block-button__link {
	width:           36px;
	height:          36px;
	min-width:       unset;
	padding:         0;
	display:         flex;
	align-items:     center;
	justify-content: center;
	border-radius:   50%;
	font-size:       var(--wp--preset--font-size--large);
	transition:      opacity 0.2s;
}

.wp-block-button.feature-card__arrow .wp-block-button__link:hover,
.wp-block-button.feature-card__arrow .wp-block-button__link:focus {
	opacity: 0.8;
}

/* Variante para fondo oscuro: borde semitransparente */
.wp-block-button.feature-card__arrow--on-dark .wp-block-button__link {
	border: 2px solid rgba(255, 255, 255, 0.5);
}

/* ## Hero – recorte SVG igual a hero-servicios
 * ------------------------------------------------------------------ */
.hero-blob {
	width:        min(440px, 100%);
	aspect-ratio: 1 / 1;
	margin:       0 auto;
	overflow:     hidden;
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg width='363' height='363' viewBox='0 0 363 363' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M343.689 19.2637C331.049 6.6219 314.798 0 297.344 0C291.927 0 285.908 0.601988 280.491 2.40796L48.7662 64.4129C20.4777 72.2388 0.6156 97.5224 0.0137171 127.02C-0.588166 156.517 18.6721 182.403 46.9606 190.831C76.4528 199.861 103.538 216.114 125.205 237.786C146.873 259.458 163.124 286.547 172.152 316.045C180.579 344.338 205.858 363 235.35 363H236.554C266.046 362.398 291.325 342.532 299.149 314.239L361.143 83.0746C366.56 60.801 359.94 36.1194 343.689 19.2637ZM323.225 72.8408L261.231 304.607C258.221 316.045 247.388 324.473 235.35 324.473C235.35 324.473 235.35 324.473 234.748 324.473C222.71 324.473 211.876 316.647 208.867 305.209C198.033 269.692 178.773 237.184 152.29 210.697C125.807 184.209 93.3055 164.945 57.7945 154.109C46.3587 150.498 38.5342 139.662 38.5342 127.622C38.5342 115.582 46.9606 104.746 58.9982 101.736L290.121 39.7313C292.529 39.1294 294.936 39.1294 297.344 39.1294C304.566 39.1294 311.187 42.1393 316.604 46.9552C323.225 53.5771 325.632 63.811 323.225 72.8408Z' fill='white'/><path d='M30 160.5L16 121.5L30 84.5L317.5 20L347.5 49L271.5 337.5H214L126 211.5L30 160.5Z' fill='white'/></svg>");
	mask-image: url("data:image/svg+xml;utf8,<svg width='363' height='363' viewBox='0 0 363 363' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M343.689 19.2637C331.049 6.6219 314.798 0 297.344 0C291.927 0 285.908 0.601988 280.491 2.40796L48.7662 64.4129C20.4777 72.2388 0.6156 97.5224 0.0137171 127.02C-0.588166 156.517 18.6721 182.403 46.9606 190.831C76.4528 199.861 103.538 216.114 125.205 237.786C146.873 259.458 163.124 286.547 172.152 316.045C180.579 344.338 205.858 363 235.35 363H236.554C266.046 362.398 291.325 342.532 299.149 314.239L361.143 83.0746C366.56 60.801 359.94 36.1194 343.689 19.2637ZM323.225 72.8408L261.231 304.607C258.221 316.045 247.388 324.473 235.35 324.473C235.35 324.473 235.35 324.473 234.748 324.473C222.71 324.473 211.876 316.647 208.867 305.209C198.033 269.692 178.773 237.184 152.29 210.697C125.807 184.209 93.3055 164.945 57.7945 154.109C46.3587 150.498 38.5342 139.662 38.5342 127.622C38.5342 115.582 46.9606 104.746 58.9982 101.736L290.121 39.7313C292.529 39.1294 294.936 39.1294 297.344 39.1294C304.566 39.1294 311.187 42.1393 316.604 46.9552C323.225 53.5771 325.632 63.811 323.225 72.8408Z' fill='white'/><path d='M30 160.5L16 121.5L30 84.5L317.5 20L347.5 49L271.5 337.5H214L126 211.5L30 160.5Z' fill='white'/></svg>");
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-position: center;
	mask-position: center;
}

.hero-blob img {
	display:         block;
	width:           100%;
	height:          100%;
	object-fit:      cover;
	object-position: center top;
}

/* ## Hero servicios / singular
 * Solo recorte de imagen con máscara SVG (sin ::before ni relleno accent detrás).
 * ------------------------------------------------------------------ */
.hero-servicios-section .hero-servicios-title {
	color:         var(--wp--preset--color--contrast);
	margin-top:    0;
	margin-bottom: var(--wp--preset--spacing--40);
	font-weight:   400;
}

.hero-servicios-section .hero-servicios-lead {
	color:         var(--wp--preset--color--contrast);
	margin-top:    0;
	margin-bottom: var(--wp--preset--spacing--50);
}

/* Mismo bloque que hero home (.hero-btn--outline); en fondo primary borde y texto blancos. */
.hero-servicios-section .hero-btn--outline .wp-block-button__link {
	background-color: transparent;
	color:            var(--wp--preset--color--contrast);
	border:           2px solid var(--wp--preset--color--contrast);
	border-radius:    999px;
	padding:          var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	font-weight:      500;
	font-size:        var(--wp--preset--font-size--button-text);
	transition:       background-color 0.2s ease, color 0.2s ease;
}

.hero-servicios-section .hero-btn--outline .wp-block-button__link:hover,
.hero-servicios-section .hero-btn--outline .wp-block-button__link:focus {
	background-color: rgba(255, 255, 255, 0.12);
	color:            var(--wp--preset--color--contrast);
	border-color:     var(--wp--preset--color--contrast);
}

.hero-servicios-visual {
	position:        relative;
	display:         flex;
	align-items:     center;
	justify-content: center;
	min-height:      420px;
	padding:         0;
}

/* Recorte SVG exacto para la imagen del hero de servicios. */
.hero-servicios-visual .shape-image {
	width:        440px;
	max-width:    100%;
	aspect-ratio: 1 / 1;
	overflow:     hidden;
	margin:       0 auto;
	position:     relative;
	z-index:      1;
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg width='363' height='363' viewBox='0 0 363 363' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M343.689 19.2637C331.049 6.6219 314.798 0 297.344 0C291.927 0 285.908 0.601988 280.491 2.40796L48.7662 64.4129C20.4777 72.2388 0.6156 97.5224 0.0137171 127.02C-0.588166 156.517 18.6721 182.403 46.9606 190.831C76.4528 199.861 103.538 216.114 125.205 237.786C146.873 259.458 163.124 286.547 172.152 316.045C180.579 344.338 205.858 363 235.35 363H236.554C266.046 362.398 291.325 342.532 299.149 314.239L361.143 83.0746C366.56 60.801 359.94 36.1194 343.689 19.2637ZM323.225 72.8408L261.231 304.607C258.221 316.045 247.388 324.473 235.35 324.473C235.35 324.473 235.35 324.473 234.748 324.473C222.71 324.473 211.876 316.647 208.867 305.209C198.033 269.692 178.773 237.184 152.29 210.697C125.807 184.209 93.3055 164.945 57.7945 154.109C46.3587 150.498 38.5342 139.662 38.5342 127.622C38.5342 115.582 46.9606 104.746 58.9982 101.736L290.121 39.7313C292.529 39.1294 294.936 39.1294 297.344 39.1294C304.566 39.1294 311.187 42.1393 316.604 46.9552C323.225 53.5771 325.632 63.811 323.225 72.8408Z' fill='white'/><path d='M30 160.5L16 121.5L30 84.5L317.5 20L347.5 49L271.5 337.5H214L126 211.5L30 160.5Z' fill='white'/></svg>");
	mask-image: url("data:image/svg+xml;utf8,<svg width='363' height='363' viewBox='0 0 363 363' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M343.689 19.2637C331.049 6.6219 314.798 0 297.344 0C291.927 0 285.908 0.601988 280.491 2.40796L48.7662 64.4129C20.4777 72.2388 0.6156 97.5224 0.0137171 127.02C-0.588166 156.517 18.6721 182.403 46.9606 190.831C76.4528 199.861 103.538 216.114 125.205 237.786C146.873 259.458 163.124 286.547 172.152 316.045C180.579 344.338 205.858 363 235.35 363H236.554C266.046 362.398 291.325 342.532 299.149 314.239L361.143 83.0746C366.56 60.801 359.94 36.1194 343.689 19.2637ZM323.225 72.8408L261.231 304.607C258.221 316.045 247.388 324.473 235.35 324.473C235.35 324.473 235.35 324.473 234.748 324.473C222.71 324.473 211.876 316.647 208.867 305.209C198.033 269.692 178.773 237.184 152.29 210.697C125.807 184.209 93.3055 164.945 57.7945 154.109C46.3587 150.498 38.5342 139.662 38.5342 127.622C38.5342 115.582 46.9606 104.746 58.9982 101.736L290.121 39.7313C292.529 39.1294 294.936 39.1294 297.344 39.1294C304.566 39.1294 311.187 42.1393 316.604 46.9552C323.225 53.5771 325.632 63.811 323.225 72.8408Z' fill='white'/><path d='M30 160.5L16 121.5L30 84.5L317.5 20L347.5 49L271.5 337.5H214L126 211.5L30 160.5Z' fill='white'/></svg>");
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-position: center;
	mask-position: center;
}

.hero-servicios-visual .shape-image img {
	display:         block;
	width:           100%;
	height:          100%;
	object-fit:      cover;
	object-position: center top;
}

@media (max-width: 781px) {
	.hero-servicios-visual {
		min-height: 320px;
		margin-top: var(--wp--preset--spacing--40);
	}

	.hero-servicios-visual .shape-image {
		width: min(390px, 94vw);
	}
}

/* ## Services cards with bottom image
 * Matches the three-card services layout from Figma. No inline styles.
 * ------------------------------------------------------------------ */
.section-padding-y {
	padding-top:    var(--wp--preset--spacing--80);
	padding-bottom: var(--wp--preset--spacing--80);
}

/*.section-padding-full {
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--60);
}
*/
/*.header-padding {
	padding-top:    var(--wp--preset--spacing--40);
	padding-right:  var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--40);
	padding-left:   var(--wp--preset--spacing--60);
}*/

/* ## Site header – barra superior oscura + barra principal
 * ------------------------------------------------------------------ */
.header-top-bar {
	background-color: #2A2F34;
	padding-top:    var(--wp--preset--spacing--20);
	padding-bottom: var(--wp--preset--spacing--20);
	padding-left:   var(--wp--preset--spacing--60);
	padding-right:  var(--wp--preset--spacing--60);
}

.header-top-bar a {
	color: var(--wp--preset--color--accent);
	text-decoration: none;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	font-size: var(--wp--preset--font-size--small);
}

.header-top-bar a:hover {
	color: var(--wp--preset--color--base);
}

.header-top-bar-line {
	height:           3px;
	margin:           0;
	border:           none;
	background-color: var(--wp--preset--color--accent);
	opacity:          1;
}

.header-main-bar .header-branding {
	display:     flex;
	align-items: center;
	gap:         var(--wp--preset--spacing--30);
}

.header-tagline {
	margin: 0;

}

.header-tagline p {
	margin:        0;
	font-weight:   400;
	font-size:     var(--wp--preset--font-size--small);
	color:         var(--wp--preset--color--accent);
}

/* Navegación del header: enlaces en azul primario y bold. */
.header-nav .wp-block-navigation-item__content,
.header-padding .wp-block-navigation .wp-block-navigation-item__content {
	color: var(--wp--preset--color--primary);
	font-weight: 600;
	font-size: var(--wp--preset--font-size--medium-small);
}

.header-nav .wp-block-navigation-item__content:hover,
.header-padding .wp-block-navigation .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--accent);
}

/* Botón "Nuestro catálogo": pill, azul oscuro (primary), mismo peso y tamaño que el menú */
.header-cta .wp-block-button__link {
	border-radius:  50px;
	font-weight:   400;
	font-size:      var(--wp--preset--font-size--button-text);
	padding-top:    var(--wp--preset--spacing--20);
	padding-bottom: var(--wp--preset--spacing--20);
	padding-left:   var(--wp--preset--spacing--30);
	padding-right:  var(--wp--preset--spacing--30);
	background:    var(--wp--preset--color--primary);
	color:         var(--wp--preset--color--contrast);
}

.card-box {
	border-radius: 12px;
	padding:       var(--wp--preset--spacing--50);
}

.card-box--radius-16 {
	border-radius: 16px;
}

/* ## Hero archivo servicios (patrón + cabecera listado CPT) */
.hero-servicios-archive-section h1.hero-servicios-archive-title {
	color:         var(--wp--preset--color--contrast);
	text-align:    left;
	margin-top:    0;
	margin-bottom: var(--wp--preset--spacing--40);
	font-weight:   400;
}

.hero-servicios-archive-section .wp-block-close-prisma-page-excerpt {
	margin-top: 0;
	margin-bottom: 0;
	max-width:    min(100%, 42rem);
}

.hero-servicios-archive-section .hero-servicios-archive-lead__text {
	color:       var(--wp--preset--color--contrast);
	text-align:  left;
	margin:      0;
	line-height: 1.6;
	opacity:     0.95;
}

/* ## Archivo CPT servicio (/servicios/): grid 3 columnas + tarjetas */
.servicios-archive-query .servicios-archive-grid.wp-block-post-template {
	gap: var(--wp--preset--spacing--50);
}

@media (max-width: 1100px) {
	.servicios-archive-query .servicios-archive-grid.is-layout-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 600px) {
	.servicios-archive-query .servicios-archive-grid.is-layout-grid {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.servicios-archive-query .wp-block-query-pagination {
		flex-wrap: wrap;
		row-gap:   var(--wp--preset--spacing--30);
	}
}

.servicios-archive-card.card-box {
	display:        flex;
	flex-direction: column;
	height:         100%;
	text-align:     left;
	background-color: var(--wp--preset--color--gray-light);
	border-radius:  20px;
	padding:        var(--wp--preset--spacing--50);
	overflow:       hidden;
}

/* Visual tipo services-card: imagen protagonista en la parte baja. */
.servicios-archive-card .wp-block-post-featured-image.servicios-archive-card__image {
	order:         3;
	margin:        var(--wp--preset--spacing--60) calc(-1 * var(--wp--preset--spacing--50)) calc(-1 * var(--wp--preset--spacing--50));
	overflow:      hidden;
	border-radius: 0;
	aspect-ratio:  auto;
	width:         100%;
	max-width:     100%;
	min-height:    260px;
	margin-top:    auto;
}

.servicios-archive-card .wp-block-post-featured-image.servicios-archive-card__image a {
	display: block;
	height:  100%;
	width:   100%;
}

.servicios-archive-card .wp-block-post-featured-image.servicios-archive-card__image img {
	display:         block;
	width:           100%;
	height:          100%;
	object-fit:      cover;
	object-position: center bottom;
}

.servicios-archive-card .servicios-archive-card__title {
	margin-top:    0;
	margin-bottom: var(--wp--preset--spacing--30);
	text-align:    left;
	width:         100%;
	align-self:    flex-start;
	order:         1;
}

.servicios-archive-card .servicios-archive-card__title,
.servicios-archive-card .servicios-archive-card__title a {
	color:           var(--wp--preset--color--primary);
	text-align:      left;
	text-decoration: none;
	transition:      color 0.2s ease;
}

.servicios-archive-card .servicios-archive-card__title a:hover,
.servicios-archive-card .servicios-archive-card__title a:focus {
	color: var(--wp--preset--color--accent);
}

.servicios-archive-card .wp-block-post-excerpt {
	text-align: left;
	margin-top: 0;
	order:      2;
}

.servicios-archive-card .wp-block-post-excerpt__excerpt {
	text-align: left;
}

.servicios-archive-card .wp-block-post-excerpt p {
	margin-bottom: 0;
}

@media (max-width: 781px) {
	.servicios-archive-card.card-box {
		padding: var(--wp--preset--spacing--40);
	}

	.servicios-archive-card .wp-block-post-featured-image.servicios-archive-card__image {
		margin: var(--wp--preset--spacing--50) calc(-1 * var(--wp--preset--spacing--40)) calc(-1 * var(--wp--preset--spacing--40));
		min-height: 220px;
	}
}

@media (max-width: 480px) {
	.servicios-archive-card .wp-block-post-featured-image.servicios-archive-card__image {
		min-height: 180px;
	}
}

.img-radius-8 img {
	border-radius: 8px;
}

.img-radius-12 img {
	border-radius: 12px;
}

/* ==========================================
   Base genérica reutilizable para carruseles
   ========================================== */

.js-carousel {
	position:     relative;
	overflow:     hidden;
	width:        100%;
	touch-action: pan-y pinch-zoom;
}

.marcas-carousel-wrap.js-carousel,
.sectors-carousel-wrap.js-carousel {
	-webkit-user-select: none;
	user-select:         none;
	touch-action:        pan-y pinch-zoom;
}

.js-carousel .js-carousel-track,
.js-carousel-track.wp-block-post-template,
.js-carousel-track.wp-block-post-template.is-layout-grid {
	display: flex !important;
	flex-wrap: nowrap !important;
	grid-template-columns: none !important;
	column-gap: 24px !important;
	gap: 24px !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	transform: translateX(0);
	transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
	will-change: transform;
}

.js-carousel .js-carousel-track > li,
.js-carousel-track.wp-block-post-template > li {
	flex: 0 0 calc((100% - 48px) / 3) !important;
	max-width: calc((100% - 48px) / 3) !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

@media (max-width: 1080px) {
	.js-carousel .js-carousel-track > li,
	.js-carousel-track.wp-block-post-template > li {
		flex-basis: calc((100% - 24px) / 2) !important;
		max-width: calc((100% - 24px) / 2) !important;
	}
}

@media (max-width: 700px) {
	.js-carousel .js-carousel-track > li,
	.js-carousel-track.wp-block-post-template > li {
		flex-basis: 100% !important;
		max-width: 100% !important;
	}
}

/* Flechas genéricas */
.js-carousel-prev,
.js-carousel-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 5;
	width: 42px;
	height: 42px;
	border: 0;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.45);
	cursor: pointer;
	padding: 0;
}

.js-carousel-prev {
	left: 8px;
}

.js-carousel-next {
	right: 8px;
}

.js-carousel-prev::before,
.js-carousel-next::before {
	content: "";
	display: block;
	width: 10px;
	height: 10px;
	margin: auto;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
}

.js-carousel-prev::before {
	transform: rotate(-135deg);
}

.js-carousel-next::before {
	transform: rotate(45deg);
}

.js-carousel-prev:disabled,
.js-carousel-next:disabled {
	opacity: 0.4;
	cursor: default;
}

/* ==========================================
   Estilos específicos de sectores
   ========================================== */

.sectors-carousel-wrap {
	position: relative;
}

.sectors-carousel-card {
	height: 100%;
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
}

.sectors-carousel-card__image {
	margin: 0 !important;
	
}

.sectors-carousel-card__image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.sectors-carousel-card__content {
	padding: 12px 16px;
}

.sectors-carousel-card__title {
	margin: 0;
	text-align: center;
}

.sectors-carousel-card__title a {
	text-decoration: none;
}

/* ===== Sectores: estilo visual tipo tarjeta vertical con texto encima ===== */

.sectors-carousel-wrap {
	position: relative;
	padding-bottom: 34px; /* deja espacio para bullets después */
}

.sectors-carousel-card {
	position: relative;
	background: transparent !important;
	border-radius: 18px;
	overflow: hidden;
	min-height: 0;
	box-shadow: none;
}

.sectors-carousel-card__image {
	position: relative;
	margin: 0 !important;

	
	border-radius: 18px;
	overflow: hidden;
}

.sectors-carousel-card__image a,
.sectors-carousel-card__image img {
	display: block;
	width: 100%;
}

.sectors-carousel-card__image img {
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 18px;
}

.sectors-carousel-card__content {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 12px 16px 10px;
	background: linear-gradient(
		to top,
		rgba(0, 0, 0, 0.55) 0%,
		rgba(0, 0, 0, 0.18) 45%,
		rgba(0, 0, 0, 0) 100%
	);
	z-index: 2;
	pointer-events: none;
}

/* Alta especificidad (section + tipo + clases) para ganar a global styles sin !important. */
.sectors-carousel-section .sectors-carousel-wrap .sectors-carousel-card h3.sectors-carousel-card__title.wp-block-post-title {
	margin:      0;
	text-align:  left;
	font-size:   var(--wp--preset--font-size--x-large);
	font-weight: 400;
}

.sectors-carousel-section .sectors-carousel-wrap .sectors-carousel-card h3.sectors-carousel-card__title.wp-block-post-title a,
.sectors-carousel-section .sectors-carousel-wrap .sectors-carousel-card h3.sectors-carousel-card__title.wp-block-post-title .wp-block-post-title__link {
	color:           #fff;
	text-decoration: none;
	pointer-events:  auto;
	font-weight:     400;
}

.sectors-carousel-section .sectors-carousel-wrap .sectors-carousel-card h3.sectors-carousel-card__title.wp-block-post-title a:hover,
.sectors-carousel-section .sectors-carousel-wrap .sectors-carousel-card h3.sectors-carousel-card__title.wp-block-post-title .wp-block-post-title__link:hover {
	color:           #fff;
	text-decoration: none;
}

/* opcional: oculta flechas para acercarte al diseño de referencia */
.sectors-carousel-wrap .js-carousel-prev,
.sectors-carousel-wrap .js-carousel-next {
	display: none;
}
/* ===== Sectores: tarjeta más alta ===== */

.sectors-carousel-wrap {
	position: relative;
	padding-bottom: 42px; /* espacio para bullets */
}

.sectors-carousel-card {
	position: relative;
	background: transparent !important;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: none;
}

.sectors-carousel-card__image {
	position: relative;
	margin: 0 !important;


	border-radius: 18px;
	overflow: hidden;
	aspect-ratio: 3 / 4 !important;
	min-height: 340px;
}

.sectors-carousel-card__image a,
.sectors-carousel-card__image img {
	display: block;
	width: 100%;
	height: 100%;
}

.sectors-carousel-card__image img {
	object-fit: cover;
	border-radius: 18px;
}

.sectors-carousel-card__content {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 12px 16px 10px;
	background: linear-gradient(
		to top,
		rgba(0, 0, 0, 0.58) 0%,
		rgba(0, 0, 0, 0.20) 45%,
		rgba(0, 0, 0, 0) 100%
	);
	z-index: 2;
	pointer-events: none;
}

/* ===== Bullets genéricos reutilizables ===== */

.js-carousel-bullets {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 6px;
	margin-top: 16px;
}

.js-carousel-bullet {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.35);
	cursor: pointer;
	transition: transform 0.2s ease, background-color 0.2s ease;
}

.js-carousel-bullet.is-active {
	background: #ffffff;
	transform: scale(1.2);
}



/* ## Carrusel de marcas (mismo carousel.js: js-carousel, js-carousel-track, bullets)
 * ------------------------------------------------------------------ */
.marcas-carousel-section {
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--60);
}

.marcas-carousel-heading {
	margin-top:    0;
	margin-bottom: var(--wp--preset--spacing--30);
	font-weight:   600;
}

.marcas-carousel-subtitle {
	margin-top:    0;
	margin-bottom: var(--wp--preset--spacing--60);
	margin-left:   auto;
	margin-right:  auto;
	max-width:     42rem;

}

.marcas-carousel-wrap {
	position:      relative;
	padding-bottom: 44px;
}

/* Ancho de cada slide lo fija carousel.js según data-visible-* (6 / 3 / 2) */
.marcas-carousel-wrap .marcas-carousel-track,
.marcas-carousel-wrap .marcas-carousel-track.wp-block-group {
	display:     flex !important;
	flex-wrap:   nowrap !important;
	gap:         24px !important;
	margin:      0 !important;
	padding:     0 !important;
	list-style:  none !important;
	width:       100% !important;
	max-width:   100% !important;
	box-sizing:  border-box !important;
	overflow:    hidden;
	transform:   translateX(0);
	transition:  transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
	will-change: transform;
}

.marcas-carousel-wrap .marcas-carousel-track .wp-block-group__inner-container {
	display:     flex !important;
	flex-wrap:   nowrap !important;
	gap:         24px !important;
	margin:      0 !important;
	padding:     0 !important;
	width:       max-content !important;
	min-width:   100% !important;
	box-sizing:  border-box !important;
	transform:   translateX(0);
	transition:  transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
	will-change: transform;
}

.marcas-carousel-wrap .marcas-carousel-track > .marcas-carousel-slide,
.marcas-carousel-wrap .marcas-carousel-track .wp-block-group__inner-container > .marcas-carousel-slide {
	flex-shrink:     0 !important;
	margin:          0 !important;
	padding:         8px 6px !important;
	display:         flex !important;
	align-items:     center !important;
	justify-content: center !important;
	min-height:      72px !important;
	height:          72px !important;
	max-height:      72px !important;
	box-sizing:      border-box !important;
	overflow:        hidden !important;
}

.marcas-carousel-logo {
	margin:          0 !important;
	width:           100% !important;
	height:          100% !important;
	max-width:       100% !important;
	max-height:      100% !important;
	display:         flex !important;
	align-items:     center !important;
	justify-content: center !important;

}

.marcas-carousel-logo img {
	display:    block !important;
	margin:     0 auto !important;
	max-width:  100% !important;
	max-height: 100% !important;
	width:      auto !important;
	height:     auto !important;
	object-fit: contain !important;
	object-position: center center !important;
}

.marcas-carousel-wrap .js-carousel-prev,
.marcas-carousel-wrap .js-carousel-next {
	display: none;
}

.marcas-carousel-wrap .js-carousel-bullets {
	margin-top: 20px;
}

.marcas-carousel-wrap .js-carousel-bullet {
	background: rgba(0, 61, 115, 0.2);
}

.marcas-carousel-wrap .js-carousel-bullet.is-active {
	background: var(--wp--preset--color--primary);
	transform:  scale(1.25);
}

/* ## Sectores carrusel – fondo azul a ancho completo, título izquierda, cards derecha
 * Sustituir el Query por front-blocks o CPT sectores si se desea.
 * ------------------------------------------------------------------ */
.sectors-carousel-section {
	border-radius: 16px;
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--60) var(--wp--preset--spacing--80);
}

.sectors-carousel-title {
	color:         var(--wp--preset--color--base);
	font-weight:  600;
	margin-top:    0;
	margin-bottom: var(--wp--preset--spacing--30);

}

.sectors-carousel-subtitle {
	font-weight: 400;
	margin: 0;
	opacity: 0.95;
	font-size: var(--wp--preset--font-size--medium);

}

/* Hero principal (home)
 * ------------------------------------------------------------------ */
.hero-title {
	margin-bottom: var(--wp--preset--spacing--40);
	font-weight:   700;
	
}

.hero-title .accent-word {
	color: var(--wp--preset--color--accent);
}

.hero-subtitle {
	margin-bottom: var(--wp--preset--spacing--60);
}

/* Hero simple: titular + lead centrados, ancho de lectura en el párrafo. */
.hero-simple .hero-simple-lead {
	max-width: 40rem;
	margin-left: auto;
	margin-right: auto;
}

/* ## Línea de tiempo: intro sticky + hitos (patrón timeline-sticky)
 * La columna izquierda estira a la altura de la derecha para que position:sticky
 * funcione mientras el usuario recorre los hitos.
 * ------------------------------------------------------------------ */
.timeline-sticky-section .wp-block-columns {
	align-items: stretch;
}

.timeline-sticky-section .timeline-sticky-intro-col {
	align-self: stretch;
	display: flex;
	flex-direction: column;
}

.timeline-sticky-section .timeline-sticky-intro {
	position: sticky;
	top: var(--wp--preset--spacing--80);
	padding-right: var(--wp--preset--spacing--50);
	max-width: 100%;
}

body.admin-bar .timeline-sticky-section .timeline-sticky-intro {
	top: calc(var(--wp--preset--spacing--80) + 32px);
}

@media screen and (max-width: 782px) {
	body.admin-bar .timeline-sticky-section .timeline-sticky-intro {
		top: calc(var(--wp--preset--spacing--80) + 46px);
	}
}

/* Línea en el borde izquierdo de la columna derecha (salvo gap entre columnas). */
.timeline-sticky-track-inner {
	position:      relative;
	margin-left:   0;
	border-left:   2px solid var(--wp--preset--color--accent-light);
	padding-left:  var(--wp--preset--spacing--70);
}

.timeline-sticky-section .timeline-milestone {
	position: relative;
	padding-bottom: var(--wp--preset--spacing--100);
}

.timeline-sticky-section .timeline-milestone:last-child {
	padding-bottom: 0;
}

/* Centro del punto sobre el eje de la línea (2px): padding + mitad del borde, centrado con translateX. */
.timeline-sticky-section .timeline-milestone::before {
	content:          "";
	position:         absolute;
	left:             calc(-1 * var(--wp--preset--spacing--70) - 1px);
	top:              0.35rem;
	width:            12px;
	height:           12px;
	margin-left:      0;
	border-radius:    50%;
	background-color: var(--wp--preset--color--primary);
	border:           2px solid var(--wp--preset--color--base);
	box-sizing:       border-box;
	transform:        translateX(-50%);
	z-index:          1;
}

.timeline-sticky-section .timeline-milestone__year {
	margin-top:    0;
	margin-bottom: var(--wp--preset--spacing--30);
	font-size:     var(--wp--preset--font-size--small);
	font-weight:   600;
	letter-spacing: 0.02em;
}

.timeline-sticky-section .timeline-milestone__text {
	margin-top:    0;
	margin-bottom: 0;
}

.timeline-sticky-section .timeline-milestone__media {
	margin-top:    var(--wp--preset--spacing--50);
	margin-bottom: 0;
}

.timeline-sticky-section .timeline-milestone__media img {
	width:     auto;
	max-width: 220px;
	height:    auto;
}

@media (max-width: 781px) {
	.timeline-sticky-section .timeline-sticky-intro {
		position:      relative;
		top:           auto;
		padding-right: 0;
		max-width:     none;
		margin-bottom: var(--wp--preset--spacing--60);
	}

	body.admin-bar .timeline-sticky-section .timeline-sticky-intro {
		top: auto;
	}
}

.hero-btn .wp-block-button__link {
	border-radius: 50px;
	padding:       var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

.hero-btn .wp-block-button__link svg {
	display:        inline-block;
	vertical-align: middle;
	margin-right:   8px;
}

.hero-btn--outline .wp-block-button__link {
	border:           2px solid var(--wp--preset--color--accent);
	border-radius:    50px;
	background-color: transparent;
	color:            var(--wp--preset--color--accent);
	padding:          var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

.lead-text {
	font-size: var(--wp--preset--font-size--large);
}

.cta-banner-box {
	border-radius: 16px;
}

.content-padding-y {
	padding-top:    var(--wp--preset--spacing--80);
	padding-bottom: var(--wp--preset--spacing--80);
}

.content-padding-medium {
	padding-top:    var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--60);
}

.servicios-archive-query .servicios-archive-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 50px;
}

.servicios-archive-query .servicios-archive-grid > li {
	flex: 0 0 calc((100% - 100px) / 3);
	max-width: calc((100% - 100px) / 3);
}

/*.footer-padding {
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--60) var(--wp--preset--spacing--60);
}
*/
/* Títulos del footer: tamaño un poco más bajo, azul oscuro */
.footer-heading {
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--primary);
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--30);
}

/* Enlaces de la columna izquierda: gris, más pequeños, más espacio entre líneas, sin subrayado */
.footer-padding .wp-block-columns > .wp-block-column:not(.footer-col-right) p {
	font-size: var(--wp--preset--font-size--small);
	margin-bottom: var(--wp--preset--spacing--20);
}

.footer-padding .wp-block-columns > .wp-block-column:not(.footer-col-right) p:last-child {
	margin-bottom: 0;
}

.footer-padding .wp-block-columns > .wp-block-column:not(.footer-col-right) a {
	color: var(--wp--preset--color--gray-dark);
	text-decoration: none;
}

.footer-padding .wp-block-columns > .wp-block-column:not(.footer-col-right) a:hover {
	color: var(--wp--preset--color--primary);
}

/* Botón Llámanos: más fino, texto no bold, más pequeño */
.footer-padding .footer-cta .wp-block-button__link {
	font-weight: 400;
	font-size: var(--wp--preset--font-size--small);
	padding-top: var(--wp--preset--spacing--20);
	padding-bottom: var(--wp--preset--spacing--20);
	padding-left: var(--wp--preset--spacing--30);
	padding-right: var(--wp--preset--spacing--30);
}

.footer-padding .footer-cta {
	margin-bottom: var(--wp--preset--spacing--40);
}

/* Redes sociales: fondo azul claro redondo, icono azul oscuro */
.footer-padding .wp-block-social-links.wp-block-social-links {
	margin-bottom: var(--wp--preset--spacing--40);
	gap: var(--wp--preset--spacing--40);
}

.footer-padding .wp-block-social-links .wp-block-social-link {
	background: var(--wp--preset--color--accent-light) !important;
	color: var(--wp--preset--color--primary);
	border-radius: 50%;
	border: none;
	padding: var(--wp--preset--spacing--30);
}

.footer-padding .wp-block-social-links .wp-block-social-link:hover {
	background: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--contrast);
}

.footer-padding .wp-block-social-links .wp-block-social-link a {
	color: var(--wp--preset--color--primary);
}

.footer-padding .wp-block-social-links .wp-block-social-link:hover a {
	color: var(--wp--preset--color--contrast);
}

/* Horario y textos de la columna derecha: gris, letra más pequeña */
.footer-col-right p {
	color: var(--wp--preset--color--gray-dark);
	font-size: var(--wp--preset--font-size--small);
}

.footer-logo {
	margin: 0 auto;
	max-width: 120px;
}

.footer-padding .wp-block-columns.aligncenter {
	margin-top: var(--wp--preset--spacing--60);
}

/* Columna derecha del footer: alineación a la derecha */
.footer-col-right {
	text-align: right;
}

.footer-col-right .wp-block-buttons {
	justify-content: flex-end;
}

.footer-col-right .wp-block-social-links {
	justify-content: flex-end;
}

.home-intro-margin {
	margin-top:    var(--wp--preset--spacing--60);
	margin-bottom: var(--wp--preset--spacing--60);
}

.section-heading-spacing {
	margin-bottom: var(--wp--preset--spacing--60);
}


/* ## Services cards
 * Especificidad alta para sobrescribir .wp-block-cover .wp-block-cover__image-background del core.
 * ------------------------------------------------------------------ */
.wp-block-cover.services-card.wp-block-cover {
	min-height: 500px;
	position: relative;
}

.wp-block-cover.services-card.wp-block-cover > .wp-block-cover__image-background {
	top:    auto;
	left:   auto;
	right:  0;
	bottom: 0;
	height: 65%;
	width:  auto;
}

/* centrada abajo */
.wp-block-cover.services-card--image-center.wp-block-cover > .wp-block-cover__image-background {
	left:   50%;
	right:  auto;
	bottom: 0;
	transform: translateX(-50%);
	height: 65%;
	width:  auto;
	object-position: center bottom;
}

/* derecha abajo */
.wp-block-cover.services-card--image-right.wp-block-cover > .wp-block-cover__image-background {
	left:   auto;
	right:  0;
	bottom: 0;
	transform: none;
	height: 65%;
	width:  auto;
	object-position: right bottom;
}

.wp-block-cover.services-card.wp-block-cover > .services-card__overlay-link {
	position:      absolute;
	inset:         0;
	z-index:       2;
	border-radius: 20px;
}

.wp-block-cover.services-card.wp-block-cover > .wp-block-cover__inner-container {
	position: relative;
	z-index:  3;
}

.wp-block-cover.services-card.wp-block-cover .services-card__icon {
	position: relative;
	z-index:  4;
}

.wp-block-cover.services-card.wp-block-cover .wp-block-heading a {
	text-decoration: none;
}

.wp-block-cover.services-card.wp-block-cover .wp-block-heading a:hover,
.wp-block-cover.services-card.wp-block-cover .wp-block-heading a:focus {
	text-decoration: none;
}

/* ## Productos – grid de categorías (patrón products-grid)
 * ------------------------------------------------------------------ */

.products-grid-header {
	display: flex;
	flex-wrap: nowrap;
	justify-content: space-between;
	align-items: center;
	margin-bottom: var(--wp--preset--spacing--60);
}

.products-grid-header__title {
	margin: 0;
}

.products-grid-header__link {
	margin: 0;
}

.products-grid-header__link a {
	color: var(--wp--preset--color--accent);
	text-decoration: none;
	font-weight: 500;
}

.products-grid-header__link a:hover,
.products-grid-header__link a:focus {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
}

/*
 * El bloque Columns de este patrón se fuerza a grid.
 * Así todas las cajas de productos tienen la misma anchura y altura visual.
 */
.products-grid-section .wp-block-columns {
	display: grid !important;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--50);
	align-items: start;
	margin-bottom: 0;
}

.products-grid-section .wp-block-column {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	min-width: 0;
	margin: 0 !important;
}

/* Caja gris uniforme */
.products-grid-section .products-grid-card {
	width: 100%;
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 16px;
	padding: var(--wp--preset--spacing--40);
	box-sizing: border-box;
	transition: background-color 0.2s ease;
}

.products-grid-section .products-grid-card:hover {
	background-color: var(--wp--preset--color--accent-light) !important;
}

/* Imagen centrada dentro de la caja */
.products-grid-section .products-grid-card__image {
	width: 100%;
	height: 100%;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.products-grid-section .products-grid-card__image a {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.products-grid-section .products-grid-card__image img {
	display: block;
	width: auto;
	height: auto;
	max-width: 90%;
	max-height: 82%;
	object-fit: contain;
}

/* Etiqueta uniforme debajo */
.products-grid-section .products-grid__label {
	margin: 0;
	padding-top: var(--wp--preset--spacing--40) !important;
	padding-bottom: 0 !important;
	min-height: 3.2em;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	text-align: center;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.2;
	font-weight: 600;
	color: var(--wp--preset--color--primary);
}

.products-grid-section .products-grid__label a {
	color: var(--wp--preset--color--primary);
	text-decoration: none;
}

.products-grid-section .products-grid__label a:hover,
.products-grid-section .products-grid__label a:focus {
	color: var(--wp--preset--color--accent);
	text-decoration: none;
}

/* Responsive productos */
@media (max-width: 1280px) {
	.products-grid-section .wp-block-columns {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (max-width: 781px) {
	.products-grid-header {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--wp--preset--spacing--30);
	}

	.products-grid-section .wp-block-columns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--wp--preset--spacing--40);
	}

	.products-grid-section .products-grid-card {
		padding: var(--wp--preset--spacing--30);
	}

	.products-grid-section .products-grid__label {
		padding-top: var(--wp--preset--spacing--30) !important;
		min-height: 2.8em;
	}
}

@media (max-width: 480px) {
	.products-grid-section .wp-block-columns {
		grid-template-columns: 1fr;
	}
}
/* ## Experiencie and commitment
 * ------------------------------------------------------------------ */
.flex-column-bottom {
	display: flex;
      flex-direction: column;
      justify-content: center;
}

/* ## Imagen y texto derecha (patrón imagen-texto-derecha)
 * Imagen izquierda ~790×530, radius 30px; H2 + párrafo a la derecha, sin CTA.
 * ------------------------------------------------------------------ */
/* Hueco claro entre imagen y texto (refuerzo si el blockGap del tema queda corto). */
.imagen-texto-derecha-section > .wp-block-columns {
	column-gap: var(--wp--preset--spacing--80);
	row-gap:    var(--wp--preset--spacing--50);
}

/* Aire entre H2 y párrafo (columna de texto). */
.imagen-texto-derecha-section .wp-block-columns > .wp-block-column:nth-child(2) .wp-block-heading {
	margin-top:    0;
	margin-bottom: var(--wp--preset--spacing--40);
}

.imagen-texto-derecha-section .wp-block-columns > .wp-block-column:nth-child(2) .wp-block-heading + .wp-block-paragraph {
	margin-top: 0;
}

.imagen-texto-derecha-section .imagen-texto-derecha__image {
	margin:    0;
	max-width: 100%;
}

.imagen-texto-derecha-section .imagen-texto-derecha__image img {
	display:         block;
	width:           100%;
	max-width:       790px;
	height:          auto;
	aspect-ratio:    790 / 530;
	object-fit:      cover;
	object-position: center center;
	border-radius:   30px;
}

@media (max-width: 781px) {
	.imagen-texto-derecha-section .imagen-texto-derecha__image img {
		max-width: 100%;
	}
}

/* ## Texto + imagen derecha (patrón texto-imagen-derecha)
 * Una imagen arriba, título primary, párrafos pequeños, CTA accent.
 * ------------------------------------------------------------------ */
.texto-imagen-section .texto-imagen-top-img {
	margin-top:    0;
	margin-bottom: var(--wp--preset--spacing--40);
}

/* Logo pequeño arriba del título */
.texto-imagen-section .texto-imagen-top-img img {
	display:    block;
	width:      auto;
	max-width:  100px;
	max-height: 40px;
	height:     auto;
	object-fit: contain;
}

.texto-imagen-section .texto-imagen-heading {
	margin-top:    0;
	margin-bottom: var(--wp--preset--spacing--40);
	color:         var(--wp--preset--color--primary);
	font-weight:   600;
}

.texto-imagen-section .texto-imagen-lead,
.texto-imagen-section .texto-imagen-body {
	margin-top:    0;
	margin-bottom: var(--wp--preset--spacing--30);
	color:         var(--wp--preset--color--gray-dark);
	font-weight:   300;
	font-size:     var(--wp--preset--font-size--medium-small);
	
	
}

.texto-imagen-section .texto-imagen-body {
	margin-bottom: var(--wp--preset--spacing--40);
}

.texto-imagen-section .texto-imagen-cta {
	margin: 0;
}

.texto-imagen-section .texto-imagen-cta a {
	color:           var(--wp--preset--color--accent);
	font-weight:     600;
	font-size:       var(--wp--preset--font-size--medium-small);
	
	text-decoration: none;
	transition:      opacity 0.2s ease;
}

.texto-imagen-section .texto-imagen-cta a:hover,
.texto-imagen-section .texto-imagen-cta a:focus {
	text-decoration: underline;
	opacity:         0.9;
}

.texto-imagen-section .texto-imagen-right-img {
	margin: 0;

}

.texto-imagen-section .texto-imagen-right-img img {
	width:         100%;
	height:        auto;
	display:       block;
	border-radius: 24px;
	object-fit:    cover;
	aspect-ratio:  4 / 3;
	min-height:    280px;
}

@media (max-width: 781px) {
	.texto-imagen-section .texto-imagen-right-img img {
		aspect-ratio: 16 / 10;
		min-height:   220px;
	}
}

/**
 * CTA banner: mismo ritmo que texto-imagen / secciones (alignfull + section-padding-y).
 */
.cta-banner-section {
	overflow: visible;
}

/* Patrones antiguos sin section-padding-y: mismo padding que marcas-carousel-section. */
.cta-banner-section:not(.section-padding-y) {
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--60);
}

/* Evita margen extra de layout flow entre esta sección y el bloque azul. */
.cta-banner-section > .cta-banner-box:first-child {
	margin-block-start: 0;
}

.cta-banner-section .cta-banner-box,
.cta-banner-section .cta-banner-box.is-layout-flow,
.cta-banner-section .cta-banner-box.wp-block-group-is-layout-flow {
	background-color: #10a5e5;
	border-radius:    20px;
	overflow:         visible;
	position:         relative;
	box-sizing:       border-box;
	padding:          0;
	padding-block:    0;
	padding-inline:   0;
}

/* Sin aire bajo la fila de columnas (la imagen debe pegar al borde inferior del azul). */
.cta-banner-section .cta-banner-box > .cta-banner-columns {
	margin-bottom: 0;
	padding-bottom: 0;
}

.cta-banner-columns.wp-block-columns {
	display:        flex;
	flex-wrap:      nowrap;
	align-items:    flex-end;
	margin-bottom:  0;
}

.cta-banner-col-text {
	display:         flex;
	flex-direction:  column;
	justify-content: center;
	padding:         2rem 2.5rem;
	align-self:      center;
}

.cta-banner-col-media {
	display:         flex;
	align-items:     flex-end;
	justify-content: center;
	overflow:        visible;
	padding-right:   clamp(0.25rem, 2vw, 1.25rem);
	padding-left:    0;
	padding-bottom:  0;
	margin-bottom:   0;
	min-width:       0;
	align-self:      flex-end;
}

.cta-banner-figure {
	margin:      0;

	max-width:   100%;
	overflow:    visible;
	align-self:  flex-end;
}

.cta-banner-figure img {
	display:          block;
	height:           auto;
	max-height:       min(420px, 52vw);
	width:            auto;
	max-width:        100%;
	margin-top:       -60px;
	object-fit:       contain;
	object-position:  bottom center;
	vertical-align:   bottom;
}

.cta-banner-contact-btn .wp-block-button__link {
	background-color: #ffffff !important;
	color:            #10a5e5 !important;
	border:           none !important;
	font-weight:      500;
	font-size:        var(--wp--preset--font-size--small);
	display:          inline-flex !important;
	align-items:      center;
	text-decoration:  none;
	box-shadow:       none !important;
	padding-top:      0.45rem !important;
	padding-bottom:   0.45rem !important;
	padding-left:     1rem !important;
	padding-right:    1rem !important;
}

.cta-banner-contact-btn .wp-block-button__link:hover,
.cta-banner-contact-btn .wp-block-button__link:focus {
	background-color: #f0f9ff !important;
	color:            #0d94d4 !important;
}

.cta-banner-contact-btn .wp-block-button__link::before {
	content:            "";
	width:              1.15em;
	height:             1.15em;
	flex-shrink:        0;
	margin-right:       0.5em;
	background-color:   #10a5e5;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm-5 18c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm5-4H7V6h10v9z'/%3E%3C/svg%3E");
	mask-image:         url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm-5 18c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm5-4H7V6h10v9z'/%3E%3C/svg%3E");
	-webkit-mask-size:  contain;
	mask-size:          contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat:        no-repeat;
	-webkit-mask-position: center;
	mask-position:      center;
}

@media (max-width: 781px) {
	.cta-banner-columns.wp-block-columns {
		flex-direction: column;
		align-items:    stretch;
	}

	.cta-banner-col-text {
		padding:    1.75rem 1.75rem 1.5rem;
		align-self: stretch;
	}

	.cta-banner-col-media {
		padding:         0 1rem 0;
		justify-content: center;
	}

	.cta-banner-figure img {
		margin-top: -60px;
		max-height: 240px;
	}
}

/**
 * CTA «¿Hablamos?» + Gravity Forms (patrón hablamos-formulario-gravity).
 */
.hablamos-gf-box {
	--hablamos-gf-pad-y: clamp(1.75rem, 4vw, 3rem);
	--hablamos-gf-pad-x: clamp(1.5rem, 3vw, 2.5rem);
	background-color:  var(--wp--preset--color--primary);
	border-radius:     30px;
	overflow:          hidden;
	box-sizing:        border-box;
	padding-top:       var(--hablamos-gf-pad-y);
	padding-right:     var(--hablamos-gf-pad-x);
	padding-bottom:    0;
	padding-left:      var(--hablamos-gf-pad-x);
}

.hablamos-gf-columns {
	margin-bottom: 0;
}

/* Misma altura de columnas; la imagen se ancla al borde inferior de la izquierda. */
.hablamos-gf-box .hablamos-gf-columns.wp-block-columns {
	align-items: stretch;
}

.hablamos-gf-intro-col {
	display:         flex;
	flex-direction:  column;
	align-self:      stretch;
	min-height:      100%;
	justify-content: flex-start;
	/* Baja el bloque de título + párrafo; la imagen sigue abajo (margin-top: auto en figure). */
	padding-top:     var(--wp--preset--spacing--60);
	padding-bottom:  0;
	margin-bottom:   0;
}

.hablamos-gf-intro-col h2.wp-block-heading {
	margin:  0 0 var(--wp--preset--spacing--30) 0;
	color:   var(--wp--preset--color--contrast);
}

.hablamos-gf-intro-col > p {
	margin:      0;
	color:       var(--wp--preset--color--contrast);
	line-height: 1.55;
}

.hablamos-gf-figure {
	margin-top:       auto;
	margin-bottom:    0;
	margin-left:      0;
	margin-right:     0;
	max-width:        100%;
	width:            100%;
	align-self:       stretch;
	line-height:      0;
	padding-bottom:   0;
}

.hablamos-gf-figure img {
	display:         block;
	max-width:       100%;
	width:           auto;
	height:          auto;
	max-height:      min(380px, 52vh);
	object-fit:      contain;
	object-position: left bottom;
	vertical-align:  bottom;
}

/* El aire inferior del bloque solo en el formulario; la imagen queda a ras del borde inferior de la caja. */
.hablamos-gf-form-col {
	min-width:      0;
	padding-bottom: var(--hablamos-gf-pad-y);
	margin-bottom:  0;
}

.hablamos-gf-form-inner {
	margin:  0;
	padding: 0;
}

/* Gravity Forms dentro de la caja */
.hablamos-gf-box .gform_wrapper {
	margin:  0;
	padding: 0;
}

.hablamos-gf-box .gform_wrapper .gform_heading {
	display: none;
}

.hablamos-gf-box .gform_wrapper .gfield_label,
.hablamos-gf-box .gform_wrapper legend.gfield_label {
	color:         var(--wp--preset--color--contrast);
	font-size:     var(--wp--preset--font-size--small);
	font-weight:   500;
	margin-bottom: 0.2rem;
}

.hablamos-gf-box .gform_wrapper .gfield_required {
	color: var(--wp--preset--color--accent-light);
}

.hablamos-gf-box .gform_wrapper .ginput_container input[type="text"],
.hablamos-gf-box .gform_wrapper .ginput_container input[type="email"],
.hablamos-gf-box .gform_wrapper .ginput_container input[type="tel"],
.hablamos-gf-box .gform_wrapper .ginput_container input[type="number"],
.hablamos-gf-box .gform_wrapper .ginput_container input[type="url"],
.hablamos-gf-box .gform_wrapper .ginput_container select {
	width:            100%;
	max-width:        100%;
	box-sizing:       border-box;
	background-color: rgba(255, 255, 255, 0.06);
	border:           1px solid var(--wp--preset--color--accent);
	border-radius:    999px;
	color:            var(--wp--preset--color--contrast);
	padding:          0.5rem 1rem;
	font-size:        var(--wp--preset--font-size--small);
	line-height:      1.4;
	transition:       border-color 0.2s ease, background-color 0.2s ease;
}

.hablamos-gf-box .gform_wrapper .ginput_container textarea {
	width:            100%;
	max-width:        100%;
	box-sizing:       border-box;
	background-color: rgba(255, 255, 255, 0.06);
	border:           1px solid var(--wp--preset--color--accent);
	border-radius:    16px;
	color:            var(--wp--preset--color--contrast);
	padding:          0.5rem 1rem;
	font-size:        var(--wp--preset--font-size--small);
	line-height:      1.45;
	min-height:       3.5rem;
	resize:           vertical;
	transition:       border-color 0.2s ease, background-color 0.2s ease;
}

/* Subetiquetas, contador, instrucciones: gris claro legible sobre primary. */
.hablamos-gf-box .gform_wrapper .gfield_description,
.hablamos-gf-box .gform_wrapper .gform_fileupload_rules,
.hablamos-gf-box .gform_wrapper .ginput_counter,
.hablamos-gf-box .gform_wrapper .gfield_description_text,
.hablamos-gf-box .gform_wrapper .gform-field-label--type-sub,
.hablamos-gf-box .gform_wrapper .instruction,
.hablamos-gf-box .gform_wrapper .gfield small,
.hablamos-gf-box .gform_wrapper .gfield .character_counter,
.hablamos-gf-box .gform_wrapper .ginput_container + .gfield_description {
	color:       rgba(255, 255, 255, 0.78);
	font-size:   var(--wp--preset--font-size--small);
	font-weight: 400;
	line-height: 1.35;
	margin-top:  0.2rem;
}

.hablamos-gf-box .gform_wrapper .ginput_container select {
	appearance: none;
}

.hablamos-gf-box .gform_wrapper .ginput_container input::placeholder,
.hablamos-gf-box .gform_wrapper .ginput_container textarea::placeholder {
	color:   rgba(255, 255, 255, 0.45);
	opacity: 1;
}

.hablamos-gf-box .gform_wrapper .ginput_container input:focus,
.hablamos-gf-box .gform_wrapper .ginput_container select:focus,
.hablamos-gf-box .gform_wrapper .ginput_container textarea:focus {
	outline:          none;
	border-color:     var(--wp--preset--color--accent-light);
	background-color: rgba(255, 255, 255, 0.1);
}

.hablamos-gf-box .gform_wrapper .gfield {
	margin-bottom: 0.35rem;
	padding-bottom: 0;
}

.hablamos-gf-box .gform_wrapper .gfield--type-section {
	margin-bottom: var(--wp--preset--spacing--30);
}

.hablamos-gf-box .gform_wrapper ul.gform_fields {
	row-gap:    0;
	column-gap: 0;
}

.hablamos-gf-box .gform_wrapper .gform_fields {
	gap: 0;
}

.hablamos-gf-box .gform_wrapper .gfield_consent_label,
.hablamos-gf-box .gform_wrapper .gchoice label {
	color:       var(--wp--preset--color--contrast);
	font-size:   var(--wp--preset--font-size--small);
	font-weight: 400;
}

.hablamos-gf-box .gform_wrapper .gfield_consent_label a,
.hablamos-gf-box .gform_wrapper .gchoice a {
	color:               var(--wp--preset--color--accent);
	text-decoration:     underline;
	text-underline-offset: 2px;
}

.hablamos-gf-box .gform_wrapper .gfield_consent_label a:hover,
.hablamos-gf-box .gform_wrapper .gchoice a:hover {
	color: var(--wp--preset--color--accent-light);
}

.hablamos-gf-box .gform_wrapper .gfield_checkbox input[type="checkbox"],
.hablamos-gf-box .gform_wrapper .ginput_container_consent input[type="checkbox"] {
	width:         auto;
	min-width:     1rem;
	height:        1rem;
	accent-color:  var(--wp--preset--color--accent);
	margin-top:    0.15rem;
	vertical-align: top;
}

.hablamos-gf-box .gform_wrapper .gform_footer,
.hablamos-gf-box .gform_wrapper .gform_page_footer {
	margin-top: var(--wp--preset--spacing--20);
	padding:    0;
	width:      100%;
	max-width:  100%;
	display:    block;
	clear:      both;
}

.hablamos-gf-box .gform_wrapper .gform_button,
.hablamos-gf-box .gform_wrapper .gform_footer input[type="submit"],
.hablamos-gf-box .gform_wrapper .gform_footer input.button,
.hablamos-gf-box .gform_wrapper button[type="submit"] {
	display:       block;
	width:         100% !important;
	max-width:     100% !important;
	box-sizing:    border-box;
	border:        none;
	border-radius: 30px !important;
	padding:       0.75rem 1.25rem;
	font-size:     var(--wp--preset--font-size--button-text);
	font-weight:   600;
	color:         var(--wp--preset--color--contrast);
	cursor:        pointer;
	background:    linear-gradient(135deg, #009fe3 0%, #00587d 100%);
	transition:    opacity 0.2s ease, filter 0.2s ease;
}

.hablamos-gf-box .gform_wrapper .gform_button:hover,
.hablamos-gf-box .gform_wrapper .gform_footer input[type="submit"]:hover,
.hablamos-gf-box .gform_wrapper button[type="submit"]:hover {
	filter: brightness(1.06);
}

.hablamos-gf-box .gform_confirmation_message {
	margin-top: var(--wp--preset--spacing--40);
	color:      var(--wp--preset--color--contrast);
}

@media (max-width: 781px) {
	.hablamos-gf-columns {
		flex-direction: column;
	}

	.hablamos-gf-intro-col {
		padding-top: var(--wp--preset--spacing--40);
	}

	/* Apilado: la imagen sigue al texto sin hueco enorme. */
	.hablamos-gf-intro-col .hablamos-gf-figure {
		margin-top: var(--wp--preset--spacing--40);
	}
}

/* Archive Sectores */
.sectores-archive-grid {
	gap: 2rem;
}

.sectores-archive-card .wp-block-post-featured-image {
	margin-bottom: 1.25rem;
}

.sectores-archive-card__title {
	margin-top: 1.25rem;
}

.sectores-archive-card__image img {
	width: 100%;
	height: 260px;
	object-fit: cover;
	display: block;
}

/* Archive Sectores */
.sectores-archive-card__image {
	margin-bottom: 1rem;
}

.sectores-archive-card__title,
.sectores-archive-card__title a {
	color: #0f2b5b;
	text-decoration: none;
}

.sectores-archive-card__title a:hover,
.sectores-archive-card__title a:focus {
	color: #0f2b5b;
}

/* Catálogo: desktop fuera / móvil dentro del menú */

@media (max-width: 781px) {
	.catalogo-menu {
		display: none!important;
	}

}


/* Menú móvil overlay */
@media (max-width: 781px) {
	.menu-mobile .wp-block-navigation__container {
		gap: 1.25rem;
	}

	.menu-mobile .wp-block-navigation-item {
		margin: 0;
	}

	.menu-mobile .wp-block-navigation-item__content {
		font-size: 1.75rem;
		font-weight: 700;
		line-height: 1.2;
		padding: 0.25rem 0;
		text-decoration: none;
	}

	.menu-mobile .wp-block-navigation-item__label {
		display: inline-block;
	}

	.menu-mobile .wp-block-buttons {
		margin-top: 2rem;
	}
	
}

@media (max-width: 781px) {
	.cta-banner-columns > .wp-block-column.cta-banner-col-text,
	.cta-banner-columns > .wp-block-column.cta-banner-col-media {
		width: unset !important;
		min-width: 0 !important;
	}
	.wp-container-core-group-is-layout-3edd2c80 {
    align-items: center;
}
}

.servicios-archive-card__image img,
.img-servicios {
	width: auto !important;
	height: auto !important;
	max-width: 70%;
	max-height: 300px;
	object-fit: contain !important;
	display: block;
	margin: 0 auto;
}

.servicios-archive-card__image {
	display: flex;
	align-items: flex-end;
	justify-content: center;
}

.servicios-archive-card__image img,
.img-servicios {
	width: auto !important;
	height: auto !important;
	max-width: 70%;
	max-height: 300px;
	object-fit: contain !important;
	display: block;
}

.servicios-archive-card .wp-block-post-featured-image.servicios-archive-card__image a {
    display: flex;
}

.services-cards-columns {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px;
}

.services-cards-columns > .wp-block-column {
	flex: 0 0 calc((100% - 40px) / 3);
	max-width: calc((100% - 40px) / 3);
	margin: 0;
}
/*Documentacion*/
.prisma-documentos-section__title {
	margin: 0 0 2rem;
	font-size: clamp(2rem, 3vw, 3rem);
	line-height: 1.1;
	font-weight: 700;
	color: var(--wp--preset--color--primary);
}

.prisma-documentos-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.75rem;
	align-items: stretch;
}

.prisma-documentos-grid.grid5 {
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1rem;
}

.prisma-documentos-grid > .wp-block-group {
	min-width: 0;
}

.prisma-documento-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--wp--preset--color--base);
	border-radius: 22px;
	box-shadow: 0 8px 24px rgba(0, 61, 115, 0.08);
	overflow: hidden;
	padding: 0;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.prisma-documento-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 32px rgba(0, 61, 115, 0.12);
}

.prisma-documento-card__media-wrap {
	padding: 1.25rem 1.25rem 0;
}

.prisma-documento-card__image {
	margin: 0;
	border:1px solid var(--wp--preset--color--surface-ice);
	border-radius: 0;
	overflow: hidden;
}

.prisma-documento-card__image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 4;
	object-fit: contain;
	border: 1px solid var(--wp--preset--color--accent-light);
	padding: 0.5rem;
}

.prisma-documento-card__content {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 1.25rem 1.25rem 1.35rem;
}

.prisma-documento-card__title {
	margin: 0 0 0.85rem;
	font-size: clamp(1.2rem, 1.6vw, 1.75rem);
	line-height: 1.15;
	font-weight: 700;
	color: var(--wp--preset--color--primary);
}

.prisma-documento-card__text {
	margin: 0 0 1.25rem;
	color: var(--wp--preset--color--gray-dark);
	line-height: 1.65;
	font-size: 1rem;
}

.prisma-documento-card__link {
	margin-top: auto;
	margin-bottom: 0;
}

.prisma-documento-card__link a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 500;
	font-size: 1rem;
	color: var(--wp--preset--color--accent);
	text-decoration: none;
}

.prisma-documento-card__link a::before {
	content: "↓";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1rem;
	line-height: 1;
}

.prisma-documento-card__link a:hover,
.prisma-documento-card__link a:focus {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
}

@media (max-width: 1280px) {
	.prisma-documentos-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 991px) {
	.prisma-documentos-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.prisma-documentos-section__title {
		margin-bottom: 1.5rem;
	}
}

@media (max-width: 640px) {
	.prisma-documentos-grid {
		grid-template-columns: 1fr;
	}

	.prisma-documento-card__media-wrap {
		padding: 1rem 1rem 0;
	}

	.prisma-documento-card__content {
		padding: 1rem 1rem 1.15rem;
	}
}

.entry-content ul li::marker,
.entry-content ol li::marker {
	color: var(--wp--preset--color--accent-light);
}

.entry-content ul,
.entry-content ol {
	padding-left: 1.4rem;
}

.entry-content ul li,
.entry-content ol li {
	padding-left: 0.35rem;
}

.entry-content ul li + li,
.entry-content ol li + li {
	margin-top: 0.55rem;
}

.entry-content ul li::marker,
.entry-content ol li::marker {
	color: var(--wp--preset--color--accent-light);
	font-size: 1.2em;
	font-weight: 700;
}

.entry-content ul {
	padding-left: 0;
	list-style: none;
}

.entry-content ul li {
	position: relative;
	padding-left: 1.4rem;
}

.entry-content ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.72em;
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: var(--wp--preset--color--accent-light);
	transform: translateY(-50%);
}

.entry-content ul li + li {
	margin-top: 0.55rem;
}

/*hero*/
.hero-blob img,
.hero-blob video,
.hero-blob .hero-blob__media {
	display:         block;
	width:           100%;
	height:          100%;
	object-fit:      cover;
	object-position: center center;
}
.hero-video {
	line-height: 0;
	background: transparent;
}

.hero-video video {
	border: 0;
	outline: 0;
}

.hero-blob {
	width:        min(620px, 100%);
	aspect-ratio: 1 / 1;
}

.hero-home {
	padding-top:20px;
	padding-bottom:20px;
}

/* ## Espaciado para contenido editorial normal
 * Afecta a bloques directos del contenido de página.
 * Evita tocar patrones estructurados, header y footer.
 * ------------------------------------------------------------------ */

.wp-block-post-content > :where(p, ul, ol, blockquote, table),
.entry-content > :where(p, ul, ol, blockquote, table) {
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--40);
}

.wp-block-post-content > :where(h1, h2, h3, h4, h5, h6),
.entry-content > :where(h1, h2, h3, h4, h5, h6) {
	margin-top: var(--wp--preset--spacing--60);
	margin-bottom: var(--wp--preset--spacing--30);
}

.wp-block-post-content > :where(h1, h2, h3, h4, h5, h6):first-child,
.entry-content > :where(h1, h2, h3, h4, h5, h6):first-child {
	margin-top: 0;
}

.products-grid-section .products-grid__label a {
	text-decoration:none;
	color: var(--wp--preset--color--primary);
}

.products-grid-section .products-grid__label a:hover {
	color: var(--wp--preset--color--accent);
}

/* ==============================
   Servicios cards - Responsive
   ============================== */


/* Tablet */
@media (max-width: 1024px) {
	.services-cards-columns {
		gap: 24px;
	}

	.services-cards-columns > .wp-block-column {
		flex: 1 1 calc(50% - 24px);
		max-width: calc(50% - 24px);
	}
}

/* Móvil */
@media (max-width: 781px) {
	.services-cards-columns {
		flex-direction: column;
		align-items: stretch;
		gap: 24px;
	}

	.services-cards-columns > .wp-block-column {
		flex-basis: auto !important;
		max-width: 100%;
		width: 100%;
	}

	.services-card {
		min-height: auto !important;
	}
	.wp-block-cover.services-card.wp-block-cover > .wp-block-cover__inner-container {
    padding-bottom: 100px;
}
	.wp-container-core-columns-is-layout-40aed5b8 {
    gap: 30px;
}
	.wp-block-spacer.dn {
		height:24px!important;
	}
	.wp-block-site-logo img {
    height: auto;
    max-width: 140px;
}
	.wp-container-core-columns-is-layout-76029916
	.products-grid__label {
		padding-top:4px!important;
	}
}

@media (max-width: 781px) {
	.sectors-carousel-section {
		width: 100vw !important;
		max-width: 100vw !important;
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
		border-radius: 0 !important;
		box-sizing: border-box;
	}
.sectors-carousel-section {
    padding-left:20px!important;
	padding-right:20px!important;
}
}


@media (max-width: 781px) {
	.sectors-carousel-section .wp-block-columns {
		display: flex;
		flex-direction: column;
		gap: 24px;
	}

	.sectors-carousel-section .wp-block-column {
		flex-basis: auto !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0;
	}
	.sectors-carousel-section .sectors-track > li::before,
.sectors-carousel-section .wp-block-post-template > li::before {
	content: none !important;
	display: none !important;
}
	.sectors-carousel-section .sectors-carousel-card__title,
	.sectors-carousel-section .sectors-carousel-card__title a {
		font-size: 18px;
		line-height: 1.15;
		padding-bottom:10px;
	}
}

@media (max-width: 781px) {
	.servicios-archive-query .servicios-archive-grid {
		display: grid !important;
		grid-template-columns: 1fr !important;
		gap: 24px !important;
		width: 100%;
		max-width: 100%;
		padding-left: 0 !important;
		margin-left: 0 !important;
		list-style: none !important;
	}

	.servicios-archive-query .servicios-archive-grid > li {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
		padding-left: 0 !important;
		list-style: none !important;
	}

	.servicios-archive-query .servicios-archive-card {
		width: 100%;
		max-width: 100%;
		min-height: auto !important;
		box-sizing: border-box;
	}
}


/* Desktop medio */
@media (max-width: 1280px) {
	.prisma-documentos-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
	.wp-block-site-logo img {
    max-width: 150px;
}
}

/* Tablet */
@media (max-width: 991px) {
	.prisma-documentos-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

/* Móvil */
@media (max-width: 640px) {
	.prisma-documentos-grid {
		grid-template-columns: 1fr !important;
		gap: 24px !important;
		width: 100%;
		max-width: 100%;
	}

	.prisma-documentos-grid > .wp-block-group,
	.prisma-documentos-grid > .prisma-documento-card {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
		box-sizing: border-box;
	}
}

.feature-card-diferencia p {
    font-weight:700;
}

/* Menú móvil: tamaño de letras de los enlaces */
.menu-mobile .wp-block-navigation-item__content,
.menu-mobile .wp-block-navigation-item__label {
	font-size: 20px;
	line-height: 1.3;
	font-weight: 700;
}

.menu-mobile {
		padding-top: 80px !important;
	}


/* ==========================================
   Servicios - carrusel con bullets
   Usa el carousel.js genérico del tema.
   ========================================== */

.services-carousel-wrap {
	position: relative;
	overflow: hidden;
	width: 100%;
	padding-bottom: 44px;
	touch-action: pan-y pinch-zoom;
	-webkit-user-select: none;
	user-select: none;
}

.services-carousel-track,
.services-carousel-track.wp-block-group,
.services-carousel-track.wp-block-group.is-layout-flow,
.services-carousel-wrap .js-carousel-track {
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: 24px !important;
	column-gap: 24px !important;
	row-gap: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	transform: translateX(0);
	transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
	will-change: transform;
}

.services-carousel-slide {
	flex-shrink: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box;
	min-width: 0;
}

.services-carousel-slide > .wp-block-cover.services-card {
	height: 100%;
}

.services-carousel-wrap .wp-block-cover.services-card.wp-block-cover {
	min-height: 500px;
}

/* Flechas ocultas: el JS las necesita, pero visualmente usamos bullets */
.services-carousel-wrap .services-carousel-arrow,
.services-carousel-wrap .js-carousel-prev,
.services-carousel-wrap .js-carousel-next {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

/* Bullets de servicios */
.services-carousel-wrap .js-carousel-bullets {
	display: flex !important;
	justify-content: center;
	align-items: center;
	gap: 8px;
	margin-top: 22px;
	width: 100%;
}

.services-carousel-wrap .js-carousel-bullet {
	display: inline-block;
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(0, 61, 115, 0.2);
	cursor: pointer;
	transition: transform 0.2s ease, background-color 0.2s ease;
}

.services-carousel-wrap .js-carousel-bullet.is-active {
	width: 8px;
	height: 8px;
	background: var(--wp--preset--color--primary);
	transform: none;
}

.services-carousel-wrap .js-carousel-bullet:hover,
.services-carousel-wrap .js-carousel-bullet:focus {
	background: var(--wp--preset--color--accent);
	outline: none;
}

/* Evita selección rara al arrastrar */
.services-carousel-wrap.is-dragging {
	cursor: grabbing;
	user-select: none;
}

.services-carousel-wrap.is-dragging a {
	pointer-events: none;
}

/* Responsive */
@media (max-width: 781px) {
	.services-carousel-wrap {
		padding-bottom: 38px;
	}

	.services-carousel-wrap .wp-block-cover.services-card.wp-block-cover {
		min-height: 360px;
	}

	.services-carousel-wrap .wp-block-cover.services-card.wp-block-cover > .wp-block-cover__inner-container {
		padding-bottom: 100px;
	}
	
	.wp-container-core-columns-is-layout-fb181bca {
    column-gap: 3rem;
		gap: 1.5rem 3rem;
	}
}

@media (max-width: 480px) {
	.services-carousel-wrap .wp-block-cover.services-card.wp-block-cover {
		min-height: 320px;
	}
}

/*Forms*/

 .gform_wrapper .ginput_container input[type="text"],  .gform_wrapper .ginput_container input[type="email"],  .gform_wrapper .ginput_container input[type="tel"],  .gform_wrapper .ginput_container input[type="number"],  .gform_wrapper .ginput_container input[type="url"],  .gform_wrapper .ginput_container select {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    background-color: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--wp--preset--color--accent);
    border-radius: 999px;
    color: var(--wp--preset--color--contrast);
    padding: 0.5rem 1rem;
    font-size: var(--wp--preset--font-size--small);
    line-height: 1.4;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

 .gform_wrapper .ginput_container textarea {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    background-color: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--wp--preset--color--accent);
    border-radius: 16px;
    color: var(--wp--preset--color--contrast);
    padding: 0.5rem 1rem;
    font-size: var(--wp--preset--font-size--small);
    line-height: 1.45;
    min-height: 3.5rem;
    resize: vertical;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

 .gform_wrapper .gfield_label, .hablamos-gf-box .gform_wrapper legend.gfield_label {
    color: var(--wp--preset--color--contrast);
    font-size: var(--wp--preset--font-size--small);
    font-weight: 800!important;
    margin-bottom: 0.2rem;
}

.wp-block-post-content strong,
.entry-content strong,
.wp-block-paragraph strong {
	font-weight: 700;
}