/* TODO PET PERÚ 4.0 · SISTEMA VISUAL ÚNICO
   EDITAR MARCA: colores, fuente, anchos y radios exclusivamente en este bloque.
   Azul de ingeniería + verde del logo + acero claro + ámbar para acciones.
   No hay dependencias visuales de las versiones anteriores. */
/* EDITAR FUENTES: archivos locales, sin solicitudes de fuentes a Google. */
@font-face{font-family:Barlow;font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/barlow-400.woff2') format('woff2')}
@font-face{font-family:Barlow;font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/barlow-500.woff2') format('woff2')}
@font-face{font-family:Barlow;font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/barlow-600.woff2') format('woff2')}
@font-face{font-family:Barlow;font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/barlow-700.woff2') format('woff2')}
@font-face{font-family:Barlow;font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/barlow-800.woff2') format('woff2')}
:root {
  --navy:#0c2638;
  --navy-2:#15374a;
  --blue:#164d70;
  --green:#08734b;
  --green-soft:#e7f5ee;
  --green-bright:#6ee0ac;
  --amber:#efb34f;
  --amber-hover:#f8c676;
  --steel:#f0f4f6;
  --white:#fff;
  --ink:#142e40;
  --muted:#516776;
  --line:#d4dfe5;
  --font:'Barlow',Arial,sans-serif;
  --radius:8px;
  --max:1240px;
  --shadow:0 12px 36px #143d5010;
  --ease:cubic-bezier(.2,.7,.2,1);
  --negro:var(--steel);
  --oscuro:#fff;
  --gris:#eef3f6;
  --gris-medio:#fff;
  --blanco:var(--ink);
  --blanco-dim:var(--muted);
  --gris-claro:var(--muted);
  --naranja:var(--green);
  --naranja-claro:#0c875a;
  --verde:#08734b;
  --rojo:#b83b3b;
  --amarillo:#926108;
  color-scheme:light
}
*,*::before,*::after {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:110px
}
body {
  margin:0;
  background:var(--steel);
  color:var(--ink);
  font:400 1rem/1.65 var(--font);
  overflow-wrap:break-word
}
h1,h2,h3,h4,p,figure {
  margin:0
}
h1,h2,h3,h4 {
  font-family:var(--font);
  font-weight:700;
  line-height:1.17;
  letter-spacing:-.025em
}
h2 {
  font-size:clamp(1.85rem,3vw,2.6rem)
}
h3 {
  font-size:1.35rem
}
a {
  color:inherit;
  text-decoration:none
}
button,input,select,textarea {
  font:inherit
}
button {
  cursor:pointer
}
button:disabled {
  cursor:not-allowed;
  opacity:.5
}
img {
  display:block;
  max-width:100%;
  height:auto
}
svg {
  display:block;
  max-width:100%
}
a,button,input,select,textarea {
  -webkit-tap-highlight-color:transparent
}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible {
  outline:3px solid #2682b9;
  outline-offset:4px
}
a:hover {
  color:var(--green)
}
[hidden] {
  display:none!important
}
.shell {
  width:min(var(--max),calc(100% - 80px));
  margin-inline:auto
}
.ui-icon {
  width:24px;
  height:24px;
  flex:0 0 24px;
  vertical-align:middle
}
.sr-only,.honeypot {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
  padding:0!important;
  margin:-1px!important
}
.skip-link {
  position:fixed;
  left:16px;
  top:10px;
  z-index:5000;
  transform:translateY(-160%);
  background:var(--white);
  padding:12px 18px
}
.skip-link:focus {
  transform:none
}
::selection {
  background:#bfe7d5;
  color:var(--ink)
}
a img[src$="whatsapp.svg"],a img[src$="facebook.svg"] {
  width:24px;
  height:24px;
  flex:0 0 24px;
  object-fit:contain
}
/* Los iconos con fondo conservan su ancho; flex no debe comprimir el dibujo. */
.ui-icon {
  flex-basis:auto
}
/* NAVEGACIÓN / LOGOTIPO ORIGINAL, no recreado ni estirado. */
.site-header {
  position:sticky;
  top:-34px;
  z-index:100;
  background:white;
  box-shadow:0 1px 0 var(--line)
}
.utility-bar {
  background:var(--navy);
  color:#dce8ee;
  font-size:.8125rem;
  min-height:34px
}
.utility-bar .shell {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  min-height:34px
}
.utility-bar .shell>span,.utility-bar a {
  display:flex;
  align-items:center;
  gap:9px
}
.utility-bar .ui-icon {
  width:15px;
  height:15px;
  flex-basis:15px
}
.utility-bar a:hover {
  color:var(--green-bright)
}
.utility-bar b {
  font-weight:500
}
.site-nav {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:26px;
  min-height:96px
}
.brand {
  display:flex;
  align-items:center;
  gap:12px;
  flex-shrink:0;
  color:var(--navy)
}
.brand img {
  width:64px;
  height:64px;
  object-fit:contain;
  background:white;
  border-radius:6px
}
.brand>span {
  font-size:1.3rem;
  line-height:1.15;
  font-weight:800;
  letter-spacing:-.04em
}
.brand b {
  color:var(--green)
}
.brand small {
  font-size:.625rem;
  display:block;
  font-weight:600;
  letter-spacing:.075em;
  margin-top:7px;
  color:var(--muted)
}
.nav-links {
  display:flex;
  align-items:center;
  gap:25px;
  list-style:none;
  margin:0;
  padding:0
}
.nav-links a {
  font-size:.9375rem;
  font-weight:500;
  display:block;
  padding:34px 0;
  position:relative;
  color:var(--muted)
}
.nav-links a::after {
  content:'';
  position:absolute;
  height:3px;
  bottom:23px;
  left:0;
  right:0;
  background:var(--green);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .25s
}
.nav-links a[aria-current],.nav-links a:hover {
  color:var(--green)
}
.nav-links a[aria-current]::after,.nav-links a:hover::after {
  transform:scaleX(1)
}
.nav-mobile-contact {
  display:none
}
.nav-contact {
  background:var(--green);
  color:white;
  display:flex;
  align-items:center;
  gap:16px;
  padding:12px 16px;
  border-radius:5px;
  font-weight:600;
  font-size:.875rem;
  white-space:nowrap
}
.nav-contact:hover {
  color:white;
  background:#095d40
}
.nav-contact .ui-icon {
  width:19px;
  height:19px;
  flex-basis:19px
}
.menu-toggle {
  display:none;
  align-items:center;
  gap:9px;
  border:1px solid var(--line);
  background:white;
  border-radius:5px;
  padding:10px 12px;
  color:var(--ink);
  min-height:44px
}
.reading-progress {
  height:2px;
  position:absolute;
  bottom:-2px;
  left:0;
  width:100%;
  background:var(--green);
  transform:scaleX(var(--read-progress,0));
  transform-origin:left;
  pointer-events:none
}
/* COMPONENTES: una escala, iconos constantes y botones siempre alineados. */
.eyebrow,.kicker,.label,.sec-label {
  display:block;
  color:var(--green);
  font-size:.75rem;
  font-weight:700;
  line-height:1.5;
  letter-spacing:.15em;
  text-transform:uppercase;
  margin-bottom:14px
}
.btn-main,.btn-outline-v2,.btn-white,.btn-download,.btn-srv,.btn-cotizar,.btn-enviar,.btn-next,.btn-cta-wa,.btn-wa-ficha {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:50px;
  padding:13px 20px;
  border:1px solid transparent;
  border-radius:5px;
  background:var(--green);
  color:white;
  font:600 .9375rem/1.4 var(--font);
  text-align:center;
  transition:background .25s,transform .25s,box-shadow .25s;
  cursor:pointer;
  text-decoration:none
}
.btn-main:hover,.btn-white:hover,.btn-download:hover,.btn-srv:hover,.btn-cotizar:hover,.btn-enviar:hover,.btn-next:hover,.btn-cta-wa:hover,.btn-wa-ficha:hover {
  background:#095e3e;
  color:white;
  transform:translateY(-2px);
  box-shadow:0 7px 16px #164b2b18
}
.btn-main .ui-icon,.btn-outline-v2 .ui-icon {
  width:20px;
  height:20px;
  flex-basis:20px;
  transition:transform .25s
}
.btn-main:hover .ui-icon {
  transform:translate(2px,-2px)
}
.btn-outline-v2 {
  background:transparent;
  border-color:var(--line);
  color:var(--ink)
}
.btn-outline-v2:hover {
  border-color:var(--green);
  color:var(--green)
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:var(--green);
  font-weight:600;
  font-size:.875rem;
  border:0;
  padding:0;
  background:transparent;
  text-decoration:underline;
  text-underline-offset:5px
}
.text-link .ui-icon {
  width:18px;
  height:18px;
  flex-basis:18px
}
.wide {
  width:100%
}
.visual-heading {
  font-weight:700;
  font-size:1.9rem;
  line-height:1.2;
  letter-spacing:-.03em
}
.section-heading {
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);
  gap:0 80px;
  align-items:end;
  margin-bottom:36px
}
.section-heading>.kicker {
  grid-column:1/-1
}
.section-heading h2 {
  max-width:23em
}
.section-heading>p {
  font-size:1rem;
  color:var(--muted);
  max-width:38em
}
.section-heading>.text-link {
  grid-column:1/-1;
  justify-self:start;
  margin-top:22px
}
.section-heading.inline {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:24px
}
.section-heading.inline>a {
  font-size:.875rem;
  font-weight:600;
  display:inline-flex;
  gap:10px;
  white-space:nowrap
}
.content-section {
  padding:86px 0
}
.section-compact {
  padding:60px 0
}
.alt {
  background:white
}
/* HERO: mensaje legible y fotografía original. EDITAR FOTO en index.html. */
.hero-v4 {
  background:var(--navy);
  color:white;
  padding:58px 0 62px;
  overflow:hidden
}
.hero-layout {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  align-items:center;
  gap:64px
}
.hero-copy .eyebrow {
  color:var(--green-bright);
  display:flex;
  align-items:center;
  gap:9px;
  font-size:.75rem;
  letter-spacing:.11em
}
.hero-copy .eyebrow>span {
  width:7px;
  height:7px;
  background:var(--green-bright);
  border-radius:50%
}
.hero-copy h1 {
  font-size:clamp(2.6rem,4.6vw,4.5rem);
  font-weight:800;
  line-height:1.04;
  letter-spacing:-.04em
}
.hero-line {
  display:block
}
.hero-line.accent {
  color:var(--green-bright);
  margin-top:5px
}
.hero-copy h1 small {
  font-size:1.25rem;
  font-weight:500;
  line-height:1.5;
  letter-spacing:-.01em;
  display:block;
  margin-top:25px;
  color:#ebf3f6;
  max-width:30em
}
.hero-copy>p {
  font-size:1rem;
  line-height:1.75;
  color:#b8cbd7;
  max-width:37em;
  margin-top:18px
}
.hero-copy>p strong {
  color:#e9f1f4;
  font-weight:500
}
.hero-actions {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:28px
}
.hero-actions .btn-main {
  background:var(--amber);
  color:var(--navy)
}
.hero-actions .btn-main:hover {
  background:var(--amber-hover)
}
.hero-actions .btn-outline-v2 {
  border-color:#466273;
  color:#e1edf3
}
.hero-actions .btn-outline-v2:hover {
  border-color:#96b0bf;
  background:#1d4055
}
.hero-actions a {
  padding-inline:16px;
  font-size:.875rem
}
.hero-proof {
  display:flex;
  gap:22px;
  flex-wrap:wrap;
  padding-top:25px;
  margin-top:27px;
  border-top:1px solid #2b475a;
  font-size:.8125rem;
  color:#c9dce6
}
.hero-proof span {
  display:flex;
  align-items:center;
  gap:8px
}
.hero-proof .ui-icon {
  width:20px;
  height:20px;
  flex-basis:20px;
  color:var(--green-bright)
}
.hero-visual {
  position:relative;
  display:grid;
  grid-template-rows:auto minmax(300px,1fr) auto;
  align-self:stretch;
  min-height:510px;
  max-height:680px;
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--navy-2);
  border:1px solid #345267
}
.photo-index {
  font-size:.6875rem;
  letter-spacing:.14em;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 20px;
  color:#c3d8e4
}
.photo-index .ui-icon {
  color:var(--green-bright);
  width:20px;
  height:20px
}
.hero-photo {
  width:100%;
  height:100%;
  min-height:0;
  object-fit:cover;
  object-position:52% center;
  filter:saturate(.78)
}
.hero-visual figcaption {
  display:flex;
  align-items:center;
  gap:14px;
  background:white;
  color:var(--navy);
  padding:22px
}
.photo-caption-icon {
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  background:var(--green-soft);
  border-radius:6px;
  color:var(--green);
  flex:0 0 46px
}
.hero-visual figcaption>div {
  flex:1
}
.hero-visual figcaption>div>span {
  font-size:1.05rem;
  font-weight:700;
  display:block
}
.hero-visual figcaption small {
  font-size:.8125rem;
  color:var(--muted);
  display:block;
  margin-top:4px
}
.hero-visual figcaption>a {
  display:grid;
  place-items:center;
  width:35px;
  height:35px;
  border:1px solid var(--line);
  border-radius:50%
}
.section-nav {
  background:white;
  border-bottom:1px solid var(--line)
}
.section-nav .shell {
  display:flex;
  gap:30px;
  align-items:center;
  min-height:67px;
  overflow-x:auto;
  scrollbar-width:thin
}
.section-nav .shell>span {
  font-size:.6875rem;
  letter-spacing:.12em;
  font-weight:700;
  color:var(--muted);
  margin-right:auto;
  white-space:nowrap
}
.section-nav a {
  font-size:.875rem;
  color:var(--muted);
  white-space:nowrap;
  padding-block:20px;
  border-bottom:2px solid transparent
}
.section-nav a:hover,.section-nav a[aria-current] {
  color:var(--green);
  border-bottom-color:var(--green)
}
/* SEGÚN TU ETAPA: cuatro bloques iguales con imágenes e interacción explícita. */
.stage-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px
}
.stage-card {
  background:white;
  border:1px solid var(--line);
  border-radius:var(--radius);
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(0,.75fr);
  overflow:hidden;
  transition:border-color .3s,box-shadow .3s,transform .3s
}
.stage-card.selected {
  border-color:var(--green);
  box-shadow:0 0 0 1px var(--green)
}
.stage-copy {
  display:flex;
  flex-direction:column;
  padding:26px
}
.num {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:22px
}
.num>.ui-icon {
  color:var(--green);
  background:var(--green-soft);
  width:44px;
  height:44px;
  padding:10px;
  border-radius:7px
}
.num>span {
  font-size:1.25rem;
  color:#6e8696;
  font-weight:600;
  font-variant-numeric:tabular-nums
}
.stage-copy h3 {
  font-size:1.3rem;
  line-height:1.23;
  margin-bottom:12px
}
.stage-copy>p {
  font-size:1rem;
  line-height:1.6;
  color:var(--muted);
  margin-bottom:24px
}
.stage-select {
  margin-top:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:13px 0 0;
  border:0;
  border-top:1px solid var(--line);
  background:transparent;
  color:var(--green);
  font-size:.875rem;
  font-weight:600;
  text-align:left
}
.selected-mark {
  display:grid;
  place-items:center;
  width:29px;
  height:29px;
  border-radius:50%;
  background:var(--steel);
  transition:background .25s,transform .25s
}
.selected-mark .ui-icon {
  width:18px;
  height:18px;
  flex-basis:18px
}
.selected .selected-mark {
  background:var(--green);
  color:white
}
.stage-media {
  overflow:hidden;
  position:relative;
  background:var(--navy)
}
.stage-media img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.83;
  filter:saturate(.6);
  transition:transform .65s var(--ease),opacity .65s,filter .65s
}
.stage-result {
  display:flex;
  align-items:center;
  gap:22px;
  margin-top:24px;
  padding:26px 30px;
  border-radius:var(--radius);
  background:var(--navy);
  color:white
}
.recommend-icon {
  display:grid;
  place-items:center;
  color:var(--green-bright);
  background:#254559;
  border:1px solid #416172;
  width:52px;
  height:52px;
  flex:0 0 52px;
  border-radius:8px
}
.stage-result>div {
  flex:1
}
.stage-result .eyebrow {
  color:var(--green-bright);
  margin-bottom:5px;
  font-size:.6875rem
}
.recommend-title {
  font-size:1.25rem;
  font-weight:600;
  margin-bottom:6px
}
.stage-result #stage-advice {
  color:#bfd1dc;
  font-size:.9375rem;
  line-height:1.55
}
.stage-result .btn-main {
  background:white;
  color:var(--navy);
  font-size:.875rem;
  white-space:nowrap
}
.stage-result .btn-main:hover {
  background:var(--green-soft)
}
@media(hover:hover) {
  .stage-card:hover {
    border-color:#7aa491;
    transform:translateY(-3px);
    box-shadow:var(--shadow)
  }
  .stage-card:hover img {
    transform:scale(1.12) translateX(-3%);
    opacity:.62;
    filter:saturate(.3)
  }
  .stage-card:hover .selected-mark {
    transform:rotate(-35deg)
  }
}
/* SERVICIOS: retícula de tres columnas, títulos, números e iconos uniformes. */
.services-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px
}
.service-card {
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:white;
  position:relative;
  transition:box-shadow .3s
}
.service-media {
  height:156px;
  overflow:hidden;
  background:var(--navy)
}
.service-media img {
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.9;
  filter:saturate(.65);
  transition:transform .65s var(--ease),filter .5s
}
.service-copy {
  padding:24px;
  display:flex;
  flex-direction:column;
  flex:1
}
.service-number {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:18px
}
.service-number>span {
  font-size:1.5rem;
  font-weight:600;
  color:#728c9c
}
.service-number .ui-icon {
  color:var(--green);
  width:35px;
  height:35px;
  background:var(--green-soft);
  padding:7px;
  border-radius:5px
}
.service-copy h3 {
  font-size:1.3rem;
  line-height:1.25;
  min-height:2.5em;
  margin-bottom:12px
}
.service-copy>p {
  font-size:1rem;
  line-height:1.6;
  color:var(--muted);
  margin-bottom:24px
}
.service-link {
  margin-top:auto;
  padding-top:17px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:.875rem;
  font-weight:600;
  color:var(--green)
}
.service-link .ui-icon {
  width:19px;
  height:19px;
  flex-basis:19px;
  transition:transform .3s
}
.service-card::after {
  content:'';
  position:absolute;
  bottom:0;
  left:0;
  width:100%;
  height:3px;
  background:var(--green);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .4s var(--ease)
}
.service-card:focus-within::after {
  transform:scaleX(1)
}
@media(hover:hover) {
  .service-card:hover {
    box-shadow:var(--shadow)
  }
  .service-card:hover img {
    transform:scale(1.08);
    filter:saturate(1)
  }
  .service-card:hover::after {
    transform:scaleX(1)
  }
  .service-card:hover .service-link .ui-icon {
    transform:translateX(5px)
  }
}
/* CATÁLOGO DESTACADO */
.featured-machines {
  border-block:1px solid var(--line);
  background:#e9f0f4
}
.featured-machines .kicker {
  margin-bottom:7px
}
.featured-machines .section-heading {
  margin-bottom:22px
}
.image-reference-note {
  font-size:.8125rem;
  color:var(--muted);
  margin-bottom:22px
}
.machine-strip {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px
}
.machine-mini {
  background:white;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  display:flex;
  flex-direction:column
}
.machine-thumb {
  height:175px;
  background:var(--navy);
  overflow:hidden
}
.machine-thumb img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s;
  filter:saturate(.7)
}
.machine-mini>div:last-child {
  padding:24px;
  flex:1;
  display:flex;
  flex-direction:column
}
.machine-index {
  font-size:.75rem;
  color:var(--green);
  font-weight:600;
  letter-spacing:.07em
}
.machine-name {
  font-size:1.65rem;
  font-weight:700;
  line-height:1.2;
  margin:9px 0 12px;
  letter-spacing:-.025em
}
.machine-mini p:not(.machine-name) {
  font-size:.9375rem;
  color:var(--muted);
  margin-bottom:24px
}
.machine-mini a {
  display:flex;
  justify-content:space-between;
  gap:10px;
  border-top:1px solid var(--line);
  padding-top:16px;
  margin-top:auto;
  font-size:.875rem;
  font-weight:600;
  color:var(--green)
}
.machine-mini:hover .machine-thumb img {
  transform:scale(1.04)
}
/* DIAGRAMA: lectura de izquierda a derecha; vertical en pantallas pequeñas. */
#proceso {
  background:var(--navy);
  color:white
}
#proceso .kicker,#proceso .text-link {
  color:var(--green-bright)
}
#proceso .section-heading>p {
  color:#b9cdd9
}
.process-grid {
  list-style:none;
  padding:0;
  margin:45px 0 0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:24px
}
.process-grid li {
  position:relative;
  display:flex;
  flex-direction:column;
  padding:26px 22px;
  border:1px solid #3a5567;
  border-radius:var(--radius);
  background:#153346
}
.process-grid li:not(:last-child)::after {
  content:'→';
  position:absolute;
  z-index:1;
  right:-24px;
  top:70px;
  color:#aec5d4;
  font-size:1.35rem;
  width:24px;
  text-align:center;
  background:var(--navy)
}
.process-step {
  font-size:.6875rem;
  letter-spacing:.13em;
  color:#b8cddd;
  font-weight:600;
  display:block;
  margin-bottom:20px
}
.process-icon {
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border-radius:7px;
  color:var(--green-bright);
  background:#244c59;
  margin-bottom:22px
}
.process-title {
  font-size:1.25rem;
  font-weight:600;
  line-height:1.25;
  min-height:2.5em;
  margin-bottom:14px
}
.process-title+p {
  font-size:1rem;
  line-height:1.6;
  color:#bed0dc;
  margin-bottom:25px
}
.process-output {
  margin-top:auto;
  border-top:1px solid #3a5567;
  padding-top:16px
}
.process-output small {
  display:block;
  font-size:.75rem;
  color:var(--green-bright);
  margin-bottom:6px
}
.process-output b {
  font-size:.875rem;
  font-weight:500;
  display:block;
  line-height:1.5
}
.process-grid li:hover {
  border-color:#6d978d
}
/* SIMULADOR: controles y resultados con jerarquía real. */
.dashboard-zone {
  padding-block:80px
}
.dashboard-grid {
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);
  gap:26px;
  align-items:stretch
}
.calc-panel {
  padding:32px;
  border:1px solid var(--line);
  background:white;
  border-radius:var(--radius);
  box-shadow:var(--shadow)
}
.panel-head {
  display:flex;
  justify-content:space-between;
  align-items:start;
  gap:18px
}
.panel-head .kicker {
  margin-bottom:10px
}
.visual-heading.small {
  font-size:1.85rem
}
.live-dot {
  display:flex;
  align-items:center;
  gap:6px;
  color:var(--green);
  font-size:.625rem;
  font-weight:700;
  letter-spacing:.04em;
  white-space:nowrap;
  padding-top:3px
}
.live-dot>span {
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--green)
}
.panel-note {
  color:var(--muted);
  font-size:.875rem;
  line-height:1.6;
  margin:18px 0 26px
}
.range-group {
  padding:20px;
  background:var(--steel);
  border-radius:6px;
  margin-bottom:22px
}
.range-group label {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  font-size:.875rem;
  font-weight:500
}
.range-group output {
  font-weight:700;
  color:var(--blue);
  font-size:1rem
}
.range-group input[type=range] {
  width:100%;
  accent-color:var(--green);
  margin:14px 0 0;
  min-height:24px
}
.calc-inputs {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px
}
.calc-inputs label {
  font-size:.875rem;
  font-weight:500
}
.calc-inputs label>span {
  margin-top:7px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:11px 13px;
  border:1px solid var(--line);
  border-radius:5px;
  background:white
}
.calc-inputs b {
  font-size:.875rem;
  font-weight:500;
  color:var(--muted)
}
.calc-inputs input {
  width:100%;
  min-width:0;
  border:0;
  background:transparent;
  color:var(--ink);
  padding:0;
  font-size:1.05rem;
  font-weight:600
}
.calc-results {
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr;
  gap:16px;
  padding:22px 0;
  border-top:1px solid var(--line);
  margin-top:24px
}
.calc-results span {
  display:block;
  font-size:.8125rem;
  line-height:1.4;
  color:var(--muted);
  min-height:2.8em
}
.calc-results strong {
  display:block;
  font-size:1.55rem;
  line-height:1.25;
  margin-top:8px;
  color:var(--green);
  font-weight:700;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.035em
}
.calculator-actions {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  margin-top:20px;
  flex-wrap:wrap
}
.calculator-actions .text-link {
  font-size:.8125rem
}
.field-panel {
  background:var(--navy);
  color:white;
  border-radius:var(--radius);
  overflow:hidden;
  display:flex;
  flex-direction:column
}
.field-panel>img {
  width:100%;
  height:240px;
  object-fit:cover;
  filter:saturate(.7)
}
.field-overlay {
  padding:30px;
  flex:1;
  display:flex;
  flex-direction:column
}
.field-overlay .kicker {
  color:var(--green-bright);
  font-size:.6875rem
}
.field-title {
  font-size:2rem;
  line-height:1.15;
  letter-spacing:-.035em
}
.field-overlay p {
  font-size:1rem;
  color:#bfd2dd;
  margin-block:20px 25px
}
.field-overlay>a {
  display:block;
  color:var(--green-bright);
  border-top:1px solid #456071;
  padding-top:22px;
  font-size:.875rem;
  font-weight:600;
  margin-top:auto
}
.alliance {
  background:var(--green-soft);
  border-block:1px solid #c5e3d5;
  padding-block:30px
}
.alliance-card {
  display:flex;
  align-items:center;
  gap:26px
}
.alliance-mark {
  display:grid;
  place-items:center;
  width:60px;
  height:60px;
  background:white;
  color:var(--green);
  border:1px solid #c5e3d5;
  border-radius:9px;
  flex:0 0 60px
}
.alliance-mark .ui-icon {
  width:30px;
  height:30px
}
.alliance-card>div:nth-child(2) {
  flex:1
}
.alliance-card .kicker {
  margin-bottom:4px;
  font-size:.6875rem
}
.alliance-title {
  font-size:1.5rem;
  line-height:1.25
}
.alliance-card p {
  font-size:.9375rem;
  line-height:1.6;
  color:var(--muted);
  margin-top:8px;
  max-width:49em
}
.alliance-card>a {
  font-size:.875rem;
  font-weight:600;
  border-bottom:1px solid #92b7a3;
  padding-bottom:5px;
  white-space:nowrap
}
/* BÚSQUEDAS / PREGUNTAS ABIERTAS */
.search-control {
  display:flex;
  gap:12px;
  align-items:center;
  border:1px solid var(--line);
  border-radius:6px;
  background:white;
  padding:12px 16px;
  min-height:52px
}
.search-control>.ui-icon {
  color:var(--green);
  width:21px;
  height:21px;
  flex-basis:21px
}
.search-control input {
  flex:1;
  min-width:0;
  outline-offset:7px;
  border:0;
  background:transparent;
  padding:2px;
  color:var(--ink);
  font-size:1rem
}
.search-control input::placeholder {
  color:#728594
}
.search-control [role=status] {
  font-size:.8125rem;
  color:var(--muted);
  white-space:nowrap
}
.faq-search {
  max-width:760px;
  margin-bottom:32px;
  background:var(--steel)
}
.faq-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px
}
.faq-card {
  display:flex;
  align-items:flex-start;
  gap:20px;
  padding:27px;
  background:white;
  border:1px solid var(--line);
  border-radius:var(--radius);
  transition:box-shadow .3s,border-color .3s
}
.faq-icon {
  display:grid;
  place-items:center;
  background:var(--green-soft);
  color:var(--green);
  width:42px;
  height:42px;
  flex:0 0 42px;
  border-radius:7px;
  transition:transform .3s
}
.faq-card:hover {
  border-color:#95b6a5;
  box-shadow:var(--shadow)
}
.faq-card:hover .faq-icon {
  transform:rotate(-7deg)
}
.faq-question {
  font-size:1.1rem;
  font-weight:600;
  line-height:1.35;
  margin-bottom:13px
}
.faq-question+p {
  font-size:1rem;
  line-height:1.7;
  color:var(--muted)
}
.empty-state {
  padding:26px;
  background:var(--green-soft);
  border:1px dashed #9dc5b0;
  border-radius:6px;
  text-align:center;
  margin-top:22px;
  color:var(--muted)
}
.empty-state a {
  color:var(--green);
  text-decoration:underline
}
/* CONTACTO: mismos campos, tamaños y canales en inicio y contacto. */
.contact-zone {
  background:var(--navy);
  color:white
}
.contact-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:88px;
  align-items:start
}
.contact-intro .kicker {
  color:var(--green-bright)
}
.contact-intro h2 {
  font-size:clamp(2rem,3.6vw,3rem);
  max-width:14em
}
.contact-intro>p {
  font-size:1rem;
  line-height:1.8;
  margin-top:24px;
  color:#bdd0dc;
  max-width:35em
}
.contact-channels {
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-top:35px
}
.contact-channels>a {
  display:flex;
  align-items:center;
  gap:15px;
  padding:21px 0;
  border-top:1px solid #355266
}
.channel-icon {
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  flex:0 0 46px;
  border-radius:8px;
  background:#e7f5ee
}
.channel-icon.facebook {
  background:#edf4ff
}
.channel-icon img {
  width:24px;
  height:24px
}
.contact-channels small {
  display:block;
  font-size:.8125rem;
  color:#b9cbd5;
  margin-bottom:5px
}
.contact-channels b {
  display:block;
  font-size:1rem;
  font-weight:500
}
.contact-channels i {
  font-style:normal;
  font-size:1.5rem;
  margin-left:auto;
  color:var(--green-bright)
}
.contact-channels>a:hover {
  color:var(--green-bright)
}
.form-box,.col-form {
  background:white;
  color:var(--ink);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:32px
}
.form-box h3 {
  font-size:1.6rem;
  margin-bottom:10px
}
.form-intro {
  font-size:.875rem;
  color:var(--muted);
  line-height:1.6;
  margin-bottom:24px
}
.form-box>label:not(.honeypot):not(.remember-contact) {
  display:block;
  margin-bottom:18px;
  font-size:.875rem;
  font-weight:500
}
.form-box input:not([type=checkbox]),.form-box select,.form-box textarea,.fg input,.fg select,.fg textarea {
  display:block;
  width:100%;
  min-height:48px;
  padding:11px 13px;
  border:1px solid #c9d8e0;
  border-radius:5px;
  background:#f8fafb;
  color:var(--ink);
  font-size:1rem;
  line-height:1.5;
  margin-top:7px;
  transition:border-color .2s,box-shadow .2s
}
.form-box input:focus,.form-box select:focus,.form-box textarea:focus,.fg input:focus,.fg select:focus,.fg textarea:focus {
  border-color:var(--green);
  box-shadow:0 0 0 3px #08734b0d
}
.form-box textarea,.fg textarea {
  min-height:112px;
  resize:vertical
}
.form-note {
  font-size:.8125rem;
  color:var(--muted);
  line-height:1.6;
  margin-top:16px
}
.form-status {
  font-size:.875rem;
  color:var(--green);
  margin-top:10px
}
.form-status a {
  text-decoration:underline
}
.remember-contact {
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:.875rem;
  font-weight:400;
  line-height:1.5;
  margin:17px 0;
  color:var(--muted)
}
.remember-contact input {
  margin:3px 0 0;
  width:17px;
  height:17px;
  flex:0 0 17px;
  accent-color:var(--green)
}
/* FOOTER, partage et identité communs à toutes les routes. */
.share-strip {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
  background:#e8eff3;
  border-top:1px solid var(--line);
  padding:22px 30px;
  font-size:.8125rem;
  color:var(--muted)
}
.share-link {
  font-weight:600;
  color:var(--blue);
  border-bottom:1px solid #b0c5d0;
  padding:3px 0
}
.site-footer {
  background:#081e2d;
  color:#c7d8e2;
  border-top:1px solid #284252
}
.footer-main {
  display:grid;
  grid-template-columns:1.4fr .8fr .8fr 1.2fr;
  gap:45px;
  padding-block:55px
}
.footer-brand .brand {
  color:white
}
.footer-brand .brand img {
  width:54px;
  height:54px
}
.footer-brand .brand>span {
  font-size:1.1rem
}
.footer-brand .brand b {
  color:var(--green-bright)
}
.footer-brand .brand small {
  display:none
}
.footer-brand>p {
  font-size:.875rem;
  line-height:1.8;
  margin:20px 0 16px;
  color:#a9c0ce;
  max-width:26em
}
.footer-brand ul {
  list-style:none;
  padding:0;
  margin:0;
  font-size:.8125rem;
  line-height:2.1;
  color:#b6cad7
}
.footer-brand li::before {
  content:'✓';
  color:var(--green-bright);
  margin-right:10px
}
.partner-link {
  display:inline-block;
  font-size:.8125rem;
  color:var(--green-bright);
  margin-top:18px
}
.footer-column {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:13px;
  font-size:.875rem;
  line-height:1.5
}
.footer-column>b {
  font-size:.875rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:white;
  border-left:3px solid var(--green-bright);
  padding-left:11px;
  margin-bottom:10px
}
.footer-column a {
  display:flex;
  align-items:center;
  gap:9px
}
.footer-column img[src] {
  width:25px;
  height:25px;
  flex:0 0 25px;
  padding:3px;
  border-radius:5px;
  background:white
}
.footer-column a:hover {
  color:var(--green-bright)
}
.footer-column>span {
  font-size:.8125rem;
  color:#a9c0ce
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:24px;
  border-top:1px solid #2a4354;
  padding-block:24px 98px;
  font-size:.75rem;
  color:#98b0c0
}
.footer-bottom>a {
  white-space:nowrap
}
.nojs-note {
  padding-block:22px
}
.nojs-note a {
  text-decoration:underline
}
/* PÁGINAS INTERIORES: mismo encabezado y misma cuadrícula. */
.page-hero {
  background:var(--navy);
  color:white;
  padding:32px 0 55px
}
.page-hero-inner {
  width:min(var(--max),calc(100% - 80px));
  margin-inline:auto
}
.breadcrumb {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  color:#b0c6d4;
  font-size:.8125rem;
  margin-bottom:32px
}
.breadcrumb a:hover {
  color:var(--green-bright)
}
.page-hero .label {
  color:var(--green-bright)
}
.page-hero .titulo {
  font-size:clamp(2.2rem,4.5vw,3.6rem);
  line-height:1.1;
  max-width:22em;
  font-weight:700
}
.page-hero .subtitulo {
  font-size:1.125rem;
  line-height:1.7;
  max-width:46em;
  margin-top:22px;
  color:#c0d2dd
}
.inner-v4 main>section {
  padding:64px max(40px,calc((100% - var(--max))/2))
}
.sec-titulo {
  font-size:2.1rem
}
.sec-sub {
  color:var(--muted);
  font-size:1rem;
  max-width:45em;
  margin-top:14px
}
.divider {
  height:1px;
  background:var(--line);
  margin:64px 0
}
.lead-magnet-box {
  padding:32px;
  background:var(--green-soft);
  border:1px solid #c5dfd0;
  border-radius:var(--radius);
  margin:48px 0
}
.lead-magnet-box h2 {
  font-size:1.8rem;
  max-width:26em
}
.lead-magnet-box p {
  font-size:1rem;
  color:var(--muted);
  margin:16px 0 24px;
  max-width:45em
}
.table-container {
  width:100%;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:var(--radius);
  margin-top:32px;
  background:white;
  overscroll-behavior-x:contain
}
.table-container>h2 {
  font-size:1.6rem;
  padding:25px;
  margin:0
}
.table-container table {
  min-width:680px
}
table {
  width:100%;
  border-collapse:collapse
}
th {
  padding:17px 19px;
  background:var(--navy);
  color:white;
  font-size:.875rem;
  font-weight:600;
  text-align:left;
  vertical-align:top
}
td {
  padding:17px 19px;
  border-bottom:1px solid var(--line);
  font-size:.9375rem;
  line-height:1.6;
  color:var(--muted);
  vertical-align:top
}
tr:last-child td {
  border-bottom:0
}
tbody tr:nth-child(even) {
  background:#f5f8fa
}
.check,.tag-inc {
  color:var(--green);
  font-weight:600
}
.dash {
  color:var(--muted)
}
/* MAQUINARIA: filtros, tarjetas y comparación sin datos inventados. */
.catalog-search {
  max-width:620px;
  margin-bottom:22px
}
.filtros {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:18px
}
.filtro,.resource-filters button {
  border:1px solid var(--line);
  background:white;
  color:var(--muted);
  padding:10px 20px;
  border-radius:5px;
  font-size:.875rem;
  font-weight:500;
  min-height:44px;
  transition:all .2s
}
.filtro.active,.filtro:hover,.resource-filters button[aria-pressed=true] {
  background:var(--green);
  border-color:var(--green);
  color:white
}
.catalog-count {
  font-size:.8125rem;
  color:var(--muted);
  margin-bottom:25px
}
.catalogo {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  align-items:stretch
}
.maq-card {
  position:relative;
  background:white;
  border:1px solid var(--line);
  border-radius:var(--radius);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  transition:transform .25s,box-shadow .25s
}
.maq-card:hover {
  transform:translateY(-3px);
  box-shadow:var(--shadow)
}
.maq-img {
  height:220px;
  position:relative;
  overflow:hidden;
  background:#e7eff3;
  border-bottom:1px solid var(--line)
}
.maq-img>img {
  width:100%;
  height:100%;
  object-fit:cover
}
.maq-img>div:not(.technical-placeholder) {
  position:absolute;
  bottom:0;
  background:var(--navy);
  color:white;
  left:0;
  right:0;
  padding:10px 14px;
  font-size:.75rem
}
.technical-placeholder {
  display:flex;
  align-items:flex-start;
  justify-content:center;
  flex-direction:column;
  padding:28px;
  gap:12px;
  color:var(--blue)
}
.technical-placeholder .ui-icon {
  width:50px;
  height:50px;
  stroke-width:1.4;
  color:#668596
}
.technical-placeholder>span {
  font-weight:600;
  font-size:1rem;
  letter-spacing:.04em
}
.technical-placeholder>small {
  font-size:.75rem;
  color:var(--muted)
}
.maq-badge {
  position:absolute;
  top:14px;
  right:14px;
  background:var(--navy);
  color:white;
  border-radius:4px;
  padding:5px 10px;
  font-size:.6875rem;
  letter-spacing:.015em
}
.maq-body {
  padding:26px;
  display:flex;
  flex-direction:column;
  flex:1
}
.maq-tipo {
  font-size:.75rem;
  font-weight:600;
  color:var(--green);
  margin-bottom:10px
}
.maq-body h3 {
  font-size:1.75rem;
  margin-bottom:20px
}
.maq-specs {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  margin-bottom:24px
}
.spec {
  padding:12px;
  background:var(--steel);
  border-radius:5px
}
.spec-label {
  font-size:.6875rem;
  color:var(--muted);
  display:block;
  margin-bottom:4px
}
.spec-val {
  display:block;
  font-size:1rem;
  font-weight:600
}
.maq-body .btn-cotizar {
  width:100%;
  margin-top:auto
}
.compare-check {
  display:flex;
  gap:9px;
  align-items:center;
  font-size:.8125rem;
  color:var(--muted);
  margin-top:18px;
  cursor:pointer
}
.compare-check input {
  width:16px;
  height:16px;
  accent-color:var(--green)
}
.comparison-panel {
  padding:24px;
  background:white;
  border:1px solid #91b8a4;
  border-radius:var(--radius);
  margin:26px 0
}
.comparison-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px
}
.comparison-heading .visual-heading {
  font-size:1.3rem
}
.comparison-hint {
  font-size:.875rem;
  margin-top:12px;
  color:var(--muted)
}
#comparison-table {
  overflow-x:auto;
  margin-top:18px
}
#comparison-table table {
  min-width:500px
}
#comparison-table td:first-child {
  font-weight:600;
  color:var(--ink)
}
/* FICHA MODAL */
.ficha-overlay {
  display:none;
  position:fixed;
  inset:0;
  z-index:1000;
  background:#061722d9;
  overflow-y:auto;
  padding:28px 18px;
  overscroll-behavior:contain
}
.ficha-overlay.open {
  display:block
}
.ficha-panel {
  max-width:950px;
  margin:auto;
  background:white;
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 30px 70px #0005
}
.ficha-benefits {
  background:var(--navy);
  color:white;
  padding:35px
}
.ficha-benefits-label {
  font-size:.75rem;
  letter-spacing:.08em;
  color:var(--green-bright);
  margin-bottom:15px
}
.ficha-benefits-title {
  font-size:1.9rem;
  font-weight:600;
  line-height:1.25;
  margin-bottom:28px
}
.benefits-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px
}
.benefit-card {
  padding:20px;
  background:#1f4054;
  border:1px solid #3d5c6f;
  border-radius:7px
}
.benefit-num {
  font-size:2rem;
  font-weight:700;
  color:var(--green-bright);
  line-height:1.1;
  margin-bottom:10px
}
.benefit-label {
  font-size:.8125rem;
  line-height:1.6;
  color:#c8dbe6
}
.benefit-label strong {
  display:block;
  color:white;
  font-size:.9375rem;
  margin-bottom:4px
}
.ficha-header {
  position:sticky;
  top:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:25px 35px;
  border-bottom:1px solid var(--line);
  background:white;
  z-index:10
}
.ficha-header h2 {
  font-size:1.8rem
}
.ficha-header .maq-tipo {
  margin-bottom:6px
}
.ficha-close {
  width:44px;
  height:44px;
  flex:0 0 44px;
  background:var(--steel);
  border:1px solid var(--line);
  color:var(--ink);
  border-radius:5px;
  font-size:1.2rem
}
.ficha-body {
  padding:32px 35px
}
.ficha-section {
  margin-bottom:32px
}
.ficha-section-title {
  font-size:1rem;
  font-weight:600;
  border-bottom:1px solid var(--line);
  padding-bottom:16px;
  margin-bottom:22px
}
.params-resumida {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px
}
.pr {
  background:var(--steel);
  border-radius:5px;
  padding:14px;
  border-left:2px solid var(--green)
}
.pr-label {
  font-size:.75rem;
  line-height:1.4;
  display:block;
  margin-bottom:8px;
  color:var(--muted)
}
.pr-val {
  font-size:1rem;
  font-weight:600;
  display:block;
  line-height:1.4
}
.zona-bloqueada {
  position:relative;
  min-height:285px;
  overflow:hidden
}
.zona-bloqueada-contenido {
  filter:blur(4px);
  max-height:280px;
  overflow:hidden;
  user-select:none;
  pointer-events:none
}
.zona-bloqueada-overlay {
  position:absolute;
  inset:0;
  background:#fffffff0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:24px
}
.zona-lock-icon {
  display:grid;
  place-items:center;
  color:var(--green);
  margin-bottom:12px
}
.zona-lock-msg p {
  font-size:.9375rem;
  line-height:1.6;
  max-width:34em;
  text-align:center;
  margin-bottom:20px;
  color:var(--muted)
}
.ficha-cta {
  padding:25px 35px;
  background:var(--steel);
  border-top:1px solid var(--line);
  display:flex;
  align-items:center;
  gap:22px;
  flex-wrap:wrap
}
.cta-note {
  font-size:.8125rem;
  color:var(--muted);
  line-height:1.65
}
/* SOLUCIONES Y SIMULADOR AVANZADO */
.servicios-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px;
  margin-top:30px
}
.srv-card {
  padding:26px 22px;
  background:white;
  border:1px solid var(--line);
  border-radius:var(--radius);
  display:flex;
  flex-direction:column;
  border-top:3px solid var(--green)
}
.srv-tipo {
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:.75rem;
  font-weight:600;
  color:var(--green);
  margin-bottom:24px
}
.srv-tipo .ui-icon {
  background:var(--green-soft);
  padding:7px;
  width:36px;
  height:36px;
  border-radius:6px
}
.srv-card h3 {
  font-size:1.25rem;
  line-height:1.25;
  min-height:2.5em;
  margin-bottom:16px
}
.srv-card p {
  font-size:1rem;
  color:var(--muted);
  line-height:1.65;
  margin-bottom:23px
}
.srv-price {
  font-size:1.25rem;
  font-weight:700;
  line-height:1.3;
  display:block;
  margin-top:auto;
  margin-bottom:12px
}
.srv-includes {
  font-size:.8125rem;
  color:var(--green);
  line-height:1.5;
  min-height:3em;
  margin-bottom:20px
}
.btn-srv {
  width:100%;
  font-size:.875rem;
  padding-inline:12px
}
.estimation-note {
  font-size:.875rem;
  padding:19px 23px;
  background:var(--green-soft);
  border-left:3px solid var(--green);
  color:var(--muted);
  line-height:1.65;
  margin-top:25px
}
.calc-v2 {
  border:1px solid var(--line);
  background:white;
  border-radius:var(--radius);
  overflow:hidden;
  margin-top:26px
}
.cv2-head {
  padding:32px;
  display:flex;
  justify-content:space-between;
  align-items:start;
  gap:32px;
  background:var(--navy);
  color:white
}
.cv2-head-badge {
  display:flex;
  align-items:center;
  gap:9px;
  color:var(--green-bright);
  font-size:.75rem;
  font-weight:600;
  margin-bottom:16px
}
.cv2-head-badge .ui-icon {
  width:19px;
  height:19px;
  flex-basis:19px
}
.cv2-head h2 {
  font-size:1.85rem;
  margin-bottom:12px
}
.cv2-head p {
  font-size:1rem;
  line-height:1.6;
  color:#bed2df
}
.cv2-disclaimer {
  font-size:.8125rem;
  color:#c0d2df;
  background:#204356;
  border:1px solid #3b5b70;
  border-radius:6px;
  padding:17px;
  max-width:290px;
  line-height:1.65
}
.cv2-disclaimer strong {
  display:block;
  color:var(--green-bright);
  margin-bottom:5px
}
.cv2-steps {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-bottom:1px solid var(--line);
  background:var(--steel)
}
.cv2-step {
  display:flex;
  align-items:center;
  gap:12px;
  padding:20px;
  border-right:1px solid var(--line);
  border-bottom:3px solid transparent;
  cursor:pointer;
  transition:background .2s
}
.cv2-step:last-child {
  border-right:0
}
.cv2-step.active {
  background:var(--green-soft);
  border-bottom-color:var(--green)
}
.cv2-step.done .step-num {
  background:var(--green);
  color:white;
  border-color:var(--green)
}
.step-num {
  display:grid;
  place-items:center;
  width:33px;
  height:33px;
  flex:0 0 33px;
  border:1px solid #b7c7d0;
  border-radius:50%;
  font-size:.875rem;
  font-weight:600;
  color:var(--muted)
}
.cv2-step.active .step-num {
  border-color:var(--green);
  color:var(--green)
}
.step-label {
  font-size:.6875rem;
  color:var(--muted);
  line-height:1.3
}
.step-name {
  font-size:.875rem;
  font-weight:600;
  line-height:1.4;
  margin-top:4px
}
.cv2-panels {
  padding:35px
}
.cv2-panel {
  display:none
}
.cv2-panel.active {
  display:block;
  animation:panel-appear .25s var(--ease)
}
.panel-intro {
  margin-bottom:26px
}
.panel-intro h3 {
  font-size:1.5rem;
  margin-bottom:12px
}
.panel-intro p {
  color:var(--muted);
  font-size:1rem
}
.cv2-fields {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  margin-block:25px
}
.cv2-fields.cols1 {
  grid-template-columns:1fr
}
.fld {
  display:flex;
  flex-direction:column;
  gap:8px
}
.fld label {
  font-size:.9375rem;
  font-weight:600
}
.fld-hint {
  font-size:.8125rem;
  line-height:1.55;
  color:var(--muted)
}
.fld-input-wrap {
  position:relative
}
.fld input:not([type=range]),.fld select {
  border:1px solid #c6d5de;
  border-radius:5px;
  background:#f8fafb;
  width:100%;
  min-height:49px;
  padding:12px 15px;
  font-size:1rem;
  color:var(--ink)
}
.fld input.has-prefix {
  padding-left:43px
}
.fld input.has-suffix {
  padding-right:40px
}
.fld-prefix,.fld-suffix {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  font-size:.875rem;
  color:var(--muted);
  pointer-events:none
}
.fld-prefix {
  left:15px
}
.fld-suffix {
  right:15px
}
.fld-slider-row {
  display:flex;
  align-items:center;
  gap:18px
}
.fld input[type=range] {
  flex:1;
  min-width:0;
  accent-color:var(--green);
  min-height:26px
}
.slider-val {
  font-size:1.2rem;
  font-weight:600;
  color:var(--green);
  min-width:80px;
  text-align:right
}
.cv2-option-cards {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-top:14px
}
.opt-card {
  background:white;
  border:1px solid var(--line);
  border-radius:6px;
  padding:22px 16px;
  text-align:center;
  cursor:pointer;
  transition:background .2s,border-color .2s
}
.opt-card.selected {
  border-color:var(--green);
  background:var(--green-soft);
  box-shadow:inset 0 0 0 1px var(--green)
}
.opt-icon {
  display:grid;
  place-items:center;
  color:var(--green);
  margin-bottom:15px
}
.opt-icon .ui-icon {
  width:30px;
  height:30px
}
.opt-label {
  font-size:.9375rem;
  font-weight:600;
  line-height:1.35
}
.opt-desc {
  font-size:.8125rem;
  color:var(--muted);
  line-height:1.5;
  margin-top:8px
}
.live-summary {
  display:flex;
  align-items:center;
  gap:35px;
  background:var(--steel);
  border:1px solid var(--line);
  border-radius:6px;
  padding:20px;
  margin-top:22px;
  flex-wrap:wrap
}
.live-summary>div>div {
  font-size:.8125rem;
  color:var(--muted)
}
.live-summary span {
  font-size:1.5rem;
  font-weight:600;
  color:var(--green)
}
.cv2-nav {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:22px 35px;
  border-top:1px solid var(--line);
  gap:20px
}
.btn-prev,.btn-recalcular {
  border:1px solid var(--line);
  background:white;
  padding:12px 20px;
  min-height:48px;
  border-radius:5px;
  color:var(--muted);
  font-size:.875rem;
  font-weight:500
}
.step-counter {
  font-size:.8125rem;
  color:var(--muted)
}
.cv2-results {
  display:none
}
.cv2-results.visible {
  display:block
}
.res-verdict-band {
  padding:30px 35px;
  display:flex;
  align-items:center;
  gap:22px;
  border-bottom:1px solid var(--line);
  background:var(--green-soft)
}
.band-amarillo {
  background:#fff5df
}
.band-rojo {
  background:#fceeee
}
.verdict-emoji {
  font-size:2rem;
  flex:0 0 40px
}
.verdict-text h3 {
  font-size:1.6rem;
  margin-bottom:12px
}
.verdict-text p {
  font-size:1rem;
  line-height:1.7;
  color:var(--muted);
  max-width:57em
}
.res-kpis {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border-bottom:1px solid var(--line)
}
.res-kpis-2 {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border-bottom:1px solid var(--line)
}
.kpi-big {
  background:white;
  padding:28px 24px;
  display:flex;
  flex-direction:column;
  gap:10px
}
.kpi-big-label {
  font-size:.8125rem;
  color:var(--muted)
}
.kpi-big-val {
  font-size:1.8rem;
  line-height:1.2;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.03em
}
.kpi-big-val.verde,.kpi-big-val.naranja {
  color:var(--green)
}
.kpi-big-val.rojo {
  color:var(--rojo)
}
.kpi-big-val.amarillo {
  color:var(--amarillo)
}
.kpi-big-sub {
  font-size:.8125rem;
  line-height:1.5;
  color:var(--muted)
}
.res-score {
  display:flex;
  align-items:center;
  gap:35px;
  padding:30px 35px;
  border-bottom:1px solid var(--line)
}
.score-ring {
  width:110px;
  height:110px;
  position:relative
}
.score-ring svg {
  width:110px;
  height:110px;
  transform:rotate(-90deg)
}
.score-ring-bg {
  fill:none;
  stroke:#dce7ec;
  stroke-width:9
}
.score-ring-fill {
  fill:none;
  stroke-width:9;
  stroke-linecap:round;
  stroke-dasharray:283;
  transition:stroke-dashoffset .6s
}
.score-center {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center
}
.score-num {
  font-size:1.8rem;
  font-weight:700;
  line-height:1.2
}
.score-of {
  font-size:.75rem;
  color:var(--muted)
}
.score-desc {
  flex:1;
  min-width:0
}
.score-desc h4 {
  font-size:1.1rem;
  margin-bottom:20px
}
.score-bars {
  display:grid;
  gap:12px
}
.sbar-row {
  display:flex;
  align-items:center;
  gap:16px
}
.sbar-label {
  font-size:.8125rem;
  flex:0 0 168px;
  color:var(--muted)
}
.sbar-track {
  height:6px;
  background:#e0e9ee;
  border-radius:9px;
  flex:1;
  overflow:hidden
}
.sbar-fill {
  height:100%;
  border-radius:9px;
  transition:width .5s
}
.sbar-pct {
  font-size:.75rem;
  flex:0 0 36px;
  text-align:right;
  color:var(--muted)
}
.res-cta {
  padding:30px 35px;
  background:var(--steel);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px
}
.res-cta-text h4 {
  font-size:1.1rem;
  margin-bottom:10px
}
.res-cta-text p {
  font-size:.9375rem;
  color:var(--muted);
  max-width:38em
}
.res-cta-btns {
  display:flex;
  gap:12px;
  flex-wrap:wrap
}
.btn-cta-wa svg {
  width:20px;
  height:20px;
  flex:0 0 20px
}
.comparativa {
  margin-top:60px
}
/* RECURSOS Y ARTÍCULOS: categorías y navegación editorial. */
.page-recursos .lead-box {
  display:grid;
  grid-template-columns:1.4fr .6fr;
  gap:45px;
  align-items:center;
  background:var(--navy);
  color:white;
  padding:42px;
  border-radius:10px;
  margin-bottom:55px;
  overflow:hidden
}
.lead-text h2 {
  font-size:2rem;
  line-height:1.2
}
.lead-text p {
  font-size:1rem;
  color:#c2d5e1;
  line-height:1.7;
  margin:20px 0 26px;
  max-width:40em
}
.lead-text .btn-white {
  background:var(--amber);
  color:var(--navy)
}
.lead-text .btn-white:hover {
  background:var(--amber-hover)
}
.guide-number {
  padding:26px;
  border-left:1px solid #3a586b;
  color:#83dcb0
}
.guide-number>.ui-icon {
  width:48px;
  height:48px;
  margin-bottom:20px;
  stroke-width:1.4
}
.guide-number strong {
  display:block;
  font-size:5rem;
  line-height:1;
  font-weight:700;
  letter-spacing:-.06em
}
.guide-number span {
  display:block;
  font-size:.6875rem;
  color:#c2d5e1;
  margin-top:18px;
  letter-spacing:.06em
}
.page-recursos main>section>h2 {
  font-size:1.8rem
}
.resource-tools {
  margin:27px 0;
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap
}
.resource-tools .search-control {
  flex:1;
  min-width:250px
}
.resource-filters {
  display:flex;
  gap:8px;
  flex-wrap:wrap
}
.resource-filters button {
  padding-inline:14px;
  font-size:.8125rem
}
.resource-tools [role=status] {
  width:100%;
  font-size:.8125rem;
  color:var(--muted)
}
.grid-recursos {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px
}
.art-card {
  display:flex;
  flex-direction:column;
  background:white;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  transition:box-shadow .3s,transform .3s
}
.art-card:hover {
  box-shadow:var(--shadow);
  transform:translateY(-4px);
  color:var(--ink)
}
.art-img {
  height:185px;
  background:var(--navy);
  overflow:hidden
}
.art-img img {
  height:100%;
  width:100%;
  object-fit:cover;
  filter:saturate(.7);
  transition:transform .5s
}
.art-card:hover img {
  transform:scale(1.05)
}
.art-body {
  padding:26px;
  display:flex;
  flex-direction:column;
  flex:1
}
.article-category {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:.75rem;
  color:var(--green);
  font-weight:600;
  margin-bottom:17px
}
.article-category .ui-icon {
  width:17px;
  height:17px;
  flex-basis:17px
}
.art-body h3 {
  font-size:1.3rem;
  line-height:1.3;
  margin-bottom:15px
}
.art-body p {
  font-size:1rem;
  color:var(--muted);
  line-height:1.7;
  margin-bottom:25px
}
.read-more {
  font-size:.875rem;
  color:var(--green);
  font-weight:600;
  margin-top:auto;
  border-top:1px solid var(--line);
  padding-top:18px
}
.article-layout {
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  gap:64px;
  padding-block:55px
}
.article-sidebar {
  align-self:start;
  position:sticky;
  top:130px
}
.article-sidebar nav {
  background:white;
  border:1px solid var(--line);
  padding:22px;
  border-radius:7px;
  margin-bottom:26px
}
.article-sidebar nav>p {
  font-size:.6875rem;
  font-weight:600;
  letter-spacing:.07em;
  color:var(--muted);
  margin-bottom:20px
}
.article-sidebar nav a {
  font-size:.875rem;
  line-height:1.5;
  display:flex;
  gap:9px;
  padding-block:13px;
  border-bottom:1px solid var(--line);
  color:var(--muted)
}
.article-sidebar nav a:last-child {
  border:0
}
.article-sidebar nav a span {
  font-size:.75rem;
  color:var(--green);
  padding-top:2px
}
.article-sidebar>a {
  margin-bottom:22px
}
.article-sidebar>.btn-main {
  width:100%;
  font-size:.8125rem;
  padding-inline:12px
}
.art-content {
  font-size:1.125rem;
  line-height:1.9;
  color:var(--muted);
  max-width:790px;
  min-width:0;
  background:white;
  padding:38px 40px;
  border:1px solid var(--line);
  border-radius:var(--radius)
}
.art-content h2 {
  font-size:1.65rem;
  color:var(--ink);
  line-height:1.3;
  margin:36px 0 18px
}
.art-content>h2:first-child {
  margin-top:0
}
.art-content h3 {
  font-size:1.35rem;
  color:var(--ink);
  margin:26px 0 14px
}
.art-content p {
  margin-bottom:21px
}
.art-content ul {
  margin:20px 0;
  padding-left:24px
}
.art-content li {
  margin-bottom:13px
}
.art-content strong {
  color:var(--ink)
}
.art-content .highlight {
  color:var(--green)
}
.art-content .lead-box {
  padding:27px;
  background:var(--green-soft);
  border-left:3px solid var(--green);
  border-radius:6px;
  margin:35px 0
}
.art-content .lead-box h2 {
  font-size:1.5rem;
  margin-top:0
}
.art-content .lead-box p {
  font-size:1rem
}
.art-content a:not(.btn-white) {
  color:var(--green);
  text-decoration:underline;
  text-underline-offset:4px
}
/* NOSOTROS Y CONTACTO */
.about-content {
  max-width:1100px;
  margin:auto
}
.about-section {
  margin-bottom:60px
}
.about-section:last-child {
  margin-bottom:0
}
.about-section h2 {
  font-size:1.9rem;
  margin-bottom:24px
}
.about-section p {
  font-size:1.05rem;
  color:var(--muted);
  line-height:1.8;
  margin-bottom:18px;
  max-width:61em
}
.about-section li {
  font-size:1rem;
  color:var(--muted);
  line-height:1.8;
  margin-bottom:14px
}
.about-section ul {
  padding-left:22px
}
.about-section strong {
  color:var(--ink)
}
.founder-card {
  padding:38px 42px;
  background:white;
  border:1px solid var(--line);
  border-left:4px solid var(--green);
  border-radius:var(--radius)
}
.founder-name {
  font-size:2rem;
  font-weight:700;
  letter-spacing:-.03em;
  margin-bottom:9px
}
.founder-title {
  font-size:1rem;
  font-weight:500;
  color:var(--green);
  margin-bottom:24px
}
.founder-bio {
  font-size:1.05rem;
  color:var(--muted);
  line-height:1.85
}
.team-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
  margin-top:30px
}
.team-card {
  padding:27px;
  background:white;
  border:1px solid var(--line);
  border-radius:var(--radius)
}
.team-role {
  font-size:1.15rem;
  font-weight:600;
  color:var(--green);
  margin-bottom:14px
}
.team-desc {
  font-size:1rem;
  line-height:1.7;
  color:var(--muted)
}
.valores {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px;
  margin-top:30px
}
.valor {
  padding:25px 22px;
  background:white;
  border:1px solid var(--line);
  border-radius:var(--radius)
}
.valor-icon {
  display:grid;
  place-items:center;
  color:var(--green);
  background:var(--green-soft);
  width:44px;
  height:44px;
  border-radius:6px;
  margin-bottom:22px
}
.valor-title {
  font-size:1.1rem;
  font-weight:600;
  margin-bottom:12px
}
.valor-text {
  font-size:1rem;
  color:var(--muted);
  line-height:1.7
}
.contacto-wrap {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:50px;
  width:min(1100px,calc(100% - 80px));
  margin:55px auto;
  align-items:start
}
.col-canales {
  padding:32px 0
}
.col-canales h2 {
  font-size:1.9rem;
  margin-bottom:30px
}
.canales {
  display:grid;
  gap:15px
}
.canal {
  display:flex;
  align-items:center;
  gap:15px;
  padding:23px;
  background:white;
  border:1px solid var(--line);
  border-radius:7px;
  transition:border-color .25s,transform .25s
}
.canal:hover {
  border-color:#97b9a7;
  transform:translateX(3px)
}
.canal-icon {
  display:grid;
  place-items:center;
  width:43px;
  height:43px;
  flex:0 0 43px;
  border-radius:7px;
  background:var(--green-soft)
}
.canal:nth-child(2) .canal-icon {
  background:#edf4ff
}
.canal>div:nth-child(2) {
  flex:1
}
.canal>div:nth-child(2)>div:first-child {
  font-size:.8125rem;
  color:var(--muted);
  margin-bottom:4px
}
.canal>div:nth-child(2)>div:last-child {
  font-size:1.05rem;
  font-weight:600
}
.canal>.ui-icon {
  color:var(--green)
}
.col-form h2 {
  font-size:1.65rem;
  margin-bottom:26px
}
.col-form>.eyebrow {
  font-size:.6875rem
}
.fg {
  margin-bottom:20px
}
.fg label {
  display:block;
  font-size:.875rem;
  font-weight:500
}
.fg label span {
  color:var(--green)
}
.btn-enviar {
  width:100%
}
/* FLOTANTES: 2 lanzadores compactos, paneles acotados, ningún icono sin tamaño. */
.floating-tools {
  position:fixed;
  right:24px;
  bottom:max(18px,env(safe-area-inset-bottom));
  display:flex;
  align-items:center;
  gap:10px;
  z-index:150
}
.tool-launcher {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:52px;
  padding:12px 17px;
  border:1px solid #bdcdd6;
  background:white;
  color:var(--ink);
  border-radius:50px;
  font-size:.875rem;
  font-weight:600;
  box-shadow:0 6px 24px #092d4224
}
.tool-launcher>img {
  width:25px;
  height:25px;
  flex:0 0 25px
}
.tool-launcher .ui-icon {
  width:21px;
  height:21px;
  flex-basis:21px;
  color:var(--green)
}
.wa-launcher {
  background:#08734b;
  color:white;
  border-color:#08734b
}
.wa-launcher:hover {
  background:#095d40
}
.calc-launcher:hover {
  background:var(--green-soft)
}
.tool-launcher[aria-expanded=true] {
  outline:2px solid #8abca4;
  outline-offset:3px
}
.tool-panel {
  position:absolute;
  bottom:68px;
  right:0;
  width:330px;
  max-width:calc(100vw - 32px);
  max-height:calc(100dvh - 156px);
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:23px;
  background:white;
  color:var(--ink);
  border:1px solid var(--line);
  border-top:3px solid var(--green);
  border-radius:10px;
  box-shadow:0 16px 60px #08243635;
  animation:panel-appear .2s var(--ease)
}
.tool-panel-head {
  display:flex;
  gap:16px;
  align-items:start;
  margin-bottom:17px
}
.tool-panel-head small {
  font-size:.625rem;
  letter-spacing:.12em;
  color:var(--green);
  font-weight:600;
  text-transform:uppercase;
  display:block;
  margin-bottom:6px
}
.tool-panel-head strong {
  font-size:1.25rem;
  line-height:1.2;
  font-weight:700;
  display:block
}
.widget-close {
  width:34px;
  height:34px;
  flex:0 0 34px;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:50%;
  color:var(--muted);
  background:var(--steel);
  margin-left:auto;
  font-size:1.4rem
}
.widget-close .ui-icon {
  width:17px;
  height:17px
}
.tool-panel>p {
  font-size:.875rem;
  line-height:1.7;
  color:var(--muted);
  margin-bottom:18px
}
.tool-tags {
  display:flex;
  gap:5px;
  flex-wrap:wrap;
  margin-bottom:18px
}
.tool-tags span {
  font-size:.6875rem;
  color:var(--green);
  background:var(--green-soft);
  padding:4px 7px;
  border-radius:3px
}
.tool-panel .btn-main {
  font-size:.875rem;
  width:100%;
  min-height:45px;
  padding:11px
}
.wa-questions {
  display:grid;
  gap:9px
}
.wa-questions a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border:1px solid var(--line);
  padding:13px;
  border-radius:6px;
  font-size:.875rem;
  line-height:1.4
}
.wa-questions a:hover {
  background:var(--green-soft);
  border-color:#8eb8a1;
  color:var(--green)
}
.wa-panel-note {
  font-size:.75rem!important;
  margin:16px 0 0!important
}
@keyframes panel-appear {
  from {
    opacity:0;
    transform:translateY(8px)
  }
  to {
    opacity:1;
    transform:none
  }
}
/* La ficha permite un cierre pegado al borde superior al recorrer su contenido. */
.ficha-panel {
  overflow:clip
}
.process-output b {
  min-height:3em
}
.live-summary>span:first-child {
  font-size:1rem;
  font-weight:500;
  color:var(--muted)
}
/* ADAPTACIÓN: rejillas fluidas, orden de lectura intacto, sin alturas que corten texto. */
@media(max-width:1180px) {
  .shell,.page-hero-inner {
    width:calc(100% - 64px)
  }
  .site-nav {
    gap:20px
  }
  .nav-links {
    gap:18px
  }
  .brand img {
    width:54px;
    height:54px
  }
  .brand>span {
    font-size:1.15rem
  }
  .brand small {
    font-size:.5625rem
  }
  .nav-contact {
    font-size:.8125rem;
    gap:10px;
    padding:11px 13px
  }
  .hero-layout {
    gap:36px
  }
  .hero-copy h1 {
    font-size:3.3rem
  }
  .hero-copy h1 small {
    font-size:1.125rem
  }
  .hero-actions a {
    padding-inline:14px;
    font-size:.8125rem
  }
  .hero-proof {
    gap:15px;
    font-size:.75rem
  }
  .hero-visual {
    min-height:560px
  }
  .section-heading {
    column-gap:40px
  }
  .stage-copy {
    padding:23px
  }
  .services-grid {
    gap:20px
  }
  .service-copy {
    padding:22px
  }
  .process-grid {
    gap:20px
  }
  .process-grid li {
    padding:23px 18px
  }
  .process-grid li:not(:last-child)::after {
    right:-20px;
    width:20px
  }
  .contact-grid {
    gap:50px
  }
  .footer-main {
    gap:28px
  }
  .inner-v4 main>section {
    padding-inline:32px
  }
  .servicios-grid {
    grid-template-columns:1fr 1fr
  }
  .srv-card {
    padding:28px
  }
  .srv-card h3 {
    min-height:0
  }
  .srv-includes {
    min-height:0
  }
  .srv-price {
    margin-top:auto
  }
  .article-layout {
    gap:35px;
    grid-template-columns:220px minmax(0,1fr)
  }
  .art-content {
    padding:32px
  }
  .dashboard-grid {
    grid-template-columns:1.3fr .8fr
  }
  .panel-head {
    flex-wrap:wrap
  }
  .live-dot {
    display:none
  }
}
@media(max-width:1020px) {
  .site-nav {
    min-height:82px
  }
  .menu-toggle {
    display:flex;
    margin-left:auto
  }
  .nav-links {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    background:white;
    padding:12px 32px 24px;
    border-bottom:1px solid var(--line);
    box-shadow:0 20px 35px #15364b18;
    max-height:calc(100dvh - 95px);
    overflow-y:auto
  }
  .nav-links.open {
    display:flex
  }
  .nav-links a {
    padding:13px 0;
    font-size:1rem
  }
  .nav-links a::after {
    bottom:6px;
    width:25px
  }
  .nav-mobile-contact {
    display:block
  }
  .hero-layout {
    grid-template-columns:1.1fr .9fr;
    gap:30px
  }
  .hero-copy h1 {
    font-size:2.85rem
  }
  .hero-copy h1 small {
    font-size:1.15rem
  }
  .hero-copy>p {
    font-size:1rem
  }
  .hero-actions a {
    width:100%;
    font-size:.875rem
  }
  .hero-visual figcaption {
    padding:18px;
    gap:12px;
    flex-wrap:wrap
  }
  .hero-visual figcaption>div {
    min-width:140px
  }
  .hero-visual figcaption>a {
    display:none
  }
  .hero-visual figcaption>div>span {
    font-size:1rem
  }
  .photo-caption-icon {
    width:36px;
    height:36px;
    flex-basis:36px
  }
  .hero-proof {
    gap:14px
  }
  .section-nav .shell {
    gap:24px
  }
  .section-nav .shell>span {
    display:none
  }
  .stage-grid {
    gap:18px
  }
  .stage-card {
    grid-template-columns:1.4fr .6fr
  }
  .stage-copy {
    padding:24px
  }
  .stage-result {
    gap:18px;
    padding:24px
  }
  .stage-result .btn-main {
    max-width:165px;
    white-space:normal
  }
  .services-grid {
    grid-template-columns:1fr 1fr
  }
  .service-copy h3 {
    min-height:0
  }
  .process-grid {
    grid-template-columns:1fr 1fr;
    gap:24px
  }
  .process-grid li:not(:last-child)::after {
    display:none
  }
  .process-step {
    display:flex;
    align-items:center;
    gap:12px;
    font-size:.75rem
  }
  .process-title {
    min-height:0
  }
  .process-grid li {
    border-left:3px solid var(--green-bright)
  }
  .dashboard-grid {
    grid-template-columns:1fr
  }
  .field-panel {
    display:grid;
    grid-template-columns:1fr 1fr
  }
  .field-panel>img {
    height:100%;
    min-height:320px
  }
  .calc-results strong {
    font-size:1.9rem
  }
  .calc-results span {
    min-height:0
  }
  .panel-head {
    flex-wrap:nowrap
  }
  .live-dot {
    display:flex
  }
  .contact-grid {
    gap:30px
  }
  .contact-intro h2 {
    font-size:2.4rem
  }
  .footer-main {
    grid-template-columns:1.3fr 1fr;
    gap:35px 45px
  }
  .catalogo {
    grid-template-columns:1fr 1fr
  }
  .cv2-step {
    padding:16px 14px
  }
  .cv2-head {
    flex-direction:column;
    gap:22px
  }
  .cv2-disclaimer {
    max-width:none
  }
  .valores {
    grid-template-columns:1fr 1fr
  }
  .grid-recursos {
    grid-template-columns:1fr 1fr
  }
  .resource-tools .search-control {
    flex-basis:100%
  }
  .contacto-wrap {
    width:calc(100% - 64px);
    gap:28px
  }
  .col-form {
    padding:26px
  }
  .params-resumida {
    grid-template-columns:1fr 1fr
  }
  .res-cta {
    flex-direction:column;
    align-items:start
  }
}
@media(max-width:760px) {
  html {
    scroll-padding-top:105px
  }
  .shell,.page-hero-inner {
    width:calc(100% - 40px)
  }
  .utility-bar .shell {
    justify-content:center
  }
  .utility-bar .shell>span {
    display:none
  }
  .utility-bar a {
    font-size:.75rem
  }
  .site-nav {
    min-height:76px;
    gap:14px
  }
  .brand img {
    width:49px;
    height:49px
  }
  .brand {
    gap:9px
  }
  .brand>span {
    font-size:1.05rem
  }
  .brand small {
    font-size:.5rem;
    letter-spacing:.04em;
    margin-top:6px
  }
  .nav-contact {
    display:none
  }
  .menu-toggle {
    font-size:.875rem;
    padding:8px 11px;
    min-height:42px
  }
  .menu-toggle .ui-icon {
    width:20px;
    height:20px;
    flex-basis:20px
  }
  .nav-links {
    padding-inline:20px
  }
  .hero-v4 {
    padding:38px 0 40px
  }
  .hero-layout {
    grid-template-columns:1fr;
    gap:32px
  }
  .hero-copy h1 {
    font-size:clamp(2.5rem,8.4vw,4rem);
    max-width:16em
  }
  .hero-copy .eyebrow {
    font-size:.6875rem
  }
  .hero-copy h1 small {
    font-size:1.2rem;
    margin-top:22px;
    max-width:30em
  }
  .hero-copy>p {
    font-size:1rem;
    max-width:42em
  }
  .hero-actions {
    display:grid;
    grid-template-columns:1fr 1fr
  }
  .hero-actions a {
    font-size:.875rem;
    padding:12px;
    min-height:55px
  }
  .hero-actions .ui-icon {
    display:none
  }
  .hero-proof {
    font-size:.75rem;
    justify-content:space-between;
    gap:9px;
    margin-top:22px;
    padding-top:22px
  }
  .hero-proof .ui-icon {
    width:17px;
    height:17px;
    flex-basis:17px
  }
  .hero-visual {
    min-height:0;
    height:360px;
    grid-template-rows:auto minmax(0,1fr) auto
  }
  .photo-index {
    padding:11px 17px
  }
  .hero-visual figcaption {
    padding:18px;
    flex-wrap:nowrap
  }
  .hero-visual figcaption>div>span {
    font-size:1.05rem
  }
  .hero-visual figcaption small {
    font-size:.75rem
  }
  .hero-visual figcaption>a {
    display:grid
  }
  .section-nav .shell {
    gap:25px;
    min-height:60px
  }
  .section-nav a {
    padding-block:17px;
    font-size:.8125rem
  }
  .content-section {
    padding-block:56px
  }
  .section-compact {
    padding-block:45px
  }
  .section-heading {
    grid-template-columns:1fr;
    gap:0;
    margin-bottom:28px
  }
  .section-heading h2 {
    font-size:clamp(1.8rem,5.6vw,2.3rem);
    max-width:24em
  }
  .section-heading>p {
    margin-top:18px
  }
  .kicker {
    font-size:.6875rem
  }
  .section-heading.inline {
    flex-wrap:wrap;
    gap:16px
  }
  .visual-heading {
    font-size:1.6rem
  }
  .stage-grid {
    grid-template-columns:1fr
  }
  .stage-card {
    grid-template-columns:1.5fr .85fr
  }
  .stage-copy {
    padding:24px
  }
  .stage-copy h3 {
    font-size:1.25rem
  }
  .stage-copy>p {
    font-size:1rem
  }
  .num {
    margin-bottom:20px
  }
  .stage-result {
    flex-wrap:wrap;
    gap:16px;
    padding:23px
  }
  .stage-result>div {
    min-width:180px
  }
  .recommend-icon {
    width:42px;
    height:42px;
    flex-basis:42px
  }
  .stage-result .btn-main {
    max-width:none;
    width:100%;
    margin-top:3px
  }
  .recommend-title {
    font-size:1.15rem
  }
  .services-grid {
    gap:18px
  }
  .service-media {
    height:135px
  }
  .service-copy {
    padding:21px
  }
  .service-copy h3 {
    font-size:1.2rem
  }
  .service-copy>p {
    font-size:1rem
  }
  .service-link {
    font-size:.8125rem
  }
  .machine-strip {
    grid-template-columns:1fr
  }
  .machine-mini {
    display:grid;
    grid-template-columns:120px minmax(0,1fr)
  }
  .machine-thumb {
    height:100%;
    min-height:205px
  }
  .machine-mini>div:last-child {
    padding:23px
  }
  .machine-name {
    font-size:1.5rem;
    margin-bottom:10px
  }
  .machine-mini p:not(.machine-name) {
    font-size:.875rem;
    margin-bottom:18px
  }
  .process-grid {
    grid-template-columns:1fr;
    gap:20px;
    margin-top:32px
  }
  .process-grid li {
    padding:25px 25px 25px 82px;
    position:relative;
    margin-left:0;
    border-left-width:1px
  }
  .process-icon {
    position:absolute;
    left:22px;
    top:25px;
    width:40px;
    height:40px;
    margin:0
  }
  .process-step {
    margin-bottom:11px
  }
  .process-title {
    font-size:1.25rem;
    margin-bottom:12px
  }
  .process-title+p {
    margin-bottom:21px
  }
  .process-grid li:not(:last-child)::after {
    display:block;
    content:'↓';
    left:33px;
    right:auto;
    top:auto;
    bottom:-21px;
    background:var(--navy);
    font-size:1.15rem;
    height:20px
  }
  .process-output {
    padding-top:14px
  }
  .dashboard-zone {
    padding-block:50px
  }
  .calc-panel {
    padding:25px
  }
  .panel-head {
    gap:10px
  }
  .live-dot {
    display:none
  }
  .visual-heading.small {
    font-size:1.7rem
  }
  .calc-results strong {
    font-size:1.6rem
  }
  .calc-results span {
    min-height:2.8em
  }
  .field-panel>img {
    min-height:340px
  }
  .field-overlay {
    padding:25px
  }
  .field-title {
    font-size:1.65rem
  }
  .field-overlay .kicker {
    font-size:.625rem
  }
  .field-overlay p {
    font-size:1rem
  }
  .alliance-card {
    flex-wrap:wrap;
    gap:17px
  }
  .alliance-mark {
    width:48px;
    height:48px;
    flex-basis:48px
  }
  .alliance-card>div:nth-child(2) {
    min-width:220px
  }
  .alliance-title {
    font-size:1.25rem
  }
  .alliance-card>a {
    margin-left:65px
  }
  .alliance-card p {
    font-size:.9375rem
  }
  .faq-search {
    margin-bottom:24px;
    gap:10px;
    padding:12px
  }
  .faq-search [role=status] {
    display:none
  }
  .faq-search input {
    font-size:.9375rem
  }
  .faq-grid {
    grid-template-columns:1fr;
    gap:16px
  }
  .faq-card {
    padding:24px;
    gap:16px
  }
  .faq-question {
    font-size:1.05rem
  }
  .faq-card .faq-icon {
    width:38px;
    height:38px;
    flex-basis:38px
  }
  .contact-grid {
    grid-template-columns:1fr;
    gap:35px
  }
  .contact-intro h2 {
    max-width:18em;
    font-size:2.2rem
  }
  .contact-intro>p {
    margin-top:18px
  }
  .contact-channels {
    margin-top:22px
  }
  .contact-channels>a {
    padding-block:18px
  }
  .form-box {
    padding:26px
  }
  .footer-main {
    grid-template-columns:1fr 1fr;
    gap:35px 28px;
    padding-block:42px
  }
  .footer-brand {
    grid-column:1/-1
  }
  .footer-column:last-child {
    grid-column:1/-1
  }
  .footer-bottom {
    flex-direction:column;
    gap:14px;
    padding-bottom:95px
  }
  .page-hero {
    padding:26px 0 40px
  }
  .page-hero .titulo {
    font-size:clamp(2rem,6.6vw,3rem)
  }
  .page-hero .subtitulo {
    font-size:1rem;
    margin-top:20px
  }
  .breadcrumb {
    font-size:.75rem;
    margin-bottom:26px
  }
  .inner-v4 main>section {
    padding:42px 20px
  }
  .catalogo {
    gap:20px
  }
  .maq-img {
    height:195px
  }
  .maq-body {
    padding:22px
  }
  .maq-body h3 {
    font-size:1.6rem
  }
  .maq-specs {
    grid-template-columns:1fr
  }
  .spec-label {
    font-size:.75rem
  }
  .comparison-heading {
    flex-direction:column;
    align-items:start;
    gap:14px
  }
  .comparison-panel {
    padding:20px
  }
  .servicios-grid {
    gap:20px
  }
  .srv-card {
    padding:25px
  }
  .sec-titulo {
    font-size:1.8rem
  }
  .divider {
    margin-block:42px
  }
  .cv2-head,.cv2-panels {
    padding:25px 22px
  }
  .cv2-head h2 {
    font-size:1.55rem
  }
  .cv2-head p br {
    display:none
  }
  .cv2-disclaimer {
    padding:15px
  }
  .cv2-steps {
    grid-template-columns:1fr 1fr
  }
  .cv2-step {
    border-bottom:1px solid var(--line);
    padding:16px 13px
  }
  .cv2-step.active {
    border-bottom:3px solid var(--green)
  }
  .cv2-fields {
    grid-template-columns:1fr;
    gap:22px
  }
  .cv2-option-cards {
    grid-template-columns:1fr 1fr
  }
  .panel-intro h3 {
    font-size:1.3rem
  }
  .cv2-nav {
    padding:20px 22px;
    flex-wrap:wrap;
    gap:15px
  }
  .step-counter {
    order:-1;
    width:100%;
    text-align:center
  }
  .btn-next,.btn-prev {
    font-size:.875rem;
    padding:12px 16px
  }
  .res-verdict-band {
    padding:26px 22px;
    align-items:start
  }
  .verdict-emoji {
    font-size:1.7rem;
    flex-basis:30px
  }
  .verdict-text h3 {
    font-size:1.35rem
  }
  .res-kpis {
    grid-template-columns:1fr
  }
  .res-kpis-2 {
    grid-template-columns:1fr 1fr
  }
  .kpi-big {
    padding:22px
  }
  .kpi-big-val {
    font-size:1.5rem
  }
  .res-score {
    padding:26px 22px;
    flex-direction:column;
    align-items:start;
    gap:25px
  }
  .score-desc {
    width:100%
  }
  .sbar-label {
    flex-basis:135px;
    font-size:.75rem
  }
  .sbar-row {
    gap:10px
  }
  .res-cta {
    padding:25px 22px
  }
  .res-cta-btns {
    width:100%
  }
  .res-cta-btns a,.res-cta-btns button {
    width:100%
  }
  .lead-magnet-box {
    padding:26px
  }
  .lead-magnet-box h2 {
    font-size:1.55rem
  }
  .page-recursos .lead-box {
    grid-template-columns:1fr;
    padding:28px;
    gap:28px;
    margin-bottom:40px
  }
  .lead-text h2 {
    font-size:1.6rem
  }
  .guide-number {
    display:none
  }
  .resource-tools {
    gap:13px
  }
  .resource-tools .search-control {
    min-width:0
  }
  .resource-filters {
    gap:7px
  }
  .resource-filters button {
    padding:9px 12px;
    font-size:.75rem
  }
  .grid-recursos {
    gap:20px
  }
  .art-img {
    height:165px
  }
  .art-body {
    padding:22px
  }
  .art-body h3 {
    font-size:1.2rem
  }
  .article-layout {
    grid-template-columns:1fr;
    gap:30px;
    padding-block:36px
  }
  .article-sidebar {
    position:static
  }
  .article-sidebar nav {
    margin-bottom:18px
  }
  .article-sidebar>.btn-main {
    display:none
  }
  .article-sidebar>.text-link {
    margin-bottom:0
  }
  .art-content {
    padding:28px;
    font-size:1.05rem;
    line-height:1.85;
    max-width:none
  }
  .art-content h2 {
    font-size:1.5rem
  }
  .art-content .lead-box {
    padding:22px
  }
  .about-section {
    margin-bottom:42px
  }
  .about-section h2 {
    font-size:1.65rem
  }
  .founder-card {
    padding:28px
  }
  .founder-name {
    font-size:1.7rem
  }
  .team-grid {
    grid-template-columns:1fr;
    gap:16px
  }
  .valores {
    gap:16px
  }
  .valor {
    padding:24px
  }
  .contacto-wrap {
    width:calc(100% - 40px);
    grid-template-columns:1fr;
    gap:28px;
    margin-block:35px
  }
  .col-canales {
    padding:0
  }
  .col-canales h2 {
    font-size:1.6rem;
    margin-bottom:25px
  }
  .canal {
    padding:20px
  }
  .col-form {
    padding:26px
  }
  .col-form h2 {
    font-size:1.5rem
  }
  .ficha-overlay {
    padding:12px
  }
  .ficha-benefits {
    padding:26px 22px
  }
  .ficha-benefits-title {
    font-size:1.5rem
  }
  .benefits-grid {
    grid-template-columns:1fr
  }
  .benefit-card {
    display:grid;
    grid-template-columns:100px 1fr;
    gap:20px;
    align-items:start
  }
  .benefit-num {
    font-size:1.65rem;
    margin:0
  }
  .ficha-header {
    padding:20px 22px
  }
  .ficha-header h2 {
    font-size:1.5rem
  }
  .ficha-body {
    padding:25px 22px
  }
  .ficha-cta {
    padding:24px 22px
  }
  .zona-bloqueada {
    min-height:305px
  }
  .zona-lock-msg p br {
    display:none
  }
  .floating-tools {
    right:16px;
    bottom:max(14px,env(safe-area-inset-bottom));
    gap:9px
  }
  .tool-launcher {
    min-height:49px;
    padding:11px 15px;
    font-size:.8125rem
  }
  .tool-launcher>img {
    width:23px;
    height:23px;
    flex-basis:23px
  }
  .tool-panel {
    bottom:65px;
    width:312px;
    padding:22px;
    max-height:calc(100dvh - 145px)
  }
  .share-strip {
    gap:14px;
    font-size:.75rem
  }
}
@media(max-width:520px) {
  .hero-actions {
    grid-template-columns:1fr
  }
  .hero-actions .ui-icon {
    display:block
  }
  .hero-actions a {
    min-height:49px
  }
  .hero-proof {
    font-size:.6875rem;
    gap:7px
  }
  .hero-proof .ui-icon {
    display:none
  }
  .hero-visual {
    height:320px
  }
  .hero-copy h1 {
    font-size:2.6rem
  }
  .stage-card {
    grid-template-columns:minmax(0,1.5fr) minmax(0,.65fr)
  }
  .stage-copy {
    padding:22px
  }
  .stage-copy h3 {
    font-size:1.2rem
  }
  .stage-copy>p {
    font-size:1rem
  }
  .stage-select {
    font-size:.8125rem
  }
  .services-grid {
    grid-template-columns:1fr
  }
  .service-card {
    display:grid;
    grid-template-columns:100px minmax(0,1fr)
  }
  .service-media {
    height:100%;
    min-height:260px
  }
  .service-media img {
    filter:saturate(.4)
  }
  .service-copy {
    padding:23px 20px
  }
  .service-copy h3 {
    font-size:1.2rem
  }
  .service-number {
    margin-bottom:16px
  }
  .service-number>span {
    font-size:1.35rem
  }
  .service-number .ui-icon {
    width:31px;
    height:31px
  }
  .service-copy>p {
    font-size:1rem;
    margin-bottom:21px
  }
  .field-panel {
    display:flex
  }
  .field-panel>img {
    height:210px;
    min-height:0
  }
  .field-overlay {
    padding:26px
  }
  .field-title {
    font-size:1.8rem
  }
  .calc-panel {
    padding:24px 20px
  }
  .range-group {
    padding:17px
  }
  .range-group label {
    align-items:start;
    flex-direction:column;
    gap:5px
  }
  .calc-inputs {
    gap:15px
  }
  .calc-inputs label {
    font-size:.8125rem
  }
  .calc-results {
    grid-template-columns:1fr;
    gap:13px
  }
  .calc-results>div {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px
  }
  .calc-results span {
    min-height:0;
    max-width:13em
  }
  .calc-results strong {
    margin:0;
    font-size:1.45rem;
    white-space:nowrap
  }
  .faq-card {
    padding:22px 18px;
    gap:13px
  }
  .faq-icon {
    width:34px!important;
    height:34px!important;
    flex-basis:34px!important
  }
  .faq-icon .ui-icon {
    width:21px;
    height:21px
  }
  .alliance-card>div:nth-child(2) {
    min-width:190px
  }
  .alliance-card>a {
    margin-left:0
  }
  .alliance-mark {
    display:none
  }
  .form-box {
    padding:24px 21px
  }
  .contact-channels b {
    font-size:.9375rem
  }
  .catalogo,.grid-recursos,.servicios-grid {
    grid-template-columns:1fr
  }
  .maq-specs {
    grid-template-columns:1fr 1fr
  }
  .maq-img {
    height:210px
  }
  .art-img {
    height:185px
  }
  .resource-filters button {
    padding-inline:11px
  }
  .article-layout {
    width:calc(100% - 32px)
  }
  .art-content {
    padding:25px 20px
  }
  .art-content h2 {
    font-size:1.4rem
  }
  .valores {
    grid-template-columns:1fr
  }
  .params-resumida {
    grid-template-columns:1fr 1fr
  }
  .pr {
    padding:12px
  }
  .pr-val {
    font-size:.9375rem
  }
  .comparison-heading .visual-heading {
    font-size:1.2rem
  }
  .tool-launcher .launcher-label {
    display:none
  }
  .wa-launcher {
    width:51px;
    height:51px;
    padding:12px
  }
  .tool-launcher.calc-launcher {
    font-size:.8125rem;
    padding-inline:16px
  }
  .tool-panel {
    width:292px;
    max-width:calc(100vw - 32px)
  }
  .footer-main {
    gap:32px 20px
  }
  .footer-column {
    font-size:.8125rem
  }
  .brand small {
    display:none
  }
}
@media(max-width:360px) {
  .shell,.page-hero-inner {
    width:calc(100% - 32px)
  }
  .hero-copy h1 {
    font-size:2.25rem
  }
  .stage-copy {
    padding:19px 16px
  }
  .stage-card {
    grid-template-columns:minmax(0,1fr) 74px
  }
  .stage-select {
    font-size:.75rem
  }
  .service-card {
    grid-template-columns:74px minmax(0,1fr)
  }
  .service-copy {
    padding:21px 17px
  }
  .calc-inputs {
    grid-template-columns:1fr
  }
  .machine-mini {
    grid-template-columns:90px minmax(0,1fr)
  }
  .machine-mini>div:last-child {
    padding:20px
  }
  .cv2-option-cards {
    grid-template-columns:1fr
  }
  .footer-main {
    grid-template-columns:1fr
  }
  .footer-brand,.footer-column:last-child {
    grid-column:auto
  }
  .brand>span {
    font-size:1rem
  }
  .menu-toggle {
    padding:8px
  }
  .sbar-label {
    flex-basis:108px
  }
  .res-kpis-2 {
    grid-template-columns:1fr
  }
  .params-resumida {
    grid-template-columns:1fr
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important
  }
}
@media print {
  .site-header,.floating-tools,.section-nav,.article-sidebar,.share-strip,.stage-select,.form-box,.resource-tools,.comparison-panel {
    display:none!important
  }
  body {
    background:white;
    color:black
  }
  .shell,.page-hero-inner {
    width:100%
  }
  .content-section,.section-compact {
    padding-block:25px
  }
  .hero-v4,#proceso,.contact-zone,.site-footer {
    background:white;
    color:black
  }
  .hero-layout {
    display:block
  }
  .hero-visual {
    height:280px
  }
  .stage-card,.faq-card,.service-card {
    break-inside:avoid
  }
  .footer-bottom {
    padding-bottom:20px
  }
  .article-layout {
    display:block
  }
  .art-content {
    border:0;
    max-width:none;
    padding:0
  }
  p {
    color:inherit!important
  }
}

/* EDITAR PRIVACIDAD Y LEGALES: componentes compartidos en todas las páginas. */
.footer-legal{padding-block:28px;border-top:1px solid #ffffff25;color:#c0d0da;font-size:.9rem}
.footer-legal-links{display:flex;gap:16px 26px;flex-wrap:wrap;margin-bottom:16px}
.footer-legal a,.footer-legal button{color:inherit;text-decoration:underline;text-underline-offset:4px}
.footer-legal button{font:inherit;background:none;border:0;padding:0;cursor:pointer;text-align:left}
.footer-legal p{line-height:1.7;margin:0}
.form-box>label.privacy-check,.col-form>label.privacy-check{display:flex;align-items:flex-start;gap:10px;font-size:.9rem;line-height:1.6;letter-spacing:0;text-transform:none;color:var(--ink);font-weight:400}
.privacy-check input{flex:0 0 18px;width:18px;height:18px;margin:5px 0 0;accent-color:var(--green)}
.privacy-check a,.privacy-note a{color:var(--green);text-decoration:underline}
.legal-page{padding-block:64px 80px;max-width:1040px}
.legal-intro{border-bottom:1px solid var(--line);padding-bottom:30px;margin-bottom:32px}
.legal-back{display:block;color:var(--green);margin-bottom:28px}
.legal-page h1{font-size:clamp(2rem,5vw,3.5rem);line-height:1.12;margin:16px 0;text-transform:none;overflow-wrap:anywhere}
.legal-page p{line-height:1.8;font-size:1.06rem;color:var(--muted)}
.legal-updated{font-size:.9rem!important}
.legal-content section{margin-block:0 36px}
.legal-content h2{font-size:1.5rem;line-height:1.3;margin-bottom:14px;text-transform:none}
.legal-content p+p{margin-top:12px}
.legal-content a{color:var(--green);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.legal-content dl{display:grid;grid-template-columns:200px minmax(0,1fr);line-height:1.7;margin:20px 0}
.legal-content dt,.legal-content dd{padding:12px 0;border-bottom:1px solid var(--line);margin:0}
.legal-content dt{font-weight:600}
.legal-table-wrap{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:8px}
.legal-table{border-collapse:collapse;width:100%;font-size:1rem;line-height:1.7}
.legal-table th,.legal-table td{padding:18px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.legal-table th{background:var(--navy);color:white}
.legal-table td:first-child{width:28%}
.legal-table code{overflow-wrap:anywhere;font-size:.87em}
.error-page{min-height:55vh;max-width:880px}
.error-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:28px}
.cookie-notice{position:fixed;z-index:2000;bottom:16px;left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:1120px;background:white;color:var(--ink);border:1px solid var(--line);border-top:4px solid var(--green);box-shadow:0 8px 50px #001e3b33;border-radius:12px;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;padding:24px;max-height:calc(100svh - 32px);overflow:auto}
.cookie-notice[hidden]{display:none}
.cookie-notice strong{font-size:1.2rem}
.cookie-notice p,.cookie-settings p{color:var(--muted);font-size:1rem;line-height:1.6;margin-block:10px}
.cookie-notice a,.cookie-settings a{color:var(--green);text-decoration:underline}
.cookie-actions{display:flex;gap:10px;flex-wrap:wrap;align-content:center;align-items:center}
.cookie-actions button{flex:1 1 140px;min-height:46px;border:1px solid var(--green);border-radius:6px;padding:10px 14px;font:600 .95rem/1.35 var(--font);background:var(--green);color:white;cursor:pointer}
.cookie-actions [data-cookie-reject]{background:white;color:var(--green)}
.cookie-actions .cookie-configure{flex-basis:100%;background:var(--steel);color:var(--ink);border-color:var(--line)}
.cookie-actions button:hover{filter:brightness(.95)}
.cookie-notice-visible .floating-tools{visibility:hidden;pointer-events:none}
.cookie-settings{border:1px solid var(--line);border-radius:12px;padding:30px;width:calc(100% - 32px);max-width:650px;max-height:90svh;overflow:auto;color:var(--ink);background:white;margin:auto;box-shadow:var(--shadow)}
.cookie-settings::backdrop{background:#061f34b3;backdrop-filter:blur(3px)}
.cookie-settings-head{display:flex;gap:20px;align-items:center;justify-content:space-between}
.cookie-settings-head .cookie-settings-title{font-size:1.7rem;line-height:1.15;text-transform:none;margin:0;color:var(--ink)}
.cookie-settings-head button{flex:0 0 44px;width:44px;height:44px;font-size:1.8rem;background:var(--steel);border:0;border-radius:6px;color:var(--ink);cursor:pointer}
.cookie-category{padding:18px;margin-block:16px;background:var(--steel);border-radius:8px;line-height:1.5}
.cookie-option{display:flex;gap:14px;align-items:flex-start;cursor:pointer}
.cookie-option input{flex:0 0 20px;width:20px;height:20px;margin-top:3px;accent-color:var(--green)}
.cookie-option span span{display:block;color:var(--muted);font-size:1rem;margin-top:8px}
@media(max-width:768px){
 .cookie-notice{grid-template-columns:minmax(0,1fr);gap:14px;padding:20px;bottom:10px;width:calc(100% - 20px)}
 .cookie-notice p{font-size:.92rem}
 .cookie-actions button{font-size:.9rem;flex-basis:120px}
 .cookie-settings{padding:22px}
 .legal-page{padding-block:36px 50px}
 .legal-content dl{grid-template-columns:minmax(0,1fr)}
 .legal-content dt{border:0;padding-bottom:0}
 .legal-content dd{padding-top:4px;overflow-wrap:anywhere}
 .legal-table th,.legal-table td{padding:12px;min-width:150px}
 .legal-table{font-size:.94rem}
 /* Vista inicial compacta: sigue abierta en inicio; ampliar usando el botón. */
 #calculator-panel.initial-preview{padding:16px;max-width:280px}
 #calculator-panel.initial-preview>p,#calculator-panel.initial-preview .tool-tags{display:none}
 #calculator-panel.initial-preview .tool-panel-head{margin-bottom:12px}
}
@media print{.cookie-notice,.cookie-settings{display:none!important}.footer-legal{color:black}}

/* EDITAR PORTADA VERTICAL: proporción del área de reproducción, no del marco completo. */
.hero-layout:has(.hero-portrait){grid-template-columns:minmax(0,1.35fr) minmax(0,.75fr);gap:64px;align-items:start}
.hero-layout:has(.hero-portrait) .hero-copy{padding-top:28px}
.hero-layout:has(.hero-portrait) .hero-line.accent{max-width:12.5ch}
.hero-visual.hero-portrait{width:min(100%,330px);justify-self:center;align-self:center;min-height:0;max-height:none;height:auto;grid-template-rows:auto auto auto}
.hero-media{position:relative;aspect-ratio:9/16;width:100%;overflow:hidden;background:linear-gradient(160deg,#15374a,#081e2d);isolation:isolate}
.hero-media::before{content:'';position:absolute;inset:0;background-image:linear-gradient(#ffffff05 1px,transparent 1px),linear-gradient(90deg,#ffffff05 1px,transparent 1px);background-size:28px 28px;pointer-events:none;z-index:-1}
.hero-media>.hero-photo,.hero-media>video{position:absolute;inset:0;display:block;width:100%;height:100%;min-height:0;object-fit:contain;object-position:center}
.hero-media>.hero-photo{filter:none}
.hero-media>.hero-ambient{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(20px);opacity:.32;transform:scale(1.15);pointer-events:none;z-index:-1}
.hero-media>[hidden]{display:none!important}
.hero-portrait .photo-index{padding:13px 16px;font-size:.65rem;gap:10px;letter-spacing:.08em}
.hero-portrait figcaption{padding:17px;gap:12px}
.hero-portrait figcaption>div{min-width:0}
.hero-portrait .photo-caption-icon{width:36px;height:36px;flex-basis:36px}
.hero-portrait figcaption>div>span{font-size:1rem}
.hero-portrait figcaption small{font-size:.8rem;line-height:1.4}
.hero-portrait figcaption>a{display:none}
.hero-video-start{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;width:max-content;max-width:calc(100% - 32px);padding:14px 18px;border:1px solid #8dd2b2;border-radius:8px;background:#08734b;color:white;font:600 1rem/1.3 var(--font);cursor:pointer;box-shadow:0 8px 30px #0004}
.hero-video-start:hover{background:#075c3d}
.hero-video-start svg{flex:0 0 22px}
.hero-video-status{position:absolute;z-index:2;top:12px;left:12px;right:12px;background:#081e2ded;color:white;padding:12px;border:1px solid #466273;border-radius:6px;font-size:.875rem;line-height:1.5}
@media(max-width:1020px){.hero-layout:has(.hero-portrait){gap:32px;grid-template-columns:minmax(0,1.1fr) minmax(0,.8fr)}.hero-visual.hero-portrait{width:min(100%,290px)}}
@media(max-width:768px){.hero-layout:has(.hero-portrait){grid-template-columns:minmax(0,1fr);gap:32px}.hero-layout:has(.hero-portrait) .hero-copy{padding-top:0}.hero-visual.hero-portrait{width:min(100%,300px)}}
@media print{.hero-video-start,.hero-video-status,.hero-media video{display:none!important}.hero-media .hero-photo{display:block!important}}
