/* CCTV Empresarial 2.3.2 — diseño de referencia: pantalla 2 / barreras vehiculares.
   Scope: exclusivamente páginas interiores heredadas; no altera portada, menú ni fichas aprobadas.
   Regla editorial: 2 columnas en portada y soluciones, anchos legibles, tarjetas, imágenes proporcionadas. */
.cctv-legacy231{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:36px 0 70px;box-sizing:border-box}
.cctv-legacy231 :is(section,div,article,figure){min-width:0;box-sizing:border-box}
.cctv-legacy231 :is(h1,h2,h3,p,ul){overflow-wrap:normal;word-break:normal}
.cctv-legacy231 .cctv-faq-section{width:min(100%,1080px);margin:50px auto!important;padding:28px 30px!important}
.cctv-legacy231 .cctv-faq-section details{max-width:100%;}
.cctv-legacy231 .cctv-faq-section h2{font-size:clamp(25px,2.4vw,32px)}
.cctv-legacy231 .cctv-faq-section summary{font-weight:800}
/* El tema viejo limitaba las imágenes, pero sin darles layout. No forzar ancho a 100vw. */
.cctv-legacy231 img{display:block;max-width:100%;width:100%;height:auto;object-fit:cover;object-position:center;border-radius:15px}
.cctv-legacy231 a{overflow-wrap:break-word}

/* Soluciones nuevas: mismo contenedor y proporciones que la página de barreras. */
:is(.cctv-legacy231 .cctv-maint-page, .cctv-legacy231 .cctv-turnstile-page, .cctv-legacy231 .cctv-school-page, .cctv-legacy231 .cctv-industrial-page, .cctv-legacy231 .cctv-park-page){width:100%;max-width:1180px;margin:0 auto;font-family:Arial,Helvetica,sans-serif;color:#1d2b34;line-height:1.65;font-size:16px}
:is(.cctv-legacy231 .cctv-maint-page, .cctv-legacy231 .cctv-turnstile-page, .cctv-legacy231 .cctv-school-page, .cctv-legacy231 .cctv-industrial-page, .cctv-legacy231 .cctv-park-page) :is(p,ul,ol){font-size:16px;line-height:1.65}
:is(.cctv-legacy231 .cctv-maint-page, .cctv-legacy231 .cctv-turnstile-page, .cctv-legacy231 .cctv-school-page, .cctv-legacy231 .cctv-industrial-page, .cctv-legacy231 .cctv-park-page) p{max-width:750px;margin:0 0 18px}
:is(.cctv-legacy231 .cctv-maint-page, .cctv-legacy231 .cctv-turnstile-page, .cctv-legacy231 .cctv-school-page, .cctv-legacy231 .cctv-industrial-page, .cctv-legacy231 .cctv-park-page) h1{font-size:clamp(34px,3.4vw,48px);line-height:1.11;letter-spacing:-.04em;font-weight:850;color:#17242c;margin:13px 0 21px}
:is(.cctv-legacy231 .cctv-maint-page, .cctv-legacy231 .cctv-turnstile-page, .cctv-legacy231 .cctv-school-page, .cctv-legacy231 .cctv-industrial-page, .cctv-legacy231 .cctv-park-page) h2{font-size:clamp(26px,2.7vw,35px);letter-spacing:-.025em;line-height:1.18;font-weight:850;color:#17242c;margin:8px 0 19px}
:is(.cctv-legacy231 .cctv-maint-page, .cctv-legacy231 .cctv-turnstile-page, .cctv-legacy231 .cctv-school-page, .cctv-legacy231 .cctv-industrial-page, .cctv-legacy231 .cctv-park-page) h3{font-size:clamp(19px,1.9vw,23px);line-height:1.3;font-weight:800;color:#17242c;margin:10px 0}

.cctv-legacy231 .cctv-maint-page .maint-hero,
.cctv-legacy231 .cctv-turnstile-page .turnstile-hero,
.cctv-legacy231 .cctv-school-page .school-hero,
.cctv-legacy231 .cctv-industrial-page .industrial-hero,
.cctv-legacy231 .cctv-park-page .park-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.96fr);align-items:center;gap:44px;padding:46px;background:linear-gradient(130deg,#f0f4f6 0%,#ffffff 70%);border-radius:22px;min-height:475px;margin:0 0 27px;overflow:hidden}
.cctv-legacy231 .cctv-maint-page .maint-hero-copy,
.cctv-legacy231 .cctv-turnstile-page .turnstile-hero-copy,
.cctv-legacy231 .cctv-school-page .school-hero-copy,
.cctv-legacy231 .cctv-industrial-page .industrial-hero-copy,
.cctv-legacy231 .cctv-park-page .park-hero-copy{align-self:center;min-width:0}
.cctv-legacy231 .cctv-maint-page .maint-hero-media,
.cctv-legacy231 .cctv-turnstile-page .turnstile-hero-media,
.cctv-legacy231 .cctv-school-page .school-hero-media,
.cctv-legacy231 .cctv-industrial-page .industrial-hero-media,
.cctv-legacy231 .cctv-park-page .park-hero-media{width:100%;min-width:0;align-self:stretch;display:flex;align-items:stretch;overflow:hidden;border-radius:16px}
.cctv-legacy231 .cctv-maint-page .maint-hero-media img,
.cctv-legacy231 .cctv-turnstile-page .turnstile-hero-media img,
.cctv-legacy231 .cctv-school-page .school-hero-media img,
.cctv-legacy231 .cctv-industrial-page .industrial-hero-media img,
.cctv-legacy231 .cctv-park-page .park-hero-media img{display:block;width:100%;height:100%;min-height:360px;max-height:460px;object-fit:cover;border-radius:16px}
.cctv-legacy231 .cctv-maint-page .maint-kicker,
.cctv-legacy231 .cctv-turnstile-page .turnstile-kicker,
.cctv-legacy231 .cctv-school-page .school-kicker,
.cctv-legacy231 .cctv-industrial-page .industrial-kicker,
.cctv-legacy231 .cctv-park-page .park-kicker{display:inline-block;background:#fff0b0;border-radius:40px;padding:8px 13px;font-size:11px;font-weight:850;letter-spacing:.05em;text-transform:uppercase;color:#7f6500}
.cctv-legacy231 .cctv-maint-page .maint-points,
.cctv-legacy231 .cctv-turnstile-page .turnstile-points,
.cctv-legacy231 .cctv-school-page .school-points,
.cctv-legacy231 .cctv-industrial-page .industrial-points,
.cctv-legacy231 .cctv-park-page .park-points{padding-left:22px;margin:18px 0 25px}
.cctv-legacy231 .cctv-maint-page .maint-buttons,
.cctv-legacy231 .cctv-turnstile-page .turnstile-buttons,
.cctv-legacy231 .cctv-school-page .school-buttons,
.cctv-legacy231 .cctv-industrial-page .industrial-buttons,
.cctv-legacy231 .cctv-park-page .park-buttons{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:25px 0 0}
.cctv-legacy231 .cctv-maint-page .maint-btn,
.cctv-legacy231 .cctv-turnstile-page .turnstile-btn,
.cctv-legacy231 .cctv-school-page .school-btn,
.cctv-legacy231 .cctv-industrial-page .industrial-btn,
.cctv-legacy231 .cctv-park-page .park-btn{display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;line-height:1.35;min-height:46px;padding:13px 18px;background:#ffcf00;border-radius:9px;color:#17232a;text-decoration:none!important;transition:filter .2s}

.cctv-legacy231 .cctv-maint-page .maint-btn.secondary,
.cctv-legacy231 .cctv-turnstile-page .turnstile-btn.secondary,
.cctv-legacy231 .cctv-school-page .school-btn.secondary,
.cctv-legacy231 .cctv-industrial-page .industrial-btn.secondary,
.cctv-legacy231 .cctv-park-page .park-btn.secondary{background:#17242c;color:white}

.cctv-legacy231 .cctv-maint-page .maint-sector-strip,
.cctv-legacy231 .cctv-turnstile-page .turnstile-sector-strip,
.cctv-legacy231 .cctv-school-page .school-sector-strip,
.cctv-legacy231 .cctv-industrial-page .industrial-sector-strip,
.cctv-legacy231 .cctv-park-page .park-sector-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:0 auto 65px}
.cctv-legacy231 .cctv-maint-page .maint-sector-strip > div,
.cctv-legacy231 .cctv-turnstile-page .turnstile-sector-strip > div,
.cctv-legacy231 .cctv-school-page .school-sector-strip > div,
.cctv-legacy231 .cctv-industrial-page .industrial-sector-strip > div,
.cctv-legacy231 .cctv-park-page .park-sector-strip > div{display:flex;flex-direction:column;gap:4px;padding:19px 20px;background:#f2f5f6;border:1px solid #e7ecee;border-radius:13px}
.cctv-legacy231 .cctv-maint-page .maint-sector-strip span,
.cctv-legacy231 .cctv-turnstile-page .turnstile-sector-strip span,
.cctv-legacy231 .cctv-school-page .school-sector-strip span,
.cctv-legacy231 .cctv-industrial-page .industrial-sector-strip span,
.cctv-legacy231 .cctv-park-page .park-sector-strip span{font-size:12px;font-weight:850;color:#947300}
.cctv-legacy231 .cctv-maint-page .maint-section,
.cctv-legacy231 .cctv-turnstile-page .turnstile-section,
.cctv-legacy231 .cctv-school-page .school-section,
.cctv-legacy231 .cctv-industrial-page .industrial-section,
.cctv-legacy231 .cctv-park-page .park-section{margin:54px auto 64px;width:100%;padding:8px 0}
.cctv-legacy231 .cctv-maint-page .maint-intro,
.cctv-legacy231 .cctv-turnstile-page .turnstile-intro,
.cctv-legacy231 .cctv-school-page .school-intro,
.cctv-legacy231 .cctv-industrial-page .industrial-intro,
.cctv-legacy231 .cctv-park-page .park-intro{padding:18px 0}
.cctv-legacy231 .cctv-maint-page .maint-eyebrow,
.cctv-legacy231 .cctv-turnstile-page .turnstile-eyebrow,
.cctv-legacy231 .cctv-school-page .school-eyebrow,
.cctv-legacy231 .cctv-industrial-page .industrial-eyebrow,
.cctv-legacy231 .cctv-park-page .park-eyebrow{display:inline-block;margin-bottom:10px;color:#997b00;font-size:12px;letter-spacing:.1em;font-weight:900;text-transform:uppercase}
.cctv-legacy231 .cctv-maint-page .maint-cards,
.cctv-legacy231 .cctv-turnstile-page .turnstile-cards,
.cctv-legacy231 .cctv-school-page .school-cards,
.cctv-legacy231 .cctv-industrial-page .industrial-cards,
.cctv-legacy231 .cctv-park-page .park-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:27px 0 18px}
.cctv-legacy231 .cctv-maint-page .maint-card,
.cctv-legacy231 .cctv-turnstile-page .turnstile-card,
.cctv-legacy231 .cctv-school-page .school-card,
.cctv-legacy231 .cctv-industrial-page .industrial-card,
.cctv-legacy231 .cctv-park-page .park-card{border-radius:16px;border:1px solid #e2e8eb;background:#f5f7f8;padding:25px;min-width:0}
.cctv-legacy231 .cctv-maint-page .maint-card-icon,
.cctv-legacy231 .cctv-turnstile-page .turnstile-card-icon,
.cctv-legacy231 .cctv-school-page .school-card-icon,
.cctv-legacy231 .cctv-industrial-page .industrial-card-icon,
.cctv-legacy231 .cctv-park-page .park-card-icon{font-size:13px;color:#9b7900;font-weight:900;letter-spacing:.08em}
.cctv-legacy231 .cctv-maint-page .maint-feature,
.cctv-legacy231 .cctv-turnstile-page .turnstile-feature,
.cctv-legacy231 .cctv-school-page .school-feature,
.cctv-legacy231 .cctv-industrial-page .industrial-feature,
.cctv-legacy231 .cctv-park-page .park-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:45px;margin:35px auto 65px;padding:28px;background:#f4f7f8;border-radius:18px}
.cctv-legacy231 .cctv-maint-page .maint-feature-media,
.cctv-legacy231 .cctv-turnstile-page .turnstile-feature-media,
.cctv-legacy231 .cctv-school-page .school-feature-media,
.cctv-legacy231 .cctv-industrial-page .industrial-feature-media,
.cctv-legacy231 .cctv-park-page .park-feature-media{width:100%;min-width:0}
.cctv-legacy231 .cctv-maint-page .maint-feature-media img,
.cctv-legacy231 .cctv-turnstile-page .turnstile-feature-media img,
.cctv-legacy231 .cctv-school-page .school-feature-media img,
.cctv-legacy231 .cctv-industrial-page .industrial-feature-media img,
.cctv-legacy231 .cctv-park-page .park-feature-media img{width:100%;height:355px;max-height:355px;object-fit:cover;border-radius:14px}
.cctv-legacy231 .cctv-maint-page .maint-feature-copy,
.cctv-legacy231 .cctv-turnstile-page .turnstile-feature-copy,
.cctv-legacy231 .cctv-school-page .school-feature-copy,
.cctv-legacy231 .cctv-industrial-page .industrial-feature-copy,
.cctv-legacy231 .cctv-park-page .park-feature-copy{padding:10px 4px;min-width:0}

.cctv-legacy231 .cctv-maint-page .maint-feature.reverse,
.cctv-legacy231 .cctv-turnstile-page .turnstile-feature.reverse,
.cctv-legacy231 .cctv-school-page .school-feature.reverse,
.cctv-legacy231 .cctv-industrial-page .industrial-feature.reverse,
.cctv-legacy231 .cctv-park-page .park-feature.reverse{direction:rtl}

.cctv-legacy231 .cctv-maint-page .maint-feature.reverse > *,
.cctv-legacy231 .cctv-turnstile-page .turnstile-feature.reverse > *,
.cctv-legacy231 .cctv-school-page .school-feature.reverse > *,
.cctv-legacy231 .cctv-industrial-page .industrial-feature.reverse > *,
.cctv-legacy231 .cctv-park-page .park-feature.reverse > *{direction:ltr}

.cctv-legacy231 .cctv-maint-page .maint-dark,
.cctv-legacy231 .cctv-turnstile-page .turnstile-dark,
.cctv-legacy231 .cctv-school-page .school-dark,
.cctv-legacy231 .cctv-industrial-page .industrial-dark,
.cctv-legacy231 .cctv-park-page .park-dark{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:38px;padding:38px;background:#17242c;color:#fff;border-radius:20px;margin:38px auto 60px}
.cctv-legacy231 .cctv-maint-page .maint-dark,
.cctv-legacy231 .cctv-turnstile-page .turnstile-dark,
.cctv-legacy231 .cctv-school-page .school-dark,
.cctv-legacy231 .cctv-industrial-page .industrial-dark,
.cctv-legacy231 .cctv-park-page .park-dark :is(h2,h3,p,span,li){color:inherit}
.cctv-legacy231 .cctv-maint-page .maint-dark,
.cctv-legacy231 .cctv-turnstile-page .turnstile-dark,
.cctv-legacy231 .cctv-school-page .school-dark,
.cctv-legacy231 .cctv-industrial-page .industrial-dark,
.cctv-legacy231 .cctv-park-page .park-dark img{max-height:360px;min-height:260px;object-fit:cover;border-radius:12px}

.cctv-legacy231 .cctv-maint-page .maint-integration,
.cctv-legacy231 .cctv-turnstile-page .turnstile-integration,
.cctv-legacy231 .cctv-school-page .school-integration,
.cctv-legacy231 .cctv-industrial-page .industrial-integration,
.cctv-legacy231 .cctv-park-page .park-integration{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:38px;padding:38px;background:#17242c;color:#fff;border-radius:20px;margin:38px auto 60px}
.cctv-legacy231 .cctv-maint-page .maint-integration,
.cctv-legacy231 .cctv-turnstile-page .turnstile-integration,
.cctv-legacy231 .cctv-school-page .school-integration,
.cctv-legacy231 .cctv-industrial-page .industrial-integration,
.cctv-legacy231 .cctv-park-page .park-integration :is(h2,h3,p,span,li){color:inherit}
.cctv-legacy231 .cctv-maint-page .maint-integration,
.cctv-legacy231 .cctv-turnstile-page .turnstile-integration,
.cctv-legacy231 .cctv-school-page .school-integration,
.cctv-legacy231 .cctv-industrial-page .industrial-integration,
.cctv-legacy231 .cctv-park-page .park-integration img{max-height:360px;min-height:260px;object-fit:cover;border-radius:12px}

.cctv-legacy231 .cctv-maint-page .maint-validation,
.cctv-legacy231 .cctv-turnstile-page .turnstile-validation,
.cctv-legacy231 .cctv-school-page .school-validation,
.cctv-legacy231 .cctv-industrial-page .industrial-validation,
.cctv-legacy231 .cctv-park-page .park-validation{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:38px;padding:38px;background:#17242c;color:#fff;border-radius:20px;margin:38px auto 60px}
.cctv-legacy231 .cctv-maint-page .maint-validation,
.cctv-legacy231 .cctv-turnstile-page .turnstile-validation,
.cctv-legacy231 .cctv-school-page .school-validation,
.cctv-legacy231 .cctv-industrial-page .industrial-validation,
.cctv-legacy231 .cctv-park-page .park-validation :is(h2,h3,p,span,li){color:inherit}
.cctv-legacy231 .cctv-maint-page .maint-validation,
.cctv-legacy231 .cctv-turnstile-page .turnstile-validation,
.cctv-legacy231 .cctv-school-page .school-validation,
.cctv-legacy231 .cctv-industrial-page .industrial-validation,
.cctv-legacy231 .cctv-park-page .park-validation img{max-height:360px;min-height:260px;object-fit:cover;border-radius:12px}

.cctv-legacy231 .cctv-maint-page .maint-policy,
.cctv-legacy231 .cctv-turnstile-page .turnstile-policy,
.cctv-legacy231 .cctv-school-page .school-policy,
.cctv-legacy231 .cctv-industrial-page .industrial-policy,
.cctv-legacy231 .cctv-park-page .park-policy{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:38px;padding:38px;background:#17242c;color:#fff;border-radius:20px;margin:38px auto 60px}
.cctv-legacy231 .cctv-maint-page .maint-policy,
.cctv-legacy231 .cctv-turnstile-page .turnstile-policy,
.cctv-legacy231 .cctv-school-page .school-policy,
.cctv-legacy231 .cctv-industrial-page .industrial-policy,
.cctv-legacy231 .cctv-park-page .park-policy :is(h2,h3,p,span,li){color:inherit}
.cctv-legacy231 .cctv-maint-page .maint-policy,
.cctv-legacy231 .cctv-turnstile-page .turnstile-policy,
.cctv-legacy231 .cctv-school-page .school-policy,
.cctv-legacy231 .cctv-industrial-page .industrial-policy,
.cctv-legacy231 .cctv-park-page .park-policy img{max-height:360px;min-height:260px;object-fit:cover;border-radius:12px}

.cctv-legacy231 .cctv-maint-page .maint-process,
.cctv-legacy231 .cctv-turnstile-page .turnstile-process,
.cctv-legacy231 .cctv-school-page .school-process,
.cctv-legacy231 .cctv-industrial-page .industrial-process,
.cctv-legacy231 .cctv-park-page .park-process{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:28px 0 45px}
.cctv-legacy231 .cctv-maint-page .maint-step,
.cctv-legacy231 .cctv-turnstile-page .turnstile-step,
.cctv-legacy231 .cctv-school-page .school-step,
.cctv-legacy231 .cctv-industrial-page .industrial-step,
.cctv-legacy231 .cctv-park-page .park-step{min-width:0;padding:23px 19px;background:#f2f6f7;border-radius:14px}
.cctv-legacy231 .cctv-maint-page .maint-step-number,
.cctv-legacy231 .cctv-turnstile-page .turnstile-step-number,
.cctv-legacy231 .cctv-school-page .school-step-number,
.cctv-legacy231 .cctv-industrial-page .industrial-step-number,
.cctv-legacy231 .cctv-park-page .park-step-number{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;background:#ffeaaa;border-radius:10px;font-weight:900;color:#705600;margin-bottom:12px}
.cctv-legacy231 .cctv-maint-page .maint-cta,
.cctv-legacy231 .cctv-turnstile-page .turnstile-cta,
.cctv-legacy231 .cctv-school-page .school-cta,
.cctv-legacy231 .cctv-industrial-page .industrial-cta,
.cctv-legacy231 .cctv-park-page .park-cta{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:26px;padding:34px;margin:45px 0;background:#eef3f6;border-radius:17px}
.cctv-legacy231 .cctv-maint-page .maint-cta h2,
.cctv-legacy231 .cctv-turnstile-page .turnstile-cta h2,
.cctv-legacy231 .cctv-school-page .school-cta h2,
.cctv-legacy231 .cctv-industrial-page .industrial-cta h2,
.cctv-legacy231 .cctv-park-page .park-cta h2{margin:10px 0}
.cctv-legacy231 .cctv-maint-page .maint-location,
.cctv-legacy231 .cctv-turnstile-page .turnstile-location,
.cctv-legacy231 .cctv-school-page .school-location,
.cctv-legacy231 .cctv-industrial-page .industrial-location,
.cctv-legacy231 .cctv-park-page .park-location{padding:18px 0 8px;max-width:100%}

/* Nosotros: mismo lenguaje de columnas y tarjetas, sin tocar contenido original */
.cctv-about230 .cctv-about-page{width:100%;font-family:Arial,Helvetica,sans-serif}
.cctv-about230 .about-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.97fr);align-items:center;gap:48px;padding:40px;background:#f0f4f6;border-radius:20px}
.cctv-about230 .about-hero-media{overflow:hidden;border-radius:16px}
.cctv-about230 .about-hero-media img{height:435px;max-height:435px;object-fit:cover;border-radius:16px}
.cctv-about230 .about-kicker{display:inline-block;font-size:11px;background:#ffeca8;color:#816600;border-radius:40px;padding:8px 14px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}
.cctv-about230 .about-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}
.cctv-about230 .about-btn{display:inline-flex;align-items:center;justify-content:center;min-height:45px;padding:13px 19px;background:#ffce00;color:#18252b;text-decoration:none!important;border-radius:9px;font-size:14px;font-weight:800}
.cctv-about230 .about-btn.secondary{background:#17242c;color:#fff}
.cctv-about230 .about-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:25px 0}
.cctv-about230 .about-strip>*{background:#f2f5f7;border-radius:12px;padding:16px}
.cctv-about230 .about-two-columns,.cctv-about230 .about-industrial{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:38px;align-items:center;margin:52px auto;padding:27px;border-radius:17px}
.cctv-about230 .about-industrial{background:#17252d;color:#fff}
.cctv-about230 .about-industrial :is(h1,h2,h3,p){color:#fff}
.cctv-about230 .about-industrial-media img{height:375px;max-height:375px;object-fit:cover}
.cctv-about230 .about-services-grid,.cctv-about230 .about-method-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.cctv-about230 .about-services-grid >*,.cctv-about230 .about-method-grid >*{padding:22px;border-radius:14px;background:#f2f5f7;border:1px solid #e3e8eb}
.cctv-about230 .about-location,.cctv-about230 .about-cta{padding:30px;background:#edf3f6;border-radius:16px;margin:40px auto}

/* Servicios y páginas locales: tipografía y secciones consistentes. */
.cctv-legacy231 :is(.cctv-toluca-page,.cctv-metepec-v4,.cctv-lerma-v4,.cctv-services-v3){width:100%;margin:0 auto;max-width:1180px}

.cctv-legacy231 .toluca-wrap,
.cctv-legacy231 .mpx4-wrap,
.cctv-legacy231 .lrm4-wrap,
.cctv-legacy231 .sv3-wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 14px}
.cctv-legacy231 .toluca-hero,
.cctv-legacy231 .mpx4-hero,
.cctv-legacy231 .lrm4-hero,
.cctv-legacy231 .sv3-hero{background:linear-gradient(130deg,#edf3f6,#fff);padding:42px 25px;border-radius:20px;margin:0 0 52px}
.cctv-legacy231 .toluca-hero-grid,
.cctv-legacy231 .mpx4-hero-grid,
.cctv-legacy231 .lrm4-hero-grid,
.cctv-legacy231 .sv3-hero-grid{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);gap:42px;align-items:center}
.cctv-legacy231 .toluca-hero-copy,
.cctv-legacy231 .mpx4-hero-copy,
.cctv-legacy231 .lrm4-hero-copy,
.cctv-legacy231 .sv3-hero-copy{min-width:0}
.cctv-legacy231 .toluca-hero,
.cctv-legacy231 .mpx4-hero,
.cctv-legacy231 .lrm4-hero,
.cctv-legacy231 .sv3-hero h1{font-size:clamp(34px,3.6vw,49px);line-height:1.12;letter-spacing:-.04em;margin:14px 0 20px;color:#18252d}
.cctv-legacy231 .toluca-hero-image,
.cctv-legacy231 .mpx4-hero-image,
.cctv-legacy231 .lrm4-hero-image,
.cctv-legacy231 .sv3-hero-image,
.cctv-legacy231 .toluca-hero-media,
.cctv-legacy231 .mpx4-hero-media,
.cctv-legacy231 .lrm4-hero-media,
.cctv-legacy231 .sv3-hero-media{overflow:hidden;border-radius:16px;min-width:0}
.cctv-legacy231 .toluca-hero-image img,
.cctv-legacy231 .mpx4-hero-image img,
.cctv-legacy231 .lrm4-hero-image img,
.cctv-legacy231 .sv3-hero-image img,
.cctv-legacy231 .toluca-hero-media img,
.cctv-legacy231 .mpx4-hero-media img,
.cctv-legacy231 .lrm4-hero-media img,
.cctv-legacy231 .sv3-hero-media img{width:100%;height:400px;max-height:400px;object-fit:cover;border-radius:16px}
.cctv-legacy231 .toluca-kicker,
.cctv-legacy231 .mpx4-kicker,
.cctv-legacy231 .lrm4-kicker,
.cctv-legacy231 .sv3-kicker{display:inline-block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#947400;font-weight:900}
.cctv-legacy231 .toluca-buttons,
.cctv-legacy231 .mpx4-buttons,
.cctv-legacy231 .lrm4-buttons,
.cctv-legacy231 .sv3-buttons,
.cctv-legacy231 .toluca-actions,
.cctv-legacy231 .mpx4-actions,
.cctv-legacy231 .lrm4-actions,
.cctv-legacy231 .sv3-actions{display:flex;align-items:center;flex-wrap:wrap;gap:11px;margin:26px 0 0}
.cctv-legacy231 .toluca-btn,
.cctv-legacy231 .mpx4-btn,
.cctv-legacy231 .lrm4-btn,
.cctv-legacy231 .sv3-btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 18px;min-height:46px;border-radius:9px;font-size:14px;font-weight:850;text-decoration:none!important}
.cctv-legacy231 .toluca-section,
.cctv-legacy231 .mpx4-section,
.cctv-legacy231 .lrm4-section,
.cctv-legacy231 .sv3-section{padding:42px 0;margin:0 auto 35px}
.cctv-legacy231 .toluca-section h2,
.cctv-legacy231 .mpx4-section h2,
.cctv-legacy231 .lrm4-section h2,
.cctv-legacy231 .sv3-section h2{font-size:clamp(26px,2.65vw,35px);line-height:1.2;letter-spacing:-.025em}
.cctv-legacy231 .toluca-eyebrow,
.cctv-legacy231 .mpx4-eyebrow,
.cctv-legacy231 .lrm4-eyebrow,
.cctv-legacy231 .sv3-eyebrow{color:#997800;font-weight:900;font-size:12px;letter-spacing:.09em;text-transform:uppercase}
.cctv-legacy231 .toluca-service-grid,
.cctv-legacy231 .mpx4-service-grid,
.cctv-legacy231 .lrm4-service-grid,
.cctv-legacy231 .sv3-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:27px 0 18px}
.cctv-legacy231 .toluca-services-grid,
.cctv-legacy231 .mpx4-services-grid,
.cctv-legacy231 .lrm4-services-grid,
.cctv-legacy231 .sv3-services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:27px 0 18px}
.cctv-legacy231 .toluca-service-card,
.cctv-legacy231 .mpx4-service-card,
.cctv-legacy231 .lrm4-service-card,
.cctv-legacy231 .sv3-service-card{padding:24px;border-radius:14px;border:1px solid #dce5e9;background:#f5f7f8}
.cctv-legacy231 .toluca-feature-grid,
.cctv-legacy231 .mpx4-feature-grid,
.cctv-legacy231 .lrm4-feature-grid,
.cctv-legacy231 .sv3-feature-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:42px}
.cctv-legacy231 .toluca-feature,
.cctv-legacy231 .mpx4-feature,
.cctv-legacy231 .lrm4-feature,
.cctv-legacy231 .sv3-feature{padding:39px 20px;margin:36px auto;background:#f3f6f7;border-radius:19px}
.cctv-legacy231 .toluca-feature-image,
.cctv-legacy231 .mpx4-feature-image,
.cctv-legacy231 .lrm4-feature-image,
.cctv-legacy231 .sv3-feature-image,
.cctv-legacy231 .toluca-feature-media,
.cctv-legacy231 .mpx4-feature-media,
.cctv-legacy231 .lrm4-feature-media,
.cctv-legacy231 .sv3-feature-media{min-width:0}
.cctv-legacy231 .toluca-feature-image img,
.cctv-legacy231 .mpx4-feature-image img,
.cctv-legacy231 .lrm4-feature-image img,
.cctv-legacy231 .sv3-feature-image img,
.cctv-legacy231 .toluca-feature-media img,
.cctv-legacy231 .mpx4-feature-media img,
.cctv-legacy231 .lrm4-feature-media img,
.cctv-legacy231 .sv3-feature-media img{width:100%;height:350px;object-fit:cover;border-radius:16px}
.cctv-legacy231 .toluca-feature :is(h2,h3),
.cctv-legacy231 .mpx4-feature :is(h2,h3),
.cctv-legacy231 .lrm4-feature :is(h2,h3),
.cctv-legacy231 .sv3-feature :is(h2,h3){margin:10px 0 18px}
.cctv-legacy231 .toluca-process-grid,
.cctv-legacy231 .mpx4-process-grid,
.cctv-legacy231 .lrm4-process-grid,
.cctv-legacy231 .sv3-process-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:25px 0}
.cctv-legacy231 .toluca-process-grid > *,
.cctv-legacy231 .mpx4-process-grid > *,
.cctv-legacy231 .lrm4-process-grid > *,
.cctv-legacy231 .sv3-process-grid > *{background:#f0f4f6;padding:22px;border-radius:13px}
.cctv-legacy231 .toluca-region-grid,
.cctv-legacy231 .mpx4-region-grid,
.cctv-legacy231 .lrm4-region-grid,
.cctv-legacy231 .sv3-region-grid,
.cctv-legacy231 .toluca-location-grid,
.cctv-legacy231 .mpx4-location-grid,
.cctv-legacy231 .lrm4-location-grid,
.cctv-legacy231 .sv3-location-grid,
.cctv-legacy231 .toluca-sector-grid,
.cctv-legacy231 .mpx4-sector-grid,
.cctv-legacy231 .lrm4-sector-grid,
.cctv-legacy231 .sv3-sector-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.cctv-legacy231 .toluca-region-card,
.cctv-legacy231 .mpx4-region-card,
.cctv-legacy231 .lrm4-region-card,
.cctv-legacy231 .sv3-region-card,
.cctv-legacy231 .toluca-location-card,
.cctv-legacy231 .mpx4-location-card,
.cctv-legacy231 .lrm4-location-card,
.cctv-legacy231 .sv3-location-card,
.cctv-legacy231 .toluca-sector-card,
.cctv-legacy231 .mpx4-sector-card,
.cctv-legacy231 .lrm4-sector-card,
.cctv-legacy231 .sv3-sector-card{background:#f4f7f8;padding:24px;border-radius:14px}
.cctv-legacy231 .toluca-faq-grid,
.cctv-legacy231 .mpx4-faq-grid,
.cctv-legacy231 .lrm4-faq-grid,
.cctv-legacy231 .sv3-faq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.cctv-legacy231 .toluca-final,
.cctv-legacy231 .mpx4-final,
.cctv-legacy231 .lrm4-final,
.cctv-legacy231 .sv3-final{padding:40px 24px;background:#eef3f6;border-radius:18px;margin:42px 0}

/* Colores y jerarquía de las tarjetas oscuras, según el diseño aprobado */
.cctv-legacy231 :is(.toluca-feature-dark,.mpx4-dark,.lrm4-dark,.sv3-feature-dark){background:#17242c;color:#fff;border-radius:19px}
.cctv-legacy231 :is(.toluca-feature-dark,.mpx4-dark,.lrm4-dark,.sv3-feature-dark) :is(h2,h3,p,span){color:#fff}
.cctv-legacy231 :is(.toluca-feature-reverse,.mpx4-feature-reverse,.lrm4-feature-reverse){direction:rtl}
.cctv-legacy231 :is(.toluca-feature-reverse,.mpx4-feature-reverse,.lrm4-feature-reverse) > *{direction:ltr}
.cctv-legacy231 :is(.toluca-faq,.mpx4-faq,.lrm4-faq) .faq-card{background:#f2f6f7;padding:17px;border-radius:12px}
/* Enfoque legible y contrastes verificables para las acciones. */
.cctv-legacy231 a:focus-visible,.cctv-about230 a:focus-visible{outline:3px solid #a58000;outline-offset:3px}

@media(max-width:960px){
 .cctv-legacy231{width:calc(100% - 32px)}
 .cctv-legacy231 :is(.industrial-hero,.school-hero,.turnstile-hero,.maint-hero,.park-hero,.toluca-hero-grid,.mpx4-hero-grid,.lrm4-hero-grid,.sv3-hero-grid),.cctv-about230 .about-hero{grid-template-columns:1fr;gap:23px}
 .cctv-legacy231 :is(.industrial-feature,.school-feature,.turnstile-feature,.maint-feature,.park-feature,.industrial-dark,.school-dark,.turnstile-dark,.maint-dark,.park-dark,.industrial-integration,.school-integration,.turnstile-integration,.maint-validation,.maint-policy,.park-integration,.toluca-feature-grid,.mpx4-feature-grid,.lrm4-feature-grid,.sv3-feature-grid){grid-template-columns:1fr;gap:24px}
 .cctv-legacy231 :is(.industrial-sector-strip,.school-sector-strip,.turnstile-sector-strip,.maint-sector-strip,.park-sector-strip,.industrial-process,.school-process,.turnstile-process,.maint-process,.park-process,.mpx4-process-grid,.lrm4-process-grid,.sv3-process-grid),.cctv-about230 .about-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cctv-about230 .about-two-columns,.cctv-about230 .about-industrial{grid-template-columns:1fr}
 .cctv-legacy231 :is(.industrial-feature.reverse,.school-feature.reverse,.turnstile-feature.reverse,.maint-feature.reverse,.park-feature.reverse,.toluca-feature-reverse,.mpx4-feature-reverse,.lrm4-feature-reverse){direction:ltr}
 .cctv-legacy231 :is(.industrial-feature.reverse,.school-feature.reverse,.turnstile-feature.reverse,.maint-feature.reverse,.park-feature.reverse) > *{direction:ltr}
 .cctv-legacy231 :is(.industrial-hero-media,.school-hero-media,.turnstile-hero-media,.maint-hero-media,.park-hero-media) img{height:330px;min-height:0;max-height:330px}
 .cctv-legacy231 :is(.toluca-hero-image,.mpx4-hero-media,.lrm4-hero-media,.sv3-hero-image) img{height:330px;max-height:330px}
}
@media(max-width:650px){
 .cctv-legacy231{width:calc(100% - 28px);padding:22px 0 45px}
 .cctv-legacy231 :is(.industrial-hero,.school-hero,.turnstile-hero,.maint-hero,.park-hero,.toluca-hero,.mpx4-hero,.lrm4-hero,.sv3-hero){padding:26px 17px;min-height:0}
 .cctv-legacy231 :is(.industrial-hero,.school-hero,.turnstile-hero,.maint-hero,.park-hero) h1{font-size:34px}
 .cctv-legacy231 :is(.industrial-hero-media,.school-hero-media,.turnstile-hero-media,.maint-hero-media,.park-hero-media) img{height:230px;max-height:230px}
 .cctv-legacy231 :is(.industrial-sector-strip,.school-sector-strip,.turnstile-sector-strip,.maint-sector-strip,.park-sector-strip,.industrial-cards,.school-cards,.turnstile-cards,.maint-cards,.park-cards,.industrial-process,.school-process,.turnstile-process,.maint-process,.park-process,.toluca-service-grid,.mpx4-service-grid,.lrm4-service-grid,.sv3-services-grid,.sv3-sector-grid,.sv3-process-grid,.mpx4-process-grid,.lrm4-process-grid,.toluca-faq-grid,.mpx4-faq-grid,.lrm4-faq-grid,.mpx4-region-grid,.lrm4-region-grid),.cctv-about230 .about-strip,.cctv-about230 .about-services-grid,.cctv-about230 .about-method-grid{grid-template-columns:1fr}
 .cctv-legacy231 :is(.industrial-cta,.school-cta,.turnstile-cta,.maint-cta,.park-cta){grid-template-columns:1fr;padding:25px 19px}
 .cctv-legacy231 :is(.industrial-feature,.school-feature,.turnstile-feature,.maint-feature,.park-feature,.industrial-dark,.school-dark,.turnstile-dark,.maint-dark,.park-dark){padding:18px}
 .cctv-legacy231 :is(.industrial-feature-media,.school-feature-media,.turnstile-feature-media,.maint-feature-media,.park-feature-media) img{height:225px;max-height:225px}
 .cctv-legacy231 .cctv-faq-section{padding:23px 17px!important;margin:35px auto!important}
 .cctv-about230 .about-hero{padding:26px 18px}
 .cctv-about230 .about-hero-media img{height:255px;max-height:255px}
 .cctv-legacy231 :is(.toluca-wrap,.mpx4-wrap,.lrm4-wrap,.sv3-wrap){padding:0 4px}
}
@media(prefers-reduced-motion:reduce){.cctv-legacy231 *{scroll-behavior:auto!important;transition:none!important}}
