/**
 * TEFRI — secciones de la portada (patterns tefri/*).
 * Se encola solo cuando una sección `.tefri-sec` se renderiza.
 */

/* Secciones: el padding lateral lo pone theme.json (padding raíz). */
.tefri-sec { padding-block: 26px 30px; }
:root .tefri-sec > * { margin-block: 0; }
.tefri-sec .wp-block-image { margin: 0; }

/* --tefri-accent: barras e íconos (decorativos). --tefri-accent-text: texto, con
   contraste ≥ 4,5:1 sobre blanco (verde 5,3:1, naranjo 5,1:1, azul 5,5:1). */
.tefri-accent-blue { --tefri-accent: var(--wp--preset--color--blue); --tefri-accent-text: var(--wp--preset--color--blue); }
.tefri-accent-green { --tefri-accent: var(--wp--preset--color--green); --tefri-accent-text: #2a7a3b; }
.tefri-accent-orange { --tefri-accent: var(--wp--preset--color--orange); --tefri-accent-text: #a85a10; }

/* Encabezado de sección */
:root .tefri-sec > .tefri-sec-head { gap: 16px; margin-block-end: 18px; }
:root .tefri-sec-head .wp-block-group > * { margin: 0; }
.tefri-sec-head h2 { font-size: 25px; font-weight: 700; line-height: 1.5; }
.tefri-sec-head p { color: var(--wp--preset--color--muted); font-size: 14px; }
:root .tefri-sec-head .wp-block-group > p { margin-top: 4px; }
:root .tefri-sec-head .tefri-link-arrow { margin: 0; }

/* ---------- Hero ---------- */
.tefri-hero { position: relative; overflow: hidden; padding-block: 0; }
.tefri-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); align-items: stretch; min-height: 390px; }
.tefri-hero__copy { padding-block: 40px 30px; position: relative; z-index: 2; }
:root .tefri-hero__copy > * { margin-block: 0; }
.tefri-hero h1 { margin-bottom: 18px; }
:root .tefri-hero__copy > .tefri-eyebrow { margin-bottom: 14px; }
:root .tefri-hero__copy > h1 { margin-bottom: 18px; }
.tefri-lead { max-width: 470px; color: #33415a; font-size: 15.5px; }
:root .tefri-hero__copy > .tefri-lead { margin-bottom: 24px; }
.tefri-lead strong { color: var(--wp--preset--color--navy); }
:root .tefri-hero__copy > .tefri-hero__ctas { gap: 12px; margin-bottom: 30px; }
.tefri-hero__ctas .wp-block-button__link { min-width: 188px; }

.tefri-trust { display: flex; flex-wrap: wrap; gap: 16px 18px; list-style: none; padding: 0; margin: 0; }
.tefri-trust li { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #33415a; line-height: 1.3; }
.tefri-trust li::before {
	content: "";
	flex: none;
	width: 26px;
	height: 26px;
	background-color: var(--wp--preset--color--navy);
	-webkit-mask: var(--tefri-ico) center / contain no-repeat;
	mask: var(--tefri-ico) center / contain no-repeat;
}
.tefri-trust li:nth-child(1) { --tefri-ico: var(--tefri-i-shield); }
.tefri-trust li:nth-child(2) { --tefri-ico: var(--tefri-i-truck); }
.tefri-trust li:nth-child(3) { --tefri-ico: var(--tefri-i-leaf); }
.tefri-trust li:nth-child(3)::before { background-color: var(--wp--preset--color--green); }
.tefri-trust li:nth-child(4) { --tefri-ico: var(--tefri-i-gear); }

/* Imagen a sangre hacia el borde derecho de la ventana. */
.tefri-hero .tefri-hero__media {
	position: relative;
	margin: 0 calc(-1 * max(var(--wp--style--root--padding-right, 24px), (100vw - var(--wp--style--global--content-size, 1152px)) / 2)) 0 0;
}
.tefri-hero .tefri-hero__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: right center;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 14%);
	mask-image: linear-gradient(90deg, transparent 0, #000 14%);
}

/* ---------- Líneas de producto ---------- */
.tefri-cats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
:root .tefri-cats > .tefri-cat { margin: 0; }
.tefri-cat {
	position: relative;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 2px 8px rgba(15, 50, 110, .05);
	transition: transform .18s, box-shadow .18s, border-color .18s;
}
.tefri-cat:hover,
.tefri-cat:focus-within { transform: translateY(-3px); box-shadow: var(--tefri-shadow); border-color: #bcd4f2; }
.tefri-cat:focus-within { outline: 3px solid var(--tefri-focus); outline-offset: 2px; }
:root .tefri-cat > * { margin: 0; }
.tefri-cat .tefri-cat__img { position: relative; aspect-ratio: 122 / 78; overflow: hidden; z-index: 0; }
.tefri-cat .tefri-cat__img img { width: 100%; height: 100%; object-fit: cover; }
.tefri-cat__img::after { content: ""; position: absolute; left: -10%; right: -10%; bottom: -38px; height: 60px; background: #fff; border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
:root .tefri-cat > .tefri-cat__name {
	margin-top: -10px;
	z-index: 1;
	flex: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	gap: 6px;
	padding: 0 12px 12px;
}
.tefri-cat__name::before {
	content: "";
	grid-column: 1 / -1;
	align-self: start;
	width: 26px;
	height: 26px;
	background-color: var(--tefri-accent);
	-webkit-mask: var(--tefri-ico) center / contain no-repeat;
	mask: var(--tefri-ico) center / contain no-repeat;
}
.tefri-cat__name::after {
	content: "";
	width: 14px;
	height: 14px;
	margin-bottom: 1px;
	background-color: var(--wp--preset--color--blue);
	-webkit-mask: var(--tefri-i-arrow) center / contain no-repeat;
	mask: var(--tefri-i-arrow) center / contain no-repeat;
}
.tefri-cat__name a { font-size: 14px; font-weight: 600; color: var(--wp--preset--color--navy); line-height: 1.2; text-decoration: none; }
.tefri-cat__name a:hover { text-decoration: none; }
.tefri-cat__name a:focus-visible { outline: none; }
.tefri-cat__name a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.tefri-line-water { --tefri-ico: var(--tefri-i-line-water); }
.tefri-line-riles { --tefri-ico: var(--tefri-i-line-riles); }
.tefri-line-boiler { --tefri-ico: var(--tefri-i-line-boiler); }
.tefri-line-tower { --tefri-ico: var(--tefri-i-line-tower); }
.tefri-line-micro { --tefri-ico: var(--tefri-i-line-micro); }

/* ---------- Productos destacados (carrusel) ---------- */
.tefri-carousel { position: relative; }
:root .tefri-carousel > * { margin: 0; }
.tefri-track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 4 * 16px) / 5);
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	margin: 0;
	padding: 4px 2px 10px;
	list-style: none;
	scrollbar-width: none;
}
.tefri-track::-webkit-scrollbar { display: none; }
/* Tarjetas dentro de core/post-template (ul > li > article). */
:root .tefri-track > li,
:root .tefri-pgrid > li { margin: 0; display: flex; min-width: 0; }
.tefri-track > li { scroll-snap-align: start; }
.tefri-track > li > .tefri-pcard,
.tefri-pgrid > li > .tefri-pcard { flex: 1; min-width: 0; }
.tefri-pcard {
	scroll-snap-align: start;
	position: relative;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 6px;
	padding: 12px 12px 14px;
	box-shadow: 0 2px 10px rgba(15, 50, 110, .05);
}
.tefri-pcard::before { content: ""; position: absolute; left: 4px; top: 8px; height: 120px; width: 3px; border-radius: 2px; background: var(--tefri-accent, var(--wp--preset--color--blue)); }
:root .tefri-pcard > * { margin: 0; }
:root .tefri-pcard > .tefri-pcard__img { height: 112px; display: grid; place-items: center; margin-bottom: 8px; }
.tefri-pcard .tefri-pcard__img img { max-height: 108px; width: auto; max-width: 100%; height: auto; object-fit: contain; }
:root .tefri-pcard > .tefri-pcard__title { color: var(--wp--preset--color--navy); }
.tefri-pcard__cat { font-size: 11px; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; color: var(--tefri-accent-text, var(--wp--preset--color--blue)); }
:root .tefri-pcard > .tefri-pcard__title { font-size: 16px; font-weight: 700; line-height: 1.2; margin: 3px 0 4px; }
:root .tefri-pcard > .tefri-pcard__desc { font-size: 13px; color: var(--wp--preset--color--muted); line-height: 1.3; margin-bottom: 10px; min-height: 34px; }
.tefri-pcard__desc p { margin: 0; }
:root .tefri-pcard > .tefri-pcard__feats { list-style: none; padding: 0; margin-bottom: 12px; display: grid; gap: 4px; font-size: 12px; color: #3d4b62; }
:root .tefri-pcard__feats > .tefri-feat { margin: 0; display: flex; align-items: center; gap: 7px; line-height: 1.35; }
.tefri-pcard__feats > .tefri-feat:empty { display: none; }
.tefri-pcard__feats > .tefri-feat::before {
	content: "";
	flex: none;
	width: 13px;
	height: 13px;
	background-color: var(--wp--preset--color--navy);
	-webkit-mask: var(--tefri-ico) center / contain no-repeat;
	mask: var(--tefri-ico) center / contain no-repeat;
}
.tefri-feat--1 { --tefri-ico: var(--tefri-i-drop); }
.tefri-feat--2 { --tefri-ico: var(--tefri-i-cog); }
.tefri-feat--3 { --tefri-ico: var(--tefri-i-box); }
:root .tefri-pcard > .tefri-pcard__acts { margin-top: auto; display: grid; gap: 7px; }
.tefri-pcard__acts .wp-block-button { width: 100%; margin: 0; }
.tefri-pcard__acts .wp-block-button > .wp-block-button__link { width: 100%; border-radius: 4px; padding: 8px 10px; font-size: 13px; }
.tefri-pcard__acts .wp-block-button.is-style-outline > .wp-block-button__link { border-width: 1px; }

.tefri-car-btn {
	position: absolute;
	top: 44%;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	box-shadow: var(--tefri-shadow);
	color: var(--wp--preset--color--navy);
	cursor: pointer;
}
.tefri-car-btn::before {
	content: "";
	width: 16px;
	height: 16px;
	background-color: currentColor;
	-webkit-mask: var(--tefri-ico) center / contain no-repeat;
	mask: var(--tefri-ico) center / contain no-repeat;
}
.tefri-car-btn:hover { background: var(--wp--preset--color--sky); }
.tefri-car-btn:disabled { opacity: .35; cursor: default; }
.tefri-car-prev { left: -44px; --tefri-ico: var(--tefri-i-left); }
.tefri-car-next { right: -44px; --tefri-ico: var(--tefri-i-right); }

/* ---------- Industrias ---------- */
.tefri-industrias { padding-block: 22px; }
.tefri-industrias .tefri-sec-head h2 { color: #fff; font-size: 22px; font-weight: 600; }
.tefri-inds { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
:root .tefri-inds > .tefri-ind { margin: 0; }
.tefri-ind {
	position: relative;
	display: flex;
	flex-direction: column;
	border-radius: 6px;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, .25);
	background: #0a2150;
	text-align: center;
}
.tefri-ind:hover { border-color: #7fb2ff; }
.tefri-ind:focus-within { outline: 3px solid var(--tefri-focus); outline-offset: 2px; }
:root .tefri-ind > * { margin: 0; }
.tefri-ind .tefri-ind__img { overflow: hidden; }
.tefri-ind .tefri-ind__img img { width: 100%; aspect-ratio: 122 / 82; height: auto; object-fit: cover; transition: transform .35s; }
.tefri-ind:hover .tefri-ind__img img { transform: scale(1.06); }
:root .tefri-ind > .tefri-ind__name {
	z-index: 1;
	margin-top: -22px;
	padding: 24px 6px 10px;
	min-height: 62px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(180deg, rgba(10, 33, 80, 0) 0%, rgba(10, 33, 80, .9) 40%, #0a2150 100%);
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1.2;
}
.tefri-ind__name a { color: #fff; text-decoration: none; }
.tefri-ind__name a:hover { color: #fff; text-decoration: none; }
.tefri-ind__name a:focus-visible { outline: none; }
.tefri-ind__name a::after { content: ""; position: absolute; inset: 0; z-index: 2; }

/* ---------- Servicios ---------- */
.tefri-servicios { position: relative; overflow: hidden; }
.tefri-servicios .tefri-deco-l { position: absolute; left: 0; top: 10px; width: 52px; opacity: .95; }
.tefri-servicios .tefri-deco-r { position: absolute; right: 0; bottom: 0; width: 110px; }
.tefri-servicios .tefri-deco-l img,
.tefri-servicios .tefri-deco-r img { width: 100%; height: auto; }
.tefri-svc-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); gap: 30px; align-items: center; padding-right: 90px; }
:root .tefri-svc-grid > *,
:root .tefri-svc-grid > .wp-block-group > * { margin: 0; }
:root .tefri-svc-grid > .wp-block-group > h2 { font-size: 24px; line-height: 1.15; margin-bottom: 10px; }
:root .tefri-svc-grid > .wp-block-group > p { font-size: 13px; color: #3d4b62; margin-bottom: 16px; max-width: 360px; }
.tefri-svc-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; padding: 0; margin: 0; }
.tefri-svc-list li {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	padding: 4px 10px;
	border-left: 1px solid var(--wp--preset--color--line);
	text-align: center;
	font-size: 13px;
	line-height: 1.3;
	color: var(--wp--preset--color--ink);
}
.tefri-svc-list li:first-child { border-left: 0; }
.tefri-svc-list li::before { content: ""; flex: none; width: 56px; height: 56px; border-radius: 50%; background: #e1edfb; }
.tefri-svc-list li::after {
	content: "";
	position: absolute;
	top: 18px;
	left: 50%;
	width: 28px;
	height: 28px;
	transform: translateX(-50%);
	background-color: var(--wp--preset--color--navy);
	-webkit-mask: var(--tefri-ico) center / contain no-repeat;
	mask: var(--tefri-ico) center / contain no-repeat;
}
.tefri-svc-list li:nth-child(1) { --tefri-ico: var(--tefri-i-person); }
.tefri-svc-list li:nth-child(2) { --tefri-ico: var(--tefri-i-truck); }
.tefri-svc-list li:nth-child(3) { --tefri-ico: var(--tefri-i-doc); }
.tefri-svc-list li:nth-child(4) { --tefri-ico: var(--tefri-i-headset); }

/* ---------- CTA de contacto ---------- */
.tefri-cta { padding-block: 14px; }
:root .tefri-cta__in { gap: 40px; }
:root .tefri-cta__in > *,
:root .tefri-cta__in > .wp-block-group > * { margin: 0; }
.tefri-cta .tefri-cta__logo { background: #fff; border-radius: 10px; padding: 4px 10px; }
.tefri-cta .tefri-cta__logo img { display: block; height: 46px; width: auto; }
:root .tefri-cta h2 { color: #fff; font-size: 20px; font-weight: 600; line-height: 1.5; }
:root .tefri-cta__in > .wp-block-group > p { margin-top: 2px; color: #cfe0f5; font-size: 13.5px; }
:root .tefri-cta__in > .tefri-cta__btn { margin-left: auto; }
.tefri-cta__btn .wp-block-button__link { min-width: 166px; }

/* ---------- Responsive ---------- */
@media (max-width: 1290px) {
	.tefri-car-prev { left: -6px; }
	.tefri-car-next { right: -6px; }
}
@media (max-width: 1100px) {
	.tefri-track { grid-auto-columns: calc((100% - 3 * 16px) / 4); }
	.tefri-cats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tefri-inds { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.tefri-svc-grid { grid-template-columns: 1fr; padding-right: 0; }
	.tefri-servicios .tefri-deco-r { opacity: .35; }
}
@media (max-width: 900px) {
	.tefri-hero__grid { grid-template-columns: 1fr; }
	.tefri-hero .tefri-hero__media {
		height: 300px;
		margin: 0 calc(-1 * var(--wp--style--root--padding-right, 24px)) 0 calc(-1 * var(--wp--style--root--padding-left, 24px));
	}
	.tefri-hero .tefri-hero__media img { -webkit-mask-image: none; mask-image: none; }
	.tefri-track { grid-auto-columns: calc((100% - 2 * 16px) / 3); }
	:root .tefri-cta__in > .tefri-cta__btn { margin-left: 0; }
}
@media (max-width: 640px) {
	.tefri-hero .tefri-hero__media { height: 240px; }
	.tefri-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tefri-inds { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tefri-track { grid-auto-columns: 78%; }
	.tefri-svc-list { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 18px; }
	.tefri-svc-list li:nth-child(3) { border-left: 0; }
	.tefri-trust { gap: 14px; }
	.tefri-trust li { width: calc(50% - 7px); }
	.tefri-car-btn { display: none; }
}
