:root {
  --font-display: 'Inter Tight', 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-body: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --r-red: #c90000;
  --r-red-dark: #9f0000;
  --r-ink: #141922;
  --r-black: #000000;
  --r-muted: #566170;
  --r-line: #e3e0d9;
  --r-cream: #f7f5f1;
  --r-soft: #efebe4;
  --r-white: #ffffff;
  --wa-green: #0f7a3f;
  --shadow-sm: 0 12px 28px rgba(20, 25, 34, .08);
  --shadow: 0 24px 70px rgba(20, 25, 34, .14);
  --radius-lg: 28px;
  --radius-md: 18px;
  --container: 1180px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--r-ink);
  background: var(--r-cream);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body.nav-open {
  overflow: hidden;
}

img {
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

.skip-link {
  position: absolute;
  left: 16px;
  top: -48px;
  z-index: 9999;
  padding: 12px 16px;
  border-radius: 12px;
  background: var(--r-black);
  color: #fff;
  transition: top .16s ease;
}

.skip-link:focus {
  top: 16px;
}

.container {
  width: min(calc(100% - 40px), var(--container));
  margin-inline: auto;
}

section[id],
#cotizar {
  scroll-margin-top: 106px;
}

.eyebrow {
  margin: 0 0 .75rem;
  font-family: var(--font-display);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--r-red);
}

h1,
h2,
h3,
.btn,
.service-card__icon,
.stat-grid strong,
summary,
.topbar,
.nav__menu,
.trust-strip strong {
  font-family: var(--font-display);
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1 {
  margin-bottom: 1.15rem;
  font-size: clamp(2.65rem, 5.6vw, 5.15rem);
  line-height: .94;
  letter-spacing: -.055em;
  font-weight: 900;
}

h2 {
  margin-bottom: .85rem;
  font-size: clamp(2rem, 3.4vw, 3.2rem);
  line-height: 1.02;
  letter-spacing: -.05em;
  font-weight: 900;
}

h3 {
  margin-bottom: .45rem;
  font-size: 1.08rem;
  line-height: 1.2;
  letter-spacing: -.02em;
  font-weight: 800;
}

p {
  color: var(--r-muted);
  line-height: 1.66;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  border-bottom: 1px solid rgba(20, 25, 34, .08);
  background: rgba(247, 245, 241, .9);
  backdrop-filter: blur(18px);
}

.topbar {
  background: var(--r-black);
  color: rgba(255, 255, 255, .72);
  font-size: .78rem;
  font-weight: 800;
}

.topbar__inner {
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  flex-wrap: wrap;
}

.topbar a:hover {
  color: #fff;
}

.nav__inner {
  min-height: 78px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.brand img {
  display: block;
  width: 172px;
  height: auto;
}

.nav__menu {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  color: var(--r-muted);
  font-size: .86rem;
  font-weight: 900;
}

.nav__menu a:hover {
  color: var(--r-ink);
}

.nav__actions {
  display: flex;
  align-items: center;
  gap: .65rem;
}

.nav__toggle {
  display: none;
  width: 44px;
  height: 44px;
  border: 1px solid var(--r-line);
  border-radius: 12px;
  background: #fff;
}

.nav__toggle span {
  display: block;
  width: 19px;
  height: 2px;
  background: var(--r-ink);
  margin: 4px auto;
  border-radius: 999px;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  border: 0;
  border-radius: 999px;
  padding: .82rem 1.05rem;
  font-size: .86rem;
  font-weight: 900;
  line-height: 1;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
}

.btn:hover {
  transform: translateY(-1px);
}

.btn:active {
  transform: translateY(0);
}

.btn--large {
  padding: 1rem 1.3rem;
  font-size: .95rem;
}

.btn--primary {
  background: var(--r-red);
  color: #fff;
  box-shadow: 0 16px 30px rgba(201, 0, 0, .22);
}

.btn--primary:hover {
  background: var(--r-red-dark);
}

.btn--ghost {
  border: 1px solid var(--r-line);
  background: #fff;
  color: var(--r-ink);
}

.btn--whatsapp {
  background: var(--wa-green);
  color: #fff;
  box-shadow: 0 16px 30px rgba(15, 122, 63, .2);
}

.btn--submit {
  width: 100%;
  border-radius: 16px;
  padding: 1rem 1.1rem;
  background: var(--r-red);
  color: #fff;
}

.btn--submit:disabled {
  opacity: .7;
  cursor: wait;
  transform: none;
}

.hero {
  position: relative;
  overflow: hidden;
  padding: clamp(3rem, 6vw, 5.5rem) 0 clamp(3.2rem, 5vw, 4.2rem);
}

.hero::before {
  content: "";
  position: absolute;
  inset: -18% -14% auto auto;
  width: 42vw;
  height: 42vw;
  min-width: 360px;
  min-height: 360px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201, 0, 0, .14), rgba(201, 0, 0, 0) 62%);
  pointer-events: none;
}

.hero__grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .72fr);
  grid-template-areas: "copy form";
  align-items: start;
  gap: 1.3rem;
}

.hero__copy {
  grid-area: copy;
  padding-top: 1.1rem;
}

.hero__lead {
  max-width: 720px;
  margin-bottom: 1.55rem;
  font-size: 1.08rem;
}

.hero__actions {
  display: flex;
  gap: .8rem;
  flex-wrap: wrap;
  margin-bottom: 1.3rem;
}

.hero__media {
  grid-area: media;
}

.machine-card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--r-line);
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, #fff, #ece8df);
  padding: 1.1rem;
  box-shadow: var(--shadow-sm);
}

.machine-card::before {
  content: "";
  position: absolute;
  inset: auto -25% -45% 22%;
  height: 76%;
  background: radial-gradient(circle, rgba(201, 0, 0, .12), transparent 62%);
}

.machine-card img {
  position: relative;
  display: block;
  margin: 0 auto;
  filter: drop-shadow(0 22px 24px rgba(20, 25, 34, .18));
}

.machine-card__caption {
  position: relative;
  display: grid;
  gap: .22rem;
  margin-top: .4rem;
  border-radius: 20px;
  background: var(--r-black);
  color: #fff;
  padding: 1rem 1.1rem;
}

.machine-card__caption span {
  color: rgba(255, 255, 255, .66);
  font-size: .86rem;
  line-height: 1.5;
}

.trust-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  max-width: 760px;
}

.trust-strip div {
  border: 1px solid var(--r-line);
  border-radius: 18px;
  background: rgba(255, 255, 255, .84);
  padding: .9rem 1rem;
  box-shadow: 0 8px 22px rgba(20, 25, 34, .05);
}

.trust-strip strong {
  display: block;
  color: var(--r-red);
  font-size: 1.05rem;
  font-weight: 900;
  line-height: 1;
  margin-bottom: .35rem;
}

.trust-strip span {
  display: block;
  color: var(--r-muted);
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.35;
}

.quote-card {
  grid-area: form;
  position: sticky;
  top: 116px;
  border: 1px solid var(--r-line);
  border-radius: var(--radius-lg);
  background: #fff;
  box-shadow: var(--shadow);
  padding: 1.35rem;
}

.quote-card__head {
  padding-bottom: 1rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--r-line);
}

.quote-card__head h2 {
  font-size: 1.5rem;
  letter-spacing: -.035em;
  margin-bottom: .35rem;
}

.quote-card__head p {
  margin-bottom: 0;
  font-size: .88rem;
}

.lead-form label {
  display: grid;
  gap: .38rem;
  margin-bottom: .8rem;
  color: var(--r-ink);
  font-size: .77rem;
  font-weight: 800;
}

.form-grid {
  display: grid;
  gap: .78rem;
}

.form-grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

input,
select,
textarea {
  min-width: 0;
  width: 100%;
  border: 1.4px solid var(--r-line);
  border-radius: 13px;
  background: #fff;
  color: var(--r-ink);
  padding: .72rem .82rem;
  font-size: .9rem;
  font-weight: 600;
  outline: 0;
  transition: border-color .16s ease, box-shadow .16s ease;
}

textarea {
  min-height: 92px;
  resize: vertical;
}

input::placeholder,
textarea::placeholder {
  color: #8a94a3;
  font-weight: 500;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--r-red);
  box-shadow: 0 0 0 4px rgba(201, 0, 0, .1);
}

input[aria-invalid="true"],
select[aria-invalid="true"],
textarea[aria-invalid="true"] {
  border-color: var(--r-red);
  background: #fffafa;
}

.lead-form label.has-error {
  color: var(--r-red);
}

.field-error {
  display: block;
  min-height: 1em;
  color: var(--r-red);
  font-size: .72rem;
  font-weight: 800;
  line-height: 1.35;
}

.field-error:empty {
  display: none;
}

.conditional-fields {
  border: 1px solid var(--r-line);
  border-radius: 18px;
  padding: .85rem .85rem .1rem;
  margin: .15rem 0 .9rem;
}

.conditional-fields legend {
  padding: 0 .35rem;
  font-family: var(--font-display);
  color: var(--r-muted);
  font-size: .73rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.conditional-fields [hidden] {
  display: none !important;
}

.hp-field,
.hidden-fields {
  display: none !important;
}

.privacy {
  display: flex !important;
  grid-template-columns: auto 1fr;
  align-items: flex-start;
  gap: .55rem !important;
  color: var(--r-muted) !important;
  font-size: .73rem !important;
  line-height: 1.45;
}

.privacy input {
  width: auto;
  margin-top: .2rem;
}

.privacy .field-error {
  flex-basis: 100%;
  margin-left: 1.65rem;
}

.privacy a {
  color: var(--r-red);
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.selected-equipment {
  margin: .2rem 0 .8rem;
  border: 1px solid rgba(201, 0, 0, .22);
  border-radius: 14px;
  background: rgba(201, 0, 0, .06);
  color: var(--r-ink);
  padding: .72rem .82rem;
  font-size: .82rem;
  font-weight: 800;
  line-height: 1.45;
}

.form-error {
  min-height: 1.2em;
  color: var(--r-red);
  font-size: .78rem;
  font-weight: 800;
  margin: -.2rem 0 .65rem;
}

.btn:disabled,
button:disabled {
  cursor: not-allowed;
  opacity: .68;
}

.form-success {
  display: none;
  text-align: center;
  padding: 1.2rem .4rem .2rem;
}

.form-success.is-active {
  display: grid;
  gap: .7rem;
}

.form-success strong {
  font-family: var(--font-display);
  font-size: 1.35rem;
}

.form-success p {
  margin-bottom: .2rem;
}

.section {
  padding: clamp(3.6rem, 7vw, 5.5rem) 0;
}

.section--white {
  background: #fff;
}

.section--cream {
  background: var(--r-cream);
}

.section--ink {
  background: var(--r-black);
  color: #fff;
}

.section--ink p,
.section--ink span {
  color: rgba(255, 255, 255, .66);
}

.section-head {
  max-width: 670px;
  margin-bottom: 2rem;
}

.section-head--center {
  margin-inline: auto;
  text-align: center;
}

.card-grid {
  display: grid;
  gap: 1rem;
}

.card-grid--4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.service-card {
  min-height: 278px;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--r-line);
  border-radius: 24px;
  background: #fff;
  padding: 1.25rem;
  box-shadow: 0 12px 28px rgba(20, 25, 34, .05);
}

.service-card__icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 15px;
  background: rgba(201, 0, 0, .09);
  color: var(--r-red);
  font-size: .9rem;
  font-weight: 900;
  margin-bottom: 1rem;
}

.service-card p {
  font-size: .92rem;
  margin-bottom: 1.2rem;
}

.service-card a {
  margin-top: auto;
  color: var(--r-red);
  font-family: var(--font-display);
  font-weight: 900;
  font-size: .88rem;
}

.split {
  display: grid;
  grid-template-columns: .82fr 1.18fr;
  gap: 3rem;
  align-items: center;
}

.split--reverse {
  grid-template-columns: 1.18fr .82fr;
}

.split__copy p:not(.eyebrow) {
  max-width: 610px;
  margin-bottom: 1.4rem;
}

.factor-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .9rem;
}

.factor-grid div {
  border: 1px solid var(--r-line);
  border-radius: 20px;
  background: #fff;
  padding: 1rem;
  box-shadow: 0 10px 24px rgba(20, 25, 34, .05);
}

.factor-grid strong {
  display: block;
  font-family: var(--font-display);
  font-weight: 900;
  margin-bottom: .25rem;
}

.factor-grid span {
  color: var(--r-muted);
  font-size: .88rem;
  line-height: 1.45;
}

.trust-block {
  display: grid;
  grid-template-columns: .75fr 1.25fr;
  gap: 2.4rem;
  align-items: center;
}

.stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .8rem;
}

.stat-grid div {
  border-left: 1px solid rgba(255, 255, 255, .14);
  padding: 1rem;
}

.stat-grid strong {
  display: block;
  color: #fff;
  font-size: clamp(1.6rem, 3vw, 2.35rem);
  letter-spacing: -.05em;
  line-height: 1;
  font-weight: 900;
}

.stat-grid span {
  display: block;
  margin-top: .35rem;
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.category-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
}

.category-panel span,
.sector-grid span {
  display: grid;
  place-items: center;
  min-height: 62px;
  border: 1px solid var(--r-line);
  border-radius: 18px;
  background: #fff;
  text-align: center;
  color: var(--r-ink);
  font-family: var(--font-display);
  font-size: .88rem;
  font-weight: 900;
  box-shadow: 0 10px 24px rgba(20, 25, 34, .045);
}

.process {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: 3rem;
  align-items: start;
}

.timeline {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.timeline article {
  min-height: 190px;
  border: 1px solid var(--r-line);
  border-radius: 22px;
  background: #fff;
  padding: 1.25rem;
}

.timeline span {
  color: var(--r-red);
  font-family: var(--font-display);
  font-weight: 900;
}

.timeline p {
  font-size: .9rem;
  margin-bottom: 0;
}

.sector-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .8rem;
}

.faq {
  display: grid;
  grid-template-columns: .75fr 1.25fr;
  gap: 3rem;
  align-items: start;
}

.faq-list {
  display: grid;
  gap: .75rem;
}

details {
  border: 1px solid var(--r-line);
  border-radius: 18px;
  background: #fff;
  padding: 1rem 1.15rem;
}

summary {
  cursor: pointer;
  font-weight: 900;
  outline: 0;
}

details p {
  margin: .72rem 0 0;
  font-size: .92rem;
}

.section--cta {
  background: #fff;
}

.closing-card {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 1.5rem;
  border-radius: 32px;
  background: linear-gradient(135deg, #141922, #390707);
  color: #fff;
  padding: clamp(1.45rem, 4vw, 3rem);
  box-shadow: var(--shadow);
}

.closing-card p {
  color: rgba(255, 255, 255, .68);
  margin-bottom: 0;
}

.closing-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  justify-content: flex-end;
}

.footer {
  background: var(--r-black);
  color: rgba(255, 255, 255, .68);
  padding: 2.2rem 0;
}

.footer__inner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 1.6rem;
  align-items: center;
}

.footer img {
  width: 172px;
  height: auto;
}

.footer address {
  font-style: normal;
  line-height: 1.6;
  font-size: .86rem;
}

.footer a:hover {
  color: #fff;
}

.footer__links {
  display: grid;
  gap: .4rem;
  justify-items: end;
  font-family: var(--font-display);
  font-size: .82rem;
  font-weight: 900;
}

.mobile-cta {
  display: none;
}

:focus-visible {
  outline: 3px solid rgba(201, 0, 0, .36);
  outline-offset: 3px;
}

@media (max-width: 1080px) {
  .hero__grid {
    grid-template-columns: 1fr;
    grid-template-areas: "copy" "form";
  }

  .quote-card {
    position: relative;
    top: auto;
    max-width: 780px;
  }

  .card-grid--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .split,
  .split--reverse,
  .trust-block,
  .process,
  .faq,
  .closing-card,
  .footer__inner {
    grid-template-columns: 1fr;
  }

  .closing-card__actions,
  .footer__links {
    justify-content: flex-start;
    justify-items: start;
  }
}

@media (max-width: 780px) {
  body {
    padding-bottom: calc(62px + env(safe-area-inset-bottom));
  }

  .container {
    width: min(calc(100% - 24px), var(--container));
  }

  .topbar__inner {
    justify-content: flex-start;
    gap: .8rem;
  }

  .topbar__inner a:last-child {
    display: none;
  }

  .nav__inner {
    min-height: 66px;
  }

  .brand img {
    width: 146px;
  }

  .nav__toggle {
    display: block;
  }

  .nav__actions {
    display: none;
  }

  .nav__menu {
    position: fixed;
    left: 12px;
    right: 12px;
    top: 104px;
    display: none;
    padding: 1rem;
    border: 1px solid var(--r-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--shadow);
    flex-direction: column;
    align-items: stretch;
  }

  body.nav-open .nav__menu {
    display: flex;
  }

  h1 {
    font-size: clamp(2.35rem, 12vw, 3.45rem);
  }

  .hero {
    padding-top: 2.4rem;
  }

  .hero__actions,
  .closing-card__actions {
    display: grid;
  }

  .trust-strip,
  .form-grid--2,
  .factor-grid,
  .stat-grid,
  .category-panel,
  .timeline,
  .sector-grid,
  .card-grid--4 {
    grid-template-columns: 1fr;
  }

  .service-card {
    min-height: auto;
  }

  .stat-grid div {
    border-left: 0;
    border-top: 1px solid rgba(255, 255, 255, .14);
  }

  .mobile-cta {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1200;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    background: var(--r-black);
    border-top: 1px solid rgba(255, 255, 255, .12);
    padding-bottom: env(safe-area-inset-bottom);
  }

  .mobile-cta a {
    display: grid;
    place-items: center;
    min-height: 58px;
    color: #fff;
    font-family: var(--font-display);
    font-size: .8rem;
    font-weight: 900;
  }

  .mobile-cta a:first-child {
    background: var(--wa-green);
  }

  .mobile-cta a:last-child {
    background: var(--r-red);
  }
}


/* v5: Sección aislada de muestra de equipos sin CTAs individuales */
.section--equipment {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 12%, rgba(201, 0, 0, .08), transparent 32%),
    linear-gradient(180deg, #fff 0%, #f7f5f1 100%);
  border-top: 1px solid rgba(20, 25, 34, .08);
  border-bottom: 1px solid rgba(20, 25, 34, .08);
}

.section--equipment::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(20, 25, 34, .055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20, 25, 34, .055) 1px, transparent 1px);
  background-size: 58px 58px;
  opacity: .42;
  pointer-events: none;
}

.section--equipment>.container {
  position: relative;
}

.equipment-head {
  max-width: 760px;
}

.equipment-head p:not(.eyebrow) {
  margin-bottom: 0;
}

.equipment-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.equipment-card {
  display: grid;
  grid-template-rows: 210px 1fr;
  overflow: hidden;
  border: 1px solid rgba(20, 25, 34, .1);
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 16px 34px rgba(20, 25, 34, .08);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.equipment-card:hover {
  transform: translateY(-3px);
  border-color: rgba(201, 0, 0, .28);
  box-shadow: 0 22px 46px rgba(20, 25, 34, .12);
}

.equipment-card[hidden] {
  display: none !important;
}

.equipment-card__image {
  display: grid;
  place-items: center;
  padding: 1rem;
  background:
    radial-gradient(circle at 50% 74%, rgba(201, 0, 0, .1), transparent 44%),
    linear-gradient(135deg, #fff, #f0eee9);
}

.equipment-card__image img {
  display: block;
  width: 100%;
  height: 174px;
  object-fit: contain;
  filter: drop-shadow(0 20px 20px rgba(20, 25, 34, .16));
}

.equipment-card__body {
  display: flex;
  flex-direction: column;
  padding: 1.1rem;
}

.equipment-card__label {
  display: inline-flex;
  width: fit-content;
  margin-bottom: .58rem;
  color: var(--r-red);
  font-family: var(--font-display);
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .1em;
  line-height: 1.1;
  text-transform: uppercase;
}

.equipment-card h3 {
  margin-bottom: .4rem;
}

.equipment-card p {
  font-size: .9rem;
  line-height: 1.52;
  margin-bottom: 1rem;
}

.equipment-specs {
  display: grid;
  gap: 0;
  margin: 0;
  border-top: 1px solid var(--r-line);
}

.equipment-specs div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .58rem 0;
  border-bottom: 1px solid var(--r-line);
  font-size: .78rem;
}

.equipment-specs dt {
  color: var(--r-muted);
  font-weight: 600;
}

.equipment-specs dd {
  margin: 0;
  color: var(--r-ink);
  font-weight: 900;
  text-align: right;
}

.equipment-note {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 1rem;
  margin-top: 1rem;
  border: 1px solid rgba(20, 25, 34, .1);
  border-radius: 24px;
  background: rgba(255, 255, 255, .82);
  padding: 1rem 1.1rem;
  box-shadow: 0 12px 28px rgba(20, 25, 34, .05);
}

.equipment-note p {
  margin: 0;
  font-size: .92rem;
}

.equipment-note strong {
  color: var(--r-ink);
  font-weight: 900;
}

.equipment-note__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .7rem;
}

.equipment-disclaimer {
  max-width: 860px;
  margin: .9rem auto 0;
  color: var(--r-muted);
  font-size: .82rem;
  line-height: 1.55;
  text-align: center;
}

.equipment-card {
  cursor: default;
}

@media (max-width: 1080px) {
  .equipment-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .equipment-card {
    grid-template-rows: 230px 1fr;
  }

  .equipment-card__image img {
    height: 192px;
  }
}

@media (max-width: 780px) {
  .equipment-grid {
    display: flex;
    gap: .9rem;
    overflow-x: auto;
    padding: .15rem .15rem 1rem;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }

  .equipment-card {
    min-width: min(86vw, 350px);
    scroll-snap-align: start;
    grid-template-rows: 210px 1fr;
  }

  .equipment-card__image img {
    height: 172px;
  }

  .equipment-note {
    grid-template-columns: 1fr;
  }

  .equipment-note__actions {
    justify-content: stretch;
  }

  .equipment-note__actions .btn {
    width: 100%;
  }
}


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

  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}


/* v6: profesionalizacion para Odoo Website Builder */
.section {
  padding: clamp(3rem, 5.6vw, 4.6rem) 0;
}

.hero {
  padding: clamp(2.8rem, 5.4vw, 4.8rem) 0 clamp(2.8rem, 4.8vw, 3.8rem);
}

.trust-strip--v6 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-width: 880px;
}

.trust-strip--v6 div {
  min-height: 86px;
}

.section--proof {
  background: #fff;
  border-top: 1px solid rgba(20, 25, 34, .08);
  border-bottom: 1px solid rgba(20, 25, 34, .08);
}

.proof-grid {
  display: grid;
  grid-template-columns: 1.05fr .45fr 1.2fr;
  gap: 1rem;
  align-items: stretch;
}

.proof-card,
.proof-metrics {
  border: 1px solid var(--r-line);
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(20, 25, 34, .055);
}

.proof-card {
  padding: 1.3rem;
}

.proof-card--intro h2 {
  font-size: clamp(1.75rem, 2.8vw, 2.55rem);
}

.proof-card--intro p {
  margin-bottom: 0;
}

.proof-card--esr {
  display: grid;
  align-content: center;
  justify-items: center;
  text-align: center;
  gap: .4rem;
  background: linear-gradient(135deg, #fff, #f4f1eb);
}

.proof-card--esr img {
  max-width: 210px;
  height: auto;
}

.proof-card--esr p {
  max-width: 260px;
  margin: 0;
  font-size: .82rem;
  font-weight: 700;
}

.proof-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
}

.proof-metrics div {
  padding: 1rem;
  border-right: 1px solid var(--r-line);
  border-bottom: 1px solid var(--r-line);
}

.proof-metrics div:nth-child(2n) {
  border-right: 0;
}

.proof-metrics div:nth-last-child(-n+2) {
  border-bottom: 0;
}

.proof-metrics strong {
  display: block;
  font-family: var(--font-display);
  color: var(--r-red);
  font-size: 1.1rem;
  font-weight: 900;
  margin-bottom: .25rem;
}

.proof-metrics span {
  display: block;
  color: var(--r-muted);
  font-size: .78rem;
  line-height: 1.35;
  font-weight: 750;
}

.service-card--v6 {
  min-height: 250px;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.service-card--v6:hover {
  transform: translateY(-2px);
  border-color: rgba(201, 0, 0, .25);
  box-shadow: 0 18px 40px rgba(20, 25, 34, .09);
}

.service-card a::after,
.use-case-grid a::after {
  content: ' →';
}

.equipment-note--v6 {
  align-items: center;
}

.equipment-note--v6 h3 {
  margin-bottom: .25rem;
}

.brand-experience,
.client-proof {
  display: grid;
  gap: 1.4rem;
}

.brand-logo-grid,
.client-logo-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .8rem;
}

.logo-tile {
  min-height: 96px;
  display: grid;
  place-items: center;
  border: 1px solid var(--r-line);
  border-radius: 20px;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 10px 24px rgba(20, 25, 34, .045);
  padding: .6rem;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.logo-tile:hover {
  transform: translateY(-2px);
  border-color: rgba(20, 25, 34, .16);
  box-shadow: 0 16px 34px rgba(20, 25, 34, .08);
}

.logo-tile img {
  width: 100%;
  max-width: 150px;
  height: auto;
  object-fit: contain;
}

.logo-disclaimer {
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
  font-size: .78rem;
  line-height: 1.55;
}

.client-proof {
  grid-template-columns: .8fr 1.2fr;
  align-items: center;
}

.client-proof__copy p:not(.eyebrow) {
  max-width: 540px;
}

.client-proof .client-logo-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.guide-section {
  background: linear-gradient(180deg, var(--r-cream), #fff);
}

.factor-grid--interactive button {
  text-align: left;
  border: 1px solid var(--r-line);
  border-radius: 20px;
  background: #fff;
  padding: 1rem;
  box-shadow: 0 10px 24px rgba(20, 25, 34, .05);
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.factor-grid--interactive button:hover {
  transform: translateY(-2px);
  border-color: rgba(201, 0, 0, .25);
  box-shadow: 0 18px 34px rgba(20, 25, 34, .08);
}

.factor-grid--interactive button strong {
  display: block;
  font-family: var(--font-display);
  font-weight: 900;
  margin-bottom: .25rem;
}

.factor-grid--interactive button span {
  display: block;
  color: var(--r-muted);
  font-size: .88rem;
  line-height: 1.45;
}

.use-case-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.use-case-grid article {
  display: flex;
  flex-direction: column;
  min-height: 245px;
  border: 1px solid var(--r-line);
  border-radius: 24px;
  background: #fff;
  padding: 1.2rem;
  box-shadow: 0 12px 28px rgba(20, 25, 34, .05);
}

.use-case-grid span {
  color: var(--r-red);
  font-family: var(--font-display);
  font-weight: 900;
  margin-bottom: .7rem;
}

.use-case-grid p {
  font-size: .9rem;
}

.use-case-grid a {
  margin-top: auto;
  color: var(--r-red);
  font-family: var(--font-display);
  font-weight: 900;
  font-size: .86rem;
}

.timeline--v6 article {
  min-height: 174px;
}

.process .section-head .btn {
  margin-top: .2rem;
}

.sector-card-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .9rem;
}

.sector-card-grid article {
  min-height: 128px;
  border: 1px solid var(--r-line);
  border-radius: 20px;
  background: #fff;
  padding: 1rem;
  box-shadow: 0 10px 24px rgba(20, 25, 34, .045);
}

.sector-card-grid h3 {
  font-size: .98rem;
}

.sector-card-grid p {
  margin: 0;
  font-size: .82rem;
  line-height: 1.45;
}

@media (max-width: 1080px) {
  .trust-strip--v6 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .proof-grid,
  .client-proof {
    grid-template-columns: 1fr;
  }

  .brand-logo-grid,
  .client-proof .client-logo-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .use-case-grid,
  .sector-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 780px) {
  .section {
    padding: 3rem 0;
  }

  .trust-strip--v6,
  .proof-metrics,
  .brand-logo-grid,
  .client-proof .client-logo-grid,
  .use-case-grid,
  .sector-card-grid {
    grid-template-columns: 1fr;
  }

  .proof-metrics div {
    border-right: 0;
  }

  .proof-metrics div:nth-last-child(-n+2) {
    border-bottom: 1px solid var(--r-line);
  }

  .proof-metrics div:last-child {
    border-bottom: 0;
  }

  .logo-tile {
    min-height: 88px;
  }

  .use-case-grid article,
  .sector-card-grid article {
    min-height: auto;
  }
}


/* ============================================================
   v7: Optimización de conversión (message-match, prueba social
   junto al formulario, formulario de menor fricción)
   ============================================================ */

/* Microcopy de confianza bajo el botón de envío */
.form-reassurance {
  margin: .7rem 0 0;
  text-align: center;
  color: var(--r-muted);
  font-size: .76rem;
  font-weight: 700;
  line-height: 1.4;
}

/* Separador visual de campos opcionales (menor jerarquía) */
.form-optional label {
  color: var(--r-muted);
}

.form-optional {
  opacity: .92;
}

/* Testimonio verificado dentro de la tarjeta de cotización */
.quote-testimonial {
  margin: 1rem 0 0;
  padding: .95rem 1rem;
  border: 1px solid var(--r-line);
  border-radius: 16px;
  background: var(--r-cream);
}

.quote-testimonial blockquote {
  margin: 0 0 .7rem;
  color: var(--r-ink);
  font-size: .88rem;
  font-weight: 700;
  line-height: 1.5;
  font-style: italic;
}

.quote-testimonial blockquote::before {
  content: "\201C";
  color: var(--r-red);
  font-weight: 900;
}

.quote-testimonial blockquote::after {
  content: "\201D";
  color: var(--r-red);
  font-weight: 900;
}

.quote-testimonial figcaption {
  display: flex;
  align-items: center;
  gap: .6rem;
}

.quote-testimonial__avatar {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--r-red);
  color: #fff;
  font-family: var(--font-display);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .02em;
}

.quote-testimonial__meta {
  display: grid;
  line-height: 1.25;
}

.quote-testimonial__meta strong {
  font-family: var(--font-display);
  font-size: .84rem;
  font-weight: 900;
  color: var(--r-ink);
}

.quote-testimonial__meta span {
  font-size: .72rem;
  font-weight: 700;
  color: var(--wa-green);
}


/* ============================================================
   v8: Landing compacta para Odoo
   Estructura reducida, ESR solo en footer y confianza en franja.
   ============================================================ */

/* Reducción general de longitud visual */
.section {
  padding: clamp(2.8rem, 4.8vw, 4rem) 0;
}

.hero {
  padding-bottom: clamp(2.4rem, 4vw, 3.2rem);
}

/* Franja compacta de confianza */
.trust-band {
  background: #fff;
  border-top: 1px solid rgba(20, 25, 34, .07);
  border-bottom: 1px solid rgba(20, 25, 34, .07);
  padding: 1rem 0;
}

.trust-band--premium {
  background:
    radial-gradient(circle at 50% 0%, rgba(201, 0, 0, .045), transparent 44%),
    #fff;
}

.trust-band__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  overflow: hidden;
  border: 1px solid rgba(20, 25, 34, .09);
  border-radius: 22px;
  background: rgba(243, 243, 245, 0.94);
  box-shadow: 0 14px 34px rgba(20, 25, 34, .055);
}

.trust-band__item {
  position: relative;
  padding: 1rem 1.35rem;
  min-height: 72px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.trust-band__item:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 24%;
  bottom: 24%;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(20, 25, 34, .13), transparent);
}

.trust-band__grid strong {
  display: block;
  font-family: var(--font-display);
  color: var(--r-red);
  font-weight: 900;
  font-size: clamp(.96rem, 1.05vw, 1.12rem);
  line-height: 1.08;
  margin-bottom: .28rem;
  letter-spacing: -.015em;
}

.trust-band__grid span {
  display: block;
  color: var(--r-muted);
  font-size: .78rem;
  font-weight: 750;
  line-height: 1.32;
}

/* La muestra de equipos queda visual, sin botones por tarjeta */
.equipment-card {
  cursor: default;
}

.equipment-card:hover {
  transform: none;
}

/* Sección fusionada: asesoría + casos comunes */
.solution-section {
  background: linear-gradient(180deg, var(--r-cream), #fff);
}

.solution-layout {
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  gap: clamp(1.2rem, 3vw, 2.4rem);
  align-items: center;
}

.solution-copy p:not(.eyebrow) {
  max-width: 560px;
}

.solution-panel {
  display: grid;
  gap: 1rem;
}

.factor-grid--compact {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}

.factor-grid--compact button {
  min-height: 112px;
  padding: .9rem;
}

.solution-cases {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}

.solution-cases article {
  min-height: 164px;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--r-line);
  border-radius: 22px;
  background: #fff;
  padding: 1rem;
  box-shadow: 0 12px 28px rgba(20, 25, 34, .05);
}

.solution-cases span {
  color: var(--r-red);
  font-family: var(--font-display);
  font-weight: 900;
  margin-bottom: .35rem;
}

.solution-cases h3 {
  font-size: 1rem;
}

.solution-cases p {
  margin-bottom: .75rem;
  font-size: .86rem;
  line-height: 1.48;
}

.solution-cases a {
  margin-top: auto;
  color: var(--r-red);
  font-family: var(--font-display);
  font-weight: 900;
  font-size: .84rem;
}

.solution-cases a::after {
  content: ' →';
}

/* Footer institucional con ESR como único sello */
.footer {
  padding: 2.4rem 0;
}

.footer__inner {
  grid-template-columns: 1fr 1.45fr auto auto;
  gap: 1.35rem;
  align-items: center;
}

.footer__brand p {
  margin: .55rem 0 0;
  color: rgba(255, 255, 255, .62);
  font-size: .78rem;
  font-weight: 800;
}

.footer__esr {
  display: grid;
  justify-items: center;
  gap: .35rem;
  min-width: 126px;
  color: rgba(255, 255, 255, .72);
  font-family: var(--font-display);
  font-size: .76rem;
  font-weight: 900;
  text-align: center;
}

.footer__esr img {
  width: 160px;
  height: auto;
  object-fit: contain;
}

@media (max-width: 1080px) {
  .trust-band__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trust-band__item:nth-child(2n)::after {
    display: none;
  }

  .trust-band__item:nth-child(-n+2) {
    border-bottom: 1px solid rgba(20, 25, 34, .08);
  }

  .solution-layout {
    grid-template-columns: 1fr;
  }

  .factor-grid--compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .footer__inner {
    grid-template-columns: 1fr 1fr;
  }

  .footer__links {
    justify-items: start;
  }
}

@media (max-width: 780px) {

  .factor-grid--compact,
  .solution-cases,
  .footer__inner {
    grid-template-columns: 1fr;
  }

  .trust-band {
    padding: .75rem 0;
  }

  .trust-band__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-radius: 18px;
  }

  .trust-band__item {
    min-height: 66px;
    padding: .88rem 1rem;
  }

  .trust-band__grid span {
    font-size: .74rem;
  }

  .solution-cases article {
    min-height: auto;
  }

  .footer__esr {
    justify-items: start;
    text-align: left;
  }
}

@media (max-width: 520px) {
  .trust-band__grid {
    grid-template-columns: 1fr;
  }

  .trust-band__item:not(:last-child)::after {
    display: none;
  }

  .trust-band__item {
    border-bottom: 1px solid rgba(20, 25, 34, .08);
  }

  .trust-band__item:last-child {
    border-bottom: 0;
  }
}


/* v9: logos de marcas con separadores minimalistas */
.brand-experience .section-head p:last-child {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}

.brand-logo-grid--minimal {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0;
  align-items: center;
  max-width: 1040px;
  margin: .6rem auto 0;
  border-top: 1px solid rgba(20, 25, 34, .08);
  border-bottom: 1px solid rgba(20, 25, 34, .08);
}

.logo-divider-item {
  min-height: 86px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 1.1rem;
  position: relative;
}

.logo-divider-item:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 22%;
  bottom: 22%;
  width: 1px;
  background: linear-gradient(180deg, rgba(20, 25, 34, 0), rgba(20, 25, 34, .12), rgba(20, 25, 34, 0));
}

.logo-divider-item img {
  width: 100%;
  max-width: 124px;
  max-height: 42px;
  height: auto;
  object-fit: contain;
  filter: grayscale(100%);
  opacity: .72;
  transition: filter .18s ease, opacity .18s ease, transform .18s ease;
}

.logo-divider-item:hover img,
.logo-divider-item:focus-within img {
  filter: grayscale(0%);
  opacity: 1;
  transform: translateY(-1px);
}

.logo-helper {
  max-width: 760px;
  margin: 1rem auto .35rem;
  color: var(--r-muted);
  text-align: center;
  font-size: .9rem;
  line-height: 1.55;
}

.logo-disclaimer {
  margin-top: 0;
}

@media (max-width: 1080px) {
  .brand-logo-grid--minimal {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .logo-divider-item:nth-child(3n)::after {
    display: none;
  }
}

@media (max-width: 680px) {
  .brand-logo-grid--minimal {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .logo-divider-item {
    min-height: 78px;
    padding: .9rem;
  }

  .logo-divider-item:nth-child(3n)::after {
    display: block;
  }

  .logo-divider-item:nth-child(2n)::after {
    display: none;
  }

  .logo-divider-item img {
    max-width: 112px;
    max-height: 36px;
  }
}

/* ===== Añadidos (feedback del documento de Marketing, jul 2026) ===== */
.hero__reassurance {
  margin: .9rem 0 0;
  font-size: .9rem;
  color: var(--muted, #6b7280);
  max-width: 52ch
}

.clients-section .client-logo-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1.5rem;
  align-items: center;
  margin-top: 1.5rem
}

.client-logo-item {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: .6rem;
  filter: grayscale(1);
  opacity: .72;
  transition: filter .2s ease, opacity .2s ease
}

.client-logo-item:hover {
  filter: grayscale(0);
  opacity: 1
}

.client-logo-item img {
  max-width: 100%;
  height: auto;
  object-fit: contain
}

@media(max-width:900px) {
  .clients-section .client-logo-grid {
    grid-template-columns: repeat(3, 1fr)
  }
}

@media(max-width:480px) {
  .clients-section .client-logo-grid {
    grid-template-columns: repeat(2, 1fr)
  }
}
/* ===== MEJORAS bloque Nav/Hero (jul 2026) ===== */
/* Topbar: teléfono destacado como elemento más accionable */
.topbar__phone{font-weight:800;letter-spacing:.2px}
.topbar__claim{opacity:.85}
/* Micro-prueba de confianza en hero: refuerza sin competir con el H1 */
.hero__reassurance strong{color:var(--brand-red,#cc0000);font-weight:800}

/* ===== Iconos en CTA: alineación con el texto ===== */
.btn i{margin-right:.4em;font-size:.9em}
.btn i.fa-whatsapp{font-size:1.05em}


/* ============================================================
   MEJORAS MÓVIL + REDES SOCIALES
   Agregado al final para no alterar la cascada existente.
   ============================================================ */

/* --- Redes sociales en el footer --- */
.footer__social {
  display: flex;
  flex-direction: column;
  gap: .6rem;
}

.footer__social-label {
  font-family: var(--font-display);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  opacity: .6;
}

.footer__social-icons {
  display: flex;
  gap: .6rem;
}

.footer__social-icons a {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .18);
  color: #fff;
  font-size: 1rem;
  text-decoration: none;
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.footer__social-icons a:hover,
.footer__social-icons a:focus-visible {
  background: var(--r-red);
  border-color: var(--r-red);
  transform: translateY(-2px);
}

/* ============================================================
   CORRECCIONES MÓVIL
   ============================================================ */

@media (max-width: 780px) {

  /* La barra fija inferior tapaba el final del footer.
     Este espacio garantiza que el último contenido sea visible. */
  body {
    padding-bottom: calc(58px + env(safe-area-inset-bottom));
  }

  /* El footer necesita aire extra para que los enlaces
     no queden pegados a la barra fija. */
  .footer {
    padding-bottom: 1.5rem;
  }

  /* Al hacer clic en "Cotizar" el navegador salta al formulario,
     pero el encabezado fijo tapaba el título. Este offset lo corrige
     en todos los anclajes internos de la página. */
  [id] {
    scroll-margin-top: 84px;
  }

  /* Área táctil mínima recomendada (44px) en todos los
     enlaces y botones del footer y la navegación. */
  .footer__links a,
  .footer address a {
    display: inline-block;
    padding: .35rem 0;
    min-height: 32px;
  }

  /* Centrar el bloque social cuando el footer se apila */
  .footer__social {
    align-items: center;
  }
}

@media (max-width: 520px) {

  /* Evita el zoom automático de iOS al enfocar un campo.
     Safari hace zoom si el font-size es menor a 16px. */
  .lead-form input,
  .lead-form select,
  .lead-form textarea {
    font-size: 16px;
  }

  /* Campos más cómodos de tocar en pantallas pequeñas */
  .lead-form input,
  .lead-form select {
    min-height: 46px;
  }
}

/* Evita el desbordamiento horizontal en cualquier ancho.
   Un solo elemento que se pase provoca scroll lateral en toda
   la página, algo que en móvil se percibe como sitio roto. */
html,
body {
  overflow-x: hidden;
  max-width: 100%;
}


/* ============================================================
   TIPOGRAFÍA — VARIANTE "SOBRIEDAD INDUSTRIAL"
   Inter Tight 600 (display) + Inter (body)

   Esta capa va al final a propósito: recalibra pesos, escala y
   tracking sin tocar ninguna de las reglas originales, de modo
   que revertir es tan simple como borrar este bloque.

   Principio: la autoridad viene del espaciado y la jerarquía,
   no del grosor. Se baja de peso 900 a 600 y se reduce la
   escala de los títulos, que estaban compitiendo entre sí.
   ============================================================ */

/* --- Peso: 900 era demasiado para una sola familia variable.
       600 mantiene presencia sin gritar. --- */
h1, h2, h3, h4,
.eyebrow,
.trust-strip strong,
.conditional-fields legend,
.form-success strong,
.factor-grid strong,
.timeline span,
.proof-metrics strong,
.factor-grid--interactive button strong,
.use-case-grid span,
.quote-testimonial__meta strong,
.trust-band__grid strong,
.solution-cases span,
.footer__social-label,
.btn,
.mobile-cta a {
  font-weight: 600;
}

/* --- Escala y tracking de encabezados ---
   El hero pasa de 5.15rem a 3.4rem máximo. A tamaños grandes
   el tracking negativo compacta el bloque y lo hace ver
   intencional en lugar de estirado. */

h1 {
  font-size: clamp(2.15rem, 4.4vw, 3.4rem);
  line-height: 1.08;
  letter-spacing: -.032em;
  margin-bottom: 1.05rem;
}

h2 {
  line-height: 1.14;
  letter-spacing: -.026em;
}

h3 {
  line-height: 1.22;
  letter-spacing: -.018em;
}

/* Títulos de sección: bajan de 3.2rem a 2.5rem para no
   competir con el H1 del hero. */
.section-head h2,
.equipment-head h2 {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
}

/* --- Eyebrow: más aire entre letras compensa el menor peso.
       Es lo que le da el aire "editorial sobrio". --- */
.eyebrow {
  letter-spacing: .15em;
  font-size: .74rem;
}

/* --- Cifras destacadas: mantienen jerarquía por tamaño,
       no por grosor. --- */
.trust-band__grid strong,
.proof-metrics strong,
.trust-strip strong {
  letter-spacing: -.025em;
}

/* --- Botones: el tracking ligeramente abierto mejora la
       legibilidad en mayúsculas y tamaños pequeños. --- */
.btn,
.mobile-cta a {
  letter-spacing: .005em;
}

/* --- Cuerpo de texto: line-height algo mayor acompaña
       la reducción de peso en títulos. --- */
body {
  line-height: 1.65;
}

.hero__lead,
.section-head p {
  line-height: 1.68;
}

/* --- Móvil: la escala reducida necesita menos ajuste,
       pero el hero sigue siendo el punto crítico. --- */
@media (max-width: 780px) {
  h1 {
    font-size: clamp(2rem, 7.5vw, 2.6rem);
    line-height: 1.12;
    letter-spacing: -.028em;
  }

  .section-head h2,
  .equipment-head h2 {
    font-size: clamp(1.55rem, 6vw, 2rem);
  }
}


/* ============================================================
   BOTÓN FLOTANTE DE WHATSAPP
   
   Criterio de diseño: no es el círculo verde brillante habitual.
   Se diseñó como una píldora sobria acorde al sistema tipográfico,
   con el verde solo en el ícono. La idea es que se lea como una
   herramienta disponible, no como un anuncio persiguiendo al usuario.

   Comportamiento:
   - Desktop: aparece al dejar atrás el hero (lo controla el JS).
   - Móvil (<=780px): oculto. La barra .mobile-cta ya cumple esa
     función y dos accesos a WhatsApp a pocos centímetros sería
     confuso, no redundante.
   ============================================================ */

.wa-float {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 1100;
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: .8rem 1.15rem;
  border-radius: 99px;
  background: var(--r-white);
  border: 1px solid var(--r-line);
  box-shadow: 0 14px 34px rgba(20, 25, 34, .16);
  color: var(--r-ink);
  text-decoration: none;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: .88rem;
  letter-spacing: -.01em;

  /* Estado inicial: fuera de vista. El JS quita [hidden] y
     agrega .is-visible para animar la entrada. */
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
  transition: opacity .28s ease, transform .28s ease, box-shadow .2s ease;
}

.wa-float[hidden] {
  display: none;
}

.wa-float.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* El verde se reserva para el ícono. Mantiene el reconocimiento
   de WhatsApp sin que el botón grite. */
.wa-float i {
  font-size: 1.35rem;
  line-height: 1;
  color: var(--wa-green);
  transition: transform .2s ease;
}

.wa-float:hover,
.wa-float:focus-visible {
  box-shadow: 0 18px 44px rgba(20, 25, 34, .22);
  transform: translateY(-2px);
}

.wa-float:hover i,
.wa-float:focus-visible i {
  transform: scale(1.08);
}

/* En pantallas medianas se colapsa a solo ícono para no
   invadir el contenido. */
@media (max-width: 1080px) {
  .wa-float {
    padding: .85rem;
  }

  .wa-float__label {
    display: none;
  }

  .wa-float i {
    font-size: 1.5rem;
  }
}

/* Móvil: oculto por completo. La barra inferior ya cubre WhatsApp
   y además ocupa la zona donde caería el flotante. */
@media (max-width: 780px) {
  .wa-float {
    display: none !important;
  }
}

/* Respeta la preferencia de movimiento reducido del sistema. */
@media (prefers-reduced-motion: reduce) {

  .wa-float,
  .wa-float i {
    transition: none;
  }

  .wa-float.is-visible {
    transform: none;
  }
}
