/*
Theme Name: JAC Electricidad
Theme URI: https://jac-electricidad.cl
Author: JAC Electricidad + FlowCode AI
Description: Block theme a medida para JAC Electricidad — instalaciones eléctricas residenciales y comerciales, certificadas SEC.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: jac-electricidad
*/

/* ===== Fonts ===== */
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700;800&family=Inter:wght@400;500;600;700;800&display=swap');

/* ===== Base ===== */
:root{
  --jac-shadow: 0 18px 40px -18px rgba(10,25,48,.45);
  --jac-shadow-sm: 0 8px 20px -12px rgba(10,25,48,.35);
}
body{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }

h1,h2,h3,h4,h5,h6{ letter-spacing:-.01em; line-height:1.08; }
.is-style-overline{
  font-family:"Manrope",sans-serif; text-transform:uppercase; letter-spacing:.22em;
  font-size:.82rem; font-weight:700; color:var(--wp--preset--color--steel);
}
/* Contraste: overline amarillo solo sobre fondos oscuros (amarillo sobre blanco no cumple AA) */
.has-charcoal-background-color .is-style-overline,
.has-ink-background-color .is-style-overline,
.wp-block-cover .is-style-overline{ color:var(--wp--preset--color--amber); }

/* ===== Buttons ===== */
.wp-block-button__link{
  font-family:"Manrope",sans-serif; letter-spacing:.01em;
  font-weight:700; transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.wp-block-button__link:hover{ transform:translateY(-2px); box-shadow:var(--jac-shadow-sm); }
.wp-block-button.is-style-amber .wp-block-button__link{
  background:var(--wp--preset--color--amber); color:#0f2142;
}
.wp-block-button.is-style-amber .wp-block-button__link:hover{ background:var(--wp--preset--color--amber-dark); }
.wp-block-button.is-style-ghost .wp-block-button__link{
  background:transparent; color:#fff; box-shadow:inset 0 0 0 2px rgba(255,255,255,.5);
}
.wp-block-button.is-style-ghost .wp-block-button__link:hover{ box-shadow:inset 0 0 0 2px #fff; background:rgba(255,255,255,.08); }
.wp-block-button.is-style-ghost-dark .wp-block-button__link{
  background:transparent; color:var(--wp--preset--color--ink); box-shadow:inset 0 0 0 2px var(--wp--preset--color--ink);
}
.wp-block-button.is-style-ghost-dark .wp-block-button__link:hover{ background:var(--wp--preset--color--ink); color:#fff; }

/* ===== Header ===== */
/* El sticky va en el WRAPPER del template part (hijo directo de .wp-site-blocks), no en el
   <header> mismo: ese wrapper mide lo mismo que el header y no le deja alto para "pegarse";
   al pasar los 87px de scroll el header se iba con el documento en vez de quedar fijo. */
.wp-site-blocks > .wp-block-template-part:first-child{
  position:sticky; top:0; z-index:100;
}
.jac-header{ backdrop-filter:saturate(140%) blur(8px); }
.jac-header .wp-block-navigation a{
  font-family:"Manrope",sans-serif; letter-spacing:.01em;
  font-size:.95rem; font-weight:600;
}
.jac-header .wp-block-navigation a:hover{ color:var(--wp--preset--color--amber); }
/* Sin caja blanca: el logo ya es un círculo navy/dorado centrado en su propio PNG, se lee
   directo sobre el header charcoal sin badge que lo empequeñezca. */
.jac-logo-badge{ display:flex; align-items:center; }
.jac-logo-badge figure{ margin:0; line-height:0; }
.jac-logo-badge img{
  height:64px; width:auto; max-width:none; display:block;
  border-radius:50%; border:2px solid var(--wp--preset--color--amber);
}
@media (max-width:1023px){
  .jac-logo-badge img{ height:52px; }
}
@media (max-width:768px){
  /* El botón "Escríbenos por WhatsApp" del header baja a una 2da fila en mobile/tablet y deja
     el header en 152px; pegado arriba tapa casi un quinto de la pantalla. El botón flotante
     de WhatsApp (.jac-wa) ya cubre esta función en todas las páginas, así que acá sobra. */
  .jac-header .wp-block-buttons{ display:none; }
}

/* Franja blanca entre el header y el primer bloque: el margin-block-start del root-padding
   (1.4rem) cae sobre el hermano que sigue al wrapper del header; se anula solo ahí. */
.wp-site-blocks > .wp-block-template-part:first-child + *{
  margin-block-start:0 !important;
}

/* ===== Cards & hover ===== */
.jac-card{ transition:transform .2s ease, box-shadow .2s ease; height:100%; }
.jac-card:hover{ transform:translateY(-6px); box-shadow:var(--jac-shadow); }
.jac-service-img img{ aspect-ratio:4/3; object-fit:cover; width:100%; }
/* Tarjetas de servicio sin foto real que calce: ícono de línea dorado sobre navy, mismo alto 4/3 */
.jac-service-icon{
  aspect-ratio:4/3; display:flex; align-items:center; justify-content:center;
  background:var(--wp--preset--color--ink); border-top-left-radius:14px; border-top-right-radius:14px;
}
.jac-service-icon svg{ width:34%; height:34%; color:var(--wp--preset--color--amber); }
.jac-service-media-icon{
  aspect-ratio:4/3; display:flex; align-items:center; justify-content:center;
  background:var(--wp--preset--color--ink); border-radius:14px;
}
.jac-service-media-icon svg{ width:26%; height:26%; color:var(--wp--preset--color--amber); }
/* Avisos/infografías propios del cliente: no se recortan, van "contain" sobre navy */
.jac-service-img-contain{
  aspect-ratio:4/3; display:flex; align-items:center; justify-content:center;
  background:var(--wp--preset--color--ink); border-top-left-radius:14px; border-top-right-radius:14px;
  padding:0.75rem;
}
.jac-service-img-contain img{ max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; display:block; }
.jac-service-media-contain{
  aspect-ratio:4/3; display:flex; align-items:center; justify-content:center;
  background:var(--wp--preset--color--ink); border-radius:14px; padding:1rem;
}
.jac-service-media-contain img{ max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; display:block; }
.jac-proj figure{ margin:0; overflow:hidden; border-radius:10px; }
.jac-proj img{ aspect-ratio:4/3; object-fit:cover; width:100%; transition:transform .5s ease; }
.jac-proj:hover img{ transform:scale(1.07); }
.jac-prod-img img{ aspect-ratio:1/1; object-fit:contain; width:100%; background:#fff; }

/* marcas: logo banner completo, sin recorte */
.jac-marcas img{ width:100%; height:auto; display:block; }

/* ===== Formulario de contacto ===== */
.jac-form{ display:grid; gap:1rem; }
.jac-form .row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media(max-width:600px){ .jac-form .row{ grid-template-columns:1fr; } }
.jac-form label{ font-weight:600; font-size:.9rem; display:block; margin-bottom:.35rem; color:var(--wp--preset--color--ink); }
.jac-form input,.jac-form select,.jac-form textarea{
  width:100%; padding:.8rem .9rem; border:1px solid #cfd8e3; border-radius:8px;
  font:inherit; background:#fff; color:var(--wp--preset--color--ink);
}
.jac-form input:focus,.jac-form select:focus,.jac-form textarea:focus{
  outline:none; border-color:var(--wp--preset--color--amber); box-shadow:0 0 0 3px rgba(240,196,25,.28);
}
.jac-form button{
  font-family:"Manrope",sans-serif; font-weight:700;
  background:var(--wp--preset--color--amber); color:#0f2142; border:0; padding:.95rem 1.6rem;
  border-radius:8px; cursor:pointer; font-size:1rem; transition:background .18s, transform .18s;
}
.jac-form button:hover{ background:var(--wp--preset--color--amber-dark); transform:translateY(-2px); }
.jac-alert{ padding:1rem 1.2rem; border-radius:8px; background:#e7f7ec; color:#176a37; border:1px solid #b6e6c5; font-weight:600; }

/* ===== Floating WhatsApp ===== */
.jac-wa{
  position:fixed; right:20px; bottom:20px; z-index:200; width:58px; height:58px;
  border-radius:50%; background:#25D366; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 28px -8px rgba(0,0,0,.45); transition:transform .2s; color:#fff;
}
.jac-wa:hover{ transform:scale(1.08); }
.jac-wa svg{ width:32px; height:32px; fill:#fff; }

/* ===== Franja de confianza ===== */
.jac-franja{
  background:var(--wp--preset--color--charcoal)!important;
  border-top:3px solid var(--wp--preset--color--amber); border-bottom:3px solid var(--wp--preset--color--amber);
  position:relative; overflow:hidden;
}
.jac-franja-item{ margin:0!important; white-space:nowrap; color:#fff!important; }
@media(max-width:782px){
  .jac-franja-item{ font-size:.88rem!important; }
}
@media(max-width:400px){
  /* "INSTALACIONES RESIDENCIALES Y COMERCIALES" no entra en una sola línea a 360px;
     que envuelva a 2 líneas en vez de desbordar (no depender del overflow del body/franja). */
  .jac-franja-item{ white-space:normal; max-width:100%; text-align:center; }
}

/* ===== Footer credit ===== */
.jac-credit{
  font-family:"Manrope",sans-serif; letter-spacing:.04em;
  color:#8fa2bd; transition:color .2s, text-shadow .2s;
}
.jac-credit:hover{ color:var(--wp--preset--color--amber); text-shadow:0 0 12px rgba(240,196,25,.5); }

/* ===== Responsive / Mobile ===== */
@media (max-width: 781px){
  .wp-block-cover h1.wp-block-heading{
    font-size: clamp(1.55rem, 6.6vw, 2.1rem) !important;
    line-height: 1.12 !important;
    overflow-wrap: break-word; word-break: normal; hyphens: none;
  }
  .wp-block-cover{ min-height: 78vh !important; }
  .wp-block-cover .wp-block-cover__inner-container{ width: 100%; max-width: 100%; }
  .wp-block-cover .wp-block-cover__inner-container > .wp-block-group{ max-width: 100%; }
  .wp-block-cover p{ font-size: 1.02rem !important; }
  .is-style-overline{ font-size: .72rem; letter-spacing:.16em; }

  .wp-block-cover .wp-block-buttons{ width: 100%; }
  .wp-block-cover .wp-block-buttons .wp-block-button{ flex: 1 1 100%; }
  .wp-block-cover .wp-block-buttons .wp-block-button__link{ display:block; text-align:center; }

  h2.wp-block-heading{ font-size: clamp(1.7rem, 7vw, 2.2rem) !important; }

  .wp-block-navigation__responsive-container.is-menu-open{
    background: var(--wp--preset--color--ink) !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{
    padding-top: 1rem;
  }
  .wp-block-navigation__responsive-container.is-menu-open a{
    font-size: 1.4rem !important; padding:.4rem 0; color:#fff!important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{
    width:100%;
  }

  .jac-wa{ width:52px; height:52px; right:14px; bottom:14px; }
  .jac-wa svg{ width:28px; height:28px; }

  main h1.wp-block-heading,
  .has-charcoal-background-color h1.wp-block-heading{
    font-size: clamp(1.9rem, 8vw, 2.4rem) !important;
    line-height: 1.1 !important;
    overflow-wrap: break-word;
  }

  .wp-block-social-links .wp-social-link{ width:40px !important; height:40px !important; }
  footer a, .wp-block-column a:not(.wp-block-button__link){ display:inline-block; padding:.18rem 0; }

  img, iframe, video, table, pre{ max-width:100% !important; height:auto; }
  .wp-block-group, .wp-block-columns, .wp-block-column{ max-width:100%; }
  /* overflow-x:hidden convierte al body en contenedor de scroll y rompe el position:sticky
     del header (el sticky necesita que el scroll sea del viewport, no de un ancestro).
     overflow-x:clip corta el desborde horizontal igual, sin crear ese contenedor. */
  html, body{ overflow-x:clip; }
}

/* ===== Tablet (iPad vertical 600–781px): recuperar columnas en fila ===== */
@media (min-width: 600px) and (max-width: 781px){
  .wp-block-columns:not(.is-not-stacked-on-mobile){
    flex-direction:row !important; flex-wrap:wrap !important; gap:1.4rem;
  }
  .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column{
    flex-basis:30% !important; flex-grow:1 !important; min-width:0 !important;
  }
  footer .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column{ flex-basis:42% !important; }
  .wp-block-media-text{ grid-template-columns:1fr 1fr !important; }
  .wp-block-media-text.has-media-on-the-right{ grid-template-columns:1fr 1fr !important; }

  .wp-block-cover h1.wp-block-heading{ font-size: clamp(2.2rem, 5.5vw, 3rem) !important; }
  main h1.wp-block-heading,
  .has-charcoal-background-color h1.wp-block-heading{ font-size: clamp(2.4rem, 5vw, 3rem) !important; }
}

/* menú de admin de WP no debe tapar el header sticky */
@media (max-width: 782px){
  html{ scroll-padding-top: 64px; }
}

/* anclas bajo header sticky */
[id]{ scroll-margin-top: 90px; }

/* ===== Misc ===== */
.has-amber-color{ color:var(--wp--preset--color--amber)!important; }
.jac-divider{ width:64px; height:4px; background:var(--wp--preset--color--amber); border-radius:2px; }
.jac-stars{ color:var(--wp--preset--color--amber-dark); letter-spacing:.15em; font-size:1.1rem; margin-bottom:.6rem!important; }
