  :root{
    --ink:#0B1220;
    --ink-2:#121B2E;
    --ink-3:#1C2942;
    --red:#F10105;
    --red-dark:#A30D0F;
    --red-deep:#5A0708;
    --paper:#FFFFFF;
    --bg-soft:#F6F6F8;
    --line:#E7E7EC;
    --muted:#5B6472;
    --radius:16px;
    --shadow:0 20px 50px -20px rgba(11,18,32,.35);
    --maxw:1180px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:'Poppins',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
    color:var(--ink);
    background:var(--paper);
    -webkit-font-smoothing:antialiased;
    line-height:1.5;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  .container{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
  .eyebrow{
    font-size:.72rem;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--red);
  }
  .eyebrow.on-dark{color:#FF6B6E;}
  h1,h2,h3{margin:0;font-weight:800;letter-spacing:-.01em;}
  h1{font-size:clamp(2.1rem,5vw,3.4rem);line-height:1.08;}
  h2{font-size:clamp(1.6rem,3.4vw,2.3rem);line-height:1.15;}
  h3{font-size:1.15rem;}
  p{margin:0;}
  .lead{font-size:1.08rem;color:var(--muted);}
  .serif{font-family:'Playfair Display',serif;}

  /* ---------- Buttons ---------- */
  .btn{
    display:inline-flex;align-items:center;gap:10px;
    padding:15px 26px;
    border-radius:10px;
    font-weight:600;
    font-size:.95rem;
    border:2px solid transparent;
    cursor:pointer;
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
    white-space:nowrap;
  }
  .btn:hover{transform:translateY(-2px);}
  .btn-primary{
    background:linear-gradient(135deg,var(--red) 0%, var(--red-dark) 100%);
    color:#fff;
    box-shadow:0 12px 24px -10px rgba(241,1,5,.55);
  }
  .btn-primary:hover{box-shadow:0 16px 30px -10px rgba(241,1,5,.65);}
  .btn-outline{
    background:transparent;
    border-color:rgba(255,255,255,.5);
    color:#fff;
  }
  .btn-outline:hover{background:rgba(255,255,255,.1);}
  .btn-outline.on-light{border-color:var(--ink); color:var(--ink);}
  .btn-outline.on-light:hover{background:var(--ink); color:#fff;}
  .btn svg{width:16px;height:16px;flex:none;}

  /* ---------- Header ---------- */
  .topbar{
    background:var(--ink);
    color:#cfd6e3;
    font-size:.78rem;
  }
  .topbar .container{
    display:flex;justify-content:space-between;align-items:center;
    padding-top:8px;padding-bottom:8px;
    gap:12px;flex-wrap:wrap;
  }
  .topbar a{opacity:.9;}
  .topbar a:hover{opacity:1;color:#fff;}
  .topbar-links{display:flex;gap:18px;flex-wrap:wrap;}
  .topbar-cities{display:flex;gap:10px;color:#8b97ac;flex-wrap:wrap;}

  header.site{
    position:sticky;top:0;z-index:50;
    background:rgba(255,255,255,.98);
    border-bottom:1px solid var(--line);
  }
  .nav{
    display:flex;align-items:center;justify-content:space-between;
    padding:14px 0;
    gap:16px;
  }
  .brandlock{display:flex;align-items:center;gap:14px;}
  .brandlock img{height:34px;width:auto;}
  .brandlock .divider{width:1px;height:26px;background:var(--line);}
  .rs-mark{display:flex;align-items:center;gap:8px;}
  .rs-badge{
    width:34px;height:34px;border:1.5px solid var(--ink);border-radius:6px;
    display:flex;align-items:center;justify-content:center;
    font-family:'Playfair Display',serif;font-weight:700;font-size:.95rem;
  }
  .rs-text{line-height:1.1;}
  .rs-text .name{font-family:'Playfair Display',serif;font-weight:700;font-size:.92rem;}
  .rs-text .sub{font-size:.55rem;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;}

  nav.mainlinks{display:flex;gap:28px;align-items:center;}
  nav.mainlinks a{font-size:.92rem;font-weight:500;color:var(--ink-2);}
  nav.mainlinks a:hover{color:var(--red);}
  .nav-cta{display:flex;align-items:center;gap:14px;}
  .nav-cta .btn{padding:11px 20px;font-size:.86rem;}
  .burger{display:none;background:none;border:none;cursor:pointer;padding:8px;}
  .burger span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0;border-radius:2px;}

  @media (max-width:900px){
    nav.mainlinks{
      position:fixed;inset:0 0 0 30%;
      z-index:200;
      background:#fff;
      flex-direction:column;
      align-items:flex-start;
      padding:100px 30px 30px;
      gap:22px;
      overflow-y:auto;
      transform:translateX(100%);
      transition:transform .3s ease;
      box-shadow:-10px 0 40px rgba(0,0,0,.15);
    }
    nav.mainlinks.open{transform:translateX(0);}
    nav.mainlinks a{font-size:1.05rem;}
    .burger{display:block;position:relative;z-index:210;}
    .burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
    .burger.open span:nth-child(2){opacity:0;}
    .burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
    .nav-cta .btn-outline{display:none;}
    .brandlock img{height:26px;}
    .brandlock .divider{display:none;}
    .rs-text{display:none;}
    .nav-overlay{
      display:none;
      position:fixed;inset:0;
      background:rgba(11,18,32,.45);
      z-index:40;
    }
    .nav-overlay.open{display:block;}
    body.nav-open{overflow:hidden;}
  }

  /* ---------- Hero ---------- */
  .hero{
    position:relative;
    background:
      radial-gradient(1100px 500px at 85% -10%, rgba(241,1,5,.28), transparent 60%),
      linear-gradient(160deg,var(--ink) 0%, var(--ink-2) 55%, var(--ink-3) 100%);
    color:#fff;
    overflow:hidden;
    padding:76px 0 90px;
  }
  .hero .container{
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:48px;
    align-items:center;
    position:relative;
    z-index:2;
  }
  .hero h1{margin-top:14px;}
  .hero h1 .accent{color:var(--red);}
  .hero .lead{color:#C6CCDA;margin-top:20px;max-width:520px;}
  .hero-badges{
    display:flex;gap:10px;flex-wrap:wrap;margin-top:26px;
  }
  .hero-badges span{
    font-size:.72rem;font-weight:600;letter-spacing:.03em;
    padding:8px 14px;border-radius:100px;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.16);
    color:#E6E9F0;
  }
  .hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px;}
  .hero-art{
    position:relative;
    display:flex;align-items:center;justify-content:center;
  }
  .hero-art .glow{
    position:absolute;width:340px;height:340px;
    background:radial-gradient(circle,rgba(241,1,5,.35),transparent 70%);
    filter:blur(10px);
  }
  .hero-art img{
    position:relative;
    width:min(70%,320px);
    filter:drop-shadow(0 30px 40px rgba(0,0,0,.45));
  }
  .hero-panel{
    position:relative;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.14);
    border-radius:var(--radius);
    padding:22px;
    width:100%;
    max-width:340px;
    backdrop-filter:blur(6px);
  }
  .hero-panel .row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px dashed rgba(255,255,255,.14);font-size:.85rem;}
  .hero-panel .row:last-child{border-bottom:none;}
  .hero-panel .row b{color:#fff;font-weight:600;}
  .hero-panel .row span{color:#AEB6C6;}

  @media (max-width:900px){
    .hero .container{grid-template-columns:1fr;}
    .hero-art{order:-1;margin-bottom:8px;}
    .hero-art img{width:150px;}
  }

  /* ---------- Alliance strip ---------- */
  .alliance{
    background:var(--paper);
    border-bottom:1px solid var(--line);
    padding:42px 0;
  }
  .alliance-top{
    display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
    margin-bottom:28px;
  }
  .alliance-title{max-width:640px;}
  .alliance-title .eyebrow{margin-bottom:8px;display:block;}
  .alliance-grid{
    display:grid;grid-template-columns:repeat(4,1fr);gap:20px;
  }
  .alliance-card{
    display:flex;gap:14px;align-items:flex-start;
    padding:18px;border:1px solid var(--line);border-radius:12px;
    background:var(--bg-soft);
  }
  .alliance-card .ico{
    flex:none;width:40px;height:40px;border-radius:10px;
    background:linear-gradient(135deg,var(--red),var(--red-dark));
    display:flex;align-items:center;justify-content:center;
  }
  .alliance-card .ico svg{width:20px;height:20px;stroke:#fff;}
  .alliance-card b{display:block;font-size:.92rem;margin-bottom:2px;}
  .alliance-card p{font-size:.82rem;color:var(--muted);}
  @media (max-width:900px){.alliance-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:560px){.alliance-grid{grid-template-columns:1fr;}}

  /* ---------- Section shell ---------- */
  section{padding:88px 0;}
  .section-head{max-width:680px;margin:0 auto 48px;text-align:center;}
  .section-head .eyebrow{display:block;margin-bottom:10px;}
  .section-head h2{margin-top:6px;}
  .section-head .lead{margin-top:14px;}
  .bg-soft{background:var(--bg-soft);}

  /* ---------- Servicios (particulares / empresas) ---------- */
  .services-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:28px;
  }
  .service-card{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:20px;
    padding:36px;
    box-shadow:var(--shadow);
    position:relative;
    overflow:hidden;
  }
  .service-card.dark{
    background:linear-gradient(160deg,var(--ink),var(--ink-3));
    color:#fff;border-color:transparent;
  }
  .service-card .tag{
    display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
    padding:6px 12px;border-radius:100px;margin-bottom:18px;
  }
  .service-card:not(.dark) .tag{background:#FDE7E7;color:var(--red-dark);}
  .service-card.dark .tag{background:rgba(255,255,255,.12);color:#FF9EA0;}
  .service-card h3{font-size:1.5rem;margin-bottom:14px;}
  .service-card ul{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:12px;}
  .service-card li{display:flex;gap:10px;font-size:.92rem;align-items:flex-start;}
  .service-card:not(.dark) li{color:var(--ink-2);}
  .service-card.dark li{color:#D7DBE6;}
  .service-card li svg{flex:none;width:18px;height:18px;stroke:var(--red);margin-top:2px;}
  .service-card.dark li svg{stroke:#FF6B6E;}
  @media (max-width:860px){.services-grid{grid-template-columns:1fr;}}

  /* ---------- Financiación grid ---------- */
  .fin-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  }
  .fin-card{
    border:1px solid var(--line);
    border-radius:16px;
    padding:28px;
    background:var(--paper);
    transition:box-shadow .2s ease, transform .2s ease, border-color .2s ease;
  }
  .fin-card:hover{box-shadow:var(--shadow);transform:translateY(-4px);border-color:transparent;}
  .fin-card .ico{
    width:46px;height:46px;border-radius:12px;
    background:var(--bg-soft);
    display:flex;align-items:center;justify-content:center;margin-bottom:18px;
  }
  .fin-card .ico svg{width:22px;height:22px;stroke:var(--red);}
  .fin-card h3{font-size:1.05rem;margin-bottom:8px;}
  .fin-card p{font-size:.86rem;color:var(--muted);}
  .fin-card .pill{
    display:inline-block;margin-top:14px;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--red-dark);
  }
  @media (max-width:900px){.fin-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:560px){.fin-grid{grid-template-columns:1fr;}}

  /* ---------- Exclusivity / why ---------- */
  .why{
    background:linear-gradient(160deg,var(--ink) 0%, var(--ink-2) 100%);
    color:#fff;
    position:relative;
    overflow:hidden;
  }
  .why .container{position:relative;z-index:2;}
  .why-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
  .why-list{display:grid;gap:22px;margin-top:28px;}
  .why-item{display:flex;gap:16px;}
  .why-item .num{
    flex:none;width:38px;height:38px;border-radius:50%;
    border:1.5px solid rgba(255,255,255,.35);
    display:flex;align-items:center;justify-content:center;
    font-weight:700;font-size:.85rem;color:#fff;
  }
  .why-item b{display:block;margin-bottom:4px;}
  .why-item p{color:#B9C0D1;font-size:.9rem;}
  .why-quote{
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.15);
    border-radius:20px;
    padding:36px;
  }
  .why-quote .stairs{width:64px;margin-bottom:20px;}
  .why-quote p.big{font-family:'Playfair Display',serif;font-style:italic;font-size:1.25rem;line-height:1.5;color:#fff;}
  .why-quote .who{margin-top:22px;font-size:.82rem;color:#AEB6C6;}
  @media (max-width:900px){.why-grid{grid-template-columns:1fr;}}

  /* ---------- Process ---------- */
  .process{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;}
  .process::before{
    content:"";position:absolute;top:23px;left:8%;right:8%;height:2px;
    background:repeating-linear-gradient(90deg,var(--line) 0 8px, transparent 8px 16px);
    z-index:0;
  }
  .step{position:relative;z-index:1;padding:0 16px;text-align:center;}
  .step .dot{
    width:46px;height:46px;border-radius:50%;margin:0 auto 18px;
    background:linear-gradient(135deg,var(--red),var(--red-dark));
    color:#fff;display:flex;align-items:center;justify-content:center;
    font-weight:800;box-shadow:0 10px 20px -8px rgba(241,1,5,.6);
  }
  .step h3{font-size:1rem;margin-bottom:8px;}
  .step p{font-size:.84rem;color:var(--muted);}
  @media (max-width:860px){
    .process{grid-template-columns:1fr;gap:32px;}
    .process::before{display:none;}
  }

  /* ---------- Form ---------- */
  .form-section{
    background:var(--bg-soft);
  }
  .form-wrap{
    display:grid;grid-template-columns:.9fr 1.1fr;gap:0;
    background:var(--paper);
    border-radius:24px;
    overflow:hidden;
    box-shadow:var(--shadow);
    border:1px solid var(--line);
  }
  .form-side{
    background:linear-gradient(160deg,var(--ink),var(--ink-3));
    color:#fff;padding:48px 40px;
    display:flex;flex-direction:column;justify-content:space-between;
  }
  .form-side h2{font-size:1.7rem;}
  .form-side .lead{color:#C6CCDA;margin-top:14px;}
  .form-side ul{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:16px;}
  .form-side li{display:flex;gap:12px;font-size:.88rem;color:#D7DBE6;align-items:flex-start;}
  .form-side li svg{flex:none;width:18px;height:18px;stroke:#FF6B6E;margin-top:2px;}
  .form-side .contactline{margin-top:36px;padding-top:24px;border-top:1px solid rgba(255,255,255,.15);font-size:.85rem;color:#AEB6C6;}
  .form-side .contactline a{color:#fff;font-weight:600;}

  .form-main{padding:44px 40px;}
  .field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  .field{margin-bottom:18px;}
  .field label{display:block;font-size:.8rem;font-weight:600;margin-bottom:7px;color:var(--ink-2);}
  .field input[type=text],
  .field input[type=email],
  .field input[type=tel],
  .field textarea,
  .field select{
    width:100%;padding:12px 14px;border-radius:10px;
    border:1.5px solid var(--line);
    font-family:inherit;font-size:.92rem;
    background:#fff;color:var(--ink);
    transition:border-color .15s ease;
  }
  .field input:focus,.field textarea:focus,.field select:focus{
    outline:none;border-color:var(--red);
  }
  .radio-group{display:flex;gap:10px;flex-wrap:wrap;}
  .radio-group label{
    display:flex;align-items:center;gap:8px;
    border:1.5px solid var(--line);border-radius:10px;
    padding:11px 16px;font-size:.86rem;cursor:pointer;flex:1;
    justify-content:center;font-weight:500;
  }
  .radio-group input{accent-color:var(--red);}
  .radio-group input:checked + span{color:var(--red-dark);font-weight:600;}
  .chip-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .chip{
    display:flex;align-items:center;gap:9px;
    border:1.5px solid var(--line);border-radius:10px;
    padding:11px 12px;font-size:.84rem;cursor:pointer;
  }
  .chip input{accent-color:var(--red);}
  .consent{display:flex;gap:10px;align-items:flex-start;font-size:.78rem;color:var(--muted);margin:20px 0;}
  .consent input{margin-top:3px;accent-color:var(--red);}
  .consent a{color:var(--red-dark);font-weight:600;}
  .form-submit{width:100%;justify-content:center;font-size:1rem;padding:16px;}
  .form-success{
    display:none;text-align:center;padding:60px 20px;
  }
  .form-success.show{display:block;}
  .form-success svg{width:54px;height:54px;stroke:var(--red);margin-bottom:18px;}
  .form-success h3{font-size:1.3rem;margin-bottom:10px;}
  .form-success p{color:var(--muted);}

  @media (max-width:900px){
    .form-wrap{grid-template-columns:1fr;}
    .field-row,.chip-grid{grid-template-columns:1fr;}
  }

  /* ---------- Footer ---------- */
  footer{background:var(--ink);color:#AEB6C6;padding-top:64px;}
  .foot-grid{
    display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;
    padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.1);
  }
  .foot-brand img{height:30px;margin-bottom:16px;}
  .foot-brand p{font-size:.85rem;line-height:1.6;max-width:280px;}
  .foot-col h4{color:#fff;font-size:.82rem;letter-spacing:.05em;text-transform:uppercase;margin-bottom:16px;}
  .foot-col ul{list-style:none;margin:0;padding:0;display:grid;gap:11px;}
  .foot-col a{font-size:.86rem;}
  .foot-col a:hover{color:#fff;}
  .foot-bottom{
    display:flex;justify-content:space-between;align-items:center;
    padding:22px 0;flex-wrap:wrap;gap:12px;font-size:.78rem;color:#7C879B;
  }
  .foot-bottom .legal-links{display:flex;gap:18px;flex-wrap:wrap;}
  @media (max-width:900px){.foot-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:560px){.foot-grid{grid-template-columns:1fr;}}

  .legal-note{
    max-width:var(--maxw);margin:0 auto;padding:14px 24px 0;
  }
  .legal-note .box{
    background:rgba(255,255,255,.04);
    border:1px dashed rgba(255,255,255,.2);
    border-radius:10px;padding:14px 16px;
    font-size:.75rem;color:#8b97ac;
  }

  .modal{
    position:fixed;inset:0;background:rgba(11,18,32,.6);
    display:none;align-items:center;justify-content:center;z-index:100;padding:24px;
  }
  .modal.open{display:flex;}
  .modal-box{
    background:#fff;color:var(--ink);border-radius:16px;max-width:560px;width:100%;
    max-height:80vh;overflow:auto;padding:32px;
  }
  .modal-box h3{margin-bottom:14px;}
  .modal-box p{font-size:.88rem;color:var(--muted);margin-bottom:10px;line-height:1.6;}
  .modal-close{
    display:inline-block;margin-top:18px;font-size:.85rem;font-weight:600;color:var(--red-dark);cursor:pointer;
  }

  /* ---------- Legal pages ---------- */
  .legal-page{padding:70px 0 90px;}
  .legal-page .back-link{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600;color:var(--red-dark);margin-bottom:28px;}
  .legal-page h1{font-size:1.9rem;margin-bottom:26px;}
  .legal-page .content{max-width:760px;font-size:.95rem;color:var(--ink-2);line-height:1.75;}
  .legal-page .content p{margin-bottom:16px;}
  .legal-page .content h2,.legal-page .content h3{margin:28px 0 12px;font-weight:700;}
  .legal-page .content ul{padding-left:20px;margin-bottom:16px;}

  /* ---------- Cookie banner ---------- */
  .cookie-banner{
    position:fixed;left:16px;right:16px;bottom:16px;z-index:200;
    max-width:640px;margin:0 auto;
    background:var(--ink);color:#E6E9F0;
    border-radius:14px;padding:20px 22px;
    box-shadow:0 20px 50px -10px rgba(0,0,0,.4);
    display:none;gap:16px;align-items:center;flex-wrap:wrap;
    font-size:.85rem;
  }
  .cookie-banner.show{display:flex;}
  .cookie-banner p{flex:1 1 260px;color:#C6CCDA;}
  .cookie-banner a{color:#fff;text-decoration:underline;}
  .cookie-banner .actions{display:flex;gap:10px;}
  .cookie-banner button{
    border:none;border-radius:8px;padding:10px 16px;font-weight:600;font-size:.82rem;cursor:pointer;font-family:inherit;
  }
  .cookie-banner .accept{background:var(--red);color:#fff;}
  .cookie-banner .reject{background:rgba(255,255,255,.1);color:#fff;}

  /* ---------- Form alert (errores del formulario) ---------- */
  .form-alert{
    border-radius:10px;padding:14px 16px;font-size:.86rem;margin-bottom:18px;
  }
  .form-alert.error{background:#FDE7E7;color:var(--red-dark);border:1px solid #F6B6B6;}
