/* FASE 3 / Servicios + Mantenimiento
   Presentación local y acotada: no modifica contratos, rotativas, video ni agente. */
#mainContent.phase3-editorial {
  --p3-ink: #0b2f54;
  --p3-blue: #0f416f;
  --p3-blue-2: #174f80;
  --p3-gold: #dfb54a;
  --p3-paper: #f3f6f8;
  --p3-line: rgba(15,65,111,.16);
  background: var(--p3-paper);
  color: var(--p3-ink);
  overflow: clip;
}
/* El contenido editorial debe ser legible también en carga directa y en captura completa. */
#mainContent.phase3-editorial [data-reveal], body.page--mantenimiento #mainContent [data-reveal] { opacity:1!important; transform:none!important; }
#mainContent.phase3-editorial .page-hero {
  min-height: min(720px, calc(100vh - 110px));
  padding: clamp(56px, 8vw, 118px) 0 clamp(64px, 9vw, 132px);
  background: linear-gradient(116deg, #082b4e 0%, #0f416f 58%, #184f7b 100%);
  color: #fff;
  position: relative;
  isolation: isolate;
}
#mainContent.phase3-editorial .page-hero::after {
  content: ""; position: absolute; inset: 0 0 0 48%; z-index: -1;
  background: linear-gradient(90deg, rgba(8,43,78,.96), rgba(8,43,78,.16) 60%, rgba(8,43,78,.04)), linear-gradient(135deg, transparent 30%, rgba(223,181,74,.18));
  pointer-events: none;
}
#mainContent.phase3-editorial .page-hero-layout { align-items: center; gap: clamp(34px, 7vw, 108px); }
#mainContent.phase3-editorial .page-hero-copy { max-width: 670px; position: relative; z-index: 2; }
#mainContent.phase3-editorial .page-hero-copy { background: transparent!important; box-shadow:none!important; }
#mainContent.phase3-editorial .page-hero-layout { background-image:none!important; }
#mainContent.phase3-editorial .page-hero-copy h1 { color:#fff!important; font-size: clamp(2.8rem, 6vw, 6.5rem)!important; line-height:.94!important; letter-spacing:-.055em!important; max-width: 9ch; text-wrap: balance; }
#mainContent.phase3-editorial .page-hero-copy p { color: rgba(255,255,255,.82); max-width: 42ch; font-size: clamp(1.05rem,1.45vw,1.3rem); line-height:1.6; margin-top:28px; }
#mainContent.phase3-editorial .hero-actions { margin-top: 34px; }
#mainContent.phase3-editorial .hero-actions .button--primary { background:var(--p3-gold); color:#082b4e; border-color:var(--p3-gold); box-shadow:0 16px 36px rgba(0,0,0,.16); }
#mainContent.phase3-editorial .services-command { align-self: stretch; min-height: clamp(320px, 42vw, 580px); transform: rotate(2deg); border: 1px solid rgba(255,255,255,.28); box-shadow: 20px 28px 0 rgba(223,181,74,.88), 0 28px 60px rgba(0,0,0,.3); overflow:hidden; }
#mainContent.phase3-editorial .services-command__photo { width:100%; height:100%; object-fit:cover; display:block; filter:saturate(.96) contrast(1.06); }
#mainContent.phase3-editorial .section { padding: clamp(72px, 9vw, 138px) 0; }
#mainContent.phase3-editorial .section-head { max-width: 820px; margin-bottom: clamp(40px,6vw,76px); }
#mainContent.phase3-editorial .section-head h2,
#mainContent.phase3-editorial .service-stage-copy h2,
#mainContent.phase3-editorial .service-band h2,
#mainContent.phase3-editorial .cta-panel h2 { font-size: clamp(2rem,4.1vw,4.5rem)!important; line-height:.98!important; letter-spacing:-.045em!important; max-width: 12ch; }
#mainContent.phase3-editorial .section-head p { font-size:1.15rem; max-width:58ch; line-height:1.7; }
#mainContent.phase3-editorial .catalog-matrix { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2px; background:var(--p3-line); border:1px solid var(--p3-line); }
#mainContent.phase3-editorial .catalog-card { grid-column:auto!important; min-height: 390px; padding: clamp(24px,3vw,42px); background:#fff; display:flex; flex-direction:column; transition:transform .35s ease, background .35s ease; }
#mainContent.phase3-editorial .catalog-card:nth-child(4), #mainContent.phase3-editorial .catalog-card:nth-child(5), #mainContent.phase3-editorial .catalog-card:nth-child(6) { background:#e9f0f5; }
#mainContent.phase3-editorial .catalog-card:hover { transform:translateY(-7px); background:#0f416f; color:#fff; }
#mainContent.phase3-editorial .catalog-card:hover p, #mainContent.phase3-editorial .catalog-card:hover li { color:rgba(255,255,255,.82); }
#mainContent.phase3-editorial .catalog-card h3 { font-size:clamp(1.45rem,2.25vw,2.35rem)!important; line-height:1.02!important; letter-spacing:-.04em!important; max-width:13ch; }
#mainContent.phase3-editorial .catalog-card p, #mainContent.phase3-editorial .catalog-card li { line-height:1.58; }
#mainContent.phase3-editorial .catalog-number, #mainContent.phase3-editorial .process-number { color:var(--p3-gold); font-weight:800; letter-spacing:.12em; margin-bottom:25px; }
#mainContent.phase3-editorial .catalog-card .card-link { margin-top:auto; color:var(--p3-blue); font-weight:800; }
#mainContent.phase3-editorial .catalog-card:hover .card-link { color:#fff; }
#mainContent.phase3-editorial .section--tint { background:#e6edf2; }
#mainContent.phase3-editorial .service-stage-grid { align-items:stretch; gap:0; }
#mainContent.phase3-editorial .service-stage-grid .photo-card { min-height:520px; }
#mainContent.phase3-editorial .service-stage-grid .photo-card img { width:100%; height:100%; object-fit:cover; display:block; }
#mainContent.phase3-editorial .service-stage-copy { padding:clamp(34px,5vw,78px); background:#0b2f54; color:#fff; display:flex; flex-direction:column; justify-content:center; }
#mainContent.phase3-editorial .service-stage-copy h2 { color:#fff!important; }
#mainContent.phase3-editorial .service-stage-copy .kicker { color:var(--p3-gold); }
#mainContent.phase3-editorial .service-deliverable-grid { display:grid; grid-template-columns:1fr 1fr; gap:26px 34px; margin-top:42px; }
#mainContent.phase3-editorial .service-stage-copy .service-deliverable-grid div { background:#fff!important; border-top:1px solid rgba(15,65,111,.16); padding:15px 16px 17px; border-radius:2px; display:grid; gap:6px; }
#mainContent.phase3-editorial .service-stage-copy .service-deliverable-grid strong { color:#0b2f54!important; }
#mainContent.phase3-editorial .service-stage-copy .service-deliverable-grid span { color:rgba(11,47,84,.78)!important; line-height:1.45; }
#mainContent.phase3-editorial .service-band { background:#fff; color:var(--p3-ink); padding:clamp(34px,5vw,70px); border-left:8px solid var(--p3-gold); }
#mainContent.phase3-editorial .service-band h2, #mainContent.phase3-editorial .process-card h3 { color:var(--p3-ink)!important; }
#mainContent.phase3-editorial .process-card p { color:rgba(11,47,84,.76)!important; }
#mainContent.phase3-editorial .service-band__steps { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:54px; }
#mainContent.phase3-editorial .process-card { border-top:1px solid var(--p3-line); padding-top:18px; }
#mainContent.phase3-editorial .process-card h3 { font-size:1.3rem!important; line-height:1.12!important; }
#mainContent.phase3-editorial .process-card p { line-height:1.55; }
#mainContent.phase3-editorial .cta-panel { background:var(--p3-blue); color:#fff; padding:clamp(36px,6vw,88px); }
#mainContent.phase3-editorial .cta-panel h2 { color:#fff!important; }
#mainContent.phase3-editorial .cta-panel p { color:rgba(255,255,255,.82); max-width:48ch; line-height:1.6; }
#mainContent.phase3-editorial .cta-panel .kicker { color:var(--p3-gold); }

/* Mantenimiento: foto, video y condición forman una secuencia editorial. */
#mainContent.phase3-maintenance .page-hero { min-height: min(620px, calc(100vh - 110px)); }
#mainContent.phase3-maintenance .page-hero-layout { align-items:center; }
#mainContent.phase3-maintenance .page-hero-copy h1 { font-size:clamp(2.7rem,5.2vw,5.7rem)!important; line-height:.94!important; letter-spacing:-.055em!important; max-width:9ch; }
#mainContent.phase3-maintenance .page-hero-copy p { max-width:39ch; font-size:1.15rem; line-height:1.6; }
#mainContent.phase3-maintenance .photo-card { min-height:clamp(330px,44vw,600px); transform:rotate(-2deg); box-shadow:-18px 22px 0 var(--p3-gold), 0 28px 60px rgba(0,0,0,.24); }
#mainContent.phase3-maintenance .photo-card img { width:100%; height:100%; object-fit:cover; display:block; }
#mainContent.phase3-maintenance .section--maintenance-film { background:#e6edf2; padding-top:clamp(60px,8vw,110px); }
#mainContent.phase3-maintenance .maintenance-film { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr); min-height:520px; background:#0b2f54; color:#fff; box-shadow:0 24px 58px rgba(8,25,43,.2); }
#mainContent.phase3-maintenance .maintenance-film__media { min-height:520px; }
#mainContent.phase3-maintenance .maintenance-film__media video { width:100%; height:100%; object-fit:cover; display:block; }
#mainContent.phase3-maintenance .maintenance-film__copy { padding:clamp(32px,5vw,76px); }
#mainContent.phase3-maintenance .maintenance-film__copy h2 { font-size:clamp(2rem,3.6vw,4rem)!important; line-height:.98!important; letter-spacing:-.045em!important; }
#mainContent.phase3-maintenance .maintenance-film__copy p { max-width:36ch; line-height:1.65; }
#mainContent.phase3-maintenance > .section:not(.section--maintenance-film) { background:#f3f6f8; }
#mainContent.phase3-maintenance .auto-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:2px; background:var(--p3-line); }
#mainContent.phase3-maintenance .service-card { grid-column:span 4; border:0; border-radius:0; box-shadow:none; background:#fff; display:flex; flex-direction:column; }
#mainContent.phase3-maintenance .service-card:nth-child(2) { background:#e6edf2; transform:translateY(42px); }
#mainContent.phase3-maintenance .service-card .card-media { height:clamp(220px,22vw,330px); overflow:hidden; }
#mainContent.phase3-maintenance .service-card .card-media img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
#mainContent.phase3-maintenance .service-card:hover .card-media img { transform:scale(1.04); }
#mainContent.phase3-maintenance .service-card .card-body { padding:clamp(24px,3vw,42px); display:flex; flex-direction:column; flex:1; }
#mainContent.phase3-maintenance .service-card h3 { font-size:clamp(1.5rem,2.25vw,2.3rem)!important; line-height:1.02!important; letter-spacing:-.04em!important; max-width:12ch; }
#mainContent.phase3-maintenance .service-card p, #mainContent.phase3-maintenance .service-card li { line-height:1.55; }
#mainContent.phase3-maintenance .service-card .card-link { margin-top:auto; }

@media (max-width:980px) {
  #mainContent.phase3-editorial .page-hero, #mainContent.phase3-maintenance .page-hero { min-height:auto; }
  #mainContent.phase3-editorial .page-hero-layout, #mainContent.phase3-maintenance .page-hero-layout { grid-template-columns:1fr; }
  #mainContent.phase3-editorial .services-command, #mainContent.phase3-maintenance .photo-card { min-height:58vw; max-height:540px; width:88%; margin-left:auto; }
  #mainContent.phase3-editorial .catalog-card, #mainContent.phase3-editorial .catalog-card:nth-child(1), #mainContent.phase3-editorial .catalog-card:nth-child(4) { grid-column:span 6; }
  #mainContent.phase3-maintenance .maintenance-film { grid-template-columns:1fr; }
  #mainContent.phase3-maintenance .maintenance-film__media { min-height:58vw; }
  #mainContent.phase3-maintenance .service-card { grid-column:span 6; }
  #mainContent.phase3-maintenance .service-card:nth-child(2) { transform:none; }
}
@media (max-width:600px) {
  #mainContent.phase3-editorial .page-hero, #mainContent.phase3-maintenance .page-hero { padding:54px 0 72px; }
  #mainContent.phase3-editorial .page-hero::after { inset:45% 0 0; background:linear-gradient(180deg,rgba(8,43,78,.05),rgba(8,43,78,.9)); }
#mainContent.phase3-editorial .page-hero-copy h1, #mainContent.phase3-maintenance .page-hero-copy h1 { font-size:clamp(28px,8vw,34px)!important; overflow-wrap:normal!important; word-break:normal!important; }
  #mainContent.phase3-editorial .services-command, #mainContent.phase3-maintenance .photo-card { width:92%; min-height:72vw; margin-top:22px; }
  #mainContent.phase3-editorial .catalog-matrix, #mainContent.phase3-maintenance .auto-grid { display:grid; grid-template-columns:1fr; }
  #mainContent.phase3-editorial .catalog-card, #mainContent.phase3.editorial .catalog-card:nth-child(1), #mainContent.phase3-editorial .catalog-card:nth-child(4), #mainContent.phase3-maintenance .service-card { grid-column:1; min-height:0; }
  #mainContent.phase3-editorial .service-stage-grid { grid-template-columns:1fr; }
  #mainContent.phase3-editorial .service-stage-grid .photo-card { min-height:68vw; }
  #mainContent.phase3-editorial .service-deliverable-grid, #mainContent.phase3-editorial .service-band__steps { grid-template-columns:1fr; }
  #mainContent.phase3-maintenance .maintenance-film__media { min-height:64vw; }
  #mainContent.phase3-maintenance .maintenance-film__copy { min-height:340px; }
  #mainContent.phase3-maintenance .service-card .card-media { height:64vw; }
}
@media (prefers-reduced-motion:reduce) {
  #mainContent.phase3-editorial *, #mainContent.phase3-maintenance * { transition:none!important; transform:none!important; }
}

/* Mantenimiento usa su body protegido existente como alcance, sin cambiar el HTML estructural. */
body.page--mantenimiento #mainContent { --p3-ink:#0b2f54; --p3-blue:#0f416f; --p3-gold:#dfb54a; background:#f3f6f8; color:var(--p3-ink); overflow:clip; }
body.page--mantenimiento #mainContent .page-hero { min-height:min(620px,calc(100vh - 110px)); padding:clamp(56px,8vw,118px) 0 clamp(64px,9vw,132px); background:linear-gradient(116deg,#082b4e 0%,#0f416f 58%,#184f7b 100%); color:#fff; position:relative; isolation:isolate; }
body.page--mantenimiento #mainContent .page-hero::after { content:""; position:absolute; inset:0 0 0 48%; z-index:-1; background:linear-gradient(90deg,rgba(8,43,78,.96),rgba(8,43,78,.16) 60%,rgba(8,43,78,.04)); pointer-events:none; }
body.page--mantenimiento #mainContent .page-hero-layout { align-items:center; gap:clamp(34px,7vw,108px); }
body.page--mantenimiento #mainContent .page-hero-copy { background:transparent!important; box-shadow:none!important; }
body.page--mantenimiento #mainContent .page-hero-layout { background-image:none!important; }
body.page--mantenimiento #mainContent .page-hero-copy h1 { color:#fff!important; font-size:clamp(2.7rem,5.2vw,5.7rem)!important; line-height:.94!important; letter-spacing:-.055em!important; max-width:9ch; }
body.page--mantenimiento #mainContent .page-hero-copy p { color:rgba(255,255,255,.82); max-width:39ch; font-size:1.15rem; line-height:1.6; }
body.page--mantenimiento #mainContent .photo-card { min-height:clamp(330px,44vw,600px); transform:rotate(-2deg); box-shadow:-18px 22px 0 var(--p3-gold),0 28px 60px rgba(0,0,0,.24); }
body.page--mantenimiento #mainContent .photo-card img { width:100%; height:100%; object-fit:cover; display:block; }
body.page--mantenimiento #mainContent .section--maintenance-film { background:#e6edf2; padding:clamp(60px,8vw,110px) 0; }
body.page--mantenimiento #mainContent .maintenance-film { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr); min-height:520px; background:#0b2f54; color:#fff; box-shadow:0 24px 58px rgba(8,25,43,.2); }
body.page--mantenimiento #mainContent .maintenance-film__media { min-height:520px; }
body.page--mantenimiento #mainContent .maintenance-film__media video { width:100%; height:100%; object-fit:cover; display:block; }
body.page--mantenimiento #mainContent .maintenance-film__copy { padding:clamp(32px,5vw,76px); }
body.page--mantenimiento #mainContent .maintenance-film__copy h2 { color:#fff!important; font-size:clamp(2rem,3.6vw,4rem)!important; line-height:.98!important; letter-spacing:-.045em!important; }
body.page--mantenimiento #mainContent .maintenance-film__copy p { max-width:36ch; line-height:1.65; color:rgba(233,240,247,.92)!important; }
body.page--mantenimiento #mainContent > .section:not(.section--maintenance-film) { background:#f3f6f8; padding:clamp(72px,9vw,138px) 0; }
body.page--mantenimiento #mainContent .auto-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:2px; background:rgba(15,65,111,.16); }
body.page--mantenimiento #mainContent .service-card { grid-column:span 4; border:0; border-radius:0; box-shadow:none; background:#fff; display:flex; flex-direction:column; }
body.page--mantenimiento #mainContent .service-card:nth-child(2) { background:#e6edf2; transform:translateY(42px); }
body.page--mantenimiento #mainContent .service-card .card-media { height:clamp(220px,22vw,330px); overflow:hidden; }
body.page--mantenimiento #mainContent .service-card .card-media img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
body.page--mantenimiento #mainContent .service-card:hover .card-media img { transform:scale(1.04); }
body.page--mantenimiento #mainContent .service-card .card-body { padding:clamp(24px,3vw,42px); display:flex; flex-direction:column; flex:1; }
body.page--mantenimiento #mainContent .service-card h3 { font-size:clamp(1.5rem,2.25vw,2.3rem)!important; line-height:1.02!important; letter-spacing:-.04em!important; max-width:12ch; }
body.page--mantenimiento #mainContent .service-card p, body.page--mantenimiento #mainContent .service-card li { line-height:1.55; }
body.page--mantenimiento #mainContent .service-card .card-link { margin-top:auto; }
@media (max-width:980px) { body.page--mantenimiento #mainContent .page-hero-layout { grid-template-columns:1fr; } body.page--mantenimiento #mainContent .photo-card { min-height:58vw; max-height:540px; width:88%; margin-left:auto; } body.page--mantenimiento #mainContent .maintenance-film { grid-template-columns:1fr; } body.page--mantenimiento #mainContent .maintenance-film__media { min-height:58vw; } body.page--mantenimiento #mainContent .service-card { grid-column:span 6; } body.page--mantenimiento #mainContent .service-card:nth-child(2) { transform:none; } }
@media (max-width:600px) { body.page--mantenimiento #mainContent .page-hero { padding:54px 0 72px; } body.page--mantenimiento #mainContent .page-hero-copy h1 { font-size:clamp(28px,8vw,34px)!important; overflow-wrap:normal!important; word-break:normal!important; } body.page--mantenimiento #mainContent .photo-card { width:92%; min-height:72vw; margin-top:22px; } body.page--mantenimiento #mainContent .maintenance-film__media { min-height:64vw; } body.page--mantenimiento #mainContent .maintenance-film__copy { min-height:340px; } body.page--mantenimiento #mainContent .auto-grid { grid-template-columns:1fr; } body.page--mantenimiento #mainContent .service-card { grid-column:1; } body.page--mantenimiento #mainContent .service-card .card-media { height:64vw; } }
