:root{
    --navy: #00344E;
    --navy-dark: #001C2B;
    --teal: #339490;
    --teal-deep: #256F6C;
    --teal-bright: #45B0AB;
    --paper: #F4F5F3;
    --paper-raised: #FFFFFF;
    --ink: #16232A;
    --ink-soft: #48575E;
    --line: #D8DCDA;
    --serif: 'Source Serif 4', Georgia, 'Times New Roman', serif;
    --sans: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --max: 1140px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family: var(--sans);
    color: var(--ink);
    background: var(--paper);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
  }
  a{color:inherit;}
  img{max-width:100%; display:block;}
  button{font-family:inherit;}

  .wrap{
    max-width: var(--max);
    margin: 0 auto;
    padding: 0 32px;
  }

  /* -------- Nav -------- */
  .nav{
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(0,52,78,0.97);
    backdrop-filter: blur(6px);
    border-bottom: 1px solid rgba(255,255,255,0.08);
  }
  .nav .wrap{
    display:flex;
    align-items:center;
    justify-content: space-between;
    padding-top: 14px;
    padding-bottom: 14px;
  }
  .nav-logo img{height: 26px; filter: brightness(0) invert(1);}
  .nav-links{
    display:flex;
    align-items:center;
    gap: 30px;
    list-style: none;
    margin:0; padding:0;
  }
  .nav-links a{
    color: rgba(255,255,255,0.78);
    text-decoration:none;
    font-size: 14.5px;
    font-weight: 500;
    transition: color .15s ease;
  }
  .nav-links a:hover{color:#fff;}
  .nav-cta{
    background: var(--teal);
    color: #fff !important;
    padding: 9px 18px;
    border-radius: 3px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
  }
  .nav-toggle{display:none;}

  /* -------- Hero -------- */
  .hero{
    background: var(--navy);
    color: #fff;
    position: relative;
    overflow: hidden;
    padding: 84px 0 96px;
  }
  .hero::before{
    content:"";
    position:absolute;
    inset:0;
    background-image:
      radial-gradient(circle, rgba(51,148,144,0.35) 3px, transparent 3.5px);
    background-size: 46px 46px;
    background-position: -10px -10px;
    opacity: 0.35;
    mask-image: linear-gradient(to bottom, rgba(0,0,0,0.9), transparent 78%);
    -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,0.9), transparent 78%);
  }
  .hero-inner{position: relative; z-index: 1;}
  .eyebrow{
    display:inline-block;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--teal-bright);
    border: 1px solid rgba(69,176,171,0.45);
    padding: 6px 14px;
    border-radius: 20px;
    margin-bottom: 28px;
  }
  .hero h1{
    font-family: var(--serif);
    font-weight: 600;
    font-size: clamp(32px, 4.6vw, 50px);
    line-height: 1.15;
    max-width: 17ch;
    margin: 0 0 22px;
    letter-spacing: -0.01em;
  }
  .hero p.lede{
    font-size: 18px;
    max-width: 58ch;
    color: rgba(255,255,255,0.82);
    margin: 0 0 36px;
  }
  .hero-ctas{
    display:flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 56px;
  }
  .btn{
    display:inline-block;
    padding: 13px 26px;
    border-radius: 3px;
    font-weight: 600;
    font-size: 15px;
    text-decoration: none;
    transition: transform .15s ease, background .15s ease;
  }
  .btn-primary{
    background: var(--teal);
    color: #fff;
  }
  .btn-primary:hover{background: var(--teal-bright);}
  .btn-outline{
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255,255,255,0.4);
  }
  .btn-outline:hover{border-color: #fff;}

  .stat-row{
    display:grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    border-top: 1px solid rgba(255,255,255,0.18);
    padding-top: 32px;
  }
  .stat-row div{padding-right: 24px;}
  .stat-num{
    font-family: var(--serif);
    font-size: 34px;
    font-weight: 600;
    color: var(--teal-bright);
    line-height:1;
    margin-bottom: 8px;
  }
  .stat-label{
    font-size: 13.5px;
    color: rgba(255,255,255,0.72);
  }

  /* -------- Section scaffolding -------- */
  section{
    padding: 76px 0;
    border-bottom: 1px solid var(--line);
  }
  section:last-of-type{border-bottom: none;}
  .kicker{
    font-size: 13px;
    font-weight: 600;
    color: var(--teal-deep);
    margin: 0 0 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
  }
  h2{
    font-family: var(--serif);
    font-weight: 600;
    font-size: clamp(25px, 3.2vw, 32px);
    color: var(--navy);
    margin: 0 0 18px;
    max-width: 30ch;
  }
  .section-head{
    display:flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 40px;
    margin-bottom: 44px;
    flex-wrap: wrap;
  }
  .section-head p{
    font-size: 15.5px;
    color: var(--ink-soft);
    max-width: 46ch;
    margin: 0;
  }
  .lead-text{
    font-size: 17px;
    color: var(--ink-soft);
    max-width: 68ch;
    margin: 0 0 20px;
  }

  /* -------- Solutions cards -------- */
  .cards{
    display:grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
  .card{
    background: var(--paper-raised);
    border: 1px solid var(--line);
    border-top: 3px solid var(--teal);
    padding: 32px 28px;
  }
  .card .idx{
    font-family: var(--serif);
    font-size: 13px;
    color: var(--teal-deep);
    font-weight: 600;
    margin-bottom: 18px;
    display:block;
  }
  .card h3{
    font-family: var(--serif);
    font-size: 19px;
    color: var(--navy);
    margin: 0 0 12px;
    font-weight: 600;
    line-height:1.3;
  }
  .card p{
    font-size: 14.5px;
    color: var(--ink-soft);
    margin:0;
  }

  /* -------- About / nosotros -------- */
  .about-grid{
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 56px;
  }
  .about-grid .side{
    border-left: 2px solid var(--teal);
    padding-left: 24px;
  }
  .side p{
    font-size: 15px;
    color: var(--ink-soft);
    margin: 0 0 18px;
  }

  /* -------- Mission / Vision -------- */
  .mv-grid{
    display: grid;
    grid-template-columns: 1fr 1fr;
    border: 1px solid var(--line);
    background: var(--paper-raised);
  }
  .mv-cell{padding: 36px 40px;}
  .mv-cell + .mv-cell{border-left: 1px solid var(--line);}
  .mv-cell h3{
    font-family: var(--serif);
    font-size: 20px;
    color: var(--navy);
    margin: 0 0 14px;
    font-weight: 600;
  }
  .mv-cell p{font-size: 15px; color: var(--ink-soft); margin: 0;}

  /* -------- Quality policy -------- */
  .quality{background: var(--navy); color: rgba(255,255,255,0.92);}
  .quality .kicker{color: var(--teal-bright);}
  .quality h2{color:#fff;}
  .quality .lead-text{color: rgba(255,255,255,0.78);}
  .quality-body{
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 56px;
    align-items: start;
  }
  .quality-body p{font-size: 15px; color: rgba(255,255,255,0.75); margin: 0 0 16px;}

  /* -------- Values -------- */
  .values-grid{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background: var(--line);
    border: 1px solid var(--line);
  }
  .value{background: var(--paper-raised); padding: 28px 26px;}
  .value h3{
    font-family: var(--serif);
    font-size: 16px;
    color: var(--teal-deep);
    margin: 0 0 10px;
    font-weight: 600;
  }
  .value p{font-size: 14px; color: var(--ink-soft); margin: 0;}

  /* -------- Track record table -------- */
  table.track{width: 100%; border-collapse: collapse; font-size: 14.5px; background: var(--paper-raised);}
  table.track thead th{
    text-align: left;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--navy);
    border-bottom: 2px solid var(--navy);
    padding: 10px 16px 10px 0;
    font-weight: 600;
  }
  table.track tbody td{
    padding: 16px 16px 16px 0;
    border-bottom: 1px solid var(--line);
    color: var(--ink-soft);
    vertical-align: top;
  }
  table.track tbody tr:last-child td{border-bottom:none;}
  table.track td.svc{color: var(--ink); font-weight: 500; max-width: 34ch;}
  table.track td.year{font-family: var(--serif); color: var(--navy); font-weight: 600; white-space: nowrap;}
  .badge{
    display:inline-block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--teal-deep);
    background: rgba(51,148,144,0.12);
    padding: 3px 9px;
    border-radius: 3px;
    font-weight: 600;
  }
  .track-note{font-size: 13px; color: var(--ink-soft); margin-top: 18px; font-style: italic;}

  /* -------- Contact -------- */
  .contact{background: var(--navy-dark); color: rgba(255,255,255,0.9); padding: 76px 0 0; border-bottom:none;}
  .contact .kicker{color: var(--teal-bright);}
  .contact h2{color:#fff;}
  .contact .section-head p{color: rgba(255,255,255,0.68);}
  .contact-layout{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    padding-bottom: 56px;
  }
  .office{
    border-top: 1px solid rgba(255,255,255,0.16);
    padding: 20px 0;
  }
  .office:first-child{border-top:none;}
  .office h4{
    font-family: var(--serif);
    font-size: 16px;
    margin: 0 0 8px;
    color: var(--teal-bright);
    font-weight: 600;
  }
  .office p{margin:0; font-size: 14.5px; color: rgba(255,255,255,0.82); line-height:1.6;}
  .office a{text-decoration:none; border-bottom: 1px solid rgba(69,176,171,0.5);}

  .quote-form{
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.14);
    padding: 32px;
  }
  .quote-form h3{
    font-family: var(--serif);
    font-size: 20px;
    margin: 0 0 8px;
    font-weight: 600;
  }
  .quote-form p.small{
    font-size: 14px;
    color: rgba(255,255,255,0.65);
    margin: 0 0 22px;
  }
  .field{margin-bottom: 16px;}
  .field label{
    display:block;
    font-size: 12.5px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: rgba(255,255,255,0.6);
    margin-bottom: 6px;
  }
  .field input, .field select, .field textarea{
    width: 100%;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.22);
    color: #fff;
    padding: 11px 13px;
    font-size: 14.5px;
    border-radius: 3px;
    font-family: inherit;
  }
  .field textarea{resize: vertical; min-height: 90px;}
  .field input::placeholder, .field textarea::placeholder{color: rgba(255,255,255,0.35);}
  .field input:focus, .field select:focus, .field textarea:focus{
    outline: none;
    border-color: var(--teal-bright);
  }
  .quote-submit{
    background: var(--teal);
    color: #fff;
    border: none;
    padding: 13px 26px;
    font-size: 15px;
    font-weight: 600;
    border-radius: 3px;
    cursor: pointer;
    width: 100%;
  }
  .quote-submit:hover{background: var(--teal-bright);}

  .foot-strip{
    border-top: 1px solid rgba(255,255,255,0.14);
    padding: 22px 0;
  }
  .foot-strip .wrap{
    display:flex;
    justify-content: space-between;
    align-items:center;
    flex-wrap: wrap;
    gap: 10px;
  }
  .foot-logo img{height:20px; filter: brightness(0) invert(1); opacity:0.85;}
  .foot-strip small{font-size: 12.5px; color: rgba(255,255,255,0.5);}

  /* -------- Responsive -------- */
  @media (max-width: 900px){
    .nav-links{display:none;}
    .wrap{padding: 0 22px;}
    .about-grid,.quality-body,.contact-layout{grid-template-columns: 1fr; gap: 32px;}
    .about-grid .side{border-left:none; border-top: 2px solid var(--teal); padding-left:0; padding-top:20px;}
    .mv-grid{grid-template-columns: 1fr;}
    .mv-cell + .mv-cell{border-left:none; border-top: 1px solid var(--line);}
    .values-grid, .cards{grid-template-columns: 1fr;}
    .stat-row{grid-template-columns: 1fr; gap: 20px;}
    table.track{font-size: 13px;}
    table.track thead{display:none;}
    table.track tbody tr{display:block; padding: 16px 0; border-bottom: 1px solid var(--line);}
    table.track tbody td{display:block; border-bottom:none; padding: 2px 0;}
    table.track td.svc{font-size:15px;}
  }

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
  }