/**
 * Strongway — páginas informativas: Nosotros, Contacto, FAQ y Blog.
 */

/* ==================================================================
   Encabezado oscuro compartido
   ================================================================== */

.sw-pghero {
	position: relative;
	overflow: hidden;
	background: linear-gradient(115deg, var(--sw-ink) 0%, var(--sw-grey-900) 52%, color-mix(in srgb, var(--sw-red-dark) 13%, var(--sw-ink)) 100%);
	color: var(--sw-on-brand);
	padding-block: clamp(46px, 8vw, 96px);
}

.sw-pghero-grid {
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgb(255 255 255 / 7%) 1px, transparent 1.4px);
	background-size: 24px 24px;
	mask-image: linear-gradient(105deg, transparent 25%, #000 70%);
	-webkit-mask-image: linear-gradient(105deg, transparent 25%, #000 70%);
	pointer-events: none;
}

.sw-pghero-glow {
	position: absolute;
	inset: auto -12% -70% auto;
	width: 60%;
	aspect-ratio: 1;
	background: radial-gradient(circle at center, color-mix(in srgb, var(--sw-red) 24%, transparent), transparent 62%);
	pointer-events: none;
}

/* Disco olímpico en trazo fino, girando muy despacio. */
.sw-pghero-disc {
	position: absolute;
	top: 50%;
	right: clamp(-80px, -4vw, -30px);
	width: clamp(260px, 30vw, 460px);
	height: auto;
	color: rgb(255 255 255 / 12%);
	transform: translateY(-50%);
	animation: sw-disc-spin 90s linear infinite;
	pointer-events: none;
}

@keyframes sw-disc-spin {
	from {
		transform: translateY(-50%) rotate(0deg);
	}

	to {
		transform: translateY(-50%) rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.sw-pghero-disc {
		animation: none;
	}
}

/* El contenido del hero se alinea al contenedor ancho del sitio (1440 px),
   igual que la tienda: pegado a la izquierda, no flotando al centro. */
.sw-pghero .sw-wrap {
	max-width: 1440px;
}

.sw-pghero-in {
	position: relative;
}

.sw-pghero-in p {
	max-width: 62ch;
}

.sw-pghero-eyebrow {
	display: inline-block;
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--sw-red-light);
	margin-bottom: 12px;
}

.sw-pghero h1 {
	font-family: var(--sw-head);
	font-weight: 700;
	font-size: clamp(36px, 6vw, 62px);
	line-height: 1.02;
	text-transform: uppercase;
	margin: 0 0 14px;
	color: #fff;
}

.sw-pghero h1 em {
	font-style: normal;
	color: var(--sw-red);
}

.sw-pghero p {
	margin: 0;
	font-size: clamp(15.5px, 1.6vw, 17.5px);
	line-height: 1.65;
	color: rgb(255 255 255 / 74%);
	max-width: 60ch;
}

/* ==================================================================
   Nosotros
   ================================================================== */

.sw-ab-intro {
	display: grid;
	grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
	gap: clamp(28px, 5vw, 70px);
	align-items: center;
	padding-block: clamp(40px, 7vw, 84px);
}

.sw-ab-story h2 {
	font-family: var(--sw-head);
	font-weight: 700;
	font-size: clamp(26px, 3vw, 36px);
	line-height: 1.08;
	text-transform: uppercase;
	color: var(--sw-ink);
	margin: 10px 0 16px;
}

.sw-ab-story p {
	font-size: 16px;
	line-height: 1.7;
	color: var(--sw-ink-2);
	margin: 0 0 14px;
}

/* Collage con relieve: tres fotos escalonadas dentro de una escena 3D. */
.sw-ab-collage {
	perspective: 900px;
}

.sw-ab-collage-in {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
	transform-style: preserve-3d;
}

.sw-ab-photo {
	margin: 0;
	border-radius: var(--sw-radius-lg);
	overflow: hidden;
	box-shadow: var(--sw-shadow-lg);
}

.sw-ab-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.sw-ab-photo-1 {
	grid-row: 1 / 3;
	aspect-ratio: 3 / 4;
}

.sw-ab-photo-2,
.sw-ab-photo-3 {
	aspect-ratio: 4 / 3;
}

.sw-ab-collage .sw-card-glare {
	border-radius: var(--sw-radius-lg);
}

/* Banda de cifras. */
.sw-ab-stats {
	background: linear-gradient(100deg, var(--sw-ink), var(--sw-grey-900));
	color: #fff;
	padding-block: clamp(30px, 5vw, 54px);
}

.sw-ab-stats-in {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(16px, 3vw, 30px);
	text-align: center;
}

.sw-ab-stat-n {
	display: block;
	font-family: var(--sw-head);
	font-weight: 700;
	font-size: clamp(30px, 4vw, 46px);
	color: var(--sw-red-light);
	line-height: 1;
	font-variant-numeric: tabular-nums;
}

.sw-ab-stat-t {
	display: block;
	margin-top: 8px;
	font-family: var(--sw-cond);
	font-weight: 500;
	font-size: 14.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgb(255 255 255 / 65%);
}

/* Valores. */
.sw-ab-values {
	padding-block: clamp(40px, 7vw, 84px);
}

.sw-ab-values-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(14px, 2vw, 22px);
	margin-top: 26px;
	perspective: 1100px;
}

.sw-ab-value .sw-card-inner {
	position: relative;
	height: 100%;
	padding: 26px 22px;
	border: 1.5px solid var(--sw-grey-200);
	border-radius: var(--sw-radius-lg);
	background: #fff;
	box-shadow: var(--sw-shadow);
	transform-style: preserve-3d;
	overflow: hidden;
}

.sw-ab-value-ic {
	display: grid;
	place-items: center;
	width: 50px;
	height: 50px;
	border-radius: 14px;
	background: var(--sw-ink);
	color: var(--sw-red-light);
	margin-bottom: 16px;
	box-shadow: var(--sw-shadow);
	transform: translateZ(22px);
}

.sw-ab-value h3 {
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 19px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--sw-ink);
	margin: 0 0 8px;
	transform: translateZ(14px);
}

.sw-ab-value p {
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--sw-grey-500);
	margin: 0;
	transform: translateZ(8px);
}

/* Proceso. */
.sw-ab-process {
	background: var(--sw-grey-100);
	padding-block: clamp(40px, 7vw, 84px);
}

.sw-ab-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(18px, 3vw, 34px);
	list-style: none;
	margin: 30px 0 0;
	padding: 0;
	counter-reset: sw-step;
}

.sw-ab-step {
	position: relative;
	margin: 0;
	padding: 26px 24px;
	border-radius: var(--sw-radius-lg);
	background: #fff;
	border: 1.5px solid var(--sw-grey-200);
	box-shadow: var(--sw-shadow);
}

/* Conector entre pasos, solo en escritorio. */
.sw-ab-step:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 50%;
	right: calc(-1 * clamp(18px, 3vw, 34px));
	width: clamp(18px, 3vw, 34px);
	height: 2px;
	background: repeating-linear-gradient(90deg, var(--sw-grey-200) 0 6px, transparent 6px 11px);
}

.sw-ab-step-n {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--sw-red);
	color: var(--sw-on-brand);
	font-family: var(--sw-head);
	font-weight: 700;
	font-size: 18px;
	margin-bottom: 14px;
	box-shadow: var(--sw-shadow-red);
}

.sw-ab-step h3 {
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 20px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--sw-ink);
	margin: 0 0 8px;
}

.sw-ab-step p {
	font-size: 15px;
	line-height: 1.6;
	color: var(--sw-grey-500);
	margin: 0;
}

/* Banda CTA. */
.sw-ab-cta {
	background:
		radial-gradient(80% 140% at 85% 20%, rgb(255 255 255 / 10%), transparent 60%),
		linear-gradient(100deg, var(--sw-red-dark), var(--sw-red));
	color: var(--sw-on-brand);
	padding-block: clamp(34px, 5vw, 58px);
}

.sw-ab-cta-in {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}

.sw-ab-cta h2 {
	font-family: var(--sw-head);
	font-weight: 700;
	font-size: clamp(24px, 3vw, 34px);
	text-transform: uppercase;
	color: #fff;
	margin: 0 0 6px;
}

.sw-ab-cta p {
	margin: 0;
	color: rgb(255 255 255 / 85%);
}

.sw-ab-cta-actions {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}

.sw-ab-cta .sw-btn-red {
	background: var(--sw-ink);
	box-shadow: none;
}

.sw-ab-cta .sw-btn-red:hover {
	background: #000;
}

.sw-ab-cta .sw-btn-ghost {
	border-color: rgb(255 255 255 / 55%);
	color: #fff;
}

.sw-ab-cta .sw-btn-ghost:hover {
	background: rgb(255 255 255 / 12%);
	border-color: #fff;
}

/* ==================================================================
   Contacto
   ================================================================== */

.sw-ct {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: clamp(22px, 4vw, 48px);
	align-items: start;
	padding-block: clamp(40px, 6vw, 72px);
}

.sw-ct-side {
	display: grid;
	gap: 14px;
	/* Acompaña al formulario al hacer scroll: la columna corta no deja
	   un vacío muerto debajo. */
	position: sticky;
	top: calc(var(--sw-chrome-h, 120px) + 24px);
}

.sw-ct-card {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 18px 20px;
	border: 1.5px solid var(--sw-grey-200);
	border-radius: var(--sw-radius-lg);
	background: #fff;
	box-shadow: var(--sw-shadow);
	text-decoration: none;
	color: inherit;
	transition: transform 0.3s var(--sw-ease), box-shadow 0.3s var(--sw-ease), border-color var(--sw-fast) ease;
}

.sw-ct-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--sw-shadow-lg);
	border-color: var(--sw-red);
}

.sw-ct-card-ic {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	flex: 0 0 auto;
	border-radius: 14px;
	background: var(--sw-ink);
	color: var(--sw-red-light);
	box-shadow: var(--sw-shadow);
}

.sw-ct-card-txt {
	flex: 1;
	min-width: 0;
}

.sw-ct-card-t {
	display: block;
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 13.5px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--sw-grey-500);
}

.sw-ct-card-v {
	display: block;
	font-family: var(--sw-head);
	font-weight: 600;
	font-size: 16.5px;
	color: var(--sw-ink);
	margin-block: 2px;
}

.sw-ct-card-d {
	display: block;
	font-size: 13px;
	color: var(--sw-grey-500);
}

.sw-ct-card-arrow {
	color: var(--sw-grey-200);
	transition: color var(--sw-fast) ease, transform var(--sw-fast) ease;
}

.sw-ct-card:hover .sw-ct-card-arrow {
	color: var(--sw-red);
	transform: translateX(3px);
}

.sw-ct-note {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	padding: 16px 18px;
	border-radius: var(--sw-radius);
	background: var(--sw-grey-100);
	border: 1.5px dashed var(--sw-grey-200);
	color: var(--sw-red);
}

.sw-ct-note p {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--sw-ink-2);
}

/* Formulario. */
.sw-ct-form-wrap {
	position: relative;
	padding: clamp(24px, 3.5vw, 38px);
	border: 1.5px solid var(--sw-grey-200);
	border-radius: var(--sw-radius-lg);
	background: #fff;
	box-shadow: var(--sw-shadow-lg);
}

.sw-ct-form h2 {
	font-family: var(--sw-head);
	font-weight: 700;
	font-size: clamp(21px, 2.4vw, 27px);
	text-transform: uppercase;
	color: var(--sw-ink);
	margin: 0 0 20px;
}

.sw-ct-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin-bottom: 14px;
}

.sw-ct-form label {
	display: block;
}

.sw-ct-form label > span {
	display: block;
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 13.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sw-ink);
	margin-bottom: 6px;
}

.sw-ct-form input,
.sw-ct-form select,
.sw-ct-form textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1.5px solid var(--sw-grey-200);
	border-radius: var(--sw-radius-sm);
	font: inherit;
	font-size: 15px;
	background: #fff;
	color: var(--sw-ink);
	transition: border-color var(--sw-fast) ease, box-shadow var(--sw-fast) ease;
}

.sw-ct-form input:focus,
.sw-ct-form select:focus,
.sw-ct-form textarea:focus {
	outline: none;
	border-color: var(--sw-ink);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--sw-ink) 8%, transparent);
}

.sw-ct-form textarea {
	resize: vertical;
	min-height: 130px;
}

.sw-ct-full {
	margin-bottom: 16px;
}

/* Campo trampa fuera de la vista (no display:none: algunos bots lo detectan). */
.sw-ct-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0;
	pointer-events: none;
}

.sw-ct-submit {
	width: 100%;
	justify-content: center;
	min-height: 52px;
}

.sw-ct-submit[disabled] {
	opacity: 0.6;
	pointer-events: none;
}

.sw-ct-status {
	margin: 12px 0 0;
	font-size: 14px;
	color: var(--sw-red-dark);
	min-height: 1em;
}

.sw-ct-privacy {
	margin: 10px 0 0;
	font-size: 12.5px;
	color: var(--sw-grey-500);
	text-align: center;
}

/* Estado de éxito. */
.sw-ct-success {
	text-align: center;
	padding: clamp(30px, 5vw, 60px) 20px;
}

.sw-ct-success-ic {
	display: grid;
	place-items: center;
	width: 66px;
	height: 66px;
	margin: 0 auto 18px;
	border-radius: 50%;
	background: var(--sw-green);
	color: #fff;
	box-shadow: 0 14px 34px color-mix(in srgb, var(--sw-green) 30%, transparent);
}

.sw-ct-success h3 {
	font-family: var(--sw-head);
	font-weight: 700;
	font-size: 24px;
	text-transform: uppercase;
	color: var(--sw-ink);
	margin: 0 0 8px;
}

.sw-ct-success p {
	color: var(--sw-grey-500);
	margin: 0;
}

/* Banda hacia FAQ / contacto. */
.sw-ct-faqband {
	border-top: 1px solid var(--sw-grey-200);
	background: var(--sw-grey-100);
	padding-block: clamp(26px, 4vw, 40px);
}

.sw-ct-faqband-in {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	flex-wrap: wrap;
}

.sw-ct-faqband p {
	margin: 0;
	font-size: 16px;
	color: var(--sw-ink-2);
}

/* ==================================================================
   Preguntas frecuentes
   ================================================================== */

/* Dos columnas de grupos en escritorio: la página llena su ancho sin
   dejar la mitad derecha vacía. En pantallas medianas vuelve a una. */
.sw-faq {
	padding-block: clamp(40px, 6vw, 72px);
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: start;
	gap: clamp(28px, 4vw, 44px) clamp(28px, 4vw, 56px);
	max-width: 1440px;
}

.sw-faq-group {
	width: 100%;
}

@media (max-width: 960px) {
	.sw-faq {
		grid-template-columns: 1fr;
	}

	.sw-faq-group {
		max-width: 880px;
	}
}

.sw-faq-group-t {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--sw-head);
	font-weight: 700;
	font-size: clamp(20px, 2.4vw, 26px);
	text-transform: uppercase;
	color: var(--sw-ink);
	margin: 0 0 16px;
}

.sw-faq-group-ic {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: var(--sw-ink);
	color: var(--sw-red-light);
	box-shadow: var(--sw-shadow);
}

.sw-faq-items {
	display: grid;
	gap: 10px;
}

.sw-faq-item {
	border: 1.5px solid var(--sw-grey-200);
	border-radius: var(--sw-radius);
	background: #fff;
	overflow: hidden;
	transition: border-color var(--sw-fast) ease, box-shadow 0.3s var(--sw-ease);
}

.sw-faq-item:has(.sw-faq-q[aria-expanded="true"]) {
	border-color: var(--sw-ink);
	box-shadow: var(--sw-shadow);
}

.sw-faq-item h3 {
	margin: 0;
}

.sw-faq-q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	width: 100%;
	padding: 16px 18px;
	border: 0;
	background: transparent;
	cursor: pointer;
	text-align: left;
	font-family: var(--sw-body);
	font-weight: 600;
	font-size: 15.5px;
	color: var(--sw-ink);
}

.sw-faq-chev {
	display: grid;
	place-items: center;
	width: 28px;
	height: 28px;
	flex: 0 0 auto;
	border-radius: 50%;
	background: var(--sw-grey-100);
	color: var(--sw-grey-500);
	transition: transform 0.35s var(--sw-ease), background var(--sw-fast) ease, color var(--sw-fast) ease;
}

.sw-faq-q[aria-expanded="true"] .sw-faq-chev {
	transform: rotate(90deg);
	background: var(--sw-red);
	color: var(--sw-on-brand);
}

/* El panel se anima midiendo su contenido (JS) y se libera a auto al abrir. */
.sw-faq-a {
	overflow: hidden;
	transition: height 0.35s var(--sw-ease);
}

.sw-faq-a p {
	margin: 0;
	padding: 0 18px 16px;
	font-size: 15px;
	line-height: 1.7;
	color: var(--sw-ink-2);
}

/* ==================================================================
   Blog — listado
   ================================================================== */

.sw-blog-main {
	padding-block: clamp(36px, 5vw, 64px) clamp(48px, 7vw, 90px);
	background:
		radial-gradient(60% 40% at 100% 0%, color-mix(in srgb, var(--sw-red) 4%, transparent), transparent 60%),
		var(--sw-paper);
}

.sw-bg {
	max-width: 1440px;
	display: grid;
	gap: clamp(18px, 3vw, 30px);
}

/* Barra de categorías: píldoras con recuento. */
.sw-bg-cats {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.sw-bg-catpill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 16px;
	border-radius: 999px;
	border: 1.5px solid var(--sw-grey-200);
	background: #fff;
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--sw-ink);
	text-decoration: none;
	transition: border-color var(--sw-fast) ease, background var(--sw-fast) ease, color var(--sw-fast) ease, transform var(--sw-fast) ease;
}

.sw-bg-catpill span {
	display: grid;
	place-items: center;
	min-width: 22px;
	height: 22px;
	padding-inline: 6px;
	border-radius: 999px;
	background: var(--sw-grey-100);
	font-size: 12px;
	color: var(--sw-grey-500);
	transition: inherit;
}

.sw-bg-catpill:hover {
	border-color: var(--sw-ink);
	transform: translateY(-2px);
}

.sw-bg-catpill.is-active {
	background: var(--sw-ink);
	border-color: var(--sw-ink);
	color: #fff;
}

.sw-bg-catpill.is-active span {
	background: var(--sw-red);
	color: var(--sw-on-brand);
}

/* Rejilla de tarjetas. */
.sw-bg-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(16px, 2.5vw, 26px);
	perspective: 1400px;
	transition: opacity 0.25s ease, transform 0.25s ease;
}

/* Relevo al filtrar por AJAX: la rejilla saliente se atenúa y desciende. */
.sw-bg-grid.is-loading {
	opacity: 0.35;
	transform: translateY(8px);
	pointer-events: none;
}

.sw-bg-card {
	display: block;
}

.sw-bg-card-in {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	border: 1.5px solid var(--sw-grey-200);
	border-radius: var(--sw-radius-lg);
	background: #fff;
	box-shadow: var(--sw-shadow);
	overflow: hidden;
	transform-style: preserve-3d;
	transition: box-shadow 0.35s var(--sw-ease);
}

.sw-bg-card:hover .sw-bg-card-in {
	box-shadow: var(--sw-shadow-lg);
}

.sw-bg-thumb {
	position: relative;
	display: block;
	aspect-ratio: 3 / 2;
	overflow: hidden;
}

.sw-bg-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.55s var(--sw-ease);
}

.sw-bg-card:hover .sw-bg-thumb img {
	transform: scale(1.06);
}

.sw-bg-time {
	position: absolute;
	bottom: 10px;
	right: 10px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--sw-ink) 78%, transparent);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	color: #fff;
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 12px;
	letter-spacing: 0.08em;
}

.sw-bg-body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	padding: 18px 18px 16px;
	flex: 1;
	transform: translateZ(12px);
}

.sw-bg-cat {
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 12.5px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--sw-red);
	text-decoration: none;
}

.sw-bg-cat:hover {
	color: var(--sw-red-dark);
}

.sw-bg-cat.is-light {
	color: var(--sw-red-light);
}

.sw-bg-body h3 {
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 21px;
	line-height: 1.16;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	margin: 0;
}

.sw-bg-body h3 a {
	color: var(--sw-ink);
	text-decoration: none;
}

.sw-bg-body h3 a:hover {
	color: var(--sw-red);
}

.sw-bg-body p {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--sw-grey-500);
}

.sw-bg-meta {
	margin-top: auto;
	padding-top: 10px;
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	font-size: 13px;
	color: var(--sw-grey-500);
}

.sw-bg-more {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 13px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sw-ink);
	transition: color var(--sw-fast) ease, transform var(--sw-fast) ease;
}

.sw-bg-card:hover .sw-bg-more {
	color: var(--sw-red);
	transform: translateX(3px);
}

/* Paginación. */
.sw-bg-pages ul {
	display: flex;
	justify-content: center;
	gap: 8px;
	list-style: none;
	margin: 10px 0 0;
	padding: 0;
}

.sw-bg-pages .page-numbers {
	display: grid;
	place-items: center;
	min-width: 40px;
	height: 40px;
	padding-inline: 10px;
	border-radius: var(--sw-radius-sm);
	border: 1.5px solid var(--sw-grey-200);
	background: #fff;
	font-family: var(--sw-head);
	font-weight: 600;
	font-size: 14px;
	color: var(--sw-ink);
	text-decoration: none;
	transition: border-color var(--sw-fast) ease, background var(--sw-fast) ease, color var(--sw-fast) ease;
}

.sw-bg-pages a.page-numbers:hover {
	border-color: var(--sw-ink);
}

.sw-bg-pages .page-numbers.current {
	background: var(--sw-ink);
	border-color: var(--sw-ink);
	color: #fff;
}

.sw-bg-empty {
	text-align: center;
	color: var(--sw-grey-500);
}

/* ==================================================================
   Blog — entrada individual
   ================================================================== */

/* Barra de progreso de lectura. */
.sw-post-progress {
	position: fixed;
	top: 0;
	inset-inline: 0;
	height: 3px;
	z-index: 300;
	pointer-events: none;
}

.sw-post-progress span {
	display: block;
	height: 100%;
	width: 100%;
	background: linear-gradient(90deg, var(--sw-red-dark), var(--sw-red-light));
	transform: scaleX(0);
	transform-origin: 0 50%;
}

/* Hero con la foto destacada de fondo. */
.sw-posthero {
	position: relative;
	overflow: hidden;
	background: var(--sw-ink);
	color: #fff;
	padding-block: clamp(56px, 9vw, 110px) clamp(40px, 6vw, 72px);
	isolation: isolate;
}

.sw-posthero-bg {
	position: absolute;
	inset: -4%;
	background-image: var(--sw-post-bg);
	background-size: cover;
	background-position: center;
	opacity: 0.35;
	z-index: -2;
	animation: sw-posthero-drift 24s ease-in-out infinite alternate;
}

@keyframes sw-posthero-drift {
	from {
		transform: scale(1) translateY(0);
	}

	to {
		transform: scale(1.07) translateY(-1.5%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.sw-posthero-bg {
		animation: none;
	}
}

.sw-posthero-veil {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, color-mix(in srgb, var(--sw-ink) 55%, transparent), color-mix(in srgb, var(--sw-ink) 88%, transparent)),
		radial-gradient(70% 90% at 15% 100%, color-mix(in srgb, var(--sw-red) 25%, transparent), transparent 60%);
	z-index: -1;
}

.sw-posthero .sw-wrap {
	max-width: 1440px;
}

.sw-posthero-in {
	max-width: 880px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
}

.sw-posthero-back {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 13.5px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgb(255 255 255 / 65%);
	text-decoration: none;
	margin-bottom: 8px;
	transition: color var(--sw-fast) ease;
}

.sw-posthero-back svg {
	transform: rotate(180deg);
}

.sw-posthero-back:hover {
	color: #fff;
}

.sw-posthero h1 {
	font-family: var(--sw-head);
	font-weight: 700;
	font-size: clamp(30px, 4.6vw, 54px);
	line-height: 1.05;
	text-transform: uppercase;
	margin: 0;
	color: #fff;
}

.sw-posthero-meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	font-size: 14px;
	color: rgb(255 255 255 / 70%);
}

.sw-posthero-avatar {
	border-radius: 50%;
	border: 2px solid rgb(255 255 255 / 35%);
}

/* Cuerpo del artículo: columna de lectura serena. */
.sw-post-main {
	background: var(--sw-paper);
}

.sw-post-main .wp-block-post-content {
	font-size: 17px;
	line-height: 1.8;
	color: var(--sw-ink-2);
}

.sw-post-main .wp-block-post-content > p:first-of-type::first-letter {
	font-family: var(--sw-head);
	font-weight: 700;
	font-size: 3.2em;
	line-height: 0.85;
	float: left;
	padding-right: 12px;
	color: var(--sw-red);
}

.sw-post-main .wp-block-post-content h2 {
	position: relative;
	font-family: var(--sw-head);
	font-weight: 700;
	font-size: clamp(22px, 2.6vw, 30px);
	text-transform: uppercase;
	color: var(--sw-ink);
	margin-top: 1.8em;
	padding-left: 18px;
}

.sw-post-main .wp-block-post-content h2::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.12em;
	bottom: 0.12em;
	width: 4px;
	border-radius: 4px;
	background: var(--sw-red);
}

.sw-post-main .wp-block-post-content h3 {
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 21px;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--sw-ink);
	margin-top: 1.5em;
}

.sw-post-main .wp-block-post-content blockquote {
	margin: 1.6em 0;
	padding: 18px 22px;
	border-left: 4px solid var(--sw-red);
	border-radius: 0 var(--sw-radius) var(--sw-radius) 0;
	background: var(--sw-grey-100);
	font-style: italic;
}

.sw-post-main .wp-block-post-content a {
	color: var(--sw-red);
	text-decoration-thickness: 1.5px;
	text-underline-offset: 3px;
}

.sw-post-related {
	background: var(--sw-grey-100);
	padding-block: clamp(40px, 6vw, 72px);
}

.sw-post-related .sw-bg-grid {
	margin-top: 26px;
}

.sw-post-related .sw-wrap {
	max-width: 1440px;
}

/* ==================================================================
   Páginas legales
   ================================================================== */

/* Chip de fecha bajo el mini hero. */
.sw-pghero-meta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 18px;
	padding: 7px 16px;
	border: 1px solid rgb(255 255 255 / 18%);
	border-radius: 999px;
	background: rgb(255 255 255 / 7%);
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 13px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgb(255 255 255 / 72%);
}

.sw-pghero-meta::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--sw-red);
}

.sw-legal-main {
	padding-block: clamp(40px, 6vw, 72px) clamp(56px, 8vw, 100px);
	background:
		radial-gradient(50% 34% at 0% 10%, color-mix(in srgb, var(--sw-red) 3.5%, transparent), transparent 60%),
		var(--sw-paper);
}

.sw-legal-main .entry-content {
	max-width: 820px;
	margin-inline: auto;
	font-size: 16.5px;
	line-height: 1.75;
	color: var(--sw-ink);
}

/* Secciones numerables: H2 con la barra roja del blog. */
.sw-legal-main .entry-content h2 {
	position: relative;
	font-family: var(--sw-head);
	font-weight: 700;
	font-size: clamp(21px, 2.6vw, 26px);
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: var(--sw-ink);
	margin: clamp(36px, 5vw, 52px) 0 14px;
	padding-left: 18px;
}

.sw-legal-main .entry-content h2::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.18em;
	bottom: 0.18em;
	width: 5px;
	border-radius: 999px;
	background: linear-gradient(180deg, var(--sw-red), var(--sw-red-light));
}

.sw-legal-main .entry-content h3 {
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 18.5px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--sw-ink);
	margin: 26px 0 10px;
}

.sw-legal-main .entry-content p {
	margin: 0 0 14px;
	color: color-mix(in srgb, var(--sw-ink-2) 92%, var(--sw-grey-100));
}

.sw-legal-main .entry-content ul,
.sw-legal-main .entry-content ol {
	margin: 0 0 16px;
	padding-left: 24px;
}

.sw-legal-main .entry-content li {
	margin-bottom: 8px;
	color: color-mix(in srgb, var(--sw-ink-2) 92%, var(--sw-grey-100));
}

.sw-legal-main .entry-content ul li::marker {
	color: var(--sw-red);
}

.sw-legal-main .entry-content a {
	color: var(--sw-red);
	text-decoration-thickness: 1.5px;
	text-underline-offset: 3px;
}

.sw-legal-main .entry-content strong {
	color: var(--sw-ink);
}

/* Cuadro destacado para resúmenes y avisos dentro del documento. */
.sw-legal-main .entry-content blockquote {
	margin: 22px 0;
	padding: 18px 22px;
	border: 1.5px solid var(--sw-grey-200);
	border-left: 5px solid var(--sw-red);
	border-radius: 0 var(--sw-radius) var(--sw-radius) 0;
	background: #fff;
	box-shadow: var(--sw-shadow);
}

.sw-legal-main .entry-content blockquote p {
	margin: 0;
	font-size: 15.5px;
}

/* ==================================================================
   Responsive
   ================================================================== */

@media (max-width: 960px) {
	.sw-ab-intro,
	.sw-ct {
		grid-template-columns: 1fr;
	}

	.sw-ab-values-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sw-ab-stats-in {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sw-ab-steps {
		grid-template-columns: 1fr;
	}

	.sw-ab-step:not(:last-child)::after {
		display: none;
	}

	.sw-bg-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.sw-ab-values-grid,
	.sw-ct-row,
	.sw-bg-grid {
		grid-template-columns: 1fr;
	}

	.sw-pghero-disc {
		display: none;
	}
}
