/* ===== Marca sobre Bootstrap ===== */
    :root{
      --bs-primary:#134D8F; --bs-primary-rgb:19,77,143;
      --tw-primary:#134D8F; --tw-primary-d:#0E3A6B;
      --tw-teal:#3BB5B0; --tw-teal-d:#2E948F; --tw-ink:#082033;
      --tw-dark:#0C2A4D; --tw-green:#7A9C59;
      --bs-body-font-family:'Satoshi',system-ui,sans-serif;
      --bs-body-color:#26303B; --bs-border-color:#C7D7E7;
      --bs-border-radius:1rem; --bs-border-radius-lg:1.4rem;
    }
    html,body{overflow-x:clip}
    body{font-family:var(--bs-body-font-family)}
    h1,h2,h3,.fw-black{font-weight:900;letter-spacing:-.015em}
    .lead-sm{font-size:1.05rem}
    .text-tw-teal{color:var(--tw-teal-d)!important}
    .bg-tw-dark{background:var(--tw-dark)!important;color:#fff}
    .bg-tw-alt{background:#E8F1FA!important}
    .eyebrow{font-size:.78rem;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--tw-teal-d)}
    .bg-tw-dark .eyebrow{color:var(--tw-teal)}
    .row-min0>*{min-width:0}         /* anti-overflow en grids */

    /* Botones de marca */
    .btn-cta{--bs-btn-bg:var(--tw-teal);--bs-btn-hover-bg:var(--tw-teal-d);--bs-btn-active-bg:var(--tw-teal-d);--bs-btn-color:var(--tw-ink);--bs-btn-hover-color:var(--tw-ink);--bs-btn-active-color:var(--tw-ink);--bs-btn-border-color:transparent;--bs-btn-hover-border-color:transparent;font-weight:800;text-transform:uppercase;letter-spacing:.3px;border-radius:0 999px 999px 0}
    .btn-ink{--bs-btn-bg:var(--tw-primary);--bs-btn-hover-bg:var(--tw-primary-d);--bs-btn-color:#fff;--bs-btn-hover-color:#fff;--bs-btn-border-color:transparent;font-weight:800;text-transform:uppercase;letter-spacing:.3px;border-radius:0 999px 999px 0}
    .btn-outline-light-2{--bs-btn-color:#fff;--bs-btn-border-color:rgba(255,255,255,.6);--bs-btn-hover-bg:rgba(255,255,255,.15);--bs-btn-hover-color:#fff;--bs-btn-hover-border-color:#fff;font-weight:800;text-transform:uppercase;letter-spacing:.3px;border-radius:999px}

    /* Iconos sprite */
    .icn{width:1em;height:1em;display:inline-block;vertical-align:-.14em;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
    .icn--fill{fill:currentColor;stroke:none}

    /* Nav */
    .tw-nav{background:rgba(12,42,77,.92);backdrop-filter:blur(10px)}
    .tw-nav .navbar-brand img{height:30px}
    .tw-nav .nav-link{color:rgba(255,255,255,.85);font-weight:600}
    .tw-nav .nav-link:hover{color:#fff}
    .tw-tel{color:#fff;font-weight:700;border:1.5px solid rgba(255,255,255,.45);border-radius:999px;padding:.4rem .9rem;white-space:nowrap}
    .tw-tel:hover{background:rgba(255,255,255,.12);color:#fff}

    /* Hero con vídeo */
    .tw-hero{position:relative;overflow:hidden;background:linear-gradient(160deg,#0C2A4D,#134D8F);color:#fff}
    .tw-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
    .tw-overlay{position:absolute;inset:0;z-index:1;background:radial-gradient(120% 130% at 12% 15%,rgba(59,181,176,.22),transparent 55%),linear-gradient(120deg,rgba(7,24,48,.95) 0%,rgba(12,45,86,.86) 48%,rgba(19,77,143,.58) 100%)}
    .tw-hero .container{position:relative;z-index:2}
    .hero-badge{display:inline-flex;align-items:center;gap:.4rem;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:.8rem;font-weight:800;padding:.42rem 1rem;border-radius:999px}
    .rot{color:var(--tw-teal)}
    .hero-price .num{font-size:2rem;font-weight:900}
    .hero-form{background:#fff;color:var(--bs-body-color);border-radius:1.2rem}

    /* Tarjeta de producto */
    .pmedia{height:200px;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#0C2A4D,#08203C);border-radius:1rem;overflow:hidden;padding:14px}
    .pmedia img{max-height:100%;width:auto;object-fit:contain}
    .pmedia video{width:100%;height:100%;object-fit:cover;border-radius:.7rem}
    .pcard{border:1.5px solid var(--bs-border-color);border-radius:1.4rem;transition:transform .18s,box-shadow .2s,border-color .2s}
    .pcard:hover{transform:translateY(-5px);box-shadow:0 24px 56px -20px rgba(19,77,143,.35);border-color:var(--tw-teal)}
    .pcard.featured{border-color:var(--tw-teal)}
    .pnum{font-size:2.1rem;font-weight:900;color:var(--tw-primary);line-height:1}
    .pold{text-decoration:line-through;color:#8a97a6;font-weight:600;margin-right:.3rem}

    /* Filas de soluciones */
    .fmedia{border-radius:1.4rem;overflow:hidden;box-shadow:0 30px 60px -22px rgba(12,42,77,.5),0 16px 40px -14px rgba(59,181,176,.38);border:1px solid rgba(255,255,255,.5);position:relative}
    .fmedia video{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
    .v-badge{position:absolute;left:14px;bottom:14px;background:rgba(255,255,255,.96);color:var(--tw-primary);font-weight:800;font-size:.8rem;padding:.45rem .8rem;border-radius:.8rem;display:inline-flex;align-items:center;gap:.4rem}
    .v-badge .icn{color:var(--tw-teal-d)}

    /* Tiles sectores */
    .sector{border-radius:1.4rem;color:#fff;min-height:170px;display:flex;flex-direction:column;justify-content:flex-end;padding:1.3rem;text-decoration:none}
    .sector .si{width:44px;height:44px;margin-bottom:auto}
    .sector .si img,.sector .si .icn{width:100%;height:100%;object-fit:contain;filter:brightness(0) invert(1);color:#fff}
    .sector h3{color:#fff;font-size:1.2rem}
    .sector--h{background:linear-gradient(160deg,#134D8F,#0C2A4D)}
    .sector--e{background:linear-gradient(160deg,#2E948F,#0C2A4D)}
    .sector--ho{background:linear-gradient(160deg,#3BB5B0,#134D8F)}
    .sector--ev{background:linear-gradient(160deg,#5a76a8,#134D8F)}

    /* Chips de icono */
    .ico-chip{width:60px;height:60px;border-radius:18px;background:linear-gradient(135deg,rgba(59,181,176,.16),rgba(19,77,143,.12));display:flex;align-items:center;justify-content:center;color:var(--tw-primary)}
    .ico-chip .icn{width:30px;height:30px}
    .ico-chip img{width:30px;height:30px;object-fit:contain}

    /* Impacto */
    .impact-item .ii{width:42px;height:42px;margin:0 auto .4rem}
    .impact-item .ii img{width:100%;height:100%;object-fit:contain;filter:brightness(0) invert(1);opacity:.9}
    .impact-item strong{font-size:1.7rem;font-weight:900;color:var(--tw-teal)}

    /* Calculadora */
    .calc{max-width:560px;margin:0 auto}
    .calc .form-range{accent-color:var(--tw-teal)}
    .calc-result{background:#E8F1FA;border:1px solid var(--bs-border-color);border-radius:1rem}
    .calc-amount{font-size:clamp(2.6rem,10vw,3.4rem);font-weight:900;color:var(--tw-primary);line-height:1}

    /* Multipaso */
    .step-panel{display:none}.step-panel.active{display:block}
    .choice{cursor:pointer;border:1.5px solid var(--bs-border-color);border-radius:.9rem;padding:1rem;text-align:center;font-weight:700;background:#fff}
    .choice:hover{border-color:var(--tw-teal)}
    .choice.selected{border-color:var(--tw-primary);background:rgba(19,77,143,.06);box-shadow:0 0 0 3px rgba(19,77,143,.12)}
    .choice .icn{width:26px;height:26px;color:var(--tw-primary)}

    /* Testimonios avatar */
    .av{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--tw-teal),var(--tw-primary));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;flex-shrink:0}
    .stars{color:#E8A33D;letter-spacing:2px}

    /* Barra móvil */
    .tw-mbar{position:fixed;left:12px;right:12px;bottom:12px;z-index:1030;display:flex;gap:.5rem;background:rgba(255,255,255,.98);backdrop-filter:blur(12px);border:1px solid var(--bs-border-color);border-radius:20px;box-shadow:0 14px 36px rgba(12,42,77,.3);padding:.55rem}
    .tw-mbar .btn{flex:1}
    .tw-mbar .btn-call{flex:0 0 auto}

    /* Accordion marca */
    .accordion{--bs-accordion-btn-focus-box-shadow:0 0 0 .25rem rgba(59,181,176,.35);--bs-accordion-active-bg:#E8F1FA;--bs-accordion-active-color:var(--tw-primary);--bs-accordion-btn-color:var(--tw-primary)}
    .accordion-button{font-weight:700}

    /* Reveal */
    .reveal{opacity:0;transform:translateY(20px);transition:opacity .5s,transform .5s}
    .reveal.is-visible{opacity:1;transform:none}

    @media(max-width:991.98px){
      .tw-hero .hero-form{display:none}         /* en móvil el contacto va por el pop-up */
      .tw-hero-content{min-height:80svh;display:flex;flex-direction:column;justify-content:center;text-align:center;align-items:center;padding:3rem 0}
      .tw-hero-content .hero-price,.tw-hero-content .d-flex{justify-content:center}
      .hero-ctas .btn{width:100%}
    }
    @media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}.tw-video{display:none}.reveal{opacity:1;transform:none}}
    /* ===== Fidelidad de diseño sobre Bootstrap (tipografía · CTA · iconos · contraste) ===== */
    :root{--bs-secondary-color:#516072;--bs-body-line-height:1.6;--bs-emphasis-color:#26303B}
    body{line-height:1.6}
    h1,.h1,h2,.h2{font-weight:900;letter-spacing:-.02em;line-height:1.1}
    h3,.h3,h4,.h4,h5,.h5{font-weight:800;letter-spacing:-.01em}
    .display-5{font-weight:900;letter-spacing:-.022em;font-size:clamp(2.1rem,5.4vw,3.6rem);line-height:1.05}
    h2,.h2{font-size:clamp(1.7rem,3.6vw,2.5rem)}
    .fs-5{font-size:1.15rem!important}
    .eyebrow{display:inline-block;margin-bottom:.5rem}
    /* Botones con presencia y forma de marca */
    .btn{--bs-btn-padding-y:.85rem;--bs-btn-padding-x:1.7rem;--bs-btn-font-weight:800;--bs-btn-font-size:.95rem;--bs-btn-border-radius:.7rem}
    .btn-lg{--bs-btn-padding-y:1.05rem;--bs-btn-padding-x:2.1rem;--bs-btn-font-size:1.05rem}
    .btn-sm{--bs-btn-padding-y:.6rem;--bs-btn-padding-x:1.2rem;--bs-btn-font-size:.82rem}
    .btn-cta,.btn-ink{border-radius:0 999px 999px 0}
    .btn-cta{box-shadow:0 8px 22px rgba(59,181,176,.45)}
    .btn-cta .icn,.btn-ink .icn,.btn-outline-light-2 .icn,.tw-tel .icn{width:1.15em;height:1.15em}
    .btn-outline-secondary{--bs-btn-color:var(--tw-primary);--bs-btn-border-color:var(--bs-border-color);--bs-btn-hover-bg:var(--tw-primary);--bs-btn-hover-border-color:var(--tw-primary);--bs-btn-hover-color:#fff;--bs-btn-font-weight:700;border-radius:999px}
    .btn-outline-primary{--bs-btn-color:var(--tw-primary);--bs-btn-border-color:var(--tw-primary);--bs-btn-hover-bg:var(--tw-primary);--bs-btn-hover-border-color:var(--tw-primary);--bs-btn-hover-color:#fff;font-weight:800;border-radius:999px}
    /* Iconos coherentes */
    .icn{width:1.05em;height:1.05em;vertical-align:-.16em}
    li .icn{width:1.1em;height:1.1em}
    .ico-chip{width:64px;height:64px;border-radius:20px}
    .ico-chip .icn,.ico-chip img{width:32px;height:32px}
    /* Contraste */
    .text-body-secondary{color:#516072!important}
    .bg-tw-dark .card{color:var(--bs-body-color)}
    .bg-tw-dark .card .text-body-secondary{color:#516072!important}
    .card{--bs-card-border-color:var(--bs-border-color)}
    .accordion-button:not(.collapsed){color:var(--tw-primary)}
    /* ===== Polish final (verificado por render) ===== */
    .btn-cta{--bs-btn-bg:#3BB5B0;--bs-btn-hover-bg:#2E948F;--bs-btn-color:#06302B;--bs-btn-hover-color:#06302B;--bs-btn-active-color:#06302B;box-shadow:0 10px 26px rgba(46,148,143,.5)}
    .btn-outline-secondary{--bs-btn-color:#134D8F;--bs-btn-border-color:#134D8F;--bs-btn-bg:transparent;--bs-btn-hover-bg:#134D8F;--bs-btn-hover-color:#fff;--bs-btn-hover-border-color:#134D8F;--bs-btn-font-weight:700}
    li .icn{stroke-width:2.4}
    .hero-badge .icn,.badge .icn{stroke-width:2.2}
    /* ===== Iconos Bootstrap Icons ===== */
    .bi{line-height:1;vertical-align:-.125em}
    .btn .bi{font-size:1.05em}
    .tw-tel .bi{font-size:1.05em}
    li .bi{color:var(--tw-teal-d);font-size:1em;margin-right:.1rem}
    .hero-badge .bi{color:var(--tw-teal)}
    .bi-check-circle-fill{color:var(--tw-teal-d)}
    .tw-hero .bi-check-circle-fill{color:var(--tw-teal)}
    .v-badge .bi{color:var(--tw-teal-d)}
    .ico-chip .bi{font-size:30px;color:var(--tw-primary);line-height:1}
    .choice .bi{font-size:26px;color:var(--tw-primary);display:block;margin:0 auto .35rem}
    .sector .si{display:flex;align-items:flex-end}
    .sector .si .bi{font-size:1.9rem;color:#fff}
    /* ===== CTA teal (color de marca) + texto blanco ===== */
    .btn-cta{background-image:linear-gradient(135deg,#3BB5B0,#2A8F88);--bs-btn-bg:#3BB5B0;--bs-btn-color:#fff;--bs-btn-hover-color:#fff;--bs-btn-active-color:#fff;--bs-btn-border-color:transparent;color:#fff;text-shadow:0 1px 1px rgba(6,48,43,.25);box-shadow:0 10px 26px rgba(46,148,143,.5)}
    .btn-cta:hover{background-image:linear-gradient(135deg,#2E948F,#227e78);color:#fff}
    /* ===== Legal: hover en PC, compacto en móvil ===== */
    .legal{margin-top:.5rem}
    .legal-trigger{cursor:help;font-weight:600;color:var(--tw-primary);display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem}
    .legal-text{display:none;font-size:.68rem;line-height:1.45;color:var(--bs-secondary-color);margin-top:.35rem}
    .legal-text a{color:var(--tw-primary);text-decoration:underline}
    @media(hover:hover){.legal:hover .legal-text{display:block}}
    @media(hover:none){.legal-trigger{display:none}.legal-text{display:block}}
    /* ===== Botonazo móvil ===== */
    .tw-mbar{gap:.6rem;padding:.6rem;box-shadow:0 16px 40px rgba(12,42,77,.32)}
    .tw-mbar .btn{--bs-btn-padding-y:.95rem;font-weight:800}
    .tw-mbar .btn-call{--bs-btn-padding-x:1.1rem;flex:0 0 auto}
    .tw-mbar .btn-cta{flex:1;font-size:.98rem}
    /* ===== Botonazo móvil estilo app (tipo Instagram) ===== */
    .tw-mbar{position:fixed;left:0;right:0;bottom:0;z-index:1030;display:flex;justify-content:space-around;align-items:flex-end;background:#fff;border:0;border-top:1px solid var(--bs-border-color);border-radius:0;box-shadow:0 -6px 22px rgba(12,42,77,.14);padding:.3rem .4rem calc(.35rem + env(safe-area-inset-bottom));gap:0}
    .tw-mbar .mbar-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:.35rem 0;color:var(--tw-primary);text-decoration:none;font-size:.64rem;font-weight:700;transition:transform .12s}
    .tw-mbar .mbar-item .bi{font-size:1.4rem;line-height:1}
    .tw-mbar .mbar-item:active{transform:scale(.92)}
    .tw-mbar .mbar-hot{color:var(--tw-teal-d)}
    .tw-mbar .mbar-hot .bi{color:#fff;background:linear-gradient(135deg,#3BB5B0,#2A8F88);width:3.1rem;height:3.1rem;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:-1.5rem;box-shadow:0 8px 18px rgba(46,148,143,.55);font-size:1.4rem;border:3px solid #fff}
    /* ===== Tipografía ÚNICA (Satoshi) en todos los elementos ===== */
    :root{--bs-body-font-family:'Satoshi',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif}
    body,h1,h2,h3,h4,h5,h6,p,a,span,li,ul,ol,label,small,strong,em,b,div,section,header,footer,nav,button,input,select,textarea,.btn,.form-control,.form-select,.form-check-label,.navbar,.nav-link,.badge,.accordion,.accordion-button,.modal,.modal *,.card,.dropdown-menu,blockquote,figure,figcaption,.eyebrow,.legal,.legal *{font-family:'Satoshi',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif}
    /* los iconos mantienen su tipografía de iconos */
    [class^="bi-"]::before,[class*=" bi-"]::before,.bi::before{font-family:"bootstrap-icons"!important}
    /* ===== Pop-up "Necesitas ayuda" ===== */
    .lm-title{color:var(--tw-primary);font-size:1.4rem}
    .lm-opt{display:flex;align-items:center;gap:.9rem;background:#F4F7FB;border:1px solid var(--bs-border-color);border-radius:14px;padding:1rem 1.05rem;margin-bottom:.9rem;text-decoration:none;color:var(--bs-body-color);transition:border-color .15s,background .15s}
    a.lm-opt:hover{border-color:var(--tw-teal);background:#eef5fb}
    .lm-opt-ic{width:42px;height:42px;flex:0 0 auto;border-radius:50%;background:#fff;border:1px solid var(--bs-border-color);display:flex;align-items:center;justify-content:center;color:var(--tw-primary);font-size:1.15rem}
    .lm-opt-txt{display:flex;flex-direction:column;line-height:1.25}
    .lm-opt-txt strong{color:var(--tw-primary)}
    .lm-opt-txt span{font-size:.86rem;color:var(--bs-secondary-color)}
    .lm-chev{margin-left:auto;color:var(--bs-secondary-color)}
    .lm-opt-block{flex-direction:column;align-items:stretch}
    .lm-opt-head{display:flex;align-items:center;gap:.9rem;margin-bottom:.85rem}
    /* ===== Campo telefono con icono (estilo Imagen 1) ===== */
    .phone-field{display:flex;align-items:center;gap:.6rem;background:#fff;border:1.5px solid var(--bs-border-color);border-radius:12px;padding:.75rem 1rem}
    .phone-field:focus-within{border-color:var(--tw-primary);box-shadow:0 0 0 3px rgba(19,77,143,.15)}
    .phone-field .bi{color:var(--bs-secondary-color);font-size:1.1rem}
    .phone-field input{border:0;outline:0;flex:1;background:transparent;font-size:1rem;min-width:0;color:var(--bs-body-color)}
    .phone-field:has(input.is-invalid){border-color:var(--bs-danger)}
    /* ===== Soluciones (rediseno con empaque) ===== */
    .sol-tag{display:inline-block;background:linear-gradient(135deg,rgba(59,181,176,.18),rgba(19,77,143,.12));color:var(--tw-primary);font-weight:800;font-size:.72rem;letter-spacing:.6px;text-transform:uppercase;padding:.42rem .95rem;border-radius:999px;margin-bottom:.85rem}
    .sol-h{color:var(--tw-primary);font-weight:900;font-size:clamp(1.5rem,3.2vw,2rem);line-height:1.12;margin-bottom:.6rem}
    .sol-p{color:var(--bs-secondary-color);font-size:1.05rem;margin-bottom:1rem}
    .sol-list{list-style:none;padding:0;margin:0 0 1.3rem;display:grid;gap:.5rem}
    .sol-list li{display:flex;gap:.55rem;align-items:flex-start;color:var(--bs-body-color);font-weight:600;font-size:.98rem}
    .sol-list li .bi{color:var(--tw-teal-d);flex-shrink:0;margin-top:.15em}
    @media(max-width:991.98px){.fmedia video{aspect-ratio:16/10}.sol-h{font-size:1.5rem}.sol-p{font-size:1rem}}
    /* ===== FAQ ===== */
    #faqAcc .accordion-item{border:1px solid var(--bs-border-color);border-radius:12px!important;margin-bottom:.7rem;overflow:hidden;box-shadow:0 2px 10px rgba(12,42,77,.05)}
    #faqAcc .accordion-button{font-weight:700;color:var(--tw-primary);border-radius:12px}
    #faqAcc .accordion-button:not(.collapsed){background:#F4F7FB;box-shadow:none}
    #faqAcc .accordion-button:focus{box-shadow:0 0 0 .2rem rgba(59,181,176,.3)}
    /* ===== Ondas de separación (estilo tuawa.es) ===== */
    .has-wave{position:relative}
    .wave-top{position:absolute;left:0;right:0;top:0;transform:translateY(-99%);line-height:0;pointer-events:none;z-index:2}
    .wave-top svg{display:block;width:100%;height:44px}
    @media(min-width:768px){.wave-top svg{height:80px}}
    /* margen de respiro para que la onda no pise contenido de la sección anterior */
    .tw-hero{padding-bottom:2.5rem}
    /* ===== Espacio para que la onda no corte el contenido ===== */
    .has-wave-below{padding-bottom:84px!important}
    @media(min-width:768px){.has-wave-below{padding-bottom:120px!important}}
