/* CONSELEC catálogo — secciones técnicas compartidas.
   Referencia visual canónica: conselec.ar/contacto. */
.service-request-page{background:#fff;color:#111}
.service-section-shell{width:min(1180px,calc(100% - 48px));margin:0 auto}

/* Introducción: texto limpio, centrado y sin paneles secundarios. */
.service-section-intro{padding:68px 0 54px;background:#fff;text-align:center}
.service-section-intro__title{max-width:940px;margin:0 auto;color:#051632;font-size:clamp(34px,4vw,52px);font-weight:900;line-height:1.04;letter-spacing:-.035em}
.service-section-intro__lead{max-width:900px;margin:18px auto 0;color:#222;font-size:18px;line-height:1.72}

/* Galería: mismo patrón del calendario de conselec.ar, desplazado hacia abajo para no competir con el header. */
.service-gallery-slot{position:relative}
.service-gallery-floating{z-index:11940!important;transform:none!important;visibility:hidden!important}
html body .contact-calendar-slot .service-gallery-floating{top:var(--service-gallery-top,calc(var(--topbar-height) + var(--header-height) + 8px))!important;transform:none!important}
html body .contact-calendar-slot .service-gallery-floating[data-contact-calendar-ready="true"]{visibility:visible!important}
.service-gallery-floating__button{border:2px solid #fff!important}
.service-gallery-floating__button svg{width:100%;height:100%}

/* Formulario: mismas clases visuales de contacto; exterior azul para alternar blanco / azul. */
.service-form-section{padding:58px 0 70px!important;background:#010c23!important}
.service-form-section .contact-form-section__header{margin:0 auto 20px!important;max-width:820px!important;text-align:center!important}
.service-form-section .contact-form-section__title{color:#fff!important;font-size:clamp(36px,3.2vw,48px)!important;font-weight:800!important;line-height:1.05!important;letter-spacing:0!important}
.service-form-section .contact-form-section__lead{max-width:800px!important;margin:12px auto 0!important;color:rgba(255,255,255,.86)!important;font-size:16px!important;line-height:1.6!important}

/* Pasos del formulario: indicador simple, sin tarjetas extra. */
.service-form-progress{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 0 28px;padding:0 0 20px;border-bottom:1px solid rgba(1,12,35,.12)}
.service-form-progress:before{content:"";position:absolute;left:10%;right:10%;top:17px;height:2px;background:#dce2ea;z-index:0}
.service-form-progress__item{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;color:#77808c;font-size:12px;font-weight:800;line-height:1.2}
.service-form-progress__number{width:34px;height:34px;border:2px solid #cbd3dc;border-radius:50%;display:grid;place-items:center;background:#fff;color:#657080;font-size:13px;font-weight:900;transition:border-color .18s ease,background-color .18s ease,color .18s ease}
.service-form-progress__item.is-active{color:#010c23}
.service-form-progress__item.is-active .service-form-progress__number{border-color:#010c23;background:#010c23;color:#fff}
.service-form-progress__item.is-complete{color:#010c23}
.service-form-progress__item.is-complete .service-form-progress__number{border-color:#010c23;background:#fff;color:#010c23}
.service-form-step[hidden]{display:none!important}
.service-form-step{min-width:0}
.service-form-step__actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px;padding-top:18px;border-top:1px solid rgba(1,12,35,.10)}
.service-form-step__actions--end{justify-content:flex-end}
.service-form-step__message{margin:18px 0 0;padding:12px 14px;border-left:4px solid #a62525;background:#fff5f5;color:#7d1d1d;font-size:13.5px;line-height:1.5}
.service-form-step__message[hidden]{display:none!important}
.service-form-nav-button{min-height:46px;padding:0 20px;border:1px solid #010c23;background:#fff;color:#010c23;font-size:14px;font-weight:900;line-height:1;cursor:pointer;transition:background-color .18s ease,color .18s ease,transform .18s ease}
.service-form-nav-button:hover,.service-form-nav-button:focus-visible{background:#010c23;color:#fff;transform:translateY(-1px);outline:none}
.service-form-final-actions{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;align-items:center!important;gap:12px!important}
.service-form-final-actions .contact-form-section__required{margin:0!important}

/* Agrupación técnica dentro del mismo formulario; no son paneles ni tarjetas. */
.service-form-group{display:grid;gap:14px;min-width:0}
.service-form-group+.service-form-group{margin-top:4px;padding-top:18px;border-top:1px solid rgba(17,17,17,.10)}
.service-form-group__title{margin:0;color:#010c23;font-size:17px;font-weight:900;line-height:1.3}
.service-form-group__text{max-width:850px;margin:-4px 0 2px;color:#444;font-size:13.5px;line-height:1.58}
.service-field-spaced{margin-top:2px}
.service-form-note{margin:2px 0 0;color:#666;font-size:12px;line-height:1.5}
.service-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.service-conditional[hidden]{display:none!important}
.service-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px;margin-top:2px}
.service-choice{display:flex;align-items:flex-start;gap:9px;color:#222;font-size:14px;line-height:1.45;cursor:pointer}
.service-choice input{width:18px;height:18px;flex:0 0 18px;margin:1px 0 0;accent-color:#010c23}
.service-form-status{margin:4px 0 0;padding:13px 15px;border-left:4px solid #010c23;background:#f5f7fa;color:#111;font-size:14px;line-height:1.55}
.service-form-status.is-success{border-left-color:#14733c;background:#f1faf5}
.service-form-status.is-error{border-left-color:#a62525;background:#fff5f5}
.service-form-status a{color:#010c23;font-weight:900;text-decoration:underline}

/* CTA final: únicamente WhatsApp + Contacto CONSELEC. */
.service-final-cta{padding:54px 0 60px;background:#fff;text-align:center}
.service-final-cta__title{max-width:900px;margin:0 auto;color:#010c23;font-size:clamp(27px,3vw,38px);font-weight:900;line-height:1.13;letter-spacing:-.02em}
.service-final-cta__text{max-width:840px;margin:15px auto 0;color:#222;font-size:17px;line-height:1.68}
.service-final-cta__actions{margin-top:25px;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.service-final-cta__button{min-height:48px;padding:0 21px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid #010c23;background:#010c23;color:#fff;font-size:14px;font-weight:900;line-height:1;transition:transform .18s ease,background-color .18s ease,color .18s ease}
.service-final-cta__button svg{width:18px;height:18px;flex:0 0 18px}
.service-final-cta__button:hover,.service-final-cta__button:focus-visible{transform:translateY(-1px);outline:none}
.service-final-cta__button--outline{background:#fff;color:#010c23}
.service-final-cta__button--outline:hover,.service-final-cta__button--outline:focus-visible{background:#010c23;color:#fff}

/* Galería compartida: panel más alto, menos ancho, borde azul marcado y scroll interno. */
.conselec-gallery-overlay{position:fixed;inset:0;z-index:2147483647!important;isolation:isolate;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(1,12,35,.74);backdrop-filter:blur(4px)}
.conselec-gallery-overlay[hidden]{display:none!important}
.conselec-gallery-panel{position:relative;z-index:1;width:min(900px,calc(100vw - 40px));height:min(88vh,920px);min-height:min(650px,88vh);display:flex;flex-direction:column;background:#fff;border:5px solid #010c23;box-shadow:0 30px 70px rgba(0,0,0,.28);overflow:hidden}
.conselec-gallery-header{flex:0 0 auto;display:grid;grid-template-columns:50px 1fr 50px;align-items:center;gap:8px;min-height:70px;padding:8px 12px;border-bottom:3px solid #010c23;background:#fff}
.conselec-gallery-back,.conselec-gallery-close{width:44px;height:44px;border:0;background:#010c23;color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;cursor:pointer}
.conselec-gallery-back[hidden]{visibility:hidden;pointer-events:none}
.conselec-gallery-heading{text-align:center;min-width:0}
.conselec-gallery-title{margin:0;color:#010c23;font-size:22px;font-weight:900;line-height:1.2}
.conselec-gallery-breadcrumb{margin:4px 0 0;color:#666;font-size:12px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conselec-gallery-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:28px}
.conselec-gallery-intro{max-width:760px;margin:0 auto 24px;text-align:center;color:#333;font-size:15px;line-height:1.65}
.conselec-gallery-folders{max-width:760px;margin:0 auto;border-top:1px solid rgba(1,12,35,.16)}
.conselec-gallery-folder{width:100%;min-height:68px;padding:14px 6px;border:0;border-bottom:1px solid rgba(1,12,35,.16);background:#fff;color:#010c23;display:flex;align-items:center;justify-content:flex-start;gap:18px;text-align:left;cursor:pointer}
.conselec-gallery-folder strong{font-size:16px;font-weight:900}
.conselec-gallery-folder span{color:#666;font-size:13px}
.conselec-gallery-folder__icon{width:30px;height:30px;flex:0 0 30px;color:#010c23}
.conselec-gallery-folder__copy{min-width:0;flex:1}
.conselec-gallery-folder__arrow{margin-left:auto;font-size:21px!important;color:#010c23!important}
.conselec-gallery-media{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.conselec-gallery-media__item{position:relative;aspect-ratio:1/1;padding:0;border:2px solid rgba(1,12,35,.16);background:#eef1f5;overflow:hidden;cursor:pointer}
.conselec-gallery-media__item img{width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-drag:none;transition:transform .28s ease}
.conselec-gallery-media__item:hover img,.conselec-gallery-media__item:focus-visible img{transform:scale(1.035)}
.conselec-gallery-media__item:focus-visible{outline:3px solid #010c23;outline-offset:2px}
.conselec-gallery-media__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(1,12,35,.86);color:#fff;font-size:19px}
.conselec-gallery-empty{max-width:720px;margin:34px auto;text-align:center;color:#444;font-size:15px;line-height:1.65}
.conselec-gallery-lightbox{position:fixed;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.92)}
.conselec-gallery-lightbox[hidden]{display:none!important}
.conselec-gallery-lightbox__close{position:absolute;top:18px;right:18px;width:46px;height:46px;border:1px solid rgba(255,255,255,.4);background:#010c23;color:#fff;font-size:26px;cursor:pointer;z-index:2}
.conselec-gallery-lightbox__image{width:min(1180px,94vw);height:min(84vh,860px);background-repeat:no-repeat;background-position:center;background-size:contain}
.conselec-gallery-lightbox__video{width:min(1180px,94vw);max-height:84vh;background:#000}
body.conselec-overlay-open{overflow:hidden}

@media(max-width:960px){
  html body .contact-calendar-slot .service-gallery-floating{top:var(--service-gallery-top,calc(var(--topbar-height) + var(--header-height) + 8px))!important;transform:none!important}
}
@media(max-width:860px){
  .service-section-shell{width:min(100% - 28px,1180px)}
  .service-section-intro{padding:48px 0 40px}.service-section-intro__lead{font-size:16px;line-height:1.66}
  .service-form-section{padding:48px 0 58px!important}
  .service-choice-grid{grid-template-columns:1fr}
  .service-form-progress__label{font-size:11px}
  .service-form-final-actions{grid-template-columns:1fr 1fr!important}.service-form-final-actions .contact-form-section__required{grid-column:1/-1}
  .service-final-cta{padding:44px 0 50px}.service-final-cta__text{font-size:15.5px}.service-final-cta__actions{flex-direction:column;align-items:stretch}.service-final-cta__button{width:100%}
  .conselec-gallery-overlay{padding:10px}.conselec-gallery-panel{width:min(760px,calc(100vw - 20px));height:92vh;min-height:0}.conselec-gallery-body{padding:18px}.conselec-gallery-media{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  html body .contact-calendar-slot .service-gallery-floating{top:var(--service-gallery-top,calc(var(--topbar-height) + var(--header-height) + 8px))!important;transform:none!important}
  .service-form-progress{margin-bottom:22px}.service-form-progress__label{font-size:10.5px}.service-form-progress__number{width:31px;height:31px}.service-form-progress:before{top:15px}
  .service-form-step__actions{align-items:stretch}.service-form-step__actions .contact-form-section__button,.service-form-nav-button{flex:1}
  .service-form-final-actions{grid-template-columns:1fr!important}.service-form-final-actions .contact-form-section__required{grid-column:auto}.service-form-final-actions .contact-form-section__button,.service-form-final-actions .service-form-nav-button{width:100%}
  .conselec-gallery-panel{height:94vh;border-width:4px}.conselec-gallery-header{grid-template-columns:44px 1fr 44px}.conselec-gallery-back,.conselec-gallery-close{width:40px;height:40px}.conselec-gallery-title{font-size:18px}.conselec-gallery-media{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
}
@media(max-width:420px){
  .conselec-gallery-media{grid-template-columns:1fr 1fr}
}


/* Cierre responsive de galería: viewport móvil real y controles accesibles */
@supports(height:100dvh){
  .conselec-gallery-panel{height:min(88dvh,920px)}
  .conselec-gallery-lightbox__image{height:min(84dvh,860px)}
  .conselec-gallery-lightbox__video{max-height:84dvh}
  @media(max-width:860px){.conselec-gallery-panel{height:calc(100dvh - 20px);max-height:calc(100dvh - 20px)}}
  @media(max-width:640px){.conselec-gallery-panel{height:calc(100dvh - 12px);max-height:calc(100dvh - 12px)}}
}
@media(max-width:640px){
  .conselec-gallery-overlay{padding:6px}
  .conselec-gallery-body{padding:15px 12px 18px}
  .conselec-gallery-intro{margin-bottom:18px;font-size:14px;line-height:1.55}
  .conselec-gallery-folder{gap:12px;padding:12px 4px;min-height:64px}
  .conselec-gallery-folder strong{font-size:15px}
  .conselec-gallery-lightbox{padding:12px}
  .conselec-gallery-lightbox__close{top:10px;right:10px;width:44px;height:44px}
}

@media(max-width:640px){
  .conselec-gallery-header{grid-template-columns:46px minmax(0,1fr) 46px;gap:6px;padding:7px 8px}
  .conselec-gallery-back,.conselec-gallery-close{width:44px;height:44px;min-width:44px;min-height:44px}
}

/* v600: wizard estricto en desktop y móvil */
[data-form-step][hidden],[data-form-step][aria-hidden="true"]{display:none!important}
