:root{
  --navy-deep:#1B2A3A;   /* base navy — tono de referencia del cliente */
  --navy:#25384D;
  --navy-soft:#4C6480;
  --gray:#BAB9B6;        /* SW 7668 March Wind */
  --gray-dark:#787876;
  --white:#F7F5EF;
  --paper:#F7F5EF;       /* off-white cálido */
  --pure:#FFFFFF;
  --green:#9BAAA2;       /* SW 6213 Halcyon Green */
  --green-dark:#606964;  /* Halcyon Green oscurecido, para texto/CTA con contraste AA */
  --ink:#25384D;
  --ink-soft:#5B6478;
  --line:#E3E0D6;
  --maxw:1100px;
  --radius-sm:6px;
  --radius:12px;
  --shadow-sm:0 1px 2px rgba(20,28,38,.05), 0 1px 1px rgba(20,28,38,.04);
  --shadow-md:0 10px 26px rgba(20,28,38,.09), 0 2px 8px rgba(20,28,38,.05);
  --shadow-lg:0 22px 44px rgba(20,28,38,.16);
  --mono:'JetBrains Mono', ui-monospace, SFMono-Regular, monospace;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter', sans-serif; font-weight:400; color:var(--ink);
  background:var(--pure); line-height:1.6; -webkit-font-smoothing:antialiased;
}
h1,h2,h3{ font-family:'Space Grotesk', sans-serif; letter-spacing:-0.02em; }
a{ color:inherit; }
img{ max-width:100%; display:block; }
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 32px; }
.overline{ font-family:var(--mono); font-weight:700; font-size:12.5px; letter-spacing:0.08em; text-transform:uppercase; }
a:focus-visible, button:focus-visible, summary:focus-visible{ outline:3px solid var(--green-dark); outline-offset:3px; }
.skip-link{ position:absolute; left:-999px; top:0; background:var(--green-dark); color:var(--pure); padding:10px 16px; z-index:200; }
.skip-link:focus{ left:16px; top:16px; }
@media (prefers-reduced-motion: reduce){ *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; } }

/* ---------- Nav ---------- */
header.site{ position:sticky; top:0; z-index:100; background:rgba(247,245,239,0.88); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); box-shadow:0 1px 0 rgba(20,28,38,.05), 0 8px 24px rgba(20,28,38,.03); }
nav{ display:flex; align-items:center; justify-content:space-between; max-width:var(--maxw); margin:0 auto; padding:16px 32px; gap:24px; }
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; flex:none; }
.brand img{ height:32px; width:auto; }
.line-badge{
  font-family:var(--mono); font-weight:700; font-size:11.5px; color:var(--green-dark);
  border-left:1px solid var(--gray); padding-left:10px; margin-left:2px; letter-spacing:0.03em;
}
.nav-links{ display:flex; gap:30px; list-style:none; margin-left:auto; }
.nav-links a{ font-weight:600; font-size:14px; text-decoration:none; color:var(--navy); position:relative; padding:4px 0; white-space:nowrap; }
.nav-links a::after{ content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--green-dark); transition:width .25s ease; }
.nav-links a:hover::after, .nav-links a.active::after{ width:100%; }
.nav-links a.nav-external{ display:inline-flex; align-items:center; gap:5px; color:var(--green-dark); }
.nav-links a.nav-external svg{ opacity:.75; }
.nav-cta{ background:var(--navy); color:var(--pure); font-weight:600; font-size:14px; padding:11px 22px; border-radius:var(--radius-sm); text-decoration:none; white-space:nowrap; flex:none; box-shadow:var(--shadow-sm); transition:background .2s ease, transform .2s ease, box-shadow .2s ease; }
.nav-links .nav-links-cta{ display:none; }
.nav-cta:hover{ background:var(--green-dark); transform:translateY(-1px); box-shadow:var(--shadow-md); }
.menu-btn{ display:none; background:none; border:none; cursor:pointer; width:32px; height:24px; position:relative; flex:none; }
.menu-btn span, .menu-btn span::before, .menu-btn span::after{ content:''; position:absolute; left:0; width:100%; height:2px; background:var(--navy); transition:transform .3s cubic-bezier(.5,0,.2,1), opacity .3s ease, top .3s ease, background .3s ease; }
.menu-btn span{ top:11px; } .menu-btn span::before{ top:-8px; } .menu-btn span::after{ top:8px; }
nav.open-list .menu-btn span{ background:transparent; }
nav.open-list .menu-btn span::before{ top:0; transform:rotate(45deg); }
nav.open-list .menu-btn span::after{ top:0; transform:rotate(-45deg); }

/* ---------- Hero ---------- */
.hero{
  background:
    radial-gradient(900px circle at 12% -15%, rgba(255,255,255,.10), transparent 55%),
    radial-gradient(700px circle at 100% 0%, rgba(255,255,255,.06), transparent 50%),
    linear-gradient(165deg, var(--navy) 0%, var(--navy-deep) 60%, #0F1822 120%);
  color:var(--pure); padding:104px 0 76px; position:relative; overflow:hidden;
}
.hero .wrap{ position:relative; z-index:2; }
.hero .overline{ color:var(--green); margin-bottom:16px; opacity:0; animation:heroUp .7s ease .05s both; }
.hero h1{ font-size:clamp(32px,5.2vw,56px); font-weight:800; line-height:1.12; margin-bottom:20px; opacity:0; animation:heroUp .7s ease .14s both; }
.hero p.role{ opacity:0; animation:heroUp .7s ease .22s both; }
.hero p.lead{ font-family:'Inter',sans-serif; font-weight:300; font-size:19px; color:#CBD2DC; max-width:600px; margin-bottom:30px; opacity:0; animation:heroUp .7s ease .22s both; }
.hero-actions{ display:flex; align-items:center; gap:26px; flex-wrap:wrap; opacity:0; animation:heroUp .7s ease .3s both; }
.btn-primary{ background:var(--green-dark); color:var(--pure); font-weight:600; font-size:15px; padding:15px 30px; border-radius:var(--radius-sm); text-decoration:none; display:inline-block; transition:background .2s ease, transform .2s ease, box-shadow .2s ease; border:none; cursor:pointer; box-shadow:var(--shadow-md); }
.btn-primary:hover{ background:var(--green); transform:translateY(-2px); box-shadow:var(--shadow-lg); }
.btn-ghost{ color:var(--pure); font-weight:600; font-size:15px; text-decoration:none; border-bottom:1px solid rgba(255,255,255,0.4); padding-bottom:2px; transition:border-color .2s ease, color .2s ease; }
.btn-ghost:hover{ border-color:var(--green); color:var(--green); }
.hero .cert{ font-size:14px; color:#CBD2DC; margin-bottom:34px; opacity:0; animation:heroUp .7s ease .3s both; }
.hero-tagline{ margin-top:56px; padding-top:22px; border-top:1px solid rgba(255,255,255,0.14); font-family:var(--mono); font-weight:700; font-size:13px; letter-spacing:0.1em; color:var(--pure); opacity:0; animation:heroUp .7s ease .38s both; }
@keyframes heroUp{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion: reduce){ .hero .overline, .hero h1, .hero p.role, .hero p.lead, .hero-actions, .hero .cert, .hero-tagline{ animation:none; opacity:1; } }

/* ---------- Section shell ---------- */
section{ padding:88px 0; }
.section-alt{ background:var(--paper); }
.section-head{ max-width:660px; margin-bottom:52px; }
.section-head.center{ margin:0 auto 52px; text-align:center; }
.section-head .overline{ color:var(--green-dark); margin-bottom:14px; }
.section-head h2{ font-size:clamp(26px,3.4vw,36px); font-weight:800; color:var(--navy); line-height:1.22; }
.section-head p{ margin-top:16px; color:var(--ink-soft); font-size:16px; }

/* ---------- Risk / two-column cards ---------- */
.risk-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.risk-card{ background:var(--pure); border:1px solid var(--line); border-left:3px solid var(--navy); border-radius:var(--radius); padding:28px 30px; box-shadow:var(--shadow-sm); transition:box-shadow .25s ease, transform .25s ease; }
.risk-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); }
.risk-card.is-b{ border-left-color:var(--green-dark); }
.risk-card .tag{ font-family:var(--mono); font-weight:700; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); display:block; margin-bottom:12px; }
.risk-card h3{ font-size:19px; color:var(--navy); margin-bottom:10px; }
.risk-card p{ font-size:15px; color:var(--ink-soft); }
.risk-integrated{ margin-top:28px; background:var(--paper); border-left:3px solid var(--green-dark); border-radius:0 var(--radius) var(--radius) 0; padding:22px 28px; }
.risk-integrated p{ font-size:15px; color:var(--navy); }
.risk-integrated strong{ color:var(--green-dark); }

/* ---------- Lines / línea cards (home) ---------- */
.lines-grid{ display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.line-card{ border:1px solid var(--line); background:var(--pure); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; box-shadow:var(--shadow-sm); transition:box-shadow .3s ease, transform .3s ease; }
.line-card:hover{ box-shadow:var(--shadow-lg); transform:translateY(-4px); }
.line-card img.line-photo{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.line-card-body{ padding:30px 30px 34px; display:flex; flex-direction:column; flex:1; }
.line-card .overline{ color:var(--green-dark); margin-bottom:10px; }
.line-card h3{ font-weight:700; font-size:25px; color:var(--navy); margin-bottom:12px; }
.line-card p{ font-size:15px; color:var(--ink-soft); flex:1; margin-bottom:22px; }
.line-card .led-by{ font-size:13px; color:var(--gray-dark); margin-bottom:20px; }
.line-card .btn-line{ align-self:flex-start; font-weight:700; font-size:14px; color:var(--green-dark); text-decoration:none; border-bottom:1.5px solid var(--green-dark); padding-bottom:2px; transition:color .2s ease, border-color .2s ease; }
.line-card .btn-line:hover{ color:var(--navy); border-color:var(--navy); }

/* ---------- Services grid (bento) ---------- */
.services-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); gap:18px; }
.service-card{ background:var(--pure); border:1px solid var(--line); border-radius:var(--radius); padding:30px 28px; box-shadow:var(--shadow-sm); transition:box-shadow .25s ease, transform .25s ease, border-color .25s ease; }
.service-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); border-color:var(--green-dark); }
.service-card .num{ font-family:var(--mono); font-weight:700; font-size:12px; color:var(--green-dark); margin-bottom:14px; letter-spacing:0.04em; }
.service-card h3{ font-size:17px; color:var(--navy); margin-bottom:8px; font-weight:700; }
.service-card p{ font-size:14px; color:var(--ink-soft); }

/* ---------- Cycle / método ---------- */
.cycle{ display:grid; grid-template-columns:repeat(4,1fr); gap:36px 0; position:relative; }
.cycle-step{ padding:0 24px 0 0; position:relative; }
.cycle-step:not(:last-child)::after{ content:'→'; position:absolute; right:-4px; top:2px; color:var(--green-dark); font-size:18px; font-weight:700; }
.cycle-step .step-num{ font-family:var(--mono); font-weight:700; font-size:30px; color:var(--paper); -webkit-text-stroke:1.5px var(--navy); display:block; margin-bottom:12px; }
.cycle-step h3{ font-size:16px; color:var(--navy); margin-bottom:8px; }
.cycle-step p{ font-size:14px; color:var(--ink-soft); }
.method-note{ margin-top:40px; background:var(--paper); border-left:3px solid var(--green-dark); border-radius:0 var(--radius) var(--radius) 0; padding:20px 26px; font-size:14.5px; color:var(--navy); max-width:820px; }

/* ---------- App promo (ISO Suite) ---------- */
.app-promo{ margin-top:44px; display:flex; align-items:center; gap:26px; flex-wrap:wrap; background:var(--navy-deep); color:var(--pure); border-radius:var(--radius); padding:32px 34px; box-shadow:var(--shadow-md); }
.app-promo-icon{ flex:none; width:52px; height:52px; border-radius:12px; background:rgba(255,255,255,.08); color:var(--green); display:flex; align-items:center; justify-content:center; }
.app-promo-body{ flex:1 1 320px; }
.app-promo-body h3{ font-size:18px; font-weight:800; margin-bottom:8px; }
.app-promo-body p{ font-size:14.5px; color:#C9D2DC; }
.app-promo .btn-primary{ flex:none; }

/* ---------- Ebooks ---------- */
.ebooks-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:22px; }
.ebook-card{ background:var(--pure); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; transition:box-shadow .25s ease; }
.ebook-card:hover{ box-shadow:var(--shadow-md); }
.ebook-cover{ background:var(--navy-deep); color:var(--pure); padding:34px 26px; text-align:center; position:relative; }
.ebook-cover-brand{ font-family:var(--mono); font-size:10px; letter-spacing:.14em; color:var(--green); display:block; margin-bottom:18px; }
.ebook-cover h3{ font-size:24px; font-weight:700; margin-bottom:4px; }
.ebook-cover-sub{ font-size:14px; color:#CBD2DC; font-style:italic; }
.ebook-body{ padding:26px 26px 28px; display:flex; flex-direction:column; flex:1; }
.ebook-tagline{ font-weight:700; color:var(--navy); font-size:14.5px; margin-bottom:10px; }
.ebook-body p:not(.ebook-tagline){ font-size:14px; color:var(--ink-soft); flex:1; margin-bottom:20px; }
.ebook-body .btn-line{ align-self:flex-start; }
.ebook-card.is-soon{ opacity:.88; }
.ebook-card.is-soon .ebook-cover{ background:var(--navy-soft); }
.ebook-card.is-soon .ebook-cover::after{ content:'Próximamente'; position:absolute; top:14px; right:14px; font-family:var(--mono); font-size:9.5px; letter-spacing:.05em; background:rgba(255,255,255,.18); padding:4px 10px; border-radius:100px; }

/* ---------- Team / about card ---------- */
.about-grid{ display:grid; grid-template-columns:1.3fr 1fr; gap:56px; align-items:start; }
.about-copy p{ color:var(--ink-soft); font-size:16px; margin-bottom:20px; }
.about-list{ list-style:none; }
.about-list li{ padding-left:26px; position:relative; margin-bottom:16px; font-size:15px; color:var(--ink-soft); }
.about-list li::before{ content:'—'; position:absolute; left:0; color:var(--green-dark); font-weight:700; }
.about-list strong{ color:var(--navy); }
.about-card{ background:var(--navy-deep); color:var(--pure); border-top:3px solid var(--green-dark); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-md); }
.about-photo{ width:100%; aspect-ratio:4/5; object-fit:cover; display:block; }
.about-card-body{ padding:26px 30px 30px; }
.about-card h3{ font-size:18px; font-weight:800; margin-bottom:6px; }
.about-card .role{ font-size:13px; color:var(--green); }
.stat-bar{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:48px; padding-top:32px; border-top:1px solid var(--line); }
.stat-bar .stat-num{ font-family:var(--mono); font-weight:700; font-size:32px; color:var(--navy); }
.stat-bar .stat-label{ font-size:13.5px; color:var(--ink-soft); margin-top:6px; }
.badge-row{ display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.badge{ font-size:13px; font-weight:600; padding:8px 16px; border-radius:100px; border:1px solid var(--line); color:var(--ink-soft); }
.badge.is-tag{ border-color:var(--green-dark); color:var(--green-dark); }

/* ---------- Cases ---------- */
.case-list{ display:flex; flex-direction:column; gap:28px; }
.case-card{ border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); transition:box-shadow .25s ease; }
.case-card:hover{ box-shadow:var(--shadow-md); }
.case-header{ background:var(--navy-deep); color:var(--pure); padding:22px 30px; display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; }
.case-header h3{ font-size:19px; font-weight:800; }
.case-header .tag{ font-family:var(--mono); font-size:12.5px; color:var(--green); }
.case-body{ padding:30px; display:grid; grid-template-columns:1fr 1fr; gap:26px 40px; }
.case-block .label{ font-family:var(--mono); font-weight:700; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); display:block; margin-bottom:8px; }
.case-block p{ font-size:14.5px; color:var(--ink-soft); }
.case-result{ grid-column:1/-1; border-top:1px solid var(--line); padding-top:20px; }
.case-result p{ font-size:14.5px; color:var(--navy); }
.case-result strong{ color:var(--green-dark); }
.case-value{ grid-column:1/-1; background:var(--paper); border-radius:var(--radius-sm); padding:18px 22px; }
.case-value p{ font-size:14px; color:var(--ink-soft); }
.case-footnote{ font-size:12.5px; font-style:italic; color:var(--ink-soft); margin-top:20px; max-width:820px; }

/* ---------- Compare / roles ---------- */
.opportunity-list{ list-style:none; max-width:820px; margin-bottom:48px; }
.opportunity-list li{ padding:16px 0; border-bottom:1px solid var(--line); font-size:15px; color:var(--ink-soft); }
.opportunity-list li:last-child{ border-bottom:none; }
.opportunity-list strong{ color:var(--navy); }
.compare-grid, .roles-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.compare-card, .role-card{ background:var(--pure); border:1px solid var(--line); border-left:3px solid var(--navy); border-radius:var(--radius); padding:26px 28px; box-shadow:var(--shadow-sm); transition:box-shadow .25s ease, transform .25s ease; }
.compare-card:hover, .role-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); }
.compare-card.is-b, .role-card.is-ext{ border-left-color:var(--green-dark); background:var(--paper); }
.compare-card h3, .role-card h4{ font-size:16px; color:var(--navy); margin-bottom:10px; }
.compare-card ul{ list-style:none; }
.compare-card li{ position:relative; padding-left:22px; margin-bottom:12px; font-size:14.5px; color:var(--ink-soft); }
.compare-card li::before{ content:'—'; position:absolute; left:0; color:var(--green-dark); font-weight:700; }
.role-card p{ font-size:14px; color:var(--ink-soft); }

/* ---------- Why list ---------- */
.why-list{ display:flex; flex-direction:column; }
.why-item{ display:flex; gap:22px; padding:24px 0; border-bottom:1px solid var(--line); }
.why-item:last-child{ border-bottom:none; }
.why-icon{ flex:none; width:40px; height:40px; border-radius:50%; background:var(--paper); display:flex; align-items:center; justify-content:center; color:var(--green-dark); font-weight:700; font-family:var(--mono); font-size:15px; }
.why-item h3{ font-size:16.5px; color:var(--navy); margin-bottom:6px; }
.why-item p{ font-size:14.5px; color:var(--ink-soft); }

/* ---------- Certifications / feature ---------- */
.cert-feature{ background:var(--navy-deep); color:var(--pure); border-radius:var(--radius); padding:32px 34px; display:flex; gap:24px; align-items:flex-start; margin-bottom:44px; box-shadow:var(--shadow-md); }
.cert-feature h3{ font-size:19px; font-weight:800; margin-bottom:8px; }
.cert-feature p{ font-size:14.5px; color:#CBD2DC; }
.cert-feature strong{ color:var(--green); }
.norms-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.norm-card{ border:1px solid var(--line); border-radius:var(--radius); padding:26px 22px; text-align:center; box-shadow:var(--shadow-sm); transition:box-shadow .25s ease, transform .25s ease; }
.norm-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); }
.norm-card .icon{ font-size:22px; color:var(--green-dark); margin-bottom:12px; }
.norm-card h4{ font-size:15.5px; color:var(--navy); margin-bottom:4px; }
.norm-card p{ font-size:13px; color:var(--ink-soft); }

/* ---------- FAQ ---------- */
.faq-list{ max-width:760px; }
.faq-item{ background:var(--pure); border:1px solid var(--line); border-radius:var(--radius); padding:20px 26px; margin-bottom:12px; box-shadow:var(--shadow-sm); transition:box-shadow .2s ease; }
.faq-item[open]{ box-shadow:var(--shadow-md); }
.faq-item summary{ cursor:pointer; list-style:none; font-weight:700; font-size:15.5px; color:var(--navy); display:flex; justify-content:space-between; align-items:center; gap:16px; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:'+'; flex:none; font-size:20px; font-weight:400; color:var(--green-dark); transition:transform .25s ease; }
.faq-item[open] summary::after{ transform:rotate(45deg); }
.faq-item p{ margin-top:14px; font-size:14.5px; color:var(--ink-soft); line-height:1.65; }

/* ---------- Contact ---------- */
.contact{
  background:
    radial-gradient(800px circle at 90% 0%, rgba(255,255,255,.06), transparent 55%),
    linear-gradient(165deg, var(--navy) 0%, var(--navy-deep) 70%);
  color:var(--pure); position:relative; overflow:hidden;
}
.contact .wrap{ position:relative; z-index:1; }
.quote-block{ border-left:3px solid var(--green); padding:6px 0 6px 26px; margin-bottom:44px; max-width:760px; }
.quote-block p{ font-family:'Inter',sans-serif; font-weight:400; font-size:19px; font-style:italic; color:var(--pure); line-height:1.5; }
.contact-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:48px; align-items:start; margin-top:44px; }
.contact-cta{ background:var(--navy-soft); border-radius:var(--radius); padding:32px 30px; }
.contact-cta h3{ font-size:18px; font-weight:800; margin-bottom:14px; }
.contact-cta p{ font-size:14.5px; color:#CBD2DC; }
.contact-form{ display:flex; flex-direction:column; gap:14px; margin-top:24px; }
.contact-form .form-row{ display:flex; flex-direction:column; gap:6px; }
.contact-form label{ font-size:12.5px; font-weight:600; color:var(--pure); }
.contact-form input, .contact-form textarea{
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25); border-radius:var(--radius-sm);
  padding:11px 14px; color:var(--pure); font-family:inherit; font-size:14.5px; transition:border-color .2s ease, background .2s ease;
}
.contact-form input::placeholder, .contact-form textarea::placeholder{ color:rgba(255,255,255,.45); }
.contact-form input:focus, .contact-form textarea:focus{ outline:none; border-color:var(--green); background:rgba(255,255,255,.13); }
.contact-form textarea{ resize:vertical; min-height:92px; }
.contact-form .btn-primary{ align-self:flex-start; margin-top:4px; }
.contact-info{ list-style:none; }
.contact-info li{ display:flex; align-items:center; gap:14px; padding:14px 0; border-bottom:1px solid rgba(255,255,255,0.12); font-size:15px; }
.contact-info li:last-child{ border-bottom:none; }
.contact-info .ico{ color:var(--green); font-size:16px; flex:none; width:20px; display:inline-flex; align-items:center; }
.contact-info a{ text-decoration:none; color:var(--pure); transition:color .2s ease; }
.contact-info a:hover{ color:var(--green); }
.mova-note{ margin-top:30px; padding-top:24px; border-top:1px solid rgba(255,255,255,0.1); font-size:13.5px; color:#A8AEA8; }
.mova-note a{ color:var(--green); font-weight:600; text-decoration:none; border-bottom:1px solid rgba(155,170,162,0.4); }
.mova-note a:hover{ color:var(--pure); }

/* ---------- Footer ---------- */
footer{ background:#10171F; color:#8C9099; padding:36px 0; }
.footer-bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12.5px; }
.footer-bottom strong{ color:var(--pure); }
.footer-links{ display:flex; gap:20px; list-style:none; }
.footer-links a{ text-decoration:none; color:#A9ADB3; transition:color .2s ease; }
.footer-links a:hover{ color:var(--green); }

/* ---------- Marks (isotipo suelto) ---------- */
.mark{ height:44px; width:auto; }
.hero .mark{ height:52px; width:auto; margin:0 auto 26px; }
.cert-feature .mark{ height:40px; width:auto; flex:none; }
.about-card .mark{ height:36px; width:auto; margin-bottom:20px; }

/* ---------- Sello MOVA (elemento de firma) ---------- */
.mova-seal{ display:block; }
.hero .mova-seal--ambient{
  position:absolute; top:-86px; right:-86px; width:380px; height:380px;
  color:var(--pure); opacity:.13; z-index:1; pointer-events:none;
  animation:sealSpin 110s linear infinite;
}
.contact .mova-seal--mark{
  position:absolute; top:40px; right:40px; width:92px; height:92px;
  color:var(--green); opacity:.5; z-index:0; pointer-events:none;
  animation:sealSpin 70s linear infinite;
}
.ebook-cover{ position:relative; }
.ebook-cover .mova-seal--mark{
  width:44px; height:44px; margin:0 auto 14px; color:var(--green);
  animation:sealSpin 80s linear infinite;
}
@keyframes sealSpin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce){ .mova-seal{ animation:none !important; } }
@media (max-width:860px){ .contact .mova-seal--mark{ width:70px; height:70px; top:28px; right:24px; opacity:.4; } }
@media (max-width:620px){ .hero .mova-seal--ambient{ display:none; } }

/* ---------- Risk list (formato lista, variante de risk-grid) ---------- */
.risk-list{ list-style:none; max-width:820px; }
.risk-list li{ padding:18px 0; border-bottom:1px solid var(--line); font-size:15px; color:var(--ink-soft); }
.risk-list li:last-child{ border-bottom:none; }
.risk-list strong{ color:var(--navy); font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:15px; }
.risk-close{ max-width:820px; margin-top:28px; font-size:15px; color:var(--ink-soft); }

/* ---------- Role/cert badges legacy alias ---------- */
.badge.is-norm{ border-color:var(--green-dark); color:var(--green-dark); }
.reveal{ opacity:0; transform:translateY(18px); clip-path:inset(0 0 22% 0); transition:opacity .7s ease, transform .8s cubic-bezier(.16,1,.3,1), clip-path .8s cubic-bezier(.16,1,.3,1); }
.reveal.in-view{ opacity:1; transform:translateY(0); clip-path:inset(0 0 0% 0); }
@media (prefers-reduced-motion: reduce){ .reveal{ transition:none !important; opacity:1; transform:none; clip-path:none; } }

/* ---------- Responsive ---------- */
@media (max-width:860px){
  .about-grid, .roles-grid, .compare-grid, .contact-grid, .risk-grid, .lines-grid{ grid-template-columns:1fr; }
  .case-body{ grid-template-columns:1fr; }
  .stat-bar{ grid-template-columns:1fr 1fr 1fr; gap:16px; }
  .cycle{ grid-template-columns:1fr 1fr; }
  .cycle-step:nth-child(2)::after, .cycle-step:nth-child(4)::after{ display:none; }
  .norms-grid{ grid-template-columns:1fr; }
  .nav-links, .nav-cta{ display:none; }
  .menu-btn{ display:block; }
  nav.open-list .nav-links{ display:flex; flex-direction:column; position:absolute; top:100%; left:0; right:0; background:var(--paper); padding:20px 20px 24px; gap:18px; box-shadow:var(--shadow-md); margin-left:0; }
  nav.open-list .nav-cta{ display:none; }
  nav.open-list .nav-links .nav-links-cta{ display:block; margin-top:4px; }
  .nav-links-cta a{ display:inline-block; background:var(--navy); color:var(--pure); padding:12px 24px; border-radius:var(--radius-sm); box-shadow:var(--shadow-sm); }
  .nav-links-cta a::after{ display:none; }
}
@media (max-width:620px){
  nav{ padding:14px 20px; gap:12px; }
  .wrap{ padding:0 20px; }
  .services-grid{ grid-template-columns:1fr; }
  .cycle{ grid-template-columns:1fr; }
  .cycle-step:not(:last-child)::after{ content:'↓'; right:auto; left:0; top:auto; bottom:-22px; }
  .hero{ padding:70px 0 54px; }
  section{ padding:64px 0; }
  .stat-bar{ grid-template-columns:1fr; gap:20px; text-align:left; }
}

/* ---------- Floating WhatsApp button ---------- */
.whatsapp-float{
  position:fixed; right:22px; bottom:22px; z-index:150; width:56px; height:56px; border-radius:50%;
  background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 26px rgba(37,211,102,.38), 0 2px 8px rgba(15,23,32,.18);
  transition:transform .2s ease, box-shadow .2s ease;
}
.whatsapp-float::before{
  content:''; position:absolute; inset:0; border-radius:50%; background:#25D366;
  animation:waPulse 2.6s ease-out infinite; z-index:-1;
}
.whatsapp-float:hover{ transform:translateY(-3px) scale(1.05); box-shadow:0 16px 32px rgba(37,211,102,.48), 0 4px 10px rgba(15,23,32,.2); }
.whatsapp-float svg{ width:28px; height:28px; }
@keyframes waPulse{ 0%{ transform:scale(1); opacity:.55; } 100%{ transform:scale(1.7); opacity:0; } }
@media (max-width:620px){ .whatsapp-float{ right:16px; bottom:16px; width:52px; height:52px; } }
@media (prefers-reduced-motion: reduce){ .whatsapp-float::before{ animation:none; display:none; } }

/* ---------- Risk card icon ---------- */
.risk-icon{ color:var(--green-dark); margin-bottom:14px; }
.risk-card.is-b .risk-icon{ color:var(--navy); }

/* ---------- Why icon (svg) ---------- */
.why-icon svg{ width:19px; height:19px; }
