/*
Theme Name:   DunaSoft 2026
Theme URI:    https://www.dunasoftpc.com/
Description:  Tema hijo de GeneratePress para la web de DunaSoft (2026). Colores, tipografías y patrones de bloques de la marca.
Author:       DunaSoft Technology, SL
Template:     generatepress
Version:      1.0.0
Requires at least: 6.5
Text Domain:  dunasoft
*/

/* ==========================================================================
   1. Fuentes (alojadas en el propio tema: más rápidas y sin enviar datos a Google)
   ========================================================================== */
@font-face {
	font-family: "Plus Jakarta Sans";
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url("fonts/plus-jakarta-sans-latin-wght-normal.woff2") format("woff2");
}
@font-face {
	font-family: "Manrope";
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url("fonts/manrope-latin-wght-normal.woff2") format("woff2");
}

/* ==========================================================================
   2. Variables de marca
   ========================================================================== */
:root {
	--ds-cream: #FBF8F6;
	--ds-cream-2: #F3ECE8;
	--ds-white: #FFFFFF;
	--ds-ink: #17141A;
	--ds-ink-2: #2A2530;
	--ds-text: #4A424D;
	--ds-muted: #5E5560;
	--ds-subtle: #7A7079;
	--ds-line: #EFE6E2;
	--ds-accent: #B4234F;
	--ds-accent-dark: #8E1A3D;
	--ds-accent-soft: #F6E3E8;
	--ds-on-dark: #D9D2DA;
	--ds-green: #2E7D5B;

	--ds-font-head: "Plus Jakarta Sans", system-ui, sans-serif;
	--ds-font-body: "Manrope", system-ui, sans-serif;

	--ds-max: 1240px;
	--ds-gutter: 24px;
	--ds-radius: 20px;
	--ds-radius-lg: 32px;
	--ds-pad-x: max(var(--ds-gutter), calc((100% - var(--ds-max)) / 2));
}

/* ==========================================================================
   3. Base
   ========================================================================== */
body {
	background: var(--ds-cream);
	color: var(--ds-ink);
	font-family: var(--ds-font-body);
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6 {
	font-family: var(--ds-font-head);
	color: inherit;
	letter-spacing: -0.02em;
	line-height: 1.1;
	font-weight: 800;
}
h1 { font-size: clamp(40px, 5.4vw, 72px); line-height: 1.02; letter-spacing: -0.03em; }
h2 { font-size: clamp(30px, 3.4vw, 44px); }
h3 { font-size: clamp(20px, 1.6vw, 22px); font-weight: 700; letter-spacing: -0.01em; }
a { color: var(--ds-accent); }
a:hover, a:focus { color: var(--ds-accent-dark); }
:focus-visible { outline: 3px solid var(--ds-accent); outline-offset: 3px; }

/* Fondo de GeneratePress */
.site, .site-content, .inside-article, .separate-containers .inside-article,
.one-container .container, .separate-containers .comments-area,
.separate-containers .page-header { background-color: transparent; }

/* Páginas normales (artículos, páginas de sector): ancho de lectura cómodo */
body.single:not(.ds-landing) .entry-content,
body.page:not(.ds-landing) .entry-content { max-width: 820px; margin-inline: auto; }
/* Páginas de diseño completo (home, fichas): el tema añade la clase "ds-landing"
   cuando la página contiene secciones "ds-section" */
.ds-landing .site.grid-container,
.ds-landing .site-content .content-area,
.ds-landing .container.grid-container { max-width: none; width: 100%; }
.ds-landing .site-content,
.ds-landing .inside-article,
.ds-landing.separate-containers .inside-article { padding: 0; margin: 0; }
.ds-landing .site-main { margin: 0 !important; }
.ds-landing .entry-header,
.ds-landing .featured-image,
.ds-landing .post-image { display: none; }
.ds-landing .entry-content { margin-top: 0; }
.ds-landing .entry-content > .ds-section + .ds-section { margin-top: 0; }

.entry-content > h2 { margin-top: 1.8em; }
.entry-content > h3 { margin-top: 1.4em; }

/* Los temas clásicos envuelven el contenido de los grupos en un contenedor interno:
   lo hacemos "transparente" para que las rejillas y flex de la marca funcionen */
[class*="ds-"] > .wp-block-group__inner-container { display: contents; }

/* ==========================================================================
   4. Cabecera y menú (GeneratePress)
   ========================================================================== */
.site-header { background: var(--ds-cream); border-bottom: 1px solid #ECE4E0; }
.site-header .inside-header { max-width: var(--ds-max); padding: 16px var(--ds-gutter); }
.site-logo img, .custom-logo { max-height: 34px; width: auto; }
/* Cabecera fija: grande al entrar y más compacta al hacer scroll (clase ds-scrolled en body, ver functions.php) */
.site-header { position: sticky; top: 0; z-index: 990; transition: box-shadow .25s ease, background-color .25s ease; }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }
@media (min-width: 769px) {
	.site-header .inside-header { padding-block: 22px; transition: padding .25s ease; }
	.site-logo img, .custom-logo { max-height: 44px; transition: max-height .25s ease; }
	.main-navigation .main-nav > ul > li > a { transition: line-height .25s ease; }
	body.ds-scrolled .site-header .inside-header { padding-block: 6px; }
	body.ds-scrolled .site-logo img, body.ds-scrolled .custom-logo { max-height: 30px; }
	body.ds-scrolled .main-navigation .main-nav > ul > li:not(.ds-menu-cta) > a { line-height: 46px; }
	body.ds-scrolled .main-navigation .main-nav ul li.ds-menu-cta > a { padding-block: 10px; margin-block: 4px; }
}
body.ds-scrolled .site-header { background: rgba(251, 248, 246, .96); box-shadow: 0 6px 24px rgba(23, 20, 26, .08); }
@media (min-width: 769px) and (max-width: 1100px) {
	body .main-navigation .main-nav ul li a { padding-inline: 7px; font-size: 14px; }
	body .main-navigation .main-nav ul li.ds-menu-cta > a { padding: 11px 14px; margin-left: 4px; }
	.site-logo img, .custom-logo { max-height: 34px; }
	.site-header .inside-header { padding-inline: 16px; }
}
@media (min-width: 769px) and (max-width: 960px) { body .main-navigation .main-nav ul li.ds-hide-md { display: none; } }
.main-navigation, .main-navigation ul ul { background: transparent; }
.main-navigation .main-nav ul li a {
	font-family: var(--ds-font-body);
	font-weight: 600;
	font-size: 15px;
	color: var(--ds-ink);
	padding-inline: 13px;
	text-decoration: none;
}
.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li.current-menu-item > a { color: var(--ds-accent); }
.main-navigation ul ul { background: var(--ds-white); border: 1px solid var(--ds-line); border-radius: 14px; box-shadow: 0 16px 40px rgba(60, 20, 40, .12); }
/* Botón del menú: añade la clase CSS "ds-menu-cta" al elemento "Demo gratis" */
.main-navigation .main-nav ul li.ds-menu-cta > a {
	background: var(--ds-ink);
	color: var(--ds-white);
	border-radius: 999px;
	line-height: 1;
	padding: 13px 20px;
	margin-left: 10px;
	margin-block: 8px;
}
.main-navigation .main-nav ul li.ds-menu-cta > a:hover { background: var(--ds-accent); color: var(--ds-white); }
/* Teléfono en el menú: clase "ds-menu-tel" */
.main-navigation .main-nav ul li.ds-menu-tel > a { color: var(--ds-muted); }

/* ==========================================================================
   5. Botones (bloque Botones de WordPress)
   ========================================================================== */
.wp-block-button a.wp-block-button__link,
.wp-element-button {
	background: var(--ds-accent);
	color: var(--ds-white);
	border: 1.5px solid var(--ds-accent);
	border-radius: 999px;
	padding: 16px 28px;
	font-family: var(--ds-font-body);
	font-weight: 700;
	font-size: 17px;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.wp-block-button a.wp-block-button__link:hover, .wp-block-button a.wp-block-button__link:focus {
	background: var(--ds-accent-dark);
	border-color: var(--ds-accent-dark);
	color: var(--ds-white);
}
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: var(--ds-white);
	color: var(--ds-ink);
	border-color: var(--ds-ink);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--ds-ink);
	color: var(--ds-white);
}
/* Variante oscura y clara (clase en el bloque Botón) */
.wp-block-button.ds-btn-dark > .wp-block-button__link { background: var(--ds-ink); border-color: var(--ds-ink); }
.wp-block-button.ds-btn-light > .wp-block-button__link { background: var(--ds-white); border-color: var(--ds-white); color: var(--ds-ink); }
.wp-block-button.ds-btn-light > .wp-block-button__link:hover { background: var(--ds-accent-soft); color: var(--ds-accent-dark); }
.wp-block-button.ds-btn-ghost > .wp-block-button__link { background: transparent; border-color: currentColor; color: inherit; }
.wp-block-buttons { gap: 14px; }

/* ==========================================================================
   6. Secciones (bloque Grupo con la clase "ds-section")
   Pon la página en Diseño > Contenedor: "Ancho completo" para que ocupen toda la pantalla.
   ========================================================================== */
.ds-section {
	padding: 72px var(--ds-pad-x);
	margin: 0;
}
.ds-section > *, .ds-section > .wp-block-group__inner-container > * { margin-top: 0; }
.ds-section--tight { padding-block: 40px; }
.ds-section--alt { background: var(--ds-cream-2); }
.ds-section--white { background: var(--ds-white); border-block: 1px solid var(--ds-line); }
.ds-center { text-align: center; }
.ds-center .wp-block-buttons { justify-content: center; }

.ds-eyebrow {
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ds-accent);
	margin-bottom: 12px;
}
.ds-badge {
	display: inline-block;
	background: var(--ds-accent-soft);
	color: var(--ds-accent-dark);
	padding: 8px 14px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
	margin-bottom: 22px;
}
.ds-lead { font-size: 19px; line-height: 1.6; color: var(--ds-text); max-width: 600px; }
.ds-intro { font-size: 18px; color: var(--ds-text); margin-bottom: 32px; max-width: 720px; }
.ds-center .ds-intro { margin-inline: auto; }
.ds-head-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 28px; }
.ds-head-row > *, .ds-head-row > .wp-block-group__inner-container > * { margin: 0; }
.ds-head-row a { font-weight: 700; }

/* Lista con marcas de verificación */
ul.ds-checks {
	list-style: none;
	margin: 28px 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	font-size: 15px;
	font-weight: 600;
	color: var(--ds-muted);
}
ul.ds-checks li { position: relative; padding-left: 26px; margin: 0; }
ul.ds-checks li::before {
	content: "";
	width: 18px;
	height: 18px;
	position: absolute;
	left: 0;
	top: 0.15em;
	background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E7D5B' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
ul.ds-checks--stack { flex-direction: column; }

/* ==========================================================================
   7. Hero
   ========================================================================== */
.ds-hero { padding-top: 72px; padding-bottom: 64px; }
.ds-hero .wp-block-columns { gap: 56px; align-items: center; margin: 0; }
.ds-hero h1 { margin: 0 0 20px; }
.ds-hero .ds-lead { margin-bottom: 30px; }

/* Maqueta de la agenda (bloque HTML personalizado) */
.ds-mock { position: relative; }
.ds-mock__card { background: var(--ds-white); border: 1px solid var(--ds-line); border-radius: 24px; box-shadow: 0 30px 80px rgba(60, 20, 40, .16); overflow: hidden; }
.ds-mock__bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 20px; border-bottom: 1px solid #F1EAE7; }
.ds-mock__bar strong { font-family: var(--ds-font-head); font-size: 17px; }
.ds-mock__bar span { font-size: 13px; color: var(--ds-subtle); font-weight: 600; }
.ds-mock__grid { display: grid; grid-template-columns: 52px repeat(3, minmax(0, 1fr)); gap: 8px; padding: 16px 20px 22px; font-size: 13px; }
.ds-mock__grid > b { color: var(--ds-text); }
.ds-mock__grid > i { font-style: normal; color: #9A8F98; padding-top: 6px; }
.ds-slot { overflow-wrap: anywhere; hyphens: auto; border-radius: 10px; padding: 10px; font-weight: 700; line-height: 1.3; }
.ds-slot small { display: block; font-weight: 500; opacity: .85; margin-top: 2px; font-size: 12px; }
.ds-slot--rose { background: #F6E3E8; color: #8E1A3D; }
.ds-slot--green { background: #E6F0EC; color: #235E46; }
.ds-slot--lilac { background: #EEEAF6; color: #4B3A86; }
.ds-slot--sand { background: #FBF3E6; color: #7A4B12; }
.ds-slot--free { border: 1.5px dashed #E3D8D4; color: #8F848D; font-weight: 600; }
.ds-mock__toast { position: absolute; left: -18px; bottom: -26px; max-width: 300px; display: flex; align-items: center; gap: 12px; background: var(--ds-ink); color: var(--ds-white); border-radius: 18px; padding: 14px 18px; font-size: 14px; line-height: 1.4; box-shadow: 0 16px 40px rgba(23, 20, 26, .3); }
.ds-mock__toast svg { flex: 0 0 38px; }

/* ==========================================================================
   8. Rejillas de tarjetas (Grupo "ds-grid" con Grupos "ds-card" dentro)
   ========================================================================== */
.ds-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.ds-grid--sm { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.ds-grid--lg { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }
.ds-grid > *, .ds-grid > .wp-block-group__inner-container > * { margin: 0 !important; }
.ds-card {
	position: relative;
	background: var(--ds-white);
	border: 1px solid var(--ds-line);
	border-radius: var(--ds-radius);
	padding: 26px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.ds-card > *, .ds-card > .wp-block-group__inner-container > * { margin: 0; }
.ds-card h3 { font-size: 20px; }
.ds-card p { font-size: 15px; color: var(--ds-muted); line-height: 1.5; }
.ds-card h3 a { color: var(--ds-ink); text-decoration: none; }
/* Toda la tarjeta es clicable si el título tiene enlace */
.ds-card h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.ds-card:has(h3 a):hover { border-color: var(--ds-accent); box-shadow: 0 14px 36px rgba(60, 20, 40, .10); transform: translateY(-2px); }
.ds-card .ds-more { margin-top: auto; font-weight: 700; color: var(--ds-accent); font-size: 15px; }
.ds-card--accent { background: var(--ds-accent-soft); border-color: #EFD3DB; }
.ds-card--accent h3, .ds-card--accent h3 a { color: var(--ds-accent-dark); }
.ds-card--accent p { color: #6E2A40; }
.ds-card__num { font-family: var(--ds-font-head); font-weight: 800; font-size: 15px; color: var(--ds-white) !important; background: var(--ds-accent); width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }

/* ==========================================================================
   9. Bloque oscuro (Asistente IA)
   ========================================================================== */
.ds-dark {
	background: var(--ds-ink);
	color: var(--ds-white);
	border-radius: var(--ds-radius-lg);
	padding: clamp(32px, 5vw, 64px);
}
.ds-dark .wp-block-columns { gap: 48px; align-items: center; margin: 0; }
.ds-dark h2 { color: var(--ds-white); font-size: clamp(32px, 3.8vw, 52px); line-height: 1.05; }
.ds-dark p { color: var(--ds-on-dark); font-size: 18px; }
.ds-dark .ds-eyebrow { color: #F2A7BC; }
.ds-chat { display: flex; flex-direction: column; gap: 12px; }
.ds-chat p { margin: 0; max-width: 82%; padding: 14px 18px; font-size: 15px; line-height: 1.5; color: var(--ds-white); }
.ds-chat .in { align-self: flex-start; background: var(--ds-ink-2); border-radius: 18px 18px 18px 4px; }
.ds-chat .out { align-self: flex-end; background: var(--ds-accent); border-radius: 18px 18px 4px 18px; }

/* ==========================================================================
   10. Comparativa "Sin marketplace"
   ========================================================================== */
.ds-split .wp-block-columns { gap: 48px; align-items: center; margin: 0; }
.ds-compare.wp-block-columns { gap: 12px; margin: 0; }
.ds-compare h3 { font-family: var(--ds-font-body); font-size: 15px; letter-spacing: 0; margin: 0 0 12px 4px; color: var(--ds-subtle); }
.ds-compare .wp-block-column:last-child h3 { color: var(--ds-accent-dark); }
.ds-compare ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.ds-compare li { background: var(--ds-white); border-radius: 14px; padding: 16px; margin: 0; font-size: 15px; color: var(--ds-muted); min-height: 76px; display: flex; align-items: center; }
.ds-compare .wp-block-column:last-child li { color: var(--ds-ink); font-weight: 600; border: 1.5px solid var(--ds-accent); }

/* ==========================================================================
   11. Planes
   ========================================================================== */
.ds-plans { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; align-items: stretch; text-align: left; }
@media (max-width: 1100px) { .ds-plans { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .ds-plans { grid-template-columns: 1fr; } }
.ds-plans > *, .ds-plans > .wp-block-group__inner-container > * { margin: 0 !important; }
.ds-plan { background: var(--ds-white); border: 1px solid var(--ds-line); border-radius: 22px; padding: 28px; display: flex; flex-direction: column; gap: 14px; }
.ds-plan > *, .ds-plan > .wp-block-group__inner-container > * { margin: 0; }
.ds-plan__name { font-size: 15px; font-weight: 700; letter-spacing: .08em; color: var(--ds-subtle); }
.ds-plan__price { font-family: var(--ds-font-head); font-weight: 800; font-size: 46px; line-height: 1; letter-spacing: -0.02em; }
.ds-plan__price sub { vertical-align: baseline; margin-left: 2px; font-family: var(--ds-font-body); font-size: 16px; font-weight: 500; color: var(--ds-subtle); letter-spacing: 0; }
.ds-plan__desc { color: var(--ds-text); font-size: 15px; line-height: 1.55; flex-grow: 1; }
.ds-plan .wp-block-buttons { margin-top: auto; }
.ds-plan .wp-block-button { width: 100%; }
.ds-plan .wp-block-button__link { width: 100%; padding: 13px; font-size: 16px; }
.ds-plan--featured { background: var(--ds-ink); border-color: var(--ds-ink); color: var(--ds-white); }
.ds-plan--featured .ds-plan__name, .ds-plan--featured .ds-plan__price sub, .ds-plan--featured .ds-plan__desc { color: var(--ds-on-dark); }
.ds-plan__tag { align-self: flex-start; background: var(--ds-accent); color: var(--ds-white); font-size: 12px; font-weight: 700; padding: 5px 10px; border-radius: 999px; }
.ds-note { text-align: center; color: var(--ds-muted); font-size: 15px; margin-top: 22px; }

/* ==========================================================================
   12. Cifras
   ========================================================================== */
.ds-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 16px; }
.ds-stats > *, .ds-stats > .wp-block-group__inner-container > * { margin: 0 !important; }
.ds-stat { border-top: 2px solid var(--ds-ink); padding-top: 18px; }
.ds-stat > *, .ds-stat > .wp-block-group__inner-container > * { margin: 0; }
.ds-stat__num { font-family: var(--ds-font-head); font-weight: 800; font-size: 52px; letter-spacing: -0.02em; line-height: 1.1; }
.ds-stat__label { color: var(--ds-muted); font-size: 16px; }

/* ==========================================================================
   13. Testimonios (bloque Cita con la clase "ds-quote")
   ========================================================================== */
.wp-block-quote.ds-quote {
	margin: 0;
	background: var(--ds-cream);
	border: 0;
	border-radius: 22px;
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 18px;
	font-style: normal;
}
.ds-section--alt .wp-block-quote.ds-quote { background: var(--ds-white); }
.wp-block-quote.ds-quote::before { content: "★★★★★"; color: #A8661C; font-size: 18px; letter-spacing: 2px; }
.wp-block-quote.ds-quote p { font-size: 17px; line-height: 1.6; margin: 0; }
.wp-block-quote.ds-quote cite { font-style: normal; font-size: 15px; color: var(--ds-subtle); }
.wp-block-quote.ds-quote cite strong { color: var(--ds-ink); display: block; }
/* Testimonio con foto grande arriba (como "Casos de éxito") */
.wp-block-quote.ds-quote--photo { padding: 0 28px 28px; overflow: hidden; background: var(--ds-white); box-shadow: 0 10px 30px rgba(60, 20, 40, .08); }
.ds-section--white .wp-block-quote.ds-quote--photo { background: var(--ds-cream); box-shadow: none; }
.wp-block-quote.ds-quote--photo .ds-quote__photo { order: -1; margin: 0 -28px 4px !important; width: calc(100% + 56px); max-width: none; }
.wp-block-quote.ds-quote--photo .ds-quote__photo img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; object-position: center 25%; transition: transform .4s ease; }
.wp-block-quote.ds-quote--photo:hover .ds-quote__photo img { transform: scale(1.04); }
.wp-block-quote.ds-quote--photo cite { margin-top: auto; }
.wp-block-quote.ds-quote--photo cite strong { font-family: var(--ds-font-head); font-size: 20px; }
@media (max-width: 768px) {
	.wp-block-quote.ds-quote--photo { padding: 0 20px 22px; }
	.wp-block-quote.ds-quote--photo .ds-quote__photo { margin: 0 -20px 4px !important; width: calc(100% + 40px); }
	.wp-block-quote.ds-quote--photo .ds-quote__photo img { aspect-ratio: 4 / 3; }
}

/* ==========================================================================
   14. Preguntas frecuentes (bloque Detalles)
   ========================================================================== */
.ds-faq { max-width: 860px; margin-inline: auto; }
.ds-faq .wp-block-details { border-bottom: 1px solid var(--ds-line); padding: 18px 0; margin: 0; }
.ds-faq .wp-block-details summary { font-family: var(--ds-font-head); font-weight: 700; font-size: 19px; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.ds-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.ds-faq .wp-block-details summary::after { content: "+"; color: var(--ds-accent); font-size: 26px; line-height: 1; transition: transform .2s ease; }
.ds-faq .wp-block-details[open] summary::after { transform: rotate(45deg); }
.ds-faq .wp-block-details p { color: var(--ds-text); margin: 12px 0 0; }

/* ==========================================================================
   15. Blog (bloque Últimas entradas con la clase "ds-posts")
   ========================================================================== */
.wp-block-latest-posts.ds-posts { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; margin: 0; padding: 0; }
.wp-block-latest-posts.ds-posts li { margin: 0; display: flex; flex-direction: column; gap: 12px; }
.wp-block-latest-posts.ds-posts .wp-block-latest-posts__featured-image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 18px; }
.wp-block-latest-posts.ds-posts .wp-block-latest-posts__post-title { font-family: var(--ds-font-head); font-weight: 700; font-size: 21px; line-height: 1.25; color: var(--ds-ink); text-decoration: none; }
.wp-block-latest-posts.ds-posts .wp-block-latest-posts__post-title:hover { color: var(--ds-accent); }

/* ==========================================================================
   16. Llamada final (Grupo "ds-cta")
   ========================================================================== */
.ds-cta {
	background: var(--ds-accent);
	color: var(--ds-white);
	border-radius: var(--ds-radius-lg);
	padding: clamp(36px, 5vw, 64px);
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 28px;
}
.ds-cta > *, .ds-cta > .wp-block-group__inner-container > * { margin: 0; }
.ds-cta__text { flex: 1 1 460px; }
.ds-cta__text > *, .ds-cta__text > .wp-block-group__inner-container > * { margin: 0; }
.ds-cta h2 { color: var(--ds-white); font-size: clamp(30px, 3.6vw, 48px); line-height: 1.05; margin-bottom: 12px; }
.ds-cta p { color: #FBE3EA; font-size: 18px; }

/* ==========================================================================
   17. Ficha de solución
   ========================================================================== */
.ds-shot img { border-radius: 24px; box-shadow: 0 30px 80px rgba(60, 20, 40, .16); border: 1px solid var(--ds-line); background: var(--ds-white); }
.ds-shot:not(:has(img[src])) { min-height: 360px; border-radius: 24px; background: #EEEAF6; display: flex; align-items: center; justify-content: center; }
.ds-shot:not(:has(img[src]))::after { content: "Captura del producto"; color: #4B3A86; font-weight: 700; }
.ds-price-box { background: var(--ds-white); border: 1px solid var(--ds-line); border-radius: var(--ds-radius-lg); padding: clamp(28px, 4vw, 48px); }
.ds-price-box .wp-block-columns { gap: 40px; align-items: center; margin: 0; }
.ds-price-box .ds-plan__price { font-size: 56px; margin: 8px 0; }

/* ==========================================================================
   18. Pie de página (Widgets del pie o Elemento de GeneratePress)
   ========================================================================== */
.site-footer, .site-info, .footer-widgets { background: var(--ds-ink); color: var(--ds-on-dark); }
.site-footer a, .footer-widgets a, .site-info a { color: var(--ds-on-dark); text-decoration: none; }
.site-footer a:hover, .footer-widgets a:hover, .site-info a:hover { color: var(--ds-white); }
.footer-widgets .widget-title, .ds-footer h3 { color: var(--ds-white); font-family: var(--ds-font-body); font-size: 15px; font-weight: 700; letter-spacing: 0; }
.ds-footer { background: var(--ds-ink); color: var(--ds-on-dark); padding: 56px var(--ds-pad-x) 32px; font-size: 15px; }
.ds-footer .wp-block-columns { gap: 32px; margin: 0; }
.ds-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.ds-footer li { margin: 0; }
.ds-footer a { color: var(--ds-on-dark); text-decoration: none; }
.ds-footer a:hover { color: var(--ds-white); }
.ds-footer__logo strong { font-family: var(--ds-font-head); font-size: 24px; color: var(--ds-white); }
.ds-footer .ds-footer__logo img { height: 32px; width: auto; filter: brightness(0) invert(1); }
.ds-footer__bottom { margin-top: 40px; padding-top: 22px; border-top: 1px solid #332D37; font-size: 13px; color: #A59AA3; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; }
.ds-footer__bottom > *, .ds-footer__bottom > .wp-block-group__inner-container > * { margin: 0; }
.ds-footer__bottom a { color: #A59AA3; }

/* ==========================================================================
   19. Móvil
   ========================================================================== */
@media (max-width: 781px) {
	.ds-section { padding-block: 52px; }
	.ds-hero { padding-top: 40px; }
	.ds-card { padding: 20px; }
	.ds-grid--sm { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.ds-grid--sm .ds-card h3 { font-size: 18px; }
	.ds-mock__toast { position: static; margin-top: 14px; max-width: none; }
	.ds-mock__grid { grid-template-columns: 44px repeat(3, minmax(0, 1fr)); font-size: 12px; }
	.ds-compare.wp-block-columns { flex-wrap: nowrap !important; }
	.ds-compare.wp-block-columns > .wp-block-column { flex-basis: 50% !important; }
	.ds-compare li { min-height: 96px; font-size: 14px; }
	.wp-block-buttons > .wp-block-button { flex: 1 1 auto; }
	.wp-block-buttons > .wp-block-button .wp-block-button__link { width: 100%; text-align: center; }
	.main-navigation .main-nav ul li.ds-menu-cta > a { margin: 10px 0; display: inline-block; }
}

@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; }
}

/* ==========================================================================
   19. Formularios y área de clientes (sistema DunaSoft /rs, clase .dunasoft)
   ========================================================================== */
.dunasoft { position: relative; }
.dunasoft *, .dunasoft *::before, .dunasoft *::after { box-sizing: border-box; }
.dunasoft .pageDunasoft { background: var(--ds-white); border: 1px solid var(--ds-line); border-radius: var(--ds-radius-lg); padding: clamp(20px, 4vw, 40px); transition: opacity .2s; }
.dunasoft .container { width: 100%; max-width: none; padding: 0; margin: 0; }
.dunasoft .row, .dunasoft .form-row { display: flex; flex-wrap: wrap; margin: 0 -8px; }
.dunasoft [class*="col-"] { flex: 0 0 100%; max-width: 100%; padding: 0 8px; }
@media (min-width: 768px) {
	.dunasoft .col-md-4 { flex-basis: 33.333%; max-width: 33.333%; }
	.dunasoft .col-md-6 { flex-basis: 50%; max-width: 50%; }
	.dunasoft .col-md-12 { flex-basis: 100%; max-width: 100%; }
}
@media (min-width: 992px) { .dunasoft .col-lg-3 { flex-basis: 25%; max-width: 25%; } }
.dunasoft .d-none { display: none !important; }
.dunasoft .text-center, .dunasoft .tf_textc { text-align: center; }
.dunasoft .text-right { text-align: right; }
.dunasoft .mb-3 { margin-bottom: 16px; }
.dunasoft .builder-contact-field { padding-top: 16px; }
.dunasoft .control-input { position: relative; }
.dunasoft .form-control { display: block; width: 100%; padding: 22px 16px 10px; font: inherit; font-size: 16px; color: var(--ds-ink); background: var(--ds-cream); border: 1px solid var(--ds-line); border-radius: 14px; }
.dunasoft textarea.form-control { min-height: 130px; resize: vertical; }
.dunasoft input[type="date"].form-control { padding: 12px 16px; }
.dunasoft .form-control:focus { outline: none; border-color: var(--ds-accent); background: var(--ds-white); box-shadow: 0 0 0 3px var(--ds-accent-soft); }
.dunasoft .tb_contact_label { position: absolute; top: 50%; left: 16px; right: 16px; transform: translateY(-50%); color: var(--ds-subtle); font-size: 16px; pointer-events: none; transition: top .2s, font-size .2s, transform .2s; }
.dunasoft textarea + .tb_contact_label { top: 26px; }
.dunasoft .form-control:not(:placeholder-shown) + .tb_contact_label, .dunasoft .form-control:focus + .tb_contact_label { top: 6px; transform: none; font-size: 12px; }
.dunasoft input[type="checkbox"], .dunasoft input[type="checkbox"].form-control { display: inline-block; width: 18px; height: 18px; padding: 0; margin: 0 10px 0 0; vertical-align: -3px; accent-color: var(--ds-accent); }
.dunasoft .field-gdpr, .dunasoft .builder-contact-field > label { font-size: 15px; color: var(--ds-text); }
.dunasoft .required, .dunasoft #captcha, .dunasoft .login-message, .dunasoft .contact-error { color: var(--ds-accent); }
.dunasoft .contact-message, .dunasoft .login-message { text-align: center; font-weight: 600; }
.dunasoft .control-label { display: inline-block; }
.dunasoft .btn { display: inline-block; font-family: var(--ds-font-head); font-weight: 700; font-size: 16px; line-height: 1.2; padding: 15px 30px; border-radius: 999px; border: 2px solid var(--ds-accent); background: var(--ds-accent); color: #fff; cursor: pointer; margin-top: 16px; }
.dunasoft .btn:hover, .dunasoft .btn:focus { background: var(--ds-accent-dark); border-color: var(--ds-accent-dark); color: #fff; }
.dunasoft .btn-secondary { background: transparent; color: var(--ds-ink); border-color: var(--ds-ink); }
.dunasoft .btn-secondary:hover, .dunasoft .btn-secondary:focus { background: var(--ds-ink); border-color: var(--ds-ink); color: #fff; }
.dunasoft .btn-small { font-size: 14px; padding: 10px 18px; margin-top: 8px; width: 100%; }
.dunasoft h5 { font-size: 18px; margin: 24px 0 8px; }
.dunasoft .table { width: 100%; border-collapse: collapse; font-size: 15px; background: var(--ds-white); margin: 0; }
.dunasoft .table th { text-align: left; font-weight: 700; color: var(--ds-ink); border-bottom: 2px solid var(--ds-line); padding: 10px 8px; }
.dunasoft .table td { border-bottom: 1px solid var(--ds-line); padding: 10px 8px; }
.dunasoft #facturas, .dunasoft #resumenFacturacion, .dunasoft #graficosFacturacion { overflow-x: auto; }
.dunasoft .ds-legal { max-width: 760px; margin: 8px auto 0; font-size: 12px; line-height: 1.45; color: var(--ds-subtle); text-align: left; }
.dunasoft #page-login .row { justify-content: center; }
.dunasoft #page-login .form-control { max-width: 360px; margin: 6px auto 0; padding: 14px 16px; background: var(--ds-white); }
.dunasoft #page-login .control-label { display: block; font-weight: 600; }
.dunasoft #page-cliente .control-label { display: block; padding: 6px 0; }
/* Ventana de "solicitud enviada" (modal de Bootstrap) */
.modal { position: fixed; inset: 0; z-index: 1050; display: none; overflow-y: auto; }
.modal.show { display: block; }
.modal-dialog { max-width: 620px; margin: 12vh auto; padding: 0 16px; }
.modal-content { background: var(--ds-white); border-radius: var(--ds-radius); padding: 28px; box-shadow: 0 20px 60px rgba(23, 20, 26, .25); }
.modal-body h1 { font-size: 24px; line-height: 1.35; text-align: center; margin: 0 0 20px; }
.modal-backdrop { position: fixed; inset: 0; z-index: 1040; background: rgba(23, 20, 26, .55); }
.modal-open { overflow: hidden; }
.fade { transition: opacity .15s linear; }
.fade:not(.show) { opacity: 0; }

/* Anclas (#formulario…) visibles bajo la cabecera fija */
[id] { scroll-margin-top: 110px; }

/* ==========================================================================
   20. Configurador de contratación (/contratar/)
   ========================================================================== */
.ds-config { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 32px; align-items: start; }
.ds-config__step { border: 0; margin: 0 0 32px; padding: 0; min-width: 0; }
.ds-config__step legend { display: flex; align-items: center; gap: 12px; font-family: var(--ds-font-head); font-weight: 800; font-size: 22px; color: var(--ds-ink); margin-bottom: 16px; padding: 0; }
.ds-config__step legend span { width: 32px; height: 32px; border-radius: 50%; background: var(--ds-accent); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 15px; }
.ds-config__plans { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ds-config__plan { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 18px 18px 16px; background: var(--ds-white); border: 2px solid var(--ds-line); border-radius: var(--ds-radius); cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.ds-config__plan:hover { border-color: #E3C5CF; }
.ds-config__plan.is-active { border-color: var(--ds-accent); box-shadow: 0 0 0 3px var(--ds-accent-soft); }
.ds-config__plan input { position: absolute; opacity: 0; pointer-events: none; }
.ds-config__plan-name { font-family: var(--ds-font-head); font-weight: 800; font-size: 18px; color: var(--ds-ink); }
.ds-config__plan-name em { font-style: normal; font-size: 11px; font-weight: 700; background: var(--ds-accent); color: #fff; padding: 3px 8px; border-radius: 999px; margin-left: 6px; vertical-align: 2px; }
.ds-config__plan-price { font-family: var(--ds-font-head); font-weight: 800; font-size: 26px; color: var(--ds-ink); }
.ds-config__plan-price small { font-family: var(--ds-font-body); font-size: 13px; font-weight: 500; color: var(--ds-subtle); margin-left: 4px; }
.ds-config__plan-desc { font-size: 14px; line-height: 1.45; color: var(--ds-text); }
.ds-config__plan-perm { font-size: 12px; color: var(--ds-subtle); }
.ds-config__addon { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 18px; margin-bottom: 10px; background: var(--ds-white); border: 1px solid var(--ds-line); border-radius: var(--ds-radius); }
.ds-config__addon.is-active { border-color: var(--ds-accent); }
.ds-config__addon-text { display: flex; flex-direction: column; gap: 2px; }
.ds-config__addon-text strong { font-size: 16px; color: var(--ds-ink); }
.ds-config__addon-text span { font-size: 14px; color: var(--ds-text); }
.ds-config__addon-text .ds-config__addon-price { font-weight: 700; color: var(--ds-accent-dark); }
.ds-config__qty { display: inline-flex; align-items: center; border: 1px solid var(--ds-line); border-radius: 999px; overflow: hidden; flex-shrink: 0; }
.ds-config__qty button { width: 40px; height: 40px; border: 0; background: var(--ds-cream); color: var(--ds-ink); font-size: 20px; line-height: 1; cursor: pointer; padding: 0; }
.ds-config__qty button:hover { background: var(--ds-accent-soft); }
.ds-config__qty input { width: 48px; height: 40px; border: 0; text-align: center; font: inherit; font-weight: 700; color: var(--ds-ink); background: #fff; -moz-appearance: textfield; padding: 0; }
.ds-config__qty input::-webkit-outer-spin-button, .ds-config__qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ds-config__switch { position: relative; width: 52px; height: 30px; flex-shrink: 0; cursor: pointer; }
.ds-config__switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.ds-config__switch span { position: absolute; inset: 0; background: #DDD3D6; border-radius: 999px; transition: background .15s; pointer-events: none; }
.ds-config__switch span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.2); transition: transform .15s; }
.ds-config__switch input:checked + span { background: var(--ds-accent); }
.ds-config__switch input:checked + span::after { transform: translateX(22px); }
.ds-config__switch input:focus-visible + span { outline: 3px solid var(--ds-accent); outline-offset: 2px; }
.ds-config__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ds-config__field { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; color: var(--ds-ink); }
.ds-config__field input { width: 100%; padding: 13px 14px; font: inherit; font-weight: 400; font-size: 16px; color: var(--ds-ink); background: var(--ds-white); border: 1px solid var(--ds-line); border-radius: 12px; }
.ds-config__field input:focus { outline: none; border-color: var(--ds-accent); box-shadow: 0 0 0 3px var(--ds-accent-soft); }
.ds-config__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ds-config__hint { font-size: 14px; color: var(--ds-subtle); margin: 12px 0 0; }
.ds-config__summary { position: sticky; top: 110px; background: var(--ds-ink); color: var(--ds-on-dark); border-radius: var(--ds-radius-lg); padding: 28px; }
.ds-config__summary h2 { color: #fff; font-size: 22px; margin: 0 0 16px; }
.ds-config__summary p { color: var(--ds-on-dark); }
.ds-config__summary a { color: #F2A7BC; }
.ds-config__lines div, .ds-config__totals div { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; font-size: 15px; }
.ds-config__lines div { border-bottom: 1px solid rgba(255,255,255,.1); }
.ds-config__lines span:last-child, .ds-config__totals dd { white-space: nowrap; color: #fff; }
.ds-config__totals { margin: 12px 0 0; }
.ds-config__totals dt, .ds-config__totals dd { margin: 0; }
.ds-config__totals .is-total { border-top: 1px solid rgba(255,255,255,.25); margin-top: 6px; padding-top: 12px; font-family: var(--ds-font-head); font-weight: 800; font-size: 22px; color: #fff; }
.ds-config__perm { font-size: 14px; margin: 14px 0; }
.ds-config__accept { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.45; margin-bottom: 16px; cursor: pointer; }
.ds-config__accept input { width: 18px; height: 18px; margin-top: 2px; flex-shrink: 0; accent-color: var(--ds-accent); }
.ds-config__pay { width: 100%; padding: 16px; border: 0; border-radius: 999px; background: var(--ds-accent); color: #fff; font-family: var(--ds-font-head); font-weight: 800; font-size: 17px; cursor: pointer; transition: background .15s; }
.ds-config__pay:hover, .ds-config__pay:focus-visible { background: #CF2B5C; }
.ds-config__pay:disabled { opacity: .6; cursor: wait; }
.ds-config__msg { color: #F2A7BC; font-size: 14px; margin: 12px 0 0; }
.ds-config__msg:empty { display: none; }
.ds-config__secure { font-size: 13px; margin: 12px 0 0; opacity: .8; }
@media (max-width: 960px) {
	.ds-config { grid-template-columns: 1fr; }
	.ds-config__summary { position: static; }
}
@media (max-width: 560px) {
	.ds-config__plans, .ds-config__fields { grid-template-columns: 1fr; }
	.ds-config__addon { flex-wrap: wrap; }
}

.ds-center .ds-lead { margin-inline: auto; }
.ds-config__billing { display: inline-flex; padding: 4px; margin-bottom: 16px; background: var(--ds-cream-2); border: 1px solid var(--ds-line); border-radius: 999px; }
.ds-config__billing button { border: 0; background: transparent; color: var(--ds-text); font: inherit; font-weight: 700; font-size: 15px; padding: 10px 18px; border-radius: 999px; cursor: pointer; }
.ds-config__billing button.is-active { background: var(--ds-white); color: var(--ds-ink); box-shadow: 0 2px 8px rgba(23, 20, 26, .1); }
.ds-config__billing em { font-style: normal; font-size: 12px; background: var(--ds-accent); color: #fff; padding: 2px 7px; border-radius: 999px; margin-left: 4px; }
.ds-config__plan-price s { font-family: var(--ds-font-body); font-size: 15px; font-weight: 500; color: var(--ds-subtle); margin-left: 6px; }
.ds-config__plan-year { font-size: 13px; color: var(--ds-accent-dark); font-weight: 600; }
.ds-config__plan-year:empty { display: none; }
.ds-config__save { font-size: 14px; margin: 12px 0 0; }
.ds-config__save strong { color: #fff; }
.ds-config__save button { border: 0; background: none; padding: 0; font: inherit; color: #F2A7BC; text-decoration: underline; cursor: pointer; }

.ds-config__addon--info { border-style: dashed; }
.ds-config__lines .is-info span:last-child { color: #F2A7BC; font-size: 13px; }

.ds-config__plan-price { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 4px; }
.ds-config__plan-price s, .ds-config__plan-price small { white-space: nowrap; }

/* ==========================================================================
   21. Tarjetas de sector con imagen (home: "Hecho para tu tipo de salón")
   ========================================================================== */
.ds-card--media { padding-top: 0; overflow: hidden; }
.ds-card--media .ds-card__img { margin: 0 -26px 6px !important; width: calc(100% + 52px); max-width: none; display: block; }
.ds-card__img img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .4s ease; }
.ds-card--media:hover .ds-card__img img { transform: scale(1.04); }
@media (min-width: 1101px) {
	.ds-grid--sm:has(.ds-card--media) { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (min-width: 769px) and (max-width: 1100px) {
	.ds-grid--sm:has(.ds-card--media) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
	.ds-card--media .ds-card__img { margin: 0 -20px 4px !important; width: calc(100% + 40px); }
	.ds-card--media:last-child:nth-child(odd) { grid-column: 1 / -1; }
	.ds-card--media:last-child:nth-child(odd) .ds-card__img img { aspect-ratio: 16 / 9; }
}

/* ==========================================================================
   22. Animaciones: entrada de bloques al hacer scroll, cifras que cuentan,
       portada con movimiento y brillos en botones. Se desactivan si el
       visitante tiene activada la opción "reducir movimiento".
   ========================================================================== */
@keyframes ds-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes ds-pop { 0% { opacity: 0; transform: translateY(14px) scale(.92); } 70% { opacity: 1; transform: translateY(0) scale(1.03); } 100% { opacity: 1; transform: none; } }
@keyframes ds-drift { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(-40px, 30px) scale(1.08); } 100% { transform: translate(20px, -20px) scale(.96); } }
@keyframes ds-shine { from { transform: translateX(-130%) skewX(-20deg); } to { transform: translateX(260%) skewX(-20deg); } }
@keyframes ds-ring { 0% { box-shadow: 0 0 0 0 rgba(180, 35, 79, .45); } 80%, 100% { box-shadow: 0 0 0 12px rgba(180, 35, 79, 0); } }

/* Entrada al hacer scroll (el JS marca los bloques con data-ds-reveal) */
html.ds-anim [data-ds-reveal] {
	opacity: 0;
	transform: translateY(32px);
	transition: opacity .8s cubic-bezier(.2, .7, .2, 1), transform .8s cubic-bezier(.2, .7, .2, 1);
	transition-delay: var(--ds-d, 0ms);
	will-change: opacity, transform;
}
html.ds-anim [data-ds-reveal="left"] { transform: translateX(-48px); }
html.ds-anim [data-ds-reveal="right"] { transform: translateX(48px); }
html.ds-anim [data-ds-reveal="zoom"] { transform: scale(.94); }
html.ds-anim [data-ds-reveal].is-in { opacity: 1; transform: none; }
/* Que los bloques que entran de lado no creen scroll horizontal */
html.ds-anim body { overflow-x: clip; }
@media (max-width: 768px) {
	html.ds-anim [data-ds-reveal="left"], html.ds-anim [data-ds-reveal="right"] { transform: translateY(32px); }
	html.ds-anim [data-ds-reveal].is-in { transform: none; }
}
/* Evita el parpadeo de la portada antes de que arranque el JS */
html.ds-anim body:not(.ds-anim-ready) .ds-hero { opacity: 0; }

/* Portada: manchas de color que se mueven despacio detrás del contenido */
.ds-hero { position: relative; isolation: isolate; overflow-x: clip; }
.ds-hero::before, .ds-hero::after {
	content: ""; position: absolute; z-index: -1; pointer-events: none; border-radius: 50%;
	animation: ds-drift 18s ease-in-out infinite alternate;
}
.ds-hero::before { width: 560px; height: 560px; top: -160px; right: -140px; background: radial-gradient(circle, rgba(180, 35, 79, .16), rgba(180, 35, 79, 0) 68%); }
.ds-hero::after { width: 460px; height: 460px; bottom: -200px; left: -160px; background: radial-gradient(circle, rgba(140, 110, 200, .14), rgba(140, 110, 200, 0) 68%); animation-duration: 22s; animation-direction: alternate-reverse; }

/* Portada: la agenda y las capturas flotan; las citas y el aviso aparecen una a una */
.ds-hero .ds-mock__card, .ds-hero .ds-shot img { animation: ds-float 7s ease-in-out 1.4s infinite; }
html.ds-anim .ds-hero .ds-slot { animation: ds-pop .55s cubic-bezier(.2, .7, .2, 1) both; animation-delay: calc(.5s + var(--ds-i, 0) * 90ms); }
html.ds-anim .ds-hero .ds-mock__toast { animation: ds-pop .7s cubic-bezier(.2, .7, .2, 1) 1.6s both; }

/* Botones: brillo al pasar el ratón y pequeño salto */
.wp-block-button a.wp-block-button__link { position: relative; overflow: hidden; isolation: isolate; transition: background-color .15s ease, color .15s ease, border-color .15s ease, transform .2s ease, box-shadow .2s ease; }
.wp-block-button a.wp-block-button__link::after {
	content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 40%; z-index: -1; pointer-events: none;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, .35), rgba(255, 255, 255, 0));
	transform: translateX(-130%) skewX(-20deg);
}
.wp-block-button a.wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(180, 35, 79, .22); }
.wp-block-button a.wp-block-button__link:hover::after { animation: ds-shine .8s ease; }
.wp-block-button.is-style-outline a.wp-block-button__link:hover, .wp-block-button.ds-btn-light a.wp-block-button__link:hover { box-shadow: 0 10px 24px rgba(23, 20, 26, .12); }

/* "Demo gratis" del menú: un pulso suave para llamar la atención */
.main-navigation .main-nav ul li.ds-menu-cta > a { animation: ds-ring 2.8s ease-out 2s infinite; }

/* Tarjetas, planes y testimonios: se elevan al pasar el ratón */
.ds-plan, .wp-block-quote.ds-quote, .ds-stat { transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.ds-plan:hover { transform: translateY(-6px); box-shadow: 0 18px 44px rgba(60, 20, 40, .12); }
.wp-block-quote.ds-quote:hover { transform: translateY(-4px); box-shadow: 0 14px 36px rgba(60, 20, 40, .09); }
.ds-card:has(h3 a):hover { transform: translateY(-6px); }
.ds-card__num { transition: transform .3s ease; }
.ds-card:hover .ds-card__num { transform: rotate(-8deg) scale(1.12); }

@media (prefers-reduced-motion: reduce) {
	html.ds-anim [data-ds-reveal] { opacity: 1 !important; transform: none !important; }
	html.ds-anim body:not(.ds-anim-ready) .ds-hero { opacity: 1; }
	.ds-hero::before, .ds-hero::after, .ds-hero .ds-mock__card, .ds-hero .ds-shot img, .ds-hero .ds-slot, .ds-hero .ds-mock__toast,
	.main-navigation .main-nav ul li.ds-menu-cta > a, .wp-block-button a.wp-block-button__link::after { animation: none !important; }
}

/* ==========================================================================
   23. Prensa y Medios (plugin de prensa, clases pm-): página más ancha,
       tarjetas más grandes y colores de la marca
   ========================================================================== */
body.page:has(.pm-prensa-wrap) #page.grid-container { max-width: calc(var(--ds-max) + 80px); }
body.page:not(.ds-landing):has(.pm-prensa-wrap) .entry-content { max-width: none; }
.entry-content .pm-prensa-wrap {
	--pm-accent: var(--ds-accent);
	--pm-text: var(--ds-ink);
	--pm-muted: var(--ds-muted);
	--pm-border: var(--ds-line);
	--pm-radius: var(--ds-radius);
	max-width: none !important;
	padding: 8px 0 0 !important;
}
.pm-prensa-wrap .pm-filter { gap: 10px; margin-bottom: 40px; padding-bottom: 28px; }
.pm-prensa-wrap .pm-year-btn { font-size: 16px !important; font-weight: 600; padding: 10px 22px !important; border-radius: 999px !important; }
.pm-prensa-wrap .pm-month-filter { margin: -20px 0 32px; gap: 8px; }
.pm-prensa-wrap .pm-month-btn { font-size: 14px !important; padding: 7px 16px !important; border-radius: 999px !important; }
.pm-prensa-wrap .pm-year-btn.is-active { background: var(--ds-ink) !important; border-color: var(--ds-ink) !important; color: var(--ds-white) !important; }
.pm-prensa-wrap .pm-grid.pm-cols-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.pm-prensa-wrap .pm-card { display: flex; flex-direction: column; border-width: 1px; }
.pm-prensa-wrap .pm-card__link { display: flex; flex-direction: column; height: 100%; }
.pm-prensa-wrap .pm-card:hover { box-shadow: 0 18px 44px rgba(60, 20, 40, .10); border-color: var(--ds-accent-soft); }
.pm-prensa-wrap .pm-card__image { aspect-ratio: 16 / 10; }
.pm-prensa-wrap .pm-card__category { top: 16px; left: 16px; font-size: 13px; padding: 5px 14px; }
.pm-prensa-wrap .pm-card__body { gap: 10px; padding: 24px 28px 28px; }
.pm-prensa-wrap .pm-card__source { font-size: 13px; letter-spacing: .06em; overflow-wrap: anywhere; }
.pm-prensa-wrap .pm-card__title { font-family: var(--ds-font-head); font-size: 22px; line-height: 1.3; -webkit-line-clamp: 3; }
.pm-prensa-wrap .pm-card__desc { font-size: 16px; line-height: 1.6; }
.pm-prensa-wrap .pm-card__date { font-size: 14px; margin-top: 6px; }
@media (max-width: 1024px) {
	.pm-prensa-wrap .pm-grid.pm-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
}
@media (max-width: 640px) {
	.pm-prensa-wrap .pm-grid.pm-cols-4 { grid-template-columns: 1fr; }
	.pm-prensa-wrap .pm-card__body { padding: 20px 22px 24px; }
	.pm-prensa-wrap .pm-card__title { font-size: 20px; }
	.pm-prensa-wrap .pm-year-btn { font-size: 15px !important; padding: 8px 16px !important; }
}

/* ==========================================================================
   24. Imagen redonda de producto encima de cada tarjeta (home: "Todo conectado")
   ========================================================================== */
.ds-card .ds-card__prod { margin: 0 0 22px !important; width: 168px; }
.ds-card .ds-card__prod img {
	display: block; width: 168px; height: 168px; border-radius: 50%; object-fit: cover;
	border: 5px solid var(--ds-white); box-shadow: 0 10px 28px rgba(60, 20, 40, .16);
	transition: transform .35s ease, box-shadow .35s ease;
}
.ds-card:hover .ds-card__prod img { transform: scale(1.06) rotate(-3deg); box-shadow: 0 12px 28px rgba(60, 20, 40, .2); }
@media (max-width: 768px) {
	.ds-card .ds-card__prod { width: 128px; margin-bottom: 18px !important; }
	.ds-card .ds-card__prod img { width: 128px; height: 128px; }
}

/* ==========================================================================
   25. Imagen redonda grande de producto en el hero de cada ficha (.ds-shot--round)
   ========================================================================== */
.ds-shot.ds-shot--round { position: relative; width: min(100%, 480px); margin: 24px auto !important; }
.ds-shot.ds-shot--round::before {
	content: ""; position: absolute; inset: -6%; border-radius: 50%; z-index: 0;
	background: radial-gradient(circle at 35% 30%, var(--ds-accent-soft) 0%, rgba(246, 227, 232, .55) 45%, transparent 72%);
}
.ds-shot.ds-shot--round img {
	position: relative; z-index: 1; display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover;
	border-radius: 50%; border: 8px solid var(--ds-white); background: var(--ds-white);
	box-shadow: 0 30px 80px rgba(60, 20, 40, .18);
}
@media (max-width: 768px) {
	.ds-shot.ds-shot--round { width: min(82%, 340px); margin: 28px auto 8px !important; }
	.ds-shot.ds-shot--round img { border-width: 6px; }
}

/* ==========================================================================
   26. Hero de la home con imagen a todo el ancho y el ecosistema alrededor (.ds-hero--eco)
   Ocupa justo la pantalla visible bajo el menú. La imagen se recorta como "cover"
   y las tarjetas van fijadas a la imagen (.ds-eco__frame), así caen siempre en el mismo sitio.
   ========================================================================== */
.ds-hero.ds-hero--eco { --ds-hdr: 105px; padding: 0; display: grid; background: #160D12; overflow: hidden; }
body.admin-bar .ds-hero.ds-hero--eco { --ds-hdr: 137px; }
.ds-hero.ds-hero--eco::before, .ds-hero.ds-hero--eco::after { display: none; }
.ds-hero--eco > .wp-block-group__inner-container { display: contents; }
.ds-hero--eco .ds-eco, .ds-hero--eco .ds-hero__copy { grid-area: 1 / 1; }
.ds-eco {
	position: relative; width: 100%; overflow: hidden; container-type: size;
	height: min(calc(100svh - var(--ds-hdr)), calc(100vw * 1340 / 2400)); min-height: 520px;
}
.ds-eco::after {
	content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
	background:
		linear-gradient(90deg, rgba(22, 9, 16, .88) 0%, rgba(22, 9, 16, .68) 24%, rgba(22, 9, 16, .2) 44%, rgba(22, 9, 16, 0) 56%),
		linear-gradient(0deg, rgba(22, 9, 16, .3) 0%, rgba(22, 9, 16, 0) 26%);
}
.ds-eco__frame {
	position: absolute; left: 50%; top: 40%; transform: translate(-50%, -40%);
	width: max(100cqw, calc(100cqh * 2400 / 1340)); aspect-ratio: 2400 / 1340;
}
.ds-eco__media { position: absolute; inset: 0; margin: 0; }
.ds-eco__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* Tarjetas del ecosistema (posición en % de la imagen) */
.ds-eco__cards { position: absolute; inset: 0; z-index: 2; margin: 0; padding: 0; list-style: none; pointer-events: none; }
.ds-eco__cards li { margin: 0; }
.ds-eco__card {
	position: absolute; left: var(--x); top: var(--y); pointer-events: auto;
	display: flex; align-items: center; gap: 12px; max-width: 270px;
	padding: 10px 18px 10px 10px; border-radius: 18px; text-decoration: none; color: var(--ds-ink);
	background: rgba(255, 255, 255, .9); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	border: 1px solid rgba(255, 255, 255, .75); box-shadow: 0 16px 40px rgba(22, 9, 16, .32);
	transition: background .25s ease, box-shadow .25s ease;
}
.ds-eco__card:hover, .ds-eco__card:focus-visible { background: #fff; box-shadow: 0 20px 48px rgba(22, 9, 16, .42); color: var(--ds-ink); }
.ds-eco__ico {
	flex: none; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center;
	background: linear-gradient(140deg, #CF3A66, var(--ds-accent-dark)); box-shadow: 0 0 0 4px rgba(180, 35, 79, .16);
}
.ds-eco__ico svg { width: 23px; height: 23px; fill: none; stroke: #fff; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.ds-eco__card strong { display: block; font-family: var(--ds-font-head); font-size: 15px; line-height: 1.2; }
.ds-eco__card small { display: block; margin-top: 3px; font-size: 13px; line-height: 1.3; color: var(--ds-muted); }
@keyframes ds-eco-in { from { opacity: 0; transform: translateY(20px) scale(.9); } to { opacity: 1; transform: none; } }
html.ds-anim .ds-eco__card { animation: ds-eco-in .7s cubic-bezier(.2, .7, .2, 1) var(--d, .5s) both, ds-float 7s ease-in-out calc(var(--d, .5s) + .8s) infinite; }
.ds-eco__cards li:nth-child(even) .ds-eco__card { animation-duration: .7s, 8.5s; }
/* Texto sobre la imagen */
.ds-hero__copy {
	position: relative; z-index: 3; align-self: center; margin: 0 !important; box-sizing: border-box;
	padding: 20px 0 20px var(--ds-pad-x); width: min(calc(var(--ds-pad-x) + 560px), 42vw); max-width: none; color: #fff;
}
.ds-hero--eco .ds-badge { margin-bottom: 14px; padding: 6px 14px; background: rgba(255, 255, 255, .14); color: #fff; border: 1px solid rgba(255, 255, 255, .28); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.ds-hero--eco h1 { margin-bottom: 14px; color: #fff; font-size: clamp(34px, min(3.8vw, 6.4svh), 60px); line-height: 1.05; text-shadow: 0 2px 24px rgba(22, 9, 16, .45); }
.ds-hero--eco .ds-lead { margin-bottom: 20px; color: rgba(255, 255, 255, .88); font-size: clamp(15.5px, 2.3svh, 18px); }
.ds-hero--eco ul.ds-checks { margin-top: 18px; color: rgba(255, 255, 255, .88); }
.ds-hero--eco ul.ds-checks li::before { filter: brightness(1.9) saturate(.8); }
.ds-hero--eco .wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .85); }
.ds-hero--eco .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--ds-ink); }
/* Pantallas medianas: tarjetas algo más pequeñas */
@media (max-width: 1360px) {
	.ds-eco__card { padding: 8px 14px 8px 8px; gap: 10px; max-width: 230px; }
	.ds-eco__ico { width: 38px; height: 38px; }
	.ds-eco__ico svg { width: 19px; height: 19px; }
	.ds-eco__card strong { font-size: 14px; }
	.ds-eco__card small { font-size: 12px; }
}
/* Tablet y móvil: imagen arriba, texto debajo y tarjetas en una fila deslizable */
@media (max-width: 1100px) {
	.ds-hero.ds-hero--eco { display: flex; flex-direction: column; }
	.ds-eco, .ds-eco__frame { display: contents; }
	.ds-eco::after { display: none; }
	.ds-eco__media { position: relative; order: 1; aspect-ratio: 16 / 10; }
	.ds-eco__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, #160D12 0%, rgba(22, 9, 16, 0) 35%); }
	.ds-eco__media img { object-position: 72% 40%; }
	.ds-hero__copy { order: 2; width: auto; padding: 8px var(--ds-pad-x); }
	.ds-hero--eco h1 { font-size: clamp(34px, 8vw, 48px); }
	.ds-eco__cards { order: 3; position: static; display: flex; gap: 12px; overflow-x: auto; padding: 18px var(--ds-pad-x) 40px; scroll-snap-type: x mandatory; scrollbar-width: none; }
	.ds-eco__cards::-webkit-scrollbar { display: none; }
	.ds-eco__cards li { flex: 0 0 auto; scroll-snap-align: start; }
	.ds-eco__card { position: static; max-width: none; }
	html.ds-anim .ds-eco__card { animation: none; }
}
@media (prefers-reduced-motion: reduce) { html.ds-anim .ds-eco__card { animation: none; } }

/* ==========================================================================
   27. Separación entre una rejilla de tarjetas y el botón que va debajo
   ========================================================================== */
.ds-section .ds-grid + .wp-block-buttons { margin-top: 40px !important; }
@media (max-width: 768px) { .ds-section .ds-grid + .wp-block-buttons { margin-top: 28px !important; } }

/* ==========================================================================
   28. Tarjetas grandes con imagen arriba (home: Recupera Clientes e Informes y KPIs)
   ========================================================================== */
.ds-grid--lg .ds-card--media .ds-card__img img { aspect-ratio: 3 / 2; }

/* ==========================================================================
   29. Hero de las fichas de producto (soluciones): cabe entero en la
       primera pantalla. Textos, márgenes e imagen se ajustan a la altura visible.
   ========================================================================== */
@media (min-width: 1101px) {
	.single-soluciones .ds-hero { --ds-hdr: 105px; padding-top: clamp(20px, 4.5svh, 72px); padding-bottom: clamp(20px, 4.5svh, 64px); }
	body.admin-bar.single-soluciones .ds-hero { --ds-hdr: 137px; }
	.single-soluciones .ds-hero .ds-eyebrow { margin-bottom: clamp(6px, 1.2svh, 12px); }
	.single-soluciones .ds-hero h1 { font-size: clamp(30px, min(3.3vw, 5.8svh), 56px); line-height: 1.08; margin-bottom: clamp(10px, 2svh, 20px); }
	.single-soluciones .ds-hero .ds-lead { font-size: clamp(15.5px, 2.4svh, 18px); margin-bottom: clamp(14px, 3svh, 30px); }
	.single-soluciones .ds-hero ul.ds-checks { margin-top: clamp(10px, 2svh, 22px); }
	.ds-hero .ds-shot.ds-shot--round { width: min(100%, 600px, calc(100svh - var(--ds-hdr) - 9svh - 16px)); margin: 0 auto !important; }
}

/* 30. Nombre del producto (antetítulo) bien grande en el hero de cada ficha */
.single-soluciones .ds-hero .ds-eyebrow { font-family: var(--ds-font-head); font-size: clamp(26px, min(2.9vw, 5.2svh), 44px); font-weight: 800; line-height: 1.1; letter-spacing: .05em; }
@media (min-width: 1101px) {
	.single-soluciones .ds-hero .ds-eyebrow { margin-bottom: clamp(8px, 1.6svh, 16px); }
	.single-soluciones .ds-hero .ds-badge { margin-bottom: clamp(8px, 1.6svh, 16px); padding: 6px 12px; font-size: 13px; }
}

/* ==========================================================================
   31. "Así es Style por dentro" (.ds-tour): filas imagen/texto alternas con
       capturas reales dentro de un monitor dibujado o de una ventana flotante
   ========================================================================== */
.ds-tour > .ds-eyebrow, .ds-tour > h2, .ds-tour > .ds-lead { text-align: center; margin-inline: auto; max-width: 760px; }
.ds-tour > .ds-lead { margin-bottom: 56px; }
.ds-tour .ds-tour__row { gap: 64px; align-items: center; margin: 0 0 96px; }
.ds-tour .ds-tour__row:last-child { margin-bottom: 0; }
.ds-tour .ds-tour__media { flex-basis: 58% !important; position: relative; }
.ds-tour .ds-tour__text { flex-basis: 42% !important; }
.ds-tour__row--rev { flex-direction: row-reverse; }
.ds-tour__text h3 { font-size: clamp(24px, 2.3vw, 32px); line-height: 1.2; margin: 0 0 14px; }
.ds-tour__text p { font-size: 17px; line-height: 1.65; }
/* Monitor dibujado con CSS (la captura se ve nítida) */
.ds-device { position: relative; padding-bottom: 9%; }
.ds-device__screen {
	position: relative; z-index: 1; padding: 2.1%; border-radius: 18px; background: linear-gradient(160deg, #2A262D, #0E0C10 60%);
	box-shadow: 0 0 0 1px rgba(255, 255, 255, .06) inset, 0 34px 70px rgba(40, 14, 28, .28), 0 8px 20px rgba(40, 14, 28, .16);
}
.ds-device__screen img { display: block; width: 100%; height: auto; border-radius: 6px; }
.ds-device::before { /* pie */
	content: ""; position: absolute; left: 50%; bottom: 1.6%; width: 13%; height: 9%; transform: translateX(-50%);
	background: linear-gradient(90deg, #C9A08C, #EBCDBD 45%, #B98973); clip-path: polygon(18% 0, 82% 0, 100% 100%, 0 100%);
}
.ds-device::after { /* base */
	content: ""; position: absolute; left: 50%; bottom: 0; width: 30%; height: 2.4%; transform: translateX(-50%);
	border-radius: 999px; background: linear-gradient(90deg, #B98973, #F0D6C8 50%, #B98973); box-shadow: 0 10px 18px rgba(40, 14, 28, .22);
}
/* Ventana flotante encima del monitor (cobro con Pepper) */
.ds-float-win { position: absolute; z-index: 2; right: -4%; bottom: -2%; width: 48%; margin: 0; }
.ds-float-win img { display: block; width: 100%; height: auto; border-radius: 10px; box-shadow: 0 26px 60px rgba(40, 14, 28, .35), 0 0 0 1px rgba(0, 0, 0, .06); }
.ds-pill { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: 999px; font-family: var(--ds-font-head); font-size: 13px; font-weight: 700; line-height: 1.2; white-space: nowrap; }
.ds-pill--pepper { position: absolute; z-index: 3; top: -16px; left: 18px; background: var(--ds-accent); color: #fff; box-shadow: 0 8px 20px rgba(180, 35, 79, .35); }
.ds-pill--pepper::before { content: "💳"; }
/* Escenario rosado con ventana flotante (ficha de cliente e informes) */
.ds-stage { position: relative; padding: 7% 7% 6%; border-radius: var(--ds-radius-lg); background: radial-gradient(120% 90% at 20% 0%, #FBEFF2 0%, #F3E1E6 55%, #EAD3DA 100%); }
.ds-win { margin: 0; }
.ds-win img { display: block; width: 100%; height: auto; border-radius: 10px; background: #fff; box-shadow: 0 30px 60px rgba(60, 20, 40, .22), 0 0 0 1px rgba(60, 20, 40, .06); }
/* Pestañas de informes */
.ds-tabs { padding-top: 22px; }
.ds-tabs__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 0 -4% 22px; }
.ds-tabs__list button {
	border: 1px solid rgba(180, 35, 79, .2); background: rgba(255, 255, 255, .7); color: var(--ds-ink); cursor: pointer;
	padding: 7px 12px; border-radius: 999px; font: 600 13px/1.2 var(--ds-font-head); transition: background .2s, color .2s, border-color .2s;
}
.ds-tabs__list button:hover { background: #fff; border-color: var(--ds-accent); }
.ds-tabs__list button.is-active { background: var(--ds-accent); border-color: var(--ds-accent); color: #fff; }
.ds-tabs__panels { display: grid; }
.ds-tabs__panels > .ds-win { grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .45s ease, transform .45s ease, visibility 0s .45s; }
.ds-tabs__panels > .ds-win.is-active { opacity: 1; visibility: visible; transform: none; transition: opacity .45s ease, transform .45s ease; }
/* Pastilla informativa (Pepper) */
.ds-callout {
	display: flex; gap: 14px; align-items: flex-start; margin-top: 22px; padding: 18px 20px; border-radius: 18px; text-decoration: none; color: var(--ds-text);
	background: var(--ds-white); border: 1px solid var(--ds-accent-soft); box-shadow: 0 14px 34px rgba(60, 20, 40, .08); transition: box-shadow .25s, border-color .25s, transform .25s;
}
.ds-callout:hover { border-color: var(--ds-accent); box-shadow: 0 18px 40px rgba(60, 20, 40, .14); transform: translateY(-2px); color: var(--ds-text); }
.ds-callout__ico { flex: none; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font-size: 22px; background: var(--ds-accent-soft); }
.ds-callout strong { display: block; margin-bottom: 4px; font-family: var(--ds-font-head); font-size: 17px; color: var(--ds-ink); }
.ds-callout strong em { font-style: normal; display: inline-block; margin-right: 8px; padding: 2px 9px; border-radius: 999px; background: var(--ds-accent); color: #fff; font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; vertical-align: 2px; }
.ds-callout > span:last-child { font-size: 15.5px; line-height: 1.55; }
.ds-callout__more { display: block; margin-top: 8px; font-weight: 700; color: var(--ds-accent); }
@media (max-width: 1100px) {
	.ds-tour .ds-tour__row { gap: 36px; margin-bottom: 72px; }
}
@media (max-width: 781px) {
	.ds-tour > .ds-lead { margin-bottom: 36px; }
	.ds-tour .ds-tour__row, .ds-tour__row--rev { flex-direction: column; }
	.ds-tour .ds-tour__media, .ds-tour .ds-tour__text { flex-basis: auto !important; width: 100%; }
	.ds-float-win { right: 0; bottom: -6%; width: 56%; }
	.ds-pill--pepper { left: auto; right: 6px; top: -13px; padding: 5px 10px; font-size: 11.5px; }
	.ds-device__screen { border-radius: 12px; }
	.ds-tabs__list { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; margin: 0 -7% 18px; padding: 2px 7%; scrollbar-width: none; }
	.ds-tabs__list::-webkit-scrollbar { display: none; }
	.ds-tabs__list button { flex: none; padding: 7px 11px; font-size: 12.5px; }
}
@media (prefers-reduced-motion: reduce) { .ds-tabs__panels > .ds-win { transition: none; } }

/* 32. Rejilla de dos testimonios con foto (fichas de producto): centrada y sin tarjetas gigantes */
.ds-grid.ds-grid--duo { max-width: 820px; margin-inline: auto; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }

/* 33. Listado del blog y archivos: tarjetas con imagen pequeña y texto al lado, alternando izquierda/derecha */
.one-container.blog .post:not(:last-child):not(.is-loop-template-item), .one-container.archive .post:not(:last-child):not(.is-loop-template-item) { padding-bottom: 0; }
.blog main article, .archive main article { margin: 0 0 30px; }
.blog .inside-article, .archive .inside-article { position: relative; display: grid; grid-template-columns: minmax(0, 38%) minmax(0, 1fr); grid-template-areas: "img cat" "img head" "img sum"; grid-template-rows: auto auto 1fr; column-gap: 40px; align-items: start; background: #fff; border-radius: 22px; padding: 22px !important; box-shadow: 0 1px 0 rgba(60,20,40,.06), 0 14px 34px -18px rgba(60,20,40,.28); transition: transform .25s ease, box-shadow .25s ease; }
.blog .inside-article:hover, .archive .inside-article:hover { transform: translateY(-3px); box-shadow: 0 1px 0 rgba(60,20,40,.06), 0 22px 44px -18px rgba(60,20,40,.35); }
.blog main article:nth-of-type(even) .inside-article, .archive main article:nth-of-type(even) .inside-article { grid-template-columns: minmax(0, 1fr) minmax(0, 38%); grid-template-areas: "cat img" "head img" "sum img"; }
.blog .post-image, .archive .post-image { grid-area: img; margin: 0 !important; align-self: stretch; }
.blog .post-image a, .archive .post-image a { display: block; height: 100%; }
.blog .post-image img, .archive .post-image img { width: 100%; height: 100%; min-height: 220px; max-height: 300px; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 16px; display: block; }
.blog .inside-article > .entry-meta, .archive .inside-article > .entry-meta { grid-area: cat; margin: 6px 0 10px; padding: 0; border: 0; font-size: 13px; }
.blog .inside-article > .entry-meta .tags-links, .archive .inside-article > .entry-meta .tags-links, .blog .inside-article > .entry-meta .gp-icon, .archive .inside-article > .entry-meta .gp-icon, .blog .inside-article > .entry-meta .comments-link, .archive .inside-article > .entry-meta .comments-link { display: none; }
.blog .cat-links, .archive .cat-links { font-size: 0; display: inline-flex; flex-wrap: wrap; gap: 6px; }
.blog .cat-links a, .archive .cat-links a { display: inline-block; background: #F6E7EB; color: #B4234F; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; font-size: 12px; padding: 6px 12px; border-radius: 999px; text-decoration: none; position: relative; z-index: 2; }
.blog .entry-header, .archive .entry-header { grid-area: head; margin: 0; }
.blog .entry-title, .archive .entry-title { font-size: clamp(20px, 1.7vw, 26px); line-height: 1.25; margin: 0 0 8px; }
.blog .entry-title a, .archive .entry-title a { color: #17141A; text-decoration: none; }
.blog .entry-title a::after, .archive .entry-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: 22px; }
.blog .entry-header .entry-meta, .archive .entry-header .entry-meta { font-size: 13.5px; color: #7a6b70; margin: 0; }
.blog .entry-header .byline, .archive .entry-header .byline { display: none; }
.blog .entry-summary, .archive .entry-summary { grid-area: sum; margin: 14px 0 0; }
.blog .entry-summary p, .archive .entry-summary p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin: 0 0 14px; color: #4a3f44; font-size: 16px; line-height: 1.6; }
.blog .entry-summary::after, .archive .entry-summary::after { content: "Leer artículo →"; font-weight: 700; color: #B4234F; font-size: 15px; }
.blog .inside-article:hover .entry-title a, .archive .inside-article:hover .entry-title a { color: #B4234F; }
@media (max-width: 768px) {
	.blog .inside-article, .archive .inside-article, .blog main article:nth-of-type(even) .inside-article, .archive main article:nth-of-type(even) .inside-article { grid-template-columns: minmax(0, 1fr); grid-template-areas: "img" "cat" "head" "sum"; grid-template-rows: auto; padding: 14px 14px 20px !important; border-radius: 18px; }
	.blog .post-image img, .archive .post-image img { min-height: 0; max-height: none; height: auto; aspect-ratio: 16 / 9; border-radius: 12px; }
	.blog .entry-title, .archive .entry-title { font-size: 19px; }
	.blog .inside-article > .entry-meta, .archive .inside-article > .entry-meta { margin: 16px 4px 8px; }
	.blog .entry-header, .archive .entry-header, .blog .entry-summary, .archive .entry-summary { padding: 0 4px; }
	.blog .cat-links a, .archive .cat-links a { font-size: 11px; padding: 5px 10px; }
	.blog .entry-summary p, .archive .entry-summary p { font-size: 15px; -webkit-line-clamp: 2; }
}
@media (prefers-reduced-motion: reduce) { .blog .inside-article, .archive .inside-article { transition: none; } .blog .inside-article:hover, .archive .inside-article:hover { transform: none; } }

/* 34. Filtro por categorías del blog */
.ds-blog-filter { margin: 4px 0 30px; }
.ds-blog-filter ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.ds-blog-filter a { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border-radius: 999px; background: #fff; border: 1px solid #ECDDE1; color: #17141A; font-weight: 600; font-size: 15px; text-decoration: none; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.ds-blog-filter a:hover { border-color: #B4234F; color: #B4234F; }
.ds-blog-filter a.is-active { background: #B4234F; border-color: #B4234F; color: #fff; }
.ds-blog-filter__n { font-size: 12px; font-weight: 700; min-width: 22px; padding: 2px 7px; border-radius: 999px; background: #F6E7EB; color: #B4234F; text-align: center; }
.ds-blog-filter a.is-active .ds-blog-filter__n { background: rgba(255,255,255,.22); color: #fff; }
.archive .page-header .ds-blog-filter { margin-top: 18px; margin-bottom: 0; }
@media (max-width: 768px) {
	.ds-blog-filter { margin: 0 -16px 22px; }
	.ds-blog-filter ul { flex-wrap: nowrap; overflow-x: auto; padding: 2px 16px 6px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.ds-blog-filter ul::-webkit-scrollbar { display: none; }
	.ds-blog-filter li { flex: 0 0 auto; }
	.ds-blog-filter a { font-size: 14px; padding: 8px 14px; }
	.ds-blog-filter li:has(.is-active) { order: -1; }
}
/* 35. Título del blog y de las categorías: más contenido */
.ds-blog-header .page-title, .archive .page-header .page-title { font-size: clamp(30px, 3.2vw, 44px); line-height: 1.15; letter-spacing: -.01em; margin-bottom: 18px; max-width: 900px; }
.ds-blog-header, .archive .page-header { margin-bottom: 8px; }
@media (max-width: 768px) { .ds-blog-header .page-title, .archive .page-header .page-title { font-size: 28px; } }
/* 36. Vídeo de presentación (home y fichas) */
.ds-video-sec { padding-top: clamp(28px, 4vw, 56px); padding-bottom: clamp(28px, 4vw, 56px); }
.ds-video-sec h2 { margin-bottom: 22px; }
.wp-block-video.ds-video { max-width: 1040px; margin: 0 auto; }
.wp-block-video.ds-video video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; background: #17141A; border-radius: 22px; box-shadow: 0 2px 0 rgba(60,20,40,.05), 0 30px 60px -24px rgba(60,20,40,.38); object-fit: cover; }
.wp-block-video.ds-video figcaption { text-align: center; font-size: 14px; color: #7a6b70; margin-top: 10px; }
@media (max-width: 768px) { .wp-block-video.ds-video video { border-radius: 14px; } }

/* 37. Iconos en tarjetas (.ds-ico + .ds-ico--nombre). Arriba en escritorio, a la izquierda del título en móvil. */
.ds-card.ds-ico::before { content: ""; flex: 0 0 auto; width: 52px; height: 52px; border-radius: 14px; background: var(--ds-accent-soft, #F6E7EB) var(--ico) center / 26px 26px no-repeat; margin-bottom: 6px; }
@media (max-width: 781px) {
	.ds-card.ds-ico { display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: 16px; row-gap: 6px; align-items: start; }
	.ds-card.ds-ico::before { grid-row: 1 / span 2; width: 44px; height: 44px; border-radius: 12px; background-size: 22px 22px; margin: 2px 0 0; }
	.ds-card.ds-ico > * { grid-column: 2; }
}
.ds-ico--chart { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='22 7 13.5 15.5 8.5 10.5 2 17'/%3E%3Cpolyline points='16 7 22 7 22 13'/%3E%3C/svg%3E"); }
.ds-ico--users { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E"); }
.ds-ico--award { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='6'/%3E%3Cpath d='M15.48 12.89 17 22l-5-3-5 3 1.52-9.11'/%3E%3C/svg%3E"); }
.ds-ico--calendar { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3Cpath d='M8 14h.01M12 14h.01M16 14h.01M8 18h.01M12 18h.01'/%3E%3C/svg%3E"); }
.ds-ico--tag { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.59 2.59A2 2 0 0 0 11.17 2H4a2 2 0 0 0-2 2v7.17a2 2 0 0 0 .59 1.42l8.7 8.7a2.43 2.43 0 0 0 3.42 0l6.58-6.58a2.43 2.43 0 0 0 0-3.42z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.2' fill='%23B4234F'/%3E%3C/svg%3E"); }
.ds-ico--compare { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 3 4 7l4 4'/%3E%3Cpath d='M4 7h16'/%3E%3Cpath d='m16 21 4-4-4-4'/%3E%3Cpath d='M20 17H4'/%3E%3C/svg%3E"); }
.ds-ico--card { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='5' width='20' height='14' rx='2'/%3E%3Cpath d='M2 10h20M6 15h4'/%3E%3C/svg%3E"); }
.ds-ico--bell { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9'/%3E%3Cpath d='M10.3 21a1.94 1.94 0 0 0 3.4 0'/%3E%3C/svg%3E"); }
.ds-ico--id { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Ccircle cx='9' cy='10' r='2'/%3E%3Cpath d='M15 8h2M15 12h2M7 16h10'/%3E%3C/svg%3E"); }
.ds-ico--gift { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='8' width='18' height='4' rx='1'/%3E%3Cpath d='M12 8v13'/%3E%3Cpath d='M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7'/%3E%3Cpath d='M7.5 8a2.5 2.5 0 0 1 0-5C10 3 12 8 12 8s2-5 4.5-5a2.5 2.5 0 0 1 0 5'/%3E%3C/svg%3E"); }
.ds-ico--percent { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 5 5 19'/%3E%3Ccircle cx='6.5' cy='6.5' r='2.5'/%3E%3Ccircle cx='17.5' cy='17.5' r='2.5'/%3E%3C/svg%3E"); }
.ds-ico--pie { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.21 15.89A10 10 0 1 1 8 2.83'/%3E%3Cpath d='M22 12A10 10 0 0 0 12 2v10z'/%3E%3C/svg%3E"); }
.ds-ico--box { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7.5 4.27 9 5.15'/%3E%3Cpath d='M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z'/%3E%3Cpath d='m3.3 7 8.7 5 8.7-5M12 22V12'/%3E%3C/svg%3E"); }
.ds-ico--file-check { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4'/%3E%3Cpath d='m9 15 2 2 4-4'/%3E%3C/svg%3E"); }
.ds-ico--shield { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }
.ds-ico--phone { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='2' width='12' height='20' rx='2.5'/%3E%3Cpath d='M11 18h2'/%3E%3C/svg%3E"); }
.ds-ico--globe { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z'/%3E%3C/svg%3E"); }
.ds-ico--chat { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E"); }
.ds-ico--sparkles { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l1.9 4.9L18.8 9.8l-4.9 1.9L12 16.6l-1.9-4.9L5.2 9.8l4.9-1.9z'/%3E%3Cpath d='M19 15.5l.7 1.8 1.8.7-1.8.7-.7 1.8-.7-1.8-1.8-.7 1.8-.7z'/%3E%3C/svg%3E"); }
.ds-ico--clock { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E"); }
.ds-ico--store { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 8h13l-1 12.5h-11z'/%3E%3Cpath d='M9 8V7a3 3 0 0 1 6 0v1'/%3E%3C/svg%3E"); }
.ds-ico--heart { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E"); }
.ds-ico--lock { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E"); }
.ds-ico--zap { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 3 14h9l-1 8 10-12h-9l1-8z'/%3E%3C/svg%3E"); }
.ds-ico--monitor { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='20' height='14' rx='2'/%3E%3Cpath d='M8 21h8M12 17v4'/%3E%3C/svg%3E"); }
.ds-ico--printer { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9V2h12v7'/%3E%3Cpath d='M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2'/%3E%3Crect x='6' y='14' width='12' height='8'/%3E%3C/svg%3E"); }
.ds-ico--wallet { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1'/%3E%3Cpath d='M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4'/%3E%3C/svg%3E"); }
.ds-ico--wrench { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E"); }
.ds-ico--image { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='9' cy='9' r='2'/%3E%3Cpath d='m21 15-3.09-3.09a2 2 0 0 0-2.82 0L6 21'/%3E%3C/svg%3E"); }
.ds-ico--map-pin { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.ds-ico--pen { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E"); }
.ds-ico--list { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01'/%3E%3C/svg%3E"); }
.ds-ico--crown { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2 6 4 11h12l4-11-6 5-4-7-4 7-6-5z'/%3E%3Cpath d='M5 21h14'/%3E%3C/svg%3E"); }
.ds-ico--layout { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='9' rx='1'/%3E%3Crect x='14' y='3' width='7' height='5' rx='1'/%3E%3Crect x='14' y='12' width='7' height='9' rx='1'/%3E%3Crect x='3' y='16' width='7' height='5' rx='1'/%3E%3C/svg%3E"); }
.ds-ico--palette { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.93 0 1.65-.75 1.65-1.69 0-.44-.18-.84-.44-1.13-.29-.29-.44-.65-.44-1.13a1.64 1.64 0 0 1 1.67-1.67h2c3.05 0 5.56-2.5 5.56-5.55C21.97 6.01 17.46 2 12 2z'/%3E%3Ccircle cx='13.5' cy='6.5' r='1' fill='%23B4234F'/%3E%3Ccircle cx='17.5' cy='10.5' r='1' fill='%23B4234F'/%3E%3Ccircle cx='8.5' cy='7.5' r='1' fill='%23B4234F'/%3E%3Ccircle cx='6.5' cy='12.5' r='1' fill='%23B4234F'/%3E%3C/svg%3E"); }
.ds-ico--star { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01z'/%3E%3C/svg%3E"); }
.ds-ico--languages { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E"); }
.ds-ico--headset { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3'/%3E%3C/svg%3E"); }
.ds-ico--sliders { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1 14h6M9 8h6M17 16h6'/%3E%3C/svg%3E"); }
.ds-ico--refresh { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8'/%3E%3Cpath d='M21 3v5h-5'/%3E%3Cpath d='M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16'/%3E%3Cpath d='M8 16H3v5'/%3E%3C/svg%3E"); }
.ds-ico--cake { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-8a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8'/%3E%3Cpath d='M4 16s.5-1 2-1 2.5 2 4 2 2.5-2 4-2 2.5 2 4 2 2-1 2-1'/%3E%3Cpath d='M2 21h20M7 8v3M12 8v3M17 8v3M7 4h.01M12 4h.01M17 4h.01'/%3E%3C/svg%3E"); }
.ds-ico--mail { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 5L2 7'/%3E%3C/svg%3E"); }
.ds-ico--link { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E"); }
.ds-ico--building { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='2' width='16' height='20' rx='2'/%3E%3Cpath d='M9 22v-4h6v4M8 6h.01M16 6h.01M12 6h.01M12 10h.01M12 14h.01M16 10h.01M16 14h.01M8 10h.01M8 14h.01'/%3E%3C/svg%3E"); }
.ds-ico--ban { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m4.9 4.9 14.2 14.2'/%3E%3C/svg%3E"); }
.ds-ico--bell-off { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.7 3A6 6 0 0 1 18 8a21.3 21.3 0 0 0 .6 5M17 17H3s3-2 3-9a4.67 4.67 0 0 1 .3-1.7M10.3 21a1.94 1.94 0 0 0 3.4 0M2 2l20 20'/%3E%3C/svg%3E"); }
.ds-ico--phone-call { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); }
.ds-ico--book { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z'/%3E%3Cpath d='M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z'/%3E%3C/svg%3E"); }
.ds-ico--touch { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4234F' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 11V6a2 2 0 0 0-4 0v5'/%3E%3Cpath d='M14 10V4a2 2 0 0 0-4 0v6'/%3E%3Cpath d='M10 10.5V6a2 2 0 0 0-4 0v8'/%3E%3Cpath d='M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15'/%3E%3C/svg%3E"); }

/* 38. Configurador: botón "Enviar y descargar propuesta (PDF)" */
.ds-config__pdf { width: 100%; margin-top: 10px; padding: 14px 16px; border: 2px solid rgba(255, 255, 255, .55); border-radius: 999px; background: transparent; color: #fff; font-family: var(--ds-font-head); font-weight: 800; font-size: 15.5px; line-height: 1.2; cursor: pointer; transition: background .15s, border-color .15s, opacity .15s; }
.ds-config__pdf::before { content: ""; display: inline-block; width: 18px; height: 18px; margin: -3px 8px 0 0; vertical-align: middle; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4'/%3E%3Cpath d='M12 18v-6M9 15l3 3 3-3'/%3E%3C/svg%3E") center / contain no-repeat; }
.ds-config__pdf:hover:not(:disabled), .ds-config__pdf:focus-visible { background: rgba(255, 255, 255, .1); border-color: #fff; }
.ds-config__pdf:disabled { opacity: .4; cursor: not-allowed; }
.ds-config__pdf.is-busy { opacity: .7; cursor: wait; }
.ds-config__pdf-hint { font-size: 12.5px; margin: 8px 0 0; opacity: .7; text-align: center; }
.ds-config__pdf:not(:disabled) + .ds-config__pdf-hint, .ds-config__pdf.is-busy + .ds-config__pdf-hint { display: none; }

/* ==========================================================================
   27. Página de planes: hero compacto para que los planes se vean al entrar (.ds-hero--planes)
   ========================================================================== */
.ds-hero.ds-hero--planes { padding-top: 36px; padding-bottom: 0; }
.ds-hero--planes h1 { font-size: clamp(27px, 2.7vw, 38px); line-height: 1.15; max-width: 920px; margin: 0 auto 12px; }
.ds-hero--planes .ds-lead { font-size: 17px; max-width: 720px; margin: 0 auto; }
.ds-hero--planes + .ds-section { padding-top: 28px; }
.ds-plans-cta { justify-content: center; margin-top: 22px; }
@media (max-width: 782px) {
	.ds-hero.ds-hero--planes { padding-top: 26px; }
	.ds-hero--planes h1 { font-size: 25px; }
	.ds-hero--planes .ds-lead { font-size: 16px; }
	.ds-hero--planes + .ds-section { padding-top: 20px; }
}

/* ==========================================================================
   28. Posts del blog con imagen y título a tamaño razonable; comparativa de planes; nota de Google
   ========================================================================== */
.single-post .page-header-image-single { max-width: 760px; margin: 28px auto 0; padding: 0 20px; }
.single-post .page-header-image-single img { display: block; width: 100%; height: auto; max-height: 560px; object-fit: contain; border-radius: 18px; }
.single-post .entry-header { max-width: 820px; margin-left: auto; margin-right: auto; }
.single-post h1.entry-title { font-size: clamp(28px, 2.6vw, 38px); line-height: 1.18; margin-top: 8px; }
@media (max-width: 782px) {
	.single-post .page-header-image-single { margin-top: 16px; padding: 0 16px; }
	.single-post h1.entry-title { font-size: 25px; }
}
.ds-plancmp-title { margin-top: 48px; }
.ds-plancmp-wrap { max-width: 900px; margin: 18px auto 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ds-plancmp { width: 100%; min-width: 560px; border-collapse: collapse; background: #fff; border: 1px solid #F1E4E8; border-radius: 16px; overflow: hidden; font-size: 15px; }
.ds-plancmp caption { caption-side: bottom; padding-top: 10px; font-size: 13px; color: #8A7B80; }
.ds-plancmp th, .ds-plancmp td { padding: 11px 14px; border-bottom: 1px solid #F1E4E8; text-align: center; }
.ds-plancmp tbody th { text-align: left; font-weight: 500; color: #22181C; }
.ds-plancmp thead th { background: #22181C; color: #fff; font-weight: 700; letter-spacing: .02em; }
.ds-plancmp thead th:first-child { text-align: left; }
.ds-plancmp tbody tr:first-child td { font-weight: 700; color: #B4234F; }
.ds-plancmp td { color: #128C5A; font-weight: 600; }
.ds-google-rating { text-align: center; margin: -6px 0 22px; font-size: 15px; }
.ds-google-rating a { color: #5A4A50; text-decoration: none; }
.ds-google-rating a:hover { color: #B4234F; }
.ds-google-rating strong { color: #22181C; }

/* ==========================================================================
   29. Páginas de sector escritas como texto (peluquerías, estética, barberías, uñas):
       cabecera centrada y texto a ancho de lectura (.ds-hero--texto + .ds-prose)
   ========================================================================== */
.ds-hero.ds-hero--texto { text-align: center; padding-bottom: 48px; }
.ds-hero--texto h1 { font-size: clamp(34px, 4vw, 56px); line-height: 1.06; max-width: 900px; margin: 0 auto 18px; }
.ds-hero--texto .ds-lead { max-width: 780px; margin: 0 auto 28px; }
.ds-hero--texto .wp-block-buttons { justify-content: center; }
.ds-prose { padding-top: 24px; }
.ds-prose > *, .ds-prose > .wp-block-group__inner-container > * { max-width: 820px; margin-left: auto !important; margin-right: auto !important; }
.ds-prose > .ds-grid, .ds-prose > .wp-block-group__inner-container > .ds-grid { max-width: 1000px; }
.ds-prose h2 { margin-top: 56px !important; margin-bottom: 18px; font-size: clamp(26px, 2.6vw, 36px); line-height: 1.15; }
.ds-prose h2:first-child { margin-top: 0 !important; }
.ds-prose h3 { margin-top: 28px !important; margin-bottom: 8px; font-size: clamp(19px, 1.6vw, 22px); }
.ds-prose p { margin-bottom: 14px; }
@media (max-width: 782px) {
	.ds-hero--texto h1 { font-size: 32px; }
	.ds-prose h2 { margin-top: 40px !important; }
}

/* Una sola opinión con foto: tarjeta a tamaño normal, centrada */
.ds-grid > .ds-quote--photo:only-child, .ds-grid > .wp-block-group__inner-container > .ds-quote--photo:only-child { max-width: 380px; margin-left: auto; margin-right: auto; }
.ds-grid:has(> .ds-quote--photo:only-child), .ds-grid > .wp-block-group__inner-container:has(> .ds-quote--photo:only-child) { display: flex; justify-content: center; }

/* ==========================================================================
   30. Páginas comparativas (DunaSoft vs …): tabla, resumen y bloque interno
   ========================================================================== */
.ds-vs-wrap { max-width: 980px; margin: 18px auto 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ds-vs { width: 100%; min-width: 620px; border-collapse: collapse; background: #fff; border: 1px solid #F1E4E8; font-size: 15px; line-height: 1.45; }
.ds-vs caption { caption-side: bottom; padding-top: 10px; font-size: 13px; color: #8A7B80; text-align: left; }
.ds-vs th, .ds-vs td { padding: 12px 14px; border-bottom: 1px solid #F1E4E8; text-align: left; vertical-align: top; }
.ds-vs thead th { background: #22181C; color: #fff; font-weight: 700; }
.ds-vs thead th.ds-vs__us { background: #B4234F; }
.ds-vs tbody th { font-weight: 600; color: #22181C; width: 26%; }
.ds-vs td.ds-vs__us { background: #FCF4F7; color: #22181C; }
.ds-vs .si { color: #128C5A; font-weight: 700; }
.ds-vs .no { color: #8A7B80; }
.ds-vs-resumen { max-width: 900px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.ds-vs-resumen > div { background: #fff; border: 1px solid #F1E4E8; border-radius: 16px; padding: 18px 20px; }
.ds-vs-resumen h3 { font-size: 18px; margin: 0 0 6px; }
.ds-vs-resumen p { margin: 0; font-size: 15px; color: #5A4A50; }
.ds-vs-nota { max-width: 900px; margin: 18px auto 0; font-size: 13px; color: #8A7B80; }
.ds-interno { max-width: 900px; margin: 32px auto 0; border: 2px dashed #C62828; background: #FFF4F4; border-radius: 16px; padding: 20px 24px; color: #8E1B1B; }
.ds-interno h2, .ds-interno h3 { color: #C62828; font-size: 20px; margin: 0 0 6px; }
.ds-interno p.ds-interno__aviso { font-size: 13px; margin: 0 0 12px; color: #8E1B1B; }
.ds-interno ul { margin: 0; padding-left: 20px; }
.ds-interno li { margin: 6px 0; color: #C62828; }

/* ==========================================================================
   31. Franja de partner oficial (home): Schwarzkopf Professional
   ========================================================================== */
.ds-partner__in { max-width: 900px; margin: 0 auto; display: flex; align-items: center; gap: 32px; background: #fff; border: 1px solid #F1E4E8; border-radius: 20px; padding: 18px 28px; }
.ds-partner__logo { flex: 0 0 210px; }
.ds-partner__logo img { display: block; width: 100%; height: auto; }
.ds-partner__kicker { text-transform: uppercase; letter-spacing: .08em; font-size: 12px; font-weight: 700; color: #B4234F; margin: 0 0 4px; }
.ds-partner .ds-partner__txt h2 { font-size: clamp(20px, 2vw, 26px); line-height: 1.25; margin: 0 0 8px; text-align: left; }
.ds-partner__txt p { margin: 0; color: #5A4A50; font-size: 16px; }
@media (max-width: 700px) {
	.ds-partner__in { flex-direction: column; text-align: center; gap: 12px; padding: 18px; }
	.ds-partner .ds-partner__txt h2 { text-align: center; }
	.ds-partner__logo { flex-basis: auto; width: 190px; }
}

/* ==========================================================================
   32. Página de autor: cabecera con foto grande y cargo
   ========================================================================== */
.author .page-header { max-width: 1120px; margin: 0 auto 26px; }
.author .page-header .page-title { display: flex; align-items: center; gap: 20px; }
.author .page-header .page-title .avatar { width: 88px; height: 88px; border-radius: 50%; object-fit: cover; margin: 0; flex: 0 0 88px; box-shadow: 0 8px 22px -12px rgba(60,20,40,.45); }
.author .page-header .author-info { margin: 8px 0 0 108px; font-size: 17px; color: #5A4A50; }
@media (max-width: 700px) {
	.author .page-header .page-title { gap: 14px; }
	.author .page-header .page-title .avatar { width: 64px; height: 64px; flex-basis: 64px; }
	.author .page-header .author-info { margin-left: 78px; }
}
/* Tarjetas con icono en movil: todo el contenido en la columna del texto (01/11/2026) */
@media (max-width:781px){
  .ds-card.ds-ico > .wp-block-group__inner-container > *{grid-column:2}
  .ds-card.ds-ico::before{grid-row:1 / span 2}
}

/* Premio Planet Look de Oro 2026 (09/11/2026): logo en la home, sello en la ficha del Asistente IA y caja en el blog */
.ds-premio-logo{display:block;width:120px;max-width:120px;height:auto;border-radius:10px;margin:0 0 22px auto}
.ds-premio-logo img{display:block;width:100%;height:auto;border-radius:10px}
.ds-hero .ds-shot:has(.ds-premio-sello){position:relative}
.ds-premio-sello{position:absolute;left:-26px;bottom:-26px;width:150px;z-index:3;display:block;transform:rotate(-5deg);border-radius:12px;box-shadow:0 18px 40px rgba(20,8,14,.35);transition:transform .2s}
.ds-premio-sello img{display:block;width:100%!important;height:auto;border-radius:12px;border:0!important;box-shadow:none!important;animation:none!important;background:none!important}
.ds-premio-sello:hover{transform:rotate(0) scale(1.04)}
.ds-premio-box{display:flex;gap:20px;align-items:center;background:#FBF3F5;border:1px solid #F1D6DE;border-radius:16px;padding:18px 22px;margin:36px 0}
.ds-premio-box img{width:90px;height:auto;border-radius:8px;flex:none;margin:0}
.ds-premio-box p{margin:0 0 8px}
.ds-premio-box .ds-premio-box__btn{display:inline-block;background:var(--ds-accent,#A3154A);color:#fff;border-radius:999px;padding:9px 18px;font-weight:700;text-decoration:none;margin-top:4px}
.ds-premio-box .ds-premio-box__btn:hover{color:#fff;opacity:.9}
.ds-premio-grande{text-align:center;margin:8px 0 28px}
.ds-premio-grande img{width:260px;max-width:70%;height:auto;border-radius:14px;box-shadow:0 18px 40px rgba(20,8,14,.25)}
@media (max-width:781px){
  .ds-premio-logo{width:96px;margin:0 auto 18px}
  .ds-premio-sello{width:90px;left:6px;bottom:-14px}
  .ds-premio-box{flex-direction:column;align-items:flex-start;text-align:left}
}