/* Fuentes originales de Google Fonts, servidas localmente; licencias en assets/fonts. */
@font-face {
  font-family: 'DM Sans'; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url('/assets/fonts/dm-sans-latin-ext-v17.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'DM Sans'; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url('/assets/fonts/dm-sans-latin-v17.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope'; font-style: normal; font-weight: 600 800; font-display: swap;
  src: url('/assets/fonts/manrope-cyrillic-ext-v20.woff2') format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Manrope'; font-style: normal; font-weight: 600 800; font-display: swap;
  src: url('/assets/fonts/manrope-cyrillic-v20.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Manrope'; font-style: normal; font-weight: 600 800; font-display: swap;
  src: url('/assets/fonts/manrope-greek-v20.woff2') format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Manrope'; font-style: normal; font-weight: 600 800; font-display: swap;
  src: url('/assets/fonts/manrope-vietnamese-v20.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Manrope'; font-style: normal; font-weight: 600 800; font-display: swap;
  src: url('/assets/fonts/manrope-latin-ext-v20.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope'; font-style: normal; font-weight: 600 800; font-display: swap;
  src: url('/assets/fonts/manrope-latin-v20.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --ink: #09243f;
  --blue: #0874d1;
  --sky: #dceeff;
  --line: #cddce8;
  --soft: #f5f9fc;
  --muted: #587086;
  --white: #fff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); font-family: "DM Sans", sans-serif; background: var(--white); }

/* Solo visible al navegar con teclado; no modifica la composición habitual. */
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 100; padding: 12px 18px; background: var(--ink); color: var(--white); font-weight: 700; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
:where(a, button, input, textarea, select):focus-visible { outline: 3px solid #076dc4; outline-offset: 4px; box-shadow: 0 0 0 7px #fff; }
#main-content { scroll-margin-top: 126px; }

.site-header {
  min-height: 92px;
  padding: 0 max(5vw, 30px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid rgba(9, 36, 63, .09);
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 8px 25px rgba(9, 36, 63, .05);
}

.mobile-contact-bar { display: none; }
.header-identity { display: flex; align-items: center; gap: 22px; min-width: 0; }
.header-contact { display: flex; align-items: center; gap: 20px; padding-left: 22px; border-left: 1px solid var(--line); white-space: nowrap; }
.header-contact a { display: inline-flex; align-items: center; gap: 7px; color: var(--ink); font-size: 14px; font-weight: 700; text-decoration: none; }
.header-contact svg { width: 16px; height: 16px; flex: none; }
.header-contact a:first-child { color: var(--blue); }
.header-contact a:hover { text-decoration: underline; }
.brand { display: inline-flex; align-items: center; flex: 0 0 auto; text-decoration: none; }
.brand img { display: block; width: clamp(155px, 13vw, 190px); height: auto; }
.main-nav { display: flex; gap: clamp(11px, 1.4vw, 21px); align-items: center; }
.main-nav a, .back-link { color: var(--ink); font-size: 14px; font-weight: 600; text-decoration: none; }
.main-nav a:not(.nav-contact):hover, .back-link:hover { color: var(--blue); }
.nav-contact { padding: 11px 15px; background: var(--ink); color: #fff !important; }
.menu-toggle { display: none; }
section[id] { scroll-margin-top: 110px; }

.hero {
  min-height: 650px;
  position: relative;
  display: grid;
  grid-template-columns: 1.02fr .98fr;
  overflow: hidden;
  background: linear-gradient(112deg, #f8fbff 0%, #edf6fe 100%);
}

.hero-copy { padding: clamp(70px, 8vw, 120px) 4vw 70px max(5vw, 30px); position: relative; z-index: 2; }
.eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 1.7px; color: var(--blue); margin: 0 0 22px; }
.hero .eyebrow { font-size: 12px; }
.hero h1, .about h2, .services h2, .technical h2, .brands h2, .cta h2, .contact-intro h1 {
  font: 800 clamp(43px, 5.2vw, 77px)/.98 Manrope, sans-serif;
  letter-spacing: -4px;
  margin: 0;
}
.hero h1 em, .cta h2 em, .contact-intro em { color: var(--blue); font-style: normal; }
.hero-text { max-width: 530px; font-size: 18px; line-height: 1.6; color: var(--muted); margin: 29px 0 34px; }
.hero-actions { display: flex; align-items: center; gap: 26px; }
.button { display: inline-flex; align-items: center; gap: 30px; padding: 15px 18px; font-weight: 700; font-size: 14px; text-decoration: none; border: 0; cursor: pointer; font-family: inherit; }
.button span { font-size: 20px; line-height: 13px; }
.primary { background: var(--blue); color: #fff; box-shadow: 0 10px 24px rgba(8, 116, 209, .22); }
.text-link { font-weight: 700; color: var(--ink); font-size: 14px; text-decoration: none; }
.text-link span { color: var(--blue); margin-left: 6px; font-size: 18px; }
.hero-visual { position: relative; min-height: 100%; overflow: hidden; }
.hero-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(237, 246, 254, .23), rgba(0, 41, 79, .04)); }
.hero-visual picture { display: block; width: 100%; height: 100%; }
.hero-visual img { width: 100%; height: 100%; object-fit: cover; object-position: 66% center; display: block; }
.image-tag { position: absolute; z-index: 1; bottom: 42px; left: 32px; padding: 13px 15px; background: #ffffffed; font-size: 12px; font-weight: 700; }
.image-tag i, .contact-note i { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #20bd7a; margin-right: 8px; }
.hero-line { position: absolute; width: 68%; height: 1px; left: 0; bottom: 0; background: var(--blue); }

.section { padding: 125px max(5vw, 30px); }
.about { display: grid; grid-template-columns: 1fr 1fr; gap: 11vw; }
.about h2, .services h2, .technical h2, .brands h2 { font-size: clamp(35px, 4.1vw, 60px); }
.section-visual { margin: 34px 0 0; overflow: hidden; aspect-ratio: 16 / 9; background: var(--soft); }
.section-visual img { display: block; width: 100%; height: 100%; object-fit: cover; }
.about-visual img { object-fit: cover; object-position: center bottom; }
.technical-visual img { object-position: center; }
.about-copy { max-width: 560px; padding-top: 34px; }
.about-copy p, .technical-copy p, .brands-copy > p:not(.eyebrow), .section-intro { font-size: 16px; line-height: 1.7; color: var(--muted); margin: 0 0 20px; }
.about .eyebrow, .services .eyebrow, .technical .eyebrow, .brands .eyebrow { font-size: 12px; }

.numbers { display: grid; grid-template-columns: repeat(3, 1fr); background: var(--ink); color: #fff; padding: 54px max(5vw, 30px); gap: 30px; }
.numbers div { display: flex; align-items: center; gap: 22px; border-right: 1px solid #ffffff3a; }
.numbers div:last-child { border: 0; }
.numbers strong { font: 700 42px Manrope; color: #49a0e9; letter-spacing: -3px; }
.numbers span { font-size: 14px; line-height: 1.45; }

.services { display: grid; grid-template-columns: .86fr 1.14fr; gap: 8vw; padding-bottom: 64px; background: var(--soft); }
.services-heading { position: sticky; top: 115px; height: max-content; }
.section-intro { max-width: 535px; font-size: 16px; margin-top: 24px; }
.section-intro + .section-intro { margin-top: 0; }
.outline { border: 1px solid var(--ink); color: var(--ink); background: transparent; margin-top: 14px; }
.service-list { border-top: 1px solid var(--line); }
.services, .services-heading, .service-list, .service-list article > div { min-width: 0; }
.services h2, .service-list h3 { overflow-wrap: anywhere; }
.service-label { margin: 0; padding: 18px 0; border-bottom: 1px solid var(--line); color: var(--blue); font-size: 12px; font-weight: 700; letter-spacing: 1.1px; text-transform: uppercase; }
.service-list article { display: grid; grid-template-columns: 45px minmax(0, 1fr); gap: 15px; padding: 27px 0; border-bottom: 1px solid var(--line); }
.service-no { font: 700 13px Manrope; color: var(--blue); }
.services .eyebrow, .service-label, .service-no, .contact-page .eyebrow, .contact-details .contact-label, .legal-page .eyebrow, .form-card .privacy-summary a { color: #076dc4; }
.service-list h3 { font: 700 21px Manrope; letter-spacing: -.8px; margin: 0 0 8px; }
.service-list p { margin: 0; color: var(--muted); line-height: 1.5; font-size: 15px; }

.technical { display: grid; grid-template-columns: .9fr 1.1fr; grid-template-areas: "heading copy" "visual copy"; column-gap: 10vw; row-gap: 34px; align-items: start; padding-top: 64px; background: var(--white); }
.technical-heading { grid-area: heading; }
.technical-visual { grid-area: visual; margin: 0; }
.technical-copy { grid-area: copy; align-self: stretch; max-width: 620px; padding-top: 33px; display: flex; flex-direction: column; justify-content: space-between; }
.technical-copy p { font-size: 16px; line-height: 1.62; margin-bottom: 15px; }
.technical-badges { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 0; }
.technical-badges span { border: 1px solid var(--line); padding: 11px 14px; color: var(--ink); font-size: 13px; font-weight: 700; background: var(--soft); }

.brands { display: grid; grid-template-columns: 1.15fr .85fr; gap: 10vw; align-items: center; background: var(--ink); color: var(--white); }
.brands .eyebrow { color: #8bc8fa; }
.brands-copy h2 { margin-bottom: 28px; }
.brands-copy > p:not(.eyebrow) { color: #c2d0dc; max-width: 650px; }
.brand-names { display: flex; flex-direction: column; border-top: 1px solid #ffffff42; }
.brand-row { display: flex; align-items: center; gap: 22px; padding: 18px 0; border-bottom: 1px solid #ffffff42; }
.brand-mark { width: 72px; height: 58px; flex: 0 0 72px; display: grid; place-items: center; overflow: hidden; padding: 4px; }
.brand-mark img { display: block; width: 64px; height: 50px; object-fit: contain; }
.brand-name { font: 700 clamp(24px, 2.7vw, 40px) Manrope, sans-serif; letter-spacing: -1.5px; }
.brand-names small { color: #8fa6b9; font-size: 13px; padding-top: 20px; }

.cta { background: var(--blue); padding: 100px max(5vw, 30px); color: #fff; display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .72fr); align-items: center; gap: 8vw; overflow: hidden; }
.cta .eyebrow { color: #fff; }
.cta h2 { font-size: clamp(38px, 5.2vw, 74px); }
.cta h2 em { color: #d6edff; }
.light { background: #fff; color: var(--ink); margin-top: 32px; }
/* Opción A: CTAs de contacto con los colores originales de CMT. */
.contact-cta { display: inline-flex; align-items: center; justify-content: space-between; gap: 19px; min-height: 54px; max-width: 100%; padding: 15px 20px; border: 1px solid transparent; border-radius: 6px; font-size: 14px; line-height: 20px; font-weight: 700; text-decoration: none; transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease, border-color 180ms ease; }
.contact-cta span { flex: none; margin: 0; color: inherit; font-size: 21px; line-height: 20px; }
.contact-cta.nav-contact { min-height: 44px; padding: 10px 15px; gap: 17px; }
.contact-cta.primary { box-shadow: 0 6px 16px rgba(9, 36, 63, .13); }
.contact-cta.outline { border-color: var(--ink); background: var(--white); }
.contact-cta:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(9, 36, 63, .19); }
.contact-cta.primary:hover { background: #0765b6; }
.contact-cta.nav-contact:hover { background: #06192d; }
.contact-cta.outline:hover { background: var(--soft); }
.contact-cta.light { box-shadow: 0 6px 16px rgba(9, 36, 63, .13); }
.contact-cta.light:hover { background: #edf6fe; }
.contact-cta:focus-visible { outline: 3px solid #076dc4; outline-offset: 4px; box-shadow: 0 0 0 7px #fff; }
.cta-signal { position: relative; width: min(31vw, 410px); aspect-ratio: 1; justify-self: center; display: grid; place-items: center; }
.signal-ring { position: absolute; border: 1px solid rgba(255, 255, 255, .48); border-radius: 50%; }
.ring-one { width: 100%; height: 100%; }
.ring-two { width: 69%; height: 69%; }
.ring-three { width: 38%; height: 38%; background: rgba(255, 255, 255, .06); }
.signal-core { width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 10px rgba(255, 255, 255, .13); }
.cta-signal::before, .cta-signal::after { content: ""; position: absolute; background: rgba(255, 255, 255, .24); }
.cta-signal::before { width: 1px; height: 118%; }
.cta-signal::after { width: 118%; height: 1px; }
.cta-signal small { position: absolute; bottom: 8%; color: #fff; font-size: 10px; font-weight: 700; letter-spacing: 1.5px; }

.site-footer { padding: 58px max(5vw, 30px) 22px; border-top: 1px solid var(--line); background: var(--white); }
.site-footer .brand img { width: 170px; }
.footer-main { display: grid; grid-template-columns: 1.25fr 1.1fr .85fr 1.4fr; gap: clamp(22px, 3vw, 52px); align-items: start; }
.footer-brand p { max-width: 225px; margin: 17px 0 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.footer-column h2 { margin: 2px 0 17px; color: var(--ink); font: 700 14px Manrope, sans-serif; }
.footer-column p, .footer-column address, .footer-column a { display: block; margin: 0 0 10px; color: var(--muted); font-size: 13px; font-style: normal; line-height: 1.6; text-decoration: none; }
.footer-column a:hover { color: var(--blue); }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; align-items: center; margin-top: 48px; padding: 18px 70px 0 0; border-top: 1px solid var(--line); }
.footer-bottom p { margin: 0; color: var(--muted); font-size: 12px; }
.footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
.footer-links a { color: var(--muted); font-size: 12px; font-weight: 600; text-decoration: none; }
.footer-links a:hover, .footer-links a[aria-current="page"] { color: var(--blue); }
.cookie-settings-button { padding: 0; border: 0; background: none; color: var(--muted); font: 600 12px "DM Sans", sans-serif; cursor: pointer; }
.cookie-settings-button:hover, .cookie-settings-button:focus-visible { color: var(--blue); text-decoration: underline; }
.back-to-top { position: fixed; right: 25px; bottom: 25px; z-index: 40; width: 48px; height: 48px; border: 0; border-radius: 50%; background: var(--ink); color: var(--white); font: 700 22px/1 Manrope, sans-serif; cursor: pointer; box-shadow: 0 9px 24px #09243f35; opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity .2s ease, transform .2s ease, visibility .2s ease; }
.back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.back-to-top:hover, .back-to-top:focus-visible { background: var(--blue); }

.legal-page { background: var(--soft); }
.not-found-main { max-width: 1050px; margin: 0 auto; padding: clamp(65px, 9vw, 125px) max(7vw, 30px); }
.not-found-main h1 { margin: 0; font: 800 clamp(40px, 6vw, 72px)/1.06 Manrope, sans-serif; letter-spacing: -2px; }
.not-found-main > p:not(.eyebrow) { max-width: 580px; margin: 26px 0 32px; color: var(--muted); font-size: 17px; line-height: 1.65; }
.legal-main { padding: clamp(55px, 7vw, 95px) max(7vw, 35px) 100px; }
.legal-heading { max-width: 820px; margin: 0 auto 52px; }
.legal-heading h1 { margin: 0; font: 800 clamp(42px, 5.2vw, 72px)/1 Manrope, sans-serif; letter-spacing: -3.5px; }
.legal-heading > p:not(.eyebrow) { margin: 24px 0 12px; color: var(--muted); font-size: 17px; line-height: 1.65; }
.legal-heading small { color: var(--muted); font-size: 12px; }
.legal-content { max-width: 820px; margin: 0 auto; padding: clamp(28px, 5vw, 58px); background: var(--white); box-shadow: 0 20px 48px #09243f0d; }
.legal-content section + section { margin-top: 45px; padding-top: 42px; border-top: 1px solid var(--line); }
.legal-content h2 { margin: 0 0 18px; font: 700 clamp(21px, 2.2vw, 27px)/1.25 Manrope, sans-serif; letter-spacing: -.7px; }
.legal-content p { margin: 0 0 16px; color: var(--muted); font-size: 15px; line-height: 1.75; }
.legal-content p:last-child { margin-bottom: 0; }
.legal-content ul { margin: 0 0 16px; padding-left: 22px; color: var(--muted); font-size: 15px; line-height: 1.75; }
.legal-content a { color: var(--blue); font-weight: 600; }
.legal-details { margin: 28px 0 0; border-top: 1px solid var(--line); }
.legal-details div { display: grid; grid-template-columns: 180px 1fr; gap: 24px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.legal-details dt { color: var(--ink); font-size: 13px; font-weight: 700; }
.legal-details dd { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.55; }

@media (min-width: 1021px) and (max-width: 1400px) {
  .technical-copy p { font-size: 15px; line-height: 1.55; margin-bottom: 12px; }
  .technical-badges span { padding: 9px 11px; font-size: 12px; }
}

.contact-page { background: var(--soft); }
.contact-main { min-height: calc(100vh - 92px); display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; align-items: start; padding: clamp(55px, 7vw, 95px) max(7vw, 35px); }
.contact-intro h1 { font-size: clamp(40px, 4.6vw, 67px); }
.contact-intro > p:not(.eyebrow) { font-size: 17px; line-height: 1.65; color: var(--muted); max-width: 480px; margin: 26px 0; }
.contact-details { display: grid; grid-template-columns: 1fr 1fr; max-width: 540px; margin-top: 34px; border-top: 1px solid var(--line); }
.contact-detail { padding: 18px 18px 18px 0; border-bottom: 1px solid var(--line); }
.contact-address, .contact-hours { grid-column: 1 / -1; }
.contact-label { display: block; margin-bottom: 8px; color: var(--blue); font-size: 11px; font-weight: 700; letter-spacing: 1.1px; text-transform: uppercase; }
.contact-detail address, .contact-detail a, .contact-detail dd, .contact-detail dt { font-size: 14px; line-height: 1.55; }
.contact-detail address { color: var(--ink); font-style: normal; }
.contact-detail a { color: var(--ink); font-weight: 700; text-decoration: none; }
.contact-detail a:hover { color: var(--blue); }
.contact-hours dl { margin: 0; display: grid; grid-template-columns: repeat(2, max-content); gap: clamp(20px, 3vw, 48px); }
.contact-hours dl div { display: grid; grid-template-columns: max-content max-content; gap: 16px; }
.contact-hours dt { color: var(--ink); font-weight: 700; }
.contact-hours dd { margin: 0; color: var(--muted); }
.contact-note { font-size: 13px; font-weight: 600; margin-top: 33px; }
.form-card { background: #fff; padding: clamp(26px, 4vw, 48px); box-shadow: 0 20px 48px #09243f12; }
.field { margin-bottom: 23px; }
.field label { display: block; font-size: 13px; font-weight: 700; margin-bottom: 9px; }
.field small { font-weight: 400; color: var(--muted); }
#phone-help { display: block; margin-top: 8px; font-size: 12px; line-height: 1.5; }
input, textarea { width: 100%; border: 1px solid var(--line); border-radius: 0; padding: 13px; font: 15px "DM Sans", sans-serif; color: var(--ink); background: #fff; outline-color: var(--blue); }
textarea { resize: vertical; }
.check { font-size: 12px; line-height: 1.4; display: flex; gap: 9px; color: var(--muted); align-items: flex-start; }
.check input { width: auto; margin: 2px 0; }
.check a, .privacy-summary a { color: var(--blue); font-weight: 700; }
.privacy-summary { margin: 3px 0 18px; padding: 18px 20px; background: var(--soft); border-left: 3px solid var(--blue); }
.privacy-summary > strong { display: block; margin-bottom: 9px; font-size: 13px; color: var(--ink); }
.privacy-summary p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.privacy-summary b { color: var(--ink); }
.optional-check { margin-top: 14px; }
.optional-check strong { color: var(--ink); }
.website-field { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.form-button { margin-top: 25px; width: 100%; justify-content: space-between; }
.form-button:disabled { cursor: wait; opacity: .72; }
.form-status { font-size: 13px; min-height: 18px; margin: 14px 0 0; color: var(--blue); }
.form-status.is-success { color: #137653; }
.form-status.is-error { color: #b42318; }
.form-status:empty { min-height: 0; margin: 0; }
.success-dialog { width: min(90vw, 480px); max-width: 480px; padding: 38px; border: 0; color: var(--ink); background: var(--white); box-shadow: 0 25px 80px #09243f40; text-align: center; }
.success-dialog::backdrop { background: rgba(9, 36, 63, .66); backdrop-filter: blur(3px); }
.success-dialog .eyebrow { margin: 20px 0 12px; }
.success-dialog h2 { margin: 0 0 16px; font: 800 clamp(26px, 4vw, 34px)/1.15 Manrope, sans-serif; letter-spacing: -1.4px; }
.success-dialog p:not(.eyebrow) { color: var(--muted); line-height: 1.6; }
.success-icon { display: grid; place-items: center; width: 62px; height: 62px; margin: 0 auto; border-radius: 50%; background: #e8f7f0; color: #137653; font-size: 32px; font-weight: 700; }
.dialog-close { margin-top: 18px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .back-to-top, .menu-toggle span { transition: none; }
  .contact-cta { transition: none; }
  .contact-cta:hover { transform: none; }
}

@media (max-width: 1140px) {
  .site-header { min-height: 108px; padding: 0 7vw; flex-wrap: wrap; column-gap: 15px; row-gap: 0; }
  .mobile-contact-bar { display: flex; align-items: center; justify-content: center; order: -1; width: calc(100% + 14vw); height: 36px; margin: 0 -7vw; background: var(--blue); }
  .mobile-contact-bar a { color: var(--white); font-size: 12px; font-weight: 700; letter-spacing: .2px; text-decoration: none; }
  .header-contact { display: none; }
  .header-identity { height: 72px; }
  .brand img { width: 165px; }
  .menu-toggle { display: flex; width: 44px; height: 44px; padding: 11px 8px; flex-direction: column; justify-content: space-between; background: none; border: 0; cursor: pointer; }
  .menu-toggle span { display: block; width: 100%; height: 2px; background: var(--ink); transition: transform .2s ease, opacity .2s ease; }
  .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(10px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-10px) rotate(-45deg); }
  .main-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: #fff; padding: 24px 7vw; flex-direction: column; align-items: flex-start; gap: 20px; border-bottom: 1px solid var(--line); box-shadow: 0 18px 30px rgba(9, 36, 63, .08); }
  .main-nav.open { display: flex; }
  /* Amplía la zona pulsable conservando la posición y separación del texto. */
  .main-nav a:not(.nav-contact) { align-self: stretch; padding: 10px 0; margin: -10px 0; }
  .footer-links a, .footer-links .cookie-settings-button { padding: 6px 0; margin: -6px 0; }
  .form-card .check { font-size: 13px; line-height: 1.5; }
  .form-card .check input { width: 16px; height: 16px; flex: 0 0 16px; }
  .form-card .privacy-summary p { font-size: 13px; }
  section[id] { scroll-margin-top: 126px; }
  .hero { grid-template-columns: 1fr; }
  .hero-copy { padding: 75px 7vw 55px; }
  .hero-visual { height: 480px; }
  .hero-visual img { object-position: 62% center; }
  .hero h1, .about h2, .services h2, .technical h2, .brands h2, .cta h2, .contact-intro h1 { letter-spacing: -2.5px; }
  .about, .services, .technical, .brands, .contact-main { grid-template-columns: 1fr; gap: 40px; padding: 75px 7vw; }
  .technical { grid-template-areas: "heading" "visual" "copy"; row-gap: 28px; }
  .services { padding-bottom: 38px; }
  .technical { padding-top: 38px; }
  .about-copy, .technical-copy { padding-top: 0; }
  .section-visual { margin-top: 28px; }
  .numbers { grid-template-columns: 1fr; padding: 35px 7vw; }
  .numbers div { border-right: 0; border-bottom: 1px solid #ffffff3a; padding-bottom: 18px; }
  .services-heading { position: static; }
  .contact-main { min-height: auto; }
  .contact-intro { order: 1; }
  .form-card { order: 2; }
  .site-footer { padding: 45px 7vw 22px; }
  .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px; }
  .hero-actions { flex-wrap: wrap; }
  .hero-text { font-size: 16px; }
  .technical-copy { display: block; }
  .technical-badges { margin-top: 28px; }
  .cta { grid-template-columns: 1fr; gap: 54px; }
  .cta-signal { width: min(68vw, 360px); justify-self: center; margin-left: 0; }
}

@media (max-width: 560px) {
  .hero-visual { height: 350px; }
  .hero-visual img { object-position: 75% center; }
  .image-tag { left: 7vw; bottom: 25px; }
  .numbers strong { font-size: 37px; min-width: 78px; }
  .brand-row { gap: 16px; }
  .brand-mark { width: 62px; height: 52px; flex-basis: 62px; }
  .brand-mark img { width: 54px; height: 44px; }
  .brand-name { font-size: 25px; letter-spacing: -1px; }
  .footer-main { grid-template-columns: 1fr; gap: 27px; }
  .footer-bottom { margin-top: 36px; padding-right: 0; align-items: flex-start; flex-direction: column; gap: 12px; }
  .back-to-top { right: 16px; bottom: 16px; width: 44px; height: 44px; }
  .success-dialog { padding: 30px 23px; }
  .legal-main { padding: 52px 7vw 70px; }
  .legal-heading { margin-bottom: 34px; }
  .legal-heading h1 { letter-spacing: -2.5px; }
  .legal-content { padding: 28px 22px; }
  .legal-content section + section { margin-top: 34px; padding-top: 31px; }
  .legal-details div { grid-template-columns: 1fr; gap: 5px; }
  .contact-details { grid-template-columns: 1fr; }
  .contact-address, .contact-hours { grid-column: auto; }
  .contact-hours dl { grid-template-columns: 1fr; gap: 14px; }
  .contact-hours dl div { gap: 14px; }
}

@media (max-width: 360px) {
  .services h2 { font-size: 25px; letter-spacing: -1.8px; }
  .service-list article { grid-template-columns: 32px minmax(0, 1fr); }
  .service-list h3 { font-size: 20px; letter-spacing: -.6px; }
}
