/* Serdeweb portada. Paleta y fuentes de theme.json; medidas explícitas para
   preservar legibilidad frente a los presets fluidos de WordPress. */
.sdw-home { margin:0; width:100%; background:var(--wp--preset--color--base); color:var(--wp--preset--color--contrast); font:400 1rem/1.7 var(--wp--preset--font-family--sans); }
.sdw-home *, .sdw-home *::before, .sdw-home *::after { box-sizing:border-box; }
.sdw-home .wp-block-post-content, .sdw-home .wp-block-post-content > * { margin:0; }
.sdw-home :where(h1,h2,h3,p,figure) { margin:0; }
.sdw-home :where(h1,h2,h3) { font-family:var(--wp--preset--font-family--mono); text-wrap:balance; }
.sdw-home h2 { font-size:clamp(1.8rem,3vw,2.65rem); line-height:1.18; letter-spacing:-.04em; }
.sdw-home h3 { font-size:1.25rem; line-height:1.4; letter-spacing:-.025em; }
.sdw-home p { color:var(--wp--preset--color--secondary); }
.sdw-home p + p { margin-top:1rem; }
.sdw-home a { color:var(--wp--preset--color--primary); text-underline-offset:.25em; overflow-wrap:anywhere; }
.sdw-home a:hover { color:var(--wp--preset--color--primary-dark); }
.sdw-home :where(a,button,input,select,textarea,summary):focus-visible { outline:2px solid var(--wp--preset--color--primary); outline-offset:4px; }
.sdw-home [id] { scroll-margin-top:6rem; }
.sdw-home :where(.sdw-home-section,.sdw-home-contact) { padding:88px max(24px,calc((100% - var(--sdw-max)) / 2)); }
.sdw-home .sdw-home-section.is-muted { background:var(--wp--preset--color--surface); }
.sdw-home .sdw-home-section > header { max-width:820px; margin-bottom:24px; }
.sdw-home .sdw-home-section > header h2 { margin-top:16px; }
.sdw-home .sdw-home-section > p { max-width:65ch; }
.sdw-home .sdw-home-kicker, .sdw-home .kicker { font:500 1rem/1.5 var(--wp--preset--font-family--mono); letter-spacing:.06em; text-transform:uppercase; color:var(--wp--preset--color--primary); }

/* Hero: la idea y el contacto, sin desplazar los proyectos otra pantalla. */
.sdw-home .sdw-home-hero { padding:72px 24px 48px; border-bottom:1px solid var(--wp--preset--color--linea); background-color:var(--wp--preset--color--base); background-image:linear-gradient(color-mix(in srgb,var(--wp--preset--color--primary) 5%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--wp--preset--color--primary) 5%,transparent) 1px,transparent 1px); background-size:64px 64px; }
.sdw-home .sdw-home-hero__inner { max-width:var(--sdw-max); margin:auto; text-align:center; }
.sdw-home .sdw-home-hero h1 { max-width:20ch; margin:24px auto; font-size:clamp(2.1rem,5.3vw,4.6rem); line-height:1.08; font-weight:800; letter-spacing:-.045em; }
.sdw-home .sdw-home-hero h1 span { color:var(--wp--preset--color--primary); }
.sdw-home .sdw-home-lead { max-width:62ch; margin-inline:auto; font-size:1.125rem; }
.sdw-home .sdw-home-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:14px; margin-top:32px; }
.sdw-home .sdw-home-button { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:14px 24px; border:1px solid var(--wp--preset--color--primary); border-radius:6px; background:var(--wp--preset--color--primary); color:var(--wp--preset--color--base); font:600 1rem/1.5 var(--wp--preset--font-family--mono); text-decoration:none; }
.sdw-home .sdw-home-button:hover { background:var(--wp--preset--color--primary-dark); color:var(--wp--preset--color--base); }
.sdw-home .sdw-home-button.is-secondary { background:var(--wp--preset--color--base); color:var(--wp--preset--color--primary); }
.sdw-home .sdw-home-button.is-secondary:hover { background:var(--wp--preset--color--surface); }
.sdw-home .sdw-home-proof { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); max-width:780px; margin:36px auto 0; padding:0; list-style:none; }
.sdw-home .sdw-home-proof li { padding:12px 16px; margin:0; border-inline-end:1px solid var(--wp--preset--color--linea); background:var(--wp--preset--color--base); }
.sdw-home .sdw-home-proof li:last-child { border:0; }
.sdw-home .sdw-home-proof li::before { content:none; }
.sdw-home .sdw-home-proof :where(strong,b) { display:block; color:var(--wp--preset--color--primary); font-family:var(--wp--preset--font-family--mono); }

/* Proyectos: imágenes protagonistas y salida de la rejilla con aire propio. */
.sdw-home #trabajos > header, .sdw-home #trabajos > p { margin-inline:auto; text-align:center; }
.sdw-home .sdw-home-projects { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; margin-top:40px; }
.sdw-home .sdw-home-project { min-width:0; border:1px solid var(--wp--preset--color--linea); border-radius:14px; background:var(--wp--preset--color--base); transition:border-color .2s ease,box-shadow .2s ease; }
.sdw-home .sdw-home-project > a { display:block; height:100%; border-radius:14px; text-decoration:none; }
.sdw-home .sdw-home-project figure { margin:0; overflow:hidden; border-radius:13px 13px 0 0; background:var(--wp--preset--color--surface); border-bottom:1px solid var(--wp--preset--color--linea); }
.sdw-home .sdw-home-project img { display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; object-position:top; }
.sdw-home .sdw-home-project__body { padding:26px 28px; }
.sdw-home .sdw-home-project h3 { margin:10px 0 18px; font-size:1.375rem; }
.sdw-home .sdw-home-project__link { font-weight:600; }
.sdw-home .sdw-home-project:hover { border-color:var(--wp--preset--color--primary); box-shadow:0 12px 28px color-mix(in srgb,var(--wp--preset--color--contrast) 8%,transparent); }
.sdw-home #trabajos > p:last-child { margin-top:32px; }
.sdw-home #trabajos > p:last-child a { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:12px 24px; border:1px solid var(--wp--preset--color--primary); border-radius:999px; font-weight:600; text-decoration:none; }
.sdw-home #trabajos > p:last-child a:hover { background:var(--wp--preset--color--surface); }

/* Servicios: seis opciones, numeración con presencia y alturas coherentes. */
.sdw-home .sdw-home-services { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:36px; }
.sdw-home .sdw-home-service { display:flex; flex-direction:column; align-items:flex-start; min-width:0; }
.sdw-home .sdw-home-services > .sdw-home-service { padding:30px; border:1px solid var(--wp--preset--color--linea); border-radius:12px; background:var(--wp--preset--color--base); transition:border-color .2s ease,box-shadow .2s ease; }
.sdw-home .sdw-home-services > .sdw-home-service:hover { border-color:var(--wp--preset--color--primary); box-shadow:0 10px 22px color-mix(in srgb,var(--wp--preset--color--contrast) 6%,transparent); }
.sdw-home .sdw-home-number { display:inline-flex; align-items:center; justify-content:center; width:48px; min-height:48px; border:1px solid var(--wp--preset--color--linea); border-radius:12px; background:var(--wp--preset--color--surface); color:var(--wp--preset--color--primary); font:600 1.125rem/1 var(--wp--preset--font-family--mono); }
.sdw-home .sdw-home-service h3 { margin:22px 0 12px; }
.sdw-home .sdw-home-service p { margin:0 0 18px; }
.sdw-home .sdw-home-services .sdw-home-service > p:last-child { margin-top:auto; margin-bottom:0; }
.sdw-home .sdw-home-service a { display:inline-flex; align-items:center; min-height:44px; padding-block:8px; font-weight:600; }

/* Proceso: banda oscura para separar la forma de trabajar de los servicios. */
.sdw-home #proceso { background:var(--wp--preset--color--contrast); }
.sdw-home #proceso :where(h2,h3,p,a) { color:var(--wp--preset--color--base); }
.sdw-home .sdw-home-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; margin:40px 0 0; padding:0; list-style:none; }
.sdw-home .sdw-home-steps > li { padding:24px 0 0; margin:0; border-top:1px solid color-mix(in srgb,var(--wp--preset--color--base) 35%,transparent); background:transparent; }
.sdw-home .sdw-home-steps li::before { content:none; }
.sdw-home .sdw-home-steps .sdw-home-number { background:var(--wp--preset--color--base); border-color:var(--wp--preset--color--base); }
.sdw-home .sdw-home-steps h3 { margin-top:24px; }
.sdw-home #proceso a:focus-visible { outline-color:var(--wp--preset--color--base); }

/* Sobre mí y FAQ usan el ancho completo en dos columnas complementarias. */
.sdw-home .sdw-home-about { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); column-gap:72px; row-gap:18px; align-content:start; }
.sdw-home .sdw-home-about > header { grid-column:1; grid-row:1 / span 3; margin:0; }
.sdw-home .sdw-home-about > p { grid-column:2; margin:0; }
.sdw-home .sdw-home-about > p:first-of-type { font-size:1.125rem; color:var(--wp--preset--color--contrast); }
.sdw-home .sdw-home-about a { display:inline-flex; align-items:center; min-height:44px; padding-block:8px; font-weight:600; }
.sdw-home #preguntas { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:64px; align-items:start; }
.sdw-home #preguntas > header { margin:0; }
.sdw-home .sdw-home-faq { min-width:0; }
.sdw-home .sdw-home-faq details { margin:0 0 12px; border:1px solid var(--wp--preset--color--linea); border-radius:10px; background:var(--wp--preset--color--base); box-shadow:none; }
.sdw-home .sdw-home-faq details[open] { border-color:var(--wp--preset--color--primary); }
.sdw-home .sdw-home-faq summary { position:relative; list-style:none; cursor:pointer; padding:22px 56px 22px 24px; font:600 1rem/1.5 var(--wp--preset--font-family--mono); color:var(--wp--preset--color--contrast); }
.sdw-home .sdw-home-faq summary::-webkit-details-marker { display:none; }
.sdw-home .sdw-home-faq summary::after { content:'+'; position:absolute; right:24px; top:50%; translate:0 -50%; color:var(--wp--preset--color--primary); font-size:1.25rem; }
.sdw-home .sdw-home-faq details[open] summary::after { content:'−'; rotate:none; }
.sdw-home .sdw-home-faq details p { margin:0 24px 24px; max-width:65ch; }

/* Contacto: tarjeta de formulario clara sobre el azul de marca. */
.sdw-home .sdw-home-contact { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:64px; align-items:start; background:var(--wp--preset--color--primary); }
.sdw-home .sdw-home-contact__copy { padding-block:16px; }
.sdw-home .sdw-home-contact__copy :where(h2,p,a) { color:var(--wp--preset--color--base); }
.sdw-home .sdw-home-contact__copy h2 { margin:20px 0 28px; }
.sdw-home .sdw-home-contact__copy p { max-width:50ch; }
.sdw-home .sdw-home-contact__copy a { display:inline-block; padding-block:8px; }
.sdw-home .sdw-home-contact__copy a:focus-visible { outline-color:var(--wp--preset--color--base); }
.sdw-home .sdw-home-contact__copy a:hover { color:var(--wp--preset--color--base); text-decoration-thickness:2px; }
.sdw-home .sdw-home-contact__form { min-width:0; padding:32px; border-radius:16px; background:var(--wp--preset--color--base); }
.sdw-home .sdw-form, .sdw-home .sdw-form__row { gap:20px; }
.sdw-home .sdw-form :where(label,input,select,textarea,button,p,.sdw-notice) { font-size:1rem; letter-spacing:normal; }
.sdw-home .sdw-field label { margin-bottom:8px; text-transform:none; }
.sdw-home .sdw-field :where(input,select,textarea) { min-height:50px; padding:12px 14px; border:1px solid var(--wp--preset--color--secondary); border-radius:6px; font-family:var(--wp--preset--font-family--sans); }
.sdw-home .sdw-field textarea { min-height:144px; }
.sdw-home .sdw-field :where(input,textarea)::placeholder { color:var(--wp--preset--color--secondary); }
.sdw-home .sdw-form :where(input,select,textarea):focus-visible { outline:2px solid var(--wp--preset--color--primary); outline-offset:4px; }
.sdw-home .sdw-form button[type="submit"] { min-height:52px; padding:14px 20px; border-radius:6px; font-size:1rem; }

/* Componentes compartidos: legibilidad y foco, solo en portada. */
body:has(.sdw-home) .sdw-header .wp-block-site-title a { font-size:1rem; }
body:has(.sdw-home) .sdw-footer { background:var(--wp--preset--color--contrast); }
body:has(.sdw-home) .sdw-footer :where(p,a,h2,span) { color:var(--wp--preset--color--base); font-size:max(1rem,1em); }
body:has(.sdw-home) .sdw-footer a:focus-visible { outline-color:var(--wp--preset--color--base); }
body:has(.sdw-home) .sdw-footer a { display:inline-block; padding-block:8px; }
body:has(.sdw-home) .sdw-header :where(.wp-block-navigation,.wp-block-navigation-item__content,.wp-block-navigation-item__description,.wp-element-button) { font-size:1rem; letter-spacing:normal; }
body:has(.sdw-home) .sdw-header .wp-block-button.is-style-outline .wp-element-button,
body:has(.sdw-home) .sdw-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size:1rem; }
body:has(.sdw-home) .sdw-header .wp-element-button { min-height:44px; }
body:has(.sdw-home) .sdw-header :where(.wp-block-navigation__responsive-container-open,.wp-block-navigation__responsive-container-close) { padding:12px; }
@media(max-width:960px) {
 .sdw-home :where(.sdw-home-section,.sdw-home-contact) { padding-block:64px; }
 .sdw-home .sdw-home-services, .sdw-home .sdw-home-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .sdw-home .sdw-home-contact, .sdw-home #preguntas { grid-template-columns:1fr; gap:32px; }
 .sdw-home .sdw-home-about { column-gap:32px; }
}
@media(max-width:600px) {
 .sdw-home :where(.sdw-home-section,.sdw-home-contact) { padding:52px 20px; }
 .sdw-home .sdw-home-hero { padding:44px 20px 32px; }
 .sdw-home .sdw-home-hero h1 { font-size:clamp(2rem,8vw,2.5rem); overflow-wrap:anywhere; }
 .sdw-home h2 { overflow-wrap:anywhere; }
 .sdw-home .sdw-home-lead { font-size:1rem; }
 .sdw-home .sdw-home-projects, .sdw-home .sdw-home-services, .sdw-home .sdw-home-steps, .sdw-home .sdw-home-about { grid-template-columns:1fr; }
 .sdw-home .sdw-home-about > header, .sdw-home .sdw-home-about > p { grid-column:1; grid-row:auto; }
 .sdw-home .sdw-home-about > header { margin-bottom:6px; }
 .sdw-home .sdw-home-projects { gap:24px; }
 .sdw-home .sdw-home-project__body { padding:24px; }
 .sdw-home .sdw-home-services > .sdw-home-service { padding:28px; }
 .sdw-home .sdw-home-actions { flex-direction:column; }
 .sdw-home .sdw-home-proof { grid-template-columns:1fr; margin-top:28px; }
 .sdw-home .sdw-home-proof li { border-inline-end:0; border-bottom:1px solid var(--wp--preset--color--linea); padding:10px 0; }
 .sdw-home .sdw-home-contact__form { padding:24px 20px; }
 .sdw-home .sdw-form__row { grid-template-columns:1fr; }
 .sdw-home .sdw-home-faq summary { padding-left:20px; }
 .sdw-home .sdw-home-faq details p { margin-inline:20px; }
 body:has(.sdw-home) .sdw-header .wp-block-navigation-item__content { padding-block:8px; }
}
@media(prefers-reduced-motion:reduce) {
 /* También anula transiciones heredadas del tema y los bloques del núcleo. */
 .sdw-home *, .sdw-home *::before, .sdw-home *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}