/* =====================================================================
   OM CLEANING LLC — limpieza residencial y comercial, mobile-first
   Patrones reusados: botón flotante WhatsApp + formulario → WhatsApp
   (Mayani), slider antes/después con drag (Barak), animaciones de
   scroll/hover + grid 2 columnas en móvil + SEO local (Quesadillas
   Lupita). Sin carrito (no aplica a este negocio).
   ===================================================================== */

:root{
  --blue:#01B8EF;
  --blue-dark:#023E73;
  --blue-rgb:1,184,239;
  --blue-dark-rgb:2,62,115;
  --white:#FFFFFF;
  --ice:#EFF8FC;
  --ink:#0B2438;
  --ink-soft:rgba(11,36,56,.72);
  --ink-faint:rgba(11,36,56,.48);

  --radius-sm:10px;
  --radius-md:18px;
  --radius-lg:26px;
  --radius-pill:999px;

  --shadow-soft:0 10px 28px -12px rgba(2,62,115,.2);
  --shadow-lift:0 18px 40px -16px rgba(2,62,115,.3);

  --container:1120px;
  --font-heading:'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-body:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
#servicios, #antes-despues, #nosotros, #resenas, #cotizacion, #contacto{ scroll-margin-top:104px; }
body{
  margin:0;
  background:var(--white);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3{ font-family:var(--font-heading); margin:0; color:var(--ink); font-weight:700; }
p{ margin:0; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }

.wrap{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:1.25rem; }
.skip-link{
  position:absolute; left:-999px; top:auto;
  background:var(--blue-dark); color:var(--white);
  padding:.8rem 1.2rem; border-radius:var(--radius-sm); z-index:300;
}
.skip-link:focus{ left:1rem; top:1rem; }

.reveal{ opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in-view{ opacity:1; transform:none; }

/* ---------- Botones ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family:var(--font-heading); font-weight:600; font-size:.92rem;
  padding:.85rem 1.6rem; border-radius:var(--radius-pill); min-height:48px;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
  white-space:nowrap;
}
.btn-primary{ background:var(--blue); color:var(--white); box-shadow:var(--shadow-soft); }
.btn-primary:hover{ background:var(--blue-dark); transform:translateY(-2px); box-shadow:var(--shadow-lift); }
.btn-lg{ font-size:1rem; padding:1.05rem 1.9rem; }
.btn-dark{ background:var(--blue-dark); color:var(--white); box-shadow:var(--shadow-soft); }
.btn-dark:hover{ transform:translateY(-2px); box-shadow:var(--shadow-lift); }
.btn-white-solid{ background:var(--white); color:var(--blue-dark); box-shadow:var(--shadow-soft); }
.btn-white-solid:hover{ background:var(--ice); transform:translateY(-2px); box-shadow:var(--shadow-lift); }

/* ---------- Barra de info superior ---------- */
.info-bar{ background:var(--blue-dark); color:rgba(255,255,255,.9); font-size:.78rem; }
.info-bar-inner{ display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem 0; padding-block:.5rem; }
.info-bar-item{ display:flex; align-items:center; gap:.4rem; white-space:nowrap; padding-inline:.9rem; }
.info-bar-item:not(:last-child){ border-right:1px solid rgba(255,255,255,.2); }
.info-bar-item svg{ width:13px; height:13px; color:var(--blue); flex-shrink:0; }
.info-bar-item a{ color:inherit; }
.info-bar-item a:hover{ text-decoration:underline; }

/* ---------- Barra superior (nav) ---------- */
.topbar{
  position:sticky; top:0; z-index:200;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(var(--blue-dark-rgb),.1);
}
.topbar-inner{
  display:flex; align-items:center; justify-content:space-between; gap:.8rem;
  padding-block:.6rem; max-width:var(--container); margin-inline:auto; padding-inline:1.25rem;
}
.logo{ display:flex; align-items:center; gap:.55rem; flex-shrink:0; }
.logo-icon{ height:36px; width:auto; display:block; }
.logo-text{
  font-family:var(--font-heading); font-weight:700; font-size:.95rem;
  letter-spacing:.08em; text-transform:uppercase; color:var(--blue-dark); white-space:nowrap;
}
.logo-mark-wrap{
  display:flex; align-items:center; justify-content:center;
  background:var(--blue-dark);
  border-radius:var(--radius-md);
  padding:.4rem .7rem;
}
.logo-mark{ height:34px; width:auto; display:block; }
.nav-links{ display:none; align-items:center; gap:1.1rem; flex-wrap:nowrap; }
.nav-links a{
  font-family:var(--font-heading); font-size:.85rem; font-weight:600; color:var(--ink-soft);
  white-space:nowrap; transition:color .15s ease;
}
.nav-links a:hover{ color:var(--blue); }
.topbar-actions{ display:flex; align-items:center; gap:.5rem; flex-shrink:0; }
.nav-call{ display:none; padding:.6rem 1.1rem; font-size:.8rem; }
.nav-quote{ display:none; padding:.65rem 1.3rem; font-size:.82rem; }

.lang-toggle{
  display:flex; align-items:center; gap:2px; background:rgba(var(--blue-dark-rgb),.06);
  border-radius:var(--radius-pill); padding:3px;
  font-family:var(--font-heading); font-weight:600; font-size:.74rem;
}
.lang-btn{ padding:.4rem .8rem; border-radius:var(--radius-pill); color:rgba(var(--blue-dark-rgb),.5); transition:color .15s ease, background .15s ease; }
.lang-btn:hover{ color:var(--blue-dark); }
.lang-btn.is-active{ background:var(--blue); color:var(--white); }
.lang-btn.is-active:hover{ color:var(--white); }

.nav-whatsapp{
  display:flex; align-items:center; justify-content:center;
  width:42px; height:42px; border-radius:50%;
  background:#25D366; color:#fff; flex-shrink:0;
  transition:transform .15s ease;
}
.nav-whatsapp:hover{ transform:translateY(-1px); }
.nav-whatsapp svg{ width:20px; height:20px; }

.nav-toggle{
  display:flex; align-items:center; justify-content:center;
  width:42px; height:42px; border-radius:50%; color:var(--blue-dark);
  transition:background .15s ease;
}
.nav-toggle:hover{ background:var(--ice); }
.nav-toggle svg{ width:22px; height:22px; }

.nav-mobile-panel{ display:none; flex-direction:column; background:var(--white); border-top:1px solid rgba(var(--blue-dark-rgb),.08); padding:.4rem 1.25rem 1rem; }
.nav-mobile-panel.is-open{ display:flex; }
.nav-mobile-panel a{
  padding:.85rem 0; font-family:var(--font-heading); font-size:.95rem; font-weight:600; color:var(--ink);
  border-bottom:1px solid rgba(var(--blue-dark-rgb),.08);
}
.nav-mobile-panel a:last-child{ border-bottom:none; }

@media (min-width:1080px){
  .nav-links{ display:flex; }
  .nav-call{ display:inline-flex; }
  .nav-quote{ display:inline-flex; }
  .nav-toggle{ display:none; }
  .nav-mobile-panel{ display:none !important; }
  .logo-icon{ height:44px; }
  .logo-text{ font-size:1.05rem; }
  .topbar-inner{ max-width:1280px; }
}

/* ---------- Hero ---------- */
.hero{ position:relative; min-height:88vh; display:flex; align-items:flex-end; overflow:hidden; margin:0; }
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; }
.hero-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(2,20,35,0) 0%, rgba(2,20,35,0) 38%, rgba(2,20,35,.32) 68%, rgba(2,20,35,.64) 92%, rgba(2,20,35,.72) 100%);
}
.hero-content{ position:relative; z-index:2; padding-block:3rem 3.2rem; color:var(--white); }
.hero-logo-wrap{ display:flex; justify-content:center; margin-bottom:1.5rem; }
.hero-logo{
  width:34%; min-width:150px; max-width:340px; height:auto; display:block;
  filter:drop-shadow(0 0 22px rgba(255,255,255,.6)) drop-shadow(0 0 46px rgba(255,255,255,.35));
  animation:heroLogoPulse 3.2s ease-in-out infinite;
}
@keyframes heroLogoPulse{
  0%, 100%{ transform:scale(1); }
  50%{ transform:scale(1.08); }
}
.kicker{
  font-family:var(--font-heading); font-size:.82rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--blue); margin-bottom:.7rem; text-shadow:0 1px 3px rgba(0,0,0,.7);
}
.hero-title{
  font-size:clamp(2rem, 7.5vw, 3.6rem); line-height:1.08; font-weight:700;
  margin-bottom:.8rem; color:var(--white); text-shadow:0 2px 5px rgba(0,0,0,.85), 0 4px 22px rgba(0,0,0,.6);
}
.hero-title span{ color:var(--blue); }
.hero-tagline{
  font-size:clamp(1rem, 3.5vw, 1.15rem); color:rgba(255,255,255,.95);
  max-width:44ch; margin-bottom:1.6rem; text-shadow:0 1px 3px rgba(0,0,0,.8), 0 2px 14px rgba(0,0,0,.55);
}
.hero-actions{ display:flex; flex-direction:column; gap:.75rem; margin-bottom:1.6rem; }
.badge-row{ display:flex; flex-wrap:wrap; gap:.6rem; }
.hero-badge{
  display:flex; align-items:center; gap:.4rem;
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.28);
  backdrop-filter:blur(4px); padding:.45rem .9rem; border-radius:var(--radius-pill);
  font-size:.78rem; font-weight:600; color:var(--white);
}

@media (max-width:639px){
  .hero-logo{ width:42%; max-width:180px; animation:none; }
}

/* ---------- Franja de sellos de confianza ---------- */
.trust-strip{ background:var(--ice); padding-block:1.1rem; }
.trust-strip-inner{ display:flex; flex-direction:column; align-items:center; gap:.7rem; }
.trust-badge{ display:flex; align-items:center; gap:.5rem; font-family:var(--font-heading); font-weight:600; font-size:.85rem; color:var(--blue-dark); }
.trust-badge span[aria-hidden]{ font-size:1.1rem; }

/* ---------- Secciones genéricas ---------- */
.eyebrow{
  font-family:var(--font-heading); font-weight:700; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--blue); margin-bottom:.6rem; text-align:center;
}
.eyebrow-light{ color:var(--blue); }
.section-title{ font-size:clamp(1.7rem, 5.5vw, 2.4rem); margin-bottom:.7rem; text-align:center; }
.section-title em{ color:var(--blue-dark); font-style:normal; }
.section-title-light{ color:var(--white); }
.section-title-light em{ color:var(--blue); }
.section-dek{ text-align:center; color:var(--ink-soft); max-width:56ch; margin:0 auto 2.2rem; }

/* ---------- Slider antes / después ---------- */
.ba-section{ padding-block:clamp(3rem, 8vw, 4.5rem); }
.ba-tabs{ display:flex; justify-content:center; flex-wrap:wrap; gap:.6rem; margin:1.6rem 0 0; }
.ba-tab{
  padding:.6rem 1.3rem; border-radius:var(--radius-pill); background:var(--white);
  border:1px solid rgba(var(--blue-dark-rgb),.15); font-family:var(--font-heading); font-weight:600; font-size:.88rem; color:var(--ink-soft);
  min-height:40px; transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.ba-tab:hover{ border-color:var(--blue); color:var(--blue-dark); }
.ba-tab.is-active{ background:var(--blue); border-color:var(--blue); color:var(--white); }
.ba-slider{
  position:relative; width:100%; max-width:720px; margin:1.4rem auto 0;
  aspect-ratio:4/3; max-height:380px;
  border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft);
  touch-action:pan-y; user-select:none; cursor:ew-resize;
}
@media (min-width:640px){
  .ba-slider{ max-height:520px; }
}
.ba-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; pointer-events:none; }
.ba-img-before{ clip-path:inset(0 50% 0 0); }
.ba-label{
  position:absolute; top:1rem; z-index:2; background:rgba(2,20,35,.65); color:var(--white);
  font-family:var(--font-heading); font-weight:700; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase;
  padding:.4rem .8rem; border-radius:var(--radius-pill);
}
.ba-label-before{ left:1rem; }
.ba-label-after{ right:1rem; }
.ba-handle{ position:absolute; top:0; bottom:0; left:50%; width:0; z-index:3; pointer-events:none; }
.ba-handle-line{ position:absolute; top:0; bottom:0; left:-1.5px; width:3px; background:var(--white); box-shadow:0 0 0 1px rgba(2,20,35,.2); }
.ba-handle-grip{
  position:absolute; top:50%; left:50%; transform:translate(-50%, -50%);
  width:44px; height:44px; border-radius:50%; background:var(--white); box-shadow:var(--shadow-lift);
  display:flex; align-items:center; justify-content:center; color:var(--blue-dark);
}
.ba-handle-grip svg{ width:22px; height:22px; }
.ba-slider:focus-visible{ outline:3px solid var(--blue); outline-offset:3px; }

/* ---------- Servicios ---------- */
.services-section{ background:var(--ice); padding-block:clamp(3rem, 8vw, 4.5rem); }
.services-grid{ display:grid; grid-template-columns:repeat(2, 1fr); gap:1rem; }
.service-card{
  background:var(--white); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft);
  display:flex; flex-direction:column; transition:transform .25s ease, box-shadow .25s ease;
}
.service-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-lift); }
.service-photo{ aspect-ratio:4/3; overflow:hidden; }
.service-photo img{ width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.service-card:hover .service-photo img{ transform:scale(1.05); }
.service-body{ padding:1.1rem 1.1rem 1.3rem; display:flex; flex-direction:column; gap:.4rem; flex-grow:1; }
.service-body h3{ font-size:.98rem; line-height:1.3; }
.service-body p{ color:var(--ink-soft); font-size:.84rem; flex-grow:1; }

/* ---------- Proceso (4 pasos) ---------- */
.process-section{ padding-block:clamp(3rem, 8vw, 4.5rem); }
.process-grid{ display:grid; grid-template-columns:repeat(2, 1fr); gap:1.6rem 1.2rem; margin-top:1.6rem; }
.process-step{ text-align:center; padding:0 .5rem; }
.process-number{
  display:flex; align-items:center; justify-content:center; width:52px; height:52px; margin:0 auto .9rem;
  border-radius:50%; background:var(--blue); color:var(--white);
  font-family:var(--font-heading); font-weight:700; font-size:1.3rem;
}
.process-step h3{ font-size:1rem; margin-bottom:.4rem; }
.process-step p{ color:var(--ink-soft); font-size:.86rem; }

/* ---------- Sobre nosotros ---------- */
.about-section{ background:var(--ice); padding-block:clamp(3rem, 8vw, 4.5rem); }
.about-grid{ display:flex; flex-direction:column; gap:2rem; }
.about-photo{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft); }
.about-photo img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.about-copy .eyebrow, .about-copy .section-title{ text-align:left; }
.about-copy p{ color:var(--ink-soft); margin-top:1rem; }
.about-points{ margin-top:1.4rem; display:flex; flex-direction:column; gap:.7rem; }
.about-points li{ display:flex; align-items:center; gap:.6rem; font-weight:600; font-size:.92rem; color:var(--ink); }
.about-points svg{ width:18px; height:18px; color:var(--blue); flex-shrink:0; }

/* ---------- Reseñas ---------- */
.reviews-section{ padding-block:clamp(3rem, 8vw, 4.5rem); }
.reviews-rating{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:.6rem; margin-top:.6rem; }
.google-logo{ width:30px; height:30px; }
.reviews-number{ font-family:var(--font-heading); font-weight:700; font-size:1.6rem; color:var(--ink); }
.reviews-stars{ color:#FBBC05; font-size:1.15rem; letter-spacing:.1em; }
.reviews-label{ font-size:.85rem; font-weight:600; color:var(--ink-faint); }
.reviews-more{ text-align:center; margin-top:.6rem; font-size:.85rem; color:var(--ink-faint); }
.reviews-more a{ color:var(--blue-dark); font-weight:700; text-decoration:underline; text-underline-offset:2px; }

.review-featured{
  max-width:680px; margin:2.4rem auto 0; background:var(--white);
  border:1px solid rgba(var(--blue-dark-rgb),.1); border-radius:var(--radius-lg);
  padding:1.8rem 1.6rem; box-shadow:var(--shadow-soft); text-align:center;
}
.review-featured .review-stars{ color:#FBBC05; font-size:1.1rem; letter-spacing:.1em; }
.review-featured blockquote{ margin:1rem 0; color:var(--ink); font-size:1.02rem; line-height:1.65; font-style:italic; }
.review-featured cite{ display:block; font-style:normal; font-weight:700; color:var(--blue-dark); font-size:.9rem; }
.review-source{ display:inline-flex; align-items:center; gap:.4rem; margin-top:.9rem; font-size:.78rem; color:var(--ink-faint); }
.review-source svg{ width:16px; height:16px; }

.nextdoor-badge{
  display:inline-flex; align-items:center; gap:.5rem; margin:1.6rem auto 0;
  padding:.7rem 1.3rem; background:var(--ice); border-radius:var(--radius-pill);
  font-family:var(--font-heading); font-weight:600; font-size:.85rem; color:var(--blue-dark);
  transition:background .15s ease, transform .15s ease;
}
.nextdoor-badge:hover{ background:rgba(var(--blue-rgb),.14); transform:translateY(-2px); }
.nextdoor-badge svg{ width:18px; height:18px; }
.nextdoor-wrap{ display:flex; justify-content:center; }

/* ---------- Formulario de cotización ---------- */
.quote-section{ background:var(--ice); padding-block:clamp(3rem, 8vw, 4.5rem); }
.quote-form{
  max-width:680px; margin:1.5rem auto 0; background:var(--white); border-radius:var(--radius-lg);
  padding:1.8rem 1.5rem; box-shadow:var(--shadow-soft); display:flex; flex-direction:column; gap:1.2rem;
}
.form-row{ display:grid; grid-template-columns:1fr; gap:1.2rem; }
.form-field{ display:flex; flex-direction:column; gap:.5rem; }
.form-field label, .form-field-label{ font-size:.88rem; font-weight:600; color:var(--ink); }
.form-field input, .form-field select, .form-field textarea{
  width:100%; border:1px solid rgba(var(--blue-dark-rgb),.18); border-radius:var(--radius-sm);
  padding:.8rem .9rem; font-family:inherit; font-size:.95rem; color:var(--ink); background:var(--ice); min-height:48px;
}
.form-field textarea{ min-height:auto; resize:vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{ outline:2px solid var(--blue); outline-offset:1px; }
.radio-row, .checkbox-row{ display:flex; flex-wrap:wrap; gap:.6rem; }
.radio-option, .checkbox-option{
  display:inline-flex; align-items:center; gap:.5rem; padding:.6rem .95rem;
  border:1px solid rgba(var(--blue-dark-rgb),.18); border-radius:var(--radius-sm);
  background:var(--ice); cursor:pointer; font-size:.84rem; line-height:1.3; max-width:100%;
  transition:border-color .15s ease, background .15s ease;
}
.radio-option:has(input:checked), .checkbox-option:has(input:checked){
  border-color:var(--blue); background:rgba(var(--blue-rgb),.1);
}
.radio-row input[type="radio"], .checkbox-row input[type="checkbox"]{
  width:16px; height:16px; min-width:16px; min-height:0; padding:0; margin:0;
  border-radius:4px; background:none; accent-color:var(--blue); flex-shrink:0; flex-grow:0;
}
.quote-submit{ width:100%; margin-top:.3rem; }

/* ---------- FAQ ---------- */
.faq-section{ padding-block:clamp(3rem, 8vw, 4.5rem); }
.faq-list{ max-width:760px; margin-inline:auto; margin-top:1rem; }
.faq-item{ background:var(--white); border:1px solid rgba(var(--blue-dark-rgb),.1); border-radius:var(--radius-md); margin-bottom:.9rem; overflow:hidden; }
.faq-question{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.1rem 1.3rem; text-align:left; min-height:44px; }
.faq-question h3{ font-family:var(--font-body); font-size:1rem; font-weight:600; color:var(--ink); }
.faq-icon{
  flex-shrink:0; width:28px; height:28px; display:flex; align-items:center; justify-content:center;
  border-radius:50%; background:rgba(var(--blue-rgb),.12); color:var(--blue-dark); font-size:1.1rem; font-weight:600;
  transition:transform .25s ease;
}
.faq-item.is-open .faq-icon{ transform:rotate(45deg); }
.faq-answer{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .3s ease; }
.faq-answer p{ overflow:hidden; color:var(--ink-soft); font-size:.92rem; padding-inline:1.3rem; }
.faq-item.is-open .faq-answer{ grid-template-rows:1fr; }
.faq-item.is-open .faq-answer p{ padding-bottom:1.2rem; }

/* ---------- Contacto / mapa ---------- */
.contact-section{ background:var(--blue-dark); padding-block:clamp(2.6rem, 7vw, 4rem); text-align:center; }
.contact-text{ color:rgba(255,255,255,.85); max-width:44ch; margin:0 auto 1.8rem; }
.contact-actions{ display:flex; flex-direction:column; gap:.8rem; align-items:center; justify-content:center; }
.contact-details{ display:flex; flex-direction:column; align-items:center; gap:.5rem; margin-top:1.6rem; color:rgba(255,255,255,.88); font-size:.9rem; font-weight:600; }
.contact-details li{ display:flex; align-items:center; gap:.5rem; }
.contact-details svg{ width:16px; height:16px; color:var(--blue); flex-shrink:0; }
.map-frame{ max-width:760px; margin:2rem auto 0; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft); aspect-ratio:16/10; }
.map-frame iframe{ width:100%; height:100%; border:0; display:block; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--white); padding-block:2.6rem 3rem; text-align:center; border-top:1px solid rgba(var(--blue-dark-rgb),.08); }
.footer-inner{ display:flex; flex-direction:column; align-items:center; gap:.5rem; }
.footer-logo{ display:flex; align-items:center; gap:.5rem; }
.footer-logo .logo-mark-wrap{ padding:.35rem .6rem; }
.footer-logo .logo-mark{ height:26px; }
.footer-address{ font-size:.88rem; color:var(--ink-soft); margin-top:.4rem; }
.footer-contact{ font-size:.85rem; color:var(--ink-soft); margin-top:.3rem; }
.footer-links{ display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem 1rem; margin-top:1rem; font-size:.82rem; }
.footer-links a{ color:var(--blue-dark); font-weight:700; text-decoration:underline; text-underline-offset:2px; }
.footer-links a:hover{ color:var(--blue); }
.footer-copy{ font-size:.8rem; color:var(--ink-faint); margin-top:1rem; }
.footer-credit{ font-size:.75rem; color:var(--ink-faint); }
.footer-credit a{ color:var(--blue-dark); font-weight:600; text-decoration:underline; text-underline-offset:2px; }
.footer-credit a:hover{ color:var(--blue); }

/* ---------- WhatsApp flotante ---------- */
.whatsapp-float{
  position:fixed; right:1rem; bottom:1rem; z-index:150;
  width:58px; height:58px; border-radius:50%; background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-lift);
  transition:transform .15s ease;
}
.whatsapp-float:hover{ transform:translateY(-2px) scale(1.05); }
.whatsapp-float svg{ width:30px; height:30px; }

/* =====================================================================
   Tablet — 640px+
   ===================================================================== */
@media (min-width:640px){
  .info-bar-inner{ justify-content:space-between; }
  .trust-strip-inner{ flex-direction:row; justify-content:center; gap:2.2rem; flex-wrap:wrap; }
  .hero-actions{ flex-direction:row; flex-wrap:wrap; }
  .contact-actions{ flex-direction:row; }
  .services-grid{ grid-template-columns:repeat(3, 1fr); }
  .process-grid{ grid-template-columns:repeat(4, 1fr); }
  .radio-row{ flex-wrap:nowrap; }
  .checkbox-row{ flex-wrap:wrap; }
  .form-row{ grid-template-columns:repeat(2, 1fr); }
}

/* =====================================================================
   Desktop — 1024px+
   ===================================================================== */
@media (min-width:1024px){
  .services-grid{ grid-template-columns:repeat(4, 1fr); }
  .about-grid{ flex-direction:row; align-items:center; gap:3.5rem; }
  .about-photo{ flex:1; }
  .about-copy{ flex:1; }
}

@media (min-width:1280px){
  .hero-title{ font-size:3.9rem; }
  .topbar-inner{ max-width:1360px; }
}

/* Respeta usuarios que piden menos movimiento */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }
  .btn, .service-card, .service-photo img, .whatsapp-float{ transition:none; }
  .hero-logo{ animation:none; }
}
