  :root{
      --green:#1E7A5F;
      --green2:#1a6a54;
      --navy:#0A2A43;
      --text:#0b1220;
      --muted:#4b5563;
      --bg:#ffffff;
      --soft:#f6f8fb;
      --card:#ffffff;
      --border:#e5e7eb;
      --shadow: 0 20px 50px rgba(2,8,23,.10);
      --shadow2: 0 12px 28px rgba(2,8,23,.08);
      --radius:18px;
    }

    *{box-sizing:border-box}
    html,body{margin:0;padding:0}
    body{
      font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
      color:var(--text);
      background:var(--bg);
      line-height:1.45;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }

    .container{
      max-width:1120px;
      margin:0 auto;
      padding:0 18px;
    }

    /* HERO */
    .hero{
      background: radial-gradient(1200px 500px at 50% -20%, rgba(255,255,255,.20), rgba(255,255,255,0)) ,
                  linear-gradient(180deg, var(--green), var(--green2));
      color:#fff;
      padding:28px 0 56px;
      position:relative;
      overflow:hidden;
    }

    .hero::after{
      content:"";
      position:absolute;
      inset:-120px -120px auto -120px;
      height:220px;
      background: radial-gradient(closest-side, rgba(255,255,255,.12), rgba(255,255,255,0));
      transform: rotate(-6deg);
      pointer-events:none;
    }

    .topbar{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:18px;

      background:#ffffff;
      padding:14px 22px;
      border-radius:22px;

      box-shadow: 0 18px 40px rgba(2,8,23,.18);
      width: 100%;

      margin: 0 0 22px;
      position:relative;
      z-index:2;
    }


    .logo{
      height:64px;
      width:auto;
      display:block;
      border-radius:12px;
      background:transparent;
      filter:none;
    }

    .social{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      justify-content:flex-end;
    }

    .iconbtn{
      display:inline-flex;
      align-items:center;
      gap:10px;
      padding:10px 12px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.30);
      color:#fff;
      text-decoration:none;
      font-weight:700;
      font-size:13px;
      background:rgba(255,255,255,.10);
      backdrop-filter: blur(6px);
      transition: transform .12s ease, background .12s ease, border-color .12s ease;
    }
    .topbar .iconbtn{
      background: rgba(30,122,95,.08);
      border: 1px solid rgba(30,122,95,.25);
      color: var(--navy);
    }

    .topbar .icon{
      fill: var(--navy);
    }

    .topbar .iconbtn:hover{
      background: linear-gradient(180deg, var(--green), var(--green2));
      border-color: var(--green2);
      color: #ffffff;
      transform: translateY(-1px);
    }

    .topbar .iconbtn:hover .icon{
      fill: #ffffff;
    }

    .icon{
      width:18px;height:18px;display:block;
      fill:#fff;
      opacity:.95;
    }

    .hero-main{
      text-align:center;
      position:relative;
      z-index:2;
      padding-top:6px;
    }

    .hero h1{
      margin:18px 0 10px;
      font-size:40px;
      letter-spacing:-0.9px;
      line-height:1.1;
    }

    .hero p{
      margin:0 auto 22px;
      max-width:760px;
      font-size:16.5px;
      opacity:.95;
      font-weight:500;
    }

    .cta-row{
      display:flex;
      gap:12px;
      justify-content:center;
      flex-wrap:wrap;
      margin-top:10px;
    }

    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:10px;
      padding:12px 20px;
      border-radius:999px;
      text-decoration:none;
      font-weight:800;
      border:0;
      cursor:pointer;
      transition: transform .12s ease, filter .12s ease;
      user-select:none;
    }

    .btn-primary{
      background: linear-gradient(180deg, #0A2A43, #071f32);
      color:white;
      box-shadow: 0 14px 30px rgba(7,31,50,.25);
    }
    .btn-primary:hover{transform: translateY(-1px); filter:brightness(1.05)}
    .btn-primary:active{transform: translateY(0px); filter:brightness(.98)}

    /* SECTIONS */
    .section{
      padding:64px 0;
    }

    .section.alt{
      background: linear-gradient(180deg, #ffffff, #f7fafc);
      border-top:1px solid var(--border);
      border-bottom:1px solid var(--border);
    }

    .section-title{
      text-align:center;
      margin:0 0 12px;
      font-size:32px;
      letter-spacing:-0.6px;
      line-height:1.15;
    }

    .section-sub{
      text-align:center;
      margin:0 auto 34px;
      max-width:820px;
      color:var(--muted);
      font-size:16px;
      font-weight:500;
    }

    /* ¿Qué hacemos? */
    .do-grid{
      max-width:940px;
      margin:0 auto;
      display:grid;
      grid-template-columns: 1fr;
      gap:14px;
    }

    .do-item{
      background: rgba(255,255,255,.85);
      border:1px solid var(--border);
      border-radius: var(--radius);
      padding:18px 18px;
      display:flex;
      gap:14px;
      align-items:flex-start;
      box-shadow: var(--shadow2);
    }

    .badge{
      width:34px;height:34px;
      border-radius:12px;
      background: rgba(30,122,95,.12);
      border:1px solid rgba(30,122,95,.25);
      display:flex;align-items:center;justify-content:center;
      flex: 0 0 auto;
    }

    .badge svg{width:18px;height:18px;fill:var(--green)}
    .do-text{
      text-align:left;
      font-size:18px;
      font-weight:700;
      color:#0b1220;
      line-height:1.25;
    }
    .do-text small{
      display:block;
      margin-top:6px;
      font-size:14px;
      font-weight:500;
      color:var(--muted);
      line-height:1.35;
    }

    /* BENEFICIOS */
    .cards{
      display:grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap:16px;
      margin-top:10px;
    }

    .card{
      background:var(--card);
      border:1px solid var(--border);
      border-radius: var(--radius);
      padding:18px;
      box-shadow: var(--shadow2);
      transition: transform .12s ease;
      min-height: 170px;
    }
    .card:hover{transform: translateY(-2px)}
    .card h3{
      margin:0 0 10px;
      color:var(--navy);
      font-size:16px;
      letter-spacing:-0.2px;
    }
    .card ul{
      margin:0;
      padding-left:18px;
      color:#111827;
      font-size:14px;
      line-height:1.45;
    }
    .card li{margin:7px 0}

    /* CONTACTO */
    .contact-wrap{
      display:grid;
      grid-template-columns: 1.05fr .95fr;
      gap:16px;
      margin-top:14px;
      align-items:stretch;
    }

    .panel{
      background:#fff;
      border:1px solid var(--border);
      border-radius: var(--radius);
      padding:18px;
      box-shadow: var(--shadow2);
    }

    .panel h3{
      margin:0 0 12px;
      color:var(--navy);
      font-size:16px;
      letter-spacing:-0.2px;
    }

    .kv{
      display:flex;
      gap:12px;
      padding:10px 0;
      border-bottom:1px dashed #e6e8ee;
      align-items:flex-start;
    }
    .kv:last-child{border-bottom:none}

    .k{
      min-width:92px;
      font-weight:800;
      color:#0b1220;
      font-size:13px;
    }

    .v{
      color:#111827;
      font-size:14px;
      line-height:1.35;
      word-break:break-word;
    }

    .v a{
      color:var(--navy);
      font-weight:800;
      text-decoration:none;
    }
    .v a:hover{text-decoration:underline}

    form{
      display:flex;
      flex-direction:column;
      gap:10px;
      margin-top:6px;
    }

    input{
      padding:12px 12px;
      border-radius:14px;
      border:1px solid #cbd5e1;
      font-size:14px;
      outline:none;
      transition: border-color .12s ease, box-shadow .12s ease;
    }
    input:focus{
      border-color: rgba(30,122,95,.55);
      box-shadow: 0 0 0 4px rgba(30,122,95,.12);
    }

    .mini{
      margin:12px 0 0;
      color:var(--muted);
      font-size:13px;
      font-weight:500;
      line-height:1.35;
    }

    /* FOOTER */
    footer{
      background: linear-gradient(180deg, #071f32, #061a2a);
      color: rgba(255,255,255,.86);
      padding:18px 0;
      text-align:center;
      font-size:12px;
      border-top:1px solid rgba(255,255,255,.08);
    }

    /* Responsive */
    @media (max-width: 1060px){
      .cards{grid-template-columns: repeat(2, minmax(0, 1fr));}
    }
    
    @media (max-width: 740px){
      .topbar{flex-direction:column; align-items:center}
      .social{justify-content:center}
      .hero h1{font-size:30px}
      .section-title{font-size:26px}
      .cards{grid-template-columns: 1fr}
      .contact-wrap{grid-template-columns: 1fr}
      .logo{height:58px}
    }
