/*
Theme Name: Switch
Theme URI: https://switch.pe
Author: Switch
Description: Tema de bloques a medida para Switch, agencia de contenidos digitales, con la identidad del manual de marca 2026 (rojo, negro y crema; Archivo y Merriweather). Todos los textos se editan con el editor de bloques: la portada y cada servicio son páginas armadas con patrones, y la cabecera y el pie se editan en el Editor del sitio.
Version: 3.0.1
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: switch
*/

/* Identidad del manual de marca 2026: rojo, negro y crema como base; naranja, rosa
   y celeste solo de realce (un color por servicio). Titulares en Archivo ExtraBold
   tipo oración, textos en Merriweather. Las clases sw-* se ponen en cada bloque
   (Avanzado › Clases CSS adicionales). */
:root {
	--sw-rojo: #ea5230;
	--sw-rojo-texto: #b83a1e; /* rojo legible en textos pequeños sobre fondos claros */
	--sw-negro: #1a1a1a;
	--sw-crema: #ecebda;
	--sw-fondo: #f5f4ec; /* crema aclarado para fondos largos de lectura */
	--sw-naranja: #f4ae50;
	--sw-rosa: #f6c5b5;
	--sw-celeste: #bfd9e3;
	--sw-texto-2: #45433d;
	--sw-texto-3: #5f5c54;
	--sw-linea: rgba(26, 26, 26, .14);
	--sw-linea-2: rgba(26, 26, 26, .28);
	--sw-f-titulo: "Archivo", "Calibre", "Helvetica Neue", Arial, sans-serif;
	--sw-f-texto: "Merriweather", Georgia, "Times New Roman", serif;
	--sw-ancho: 1200px;
	--sw-radio: 16px;
	/* Colores que cambian según la superficie (crema, rojo o negro). */
	--sw-tx: var(--sw-negro);
	--sw-tx-2: var(--sw-texto-2);
	--sw-acento: var(--sw-rojo);
	--sw-acento-txt: var(--sw-rojo-texto);
	--sw-borde: var(--sw-linea);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; animation: none !important; } }
body {
	margin: 0;
	background: var(--sw-fondo);
	color: var(--sw-negro);
	font-family: var(--sw-f-texto);
	font-size: 16px;
	line-height: 1.7;
}
img { max-width: 100%; height: auto; }
a { color: inherit; }
a:hover { color: var(--sw-acento-txt); }
:focus-visible { outline: 3px solid var(--sw-naranja); outline-offset: 3px; }
h1, h2, h3, h4 { font-family: var(--sw-f-titulo); margin: 0; text-wrap: balance; color: inherit; letter-spacing: -.02em; line-height: 1.15; }
p { margin: 0; }

/* Los bloques no traen márgenes propios: el espacio lo dan los contenedores sw-*. */
.wp-site-blocks > *, .wp-site-blocks .wp-block-group > *, .wp-block-post-content > * { margin-block: 0; }
.wp-block-image { margin: 0; }
.wp-block-image img { display: block; }
.wp-block-list { margin: 0; }

/* Superficies */
.sw-sec--crema { background: var(--sw-crema); }
.sw-sec--rojo { background: var(--sw-rojo); color: var(--sw-negro); --sw-tx-2: var(--sw-negro); --sw-acento: var(--sw-crema); --sw-acento-txt: var(--sw-negro); --sw-borde: rgba(26,26,26,.25); }
.sw-sec--rojo .sw-h2 { color: var(--sw-crema); }
.sw-sec--negro, .sw-footer, .sw-header { background: var(--sw-negro); color: var(--sw-crema); --sw-tx: var(--sw-crema); --sw-tx-2: rgba(236,235,218,.78); --sw-acento-txt: var(--sw-rojo); --sw-borde: rgba(236,235,218,.18); }
.sw-sec--negro a:hover, .sw-footer a:hover, .sw-header a:hover { color: var(--sw-rojo); }

/* Contenedores */
.sw-wrap { max-width: var(--sw-ancho); margin-inline: auto !important; width: 100%; }
.sw-band { padding-left: max(24px, env(safe-area-inset-left, 0px)); padding-right: max(24px, env(safe-area-inset-right, 0px)); }
@media (max-width: 480px) { .sw-band { padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); } }
.sw-sec { padding-block: clamp(64px, 9vw, 112px); }
.sw-stack { display: flex; flex-direction: column; gap: 48px; }
.sw-stack--24 { gap: 24px; }
.sw-mt { margin-top: 40px !important; }
.sw-head { display: flex; flex-direction: column; gap: 16px; max-width: 760px; }
.sw-eyebrow { font-family: var(--sw-f-titulo); font-weight: 700; font-size: 15px; color: var(--sw-acento-txt); }
.sw-h1 { font-weight: 800; font-size: clamp(48px, 7.4vw, 104px); line-height: .98; letter-spacing: -.035em; }
.sw-h1 em { color: var(--sw-rojo); font-style: normal; }
.sw-h2 { font-weight: 800; font-size: clamp(32px, 4.6vw, 58px); line-height: 1.02; letter-spacing: -.03em; }
.sw-h3 { font-weight: 800; font-size: 22px; line-height: 1.2; }
.sw-lead { font-size: clamp(17px, 1.6vw, 20px); max-width: 56ch; color: var(--sw-tx-2); }
.sw-muted { color: var(--sw-tx-2); }
.sw-small { font-size: 14px; color: var(--sw-tx-2); }
.sw-promesa { font-weight: 700; font-style: italic; font-size: clamp(20px, 2.2vw, 26px); line-height: 1.35; color: var(--sw-crema); max-width: 34ch; }

/* La S del isotipo como figura decorativa (máscara de color) */
.sw-onoff::after, .sw-hero--servicio::before, .sw-lista-s li::before {
	content: "";
	-webkit-mask: url(assets/img/iso-rojo.svg) no-repeat center / contain;
	mask: url(assets/img/iso-rojo.svg) no-repeat center / contain;
	background: currentColor;
}

/* Botones (estilos "Rojo", "Negro" y "Borde" del bloque Botón) */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 14px; }
.wp-block-button .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 48px; padding: 13px 28px; border-radius: 999px;
	font-family: var(--sw-f-titulo); font-weight: 700; font-size: 18px; line-height: 1.1;
	text-decoration: none; border: 2px solid transparent; cursor: pointer;
	background: var(--sw-rojo); color: var(--sw-negro);
	transition: transform .15s, background-color .15s, color .15s;
}
.wp-block-button .wp-block-button__link:hover { transform: translateY(-2px); }
.wp-block-button.is-style-rojo .wp-block-button__link { background: var(--sw-rojo); color: var(--sw-negro); }
.wp-block-button.is-style-rojo .wp-block-button__link:hover { background: var(--sw-negro); color: var(--sw-crema); }
.wp-block-button.is-style-negro .wp-block-button__link { background: var(--sw-negro); color: var(--sw-crema); }
.wp-block-button.is-style-negro .wp-block-button__link:hover { background: var(--sw-crema); color: var(--sw-negro); border-color: var(--sw-negro); }
.wp-block-button.is-style-borde .wp-block-button__link { border-color: currentColor; color: inherit; background: transparent; }
.wp-block-button.is-style-borde .wp-block-button__link:hover { color: inherit; background: rgba(26,26,26,.06); }
.sw-sec--negro .wp-block-button.is-style-rojo .wp-block-button__link:hover, .sw-header .wp-block-button.is-style-rojo .wp-block-button__link:hover { background: var(--sw-crema); color: var(--sw-negro); }

/* Cabecera: barra negra con el logotipo a color, como en el manual */
.wp-site-blocks > header { position: sticky; top: 0; z-index: 50; }
.admin-bar .wp-site-blocks > header { top: 32px; }
@media (max-width: 782px) { .admin-bar .wp-site-blocks > header { top: 46px; } }
.sw-nav { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 12px 28px; padding-block: 10px; }
.sw-logo img { height: 52px; width: auto; }
.sw-logo a { display: block; }
.sw-menu { margin-left: auto !important; font-family: var(--sw-f-titulo); font-weight: 600; font-size: 15px; }
.sw-menu .wp-block-navigation__container { gap: 8px 28px; }
.sw-menu a { text-decoration: none; }
.sw-menu .wp-block-navigation__responsive-container-open { color: var(--sw-crema); }
.sw-menu .wp-block-navigation__responsive-container.is-menu-open { padding: 24px; }
.sw-menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { font-size: 26px; font-weight: 800; gap: 18px; }
.sw-header .wp-block-button__link { font-size: 16px; padding: 10px 20px; min-height: 44px; }
@media (max-width: 782px) { .sw-header__cta { display: none !important; } }

/* Logotipo: siempre como imagen, nunca redibujado */
.sw-footer .sw-logo img { height: 72px; }

/* Portada */
.sw-hero { background: var(--sw-crema); padding-block: clamp(56px, 8vw, 104px) clamp(48px, 7vw, 88px); overflow: hidden; }
.sw-hero__grid { display: flex; flex-wrap: wrap; gap: 40px 56px; align-items: center; }
.sw-hero__txt { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 28px; }
.sw-hero__vis { flex: 1 1 300px; min-width: 0; position: relative; max-width: 400px; margin: 0 auto !important; }
.sw-hero__s img { width: 100%; height: auto; animation: sw-entra .9s cubic-bezier(.2,.8,.2,1) both; }
@keyframes sw-entra { from { transform: rotate(-14deg) scale(.9); opacity: 0; } to { transform: none; opacity: 1; } }
.sw-chip { position: absolute; left: -8%; bottom: 14%; white-space: nowrap; background: var(--sw-negro); color: var(--sw-crema); border-radius: 16px 16px 16px 4px; padding: 12px 16px; font-family: var(--sw-f-titulo); font-weight: 700; font-size: 15px; line-height: 1.35; box-shadow: 0 14px 30px rgba(26,26,26,.2); }
.sw-chip__sub { font-weight: 500; font-size: 12px; opacity: .75; }
@media (max-width: 700px) { .sw-hero__vis { max-width: 200px; } .sw-chip { left: -30%; bottom: 8%; font-size: 13px; } }

/* Colores de realce por servicio */
.sw-c-rojo { --sw-c: var(--sw-rojo); --sw-c-tx: var(--sw-negro); }
.sw-c-naranja { --sw-c: var(--sw-naranja); --sw-c-tx: var(--sw-negro); }
.sw-c-celeste { --sw-c: var(--sw-celeste); --sw-c-tx: var(--sw-negro); }
.sw-c-rosa { --sw-c: var(--sw-rosa); --sw-c-tx: var(--sw-negro); }
.sw-c-negro { --sw-c: var(--sw-negro); --sw-c-tx: var(--sw-crema); }

/* Enlace que cubre toda la tarjeta (solo en la web, no en el editor) */
body:not(.editor-styles-wrapper) .sw-franja__item a::after,
body:not(.editor-styles-wrapper) .sw-obj__link a::after,
body:not(.editor-styles-wrapper) .sw-serv__link a::after { content: ""; position: absolute; inset: 0; z-index: 1; }

/* Franja de servicios bajo la portada */
.sw-franja { display: grid; grid-template-columns: repeat(5, 1fr); border-block: 2px solid var(--sw-negro); }
.sw-franja__item { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 18px clamp(14px, 2vw, 24px); background: var(--sw-c); color: var(--sw-c-tx); font-family: var(--sw-f-titulo); font-weight: 700; font-size: clamp(15px, 1.4vw, 18px); transition: padding .2s; }
.sw-franja__item::after { content: "→"; }
.sw-franja__item a { text-decoration: none; color: inherit; }
.sw-franja__item:hover { padding-left: clamp(20px, 2.6vw, 32px); }
.sw-franja__item + .sw-franja__item { border-left: 2px solid var(--sw-negro); }
@media (max-width: 760px) {
	.sw-franja { grid-template-columns: repeat(2, 1fr); }
	.sw-franja__item { border-left: 0 !important; border-top: 2px solid var(--sw-negro); }
	.sw-franja__item:nth-child(-n+2) { border-top: 0; }
	.sw-franja__item:nth-child(even) { border-left: 2px solid var(--sw-negro) !important; }
	.sw-franja__item:last-child { grid-column: 1 / -1; border-left: 0 !important; }
}

/* Certificaciones */
.sw-certs { padding-block: 26px; border-bottom: 1px solid var(--sw-linea); }
.sw-certs .sw-wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 28px; }
.sw-certs__label { font-family: var(--sw-f-titulo); font-weight: 700; font-size: 14px; color: var(--sw-texto-3); }
.sw-certs ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; font-family: var(--sw-f-titulo); font-weight: 700; font-size: 14px; }
.sw-certs li { border: 1.5px solid var(--sw-negro); border-radius: 999px; padding: 6px 14px; }

/* Lista con la S como viñeta */
.sw-lista-s { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 14px; font-size: 17px; }
.sw-lista-s li { display: flex; gap: 14px; align-items: flex-start; }
.sw-lista-s li::before { flex-shrink: 0; width: 18px; height: 22px; margin-top: 3px; color: var(--sw-crema); }

/* Dos columnas (FAQ, contacto, para quién) */
.sw-split { display: flex; flex-wrap: wrap; gap: 32px 56px; align-items: flex-start; }
.sw-split > :first-child { flex: 1 1 320px; min-width: 0; }
.sw-split > :last-child { flex: 2 1 480px; min-width: 0; }

/* Rejillas */
.sw-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 18px; }
.sw-grid--300 { grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); }

/* Dolores */
.sw-dolor { border-top: 3px solid var(--sw-rojo); padding-top: 20px; display: flex; flex-direction: column; gap: 10px; }

/* Objetivos */
.sw-obj { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 28px; border-radius: var(--sw-radio); background: var(--sw-negro); color: var(--sw-crema); transition: background-color .2s, transform .2s; }
.sw-obj:hover { background: var(--sw-rojo); color: var(--sw-negro); transform: translateY(-3px); }
.sw-obj__titulo { font-family: var(--sw-f-titulo); font-weight: 800; font-size: 26px; line-height: 1.1; letter-spacing: -.02em; }
.sw-obj p:not([class]) { font-size: 15px; opacity: .85; }
.sw-obj__link { font-family: var(--sw-f-titulo); font-weight: 700; font-size: 15px; margin-top: 6px !important; }
.sw-obj__link a { color: var(--sw-rojo); text-decoration: none; }
.sw-obj:hover .sw-obj__link a { color: var(--sw-negro); }

/* Servicios: tarjeta con cabecera del color de realce */
.sw-serv { position: relative; border-radius: var(--sw-radio); display: flex; flex-direction: column; gap: 14px; padding: 0 0 24px; overflow: hidden; color: var(--sw-negro); background: var(--sw-fondo); border: 2px solid var(--sw-negro); transition: transform .2s, box-shadow .2s; }
.sw-serv > :not(.sw-serv__top) { margin-inline: 24px !important; }
.sw-serv:hover { transform: translateY(-4px); box-shadow: 6px 6px 0 var(--sw-negro); }
.sw-serv__top { display: flex; justify-content: space-between; align-items: baseline; padding: 18px 24px; background: var(--sw-c); color: var(--sw-c-tx); font-family: var(--sw-f-titulo); font-weight: 700; font-size: 16px; border-bottom: 2px solid var(--sw-negro); }
.sw-serv__num { font-weight: 800; font-size: 40px; line-height: 1; letter-spacing: -.03em; }
.sw-serv__res { font-style: italic; color: var(--sw-texto-2); }
.sw-serv ul { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 15px; color: var(--sw-texto-2); flex: 1; }
.sw-serv li::before { content: "— "; color: var(--sw-rojo); }
.sw-serv__pie { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; border-top: 1px solid var(--sw-linea); padding-top: 14px; font-family: var(--sw-f-titulo); font-size: 15px; color: var(--sw-texto-3); }
.sw-serv__link a { font-weight: 700; color: var(--sw-rojo-texto); text-decoration: none; }

/* Modo on / modo off: el interruptor lo arma main.js con los textos de cada panel */
.sw-onoff { position: relative; overflow: hidden; border-radius: var(--sw-radio); padding: 28px 28px 112px; display: flex; flex-direction: column; gap: 16px; background: var(--sw-negro); color: var(--sw-crema); }
.sw-onoff > * { position: relative; z-index: 1; }
.sw-onoff::after { position: absolute; right: -30px; bottom: -84px; width: 150px; height: 180px; color: var(--sw-rojo); transition: transform .5s cubic-bezier(.2,.8,.2,1), color .3s; }
.sw-onoff[data-modo="off"]::after { transform: scaleX(-1); color: #3a3a37; }
.sw-onoff h3 { font-weight: 800; font-size: 30px; line-height: 1.05; }
.sw-panel { display: flex; flex-direction: column; gap: 8px; }
.sw-panel__lado { font-family: var(--sw-f-titulo); font-weight: 700; color: var(--sw-rojo); }
.sw-onoff.is-listo .sw-panel__lado { display: none; }
.sw-panel[hidden] { display: none; }
.sw-toggle { display: flex; gap: 4px; background: rgba(236,235,218,.12); border-radius: 999px; padding: 5px; align-self: flex-start; }
.sw-toggle button { font-family: var(--sw-f-titulo); font-weight: 700; font-size: 15px; border: 0; border-radius: 999px; padding: 10px 20px; min-height: 44px; cursor: pointer; background: transparent; color: var(--sw-crema); }
.sw-toggle button[aria-pressed="true"] { background: var(--sw-rojo); color: var(--sw-negro); }
.sw-onoff ul { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 15px; max-width: 30ch; }
.sw-onoff li::before { content: "— "; color: var(--sw-rojo); }

/* Pasos */
.sw-pasos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 0 28px; }
.sw-paso { border-top: 2px solid var(--sw-tx); padding: 24px 0; display: flex; flex-direction: column; gap: 10px; }
.sw-paso__num { font-family: var(--sw-f-titulo); font-weight: 800; font-size: 56px; line-height: 1; letter-spacing: -.04em; color: var(--sw-rojo); }
.sw-paso__cuando { font-family: var(--sw-f-titulo); font-weight: 700; font-size: 14px; color: var(--sw-tx-2); }
.sw-paso p:not([class]) { font-size: 15px; color: var(--sw-tx-2); }
.sw-entrega { font-size: 14px; color: var(--sw-tx); border-top: 1px dashed var(--sw-borde); padding-top: 10px; }
.sw-entrega strong { font-family: var(--sw-f-titulo); }

/* Tarjetas (compromisos, qué incluye) */
.sw-card { background: var(--sw-crema); border-radius: var(--sw-radio); padding: 24px; display: flex; flex-direction: column; gap: 8px; color: var(--sw-negro); }
.sw-card p { font-size: 15px; color: var(--sw-texto-2); }
.sw-card--borde { background: var(--sw-fondo); border: 2px solid var(--sw-negro); }
.sw-compromisos { margin-top: 24px !important; }
.sw-compromisos .sw-card { background: transparent; color: var(--sw-crema); border-top: 3px solid var(--sw-rojo); border-radius: 0; padding: 20px 0 0; }
.sw-compromisos .sw-card p { color: var(--sw-tx-2); }

/* Equipo (patrón opcional) */
.sw-equipo { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 300px)); gap: 32px; }
.sw-miembro { display: flex; flex-direction: column; gap: 10px; }
.sw-foto { aspect-ratio: 4 / 5; border-radius: var(--sw-radio); background: var(--sw-crema); overflow: hidden; border-bottom: 6px solid var(--sw-rojo); }
.sw-foto img { width: 100%; height: 100%; object-fit: cover; }
.sw-miembro__rol { font-family: var(--sw-f-titulo); font-weight: 700; font-size: 14px; color: var(--sw-rojo-texto); }
.sw-miembro__nombre { font-family: var(--sw-f-titulo); font-weight: 700; font-size: 22px; letter-spacing: -.02em; }
.sw-miembro p:last-child { font-size: 14px; color: var(--sw-texto-2); }

/* Preguntas educativas */
.sw-preguntas { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr)); gap: 0 48px; }
.sw-preg { border-top: 2px solid var(--sw-negro); padding: 20px 0; display: flex; flex-direction: column; gap: 4px; }
.sw-preg__q { font-size: 20px; font-weight: 700; letter-spacing: -.01em; }
.sw-preg p { font-size: 15px; color: var(--sw-texto-2); }

/* Preguntas frecuentes (bloque Detalles) */
.sw-faq .wp-block-details { border-bottom: 1px solid var(--sw-borde); padding: 20px 0; }
.sw-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 16px; font-family: var(--sw-f-titulo); font-weight: 700; font-size: 20px; letter-spacing: -.01em; }
.sw-faq summary::-webkit-details-marker { display: none; }
.sw-faq summary::after { content: "+"; flex-shrink: 0; width: 24px; text-align: center; color: var(--sw-rojo); font-size: 28px; line-height: 1; }
.sw-faq details[open] summary::after { content: "–"; }
.sw-faq details p { margin-top: 12px !important; max-width: 62ch; color: var(--sw-tx-2); }

/* Lista con check */
.sw-check { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.sw-check li { display: flex; gap: 10px; }
.sw-check li::before { content: "✓"; font-family: var(--sw-f-titulo); font-weight: 800; color: var(--sw-acento); }
.sw-sec--rojo .sw-check li::before { color: var(--sw-negro); }
.sw-check--grande { font-size: 18px; }

/* Precio */
.sw-precio { border-radius: 24px; background: var(--sw-negro); color: var(--sw-crema); --sw-acento-txt: var(--sw-rojo); --sw-tx-2: rgba(236,235,218,.8); padding: clamp(28px, 5vw, 48px); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 48px; }
.sw-precio > div { flex: 1 1 320px; min-width: 0; display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }

/* Formulario (bloque Código corto [switch_formulario]) */
.sw-form { border-radius: 24px; padding: clamp(22px, 4vw, 32px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 16px; background: var(--sw-crema); color: var(--sw-negro); border: 2px solid var(--sw-negro); box-shadow: 8px 8px 0 var(--sw-negro); }
.sw-form label { display: flex; flex-direction: column; gap: 6px; font-family: var(--sw-f-titulo); font-weight: 700; font-size: 14px; }
.sw-form input, .sw-form select { font: inherit; font-family: var(--sw-f-texto); font-weight: 400; font-size: 15px; padding: 12px 14px; border-radius: 12px; border: 1.5px solid var(--sw-linea-2); background: var(--sw-fondo); color: var(--sw-negro); min-height: 46px; width: 100%; }
.sw-form input:focus, .sw-form select:focus { border-color: var(--sw-negro); }
.sw-form .sw-full, .sw-form button, .sw-form .sw-aviso { grid-column: 1 / -1; }
.sw-form button { min-height: 48px; padding: 13px 28px; border-radius: 999px; border: 0; cursor: pointer; font-family: var(--sw-f-titulo); font-weight: 700; font-size: 18px; background: var(--sw-negro); color: var(--sw-crema); }
.sw-form button:hover { background: var(--sw-rojo); color: var(--sw-negro); }
.sw-form .sw-acepto { flex-direction: row; align-items: flex-start; gap: 10px; font-family: var(--sw-f-texto); font-weight: 400; font-size: 14px; }
.sw-form .sw-acepto input { width: auto; min-height: 0; margin-top: 4px; accent-color: var(--sw-rojo); }
.sw-form a:hover { color: var(--sw-rojo-texto); }
.sw-hp { position: absolute; left: -9999px; }
.sw-aviso { background: var(--sw-fondo); border-radius: 12px; padding: 14px; font-family: var(--sw-f-titulo); font-weight: 700; }
.sw-aviso--error { background: var(--sw-rosa); }

/* Páginas de servicio */
.sw-hero--servicio { position: relative; background: var(--sw-c, var(--sw-crema)); color: var(--sw-c-tx, var(--sw-negro)); --sw-acento-txt: currentColor; --sw-tx-2: currentColor; }
.sw-hero--servicio::before { position: absolute; right: -4%; top: 50%; translate: 0 -50%; width: min(42vw, 520px); aspect-ratio: 650 / 780; color: var(--sw-negro); opacity: .08; pointer-events: none; }
.sw-hero--servicio.sw-c-negro::before { color: var(--sw-rojo); opacity: .3; }
.sw-hero__col { position: relative; max-width: 900px; display: flex; flex-direction: column; gap: 24px; }
.sw-hero--servicio .sw-h1 em { color: inherit; font-family: var(--sw-f-texto); font-style: italic; font-weight: 700; letter-spacing: -.02em; }
.sw-hero--servicio.sw-c-negro .sw-h1 em { color: var(--sw-rojo); }
.sw-hero--servicio.sw-c-negro .is-style-negro .wp-block-button__link { background: var(--sw-rojo); color: var(--sw-negro); }
.sw-volver { font-family: var(--sw-f-titulo); font-weight: 700; font-size: 15px; }
.sw-volver a { text-decoration: none; }

/* Páginas normales y entradas */
.sw-pagina { padding-block: clamp(48px, 7vw, 88px) 96px; display: flex; flex-direction: column; gap: 24px; }
.sw-pagina > * { max-width: 760px; width: 100%; margin-inline: auto !important; }
.sw-contenido > * + * { margin-top: 1.2em !important; }
.sw-contenido h2 { font-size: 32px; font-weight: 800; margin-top: 1.6em !important; }
.sw-contenido h3 { font-size: 22px; font-weight: 800; margin-top: 1.4em !important; }
.sw-contenido a { color: var(--sw-rojo-texto); }
.sw-entrada { border-top: 1px solid var(--sw-linea); padding-block: 24px; }
.sw-entrada h2 { font-size: 24px; }
.sw-entrada a { text-decoration: none; }

/* Pie */
.sw-footer { padding-block: 64px 32px; }
.sw-patron { margin-bottom: 56px !important; }
.sw-patron img { width: min(100%, 560px); height: auto; }
.sw-footer__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); gap: 32px; }
.sw-footer__marca { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.sw-footer h4 { font-size: 15px; font-weight: 700; letter-spacing: 0; color: var(--sw-rojo); margin-bottom: 12px !important; }
.sw-footer ul { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 14px; }
.sw-footer ul a { text-decoration: none; }
.sw-reclamos { margin-top: 2px !important; }
.sw-reclamos a { display: inline-flex; border: 1.5px solid rgba(236,235,218,.4); border-radius: 10px; padding: 8px 12px; font-family: var(--sw-f-titulo); font-weight: 700; font-size: 14px; text-decoration: none; }
.sw-legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; border-top: 1px solid var(--sw-borde); padding-top: 22px; margin-top: 40px !important; font-size: 13px; color: var(--sw-tx-2); }

/* WhatsApp flotante */
.sw-wa { position: fixed; right: calc(20px + env(safe-area-inset-right, 0px)); bottom: calc(20px + env(safe-area-inset-bottom, 0px)); z-index: 60; width: 58px; height: 58px; border-radius: 50%; background: #25d366; display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 26px rgba(0,0,0,.25); }
.sw-wa svg { width: 30px; height: 30px; fill: #fff; }
