/*
Theme Name: SDC Reformers
Theme URI: https://reformers.es
Author: Soluciones de Comercio
Description: Tema a medida de Reformers (clásico, Personalizador). 100% libre. Día/Noche. Banners reutilizables (1 o 2 columnas, cada columna un banner completo) con animaciones.
Version: 2.35.1
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: sdc-reformers
*/
@font-face{ font-family:'Source Sans 3'; font-style:normal; font-weight:200 900; font-display:swap; src:url('assets/fonts/source-sans.woff2') format('woff2'); }
:root{ --bg:#ffffff; --text:#333333; --muted:#f7f7f7; --card:#ffffff; --border:#e5e5e5; --ref-orange:#FDA620; --ref-dark:#333333; }
body.sdc-scheme-dark{ --bg:#1a1a1a; --text:#e8e8e8; --muted:#242424; --card:#242424; --border:#3a3a3a; }
@media (prefers-color-scheme: dark){ body.sdc-scheme-auto{ --bg:#1a1a1a; --text:#e8e8e8; --muted:#242424; --card:#242424; --border:#3a3a3a; } }
*{ box-sizing:border-box; }
body{ margin:0; font-family:'Source Sans 3',-apple-system,'Segoe UI',Roboto,sans-serif; background:var(--bg); color:var(--text); line-height:1.6; }
img{ max-width:100%; height:auto; }
a{ color:var(--ref-orange); }
h1,h2,h3{ line-height:1.15; }
.sdc-wrap{ max-width:var(--content-width,1200px); margin:0 auto; padding:0 20px; }
.sdc-btn{ display:inline-block; background:var(--btn-bg,var(--ref-orange)); color:var(--btn-text,#fff); padding:.7rem 1.6rem; border-radius:var(--btn-radius,0); text-decoration:none; font-weight:700; }

/* Barra superior */
.sdc-topbar{ background:var(--topbar-bg,var(--ref-orange)); color:var(--topbar-text,#fff); font-size:.85rem; padding:.2rem 20px; min-height:var(--topbar-h,32px); display:flex; align-items:center; }
.sdc-topbar a{ color:inherit; }
.sdc-tb-left{ justify-content:flex-start; }
.sdc-tb-center{ justify-content:center; }
.sdc-tb-right{ justify-content:flex-end; }

/* Header */
.sdc-header{ background:var(--ref-dark); border-bottom:3px solid var(--ref-orange); position:relative; }
.sdc-header-inner{ max-width:1200px; margin:0 auto; padding:1rem 20px; display:flex; align-items:center; gap:1.5rem; position:relative; min-height:90px; }
.sdc-logo-img{ max-height:var(--logo-h,90px); width:auto; display:block; }
.sdc-burger-toggle{ display:none; }
.sdc-burger{ display:none; position:absolute; right:18px; top:50%; transform:translateY(-50%); color:var(--ref-orange); font-size:var(--burger-size,2rem); line-height:1; cursor:pointer; border:2px solid var(--ref-orange); border-radius:4px; padding:0 .4rem; }
.sdc-nav ul{ list-style:none; margin:0; padding:0; display:flex; gap:.3rem; }
.sdc-nav a{ color:var(--menu-color,#fff); text-decoration:none; font-weight:600; }
.sdc-nav a:hover{ color:var(--menu-hover,var(--ref-orange)); }
.sdc-mo-vertical .sdc-nav ul{ flex-direction:column; align-items:flex-start; }
.sdc-mo-horizontal .sdc-nav ul{ flex-direction:row; align-items:center; }
.sdc-hl-center .sdc-header-inner{ justify-content:center; }
.sdc-hl-center .sdc-nav{ position:absolute; right:24px; top:50%; transform:translateY(-50%); }
.sdc-hl-split .sdc-header-inner{ justify-content:space-between; }
.sdc-hl-left .sdc-header-inner{ justify-content:flex-start; }
.sdc-hl-stack .sdc-header-inner{ flex-direction:column; justify-content:center; gap:.6rem; }
@media(max-width:782px){ .sdc-burger{ display:block; } .sdc-nav,.sdc-hl-center .sdc-nav{ position:absolute; top:100%; left:0; right:0; transform:none; background:var(--ref-dark); padding:1rem 20px; display:none; z-index:30; } .sdc-burger-toggle:checked ~ .sdc-nav{ display:block; } }

/* ===== Banner: cada columna es un sub-banner completo ===== */
.sdc-banner--two{ display:grid; grid-template-columns:1fr 1fr; }
.sdc-bsub{ position:relative; overflow:hidden; padding:4rem 0; text-align:center; min-height:320px; display:flex; align-items:center; justify-content:center; }
.sdc-banner--one .sdc-bsub{ min-height:420px; }
.sdc-bsub-bg{ position:absolute; inset:0; background-size:cover; background-position:center; z-index:0; }
.sdc-bsub-inner{ position:relative; z-index:2; max-width:var(--content-width,1200px); margin:0 auto; padding:0 20px; }
.sdc-bsub.has-img{ color:#fff; }
.sdc-bsub.has-img::before{ content:""; position:absolute; inset:0; z-index:1; background:rgba(0,0,0,.55); }
.sdc-bsub.no-img{ background:var(--muted); color:var(--text); }
.sdc-bsub h1{ font-size:clamp(2rem,5vw,3.2rem); font-weight:900; margin:0 0 1rem; }
.sdc-bsub h2{ font-size:clamp(1.5rem,4vw,2.2rem); margin:0 0 1rem; }
.sdc-bsub p{ font-size:1.1rem; margin:0 0 1.3rem; }
@media(max-width:782px){ .sdc-banner--two{ grid-template-columns:1fr; } }

/* Secciones */
.sdc-section{ padding:4rem 0; }
.sdc-section--alt{ background:var(--muted); }
.sdc-section h2{ text-align:center; font-size:2rem; margin:0 0 2.5rem; }
.sdc-grid{ display:grid; gap:1.5rem; }
.sdc-grid-3{ grid-template-columns:repeat(var(--cards-cols,3),1fr); }
.sdc-grid-4{ grid-template-columns:repeat(4,1fr); }
.sdc-gar-item{ position:relative; display:grid; gap:.1rem .9rem; color:inherit; text-decoration:none; }
.sdc-gar-item h3{ margin:.2rem 0; }
.sdc-gar-item p{ margin:0; }
.sdc-gar-icon{ font-size:2.6rem; line-height:1; color:var(--ref-orange); }
/* .dashicons trae font-size:20px (misma especificidad); subimos la nuestra a 0,2,0 para ganarle siempre */
.sdc-gar-icon.dashicons{ font-size:2.6rem; width:2.6rem; height:2.6rem; }
.sdc-gar-lay-a{ justify-items:center; text-align:center; }
.sdc-gar-lay-a .sdc-gar-icon{ margin-bottom:.4rem; }
.sdc-gar-lay-b, .sdc-gar-lay-c{ grid-template-columns:auto 1fr; text-align:left; }
.sdc-gar-lay-b .sdc-gar-icon{ grid-row:1 / 3; align-self:center; }
.sdc-gar-lay-c .sdc-gar-icon{ grid-row:1 / 3; align-self:start; }
.sdc-gar-lay-b h3, .sdc-gar-lay-c h3{ grid-column:2; grid-row:1; align-self:end; }
.sdc-gar-lay-b p,  .sdc-gar-lay-c p{ grid-column:2; grid-row:2; align-self:start; }
.sdc-gar-lay-d{ grid-template-columns:auto 1fr; text-align:left; }
.sdc-gar-lay-d .sdc-gar-icon{ grid-column:1; grid-row:1; align-self:center; }
.sdc-gar-lay-d h3{ grid-column:2; grid-row:1; align-self:center; }
.sdc-gar-lay-d p{ grid-column:1 / 3; grid-row:2; margin-top:.4rem; }
.sdc-gar-item.has-link{ cursor:pointer; transition:transform .2s ease; }
.sdc-gar-item.has-link:hover{ transform:translateY(-3px); }
.sdc-gar-arrow.dashicons{ position:absolute; top:.3rem; right:.3rem; color:var(--ref-orange); font-size:1.2rem; width:1.2rem; height:1.2rem; transition:transform .2s ease; }
.sdc-gar-item.has-link:hover .sdc-gar-arrow{ transform:translateX(3px); }
.sdc-card{ background:var(--card); border-radius:var(--card-radius,0); }
.sdc-card img{ border-radius:var(--img-radius,0); width:100%; aspect-ratio:4/3; object-fit:cover; }
.sdc-card h3{ text-align:center; margin:.8rem 0 .3rem; }
.sdc-card p{ text-align:center; margin:0 0 .8rem; padding:0 .6rem; }
/* Tarjetas configurables (Necesidades/Especialidades): posición arriba/dentro/abajo.
   Doble copia: .sdc-cf-* en flujo (arriba/abajo) y .sdc-ci-* anclada a la foto (dentro). */
.sdc-cardx{ display:flex; flex-direction:column; }
.sdc-cardx .sdc-card-media{ order:0; position:relative; }
.sdc-cardx .sdc-card-media img{ display:block; }
.sdc-cardx .sdc-card-ov{ position:absolute; inset:0; background:rgba(0,0,0,.45); z-index:1; }
.sdc-cardx .sdc-cf-title{ margin:.8rem 0 .3rem; padding:.2rem .6rem 0; }
.sdc-cardx .sdc-cf-text{ margin:0 0 .8rem; padding:0 .6rem .2rem; }
.sdc-cardx .sdc-ci-title{ position:absolute; left:0; right:0; z-index:2; margin:0; padding:.6rem .7rem; }
.sdc-cardx .sdc-ci-text{ position:absolute; left:0; right:0; z-index:2; margin:0; padding:.6rem .7rem; }
.sdc-cardx .sdc-ci-title, .sdc-cardx .sdc-ci-text{ display:none; }
@media(max-width:782px){ .sdc-grid-4{ grid-template-columns:1fr; } }
/* Carrusel en móvil (opción del admin): swipe nativo con scroll-snap */
@media(max-width:782px){
  .sdc-grid.sdc-carousel{ display:flex; grid-template-columns:none; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; gap:1rem; padding-bottom:.6rem; scrollbar-width:none; }
  .sdc-grid.sdc-carousel::-webkit-scrollbar{ display:none; }
  .sdc-grid.sdc-carousel > *{ flex:0 0 82%; scroll-snap-align:center; }
}

/* Footer */
.sdc-footer{ background:var(--footer-bg,var(--ref-dark)); color:var(--footer-text,#fff); padding:3rem 0 1.5rem; }
.sdc-footer a{ color:var(--footer-text,#fff); }
.sdc-footer .sdc-legal a{ color:var(--ref-orange); }
.sdc-footer .sdc-copy{ text-align:center; margin-top:2rem; font-size:.85rem; opacity:.8; }
.sdc-richtext{ line-height:1.7; }
.sdc-richtext h2, .sdc-richtext h3{ margin:0 0 .6rem; }
.sdc-richtext p{ margin:0 0 1rem; }
.sdc-richtext ul, .sdc-richtext ol{ margin:0 0 1rem 1.4rem; }
.sdc-richtext img{ max-width:100%; height:auto; }
.sdc-richtext a{ color:var(--ref-orange); }
/* PLP/PDP de Proyectos */
.sdc-card-link{ color:inherit; text-decoration:none; }
.sdc-back{ display:inline-block; margin-bottom:1rem; color:var(--ref-orange); text-decoration:none; }
.sdc-single-img{ margin:1rem 0 1.5rem; }
.sdc-single-img img{ width:100%; height:auto; border-radius:var(--img-radius,0); }
.sdc-single-content{ max-width:820px; }
.sdc-pagination .nav-links{ display:flex; gap:.4rem; justify-content:center; flex-wrap:wrap; margin-top:2.5rem; }
.sdc-pagination .page-numbers{ padding:.4rem .8rem; border:1px solid var(--border); color:var(--text); text-decoration:none; border-radius:var(--btn-radius,0); }
.sdc-pagination .page-numbers.current{ background:var(--ref-orange); color:#fff; border-color:var(--ref-orange); }
.sdc-page{ padding:3rem 0; }
.sdc-page h1{ font-size:2.2rem; }

/* ===== Animaciones de banner (solo CSS + IntersectionObserver) ===== */
/* Texto: oculto hasta que el banner entra en viewport (clase is-inview via anim.js) */
.sdc-js .sdc-rt{ opacity:0; transition:opacity 2s ease, transform 2s cubic-bezier(.16,1,.3,1); }
.sdc-js .sdc-rt-fadeup{ transform:translateY(60px); }
.sdc-js .sdc-rt-fadedown{ transform:translateY(-60px); }
.sdc-js .sdc-rt-slideleft{ transform:translateX(-90px); }
.sdc-js .sdc-rt-slideright{ transform:translateX(90px); }
.sdc-banner.is-inview .sdc-rt{ opacity:1; transform:none; }
/* Tarjetas: el estado oculto/animado va en la propia tarjeta (.sdc-card.sdc-rt) y se revela a sí misma. */
.sdc-js .sdc-card.sdc-rt.is-inview{ opacity:1; transform:none; }
/* Imagen: zoom lento (Ken Burns) y parallax */
@keyframes sdc-kb{ from{ transform:scale(1); } to{ transform:scale(1.12); } }
.sdc-ai-kenburns .sdc-bsub-bg{ animation:sdc-kb 18s ease-in-out infinite alternate; }
.sdc-ai-parallax .sdc-bsub-bg{ background-attachment:fixed; }
@media(max-width:782px){ .sdc-ai-parallax .sdc-bsub-bg{ background-attachment:scroll; } }
@media(prefers-reduced-motion:reduce){
  .sdc-rt{ opacity:1 !important; transform:none !important; }
  .sdc-ai-kenburns .sdc-bsub-bg{ animation:none !important; }
}
