/* ============ FONTS ============ */
@import url('https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@600;700;800;900&family=Public+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

/* ============ TOKENS — verde sólido + azul + naranja/gris/amarillo de transición ============ */
:root{
  --bg:#2E9A4E;
  --bg-alt:#207A3E;
  --bg-soft:#EDF8EC;
  --bg-dark:#0D2B16;
  --surface:#FFFFFF;
  --surface-tint:#F1FAF0;
  --ink:#12181A;
  --ink-soft:#28372E;
  --ink-faint:#576B5F;
  --ink-invert:#FFFFFF;
  --ink-invert-soft:#CFE8D4;
  --blue:#1B3A6B;
  --blue-bright:#2E5FA8;
  --blue-pale:#E4ECFA;
  --green:#238C42;
  --green-bright:#3FB25E;
  --green-pale:#DEF3E0;
  --orange:#EE8F2B;
  --orange-deep:#C96A1B;
  --orange-pale:#FCE8CC;
  --grey:#6E7D74;
  --grey-deep:#4E5B53;
  --grey-pale:#E7ECE8;
  --yellow:#EFBF3B;
  --yellow-pale:#FBF0D0;
  --line:rgba(14,42,22,.12);
  --line-invert:rgba(255,255,255,.22);
  --shadow-1: 0 1px 2px rgba(10,30,15,.08), 0 8px 24px -8px rgba(10,30,15,.14);
  --shadow-2: 0 4px 10px rgba(10,30,15,.10), 0 26px 50px -16px rgba(10,30,15,.22);
  --shadow-deep: 0 30px 70px -20px rgba(4,14,7,.5);
  --glow-blue: 0 0 60px -10px color-mix(in srgb, var(--blue-bright) 50%, transparent);
  --glow-orange: 0 0 60px -10px color-mix(in srgb, var(--orange) 50%, transparent);
  --radius-s: 6px;
  --radius-m: 14px;
  --radius-l: 26px;
  --font-display:'Big Shoulders Display', 'Arial Narrow', sans-serif;
  --font-body:'Public Sans', -apple-system, sans-serif;
  --font-mono:'IBM Plex Mono', 'SFMono-Regular', monospace;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font-body); line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{color:inherit;}
h1,h2,h3,h4{
  font-family:var(--font-display); font-weight:800; margin:0;
  text-wrap:balance; letter-spacing:.2px; color:var(--ink);
}
p{margin:0; color:var(--ink-soft); max-width:62ch;}
.eyebrow{
  font-family:var(--font-mono); font-size:1.02rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink); font-weight:700; display:flex; align-items:center; gap:.6em;
}
.eyebrow::before{content:''; width:26px; height:3px; background:var(--green); display:inline-block; flex-shrink:0;}
button{font-family:inherit;}
:focus-visible{outline:3px solid var(--blue-bright); outline-offset:3px; border-radius:4px;}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}

/* ============ LAYOUT UTIL ============ */
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
section{position:relative; z-index:0; padding:104px 0;}
.on-dark{background:var(--bg-dark); color:var(--ink-invert);}
.on-dark h2,.on-dark h3,.on-dark h4{color:var(--ink-invert);}
.on-dark p{color:var(--ink-invert-soft);}
/* Las tarjetas blancas dentro de secciones oscuras conservan texto oscuro para que se lea */
.on-dark .eval-card h3,.on-dark .eval-card h4,.on-dark .doc-card h3,.on-dark .doc-card h4{color:var(--ink);}
.on-dark .eval-card p,.on-dark .doc-card p{color:var(--ink-soft);}
.on-soft{background:var(--bg-soft);}
.photo-section{background-size:cover; background-position:center; z-index:0;}
.photo-section::before{content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, color-mix(in srgb, var(--bg-soft) 90%, transparent) 0%, color-mix(in srgb, var(--bg-soft) 95%, transparent) 100%);}
.photo-section-green::before{
  background:linear-gradient(180deg, color-mix(in srgb, var(--bg) 82%, transparent) 0%, color-mix(in srgb, var(--bg) 90%, transparent) 100%);}
.section-head{display:flex; flex-direction:column; gap:14px; margin-bottom:52px; max-width:680px;}
.section-head h2{font-size:clamp(1.9rem,3.4vw,2.7rem); line-height:1.05;}

/* AMBIENT GLOW */
.ambient-glow{position:absolute; width:460px; height:460px; border-radius:50%; filter:blur(90px); opacity:.28; pointer-events:none; z-index:0; animation:drift 16s ease-in-out infinite;}
.glow-blue{background:var(--blue-bright);}
.glow-orange{background:var(--orange); animation-duration:20s;}
.glow-yellow{background:var(--yellow); animation-duration:24s; animation-direction:reverse;}
@keyframes drift{0%{transform:translate(0,0) scale(1);}33%{transform:translate(40px,-30px) scale(1.12);}66%{transform:translate(-30px,20px) scale(.92);}100%{transform:translate(0,0) scale(1);}}

/* SCROLL PROGRESS */
#scrollProgress{position:fixed; top:0; left:0; height:3px; width:0%; z-index:600;
  background:linear-gradient(90deg, var(--blue-bright), var(--orange), var(--yellow));
  transition:width .1s linear; box-shadow:0 0 12px color-mix(in srgb, var(--blue-bright) 60%, transparent);}

.tilt{transition:transform .15s ease, box-shadow .3s;}

/* Reveal-on-scroll */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1; transform:none;}
.reveal-scale{opacity:0; transform:scale(.9); transition:opacity .6s ease, transform .6s cubic-bezier(.2,.8,.3,1.2);}
.reveal-scale.in{opacity:1; transform:scale(1);}
.reveal-left{opacity:0; transform:translateX(-32px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1);}
.reveal-left.in{opacity:1; transform:none;}
.reveal-right{opacity:0; transform:translateX(32px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1);}
.reveal-right.in{opacity:1; transform:none;}
.stagger > *{transition-delay:calc(var(--i,0) * 90ms);}

/* ============ PRELOADER — verde sólido, recuadro blanco, barra de carga ============ */
#preloader{
  position:fixed; inset:0; z-index:9999; background:var(--bg);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .5s ease;
}
#preloader.leaving{opacity:0;}
#preloader.hidden{visibility:hidden;}
.pl-box{
  background:#fff; border-radius:22px; padding:40px 44px;
  display:flex; flex-direction:column; align-items:center; gap:22px;
  box-shadow:0 24px 60px -18px rgba(0,0,0,.28);
}
.pl-box img{width:200px;}
.pl-bar{width:200px; height:6px; background:var(--green-pale); border-radius:6px; overflow:hidden;}
.pl-bar-fill{height:100%; width:0%; background:var(--bg); border-radius:6px; animation:plLoad 1.4s ease-in-out forwards;}
@keyframes plLoad{0%{width:0%;}100%{width:100%;}}
@keyframes spin{to{transform:rotate(360deg);}}

/* ============ NAV ============ */
header{
  position:fixed; top:0; left:0; right:0; z-index:500;
  background:color-mix(in srgb, var(--surface) 90%, transparent);
  backdrop-filter:blur(10px); border-bottom:1px solid transparent;
  transition:border-color .3s, background .3s;
}
header.scrolled{border-bottom-color:var(--line); background:color-mix(in srgb, var(--surface) 97%, transparent);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:14px 28px; max-width:1180px; margin:0 auto;}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none;}
.brand img{height:38px; width:auto;}
.brand-text{font-family:var(--font-display); font-weight:800; font-size:1.05rem; color:var(--ink); line-height:1;}
.brand-text small{display:block; font-family:var(--font-mono); font-size:.58rem; letter-spacing:.14em; color:var(--green); font-weight:500;}
nav.links{display:flex; gap:26px; align-items:center;}
.links a{font-size:.87rem; font-weight:600; text-decoration:none; color:var(--ink-soft); position:relative; padding:4px 0; display:inline-block;}
.links a::after{content:'';position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--blue-bright);transition:width .25s;}
.links a:hover::after{width:100%;}
.btn{
  font-weight:700; font-size:.85rem; border-radius:999px; border:none; cursor:pointer;
  padding:12px 22px; display:inline-flex; align-items:center; gap:8px; text-decoration:none;
  transition:transform .2s, box-shadow .2s, background .2s;
}
.btn-primary{background:var(--green); color:#fff; box-shadow:var(--shadow-1);}
.btn-primary:hover{transform:translateY(-2px); box-shadow:var(--shadow-2);}
.btn-blue{background:var(--blue); color:#fff; box-shadow:var(--shadow-1);}
.btn-blue:hover{transform:translateY(-2px); box-shadow:var(--shadow-2), var(--glow-blue);}
.btn-ghost{background:transparent; color:var(--ink); border:1.5px solid var(--line);}
.btn-ghost:hover{border-color:var(--green); color:var(--green);}
.btn-ghost-invert{background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.4);}
.btn-ghost-invert:hover{border-color:#fff;}
.nav-cta{display:none;}
@media(min-width:840px){.nav-cta{display:inline-flex;}}
.burger{display:flex; background:none;border:none;cursor:pointer;padding:6px;}
@media(min-width:840px){.burger{display:none;} }
@media(max-width:839px){nav.links{display:none;}}

/* ============ HERO — video de fondo ============ */
.hero{
  position:relative; padding:168px 0 100px; overflow:hidden;
  background:var(--bg-dark);
  color:#fff;
}
.hero-video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;}
.hero-video-overlay{position:absolute; inset:0; z-index:0;
  background:linear-gradient(100deg, rgba(6,16,9,.86) 0%, rgba(6,16,9,.62) 48%, rgba(6,16,9,.32) 100%);}
.hero .eyebrow{color:var(--green-bright); text-shadow:0 1px 6px rgba(0,0,0,.5);}
.hero .eyebrow::before{background:var(--green-bright);}
.hero-grid{position:relative; z-index:2; max-width:640px;}
.hero h1{color:#fff; font-size:clamp(2.4rem,4.6vw,3.9rem); line-height:1.02; margin:18px 0 22px;}
.hero h1 em{font-style:normal; color:var(--green-bright);}
.hero p.lead{font-size:1.12rem; max-width:52ch; color:#CFE0D6;}
.hero-ctas{display:flex; gap:14px; margin-top:34px; flex-wrap:wrap;}
.stat-row{display:flex; gap:14px; margin-top:44px; flex-wrap:wrap;}
.chip{
  font-family:var(--font-mono); font-size:.78rem; font-weight:500; color:#fff;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); border-radius:999px; padding:9px 16px;
  box-shadow:var(--shadow-1); display:flex; align-items:center; gap:8px;
}
.chip .dot{width:7px;height:7px;border-radius:50%;background:var(--green-bright);box-shadow:0 0 0 3px color-mix(in srgb, var(--green-bright) 30%, transparent);}
.chip .dot.dot-b{background:var(--orange);box-shadow:0 0 0 3px color-mix(in srgb, var(--orange) 30%, transparent);}
.chip .dot.dot-c{background:var(--yellow);box-shadow:0 0 0 3px color-mix(in srgb, var(--yellow) 30%, transparent);}

/* ============ CARDS COMMON ============ */
.card{
  background:linear-gradient(165deg, var(--surface) 0%, var(--surface-tint) 100%);
  border:1px solid var(--line); border-radius:var(--radius-m);
  box-shadow:var(--shadow-1); padding:28px; position:relative;
}
.tag{
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--green); background:var(--green-pale); border:1px solid color-mix(in srgb, var(--green) 25%, transparent);
  border-radius:999px; padding:4px 10px; font-weight:600;
  display:inline-flex; width:fit-content;
}
.tag-blue{color:var(--blue); background:var(--blue-pale); border-color:color-mix(in srgb, var(--blue) 25%, transparent);}
.tag-orange{color:var(--orange-deep); background:var(--orange-pale); border-color:color-mix(in srgb, var(--orange) 30%, transparent);}
.tag-grey{color:var(--grey-deep); background:var(--grey-pale); border-color:color-mix(in srgb, var(--grey) 30%, transparent);}

/* ============ QUIÉNES SOMOS — presentación completa, sin voltear ============ */
.about-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:26px;}
@media(max-width:900px){.about-grid{grid-template-columns:1fr;}}
.about-panel{
  background:var(--blue); color:#fff; border-radius:var(--radius-l); padding:36px 32px;
  display:flex; flex-direction:column; gap:16px; box-shadow:var(--shadow-2); position:relative; overflow:hidden;
}
.about-panel::before{content:''; position:absolute; inset:-30% -10%; opacity:.12;
  background:repeating-linear-gradient(45deg, #fff 0 12px, transparent 12px 24px); animation:stripeMove 14s linear infinite;}
@keyframes stripeMove{0%{transform:translateX(0);}100%{transform:translateX(40px);}}
.about-panel h3{color:#fff; font-size:1.5rem; position:relative; z-index:1;}
.about-panel p{color:#D6E2F5; position:relative; z-index:1;}
.about-panel .fc-icon{width:44px;height:44px; position:relative; z-index:1;}
.about-side{display:flex; flex-direction:column; gap:18px;}
.about-card{
  background:var(--surface); border-radius:var(--radius-m); padding:26px 28px; box-shadow:var(--shadow-1);
  border-left:4px solid var(--green); display:flex; gap:18px; align-items:flex-start;
}
.about-card:nth-of-type(2){border-left-color:var(--orange);}
.about-card .fc-icon{width:32px;height:32px; flex-shrink:0; margin-top:2px;}
.about-card h4{font-size:1.15rem; margin-bottom:6px;}
.about-card p{font-size:.92rem;}
.values-row{display:grid; grid-template-columns:repeat(5,1fr); gap:16px; margin-top:26px;}
@media(max-width:900px){.values-row{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.values-row{grid-template-columns:1fr;}}
.value-chip{
  background:var(--surface); border-radius:var(--radius-m); padding:20px 16px; text-align:center;
  box-shadow:var(--shadow-1); border-top:4px solid var(--v-color, var(--green)); transition:transform .3s, box-shadow .3s;
}
.value-chip:hover{transform:translateY(-5px); box-shadow:var(--shadow-2);}
.value-chip svg{width:30px;height:30px; margin:0 auto 10px;}
.value-chip h5{font-family:var(--font-display); font-weight:800; font-size:1rem; color:var(--ink); margin-bottom:6px;}
.value-chip p{font-size:.78rem;}

/* ============ METODOLOGÍA — tarjetas grandes con imagen ============ */
.method-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
@media(max-width:860px){.method-grid{grid-template-columns:1fr;}}
.method-card{
  display:grid; grid-template-columns:210px 1fr; gap:0;
  background:var(--surface); border-radius:var(--radius-l); overflow:hidden; box-shadow:var(--shadow-1);
  transition:box-shadow .3s, transform .3s;
}
@media(max-width:560px){.method-card{grid-template-columns:1fr;}}
.method-card:hover{box-shadow:var(--shadow-2);}
.method-img{
  position:relative; aspect-ratio:1/1; overflow:hidden;
}
.method-img img{width:100%; height:100%; object-fit:cover; display:block;}
.method-img::after{content:''; position:absolute; inset:0;
  background:linear-gradient(160deg, var(--m-tint, rgba(35,140,66,.42)) 0%, rgba(0,0,0,.12) 100%);}
.method-num{position:absolute; top:12px; left:14px; font-family:var(--font-mono); font-weight:700; font-size:.95rem; color:#fff; opacity:.9; z-index:1; text-shadow:0 1px 4px rgba(0,0,0,.4);}
.method-body{padding:26px 26px 26px 24px;}
.method-body h3{font-size:1.2rem; margin-bottom:8px;}
.method-body p{font-size:.9rem;}

/* ============ MODALIDADES ============ */
.modal-band{
  margin-top:64px; background:var(--orange-pale); border-radius:var(--radius-l);
  padding:36px 34px; border-top:4px solid var(--orange);
}
.modal-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:18px;}
@media(max-width:760px){.modal-grid{grid-template-columns:1fr;}}
.modal-card{
  background:linear-gradient(165deg, var(--surface) 0%, var(--surface-tint) 100%); border:1px solid var(--line); border-radius:var(--radius-l);
  padding:30px; box-shadow:var(--shadow-1); transition:transform .35s, box-shadow .35s;
  border-top:4px solid var(--blue); position:relative; z-index:1;
}
.modal-card:nth-child(2){border-top-color:var(--orange);}
.modal-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-2), var(--glow-blue);}
.modal-card:nth-child(2):hover{box-shadow:var(--shadow-2), var(--glow-orange);}

/* ============ RISK DIAL / TARIFAS ============ */
.dial-wrap{display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center;}
@media(max-width:900px){.dial-wrap{grid-template-columns:1fr;}}
.dial-track{display:flex; height:64px; border-radius:16px; overflow:hidden; box-shadow:var(--shadow-1); border:1px solid var(--line);}
.dial-seg{
  flex:1; display:flex; align-items:center; justify-content:center; cursor:pointer; position:relative;
  font-family:var(--font-mono); font-weight:700; color:#fff; font-size:.9rem; letter-spacing:.05em;
  transition:flex-grow .35s, filter .25s; border-right:1px solid rgba(255,255,255,.25);
}
.dial-seg:last-child{border-right:none;}
.dial-seg[data-r="1"]{background:var(--green);}
.dial-seg[data-r="2"]{background:var(--green-bright);}
.dial-seg[data-r="3"]{background:var(--yellow);}
.dial-seg[data-r="4"]{background:var(--orange);}
.dial-seg[data-r="5"]{background:var(--blue);}
.dial-seg.active{flex-grow:1.6;}
.dial-seg:hover{filter:brightness(1.08);}
.dial-legend{display:flex; justify-content:space-between; margin-top:10px; font-family:var(--font-mono); font-size:.68rem; color:var(--ink-faint);}
.dial-panel{background:linear-gradient(165deg, var(--surface) 0%, var(--surface-tint) 100%); border:1px solid var(--line); border-radius:var(--radius-m); padding:28px; box-shadow:var(--shadow-1), var(--glow-blue); min-height:220px; position:relative; z-index:1;}
.dial-panel .price{font-family:var(--font-display); font-size:2.1rem; color:var(--blue); margin:10px 0;}
.dial-note{margin-top:26px; padding:18px 22px; border-left:3px solid var(--orange); background:var(--orange-pale); border-radius:0 10px 10px 0;}
.dial-note p{color:var(--ink); font-size:.88rem;}

/* ============ FREE ADVISORY BANNER ============ */
.free-banner{
  margin-top:64px; border-radius:var(--radius-l); padding:36px 40px; background:var(--blue);
  color:#fff; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  box-shadow:var(--shadow-deep); position:relative; overflow:hidden;
}
.free-banner::before{
  content:''; position:absolute; inset:-40% -10%; opacity:.14;
  background:repeating-linear-gradient(45deg, var(--green-bright) 0 14px, transparent 14px 28px);
  animation:stripeMove 12s linear infinite;
}
.free-banner h3{color:#fff; font-size:1.4rem; position:relative; z-index:1;}
.free-banner p{color:#D6E2F5; position:relative; z-index:1;}
.free-banner .btn{position:relative; z-index:1;}

/* ============ AUTOEVALUACIÓN — contenido completo, sin voltear ============ */
.pair-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
@media(max-width:820px){.pair-grid{grid-template-columns:1fr;}}
.eval-card{
  background:var(--surface); border-radius:var(--radius-l); padding:30px; box-shadow:var(--shadow-1);
  border-top:4px solid var(--green); display:flex; flex-direction:column; gap:16px; transition:box-shadow .3s, transform .3s;
}
.eval-card:nth-child(2){border-top-color:var(--orange);}
.eval-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-2);}
.eval-card .ec-head{display:flex; align-items:center; gap:14px;}
.eval-card svg{width:38px;height:38px; flex-shrink:0;}
.checklist{display:flex; flex-direction:column; gap:9px;}
.check-row{display:flex; align-items:center; gap:10px; font-size:.82rem; color:var(--ink-soft); font-family:var(--font-mono);}
.check-row svg{width:16px;height:16px;flex-shrink:0;}
.check-row path{fill:none; stroke:var(--green); stroke-width:3; stroke-linecap:round; stroke-linejoin:round;}
.eval-scope{padding-top:12px; border-top:1px dashed var(--line);}
.eval-scope h5{font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-faint); font-family:var(--font-mono); margin-bottom:6px;}
.eval-scope p{font-size:.88rem;}

/* ============ REPORT CARDS (inspectores) ============ */
.report-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px;}
@media(max-width:820px){.report-grid{grid-template-columns:1fr;}}
.report-card{background:linear-gradient(165deg, var(--surface) 0%, var(--surface-tint) 100%); border:1px solid var(--line); border-radius:var(--radius-m); padding:28px; box-shadow:var(--shadow-1); overflow:hidden; position:relative; z-index:1; transition:box-shadow .3s;}
.report-card:hover{box-shadow:var(--shadow-2), var(--glow-orange);}
.printer-lines{display:flex; flex-direction:column; gap:7px; margin:18px 0 20px; padding:16px; background:var(--surface-tint); border-radius:10px;}
.printer-lines i{height:7px; border-radius:4px; background:var(--line); width:0%; transition:width 1s ease;}
.report-card.in .printer-lines i{width:var(--w);}
.printer-lines i:nth-child(1){--w:92%; transition-delay:.1s;}
.printer-lines i:nth-child(2){--w:70%; transition-delay:.3s;}
.printer-lines i:nth-child(3){--w:85%; transition-delay:.5s;}
.printer-lines i:nth-child(4){--w:45%; transition-delay:.7s;}

/* ============ CAPACITACIONES TOOLBOX ============ */
.train-wrap{display:grid; grid-template-columns:.8fr 1.2fr; gap:48px; align-items:center;}
@media(max-width:900px){.train-wrap{grid-template-columns:1fr;}}
.toolbox{position:relative; width:220px; margin:0 auto;}
.toolbox .lid{transform-origin:20px 70px; transition:transform .6s cubic-bezier(.3,.8,.3,1);}
.toolbox:hover .lid, .toolbox.open .lid{transform:rotate(-42deg);}
.toolbox .spark{opacity:0; transition:opacity .4s .3s;}
.toolbox:hover .spark, .toolbox.open .spark{opacity:1;}
.benefit-list{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media(max-width:560px){.benefit-list{grid-template-columns:1fr;}}
.benefit{display:flex; gap:12px; align-items:flex-start; padding:14px; border-radius:12px; background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow-1); transition:box-shadow .3s, transform .3s; position:relative; z-index:1;}
.benefit:hover{transform:translateY(-3px); box-shadow:var(--shadow-2);}
.benefit svg{width:22px;height:22px;flex-shrink:0; color:var(--green); margin-top:2px;}
.benefit p{font-size:.86rem;}

/* ============ AUDIT MAGNIFIER ============ */
.audit-wrap{display:grid; grid-template-columns:1fr .8fr; gap:48px; align-items:center;}
@media(max-width:900px){.audit-wrap{grid-template-columns:1fr;}}
.audit-art{position:relative; height:280px;}
.magnifier{animation:sweep 5s ease-in-out infinite;}
@keyframes sweep{0%,100%{transform:translate(0,0) rotate(0deg);} 50%{transform:translate(30px,14px) rotate(6deg);}}
.audit-check{stroke-dasharray:30; stroke-dashoffset:30; animation:auditCheck 3s ease-in-out infinite;}
@keyframes auditCheck{0%,20%{stroke-dashoffset:30;} 40%,80%{stroke-dashoffset:0;} 100%{stroke-dashoffset:0;}}

/* ============ ENTREGABLES ============ */
.doc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
@media(max-width:980px){.doc-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.doc-grid{grid-template-columns:1fr;}}
.doc-card{
  position:relative; z-index:1; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m);
  padding:26px; min-height:190px; box-shadow:var(--shadow-1); transition:box-shadow .3s, transform .3s;
  border-bottom:3px solid var(--orange);
}
.doc-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-2), var(--glow-orange);}
.doc-top{display:flex; align-items:center; justify-content:space-between; gap:10px;}
.doc-badge{font-family:var(--font-mono); font-size:.6rem; letter-spacing:.08em; color:var(--grey-deep); background:var(--grey-pale); border-radius:6px; padding:3px 8px; font-weight:700;}

/* ============ FINAL CTA ============ */
.final-cta{
  background:var(--blue); color:#fff; border-radius:var(--radius-l); padding:64px 48px;
  text-align:center; position:relative; overflow:hidden;
}
.final-cta::before{
  content:''; position:absolute; inset:0; opacity:.1;
  background:repeating-linear-gradient(-45deg, var(--orange) 0 16px, transparent 16px 32px);
  animation:stripeMove 14s linear infinite reverse;
}
.final-cta h2{color:#fff; position:relative; z-index:1; font-size:clamp(1.8rem,3.4vw,2.6rem);}
.final-cta p{color:#D6E2F5; margin:16px auto 30px; position:relative; z-index:1;}
.final-cta .hero-ctas{justify-content:center; position:relative; z-index:1;}

/* ============ FOOTER ============ */
footer{background:var(--bg-dark); color:#B7CDBE; padding:56px 0 28px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px;}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr; gap:32px;}}
.foot-brand{display:flex; align-items:center; gap:10px; margin-bottom:14px;}
.foot-brand img{height:34px;}
.foot-brand span{font-family:var(--font-display); font-weight:800; color:#fff; font-size:1rem;}
footer h4{color:#fff; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:14px;}
footer ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px;}
footer a{text-decoration:none; font-size:.88rem; color:#B7CDBE;}
footer a:hover{color:var(--green-bright);}
.foot-bottom{margin-top:44px; padding-top:22px; border-top:1px solid #16351E; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:.78rem; color:#6E8A76;}

/* ============ FLOATING SIDE CTA ============ */
.float-cta{
  position:fixed; right:22px; bottom:26px; z-index:400;
  display:flex; align-items:center; gap:10px; padding:14px 20px 14px 16px;
  background:var(--green); color:#fff; border-radius:999px; text-decoration:none;
  box-shadow:var(--shadow-2), 0 0 0 0 rgba(63,178,94,.5);
  animation:ctaPulse 2.6s ease-in-out infinite;
  transition:transform .25s;
}
.float-cta:hover{transform:translateY(-3px) scale(1.03);}
.float-cta svg{width:22px;height:22px;flex-shrink:0;}
.float-cta span{font-weight:700; font-size:.85rem; white-space:nowrap;}
@keyframes ctaPulse{
  0%{box-shadow:var(--shadow-2), 0 0 0 0 color-mix(in srgb, var(--green-bright) 55%, transparent);}
  70%{box-shadow:var(--shadow-2), 0 0 0 16px color-mix(in srgb, var(--green-bright) 0%, transparent);}
  100%{box-shadow:var(--shadow-2), 0 0 0 0 color-mix(in srgb, var(--green-bright) 0%, transparent);}
}
@media(max-width:600px){.float-cta span{display:none;} .float-cta{padding:14px; right:18px; bottom:18px;}}

/* ============ MULTIPÁGINA — solo estructura; usa los mismos tokens y componentes ============ */
.links a.active{color:var(--green);}
.links a.active::after{width:100%; background:var(--green);}
.hero.hero-sub{padding:150px 0 80px;}
.hero.hero-sub .hero-grid{max-width:720px;}
a.chip{text-decoration:none; transition:background .25s, border-color .25s, transform .25s;}
a.chip:hover{background:rgba(255,255,255,.18); border-color:rgba(255,255,255,.4); transform:translateY(-2px);}
.hero .hero-ctas{margin-top:30px;}

/* Foto + texto */
.svc-split{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;}
.svc-split.flip .svc-photo{order:2;}
@media(max-width:900px){.svc-split{grid-template-columns:1fr; gap:30px;} .svc-split.flip .svc-photo{order:0;}}
.svc-photo{position:relative; border-radius:var(--radius-l); overflow:hidden; box-shadow:var(--shadow-2); aspect-ratio:4/3; background:var(--grey-pale);}
.svc-photo img{width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.svc-photo:hover img{transform:scale(1.05);}
.svc-photo::after{content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(160deg, var(--p-tint, rgba(35,140,66,.30)) 0%, rgba(0,0,0,.10) 100%);}
.svc-photo.wide{aspect-ratio:21/8; margin-top:48px;}
@media(max-width:700px){.svc-photo.wide{aspect-ratio:16/9;}}
.svc-text p{margin-top:14px; max-width:none;}
.svc-text h2{font-size:clamp(1.9rem,3.4vw,2.7rem); line-height:1.05; margin-top:14px;}
.svc-text .free-banner{margin-top:30px;}
.svc-text strong{color:var(--ink);}

/* Foto superior en tarjetas */
.card-photo{position:relative; margin:-30px -30px 6px; aspect-ratio:16/9; overflow:hidden;}
.card-photo img{width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.card-photo::after{content:''; position:absolute; inset:0; background:linear-gradient(160deg, var(--p-tint, rgba(35,140,66,.32)) 0%, rgba(0,0,0,.10) 100%);}
.eval-card:hover .card-photo img, .report-card:hover .card-photo img, .doc-card:hover .card-photo img{transform:scale(1.06);}
.eval-card{overflow:hidden;}
.report-card .card-photo{margin:-28px -28px 18px;}
.doc-card{min-height:0; overflow:hidden;}
.doc-card .card-photo{margin:-26px -26px 18px;}
.doc-type{margin-top:16px; padding-top:12px; border-top:1px dashed var(--line); font-family:var(--font-mono); font-size:.74rem; color:var(--ink-faint); line-height:1.5;}
.doc-type b{display:block; color:var(--orange-deep); text-transform:uppercase; letter-spacing:.08em; font-size:.66rem; margin-bottom:2px;}
.eval-card p, .report-card p{max-width:none;}
.method-body p{max-width:none;}

/* Tarifas: botón dentro del panel */
.dial-panel .btn{margin-top:16px;}
.dial-seg{font-size:.82rem;}

/* Texto largo (capacitaciones) */
.long-card{margin-top:34px; padding:34px 36px; display:grid; grid-template-columns:.9fr 1.1fr; gap:34px; align-items:center;}
@media(max-width:900px){.long-card{grid-template-columns:1fr; padding:26px;}}
.long-card p{margin-top:12px; max-width:none; font-size:.93rem;}
.long-card p:first-child{margin-top:0;}

/* Contacto */
.contact-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:26px; align-items:start;}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;}}
.form-card{background:var(--surface); border-radius:var(--radius-l); padding:36px 34px; box-shadow:var(--shadow-2); border-top:4px solid var(--green);}
.form-card h3{font-size:1.5rem; margin-bottom:6px;}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:22px;}
@media(max-width:600px){.form-grid{grid-template-columns:1fr;}}
.field{display:flex; flex-direction:column; gap:6px;}
.field.full{grid-column:1/-1;}
.field label{font-family:var(--font-mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; font-weight:600; color:var(--ink-faint);}
.field input,.field select,.field textarea{
  font-family:var(--font-body); font-size:.95rem; color:var(--ink); background:var(--surface-tint);
  border:1.5px solid var(--line); border-radius:var(--radius-s); padding:12px 14px; width:100%; transition:border-color .2s, box-shadow .2s;
}
.field textarea{min-height:110px; resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--green); box-shadow:0 0 0 3px color-mix(in srgb, var(--green) 22%, transparent);}
.form-actions{display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-top:22px;}
.form-note{font-size:.8rem; color:var(--ink-faint);}
.channel{display:flex; align-items:center; gap:14px; padding:14px 16px; border-radius:var(--radius-m); background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2);
  text-decoration:none; color:#fff; position:relative; z-index:1; transition:background .25s, transform .25s;}
.channel:hover{background:rgba(255,255,255,.2); transform:translateX(4px);}
.channel svg{width:26px; height:26px; flex-shrink:0;}
.channel b{display:block; font-family:var(--font-display); font-size:1.05rem; line-height:1.1;}
.channel small{font-family:var(--font-mono); font-size:.72rem; color:#D6E2F5;}
.contact-points{display:flex; flex-direction:column; gap:12px; position:relative; z-index:1;}

.contact-grid > *, .form-grid > *{min-width:0;}
.field select{text-overflow:ellipsis;}
@media(max-width:600px){.form-card{padding:28px 22px;}}

/* ============ AJUSTES: legibilidad, footer, Quiénes somos ============ */
html{font-size:112.5%;}
/* textos muy pequeños: piso de lectura */
.chip,.tag,.doc-badge,.check-row,.dial-legend,.doc-type,.channel small,.field label,.form-note,.foot-bottom,.method-num,.printer-lines{font-size:max(.8rem, 13.5px);}
.tag{font-size:.78rem;}
.doc-type b{font-size:.74rem;}
.value-chip p{font-size:.9rem;}
.about-card p,.method-body p,.doc-card p,.eval-scope p{font-size:1rem !important;}
footer a{font-size:1rem;}
footer h4{font-size:.85rem;}
.links a{font-size:.95rem;}
.btn{font-size:.95rem;}
.float-cta span{font-size:.95rem;}

/* Footer: texto y logo legibles sobre fondo oscuro */
footer p{color:#CFE0D4;}
.foot-brand img{height:44px; width:auto; background:#fff; padding:5px 10px; border-radius:10px;}
.foot-brand span{font-size:1.15rem;}
footer a{color:#D5E6DA;}
.foot-bottom{color:#A9C2B0;}

/* Sin rayas diagonales sobre el contenido de lectura */
.about-panel::before{display:none;}

/* Quiénes somos con más protagonismo */
#nosotros .section-head h2{font-size:clamp(2.4rem,4.6vw,3.6rem);}
#nosotros .section-head p{font-size:1.15rem;}
@media(min-width:901px){.about-grid{grid-template-columns:1fr 1fr;}}
.about-grid > *{min-width:0;}
@media(max-width:600px){.about-panel{padding:34px 26px;}}
.about-panel{padding:48px 42px; gap:20px; border-top:6px solid var(--orange); justify-content:center;}
.about-panel h3{font-size:clamp(2.1rem,3.4vw,2.8rem); line-height:1.02;}
.about-panel p{font-size:1.15rem; line-height:1.7; color:#fff;}
.about-panel .fc-icon{width:60px; height:60px;}
.about-card{padding:30px 32px;}
.about-card h4{font-size:1.5rem;}
.about-card .fc-icon{width:40px; height:40px;}
.value-chip h5{font-size:1.2rem;}
.channel b{font-size:1.2rem;}
