/* ==========================================================================
   Dilmer Duno Consultor — hoja de estilos principal
   Colores, fuentes y tamaños base: theme.json (variables --wp--preset--*).
   Índice:
   1. Tokens y base
   2. Tipografía
   3. Botones
   4. Cabecera y navegación
   5. Secciones (estructura común)
   6. Hero
   7. Problema
   8. Servicios
   9. Cómo trabajo
   10. Sobre mí
   11. Testimonios y logos
   12. Contacto
   13. Footer
   14. Páginas internas, blog y 404
   15. Accesibilidad y movimiento
   16. Responsive
   ========================================================================== */

/* 1. Tokens y base
   ========================================================================== */
:root {
	--dd-rojo: var(--wp--preset--color--rojo);
	--dd-rojo-profundo: var(--wp--preset--color--rojo-profundo);
	--dd-tinta: var(--wp--preset--color--tinta);
	--dd-gris: var(--wp--preset--color--gris);
	--dd-linea: var(--wp--preset--color--linea);
	--dd-niebla: var(--wp--preset--color--niebla);
	--dd-blanco: var(--wp--preset--color--blanco);
	--dd-display: var(--wp--preset--font-family--display);
	--dd-radius-s: 10px;
	--dd-radius-m: 18px;
	--dd-radius-l: 28px;
	--dd-shadow: 0 1px 2px rgba(37, 42, 52, 0.06), 0 16px 36px -18px rgba(37, 42, 52, 0.28);
	--dd-header-h: 84px;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--dd-header-h) + 1rem);
}

body {
	-webkit-font-smoothing: antialiased;
}

.wp-site-blocks > * + * {
	margin-block-start: 0;
}

img {
	max-width: 100%;
	height: auto;
}

a {
	color: var(--dd-rojo-profundo);
	text-underline-offset: 0.2em;
	text-decoration-thickness: 1px;
}

a:hover {
	text-decoration-thickness: 2px;
}

/* 2. Tipografía
   ========================================================================== */
h1,
h2 {
	font-family: var(--dd-display);
	font-weight: 400;
	line-height: 1.04;
	letter-spacing: 0;
	text-wrap: balance;
	margin-top: 0;
}

h2 {
	font-size: var(--wp--preset--font-size--x-large);
}

h3,
h4 {
	font-family: var(--wp--preset--font-family--texto);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.01em;
	margin-top: 0;
}

h3 {
	font-size: 1.5rem;
}

p {
	text-wrap: pretty;
}

.dd-kicker {
	display: inline-flex;
	align-items: center;
	gap: 0.6em;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	margin: 0;
}

.dd-kicker::before {
	content: "";
	width: 0.6em;
	height: 0.6em;
	border-radius: 50%;
	background: currentColor;
	flex: none;
}

/* 3. Botones
   ========================================================================== */
.dd-btn .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0.85rem 1.6rem;
	border: 2px solid transparent;
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--texto);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.dd-btn--tinta .wp-block-button__link {
	background: var(--dd-tinta);
	color: var(--dd-blanco);
}

.dd-btn--tinta .wp-block-button__link:hover {
	background: #10131A;
}

.dd-btn--blanco .wp-block-button__link {
	background: var(--dd-blanco);
	color: var(--dd-tinta);
}

.dd-btn--blanco .wp-block-button__link:hover {
	background: var(--dd-niebla);
}

.dd-btn--rojo .wp-block-button__link {
	background: var(--dd-rojo-profundo);
	color: var(--dd-blanco);
}

.dd-btn--rojo .wp-block-button__link:hover {
	background: #9E2923;
}

.dd-btn--outline .wp-block-button__link {
	background: transparent;
	color: var(--dd-tinta);
	border-color: var(--dd-tinta);
}

.dd-btn--outline .wp-block-button__link:hover {
	background: var(--dd-tinta);
	color: var(--dd-blanco);
}

.dd-btn--small .wp-block-button__link {
	min-height: 44px;
	padding: 0.6rem 1.2rem;
	font-size: 0.9375rem;
}

.dd-btn--large .wp-block-button__link {
	min-height: 64px;
	padding: 1.1rem 2.4rem;
	font-size: 1.1875rem;
}

/* 4. Cabecera y navegación
   ========================================================================== */
.dd-site-header {
	position: sticky;
	top: 0;
	z-index: 50;
}

.admin-bar .dd-site-header {
	top: var(--wp-admin--admin-bar--height, 32px);
}

.dd-header {
	background: rgba(255, 255, 255, 0.94);
	-webkit-backdrop-filter: saturate(160%) blur(12px);
	backdrop-filter: saturate(160%) blur(12px);
	border-bottom: 1px solid var(--dd-linea);
}

.dd-header__inner {
	min-height: var(--dd-header-h);
	gap: 1.5rem;
}

.dd-brand {
	gap: 0.75rem;
	align-items: center;
}

.dd-brand .wp-block-site-logo img {
	display: block;
	height: auto;
}

/* Si el logo ya incluye el nombre, el título queda solo para lectores de pantalla */
.dd-brand:has(.wp-block-site-logo img) .dd-brand__name {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.dd-brand__name {
	margin: 0;
	font-family: var(--dd-display);
	font-size: 1.125rem;
	white-space: nowrap;
}

.dd-brand__name a {
	color: var(--dd-tinta);
	text-decoration: none;
}

.dd-header__actions {
	gap: 1.75rem;
	align-items: center;
}

.dd-nav {
	font-size: 0.9375rem;
	font-weight: 600;
	gap: 1.75rem;
}

.dd-nav .wp-block-navigation-item__content {
	color: var(--dd-tinta);
	text-decoration: none;
	padding: 0.35rem 0;
	border-bottom: 2px solid transparent;
}

.dd-nav .wp-block-navigation-item__content:hover {
	border-bottom-color: var(--dd-rojo);
}

.dd-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--dd-blanco);
	color: var(--dd-tinta);
	padding: 1.5rem;
}

.dd-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 1.25rem;
	font-family: var(--dd-display);
	font-size: 1.5rem;
}

.dd-header__cta {
	margin: 0;
}

/* 5. Secciones (estructura común)
   ========================================================================== */
.dd-main {
	margin-top: 0;
}

.dd-main > .wp-block-post-content > * + *,
.dd-section {
	margin-block-start: 0;
}

.dd-section {
	padding-top: var(--wp--preset--spacing--70);
	padding-bottom: var(--wp--preset--spacing--70);
}

.dd-section__title {
	margin-bottom: var(--wp--preset--spacing--50);
}

/* 6. Hero
   ========================================================================== */
.wp-block-cover.dd-hero {
	min-height: min(86vh, 820px);
	padding-top: var(--wp--preset--spacing--70);
	padding-bottom: var(--wp--preset--spacing--60);
	padding-left: var(--wp--style--root--padding-left);
	padding-right: var(--wp--style--root--padding-right);
	align-items: flex-end;
	margin-top: 0;
	color: var(--dd-tinta);
}

.dd-hero .wp-block-cover__image-background {
	object-position: 75% center;
}

/* Rojo sólido a la izquierda (texto) y la foto visible a la derecha */
.wp-block-cover.dd-hero .wp-block-cover__background.has-background-dim.has-background-dim-100 {
	opacity: 1;
	background-image: linear-gradient(100deg, var(--dd-rojo) 0%, var(--dd-rojo) 52%, rgba(221, 70, 62, 0.55) 78%, rgba(221, 70, 62, 0.15) 100%);
	background-color: transparent !important;
}

.dd-hero__content {
	max-width: 1200px;
}

.dd-hero__content > * + * {
	margin-top: 0;
}

.dd-hero .dd-kicker {
	color: var(--dd-tinta);
}

.dd-hero__title {
	font-size: var(--wp--preset--font-size--xx-large);
	color: var(--dd-tinta);
	max-width: 15ch;
	margin: 1.5rem 0 1.75rem;
}

.dd-hero__lead {
	font-size: clamp(1.1875rem, 1.6vw, 1.375rem);
	font-weight: 700;
	line-height: 1.45;
	max-width: 38ch;
	margin-bottom: 2.25rem;
}

.dd-hero__buttons {
	gap: 0.875rem;
	margin-bottom: 2rem;
}

.dd-hero__trust {
	display: inline-block;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	color: var(--dd-blanco);
	background: var(--dd-tinta);
	border-radius: var(--dd-radius-s);
	padding: 0.6rem 0.95rem;
	max-width: 52ch;
}

/* 7. Problema
   ========================================================================== */
.dd-problem__list {
	gap: clamp(1.5rem, 4vw, 3.5rem);
	margin-bottom: var(--wp--preset--spacing--50);
}

.dd-problem__item {
	border-top: 4px solid var(--dd-rojo);
	padding-top: 1.5rem;
}

.dd-problem__item p {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -0.01em;
	margin: 0;
}

.dd-problem__close {
	font-size: var(--wp--preset--font-size--large);
	color: var(--dd-gris);
}

/* 8. Servicios
   ========================================================================== */
.dd-services {
	background: var(--dd-niebla);
}

.dd-services__grid {
	gap: 1.5rem;
	align-items: stretch;
}

.dd-card {
	display: flex;
	flex-direction: column;
	background: var(--dd-blanco);
	border: 1px solid var(--dd-linea);
	border-radius: var(--dd-radius-m);
	padding: clamp(1.5rem, 3vw, 2.25rem);
}

.dd-card > * {
	margin-top: 0;
	margin-bottom: 0;
}

.dd-card > * + * {
	margin-top: 1rem;
}

.dd-card--featured {
	border: 2px solid var(--dd-tinta);
	box-shadow: var(--dd-shadow);
}

.dd-card__text {
	color: var(--dd-gris);
}

.dd-card__deliverable {
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--dd-linea);
}

.dd-card__deliverable p {
	margin: 0;
}

.dd-card .dd-card__label {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	color: var(--dd-rojo-profundo);
	margin-bottom: 0.35rem;
}

.dd-card__price {
	font-weight: 700;
	font-size: var(--wp--preset--font-size--small);
	background: var(--dd-niebla);
	border-radius: var(--dd-radius-s);
	padding: 0.65rem 0.9rem;
}

.dd-card > .dd-card__action {
	margin-top: auto;
	padding-top: 1.75rem;
}

.dd-services__note {
	margin-top: var(--wp--preset--spacing--50);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 700;
}

/* 9. Cómo trabajo
   ========================================================================== */
.dd-steps {
	list-style: none;
	counter-reset: dd-step;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.5rem, 4vw, 3.5rem);
	padding: 0;
	margin: 0 0 var(--wp--preset--spacing--50);
}

.dd-steps li {
	counter-increment: dd-step;
	color: var(--dd-gris);
	padding-top: 1.25rem;
	border-top: 1px solid var(--dd-linea);
}

.dd-steps li::before {
	content: counter(dd-step);
	display: block;
	font-family: var(--dd-display);
	font-size: clamp(4.5rem, 9vw, 7.5rem);
	line-height: 0.9;
	color: var(--dd-rojo);
	margin-bottom: 1.25rem;
}

.dd-steps li strong {
	display: block;
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--dd-tinta);
	margin-bottom: 0.5rem;
}

.dd-method__close {
	font-weight: 700;
	color: var(--dd-tinta);
}

/* 10. Sobre mí
   ========================================================================== */
.dd-about {
	background: var(--dd-niebla);
}

.dd-about__cols {
	gap: clamp(2rem, 6vw, 6rem);
	align-items: center;
}

.dd-about__media {
	flex: 0 0 40%;
}

.dd-about__photo {
	margin: 0;
}

.dd-about__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: var(--dd-radius-l);
}

.dd-about__body > p {
	max-width: 60ch;
}

/* Eco del lema de la web actual */
.dd-about .dd-about__belief {
	font-family: var(--dd-display);
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	line-height: 1.1;
	color: var(--dd-rojo-profundo);
	margin: 2rem 0;
}

.dd-stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
	margin: 2.25rem 0;
	padding: 1.75rem 0;
	border-top: 1px solid var(--dd-linea);
	border-bottom: 1px solid var(--dd-linea);
}

.dd-stat > * {
	margin: 0;
}

.dd-stat__number {
	font-family: var(--dd-display);
	font-size: clamp(2rem, 3.6vw, 2.75rem);
	line-height: 1;
	color: var(--dd-tinta);
}

.dd-stat .dd-stat__label {
	margin-top: 0.5rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--dd-gris);
	line-height: 1.4;
}

.dd-about__credentials {
	font-size: var(--wp--preset--font-size--small);
	color: var(--dd-gris);
}

/* Newsletter: franja azul con texto a la izquierda y formulario a la derecha */
.dd-newsletter {
	background: var(--dd-tinta);
	color: var(--dd-blanco);
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--60);
	margin-block-start: 0;
}

.wp-block-columns.dd-newsletter__cols {
	gap: clamp(2rem, 6vw, 5rem);
}

.dd-newsletter__title {
	font-size: var(--wp--preset--font-size--x-large);
	color: var(--dd-blanco);
	margin-bottom: 1rem;
}

.dd-newsletter__lead {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.85);
	max-width: 38ch;
	margin: 0;
}

.dd-newsletter__form {
	min-width: 0;
}

.dd-brevo .dd-brevo__optin {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	font-weight: 400;
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--dd-gris);
	cursor: pointer;
}

.dd-brevo .dd-brevo__optin input[type="checkbox"] {
	flex: none;
	width: 1.15rem;
	height: 1.15rem;
	margin: 0.15rem 0 0;
	accent-color: var(--dd-rojo-profundo);
}

.dd-brevo .dd-brevo__optin a {
	color: var(--dd-tinta);
	text-decoration: underline;
}

/* 11. Testimonios y logos
   ========================================================================== */
/* Testimonios como carrusel deslizable (dedo, trackpad o rueda con Shift).
   Muestra 3 en desktop, 1 y un borde del siguiente en móvil. Sin movimiento automático. */
.wp-block-columns.dd-testimonials__grid {
	--dd-t-gap: 1.5rem;
	gap: var(--dd-t-gap);
	flex-wrap: nowrap !important;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: 0;
	padding-bottom: 1rem;
	margin-bottom: var(--wp--preset--spacing--60);
	scrollbar-width: thin;
	scrollbar-color: var(--dd-rojo) var(--dd-linea);
}

.wp-block-columns.dd-testimonials__grid > .wp-block-column {
	flex: 0 0 calc((100% - 2 * var(--dd-t-gap)) / 3) !important;
	scroll-snap-align: start;
	min-width: 0;
	box-sizing: border-box;
}

.dd-testimonials__grid::-webkit-scrollbar {
	height: 6px;
}

.dd-testimonials__grid::-webkit-scrollbar-track {
	background: var(--dd-linea);
	border-radius: 999px;
}

.dd-testimonials__grid::-webkit-scrollbar-thumb {
	background: var(--dd-rojo);
	border-radius: 999px;
}

/* Con 4 o más testimonios se asoma el siguiente, para que se note que hay más */
@media (min-width: 1025px) {
	.wp-block-columns.dd-testimonials__grid:has(> .wp-block-column:nth-child(4)) > .wp-block-column {
		flex-basis: calc((100% - 3 * var(--dd-t-gap)) / 3.3) !important;
	}
}

/* Con 3 o menos testimonios en desktop no hay nada que deslizar: se oculta la barra */
@media (min-width: 1025px) {
	.wp-block-columns.dd-testimonials__grid:not(:has(> .wp-block-column:nth-child(4))) {
		overflow-x: visible;
		padding-bottom: 0;
	}
}

/* En el editor se ven todos en una grilla para poder editarlos */
.editor-styles-wrapper .wp-block-columns.dd-testimonials__grid {
	flex-wrap: wrap !important;
	overflow-x: visible;
}

.editor-styles-wrapper .wp-block-columns.dd-testimonials__grid > .wp-block-column {
	flex: 0 0 calc((100% - 2 * var(--dd-t-gap)) / 3) !important;
}

.dd-testimonial {
	display: flex;
	flex-direction: column-reverse;
	justify-content: flex-end;
	gap: 1.25rem;
	padding: clamp(1.5rem, 3vw, 2rem);
	background: var(--dd-blanco);
	border: 1px solid var(--dd-linea);
	border-radius: var(--dd-radius-m);
}

.dd-testimonial__avatar {
	margin: 0;
}

.dd-testimonial .dd-testimonial__avatar img {
	display: block;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
}

.wp-block-quote.dd-testimonial__quote {
	margin: 0;
	padding: 0;
	border: 0;
}

.dd-testimonial__quote p {
	font-size: 1.125rem;
	line-height: 1.55;
	margin: 0 0 1.25rem;
}

.dd-testimonial__quote cite {
	display: block;
	font-style: normal;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	color: var(--dd-gris);
	line-height: 1.45;
}

.dd-logos {
	gap: clamp(1rem, 4vw, 3rem);
	padding-top: var(--wp--preset--spacing--50);
	border-top: 1px solid var(--dd-linea);
}

.dd-logos__item {
	margin: 0;
}

.dd-logos .dd-logos__item img {
	display: block;
	width: auto;
	max-width: 180px;
	height: 48px;
	object-fit: contain;
	filter: grayscale(1);
	opacity: 0.75;
}

/* Carrusel de logos (patrón "Carrusel de logos")
   El riel contiene dos grupos idénticos y se desplaza la mitad de su ancho,
   así el segundo grupo empalma con el primero sin saltos. */
.dd-marquee {
	overflow: hidden;
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--30);
	border-top: 1px solid var(--dd-linea);
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}

.dd-marquee .dd-marquee__track {
	flex-wrap: nowrap;
	gap: 0;
	width: max-content;
	animation: dd-marquee 45s linear infinite;
}

.dd-marquee .dd-marquee__set {
	flex-wrap: nowrap;
	gap: 0;
	flex: none;
}

.dd-marquee .dd-logos__item {
	flex: none;
	margin: 0 clamp(1.5rem, 3vw, 3rem);
}

.dd-marquee .dd-logos__item img {
	display: block;
	width: auto;
	max-width: 180px;
	height: 48px;
	object-fit: contain;
	filter: grayscale(1);
	opacity: 0.75;
}

.dd-marquee:hover .dd-marquee__track,
.dd-marquee:focus-within .dd-marquee__track {
	animation-play-state: paused;
}

@keyframes dd-marquee {
	to {
		transform: translateX(-50%);
	}
}

/* Sin movimiento si la persona lo prefiere: una sola fila fija */
@media (prefers-reduced-motion: reduce) {
	.dd-marquee {
		-webkit-mask-image: none;
		mask-image: none;
	}

	.dd-marquee .dd-marquee__track {
		animation: none;
		width: auto;
		justify-content: center;
	}

	.dd-marquee .dd-marquee__set {
		flex-wrap: wrap;
		justify-content: center;
		row-gap: 1.5rem;
	}

	.dd-marquee .dd-marquee__set + .dd-marquee__set {
		display: none;
	}
}

/* En el editor el carrusel queda quieto y a la vista para poder editarlo */
.editor-styles-wrapper .dd-marquee {
	overflow: visible;
	-webkit-mask-image: none;
	mask-image: none;
}

.editor-styles-wrapper .dd-marquee .dd-marquee__track {
	animation: none;
	width: auto;
	flex-direction: column;
	align-items: stretch;
	gap: 1.5rem;
}

.editor-styles-wrapper .dd-marquee .dd-marquee__set {
	flex-wrap: wrap;
	row-gap: 1.5rem;
	outline: 1px dashed var(--dd-linea);
	padding: 1rem;
}

/* 12. Contacto
   ========================================================================== */
.dd-contact.is-layout-constrained > * {
	margin-left: max(0px, calc((100% - var(--wp--style--global--wide-size)) / 2)) !important;
	margin-right: auto !important;
}

.dd-contact__title {
	font-size: var(--wp--preset--font-size--xx-large);
	max-width: 12ch;
	margin-bottom: 1.5rem;
}

/* Contacto con foto (igual que el hero): rojo a la izquierda, foto visible a la derecha */
.wp-block-cover.dd-contact-hero {
	min-height: min(80vh, 720px);
	padding-top: var(--wp--preset--spacing--70);
	padding-bottom: var(--wp--preset--spacing--70);
	padding-left: var(--wp--style--root--padding-left);
	padding-right: var(--wp--style--root--padding-right);
	align-items: center;
	margin-top: 0;
	color: var(--dd-blanco);
}

.dd-contact-hero .wp-block-cover__image-background {
	object-position: 75% center;
}

.wp-block-cover.dd-contact-hero .wp-block-cover__background.has-background-dim.has-background-dim-100 {
	opacity: 1;
	background-image: linear-gradient(100deg, var(--dd-rojo) 0%, var(--dd-rojo) 50%, rgba(221, 70, 62, 0.55) 76%, rgba(221, 70, 62, 0.15) 100%);
	background-color: transparent !important;
}

.dd-contact-hero__content {
	max-width: 1200px;
}

.dd-contact-hero__content > * {
	max-width: 36rem;
}

.dd-contact-hero__content > * + * {
	margin-top: 0;
}

/* Dos columnas: texto y botón a la izquierda, formulario a la derecha */
.wp-block-columns.dd-contact__cols {
	gap: clamp(2rem, 6vw, 5rem);
	align-items: center;
}

.dd-contact__text .dd-contact__title {
	font-size: clamp(2.25rem, 4.2vw, 3.5rem);
}

.dd-contact__text > :last-child {
	margin-bottom: 0;
}

.dd-contact__form {
	min-width: 0;
}

/* Tamaños de texto grande para mantener contraste AA sobre el rojo */
.dd-contact .dd-contact__lead {
	font-size: 1.5rem;
	line-height: 1.45;
	max-width: 40ch;
	margin-bottom: 2.25rem;
}

.dd-contact__buttons {
	margin-bottom: 2rem;
}

.dd-contact .dd-contact__alt {
	font-size: 1.1875rem;
	font-weight: 700;
	max-width: 52ch;
}

.dd-contact a:not(.wp-block-button__link) {
	color: var(--dd-blanco);
}

.dd-contact .dd-brevo .dd-brevo__legal a {
	color: var(--dd-tinta);
}

/* 13. Footer
   ========================================================================== */
.dd-footer {
	background: var(--dd-tinta);
	color: rgba(255, 255, 255, 0.84);
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--40);
	margin-top: 0;
	font-size: var(--wp--preset--font-size--small);
}

.dd-footer a {
	color: var(--dd-blanco);
	text-decoration: none;
}

.dd-footer a:hover {
	text-decoration: underline;
}

/* El logo oscuro se muestra en blanco sobre el fondo del footer */
.dd-footer__logo img {
	display: block;
	height: auto;
	filter: brightness(0) invert(1);
}

.dd-footer__cols {
	gap: clamp(2rem, 4vw, 3rem);
	margin-bottom: var(--wp--preset--spacing--50);
}

.wp-block-columns.dd-footer__cols > .wp-block-column.dd-footer__about {
	flex: 0 0 36%;
}

/* Formulario de contacto (Brevo): tarjeta blanca dentro de la sección roja */
.dd-brevo form {
	display: grid;
	gap: 1rem;
	margin: 0;
}

.dd-brevo label {
	display: block;
	color: var(--dd-tinta);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--small);
	margin-bottom: 0.35rem;
}

.dd-brevo input[type="text"],
.dd-brevo input[type="email"],
.dd-brevo input[type="tel"],
.dd-brevo select,
.dd-brevo textarea {
	width: 100%;
	box-sizing: border-box;
	min-height: 48px;
	padding: 0.7rem 0.9rem;
	border: 1px solid var(--dd-linea);
	border-radius: var(--dd-radius-s);
	background: var(--dd-blanco);
	color: var(--dd-tinta);
	font: inherit;
	font-size: 1rem;
}

.dd-brevo input:focus,
.dd-brevo textarea:focus {
	border-color: var(--dd-tinta);
	outline: 2px solid var(--dd-tinta);
	outline-offset: 1px;
}

.dd-brevo input::placeholder,
.dd-brevo textarea::placeholder {
	color: #8A8E99;
}

.dd-brevo button {
	justify-self: start;
	min-height: 50px;
	padding: 0.85rem 1.6rem;
	border: 0;
	border-radius: 999px;
	background: var(--dd-rojo-profundo);
	color: var(--dd-blanco);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.dd-brevo button:hover {
	background: #9E2923;
}

/* Formulario de Brevo (HTML limpio, sin la hoja de estilos de Brevo) */
.dd-brevo {
	background: var(--dd-blanco);
	color: var(--dd-tinta);
	border-radius: var(--dd-radius-l);
	padding: clamp(1.5rem, 3vw, 2.5rem);
	box-shadow: 0 24px 48px -24px rgba(37, 42, 52, 0.45);
}

.dd-brevo .entry__label::after {
	content: " " attr(data-required);
	color: var(--dd-rojo-profundo);
}

.dd-brevo .entry__field {
	display: block;
}

.dd-brevo .entry__error {
	display: none;
	margin-top: 0.4rem;
	color: var(--dd-rojo-profundo);
	font-size: var(--wp--preset--font-size--small);
}

.dd-brevo .input--hidden {
	display: none !important;
}

.dd-brevo__legal {
	margin: 0;
	font-size: 0.8125rem;
	line-height: 1.5;
	color: var(--dd-gris);
}

.dd-brevo__legal a {
	color: var(--dd-tinta);
	text-decoration: underline;
}

.dd-brevo .sib-form-block__button {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	text-align: left;
}

.dd-brevo .sib-hide-loader-icon {
	display: none;
}

.dd-brevo .progress-indicator__icon {
	width: 1.1rem;
	height: 1.1rem;
	fill: currentColor;
	animation: dd-spin 1s linear infinite;
}

@keyframes dd-spin {
	to {
		transform: rotate(1turn);
	}
}

.dd-brevo .sib-form-message-panel {
	display: none;
	margin: 0 0 1rem;
	padding: 0.75rem 1rem;
	border-radius: var(--dd-radius-s);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

.dd-brevo .sib-form-message-panel--active {
	display: block;
}

.dd-brevo .sib-form-message-panel--success {
	background: #E7FAF0;
	color: #085229;
}

.dd-brevo .sib-form-message-panel--error {
	background: #FFEDED;
	color: #661D1D;
}

.dd-brevo .sib-form-message-panel__text {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}

.dd-brevo .sib-notification__icon {
	width: 20px;
	height: 20px;
	flex: none;
	fill: currentColor;
}


.dd-footer__lead {
	color: var(--dd-blanco);
	font-weight: 700;
}

.dd-footer__muted {
	color: rgba(255, 255, 255, 0.66);
}

.dd-footer__title {
	font-family: var(--wp--preset--font-family--texto);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0;
	color: var(--dd-blanco);
	margin-bottom: 1rem;
}

.dd-footer__links {
	list-style: none;
	padding: 0;
	margin: 0;
}

.dd-footer__links li + li {
	margin-top: 0.6rem;
}

.dd-footer .dd-social {
	flex-direction: column;
	align-items: flex-start;
	gap: 0.6rem;
	padding: 0;
}

.dd-footer .dd-social .wp-social-link {
	background: transparent;
	color: var(--dd-blanco);
	border-radius: 0;
}

.dd-footer .dd-social .wp-social-link a {
	padding: 0;
	gap: 0.6rem;
}

.dd-footer__bottom {
	gap: 0.5rem 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	color: rgba(255, 255, 255, 0.66);
}

.dd-footer__bottom p {
	margin: 0;
}

/* 14. Páginas internas, blog y 404
   ========================================================================== */
.dd-page {
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--70);
}

.dd-page__title {
	font-family: var(--dd-display);
	font-weight: 400;
	font-size: var(--wp--preset--font-size--x-large);
	margin-bottom: var(--wp--preset--spacing--40);
}

.dd-page__meta {
	color: var(--dd-gris);
	font-size: var(--wp--preset--font-size--small);
}

.dd-page__image img,
.dd-posts__image img {
	border-radius: var(--dd-radius-m);
}

.dd-posts {
	gap: 2.5rem 1.5rem;
}

.dd-posts__title {
	font-family: var(--wp--preset--font-family--texto);
	font-weight: 700;
	font-size: 1.375rem;
	line-height: 1.25;
	margin: 1rem 0 0.5rem;
}

.dd-posts__title a {
	color: var(--dd-tinta);
	text-decoration: none;
}

.dd-pagination {
	margin-top: var(--wp--preset--spacing--50);
}

.dd-search .wp-block-search__input {
	border: 1px solid var(--dd-linea);
	border-radius: var(--dd-radius-s);
	padding: 0.75rem 1rem;
}

.dd-search .wp-block-search__button {
	background: var(--dd-tinta);
	color: var(--dd-blanco);
	border: 0;
	border-radius: var(--dd-radius-s);
	padding: 0.75rem 1.25rem;
	font-weight: 700;
}

/* 15. Accesibilidad y movimiento
   ========================================================================== */
:focus-visible {
	outline: 3px solid var(--dd-tinta);
	outline-offset: 3px;
	border-radius: 4px;
}

.dd-hero :focus-visible,
.dd-contact :focus-visible,
.dd-footer :focus-visible {
	outline-color: var(--dd-blanco);
}

.dd-btn .wp-block-button__link:focus-visible {
	outline-offset: 4px;
	border-radius: 999px;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}
}

/* 16. Responsive
   ========================================================================== */
@media (max-width: 1024px) {
	.wp-block-columns.dd-testimonials__grid > .wp-block-column {
		flex-basis: calc((100% - var(--dd-t-gap)) / 2 - 2rem) !important;
	}

	.dd-header .dd-nav {
		gap: 1.25rem;
	}

	.dd-about__media {
		flex-basis: 45%;
	}
}

@media (max-width: 781px) {
	:root {
		--dd-header-h: 68px;
	}

	.dd-header .dd-header__cta {
		display: none;
	}

	/* En móvil el logo de la cabecera no supera los 64 px de ancho */
	.dd-brand .wp-block-site-logo img {
		max-width: 64px;
	}

	.wp-block-cover.dd-hero {
		min-height: 0;
		padding-top: var(--wp--preset--spacing--60);
	}

	/* En móvil el texto ocupa todo el ancho: fondo rojo sólido */
	.wp-block-cover.dd-contact-hero {
		min-height: 0;
	}

	.wp-block-cover.dd-contact-hero .wp-block-cover__background.has-background-dim.has-background-dim-100,
	.wp-block-cover.dd-hero .wp-block-cover__background.has-background-dim.has-background-dim-100 {
		background-image: none;
		background-color: var(--dd-rojo) !important;
	}

	.dd-hero__buttons .wp-block-button,
	.dd-hero__buttons .wp-block-button__link,
	.dd-contact__buttons .wp-block-button,
	.dd-contact__buttons .wp-block-button__link {
		width: 100%;
	}

	.dd-problem__item p {
		font-size: 1.3125rem;
	}

	.dd-brevo .sib-form-block__button {
		width: 100%;
		justify-content: center;
		text-align: center;
	}

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

	.wp-block-columns.dd-testimonials__grid > .wp-block-column {
		flex-basis: 85% !important;
	}

	.editor-styles-wrapper .wp-block-columns.dd-testimonials__grid > .wp-block-column {
		flex-basis: 100% !important;
	}

	.dd-steps li::before {
		font-size: 4rem;
		margin-bottom: 0.75rem;
	}

	.dd-about__cols > .dd-about__media {
		flex-basis: 100%;
	}

	.dd-about__photo img {
		aspect-ratio: 1 / 1;
	}

	.dd-stats {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}

	.dd-stat {
		display: flex;
		align-items: baseline;
		gap: 1rem;
	}

	.dd-stat .dd-stat__label {
		margin-top: 0;
	}

	.wp-block-columns.dd-footer__cols > .wp-block-column.dd-footer__about {
		flex-basis: 100%;
	}

	.dd-contact .dd-contact__lead {
		font-size: 1.5rem;
	}

	.dd-logos .dd-logos__item img {
		height: 38px;
		max-width: 140px;
	}
}
