
/* ── FUENTES LOCALES ── */
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400 600;font-display:swap;src:url('/fonts/playfair.woff2') format('woff2')}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:300 600;font-display:swap;src:url('/fonts/playfair-italic.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:300 600;font-display:swap;src:url('/fonts/dm-sans.woff2') format('woff2')}

/* ── RESET & BASE ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:18px}
:root{
  --navy:#1a2236;
  --navy2:#222E50;
  --navy-lt:#3C528E;
  --blue:#5C7CD9;
  --sand:#F1EDE0;
  --sand-lt:#F8F4E8;
  --yellow:#FED544;
  --white:#fff;
  --muted:#6b6987;
  --border:rgba(26,34,54,0.12);
  --wa:#25D366;
  --radius:0px;
}
body{font-family:'DM Sans',sans-serif;font-weight:300;color:var(--navy);background:#fff;overflow-x:hidden;line-height:1.6}
a{text-decoration:none;color:inherit}
button{font-family:inherit;cursor:pointer}

/* ── UTILIDADES ── */
.eyebrow{font-size:1.1rem;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);font-weight:600;display:flex;align-items:center;gap:.7rem;margin-bottom:1.2rem}
.eyebrow::before{content:'';display:block;width:24px;height:1px;background:var(--blue);flex-shrink:0}
.h1-serif{font-family:'Playfair Display',serif;font-style:italic;font-weight:400;line-height:1.0;letter-spacing:-.02em}
.h2-serif{font-family:'Playfair Display',serif;font-style:italic;font-weight:400;line-height:1.1;letter-spacing:-.01em}
.brand{font-family:'Playfair Display',serif;font-style:italic;font-weight:400}

/* reveal */
.rv{opacity:0;transform:translateY(32px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.rv-h{opacity:0;transform:translateX(-40px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.rv.in,.rv-h.in{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}.d5{transition-delay:.5s}

/* ── PAGE SYSTEM ── */
.page{display:none}
.page.active{display:block}
.page.pg-enter{animation:pgEnter .35s ease both}
.page.pg-return{animation:pgReturn .3s ease both}
@keyframes pgEnter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes pgReturn{from{opacity:0}to{opacity:1}}

/* ── VIDEOS MOVIL ── */
@media(max-width:700px){
  .hero-vid video,.svc-hero-vid video{display:none}
  .hero-vid{background-image:url('/posters/portada.webp');background-size:cover;background-position:center}
}

/* ── BARRA DE PROGRESO ── */


/* ── WHATSAPP ── */
#waWrap{position:fixed;bottom:2rem;right:2rem;z-index:8000;display:flex;align-items:center;gap:.75rem;flex-direction:row-reverse;opacity:0;pointer-events:none;transform:scale(.8);transition:opacity .35s,transform .35s}
#waWrap.wa-visible{opacity:1;pointer-events:all;transform:scale(1)}
#waWrap.wa-above-footer{bottom:6rem}
#waWrap.wa-at-footer{opacity:0!important;pointer-events:none!important;transform:scale(.8)!important}
#waWrap.wa-section-hidden{opacity:0!important;pointer-events:none!important;transform:scale(.8)!important}
body.wa-svc-hero #waWrap,body.wa-page-hidden #waWrap{opacity:0!important;pointer-events:none!important;transform:scale(.8)!important}
#waBtn{width:56px;height:56px;border-radius:50%;background:var(--wa);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 24px rgba(37,211,102,.4);transition:transform .25s;flex-shrink:0;text-decoration:none}
#waBtn:hover{transform:scale(1.1)}
#waBtn svg{width:28px;height:28px;fill:#fff}
#waTip{background:#fff;color:#111;font-size:.82rem;font-weight:600;padding:.55rem 1rem;border-radius:100px;box-shadow:0 4px 18px rgba(0,0,0,.18);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .3s}
#waTip.show{opacity:1;pointer-events:auto}

/* ── HERO WA INLINE (solo móvil) ── */
.hero-wa-inline{display:none;align-items:center;gap:.75rem;margin:.5rem 0 .2rem}
.hero-wa-btn{width:46px;height:46px;border-radius:50%;background:#25d366;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 16px rgba(37,211,102,.45);flex-shrink:0;text-decoration:none}
.hero-wa-num{font-size:.9rem;font-weight:600;color:#fff;letter-spacing:.04em}

/* ── NAV ── */
#nav{position:fixed;top:0;left:0;right:0;z-index:800;display:flex;align-items:center;justify-content:space-between;padding:0 2rem 0 1.5rem;height:70px;transition:background .4s,height .3s}
#nav.solid{background:rgba(26,34,54,.97);backdrop-filter:blur(12px)}
#nav.light{background:var(--sand);border-bottom:1px solid var(--border)}
.n-logo{background:none;border:none;cursor:pointer;font-family:'Playfair Display',serif;font-style:italic;font-size:2rem;color:#fff;letter-spacing:.03em;padding:0;transition:color .3s}
#nav.light .n-logo{color:var(--navy)}
.n-right{display:flex;align-items:center;gap:1.2rem}
.n-links{display:flex;align-items:center;gap:0.9rem;list-style:none;margin-left:1.5rem}
.n-link{background:none;border:none;cursor:pointer;font-size:.65rem;font-weight:400;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.7);transition:color .3s;position:relative;padding:0;white-space:nowrap}
.n-link::after{content:'';position:absolute;bottom:-3px;left:0;right:0;height:1px;background:#fff;transform:scaleX(0);transform-origin:left;transition:transform .3s}
.n-link:hover{color:#fff}
.n-link.on{color:var(--navy);background:#fff;padding:.3rem .8rem;}
.n-link:hover::after{transform:scaleX(1)}
.n-link.on::after{display:none}
#nav.light .n-link{color:var(--navy)}
#nav.light .n-link::after{background:var(--navy)}
#nav.light .n-link:hover,#nav.light .n-link.on{color:var(--navy)}
.n-tel{display:flex;align-items:center;gap:.45rem;font-size:.88rem;font-weight:600;color:rgba(255,255,255,.75);text-decoration:none;letter-spacing:.04em;transition:color .25s;white-space:nowrap}
.n-tel svg{width:16px;height:16px;flex-shrink:0}
.n-tel:hover{color:#fff}
#nav.light .n-tel{color:var(--navy)}
.n-cta{background:var(--yellow);color:var(--navy);border:none;padding:.65rem 1.6rem;font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:background .3s;white-space:nowrap}
.n-cta:hover{background:#ffe382}
.n-burger{background:none;border:none;color:#fff;width:42px;height:42px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;transition:color .3s}
#nav.light .n-burger{color:var(--navy)}
/* ── LANG TOGGLE ── */
.lang-toggle{display:flex;align-items:center;gap:.25rem;background:rgba(255,255,255,.08);border-radius:2px;padding:.2rem .4rem}
#nav.light .lang-toggle{background:rgba(26,34,54,.07)}
.lang-btn{background:none;border:none;font-size:.67rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.4);cursor:pointer;padding:.4rem .5rem;min-height:36px;transition:color .25s,background .25s;border-radius:2px}
#nav.light .lang-btn{color:rgba(26,34,54,.4)}
.lang-btn.active{color:#fff;background:rgba(255,255,255,.15)}
#nav.light .lang-btn.active{color:var(--navy);background:rgba(26,34,54,.12)}
.lang-btn:hover:not(.active){color:rgba(255,255,255,.75)}
#nav.light .lang-btn:hover:not(.active){color:var(--navy)}
.lang-sep{font-size:.62rem;color:rgba(255,255,255,.2);user-select:none}
#nav.light .lang-sep{color:rgba(26,34,54,.2)}
.n-tel{display:none!important}
@media(max-width:768px){
  .lang-toggle{display:none}
  .n-tel{display:flex!important;font-size:.7rem;font-weight:600;letter-spacing:.03em;gap:0;background:rgba(255,255,255,.12);padding:.3rem .7rem;border-radius:100px;color:#fff;backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.18);text-shadow:0 1px 4px rgba(0,0,0,.4)}
  #nav.light .n-tel{background:rgba(26,34,54,.08);color:var(--navy);border-color:rgba(26,34,54,.15);text-shadow:none}
  .n-tel svg{display:none}
}
.n-burger span{display:block;width:18px;height:1.5px;background:currentColor;border-radius:1px;transition:transform .3s,opacity .3s}

/* ── MEGA MENÚ ── */
.mm{position:fixed;inset:0;z-index:9000;background:var(--navy);display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:opacity .35s cubic-bezier(.4,0,.2,1)}
.mm.open{opacity:1;pointer-events:all}
.mm-top{display:flex;align-items:center;justify-content:space-between;padding:0 3rem;height:70px;border-bottom:1px solid rgba(255,255,255,.07);flex-shrink:0}
.mm-brand{font-family:'Playfair Display',serif;font-style:italic;font-size:2rem;color:#fff;background:none;border:none;cursor:pointer;padding:0}
.mm-close{background:none;border:none;color:rgba(255,255,255,.4);font-size:.7rem;font-weight:600;letter-spacing:.25em;text-transform:uppercase;cursor:pointer;transition:color .2s;padding:0;display:flex;align-items:center;gap:.6rem}
.mm-close:hover{color:#fff}
.mm-close::before{content:'';display:block;width:18px;height:1px;background:currentColor}
.mm-body{flex:1;display:grid;grid-template-columns:380px 1fr;overflow:hidden}
.mm-left{padding:3.5rem 4rem;border-right:1px solid rgba(255,255,255,.07);display:flex;flex-direction:column;justify-content:center;gap:.1rem}
.mm-main{display:block;background:none;border:none;text-align:left;width:100%;font-family:'Playfair Display',serif;font-style:italic;font-size:3rem;color:rgba(255,255,255,.25);cursor:pointer;padding:.35rem 0;transition:color .25s,transform .3s;line-height:1.15;letter-spacing:-.02em}
.mm-main:hover,.mm-main.on{color:#fff;transform:translateX(10px)}
.mm-main.direct{font-style:normal;font-size:2.2rem;font-family:'DM Sans',sans-serif;font-weight:300;letter-spacing:.02em}
.mm-right{padding:3.5rem 5rem;display:flex;align-items:center}
.mm-panel{display:none;gap:5rem}
.mm-panel.on{display:flex;animation:mmIn .35s cubic-bezier(.16,1,.3,1) both}
@keyframes mmIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.mm-col{display:flex;flex-direction:column}
.mm-col-t{display:block;font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;color:var(--yellow);margin-bottom:1.8rem;font-weight:500}
.mm-col-brand{display:block;font-family:'Playfair Display',serif;font-style:italic;font-weight:400;font-size:1.1rem;color:var(--yellow);margin-bottom:1.4rem;letter-spacing:-.01em;text-transform:none;line-height:1}
.mm-link{display:block;background:none;border:none;text-align:left;width:100%;font-size:1.08rem;color:rgba(255,255,255,.42);cursor:pointer;padding:.65rem .5rem;min-height:44px;display:flex;align-items:baseline;border-bottom:1px solid rgba(255,255,255,.06);transition:color .2s,padding-left .2s;text-decoration:none;font-weight:300}
.mm-link .brand,.ft-links .brand{font-style:italic;margin-left:.22em;vertical-align:baseline;line-height:inherit}
.eyebrow .brand{vertical-align:middle;position:relative;top:-0.2em}
.mm-link:hover{color:#fff;padding-left:.5rem}
.mm-link:last-child{border-bottom:none}
.mm-foot{padding:1.5rem 4rem;border-top:1px solid rgba(255,255,255,.07);display:flex;align-items:center;gap:3rem;flex-shrink:0}
.mm-foot-info{font-size:.8rem;color:rgba(255,255,255,.28);letter-spacing:.05em}
@media(max-width:900px){
  .mm-body{display:flex;flex-direction:column;overflow-y:auto}
  .mm-left{padding:2rem 2rem 1.5rem;flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.07)}
  .mm-right{display:block;padding:1.5rem 2rem 2.5rem;border-right:none}
  .mm-panel.on{flex-direction:row;align-items:flex-start;gap:1.5rem}
  .mm-panel.on .mm-col{flex:1;min-width:0}
  .mm-foot{display:flex;flex-wrap:wrap;gap:1rem 2rem;padding:1.2rem 2rem;align-items:center}
  .mm-main{font-size:2.4rem}
  .mm-foot .lang-toggle{display:flex;margin-left:auto}
}
@media(max-width:768px){
  /* En móvil: ocultar tabs de navegación */
  .mm-left{display:none}
  .mm-right{padding:1.5rem 1.4rem 2rem}
  /* Ocultar todos los paneles secundarios */
  #mmComo,#mmContacto{display:none!important}
  /* Panel principal: 2 columnas en grid */
  #mmServicios{display:grid!important;grid-template-columns:1fr 1fr!important;gap:.5rem 1.2rem;align-items:start}
  .mm-link{font-size:.92rem;padding:.5rem .2rem}
  .mm-col-t{font-size:.68rem;margin-bottom:1rem}
  .mm-col-brand{font-size:1rem;margin-bottom:1rem}
}

/* ── INTRO ANIM ── */
#introAnim{position:fixed;inset:0;z-index:9999;background:var(--navy);display:flex;align-items:center;justify-content:center}
#introAnim.out{animation:introOut .6s ease .1s forwards;pointer-events:none}
@keyframes introOut{to{opacity:0}}
.ia-wrap{display:flex;flex-direction:column;align-items:flex-start;overflow:hidden;padding:0 1.8rem;max-width:100vw}
.ia-logo{font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(4.5rem,10vw,9rem);color:#fff;line-height:1;transform:translateY(110%);will-change:transform}
.ia-logo.ia-go{animation:iaSlide .9s cubic-bezier(.16,1,.3,1) forwards}
.ia-sub{font-size:clamp(.75rem,1.3vw,.85rem);letter-spacing:.38em;text-transform:uppercase;color:var(--yellow);font-weight:600;margin-top:.6rem;opacity:0}
.ia-sub.ia-go{animation:iaFade .6s ease .7s forwards}
.ia-loc{font-size:clamp(.6rem,1.1vw,.72rem);letter-spacing:.28em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-top:.55rem;opacity:0;display:flex;align-items:center;gap:.5rem}
.ia-loc.ia-go{animation:iaFade .6s ease .9s forwards}
.ia-loc svg{width:10px;height:10px;fill:none;stroke:var(--yellow);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.ia-bar{height:1.5px;background:var(--yellow);margin-top:1.2rem;transform:scaleX(0);transform-origin:left}
.ia-bar.ia-go{animation:iaGrow .7s ease .85s forwards}
@keyframes iaSlide{to{transform:translateY(0)}}
@keyframes iaFade{to{opacity:1}}
@keyframes iaGrow{to{transform:scaleX(1)}}

/* ════════════════════════════════
   HOME — HERO
════════════════════════════════ */
.hero{position:relative;height:calc(100vh - 5rem);min-height:580px;overflow:hidden;display:flex;align-items:flex-end}
.hero-vid{position:absolute;inset:0;z-index:0}
.hero-vid video{width:100%;height:100%;object-fit:cover;display:block}
.hero-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(to bottom,rgba(10,16,35,.35) 0%,rgba(10,16,35,.08) 40%,rgba(10,16,35,.82) 100%)}
.hero-content{position:relative;z-index:2;padding:0 4.5rem 4.5rem;width:100%;display:flex;align-items:flex-end;justify-content:space-between;gap:4rem}
.hero-text{}
.hero-tag{font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:1.2rem;display:flex;align-items:center;gap:.8rem}
.hero-tag::before{content:'';display:block;width:28px;height:1px;background:var(--yellow)}
.hero-h1{font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(3.8rem,8.5vw,8.5rem);font-weight:400;color:#fff;line-height:.95;letter-spacing:-.025em}
.hero-h1 strong{font-style:normal;font-weight:600;display:block}
.hero-sub{font-size:1.1rem;color:rgba(255,255,255,.65);margin-top:1.2rem;line-height:1.75;max-width:440px}
.hero-btns{display:flex;align-items:center;gap:1.2rem;margin-top:2.2rem}
.btn-yellow{display:inline-flex;align-items:center;gap:.6rem;background:var(--yellow);color:var(--navy);border:none;padding:1rem 2.4rem;font-size:.76rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:background .3s;white-space:nowrap}
.btn-yellow:hover{background:#ffe382}
.btn-ghost{display:inline-flex;align-items:center;gap:.6rem;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35);padding:1rem 2.4rem;font-size:.76rem;font-weight:400;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:border-color .3s,background .3s}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.hero-side{display:flex;flex-direction:column;align-items:flex-end;gap:2rem;flex-shrink:0;padding-bottom:.4rem}
.hero-scroll{display:flex;flex-direction:column;align-items:center;gap:.5rem}
.hero-scroll-line{width:1px;height:52px;background:linear-gradient(to bottom,rgba(255,255,255,.5),transparent)}
.hero-scroll-txt{font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.4);writing-mode:vertical-rl}
.hero-stat{text-align:right}
.hero-stat-n{font-family:'Playfair Display',serif;font-style:italic;font-size:2.6rem;color:#fff;line-height:1}
.hero-stat-l{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-top:.2rem}

/* ── SERVICIOS STRIP ── */
.svc-strip{background:var(--navy);display:flex;border-top:2px solid var(--yellow)}
.svc-strip-item{flex:1;padding:2rem 2rem;border-right:1px solid rgba(255,255,255,.07);cursor:pointer;transition:background .3s;background:none;border-top:none;border-bottom:none;border-left:none;text-align:left;position:relative;overflow:hidden}
.svc-strip-item::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--yellow);transform:scaleX(0);transform-origin:left;transition:transform .4s}
.svc-strip-item:hover{background:rgba(255,255,255,.05)}
.svc-strip-item:hover::after{transform:scaleX(1)}
.svc-strip-item:last-child{border-right:none}
.ss-n{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--yellow);margin-bottom:.6rem;display:block;font-weight:600}
.ss-name{font-family:'Playfair Display',serif;font-style:italic;font-size:1.15rem;color:#fff;line-height:1.2;font-weight:400}
.ss-arr{font-size:.85rem;color:rgba(255,255,255,.3);margin-top:.8rem;display:block;transition:color .3s,transform .3s}
.svc-strip-item:hover .ss-arr{color:var(--yellow);transform:translateX(4px)}

/* ── SECCIÓN EDITORIAL CON VÍDEO ── */
.editorial{display:grid;grid-template-columns:1fr 1fr;min-height:70vh}
.editorial.flip{direction:rtl}
.editorial.flip > *{direction:ltr}
.ed-vid{position:relative;overflow:hidden}
.ed-vid video{width:100%;height:100%;object-fit:cover;display:block}
.ed-vid-overlay{position:absolute;inset:0;background:rgba(10,16,35,.22)}
.ed-body{padding:6rem 5rem;display:flex;flex-direction:column;justify-content:center;background:var(--sand)}
.ed-body.dark{background:var(--navy)}
.ed-body.dark .h2-serif,.ed-body.dark .ed-p,.ed-body.dark .eyebrow{color:#fff}
.ed-body.dark .eyebrow{color:var(--yellow)}
.ed-body.dark .eyebrow::before{background:var(--yellow)}
.ed-body.dark .ed-p{color:rgba(255,255,255,.7)}
.ed-body.dark .ed-list li{color:rgba(255,255,255,.88)}
.ed-h2{font-size:clamp(2.2rem,3.5vw,3.2rem);color:var(--navy);margin-bottom:1.4rem}
.ed-p{font-size:1.02rem;color:var(--muted);line-height:1.95;margin-bottom:2.4rem}
.ed-list{list-style:none;display:flex;flex-direction:column;gap:.75rem;margin-bottom:2.5rem}
.ed-list li{display:flex;align-items:flex-start;gap:.8rem;font-size:.97rem;color:var(--muted);line-height:1.5}
.ed-list li::before{content:'';display:block;width:6px;height:6px;border-radius:50%;background:var(--yellow);margin-top:.45rem;flex-shrink:0}

/* ── STATS ── */
.stats{background:var(--yellow);display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:4rem 2.5rem;border-right:1px solid rgba(26,34,54,.12);text-align:center}
.stat:last-child{border-right:none}
.stat-n{font-family:'Playfair Display',serif;font-style:italic;font-size:3.8rem;color:var(--navy);line-height:1}
.stat-l{font-size:.85rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(26,34,54,.55);margin-top:.4rem}

/* ── PROCESO ── */
.proceso{background:#fff;padding:8rem 4rem;border-top:1px solid var(--border)}
.proceso-head{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:end;margin-bottom:5rem}
.proceso-intro{font-size:1.05rem;color:var(--muted);line-height:1.9}
.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--border)}
.step{padding:3rem 2.5rem;border-right:1px solid var(--border);position:relative;transition:background .35s}
.step:hover{background:var(--sand-lt)}
.step:last-child{border-right:none}
.step-n{font-family:'Playfair Display',serif;font-style:italic;font-size:4.5rem;color:rgba(26,34,54,.08);line-height:1;margin-bottom:1.4rem;display:block;transition:color .35s}
.step:hover .step-n{color:rgba(254,213,68,.5)}
.step-title{font-size:1.08rem;font-weight:600;color:var(--navy);margin-bottom:.7rem}
.step-desc{font-size:.97rem;color:var(--muted);line-height:1.85}

/* ── TESTIMONIOS ── */
.testi{background:var(--navy);padding:8rem 4rem}
.testi-head{margin-bottom:4rem}
.testi-h{font-size:clamp(2rem,3.5vw,3rem);color:#fff;margin-top:.8rem}
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.testi-empty{text-align:center;padding:4rem 2rem;border:1px solid rgba(255,255,255,.08);border-radius:4px;max-width:560px;margin:0 auto}
.testi-empty-icon{font-size:1.8rem;color:var(--yellow);letter-spacing:.2em;margin-bottom:1.5rem}
.testi-empty-msg{font-size:1.15rem;color:rgba(255,255,255,.6);line-height:1.7;margin-bottom:2rem;font-family:'Playfair Display',serif;font-style:italic}
.testi-empty-btn{display:inline-block;background:var(--yellow);color:var(--navy);padding:.75rem 2rem;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;transition:opacity .2s}
.testi-empty-btn:hover{opacity:.85}
.t-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);padding:2.8rem;transition:background .3s,border-color .3s}
.t-card:hover{background:rgba(255,255,255,.07);border-color:rgba(254,213,68,.2)}
.t-stars{color:var(--yellow);font-size:.9rem;letter-spacing:3px;margin-bottom:1.2rem}
.t-text{font-size:1.02rem;color:rgba(255,255,255,.72);line-height:1.9;font-style:italic;margin-bottom:2rem;font-family:'Playfair Display',serif;font-weight:400}
.t-author{display:flex;align-items:center;gap:1rem}
.t-av{width:44px;height:44px;border-radius:50%;background:var(--navy-lt);display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-style:italic;font-size:1.1rem;color:#fff;flex-shrink:0}
.t-name{font-size:.9rem;font-weight:500;color:#fff}
.t-svc{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow);font-weight:600;margin-top:2px}

/* ── CTA BAND ── */
.cta-band{background:var(--sand);padding:7rem 4rem;display:grid;grid-template-columns:1fr auto;gap:4rem;align-items:center;border-top:1px solid var(--border)}
.cta-band-h{font-size:clamp(2rem,3.5vw,3rem);color:var(--navy);margin-top:.8rem}
.cta-band-p{font-size:1rem;color:var(--muted);margin-top:.8rem;line-height:1.85}

/* ── DÓNDE OPERAMOS ── */
.coverage{background:var(--sand-lt);padding:5rem 4rem}
.coverage-inner{max-width:1100px;margin:0 auto}
.coverage-head{margin-bottom:3.5rem}
.coverage-head h2{font-family:'Playfair Display',serif;font-style:italic;font-weight:400;font-size:clamp(2.2rem,3.5vw,3rem);color:var(--navy);line-height:1.15;margin-top:.8rem}
.coverage-head p{color:var(--muted);max-width:520px;margin-top:1rem;line-height:1.9;font-size:.95rem}
.coverage-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.cov-card{background:#fff;border:1px solid var(--border);padding:2.5rem;position:relative;overflow:hidden;transition:box-shadow .3s}
.cov-card:hover{box-shadow:0 12px 40px rgba(26,34,54,.1)}
.cov-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--yellow)}
.cov-num{font-family:'Playfair Display',serif;font-style:italic;font-size:5rem;color:rgba(26,34,54,.06);position:absolute;top:1rem;right:1.5rem;line-height:1;font-weight:400;pointer-events:none}
.cov-location{font-size:.65rem;letter-spacing:.28em;text-transform:uppercase;color:var(--blue);font-weight:500;margin-bottom:.8rem;display:flex;align-items:center;gap:.6rem}
.cov-location::before{content:'';display:block;width:18px;height:1px;background:var(--blue);flex-shrink:0}
.cov-name{font-family:'Playfair Display',serif;font-size:2rem;font-weight:400;color:var(--navy);margin-bottom:.3rem}
.cov-zone{font-size:.82rem;color:var(--muted);margin-bottom:1.2rem}
.cov-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}
.cov-tag{font-size:.72rem;background:var(--sand);color:var(--navy);padding:.35rem .8rem;letter-spacing:.05em;border:none;cursor:pointer;font-family:inherit;transition:background .2s,color .2s}
.cov-tag:hover{background:var(--navy);color:#fff}
.coverage-expansion{margin-top:2rem;display:flex;align-items:center;gap:1rem;font-size:.82rem;color:var(--muted)}
.coverage-expansion::before{content:'';display:block;width:32px;height:1px;background:var(--muted);flex-shrink:0}

/* ── HOGAR CONECTADO ── */
.hc-scene{display:flex;height:100vh;min-height:640px;background:#0a1023;overflow:hidden;position:relative}
.hc-viewport{flex:1;position:relative;overflow:hidden;min-width:0}
.hc-room{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .75s ease}
.hc-room.active{opacity:1;pointer-events:all}
.hc-room img{position:absolute;inset:-5%;width:110%;height:110%;object-fit:cover;object-position:center;will-change:transform;transition:transform .22s cubic-bezier(.25,.46,.45,.94)}
.hc-overlay{position:absolute;inset:0;background:linear-gradient(160deg,rgba(10,16,35,.55) 0%,rgba(10,16,35,.1) 60%,transparent 100%);pointer-events:none;z-index:5}
/* nav arrows */
.hc-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:30;background:rgba(10,16,35,.6);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.18);color:#fff;cursor:pointer;display:flex;align-items:center;gap:.5rem;padding:.7rem 1.1rem;transition:background .25s,opacity .25s}
.hc-arrow:hover{background:rgba(10,16,35,.9)}
.hc-arrow-l{left:1.5rem}.hc-arrow-r{right:1.5rem}
.hc-arrow-icon{font-size:1.2rem;line-height:1}
.hc-arrow-label{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;font-family:'DM Sans',sans-serif;font-weight:500;white-space:nowrap}
/* tabs */
.hc-tabs{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:30;display:flex;gap:.4rem;background:rgba(10,16,35,.65);backdrop-filter:blur(14px);padding:.45rem .7rem;border-radius:100px;border:1px solid rgba(255,255,255,.1)}
.hc-tab{background:none;border:none;color:rgba(255,255,255,.45);font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:.35rem .9rem;border-radius:100px;transition:all .25s;font-family:'DM Sans',sans-serif;white-space:nowrap}
.hc-tab.active{background:var(--yellow);color:var(--navy);font-weight:700}
/* right panel */
.hc-panel{width:320px;flex-shrink:0;background:var(--navy);display:flex;flex-direction:column;z-index:20;border-left:1px solid rgba(255,255,255,.07);padding-top:70px}
.hc-panel-top{padding:1rem 1.6rem 1.3rem;border-bottom:1px solid rgba(255,255,255,.07);flex-shrink:0}
.hc-panel-eyebrow{font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:.45rem;font-family:'DM Sans',sans-serif}
.hc-panel-title{font-family:'Playfair Display',serif;font-style:italic;font-weight:400;font-size:1.6rem;color:#fff;line-height:1.1}
.hc-panel-content{display:none;flex-direction:column;flex:1;overflow:hidden}
.hc-panel-content.active{display:flex}
.hc-device-list{flex:1;overflow-y:auto;padding:.9rem 1.6rem;display:flex;flex-direction:column;gap:.5rem}
.hc-device{display:flex;align-items:center;gap:.85rem;padding:.7rem .85rem;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);transition:background .2s}
.hc-device:hover{background:rgba(255,255,255,.09)}
.hc-device-ic{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:rgba(254,213,68,.13);flex-shrink:0}
.hc-device-ic svg{width:17px;height:17px;stroke:var(--yellow);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.hc-device-info{flex:1;min-width:0}
.hc-device-name{font-size:.78rem;font-weight:500;color:#fff;line-height:1.2}
.hc-device-val{font-size:.68rem;color:rgba(255,255,255,.4);margin-top:.12rem}
.hc-device-on{width:7px;height:7px;border-radius:50%;background:#25D366;flex-shrink:0}
.hc-panel-nav{padding:.9rem 1.6rem 1.4rem;border-top:1px solid rgba(255,255,255,.07);display:flex;flex-direction:column;gap:.4rem;flex-shrink:0}
.hc-pnav-btn{background:none;border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.55);padding:.58rem 1rem;font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:all .22s;font-family:'DM Sans',sans-serif}
.hc-pnav-btn:hover{background:rgba(255,255,255,.07);color:#fff;border-color:rgba(255,255,255,.3)}
.hc-pnav-btn.primary{background:var(--yellow);color:var(--navy);border-color:var(--yellow);font-weight:700}
.hc-pnav-btn.primary:hover{background:#ffe382;border-color:#ffe382}
/* ocultar elementos del diseño anterior */
.hc-text,.hc-counter,.hc-hint{display:none}
/* pins — puntos pulsantes sobre la imagen */
.hc-pin{position:absolute;z-index:15;cursor:pointer;transform:translate(-50%,-50%);display:block}
.hc-pin-dot{width:11px;height:11px;border-radius:50%;background:var(--yellow);border:2px solid rgba(255,255,255,.9);animation:pinPulse 2.2s ease-out infinite;transition:transform .18s}
@keyframes pinPulse{0%{box-shadow:0 0 0 0 rgba(254,213,68,.7)}70%{box-shadow:0 0 0 13px rgba(254,213,68,0)}100%{box-shadow:0 0 0 0 rgba(254,213,68,0)}}
.hc-pin:hover .hc-pin-dot{transform:scale(1.8);background:#fff;border-color:var(--yellow);animation:none;box-shadow:0 0 0 8px rgba(254,213,68,.5)}
.hc-pin.hl .hc-pin-dot{transform:scale(2.4);background:var(--yellow);border-color:#fff;border-width:2px;animation:none;box-shadow:0 0 0 7px rgba(254,213,68,.45),0 0 22px rgba(254,213,68,.6)}
/* highlight en panel al hacer hover en pin */
.hc-device.hl{background:rgba(254,213,68,.14)!important;border-color:rgba(254,213,68,.6)!important;border-left:3px solid var(--yellow)!important}
.hc-device.hl .hc-device-name{color:var(--yellow)}
/* device overlays — aparatos reales sobre la foto */
.hc-dev-ov{position:absolute;z-index:10;transform:translate(-50%,-50%);pointer-events:none}
.hc-ov-thermo{width:62px;height:88px;background:rgba(8,10,20,.97);border-radius:7px;border:1.5px solid rgba(255,255,255,.14);box-shadow:0 6px 22px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.07),3px 3px 8px rgba(0,0,0,.5);display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:9px 6px 8px;position:relative}
.hc-ov-thermo::after{content:'';position:absolute;inset:3px;border-radius:5px;background:rgba(254,213,68,.025);pointer-events:none}
.hc-ov-thermo-lbl{font-size:6.5px;letter-spacing:1.2px;color:rgba(255,255,255,.38);text-transform:uppercase;font-weight:600}
.hc-ov-thermo-t{font-size:24px;font-weight:700;color:#fff;line-height:1;letter-spacing:-.5px;display:flex;align-items:flex-start}
.thermo-deg{font-size:10px;font-weight:600;margin-top:3px;margin-left:2px;opacity:.8}
.hc-ov-thermo-sub{font-size:6.5px;color:var(--yellow);font-weight:600;letter-spacing:.6px;opacity:.9}
.hc-ov-thermo-btns{display:flex;gap:6px}
.hc-ov-thermo-btn{width:20px;height:13px;background:rgba(255,255,255,.08);border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:8px;color:rgba(255,255,255,.7);cursor:pointer;border:none;transition:background .15s}
.hc-ov-thermo-btn:hover{background:rgba(254,213,68,.3);color:var(--yellow)}
.hc-dev-ov-interact{pointer-events:auto!important}
.hc-ov-soundbar{width:196px;height:28px;background:rgba(12,15,26,.93);border-radius:6px;border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;padding:0 8px;gap:6px;box-shadow:0 4px 18px rgba(0,0,0,.7);cursor:ew-resize;user-select:none;transition:border-color .2s}
.hc-ov-soundbar:hover{border-color:rgba(254,213,68,.45)}
.hc-ov-soundbar.playing{border-color:rgba(254,213,68,.5)}
.hc-ov-sb-eq{display:flex;align-items:flex-end;gap:1.5px;height:13px;flex-shrink:0}
.hc-ov-sb-eq span{width:2px;border-radius:1px;background:rgba(254,213,68,.3);transform-origin:bottom}
.hc-ov-soundbar.playing .hc-ov-sb-eq span{background:var(--yellow)}
@keyframes eqB{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
.hc-ov-soundbar.playing .hc-ov-sb-eq span:nth-child(1){animation:eqB .65s ease-in-out infinite}
.hc-ov-soundbar.playing .hc-ov-sb-eq span:nth-child(2){animation:eqB .65s .18s ease-in-out infinite}
.hc-ov-soundbar.playing .hc-ov-sb-eq span:nth-child(3){animation:eqB .65s .07s ease-in-out infinite}
.hc-ov-soundbar.playing .hc-ov-sb-eq span:nth-child(4){animation:eqB .65s .25s ease-in-out infinite}
.hc-ov-sb-track{flex:1;height:4px;background:rgba(255,255,255,.1);border-radius:2px;overflow:hidden;cursor:pointer}
.hc-ov-sb-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,rgba(254,213,68,.55),var(--yellow));width:0%;transition:width .07s}
.hc-ov-sb-vol{color:rgba(255,255,255,.6);font-size:7.5px;min-width:20px;text-align:center;flex-shrink:0}
.hc-ov-sb-btn{width:15px;height:15px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:rgba(255,255,255,.8);border-radius:3px;cursor:pointer;font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;transition:background .15s,border-color .15s}
.hc-ov-sb-btn:hover{background:rgba(254,213,68,.25);border-color:rgba(254,213,68,.6);color:var(--yellow)}
.hc-ov-sensor{width:20px;height:20px;border-radius:50%;background:rgba(12,15,26,.88);border:1.5px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(0,0,0,.6)}
.hc-ov-sensor::after{content:'';width:6px;height:6px;border-radius:50%;background:rgba(254,213,68,.85);box-shadow:0 0 6px rgba(254,213,68,.7)}
@media(max-width:960px){
  .hc-scene{flex-direction:column;height:auto}
  .hc-viewport{height:56vw;min-height:280px}
  .hc-panel{width:100%;padding-top:0}
  .hc-device-list{max-height:260px}
}
@media(max-width:600px){
  /* Viewport — permite que las tabs desborden por debajo */
  .hc-viewport{height:90vw;min-height:280px;overflow:visible}
  /* Imágenes — sin zoom parallax en móvil para verlas completas */
  .hc-room img{inset:0;width:100%;height:100%}
  /* Flechas — ocultar en móvil */
  .hc-arrow{display:none!important}
  /* Tabs — debajo de la foto, ancho completo */
  .hc-tabs{position:absolute;top:100%;bottom:auto;left:0;right:0;width:100%;transform:none;border-radius:0;justify-content:center;background:rgba(10,16,35,.97);border-left:none;border-right:none;border-top:1px solid rgba(255,255,255,.1);padding:.45rem .6rem;gap:.2rem;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
  /* Reproductor dormitorio — más a la derecha en móvil */
  #hcRoom3 .hc-dev-ov[style*="bottom:32%"]{left:auto!important;right:2%!important;bottom:18%!important}
  .hc-tabs::-webkit-scrollbar{display:none}
  .hc-tab{font-size:.6rem;padding:.3rem .65rem;white-space:nowrap}
  /* Panel — espacio para la barra de tabs */
  .hc-panel{margin-top:38px}
  /* Panel inferior */
  .hc-panel-top{padding:.8rem 1.2rem}
  .hc-panel-title{font-size:1.25rem}
  .hc-panel-eyebrow{font-size:.55rem}
  .hc-device-list{padding:.7rem 1rem;gap:.4rem;max-height:200px}
  .hc-device{padding:.55rem .7rem;gap:.7rem}
  .hc-device-ic{width:28px;height:28px}
  .hc-device-ic svg{width:14px;height:14px}
  .hc-device-name{font-size:.72rem}
  .hc-device-val{font-size:.62rem}
  .hc-panel-nav{padding:.7rem 1rem 5rem;gap:.35rem}
  .hc-pnav-btn{font-size:.6rem;padding:.5rem .85rem}
  .hc-device-list{max-height:180px}
}
/* features — flip cards */
.hc-features{background:var(--sand-lt);padding:6rem 4rem}
.hc-features-inner{max-width:1100px;margin:0 auto}
.hc-feat-head{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start;margin-bottom:4rem}
.hc-feat-head-r p{color:var(--muted);line-height:1.85;font-size:.95rem}
.hc-feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.hc-feat{perspective:900px;cursor:pointer;height:260px}
.hc-feat-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.4,0,.2,1)}
.hc-feat.flipped .hc-feat-inner{transform:rotateY(180deg)}
.hc-feat-front,.hc-feat-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid var(--border);padding:1.8rem;background:#fff}
.hc-feat-back{transform:rotateY(180deg);background:var(--navy);border-color:var(--navy);display:flex;flex-direction:column;justify-content:center}
.hc-feat:hover .hc-feat-front{border-color:var(--yellow);box-shadow:0 12px 40px rgba(26,34,54,.08)}
.hc-feat.flipped:hover .hc-feat-front{box-shadow:none}
.hc-feat-ic{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--navy);margin-bottom:1.5rem;flex-shrink:0}
.hc-feat-ic svg{width:22px;height:22px;stroke:#fff;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.hc-feat:hover .hc-feat-ic{background:var(--yellow)}
.hc-feat:hover .hc-feat-ic svg{stroke:var(--navy)}
.hc-feat-t{font-size:1rem;font-weight:500;color:var(--navy);margin-bottom:.5rem;font-family:'DM Sans',sans-serif}
.hc-feat-p{font-size:.84rem;color:var(--muted);line-height:1.75;font-family:'DM Sans',sans-serif}
.hc-feat-back-t{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--yellow);font-weight:600;margin-bottom:1.4rem}
.hc-feat-back-list{list-style:none;display:flex;flex-direction:column;gap:.8rem}
.hc-feat-back-list li{display:flex;align-items:flex-start;gap:.7rem;font-size:.88rem;color:rgba(255,255,255,.75);line-height:1.5}
.hc-feat-back-list li::before{content:'';display:block;width:5px;height:5px;border-radius:50%;background:var(--yellow);margin-top:.45rem;flex-shrink:0}
.hc-feat-front{position:relative}.hc-feat-hint{position:absolute;bottom:1.5rem;right:1.4rem;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(26,34,54,.45);font-weight:600;transition:color .2s;line-height:1}
.hc-feat:hover .hc-feat-hint{color:var(--navy)}
/* timeline — light */
.hc-timeline{background:#fff;padding:6rem 4rem;border-top:1px solid var(--border)}
.hc-timeline-inner{max-width:1100px;margin:0 auto}
.hc-tl-head{text-align:center;margin-bottom:4rem}
.hc-tl-wrap{position:relative;display:flex;gap:0}
.hc-tl-wrap::before{content:'';position:absolute;top:27px;left:8%;right:8%;height:1px;background:linear-gradient(to right,transparent,var(--border),var(--yellow),var(--border),transparent)}
.hc-tl-item{flex:1;text-align:center;padding:0 .5rem}
.hc-tl-dot{width:54px;height:54px;border-radius:50%;border:2px solid var(--yellow);display:flex;align-items:center;justify-content:center;margin:0 auto 1.2rem;font-size:.68rem;color:var(--navy);font-weight:700;letter-spacing:.04em;background:#fff;position:relative;z-index:1;font-family:'DM Sans',sans-serif}
.hc-tl-desc{font-size:.82rem;color:var(--muted);line-height:1.65;font-family:'DM Sans',sans-serif}
/* compare — light */
.hc-compare{background:var(--sand-lt);padding:6rem 4rem;border-top:1px solid var(--border)}
.hc-compare-inner{max-width:900px;margin:0 auto}
.hc-cmp-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:3rem}
.hc-cmp{background:#fff;border:1px solid var(--border);padding:2.5rem}
.hc-cmp.rec{border-color:var(--yellow);border-width:2px}
.hc-cmp-badge{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;background:var(--yellow);color:var(--navy);padding:.25rem .8rem;font-weight:700;font-family:'DM Sans',sans-serif;display:inline-block;margin-bottom:1.2rem}
.hc-cmp-t{font-size:1.15rem;font-weight:600;color:var(--navy);margin-bottom:.3rem;font-family:'DM Sans',sans-serif}
.hc-cmp-sub{font-size:.82rem;color:var(--muted);margin-bottom:1.6rem;font-family:'DM Sans',sans-serif}
.hc-cmp-list{list-style:none;display:flex;flex-direction:column;gap:.55rem}
.hc-cmp-list li{font-size:.84rem;color:var(--navy);font-family:'DM Sans',sans-serif;padding-left:1.3rem;position:relative;line-height:1.5}
.hc-cmp-list li::before{content:'✓';position:absolute;left:0;color:var(--yellow);font-weight:700}
/* eyebrow/heading shared — dark bg or light */
.hc-eyebrow{font-size:1rem;letter-spacing:.2em;text-transform:uppercase;color:var(--blue);display:flex;align-items:center;gap:.7rem;margin-bottom:1rem}
.hc-eyebrow::before{content:'';display:block;width:24px;height:1px;background:var(--blue);flex-shrink:0}
.hc-heading{font-family:'Playfair Display',serif;font-style:italic;font-weight:400;font-size:clamp(2rem,3.5vw,3rem);color:var(--navy);line-height:1.1;margin-bottom:1rem}
@media(max-width:900px){.hc-feat-grid{grid-template-columns:1fr 1fr}.hc-feat-head{grid-template-columns:1fr}.hc-tl-wrap{flex-direction:column;gap:2rem}.hc-tl-wrap::before{display:none}.hc-cmp-grid{grid-template-columns:1fr}.hc-features,.hc-timeline,.hc-compare{padding:4rem 1.5rem}.hc-text{padding:0 2rem 4rem}}
@media(max-width:600px){.hc-feat-grid{grid-template-columns:1fr}}
/* ── ¿POR QUÉ ELEGIRNOS? ── */
.hc-why{background:var(--tod-bg,linear-gradient(180deg,#0a3a6e 0%,#0e5ca0 40%,#1a7bc4 75%,#4aaad8 100%));padding:2.5rem 4rem;position:relative;overflow:hidden;transition:background 1.4s ease}
.hc-why::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at var(--sp-x,50%) var(--sp-y,50%),rgba(255,255,255,.12) 0%,transparent 40%);opacity:0;transition:opacity .5s;pointer-events:none;z-index:2}
.hc-why[data-sp]::before{opacity:1}
.hc-why-inner{max-width:1100px;margin:0 auto;position:relative;z-index:2}
.hc-why-head{margin-bottom:1.5rem}
.hc-why-head .hc-eyebrow{color:rgba(255,255,255,.8)}
.hc-why-head .hc-eyebrow::before{background:rgba(255,255,255,.8)}
.hc-why-head .hc-heading{color:#fff}
.why-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
/* TOD selector */
.why-tod{position:absolute;top:1.4rem;right:1.8rem;z-index:4;background:rgba(0,0,0,.22);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:.5rem .6rem;display:flex;flex-direction:column;gap:.15rem}
.why-tod-btn{display:flex;align-items:center;gap:.55rem;padding:.3rem .65rem;border:none;border-radius:8px;background:transparent;color:rgba(255,255,255,.6);font-family:inherit;font-size:.72rem;font-weight:400;cursor:pointer;transition:background .25s,color .25s;white-space:nowrap;letter-spacing:.01em}
.why-tod-btn:hover{background:rgba(255,255,255,.1);color:#fff}
.why-tod-btn.active{background:rgba(255,255,255,.18);color:#fff;font-weight:600}
.why-tod-icon{width:14px;height:14px;border-radius:50%;flex-shrink:0}
@media(max-width:560px){.why-tod{top:.8rem;right:.8rem;padding:.35rem .4rem}.why-tod-btn{font-size:.65rem;padding:.25rem .4rem}}
/* ── BENTO GRID ── */
.why-bento{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.why-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:1.2rem 1.5rem;position:relative;overflow:hidden;transition:border-color .4s,box-shadow .4s;will-change:transform;cursor:default}
.why-card::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(13,158,138,.16) 0%,transparent 55%);opacity:0;transition:opacity .4s;pointer-events:none;z-index:0}
.why-card:hover{border-color:rgba(13,158,138,.35);box-shadow:0 8px 40px rgba(13,158,138,.1)}
.why-card:hover::after{opacity:1}
.why-accent{position:absolute;top:0;left:0;width:2px;height:0;background:#0d9e8a;transition:height .6s cubic-bezier(.16,1,.3,1);z-index:2}
.why-card.in .why-accent,.why-card:hover .why-accent{height:100%}
.why-card.c1{grid-column:span 2}
.why-card.c4{grid-column:span 2}
.why-card.c5{grid-column:span 3;display:flex;align-items:center;gap:2.5rem}
.why-num{font-family:'Playfair Display',serif;font-size:2.6rem;font-weight:600;color:#fff;line-height:1;margin-bottom:.15rem;letter-spacing:-.02em;position:relative;z-index:1;text-shadow:0 2px 12px rgba(0,0,0,.25)}
.why-ns{font-size:.78rem;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.14em;margin-bottom:.6rem;padding-bottom:.6rem;position:relative;z-index:1}
.why-ct{font-size:1.05rem;font-weight:700;color:#fff;margin-bottom:.5rem;position:relative;z-index:1}
.why-cp{font-size:.9rem;color:rgba(255,255,255,.82);line-height:1.7;margin:0;position:relative;z-index:1}
.why-c5-l{flex-shrink:0;min-width:130px}
.why-c5-div{width:1px;height:70px;background:rgba(255,255,255,.1);flex-shrink:0}
.why-c5-r{flex:1;position:relative;z-index:1}
@media(max-width:900px){
  .why-bento{grid-template-columns:1fr 1fr}
  .why-card.c1,.why-card.c4{grid-column:span 2}
  .why-card.c5{grid-column:span 2;flex-direction:column;align-items:flex-start;gap:1.2rem}
  .why-c5-div{display:none}
}
@media(max-width:560px){
  .why-bento{grid-template-columns:1fr}
  .why-card.c1,.why-card.c4,.why-card.c5{grid-column:span 1}
  .hc-why{padding:4rem 1.5rem}
  .why-num{font-size:2.2rem}
}
/* ── PROCESO DE TRABAJO ── */
.hc-proceso{background:#f7f8fa;padding:6rem 4rem}
.hc-proceso-inner{max-width:1100px;margin:0 auto}
.hc-proceso{background:var(--sand-lt);background-image:linear-gradient(rgba(26,34,54,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(26,34,54,.05) 1px,transparent 1px);background-size:44px 44px}
.hc-proc-flow{margin-top:3.5rem;display:flex;flex-direction:column;gap:0}
.hc-proc-row{display:grid;grid-template-columns:1fr 48px 1fr 48px 1fr;align-items:center}
.hc-proc-card{background:rgba(255,255,255,.85);border:1.5px dashed rgba(26,34,54,.22);padding:1.8rem 1.6rem;transition:border-color .3s,border-style .3s,transform .25s,box-shadow .25s;backdrop-filter:blur(4px)}
.hc-proc-card:hover{border-color:#0d9e8a;border-style:solid;transform:translateY(-4px);box-shadow:0 12px 36px rgba(0,0,0,.1)}
.hc-proc-lbl{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:#0d9e8a;margin-bottom:.5rem;font-family:'DM Sans',sans-serif;font-weight:600}
.hc-proc-t{font-size:1.35rem;font-weight:600;font-family:'Playfair Display',serif;font-style:italic;color:var(--navy);margin-bottom:.6rem}
.hc-proc-p{font-size:.88rem;color:#4a4a6a;line-height:1.65;margin:0}
.hc-proc-conn{display:flex;align-items:center;justify-content:center}
.hc-proc-conn svg{width:40px;height:16px;overflow:visible}
.hc-proc-mid{display:flex;justify-content:flex-end;padding-right:calc(33.33% + 24px);margin:0}
.hc-proc-mid svg{width:60px;height:52px;overflow:visible}
@media(max-width:820px){
  .hc-proc-row{grid-template-columns:1fr}
  .hc-proc-conn{display:none}
  .hc-proc-mid{display:none}
  .hc-proc-flow{gap:1rem}
  /* Reordenar fila 2 en móvil: 6←5←4 pasa a ser 4,5,6 */
  .hc-s4{order:1}
  .hc-s5{order:2}
  .hc-s6{order:3}
  /* Ocultar conector vertical entre filas en móvil */
  .hc-proc-flow > div[style*="height:44px"]{display:none}
}
/* ── PRÓXIMOS PASOS ── */
.hc-pasos{background:var(--navy2);padding:6rem 4rem}
.hc-pasos-inner{max-width:1100px;margin:0 auto}
.hc-pasos-head .hc-eyebrow{color:#0d9e8a;justify-content:center}
.hc-pasos-head .hc-eyebrow::before{background:#0d9e8a}
.hc-pasos-head .hc-heading{color:#fff;text-align:center}
.hc-pasos-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:3rem}
.hc-paso-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);padding:2.5rem 1.5rem;text-align:center;transition:background .3s,border-color .3s,transform .25s}
.hc-paso-card:hover{background:rgba(13,158,138,.12);border-color:#0d9e8a;transform:translateY(-5px)}
.hc-paso-ic{width:64px;height:64px;border-radius:50%;background:#0d9e8a;margin:0 auto 1.2rem;display:flex;align-items:center;justify-content:center}
.hc-paso-ic svg{width:28px;height:28px;stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hc-paso-n{font-size:2.8rem;font-weight:800;color:var(--yellow);line-height:1;margin-bottom:.5rem;font-family:'Playfair Display',serif}
.hc-paso-t{font-size:.95rem;font-weight:700;color:#fff;margin-bottom:.5rem}
.hc-paso-p{font-size:.82rem;color:rgba(255,255,255,.45);line-height:1.65}
@media(max-width:900px){.hc-why-grid{grid-template-columns:1fr}.hc-proceso-grid{grid-template-columns:1fr 1fr}.hc-pasos-grid{grid-template-columns:repeat(2,1fr)}.hc-why,.hc-proceso,.hc-pasos{padding:4rem 1.5rem}}
@media(max-width:540px){.hc-proceso-grid{grid-template-columns:1fr}.hc-pasos-grid{grid-template-columns:1fr}}

/* ── FOOTER ── */
.footer{background:var(--navy);padding:4rem 4rem 2.5rem;border-top:3px solid var(--yellow)}
.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:2rem}
.ft-logo-btn{font-family:'Playfair Display',serif;font-style:italic;font-size:1.9rem;color:#fff;background:none;border:none;cursor:pointer;padding:0;display:block;margin-bottom:.8rem}
.ft-desc{font-size:.86rem;color:rgba(255,255,255,.6);line-height:1.85;max-width:320px;margin-top:.5rem}
.ft-col-t{font-size:.82rem;letter-spacing:.25em;text-transform:uppercase;color:var(--yellow);margin-bottom:1.2rem;font-weight:600;display:block}
.ft-links{list-style:none;display:flex;flex-direction:column;gap:.65rem}
.ft-links button,.ft-links a{background:none;border:none;color:rgba(255,255,255,.6);cursor:pointer;font-size:.86rem;text-align:left;transition:color .25s;padding:0;text-decoration:none;font-family:'DM Sans',sans-serif;font-weight:300}
.ft-links button:hover,.ft-links a:hover{color:#fff}
.footer-bot{display:flex;align-items:center;justify-content:space-between}
.ft-copy{font-size:.78rem;color:rgba(255,255,255,.55)}
.ft-legal{display:flex;gap:1.5rem}
.ft-legal button{background:none;border:none;color:rgba(255,255,255,.55);font-size:.78rem;cursor:pointer;padding:0;transition:color .2s;text-decoration:underline;text-underline-offset:3px;font-family:'DM Sans',sans-serif}
.ft-legal button:hover{color:#fff}

/* ════════════════════════════════
   SERVICE PAGES
════════════════════════════════ */
.svc-hero{position:relative;height:100vh;min-height:620px;overflow:hidden}
.svc-hero-vid{position:absolute;inset:0;z-index:0}
.svc-hero-vid video{width:100%;height:100%;object-fit:cover;display:block}
.svc-hero-bg{position:absolute;inset:0;z-index:0;background:var(--navy)}
.svc-hero-bg::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 70% 35%,rgba(92,124,217,.18) 0%,transparent 65%)}
.svc-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(to bottom,rgba(10,16,35,.5) 0%,rgba(10,16,35,.05) 45%,rgba(10,16,35,.88) 100%)}
.svc-hero-c{position:absolute;top:clamp(130px,18vh,310px);left:0;right:0;z-index:2;padding:0 4.5rem;max-width:1000px}
.svc-bc{position:absolute;top:82px;left:4.5rem;right:4.5rem;z-index:5;display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:rgba(255,255,255,.45)}
.svc-bc button{background:none;border:none;color:rgba(255,255,255,.45);cursor:pointer;font-size:.78rem;transition:color .2s;padding:0;font-family:'DM Sans',sans-serif}
.svc-bc button:hover{color:#fff}
.svc-bc-sep{opacity:.35}
.svc-bg-n{position:absolute;top:1rem;right:2rem;font-family:'Playfair Display',serif;font-style:italic;font-size:20rem;color:rgba(255,255,255,.025);line-height:1;user-select:none;pointer-events:none;z-index:1}
.svc-tag{font-size:1rem;letter-spacing:.22em;text-transform:uppercase;color:var(--yellow);font-weight:600;margin-bottom:1.5rem;display:flex;align-items:center;gap:.8rem}
.svc-tag::before{content:'';display:block;width:24px;height:1px;background:var(--yellow)}
.svc-h1{font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(4rem,6.5vw,6.5rem);font-weight:400;color:#fff;line-height:.95;letter-spacing:-.025em}
.svc-h1 strong{font-style:normal;font-weight:600}
.svc-hsub{font-size:1.15rem;color:rgba(255,255,255,.85);margin-top:1.2rem;line-height:1.8;max-width:500px;text-shadow:0 1px 8px rgba(0,0,0,.6)}
.svc-hbtn{display:inline-flex;align-items:center;gap:.7rem;margin-top:2.8rem;background:var(--yellow);color:var(--navy);border:none;padding:1rem 2.6rem;font-size:.76rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:background .3s}
.svc-hbtn:hover{background:#ffe382}

/* svc sections */
.svc-intro{background:var(--sand);padding:6.5rem 4rem;display:grid;grid-template-columns:1fr 1fr;gap:7rem;align-items:start}
.svc-intro h2{font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(2rem,3.2vw,2.8rem);font-weight:400;color:var(--navy);line-height:1.2}
.svc-intro p{margin-top:1.2rem;font-size:1.02rem;color:var(--muted);line-height:1.95}
.svc-bullets{background:#fff;padding:6.5rem 4rem;border-top:1px solid var(--border)}
.bull-eyebrow{margin-bottom:3.5rem}
/* ── ÚNETE FILAS ── */
.unete-rows-wrap{position:relative;overflow:hidden;background:linear-gradient(180deg,#0a3a6e 0%,#0e5ca0 40%,#1a7bc4 75%,#4aaad8 100%);padding:6rem 4rem;transition:background 1.6s ease}
.unete-rows-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.unete-rows-inner{max-width:1000px;margin:0 auto;position:relative;z-index:2}
.unete-rows-head{margin-bottom:3.5rem}
.unete-rows-title{font-family:var(--serif);font-size:2.6rem;font-weight:400;color:#fff;margin:.8rem 0 0;line-height:1.2}
.unete-row{display:grid;grid-template-columns:280px 1fr;align-items:center;gap:3rem;padding:2rem 0;border-top:1px solid rgba(255,255,255,.14);transition:border-color .3s}
.unete-row:last-child{border-bottom:1px solid rgba(255,255,255,.14)}
.unete-row:hover{border-color:rgba(255,213,0,.5)}
.unete-row-left{display:flex;align-items:baseline;gap:1.2rem}
.unete-row-num{font-size:3rem;font-weight:800;color:rgba(255,255,255,.08);line-height:1;flex-shrink:0}
.unete-row-title{font-size:1.08rem;font-weight:700;color:#fff;line-height:1.3}
.unete-row-desc{font-size:.88rem;color:rgba(255,255,255,.68);line-height:1.8}
@media(max-width:720px){.unete-rows-wrap{padding:4rem 1.5rem}.unete-row{grid-template-columns:1fr;gap:1rem}.unete-row-num{font-size:2rem}}
/* ── END ÚNETE FILAS ── */
.bull-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border)}
.bull-card{background:#fff;padding:2.8rem 2.4rem;position:relative;overflow:hidden;transition:background .3s}
.bull-card::after{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--yellow);transform:scaleX(0);transform-origin:left;transition:transform .4s}
.bull-card:hover{background:var(--sand-lt)}
.bull-card:hover::after{transform:scaleX(1)}
.bull-n{font-family:'Playfair Display',serif;font-style:italic;font-size:3rem;color:rgba(26,34,54,.07);line-height:1;margin-bottom:1rem;display:block}
.bull-name{font-size:1.05rem;font-weight:600;color:var(--navy);margin-bottom:.65rem}
.bull-desc{font-size:.97rem;color:var(--muted);line-height:1.85}
.svc-faq{background:var(--sand-lt);padding:6.5rem 4rem;border-top:1px solid var(--border)}
.faq-wrap{display:grid;grid-template-columns:1fr 1fr;gap:7rem;align-items:start}
.faq-list{margin-top:0}
.faq-item{border-bottom:1px solid var(--border)}
.faq-item:first-child{border-top:1px solid var(--border)}
.faq-q{display:flex;align-items:center;justify-content:space-between;padding:1.4rem 0;cursor:pointer;gap:1rem;background:none;border:none;width:100%;text-align:left}
.faq-qt{font-size:1.02rem;font-weight:500;color:var(--navy);font-family:'DM Sans',sans-serif;line-height:1.4}
.faq-tog{width:30px;height:30px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.2rem;color:var(--navy);transition:transform .3s,background .3s,color .3s}
.faq-item.open .faq-tog{transform:rotate(45deg);background:var(--navy);color:#fff;border-color:var(--navy)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease}
.faq-item.open .faq-a{max-height:250px}
.faq-ai{padding-bottom:1.4rem;font-size:.98rem;color:var(--muted);line-height:1.9}
.svc-cta{background:var(--navy);padding:6rem 4rem;display:grid;grid-template-columns:1fr auto;gap:4rem;align-items:center;border-top:3px solid var(--yellow)}
.svc-cta-h{font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(2rem,3.2vw,2.8rem);font-weight:400;color:#fff;line-height:1.2}
.svc-cta-p{font-size:.98rem;color:rgba(255,255,255,.5);margin-top:.8rem;line-height:1.8}
.svc-footer{background:var(--navy);padding:2rem 4rem;display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(255,255,255,.07)}
.svc-footer-links{display:flex;gap:2rem;flex-wrap:wrap}
.svc-footer-links button{background:none;border:none;color:rgba(255,255,255,.35);cursor:pointer;font-size:.82rem;transition:color .25s;letter-spacing:.08em;padding:0}
.svc-footer-links button:hover{color:#fff}

/* ── PRESUPUESTO PAGE ── */
#page-presupuesto,#page-reclamaciones{background:var(--navy)}
.ppto-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
.ppto-left{padding:8rem 5rem;display:flex;flex-direction:column;justify-content:center;border-right:1px solid rgba(255,255,255,.07)}
.ppto-back{background:none;border:none;color:rgba(255,255,255,.4);font-size:.78rem;cursor:pointer;padding:0;margin-bottom:3rem;display:flex;align-items:center;gap:.5rem;transition:color .2s;letter-spacing:.08em}
.ppto-back:hover{color:#fff}
.ppto-label{font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;color:var(--yellow);margin-bottom:1.4rem;display:block;font-weight:500}
.ppto-title{font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(3rem,6vw,5.5rem);color:#fff;font-weight:400;line-height:.92;margin-bottom:2rem}
.ppto-title em{font-style:normal;color:var(--yellow)}
.ppto-sub{font-size:1rem;color:rgba(255,255,255,.45);line-height:1.85;margin-bottom:2.5rem;max-width:400px}
.ppto-sub--intro{color:rgba(255,255,255,.65);font-size:1.05rem;margin-bottom:1.2rem;border-left:2px solid var(--yellow);padding-left:1rem}
.ppto-info{display:flex;flex-direction:column;gap:.8rem;margin-bottom:2.5rem}
.ppto-row{display:flex;align-items:center;gap:.8rem;font-size:1.05rem;color:rgba(255,255,255,.75)}
.ppto-row a{color:rgba(255,255,255,.75);text-decoration:none;transition:color .2s}
.ppto-row a:hover{color:#fff}
.ppto-ic{color:var(--yellow);width:1.2rem;font-size:1rem}
.ppto-garantias{display:flex;flex-direction:column;gap:.7rem}
.ppto-g{font-size:1rem;color:rgba(255,255,255,.72);display:flex;align-items:center;gap:.55rem}
.ppto-g::before{content:'✓';color:var(--yellow);font-weight:600}
.ppto-right{padding:8rem 5rem;background:rgba(255,255,255,.025);display:flex;align-items:center}
.ppto-form{width:100%}
.ppto-form-t{font-family:'Playfair Display',serif;font-style:italic;font-size:1.5rem;color:#fff;margin-bottom:2.5rem;font-weight:400}
.pf-row{display:grid;grid-template-columns:1fr 1fr;gap:0 2rem}
.pf{position:relative;margin-bottom:2rem}
.pf input,.pf select,.pf textarea{width:100%;background:none;border:none;outline:none;font-family:'DM Sans',sans-serif;font-size:.95rem;color:#fff;padding:.7rem 0;resize:none;appearance:none;-webkit-appearance:none;border-bottom:1px solid rgba(255,255,255,.18);transition:border-color .3s}
.pf input:focus,.pf select:focus,.pf textarea:focus{border-bottom-color:var(--yellow)}
.pf select option{color:var(--navy);background:#fff}
.pf ::placeholder{color:rgba(255,255,255,.28)}
.pf-consent{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1.8rem}
.pf-consent input{width:15px;height:15px;min-width:15px;margin-top:3px;accent-color:var(--yellow);cursor:pointer}
.pf-consent span{font-size:.82rem;color:rgba(255,255,255,.38);line-height:1.6}
.pf-consent span button{background:none;border:none;color:rgba(255,255,255,.65);font-size:.82rem;cursor:pointer;text-decoration:underline;padding:0;transition:color .2s;font-family:'DM Sans',sans-serif}
.pf-submit{width:100%;background:var(--yellow);border:none;color:var(--navy);padding:1.1rem;font-size:.8rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:background .25s,transform .2s}
.pf-submit:hover{background:#ffe066;transform:translateY(-2px)}
@media(max-width:900px){
  .ppto-wrap{grid-template-columns:1fr;min-height:auto}
  .ppto-left{padding:5rem 1.5rem 2.5rem}
  .ppto-right{display:block;padding:0 1.5rem 4rem}
  .ppto-title{font-size:clamp(2.2rem,8vw,3rem)}
  .ppto-garantias{grid-template-columns:1fr 1fr}
}

/* ── RECLAMACIONES ── */
.rc-legal-note{margin-top:2rem;padding:1.25rem 1.5rem;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:rgba(255,255,255,.04)}
.rc-legal-note p{font-size:.8rem;color:rgba(255,255,255,.5);line-height:1.65;margin:0}
.rc-legal-note strong{color:rgba(255,255,255,.75)}
/* Categorías */
.rc-cats{display:flex;flex-direction:column;gap:.75rem;margin-top:1.25rem}
.rc-cat{display:flex;align-items:center;gap:1.1rem;background:rgba(255,255,255,.04);border:1.5px solid rgba(255,255,255,.1);border-radius:14px;padding:1.1rem 1.25rem;cursor:pointer;text-align:left;transition:border-color .2s,background .2s;width:100%}
.rc-cat:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22)}
.rc-cat.rc-active{border-color:var(--yellow);background:rgba(245,197,24,.07)}
.rc-cat-icon{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;font-style:normal}
.rc-icon-red{background:rgba(239,68,68,.15);color:#f87171}
.rc-icon-amber{background:rgba(245,158,11,.15);color:#fbbf24}
.rc-icon-green{background:rgba(16,185,129,.15);color:#34d399}
.rc-cat-body{display:flex;flex-direction:column;gap:.2rem}
.rc-cat-body strong{color:#fff;font-size:.95rem;font-weight:600}
.rc-cat-body span{color:rgba(255,255,255,.5);font-size:.8rem;line-height:1.4}
/* Tipo badge */
.rc-tipo-badge{display:flex;align-items:center;justify-content:space-between;background:rgba(245,197,24,.1);border:1px solid rgba(245,197,24,.3);border-radius:10px;padding:.75rem 1.1rem;margin-bottom:1.5rem}
#rcTipoLabel{color:var(--yellow);font-weight:700;font-size:.95rem}
.rc-tipo-change{background:none;border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.5);font-size:.78rem;padding:.3rem .75rem;border-radius:6px;cursor:pointer;transition:all .2s}
.rc-tipo-change:hover{border-color:rgba(255,255,255,.4);color:#fff}
/* Success */
.rc-success-wrap{display:flex;flex-direction:column;align-items:center;text-align:center;padding:3rem 2rem;gap:1.25rem}
.rc-success-check{width:72px;height:72px;border-radius:50%;background:rgba(16,185,129,.15);border:2px solid rgba(16,185,129,.4);display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:#34d399}
.rc-success-h{color:#fff;font-family:'Playfair Display',serif;font-size:1.8rem;margin:0}
.rc-success-sub{color:rgba(255,255,255,.55);font-size:.9rem;margin:0}
.rc-ref-box{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:1.5rem 2.5rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%}
.rc-ref-label{color:rgba(255,255,255,.45);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
.rc-ref-num{color:var(--yellow);font-size:1.8rem;font-weight:700;letter-spacing:.05em;font-family:'DM Sans',sans-serif}
.rc-success-note{color:rgba(255,255,255,.5);font-size:.83rem;line-height:1.6;margin:0;max-width:380px}
.rc-success-note strong{color:rgba(255,255,255,.8)}
.rc-success-back{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);color:#fff;padding:.75rem 2rem;border-radius:50px;cursor:pointer;font-size:.9rem;transition:all .2s}
.rc-success-back:hover{background:rgba(255,255,255,.13)}
@media(max-width:700px){
  .rc-ref-num{font-size:1.4rem}
  .rc-success-wrap{padding:2rem 1rem}
}

/* ── MODALES LEGALES ── */
.lmodal{display:none;position:fixed;inset:0;z-index:9990;background:rgba(10,14,30,.94);backdrop-filter:blur(8px);overflow-y:auto;padding:4rem 2rem}
.lmodal.open{display:block}
.lbox{max-width:760px;margin:0 auto;background:#fff;padding:4rem;position:relative}
.lbox-close{position:absolute;top:1.5rem;right:1.5rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:#aaa;line-height:1}
.lbox-close:hover{color:var(--navy)}
.lbox h1{font-family:'Playfair Display',serif;font-style:italic;font-size:2rem;color:var(--navy);margin-bottom:2rem;font-weight:400}
.lbox h2{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--navy);font-weight:700;margin:2rem 0 .7rem}
.lbox p,.lbox li{font-size:.92rem;color:#555;line-height:1.85;margin-bottom:.6rem}
.lbox ul{padding-left:1.2rem;margin-bottom:.8rem}

/* ── RESPONSIVE ── */
@media(max-width:1100px){
  #nav{padding:0 1.5rem}
  .n-links{display:none}
  .hero-content{padding:0 2rem 3rem;flex-direction:column;align-items:flex-start;gap:1.5rem}
  .hero-side{display:none}
  .hero-h1{font-size:clamp(3rem,10vw,5.5rem)}
  .editorial{grid-template-columns:1fr}
  .ed-vid{min-height:50vw}
  .editorial.flip{direction:ltr}
  .stats{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(2){border-right:none}
  .proceso-head{grid-template-columns:1fr;gap:2rem}
  .steps-grid{grid-template-columns:1fr 1fr}
  .testi-grid{grid-template-columns:1fr 1fr}
  .svc-strip{flex-wrap:wrap}
  .svc-strip-item{flex:1 0 40%;border-bottom:1px solid rgba(255,255,255,.07)}
  .svc-intro{grid-template-columns:1fr;gap:3rem}
  .faq-wrap{grid-template-columns:1fr;gap:0}
  .svc-cta{grid-template-columns:1fr;text-align:center}
  .svc-cta .btn-yellow{width:100%;justify-content:center}
  .cta-band{grid-template-columns:1fr;gap:2rem}
  .coverage-grid{grid-template-columns:1fr}
  .footer-top{grid-template-columns:1fr 1fr}
  .svc-footer{flex-direction:column;gap:1rem;padding:2rem;text-align:center}
  .svc-footer-links{justify-content:center;flex-wrap:wrap}
  .svc-hero-c{padding:0 2rem}
  .svc-bc{top:82px;left:2rem;right:2rem}
  .svc-bg-n{display:none}
  .ed-body{padding:4rem 2.5rem}
  .proceso,.testi,.cta-band,.footer{padding-left:2rem;padding-right:2rem}
  .svc-bullets,.svc-faq,.svc-cta,.svc-intro{padding-left:2rem;padding-right:2rem}
  .coverage,.coverage-inner{padding-left:2rem;padding-right:2rem}
}
@media(max-width:700px){
  /* Nav */
  #nav{height:60px}
  .svc-bc{top:68px}
  .n-logo{font-size:1.6rem}
  .n-cta{display:none}
  /* Hero */
  .hero{height:calc(100svh - 4rem);min-height:520px}
  .hero-content{padding:0 1.5rem 3rem}
  .hero-tag{font-size:.78rem;letter-spacing:.18em;margin-bottom:1rem}
  .hero-h1{font-size:clamp(2.6rem,12vw,4.5rem)}
  .hero-sub{font-size:1rem;margin-top:.9rem;line-height:1.65}
  .hero-btns{flex-direction:column;align-items:stretch;gap:.8rem;width:100%;margin-top:1.2rem}
  .unete-quote-box{left:1.2rem!important;right:1rem;max-width:100%!important}
  .hero-sub{margin-bottom:.6rem}
  .hero-btns .btn-yellow,.hero-btns .btn-ghost{width:100%;justify-content:center;text-align:center}
  /* Service strip */
  .svc-strip{flex-direction:column}
  .svc-strip-item{border-right:none;padding:1.2rem 1.5rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.8rem}
  .svc-strip-item .ss-n{margin-bottom:0;flex-shrink:0;width:2rem}
  .svc-strip-item .ss-name{flex:1;font-size:1.05rem}
  .svc-strip-item .ss-arr{margin-top:0;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.5);flex-shrink:0;border:1px solid rgba(255,255,255,.2);padding:.4rem .85rem;white-space:nowrap}
  .svc-strip-item .ss-arr::before{content:'Ver más '}
  .svc-strip-item:hover .ss-arr{color:var(--yellow);border-color:rgba(254,213,68,.5)}
  /* Stats */
  .stats{grid-template-columns:1fr 1fr;gap:0}
  /* Process steps */
  .steps-grid{grid-template-columns:1fr}
  .paso{padding:1.5rem}
  /* Testimonials */
  .testi-grid{grid-template-columns:1fr}
  /* CTA band */
  .cta-band{padding:4rem 1.5rem}
  .cta-band-h{font-size:clamp(2rem,8vw,2.8rem)}
  .btn-yellow,.btn-ghost{font-size:.72rem;padding:.9rem 1.8rem}
  /* Editorial */
  .ed-body{padding:3rem 1.5rem}
  .ed-h2{font-size:clamp(1.8rem,7vw,2.4rem)}
  /* Bull grid */
  .bull-grid{grid-template-columns:1fr}
  /* Footer */
  .footer-top{grid-template-columns:1fr}
  .footer-bot{flex-direction:column;gap:1rem;text-align:center}
  .ft-legal{justify-content:center}
  /* Service pages */
  .svc-hero{height:100svh;min-height:500px;display:flex;align-items:center}
  .svc-hero-c{position:static;padding:0 1.5rem;max-width:100%;margin-top:2rem}
  .svc-h1{font-size:clamp(2.4rem,10vw,3.5rem)}
  .svc-tag{font-size:.8rem;letter-spacing:.16em;margin-bottom:1rem}
  .svc-hsub{font-size:1rem;margin-top:.9rem}
  .svc-bullets,.svc-faq,.svc-cta,.svc-intro{padding-left:1.5rem;padding-right:1.5rem}
  .svc-intro,.svc-bullets,.svc-faq{padding-top:3.5rem;padding-bottom:3.5rem}
  .svc-intro h2{font-size:clamp(1.6rem,7vw,2.2rem)}
  .svc-cta{padding:3rem 1.5rem}
  .svc-cta-h{font-size:clamp(1.8rem,7vw,2.4rem)}
  /* Nosotros blockquote */
  .nos-quote-sec{padding:3.5rem 1.5rem!important}
  .nos-quote-sec blockquote{font-size:clamp(1.3rem,6vw,2rem)!important}
  /* Coverage */
  .coverage-inner{padding:4rem 1.5rem}
  /* Formulario presupuesto */
  .pf-row{grid-template-columns:1fr}
  .ppto-right{padding:2rem 1.5rem 4rem}
  /* Modales legales */
  .lbox{padding:3rem 1.5rem}
  .lbox h1{font-size:1.4rem}
  /* WhatsApp — sube para no tapar cookie bar, oculta tooltip en móvil */
  #waWrap{bottom:4.5rem;right:1.2rem}
  #waTip{display:none!important}
  /* Únete — formulario en 1 columna */
  #uneteForm > div[style*="grid-template-columns:1fr 1fr"]{display:flex!important;flex-direction:column!important;gap:1rem!important}
  /* Únete — filas */
  .unete-rows-wrap{padding:3.5rem 1.5rem}
  .unete-rows-title{font-size:2rem}
  .unete-row{grid-template-columns:1fr;gap:.8rem;padding:1.5rem 0}
  .unete-row-num{font-size:2rem}
  /* HogarConectado why */
  .hc-why{padding:4rem 1.5rem}
  .why-bento{grid-template-columns:1fr!important}
  .why-card.c1,.why-card.c4,.why-card.c5{grid-column:span 1!important}
  .why-tod{position:static;margin-bottom:1.5rem;flex-direction:row;flex-wrap:wrap;background:rgba(0,0,0,.3)}
  /* Presupuesto — 1 col */
  .ppto-wrap{grid-template-columns:1fr}
  .ppto-garantias{display:flex;flex-direction:column}
  /* Svc hero text más pequeño */
  .svc-hsub{font-size:.95rem}
  /* FAQ */
  .faq-q{padding:1.2rem 0}
  .faq-qt{font-size:.95rem}
}
@media(max-width:420px){
  .hero-h1{font-size:clamp(2.2rem,13vw,3.5rem)}
  .hero-content{padding:0 1.2rem 2rem}
  .stats{grid-template-columns:1fr}
  .stat{border-right:none!important;border-bottom:1px solid var(--border)}
  .ppto-garantias{grid-template-columns:1fr}
  .mm-main{font-size:1.9rem}
  .n-logo{font-size:1.4rem}
  .pf-row{grid-template-columns:1fr}
  .ppto-left{padding:4rem 1.2rem 2rem}
  .svc-intro,.svc-bullets,.svc-faq{padding-top:2.8rem;padding-bottom:2.8rem}
  .svc-bc{font-size:.78rem}
  .lbox{padding:2.5rem 1.2rem}
  #cookieBar{padding:.8rem 1rem;gap:.6rem}
  .unete-rows-title{font-size:1.7rem}
  .unete-rows-wrap{padding:3rem 1.2rem}
  .bull-card{padding:2rem 1.5rem}
  .svc-cta{padding:3rem 1.2rem}
  .proceso,.testi,.cta-band,.footer{padding-left:1.2rem;padding-right:1.2rem}
}

/* ── SCROLL PROGRESS BAR ── */
#scrollTrack{position:fixed;top:0;right:0;width:4px;height:100vh;background:rgba(255,255,255,.1);z-index:9999;pointer-events:none}
#scrollBar{position:absolute;top:0;left:0;right:0;height:0px;background:var(--yellow);box-shadow:0 0 8px rgba(254,213,68,.5)}

/* ── COOKIE BAR ── */
/* ── COOKIE BANNER ── */
#cookieBar{position:fixed;bottom:0;left:0;right:0;z-index:8200;background:var(--navy);border-top:2px solid var(--yellow);padding:1.2rem 2.5rem;display:flex;align-items:center;gap:2rem;flex-wrap:wrap;transform:translateY(110%);transition:transform .5s cubic-bezier(.2,.8,.3,1)}
#cookieBar.cb-show{transform:translateY(0)}
.cb-text{flex:1;min-width:220px}
.cb-text p{font-size:.82rem;color:rgba(255,255,255,.6);line-height:1.65;margin:0}
.cb-policy{background:none;border:none;color:rgba(255,255,255,.55);font-size:.82rem;cursor:pointer;text-decoration:underline;padding:0;font-family:inherit;transition:color .2s;white-space:nowrap}
.cb-policy:hover{color:#fff}
.cb-btns{display:flex;gap:.75rem;align-items:center;flex-shrink:0;flex-wrap:wrap}
.cb-configure{background:none;border:1px solid rgba(255,255,255,.25);color:rgba(255,255,255,.7);padding:.6rem 1.3rem;font-size:.76rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;font-family:inherit;border-radius:4px;transition:border-color .2s,color .2s;white-space:nowrap}
.cb-configure:hover{border-color:rgba(255,255,255,.6);color:#fff}
.cb-accept{background:var(--yellow);color:var(--navy);border:none;padding:.65rem 1.6rem;font-size:.76rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:4px;white-space:nowrap;flex-shrink:0;transition:opacity .2s}
.cb-accept:hover{opacity:.85}

/* ── COOKIE PREFERENCES MODAL ── */
#cookieModal{position:fixed;inset:0;z-index:9500;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;pointer-events:none;transition:opacity .3s}
#cookieModal.cm-open{opacity:1;pointer-events:all}
#cookieModal::before{content:'';position:absolute;inset:0;background:rgba(10,15,30,.75);backdrop-filter:blur(4px)}
.cm-box{position:relative;background:#fff;width:100%;max-width:520px;border-radius:2px;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.35);transform:translateY(20px);transition:transform .3s cubic-bezier(.16,1,.3,1)}
#cookieModal.cm-open .cm-box{transform:none}
.cm-head{background:var(--navy);padding:1.4rem 1.8rem;display:flex;align-items:center;justify-content:space-between}
.cm-head h2{font-family:'Playfair Display',serif;font-style:italic;font-weight:400;font-size:1.3rem;color:#fff;letter-spacing:-.01em}
.cm-close{background:none;border:none;color:rgba(255,255,255,.5);font-size:1.3rem;cursor:pointer;line-height:1;padding:.2rem;transition:color .2s}
.cm-close:hover{color:#fff}
.cm-body{padding:1.4rem 1.8rem}
.cm-desc{font-size:.84rem;color:var(--muted);line-height:1.65;margin-bottom:1.3rem}
.cm-row{border:1px solid var(--border);border-radius:2px;padding:1rem 1.2rem;margin-bottom:.7rem;display:flex;align-items:flex-start;gap:1rem}
.cm-row-info{flex:1}
.cm-row-info strong{font-size:.9rem;font-weight:600;color:var(--navy);display:block;margin-bottom:.2rem}
.cm-row-info span{font-size:.8rem;color:var(--muted);line-height:1.55}
/* Toggle switch */
.cm-toggle{position:relative;flex-shrink:0;width:44px;height:24px;margin-top:2px}
.cm-toggle input{opacity:0;width:0;height:0;position:absolute}
.cm-toggle-track{position:absolute;inset:0;background:#d1d5db;border-radius:24px;cursor:pointer;transition:background .25s}
.cm-toggle input:checked + .cm-toggle-track{background:var(--navy)}
.cm-toggle-track::after{content:'';position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .25s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.cm-toggle input:checked + .cm-toggle-track::after{transform:translateX(20px)}
.cm-toggle.locked .cm-toggle-track{background:var(--yellow);cursor:not-allowed}
.cm-toggle.locked .cm-toggle-track::after{transform:translateX(20px)}
.cm-foot{padding:1rem 1.8rem 1.4rem;display:flex;gap:.75rem;justify-content:flex-end;flex-wrap:wrap;border-top:1px solid var(--border)}
.cm-reject{background:none;border:1px solid var(--border);color:var(--muted);padding:.6rem 1.2rem;font-size:.76rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;font-family:inherit;border-radius:4px;transition:border-color .2s,color .2s}
.cm-reject:hover{border-color:var(--navy);color:var(--navy)}
.cm-save{background:var(--navy);color:#fff;border:none;padding:.65rem 1.6rem;font-size:.76rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;font-family:inherit;border-radius:4px;transition:opacity .2s}
.cm-save:hover{opacity:.82}

@media(max-width:700px){
  #cookieBar{padding:1rem 1.2rem;gap:.8rem}
  .cb-btns{width:100%}
  .cb-configure,.cb-accept{flex:1;text-align:center}
}
@media(max-width:480px){
  .cm-box{max-height:90vh;overflow-y:auto}
  .cm-foot{flex-direction:column}
  .cm-reject,.cm-save{width:100%;text-align:center}
}

/* Móvil: simplificar home — ocultar editoriales, proceso y testimonios */
@media(max-width:768px){
  #page-home .editorial,
  #page-home .proceso,
  #page-home .testi{display:none}
}

/* ════════════════════════════════
   MOBILE POLISH — responsive fixes
   ════════════════════════════════ */
@media(max-width:560px){
  /* Stats: 2x2 compacto en lugar de 1-por-fila gigante */
  .stats{grid-template-columns:1fr 1fr;gap:0}
  .stat{padding:2.2rem 1rem;border-right:1px solid rgba(26,34,54,.15);border-bottom:1px solid rgba(26,34,54,.15)}
  .stat:nth-child(2n){border-right:none}
  .stat:nth-last-child(-n+2){border-bottom:none}
  .stat-n{font-size:2.6rem}
  .stat-l{font-size:.66rem;letter-spacing:.12em;margin-top:.35rem;line-height:1.3}

  /* WhatsApp flotante: más pequeño, con safe-area, sin tooltip invasivo */
  #waBtn{width:48px;height:48px;box-shadow:0 3px 14px rgba(37,211,102,.45)}
  #waBtn svg{width:24px;height:24px}
  #waWrap{bottom:calc(1.1rem + env(safe-area-inset-bottom));right:1.1rem}
  #waWrap.wa-above-footer{bottom:calc(4.5rem + env(safe-area-inset-bottom))}
  #waTip{display:none}

  /* Header: botón teléfono más compacto, no compite con logo */
  #nav{padding:0 1rem 0 1rem;height:62px}
  .n-logo{font-size:1.55rem}
  .n-tel{font-size:.72rem!important;padding:.28rem .6rem!important}

  /* Textos pequeños: mejora legibilidad en proyectores / pantallas pequeñas */
  .eyebrow,.mm-col-t,.ft-col-t{font-size:.72rem;letter-spacing:.22em}

  /* Lista del footer/servicios: alineación consistente */
  .ft-links li button,.ft-links li a{text-align:left;width:100%}

  /* Sección Dos territorios: card más compacta y tags alineados */
  .coverage{padding:4rem 1.2rem}
  .cov-card{padding:1.75rem 1.5rem}
  .cov-card p{line-height:1.65!important;font-size:.88rem}
  .cov-tags{gap:.45rem;margin-top:1.2rem}
  .cov-tag{padding:.4rem .75rem;font-size:.7rem;letter-spacing:.04em;flex:0 0 auto}

  /* Botones CTA: altura un pelín menor sin perder tap target (>=44px) */
  .btn-yellow,.btn-ghost,.svc-hbtn{padding:.85rem 1.6rem;font-size:.7rem;letter-spacing:.14em}
  .hero-btns{gap:.7rem;margin-top:1.4rem}
}

@media(max-width:420px){
  /* Anular la regla antigua que forzaba 1 columna en stats */
  .stats{grid-template-columns:1fr 1fr}
  .stat{border-right:1px solid rgba(26,34,54,.15);padding:1.8rem .8rem}
  .stat:nth-child(2n){border-right:none}
  .stat-n{font-size:2.3rem}
}

