  :root{
    --navy:#164B8F;
    --navy-dark:#0D3660;
    --orange:#F58D46;
    --green:#7FB855;
    --green-dark:#5E9A3B;
    --ink:#111111;
    --body:#3A3A3C;
    --muted:#68686C;
    --bg:#FFFFFF;
    --bg-soft:#F5F8FB;
    --border:#E4E9EF;
    --shadow: 0 12px 30px -14px rgba(13,54,96,0.25);
    --radius: 14px;
    --font: Calibri, Carlito, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:var(--font);
    color:var(--body);
    background:var(--bg);
    line-height:1.6;
    font-size:16.5px;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  ul{margin:0;padding:0;list-style:none;}

  h1,h2,h3,h4{
    color:var(--ink);
    font-weight:700;
    margin:0 0 .5em 0;
    line-height:1.18;
  }
  h1{font-size:clamp(2rem, 1.4rem + 2.6vw, 3rem);}
  h2{font-size:clamp(1.55rem, 1.3rem + 1.1vw, 2.15rem);}
  h3{font-size:1.22rem; font-weight:700;}
  p{margin:0 0 1em 0;}
  .container{max-width:1160px;margin:0 auto;padding:0 24px;}
  section{padding:88px 0;scroll-margin-top:78px;}
  .section-soft{background:var(--bg-soft);}

  /* --- brand tick: the recurring 3-block device echoing the QRM mark --- */
  .tick{
    display:flex;
    gap:6px;
    margin-bottom:18px;
  }
  .tick span{width:26px;height:9px;border-radius:3px;}
  .tick span:nth-child(1){background:var(--navy);}
  .tick span:nth-child(2){background:var(--orange);}
  .tick span:nth-child(3){background:var(--green);}
  .kicker{
    color:var(--muted);
    font-weight:700;
    font-size:1rem;
    margin:0 0 4px 0;
  }
  .section-head{max-width:720px;margin-bottom:48px;}
  .section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
  .section-head.center .tick{justify-content:center;}
  .lede{color:var(--muted);font-size:1.08rem;}

  /* buttons */
  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:14px 26px;
    border-radius:10px;
    font-weight:700;
    font-size:1rem;
    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:var(--green);color:#fff;}
  .btn-primary:hover{background:var(--green-dark);box-shadow:0 10px 22px -10px rgba(94,154,59,.6);}
  .btn-outline{border-color:var(--navy);color:var(--navy);background:transparent;}
  .btn-outline:hover{background:var(--navy);color:#fff;}
  .btn-block{width:100%;}

  /* ---------- NAV ---------- */
  header.site-header{
    position:sticky;top:0;z-index:60;
    background:rgba(255,255,255,.92);
    backdrop-filter:saturate(180%) blur(8px);
    border-bottom:1px solid var(--border);
  }
  .nav-wrap{
    display:flex;align-items:center;justify-content:space-between;
    padding:14px 24px 14px 6px;max-width:1160px;margin:0 auto;
  }
  .brand{display:flex;align-items:center;gap:10px;}
  .brand img{height:46px;width:auto;}
  nav.primary-nav ul{display:flex;gap:30px;}
  nav.primary-nav a{
    font-weight:700;color:var(--navy-dark);font-size:.98rem;
    padding:6px 2px;border-bottom:2px solid transparent;
  }
  nav.primary-nav a:hover{border-color:var(--orange);}
  .nav-actions{display:flex;align-items:center;gap:14px;}
  .nav-actions .btn{padding:10px 18px;font-size:.92rem;}
  .menu-toggle{
    display:none;background:none;border:none;cursor:pointer;
    width:42px;height:42px;flex-direction:column;justify-content:center;align-items:center;gap:5px;
  }
  .menu-toggle span{width:24px;height:2.5px;background:var(--navy-dark);border-radius:2px;}

  /* ---------- HERO ---------- */
  .hero{padding:64px 0 88px 0;}
  .hero-grid{
    display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;
  }
  .hero h1{margin-bottom:22px;}
  .hero-sub{font-size:1.14rem;color:var(--body);max-width:540px;margin-bottom:30px;}
  .hero-ctas{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:22px;}
  .hero-trust{color:var(--muted);font-size:.94rem;}
  .hero-media{position:relative;}
  .hero-media .frame-wrap{position:relative;}
  .hero-media .frame{
    position:relative;border-radius:20px;overflow:hidden;box-shadow:var(--shadow);
  }
  .hero-media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3.1;}
  .hero-caption{
    margin:34px 0 0;
    font-size:.82rem;
    color:var(--muted);
    text-align:center;
  }
  .hero-media .chip{
    position:absolute;left:-18px;bottom:-22px;
    background:#fff;border-radius:12px;padding:14px 18px;
    box-shadow:0 16px 34px -14px rgba(13,54,96,.35);
    display:flex;align-items:center;gap:12px;
    border-left:5px solid var(--orange);
    max-width:270px;
  }
  .hero-media .chip strong{display:block;color:var(--ink);font-size:.95rem;}
  .hero-media .chip span{color:var(--muted);font-size:.82rem;}

  @keyframes riseIn{
    from{opacity:0;transform:translateY(16px);}
    to{opacity:1;transform:translateY(0);}
  }
  .hero-anim > *{animation:riseIn .7s ease both;}
  .hero-anim > *:nth-child(2){animation-delay:.1s;}
  .hero-anim > *:nth-child(3){animation-delay:.2s;}
  .hero-anim > *:nth-child(4){animation-delay:.3s;}

  /* ---------- STAT STRIP ---------- */
  .stat-strip{background:var(--navy);padding:44px 0;}
  .stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;}
  .stat-grid .num{color:#fff;font-weight:700;font-size:clamp(1.6rem,1.3rem + 1vw,2.3rem);}
  .stat-grid .label{color:#CFE0F5;font-size:.92rem;margin-top:4px;}

  /* ---------- FILOSOFÍA ---------- */
  .philosophy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
  .phil-card{
    background:#fff;border:1px solid var(--border);border-radius:var(--radius);
    padding:32px 28px;
  }
  .phil-card .mark{
    width:44px;height:44px;border-radius:10px;
    display:flex;align-items:center;justify-content:center;margin-bottom:18px;
  }
  .phil-card:nth-child(1) .mark{background:rgba(22,75,143,.1);}
  .phil-card:nth-child(2) .mark{background:rgba(245,141,70,.14);}
  .phil-card:nth-child(3) .mark{background:rgba(127,184,85,.16);}
  .phil-card svg{width:22px;height:22px;}
  .phil-card p{color:var(--muted);font-size:.98rem;margin-bottom:0;}

  /* ---------- QUIENES SOMOS ---------- */
  .about-grid{display:grid;grid-template-columns:1fr .9fr;gap:56px;align-items:center;}
  .about-grid .photo{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
  .about-grid figcaption{color:var(--muted);font-size:.85rem;margin-top:10px;}
  blockquote.pull{
    border-left:4px solid var(--orange);
    margin:24px 0 0 0;padding:4px 0 4px 18px;
    font-style:italic;color:var(--navy-dark);font-size:1.08rem;font-weight:700;
  }

  /* ---------- SERVICIOS ISO ---------- */
  .iso-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:52px;}
  .iso-card{
    background:#fff;border:1px solid var(--border);border-radius:var(--radius);
    padding:26px;transition:box-shadow .2s ease, transform .2s ease;
  }
  .iso-card:hover{box-shadow:var(--shadow);transform:translateY(-3px);}
  .iso-card .tag{
    display:inline-block;font-size:.92rem;font-weight:800;color:#fff;letter-spacing:.01em;
    background:var(--navy);padding:6px 14px;border-radius:20px;margin-bottom:14px;
  }
  .iso-card h3{font-size:1.08rem;margin-bottom:8px;}
  .iso-card p{color:var(--muted);font-size:.94rem;margin-bottom:0;}
  .iso-card.haccp{border-color:var(--orange);}
  .iso-card.haccp .tag{background:var(--orange);color:#fff;}

  .scope-wrap{
    display:grid;grid-template-columns:1fr 1fr;gap:40px;
    background:var(--bg-soft);border-radius:var(--radius);padding:36px 40px;
  }
  .scope-wrap h3{margin-bottom:16px;}
  .scope-list li{
    position:relative;padding-left:26px;margin-bottom:12px;color:var(--body);
  }
  .scope-list li::before{
    content:"";position:absolute;left:0;top:8px;width:9px;height:9px;border-radius:2px;background:var(--green);
  }
  .haccp-callout{
    background:#fff;border:1px solid var(--border);border-left:4px solid var(--orange);
    border-radius:12px;padding:22px 24px;align-self:start;
  }
  .haccp-callout h4{margin:0 0 8px 0;color:var(--ink);font-weight:700;font-size:1.02rem;}
  .haccp-callout p{margin:0;color:var(--muted);font-size:.94rem;}

  /* ---------- LEGAL ---------- */
  .legal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
  .legal-card{
    background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:32px;
  }
  .legal-card h3{margin-bottom:16px;}
  .legal-card li{position:relative;padding-left:24px;margin-bottom:12px;color:var(--body);font-size:.98rem;}
  .legal-card li::before{
    content:"";position:absolute;left:0;top:9px;width:8px;height:8px;border-radius:50%;background:var(--navy);
  }
  .legal-card.civil li::before{background:var(--orange);}
  .legal-card.minsa li::before{background:var(--green);}
  .legal-card li strong{color:var(--ink);}

  /* ---------- METODOLOGÍA ---------- */
  .method-list{display:flex;flex-direction:column;gap:0;}
  .method-step{
    display:grid;grid-template-columns:64px 1fr;gap:24px;padding:26px 0;
    border-top:1px solid var(--border);
  }
  .method-step:last-child{border-bottom:1px solid var(--border);}
  .method-step .n{
    width:52px;height:52px;border-radius:50%;background:var(--navy);color:#fff;
    display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2rem;
  }
  .method-step:nth-child(2) .n{background:var(--orange);}
  .method-step:nth-child(3) .n{background:var(--green);}
  .method-step:nth-child(4) .n{background:var(--navy);}
  .method-step:nth-child(5) .n{background:var(--orange);}
  .method-step h3{margin-bottom:6px;}
  .method-step p{margin:0;color:var(--muted);}

  /* ---------- SECTORES ---------- */
  .sector-grid{
    display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px;
  }
  .sector-card{
    background:#fff;border:1.5px solid var(--border);border-radius:12px;
    padding:18px 14px;font-weight:700;color:var(--navy-dark);font-size:.92rem;
    text-align:center;display:flex;align-items:center;justify-content:center;
  }
  .sector-note{
    background:#fff;border:1px solid var(--border);border-left:4px solid var(--green);
    border-radius:12px;padding:18px 22px;color:var(--body);font-size:.96rem;
  }

  /* ---------- CLIENTES ---------- */
  .client-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
  .client-card{
    background:#fff;border:1px solid var(--border);border-radius:12px;padding:22px;
  }
  .client-card .since{
    display:inline-block;font-size:.74rem;font-weight:700;color:var(--green-dark);
    background:rgba(127,184,85,.14);padding:3px 10px;border-radius:20px;margin-bottom:10px;
  }
  .client-card h3{font-size:1rem;margin-bottom:6px;}
  .client-card p{font-size:.88rem;color:var(--muted);margin-bottom:0;}

  /* ---------- GALERÍA ---------- */
  .gallery-grid{
    display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:220px;gap:14px;
  }
  .gallery-grid figure{
    position:relative;margin:0;border-radius:12px;overflow:hidden;
  }
  .gallery-grid figure.tall{grid-row:span 2;}
  .gallery-grid img{width:100%;height:100%;object-fit:cover;}
  .gallery-grid img.obj-top{object-position:top;}
  .gallery-grid figcaption{
    position:absolute;left:0;right:0;bottom:0;
    background:linear-gradient(0deg, rgba(13,54,96,.88), rgba(13,54,96,0));
    color:#fff;font-size:.82rem;font-weight:700;padding:34px 14px 12px 14px;
  }

  /* ---------- CONTACTO ---------- */
  .contact-section{background:var(--navy);color:#fff;}
  .contact-section .section-head h2{color:#fff;}
  .contact-section .lede{color:#CFE0F5;}
  .contact-section .tick span:nth-child(1){background:#fff;}
  .contact-grid{display:grid;grid-template-columns:1fr .8fr;gap:40px;}
  .contact-form{
    background:#fff;border-radius:var(--radius);padding:34px;color:var(--body);box-shadow:var(--shadow);
  }
  .field{margin-bottom:18px;}
  .field label{display:block;font-weight:700;color:var(--ink);font-size:.9rem;margin-bottom:6px;}
  .field input, .field select, .field textarea{
    width:100%;padding:12px 14px;border:1.5px solid var(--border);border-radius:8px;
    font-family:var(--font);font-size:.98rem;color:var(--ink);background:#fff;
  }
  .field input:focus, .field select:focus, .field textarea:focus{
    outline:3px solid rgba(22,75,143,.25);border-color:var(--navy);
  }
  .field textarea{resize:vertical;min-height:110px;}
  .form-note{font-size:.82rem;color:var(--muted);margin-top:10px;text-align:center;}
  .contact-side{display:flex;flex-direction:column;gap:22px;}
  .contact-info-card{
    background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);
    border-radius:var(--radius);padding:28px;
  }
  .contact-info-card h3{color:#fff;margin-bottom:16px;}
  .contact-line{display:flex;gap:12px;margin-bottom:14px;align-items:flex-start;}
  .contact-line svg{flex-shrink:0;width:20px;height:20px;margin-top:2px;}
  .contact-line a, .contact-line span{color:#EAF2FC;font-size:.96rem;}
  .contact-line strong{display:block;color:#fff;}
  .direct-note{font-size:.86rem;color:#CFE0F5;margin-top:6px;}

  /* ---------- FOOTER ---------- */
  footer{background:var(--navy-dark);color:#CFE0F5;padding:52px 0 26px 0;}
  .footer-grid{display:grid;grid-template-columns:1.3fr .8fr 1fr;gap:36px;margin-bottom:34px;}
  .footer-brand img{height:34px;margin-bottom:14px;background:#fff;padding:8px 14px;border-radius:8px;}
  .footer-brand p{color:#9FB9D8;font-size:.9rem;max-width:280px;}
  footer h4{color:#fff;font-size:.95rem;margin-bottom:14px;}
  footer .footer-nav li{margin-bottom:10px;}
  footer .footer-nav a{color:#CFE0F5;font-size:.92rem;}
  footer .footer-nav a:hover{color:var(--orange);}
  .footer-bottom{
    border-top:1px solid rgba(255,255,255,.14);padding-top:22px;
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
    font-size:.82rem;color:#7C99BC;
  }

  /* ---------- WHATSAPP FLOAT ---------- */
  .wa-float{
    position:fixed;right:22px;bottom:22px;z-index:70;
    background:var(--green);color:#fff;width:60px;height:60px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 12px 26px -8px rgba(94,154,59,.6);
    transition:transform .15s ease;
  }
  .wa-float:hover{transform:scale(1.08);}
  .wa-float svg{width:30px;height:30px;}

  /* ---------- RESPONSIVE ---------- */
  @media (max-width: 980px){
    .hero-grid, .about-grid, .contact-grid{grid-template-columns:1fr;}
    .hero-media{order:-1;}
    .philosophy-grid, .legal-grid{grid-template-columns:1fr;}
    .iso-grid{grid-template-columns:repeat(2,1fr);}
    .client-grid{grid-template-columns:repeat(2,1fr);}
    .scope-wrap{grid-template-columns:1fr;}
    .stat-grid{grid-template-columns:repeat(2,1fr);row-gap:26px;}
    .gallery-grid{grid-template-columns:repeat(2,1fr);}
    .footer-grid{grid-template-columns:1fr 1fr;}
    .sector-grid{grid-template-columns:repeat(3,1fr);}
  }
  @media (max-width: 720px){
    nav.primary-nav{
      position:fixed;top:70px;left:0;right:0;background:#fff;
      border-bottom:1px solid var(--border);
      transform:translateY(-130%);opacity:0;transition:all .25s ease;
      padding:20px 24px;
    }
    nav.primary-nav.open{transform:translateY(0);opacity:1;}
    nav.primary-nav ul{flex-direction:column;gap:0;}
    nav.primary-nav li{border-bottom:1px solid var(--border);}
    nav.primary-nav a{display:block;padding:14px 0;}
    .menu-toggle{display:flex;}
    .nav-actions .btn-outline{display:none;}
    section{padding:60px 0;}
    .iso-grid{grid-template-columns:1fr;}
    .client-grid{grid-template-columns:1fr;}
    .gallery-grid{grid-template-columns:1fr;grid-auto-rows:240px;}
    .gallery-grid figure.tall{grid-row:span 1;}
    .footer-grid{grid-template-columns:1fr;}
    .hero-media .chip{position:static;margin-top:-14px;max-width:none;}
    .sector-grid{grid-template-columns:1fr 1fr;}
  }

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .hero-anim > *{animation:none;}
  }

/* ===== V2: Landing + subpáginas ===== */

.norms-strip{
  background:var(--bg-soft);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:30px 0;
}
.norms-label{
  text-align:center;
  font-weight:700;
  color:var(--navy-dark);
  margin:0 0 16px;
  font-size:1.02rem;
}
.norms-badges{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:14px;
}
.norm-badge{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:3px;
  background:#fff;
  border:1.5px solid var(--navy);
  border-radius:12px;
  padding:12px 18px;
  min-width:112px;
  box-shadow:var(--shadow);
}
.norm-badge .code{
  font-weight:800;
  color:var(--navy);
  font-size:1.08rem;
  letter-spacing:.01em;
}
.norm-badge .desc{
  font-size:.76rem;
  color:var(--muted);
  font-weight:600;
}
@media (max-width:620px){
  .norm-badge{min-width:90px;padding:9px 12px;}
  .norm-badge .code{font-size:.94rem;}
}

.subpage-hero{
  background:linear-gradient(135deg,var(--navy) 0%,var(--navy-dark) 100%);
  padding:64px 0 46px;
  color:#fff;
}
.subpage-hero .container{max-width:1120px;}
.breadcrumb{
  font-size:.85rem;
  color:rgba(255,255,255,.72);
  margin-bottom:14px;
}
.breadcrumb a{color:#fff;font-weight:600;}
.breadcrumb a:hover{text-decoration:underline;}
.subpage-hero h1{
  color:#fff;
  font-size:clamp(1.7rem, 1.3rem + 1.8vw, 2.5rem);
  max-width:760px;
  margin-bottom:.4em;
}
.subpage-hero p{
  color:rgba(255,255,255,.86);
  max-width:640px;
  font-size:1.05rem;
  margin:0;
}

.teaser-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
  margin-top:36px;
}
.teaser-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:26px 24px 24px;
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  gap:12px;
}
.teaser-card .mark{width:40px;height:40px;}
.teaser-card h3{font-size:1.1rem;margin:0;}
.teaser-card p{margin:0;font-size:.95rem;color:var(--muted);flex-grow:1;}
.teaser-card .teaser-tags{display:flex;flex-wrap:wrap;gap:7px;margin:2px 0;}
.teaser-card .teaser-tags span{
  font-size:.8rem;
  font-weight:800;
  color:#fff;
  background:var(--navy);
  border-radius:999px;
  padding:4px 11px;
}
.teaser-card .teaser-link{
  font-weight:700;
  color:var(--navy);
  font-size:.92rem;
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.teaser-card .teaser-link svg{width:16px;height:16px;}

.about-brief{
  max-width:760px;
  margin:0 auto;
  text-align:center;
}
.about-brief .pull{margin-top:18px;}

.subpage-cta{
  background:var(--bg-soft);
  border-top:1px solid var(--border);
  padding:48px 0;
  text-align:center;
}
.subpage-cta h2{margin-bottom:8px;}
.subpage-cta p{max-width:520px;margin:0 auto 22px;color:var(--muted);}

.subpage-section{padding-top:56px;}

.scope-disclaimer{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--border);
  font-size:.88rem;
  color:var(--muted);
  font-style:italic;
}

.about-photo-inline{
  max-width:520px;
  margin:0 auto 40px;
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
}
.about-photo-inline img{width:100%;}
.about-photo-inline figcaption{
  padding:12px 16px;
  font-size:.85rem;
  color:var(--muted);
  background:#fff;
}

@media (max-width:980px){
  .teaser-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:620px){
  .teaser-grid{grid-template-columns:1fr;}
  .subpage-hero{padding:48px 0 36px;}
}
