/* ==========================================================================
   Odesa · componentes (prototipo aprobado: prototipo/*.dc.html).
   Letra: siempre por variables de variables.css. Espacios de franjas: controles nativos de Elementor en el contenido.
   Aquí solo va lo que Elementor clásico no dibuja: fondos y formas decorativas, tarjetas, cabecera, pie, carrusel, etc.
   Escritorio = 1440 px · móvil (≤767 px) = 390 px del prototipo · tableta (≤1024 px) = punto medio.
   ========================================================================== */

/* ---------------------------------------------------------------- Base */
body.od-sitio{margin:0;font-family:var(--od-fuente-texto);font-size:var(--od-fs-cuerpo);line-height:var(--od-lh-texto);color:var(--od-azul-noche);background:var(--od-blanco);-webkit-font-smoothing:antialiased}
.od-sitio h1,.od-sitio h2,.od-sitio h3,.od-sitio h4{font-family:var(--od-fuente-titulos);margin:0}
.od-sitio p{margin:0}
:where(.od-sitio) a{color:var(--od-azul)}
:where(.od-sitio) a:hover{color:var(--od-azul-noche)}
.od-sitio :focus-visible{outline:3px solid var(--od-dorado);outline-offset:3px}
.od-sitio section[id]{scroll-margin-top:var(--od-cab-alto)}
.od-sitio .elementor-widget-container{min-width:0}
.od-sitio .od-shortcode{min-width:0}
.od-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------------------------------------------------------------- Franjas (el relleno vertical va en Elementor) */
.od-sitio .od-sec.e-con{position:relative;overflow:hidden}
.od-sitio .od-sec > .e-con-boxed,.od-sitio .od-portada > .e-con-boxed{position:relative;z-index:1}
.od-sitio .od-fondo-claro.e-con{background-color:var(--od-fondo-claro)}
.od-sitio .od-fondo-oscuro.e-con{background-color:var(--od-azul-noche);color:var(--od-blanco)}
.od-sitio .od-rayas.e-con{background-image:repeating-linear-gradient(135deg,rgba(159,204,227,.07) 0 2px,transparent 2px 22px)}
.od-sitio .od-titular.e-con{max-width:640px}

/* ---------------------------------------------------------------- Franjas diagonales decorativas */
.od-sitio .od-banda.e-con{position:absolute;z-index:0;pointer-events:none;min-height:0;padding:0;transform:rotate(-8deg)}
.od-sitio .od-banda--oro.e-con{right:-120px;bottom:-40px;left:auto;top:auto;width:520px;height:120px;background:var(--od-dorado);opacity:.95}
.od-sitio .od-banda--celeste.e-con{right:-120px;bottom:70px;left:auto;top:auto;width:420px;height:26px;background:var(--od-celeste);opacity:.9}
.od-sitio .od-banda--oro-sec.e-con{left:-80px;top:36px;right:auto;bottom:auto;width:360px;height:18px;background:var(--od-dorado)}
.od-sitio .od-banda--celeste-sec.e-con{right:-60px;top:28px;left:auto;bottom:auto;width:320px;height:18px;background:var(--od-celeste)}
.od-sitio .od-banda--oro-cta.e-con{left:-80px;top:24px;right:auto;bottom:auto;width:300px;height:16px;background:var(--od-dorado)}

/* ---------------------------------------------------------------- Portadas */
.od-sitio .od-portada.e-con{position:relative;overflow:hidden;isolation:isolate;background-color:var(--od-azul-noche);color:var(--od-blanco)}
.od-sitio .od-portada.e-con::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(15,45,64,.94) 0%,rgba(15,45,64,.75) 45%,rgba(15,45,64,.2) 100%)}
.od-sitio .od-portada--inicio.e-con::before{background:linear-gradient(90deg,rgba(15,45,64,.92) 0%,rgba(15,45,64,.7) 45%,rgba(15,45,64,.15) 100%)}
.od-sitio .od-portada__video{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
/* Elementor real fija `.e-con.e-con > .e-con-inner > .elementor-widget{max-width:100%}` (4 clases): estas reglas llevan 5. */
.od-sitio .od-portada.e-con .od-mw-480.elementor-widget{max-width:480px}
.od-sitio .od-portada.e-con .od-mw-520.elementor-widget{max-width:520px}
.od-sitio .od-portada.e-con .od-mw-600.elementor-widget{max-width:600px}
.od-sitio .od-portada.e-con .od-mw-640.elementor-widget{max-width:640px}
.od-sitio .od-portada.e-con .od-mw-680.elementor-widget{max-width:680px}
.od-sitio .od-botones.e-con{flex-wrap:wrap}

/* ---------------------------------------------------------------- Tipografía por clase */
.od-sitio .od-h1 .elementor-heading-title,.od-sitio .od-h2 .elementor-heading-title,.od-sitio .od-h3 .elementor-heading-title{font-family:var(--od-fuente-titulos);color:var(--od-azul-noche);margin:0;line-height:var(--od-lh-titulo)}
.od-sitio .od-h1 .elementor-heading-title{font-size:var(--od-fs-h1);font-weight:800}
.od-sitio .od-h2 .elementor-heading-title{font-size:var(--od-fs-h2);font-weight:800}
.od-sitio .od-h3 .elementor-heading-title{font-size:var(--od-fs-h3);font-weight:700}
.od-sitio .od-claro .elementor-heading-title{color:var(--od-blanco)}
.od-sitio .od-oro .elementor-heading-title{color:var(--od-dorado)}
.od-sitio .od-cuerpo,.od-sitio .od-cuerpo p,.od-sitio .od-lista .elementor-icon-list-text{font-family:var(--od-fuente-texto);font-size:var(--od-fs-cuerpo);line-height:var(--od-lh-texto);color:var(--od-texto-2);margin:0}
.od-sitio .od-cuerpo--portada,.od-sitio .od-cuerpo--portada p{color:var(--od-sobre-portada)}
.od-sitio .od-cuerpo--oscuro,.od-sitio .od-cuerpo--oscuro p{color:var(--od-sobre-oscuro)}
.od-sitio .od-cuerpo--chico,.od-sitio .od-cuerpo--chico p{font-size:var(--od-fs-meta);line-height:1.5}

/* Sobretítulo con barrita dorada */
.od-sitio .od-eyebrow .elementor-heading-title{display:flex;align-items:center;gap:10px;margin:0;font-family:var(--od-fuente-titulos);font-size:var(--od-fs-eyebrow);font-weight:700;line-height:normal;letter-spacing:.16em;text-transform:uppercase;color:var(--od-azul)}
.od-sitio .od-eyebrow .elementor-heading-title::before{content:"";flex:none;width:32px;height:4px;border-radius:2px;background:var(--od-dorado)}
.od-sitio .od-eyebrow--claro .elementor-heading-title{color:var(--od-celeste)}

/* Cintillo «Atención las 24 horas» y miguitas de pan */
.od-sitio .od-insignia{align-self:flex-start}
.od-sitio .od-insignia .elementor-heading-title{display:inline-flex;align-items:center;gap:8px;margin:0;padding:8px 14px;border-radius:999px;background:rgba(224,165,38,.16);border:1px solid rgba(224,165,38,.6);color:#F5D58A;font-family:var(--od-fuente-texto);font-size:var(--od-fs-meta);font-weight:600;line-height:1.6}
.od-sitio .od-insignia .elementor-heading-title::before{content:"";flex:none;width:16px;height:16px;background:currentColor;-webkit-mask:var(--od-ico-reloj) center/contain no-repeat;mask:var(--od-ico-reloj) center/contain no-repeat}
.od-sitio .od-ruta,.od-sitio .od-ruta p{margin:0;font-size:var(--od-fs-meta);line-height:1.6;color:var(--od-sobre-oscuro)}
.od-sitio .od-ruta p{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.od-sitio .od-ruta a{color:var(--od-sobre-oscuro);text-decoration:underline}
.od-sitio .od-ruta a:first-of-type{padding-right:10px}
.od-sitio .od-ruta strong{color:var(--od-blanco);font-weight:600}

/* ---------------------------------------------------------------- Íconos de línea (máscaras; las formas salen de iconos.css) */
.od-sitio .od-ico.e-con{flex:none;display:flex;align-items:center;justify-content:center;padding:0;min-height:0;width:var(--od-ico-caja,24px);height:var(--od-ico-caja,24px)}
.od-sitio .od-ico.e-con::after{content:"";display:block;width:var(--od-ico-tam,24px);height:var(--od-ico-tam,24px);background:currentColor;-webkit-mask:var(--od-ico) center/contain no-repeat;mask:var(--od-ico) center/contain no-repeat}
.od-sitio{--od-ico-reloj:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E");--od-ico-flecha:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E");--od-ico-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");--od-ico-wa:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7.9 20A9 9 0 1 0 4 16.1L2 22Z'/%3E%3C/svg%3E")}

/* ---------------------------------------------------------------- Botones píldora */
.od-sitio .od-btn .elementor-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 28px;border:2px solid transparent;border-radius:999px;font-family:var(--od-fuente-texto);font-size:var(--od-fs-boton);font-weight:600;line-height:1.2;text-decoration:none;box-sizing:border-box;cursor:pointer;transition:background .2s,transform .2s,box-shadow .2s}
.od-sitio .od-btn .elementor-button-content-wrapper{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.od-sitio .od-btn--oro .elementor-button{background:var(--od-dorado);color:var(--od-azul-noche)}
.od-sitio .od-btn--oro .elementor-button:hover{background:#F0BC45;color:var(--od-azul-noche);transform:translateY(-2px);box-shadow:0 10px 24px rgba(224,165,38,.35)}
.od-sitio .od-btn--linea .elementor-button{background:transparent;border-color:rgba(255,255,255,.8);color:var(--od-blanco)}
.od-sitio .od-btn--linea .elementor-button:hover{background:rgba(255,255,255,.12);color:var(--od-blanco)}
.od-sitio .od-btn--azul .elementor-button{background:var(--od-azul);color:var(--od-blanco)}
.od-sitio .od-btn--azul .elementor-button:hover{background:var(--od-azul-noche);color:var(--od-blanco)}
.od-sitio .od-btn--flecha .elementor-button-content-wrapper::after,.od-sitio .od-btn--wa .elementor-button-content-wrapper::before{content:"";flex:none;width:20px;height:20px;background:currentColor}
.od-sitio .od-btn--flecha .elementor-button-content-wrapper::after{-webkit-mask:var(--od-ico-flecha) center/contain no-repeat;mask:var(--od-ico-flecha) center/contain no-repeat}
.od-sitio .od-btn--wa .elementor-button-content-wrapper::before{-webkit-mask:var(--od-ico-wa) center/contain no-repeat;mask:var(--od-ico-wa) center/contain no-repeat}
.od-sitio .od-btn .elementor-button:focus-visible{outline:3px solid var(--od-dorado);outline-offset:3px}
.od-sitio .od-btn--inicio .elementor-button-wrapper{display:flex}
/* Enlace de texto con flecha (junto a un título) */
.od-sitio .od-enlace-flecha .elementor-button{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0;background:transparent;border:0;border-radius:0;font-family:var(--od-fuente-texto);font-size:var(--od-fs-boton);font-weight:600;line-height:var(--od-lh-texto);color:var(--od-azul)}
.od-sitio .od-enlace-flecha.od-subrayado .elementor-button{text-decoration:underline}
.od-sitio .od-enlace-flecha .elementor-button-content-wrapper{display:inline-flex;align-items:center;gap:8px}
.od-sitio .od-enlace-flecha .elementor-button-content-wrapper::after{content:"";width:20px;height:20px;background:currentColor;-webkit-mask:var(--od-ico-flecha) center/contain no-repeat;mask:var(--od-ico-flecha) center/contain no-repeat}
.od-sitio .od-enlace-flecha .elementor-button:hover{background:transparent;color:var(--od-azul-noche)}

/* ---------------------------------------------------------------- Grillas (contenedores de Elementor en CSS grid) */
.od-sitio .od-grilla.e-con{display:grid;align-items:stretch}
.od-sitio .od-grilla-2.e-con{grid-template-columns:repeat(2,minmax(0,1fr))}
.od-sitio .od-grilla-3.e-con{grid-template-columns:repeat(3,minmax(0,1fr))}
.od-sitio .od-grilla-4.e-con{grid-template-columns:repeat(4,minmax(0,1fr))}
.od-sitio .od-grilla-6.e-con{grid-template-columns:repeat(6,minmax(0,1fr))}
.od-sitio .od-grilla-canales.e-con{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.45fr) minmax(0,1fr)}
.od-sitio .od-dos-col.e-con{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center}
.od-sitio .od-dos-col--5-7.e-con{grid-template-columns:5fr 7fr}
.od-sitio .od-dos-col--arriba.e-con{align-items:start}
/* Contacto: título, formulario y datos. Escritorio: título y datos a la izquierda, formulario a la derecha. */
.od-sitio .od-contacto.e-con{display:grid;grid-template-columns:5fr 7fr;grid-template-rows:auto 1fr;grid-template-areas:"a b" "c b";align-items:start}
.od-sitio .od-contacto > .od-contacto__a{grid-area:a}
.od-sitio .od-contacto > .od-contacto__b{grid-area:b}
.od-sitio .od-contacto > .od-contacto__c{grid-area:c}

/* ---------------------------------------------------------------- Tarjetas simples de Elementor */
.od-sitio .od-sector.e-con{flex-direction:column;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;min-height:136px;padding:24px 12px;background:var(--od-blanco);border-radius:16px;border-bottom:4px solid transparent;transition:border-color .25s,transform .25s}
.od-sitio .od-sector.e-con:hover{border-bottom-color:var(--od-dorado);transform:translateY(-4px)}
.od-sitio .od-sector .od-ico.e-con{color:var(--od-azul);--od-ico-caja:32px;--od-ico-tam:32px}
.od-sitio .od-sector__t .elementor-heading-title{margin:0;font-family:var(--od-fuente-texto);font-size:var(--od-fs-cuerpo);font-weight:500;line-height:var(--od-lh-texto);color:var(--od-azul-noche)}

.od-sitio .od-valor.e-con{box-sizing:border-box;padding:24px;background:var(--od-blanco);border-radius:18px;border-top:4px solid var(--od-dorado)}
.od-sitio .od-valor .od-ico.e-con{width:44px;height:44px;border-radius:12px;background:var(--od-azul-noche);color:var(--od-dorado);--od-ico-tam:22px}
.od-sitio .od-valor__t .elementor-heading-title{font-family:var(--od-fuente-titulos);font-size:var(--od-fs-valor);font-weight:700;line-height:1.08;color:var(--od-azul-noche);margin:0}
.od-sitio .od-valor--oscuro.e-con{padding:28px;border-radius:20px;background:rgba(255,255,255,.05);border:1px solid rgba(159,204,227,.25);border-top:4px solid var(--od-dorado)}
.od-sitio .od-valor--oscuro .od-ico.e-con{width:48px;height:48px;background:var(--od-dorado);color:var(--od-azul-noche)}
.od-sitio .od-valor--oscuro .od-valor__t .elementor-heading-title{font-size:var(--od-fs-h3);color:var(--od-blanco)}

.od-sitio .od-mv.e-con{box-sizing:border-box;padding:40px;background:var(--od-azul-noche);border-radius:24px;color:var(--od-blanco)}
.od-sitio .od-pend,.od-sitio .od-pend p,.od-pend{box-sizing:border-box;border:2px dashed var(--od-celeste);border-radius:14px;padding:16px;color:var(--od-texto-2);background:#F5FAFD;font-size:var(--od-fs-cuerpo);line-height:var(--od-lh-texto)}
.od-sitio .od-pend p{border:0;padding:0;background:transparent;border-radius:0}
.od-sitio .od-mv .od-pend,.od-sitio .od-pend--oscuro{background:rgba(255,255,255,.06);color:var(--od-sobre-oscuro);border-color:rgba(159,204,227,.5)}
.od-sitio .od-mv .od-pend p,.od-sitio .od-pend--oscuro p{color:var(--od-sobre-oscuro)}

.od-sitio .od-paso.e-con{box-sizing:border-box;padding:28px;border-radius:20px;background:rgba(255,255,255,.05);border:1px solid rgba(159,204,227,.25)}
.od-sitio .od-paso__n .elementor-heading-title{margin:0;font-family:var(--od-fuente-titulos);font-size:var(--od-fs-numero);font-weight:800;line-height:var(--od-lh-titulo);color:var(--od-dorado)}

.od-sitio .od-dirigido.e-con{box-sizing:border-box;padding:32px 28px;border-radius:20px;background:var(--od-blanco);border-top:4px solid var(--od-dorado);box-shadow:0 10px 30px rgba(15,45,64,.06)}
.od-sitio .od-dirigido .od-ico.e-con{width:52px;height:52px;border-radius:14px;background:var(--od-azul-noche);color:var(--od-dorado);--od-ico-tam:24px}

.od-sitio .od-modalidades.e-con{box-sizing:border-box;padding:40px;border-radius:24px;border-top:6px solid var(--od-dorado);background-color:var(--od-azul-noche);color:var(--od-blanco)}
.od-sitio .od-modalidad.e-con{padding-bottom:18px;border-bottom:1px solid #2A4A60}
.od-sitio .od-modalidad--ultima.e-con{padding-bottom:0;border-bottom:0}
.od-sitio .od-modalidad__t .elementor-heading-title{margin:0;font-family:var(--od-fuente-texto);font-size:var(--od-fs-cuerpo);font-weight:700;line-height:var(--od-lh-texto);color:var(--od-dorado)}
.od-sitio .od-etiqueta-pv .elementor-heading-title{display:inline-flex;align-items:center;height:28px;padding:0 12px;margin:0;border-radius:999px;background:#FDF1D6;color:#6B4A00;font-family:var(--od-fuente-texto);font-size:var(--od-fs-meta);font-weight:600;line-height:normal}
.od-sitio .od-etiqueta-pv{align-self:center}

/* Qué incluye: lista con círculo dorado */
.od-sitio .od-lista .elementor-icon-list-items{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:16px}
.od-sitio .od-lista .elementor-icon-list-item{display:flex;align-items:center;gap:14px;padding:0}
.od-sitio .od-lista .elementor-icon-list-icon{flex:none;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;background:var(--od-dorado);color:var(--od-azul-noche)}
.od-sitio .od-lista .elementor-icon-list-icon i,.od-sitio .od-lista .elementor-icon-list-icon svg{display:none}
.od-sitio .od-lista .elementor-icon-list-icon::after{content:"";width:18px;height:18px;background:currentColor;-webkit-mask:var(--od-ico-check) center/contain no-repeat;mask:var(--od-ico-check) center/contain no-repeat}
.od-sitio .od-lista .elementor-icon-list-text{padding:0;color:var(--od-azul-noche)}

/* Collage de dos fotos (Inicio y Nosotros) */
.od-sitio .od-collage.e-con{position:relative;display:block;padding:0}
.od-sitio .od-collage .od-foto{position:absolute;margin:0;overflow:hidden;border-radius:24px;background:var(--od-borde-2)}
.od-sitio .od-collage .od-foto .elementor-widget-container,.od-sitio .od-collage .od-foto img{display:block;width:100%;height:100%}
.od-sitio .od-collage .od-foto img{object-fit:cover}
.od-sitio .od-collage .od-foto--a{left:0;top:0;width:72%;height:440px}
.od-sitio .od-collage .od-foto--b{right:0;bottom:0;width:52%;height:300px;border:8px solid var(--od-fondo-claro)}
.od-sitio .od-collage--nosotros .od-foto--a{height:400px}
.od-sitio .od-collage--nosotros .od-foto--b{height:280px}
.od-sitio .od-collage--blanco .od-foto--b{border-color:var(--od-blanco)}

/* Filas (título + enlace o contador) y banda de llamada a la acción: anchos explícitos para no depender del ancho por defecto del contenedor hijo */
.od-sitio .od-fila.e-con > .e-con{width:auto;flex:0 1 640px}
.od-sitio .od-fila.e-con > .elementor-widget{width:auto;flex:none}
.od-sitio .od-cta__textos.e-con{width:auto;flex:0 1 640px;max-width:640px}
.od-sitio .od-cta-acciones.e-con{width:auto;flex:none}

/* ---------------------------------------------------------------- Tarjetas de servicio (shortcode [odesa_servicios]) */
.od-grilla-servicios{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.od-card-srv{display:flex;flex-direction:column;overflow:hidden;border-radius:20px;background:var(--od-blanco);color:var(--od-azul-noche);text-decoration:none;box-shadow:0 2px 0 var(--od-borde-2),0 10px 30px rgba(15,45,64,.06);transition:transform .3s,box-shadow .3s}
.od-sitio a.od-card-srv:hover{transform:translateY(-6px);box-shadow:0 2px 0 var(--od-dorado),0 22px 44px rgba(15,45,64,.14);color:var(--od-azul-noche)}
.od-foto{position:relative;overflow:hidden;background:var(--od-borde-2)}
.od-foto img,.od-foto .od-foto-vacia{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.od-foto-vacia{background:var(--od-fondo-claro)}
.od-card-srv .od-foto{height:230px}
.od-card-srv:hover .od-foto img{transform:scale(1.07)}
.od-barra{height:4px;background:linear-gradient(90deg,var(--od-dorado) 0 40%,var(--od-celeste) 40% 100%);transform:scaleX(.25);transform-origin:left;transition:transform .4s}
.od-card-srv:hover .od-barra{transform:scaleX(1)}
.od-card-srv__cuerpo{display:flex;flex:1;flex-direction:column;gap:10px;padding:0 28px 28px}
.od-card-srv__badge{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:52px;height:52px;margin-top:-30px;border:4px solid var(--od-blanco);border-radius:14px;box-sizing:border-box;background:var(--od-azul-noche);color:var(--od-dorado)}
.od-card-srv__textos{display:flex;flex-direction:column;gap:10px}
.od-card-srv__t{font-family:var(--od-fuente-titulos);font-size:var(--od-fs-h3);font-weight:700;line-height:var(--od-lh-titulo);color:var(--od-azul-noche)}
.od-card-srv__d{font-size:var(--od-fs-cuerpo);line-height:var(--od-lh-texto);color:var(--od-texto-2)}
.od-card-srv__d--movil,.od-card-srv__flecha{display:none}
.od-card-srv__ver{margin-top:auto;padding-top:8px;font-weight:600;color:var(--od-azul)}
.od-svg{flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* «Otros servicios» (tarjetas pequeñas) */
.od-grilla-minis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.od-mini{display:flex;flex-direction:column;gap:14px;box-sizing:border-box;min-height:150px;padding:24px;border-radius:18px;border-bottom:4px solid transparent;background:var(--od-blanco);color:var(--od-azul-noche);text-decoration:none;box-shadow:0 2px 0 var(--od-borde-2),0 10px 30px rgba(15,45,64,.06);transition:border-color .25s,transform .25s}
.od-sitio a.od-mini:hover{border-bottom-color:var(--od-dorado);transform:translateY(-4px);color:var(--od-azul-noche)}
.od-mini__ico{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:var(--od-fondo-claro);color:var(--od-azul)}
.od-mini__t{font-family:var(--od-fuente-titulos);font-size:var(--od-fs-cuerpo);font-weight:700;line-height:1.3}
.od-mini__flecha{display:none;color:var(--od-dorado)}

/* Fotos de «Trabajos realizados» de un servicio */
.od-galeria{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.od-galeria__foto{position:relative;height:300px;border-radius:20px}
.od-galeria__foto:hover img{transform:scale(1.06)}
.od-chip-tipo{position:absolute;left:14px;bottom:14px;padding:4px 12px;border-radius:999px;background:var(--od-dorado);color:var(--od-azul-noche);font-size:var(--od-fs-meta);font-weight:700;line-height:1.6;letter-spacing:.06em;text-transform:uppercase}

/* ---------------------------------------------------------------- Listado de trabajos (Proyectos) */
.od-listado__cuenta{margin:0;font-size:var(--od-fs-meta);color:var(--od-texto-2)}
.od-filtros{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px}
.od-filtro,.od-pag{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:44px;padding:0 20px;border:1.5px solid var(--od-borde);border-radius:999px;background:var(--od-blanco);color:var(--od-azul-noche);font-family:var(--od-fuente-texto);font-size:var(--od-fs-chip);font-weight:600;line-height:normal;cursor:pointer;transition:border-color .2s,background .2s}
.od-filtro:hover,.od-pag:hover:not(:disabled){border-color:var(--od-azul-2)}
.od-filtro.is-activo,.od-pag.is-actual{background:var(--od-azul-noche);border-color:var(--od-azul-noche);color:var(--od-blanco)}
.od-filtro:focus-visible,.od-pag:focus-visible{outline:3px solid var(--od-dorado);outline-offset:3px}
.od-listado .od-pend{margin:0 0 32px}
.od-listado .od-pend--movil{display:none}
.od-grilla-proyectos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.od-tarjeta[hidden]{display:none}
.od-card-pry{display:flex;flex-direction:column;overflow:hidden;border-radius:20px;background:var(--od-blanco);color:var(--od-azul-noche);box-shadow:0 2px 0 var(--od-borde-2),0 10px 30px rgba(15,45,64,.06);transition:transform .3s,box-shadow .3s}
.od-card-pry:hover{transform:translateY(-6px);box-shadow:0 2px 0 var(--od-dorado),0 22px 44px rgba(15,45,64,.14)}
.od-card-pry .od-foto{height:280px}
.od-card-pry:hover .od-foto img{transform:scale(1.07)}
.od-card-pry:hover .od-barra{transform:scaleX(1)}
.od-card-pry__cuerpo{display:flex;flex-direction:column;gap:10px;padding:22px 24px 26px}
.od-card-pry__t{font-family:var(--od-fuente-titulos);font-size:var(--od-fs-h3);font-weight:700;line-height:var(--od-lh-titulo)}
.od-pend-s{align-self:flex-start;padding:4px 10px;border:1.5px dashed var(--od-celeste);border-radius:8px;background:#F5FAFD;font-size:var(--od-fs-meta);color:var(--od-texto-2)}
.od-card-pry__meta{margin:0;font-size:var(--od-fs-meta);color:var(--od-texto-2)}
.od-paginacion{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:32px}
.od-pag{min-width:44px;padding:0 12px;font-size:var(--od-fs-pag)}
.od-pag:disabled{opacity:.4;cursor:default}
.od-vacio{color:var(--od-texto-2)}

/* ---------------------------------------------------------------- Carrusel de trabajos (Inicio) */
.od-carrusel{position:relative}
.od-carrusel__vista{position:relative;height:560px;overflow:hidden;border-radius:28px;background:var(--od-azul-noche)}
.od-carrusel__pista{display:flex;height:100%;transition:transform .7s cubic-bezier(.65,0,.35,1)}
.od-carrusel__slide{position:relative;flex:0 0 100%;height:100%;margin:0}
.od-carrusel__slide img{display:block;width:100%;height:100%;object-fit:cover}
.od-carrusel__velo{position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,45,64,.85) 0%,rgba(15,45,64,0) 55%)}
.od-carrusel__pie{position:absolute;left:48px;bottom:48px;display:flex;flex-direction:column;gap:8px;color:var(--od-blanco)}
.od-carrusel__tipo{align-self:flex-start;padding:4px 12px;border-radius:999px;background:var(--od-dorado);color:var(--od-azul-noche);font-size:var(--od-fs-meta);font-weight:700;line-height:1.6;letter-spacing:.06em;text-transform:uppercase}
.od-carrusel__pie,.od-chip-tipo{font-style:normal}
.od-carrusel__titulo{font-family:var(--od-fuente-titulos);font-size:var(--od-fs-h3);font-weight:700;line-height:var(--od-lh-titulo);color:var(--od-blanco)}
.od-carrusel__ctrl{position:absolute;inset:0;pointer-events:none}
.od-carrusel__flecha{position:absolute;bottom:40px;display:flex;align-items:center;justify-content:center;width:52px;height:52px;padding:0;border:2px solid var(--od-blanco);border-radius:999px;background:rgba(15,45,64,.35);color:var(--od-blanco);cursor:pointer;pointer-events:auto;transition:background .2s}
.od-carrusel__flecha--ant{right:104px}
.od-carrusel__flecha--sig{right:40px}
.od-carrusel__flecha:hover{background:var(--od-dorado);border-color:var(--od-dorado);color:var(--od-azul-noche)}
.od-carrusel__puntos{position:absolute;left:0;right:0;top:24px;display:flex;justify-content:center;gap:4px}
.od-carrusel__punto{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0;border:0;background:transparent;cursor:pointer;pointer-events:auto}
.od-carrusel__punto span{display:block;width:12px;height:12px;border-radius:999px;background:rgba(255,255,255,.55);transition:width .3s,background .3s}
.od-carrusel__punto[aria-current="true"] span{width:36px;background:var(--od-dorado)}
.od-carrusel__punto:focus-visible,.od-carrusel__flecha:focus-visible{outline:3px solid var(--od-dorado);outline-offset:3px}

/* ---------------------------------------------------------------- Logos de clientes (carrusel continuo) */
.od-logos{position:relative;width:100%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.od-logos__pista{display:flex;gap:16px;width:max-content;margin:0;padding:0;list-style:none;animation:od-deslizar 40s linear infinite}
.od-logos:hover .od-logos__pista,.od-logos:focus-within .od-logos__pista,.od-logos.is-pausa .od-logos__pista{animation-play-state:paused}
.od-lg{flex:0 0 auto;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:200px;height:96px;padding:0 24px;border-radius:14px;background:var(--od-blanco);text-align:center}
.od-sec:not(.od-fondo-claro) .od-lg{background:var(--od-fondo-claro)}
.od-lg img{display:block;width:auto;height:auto;max-width:150px;max-height:56px;filter:grayscale(1);opacity:.8;transition:filter .3s,opacity .3s}
.od-lg:hover img{filter:none;opacity:1}
.od-logos__pausa{position:absolute;right:0;bottom:0;z-index:1;min-width:44px;min-height:44px;padding:0 14px;border:2px solid var(--od-borde);border-radius:999px;background:var(--od-blanco);color:var(--od-azul-noche);font-family:var(--od-fuente-texto);font-size:var(--od-fs-meta);font-weight:600;cursor:pointer;opacity:0}
.od-logos__pausa:focus-visible{opacity:1;outline:3px solid var(--od-dorado);outline-offset:2px}
@keyframes od-deslizar{to{transform:translateX(calc(-50% - 8px))}}

/* Contador del carrusel («01 / 04») */
.od-contador{margin:0;white-space:nowrap;font-size:var(--od-fs-meta);color:var(--od-texto-2)}

/* ---------------------------------------------------------------- Contacto: datos, canales, formulario, mapa */
.od-datos{display:flex;flex-direction:column;gap:16px;margin:0;padding:0;list-style:none}
.od-dato{display:flex;align-items:center;gap:16px;min-height:44px;color:var(--od-azul-noche);text-decoration:none}
.od-sitio a.od-dato,.od-sitio a.od-dato:hover{color:var(--od-azul-noche)}
.od-dato__ico{display:flex;flex:none;align-items:center;justify-content:center;width:48px;height:48px;border-radius:14px;background:var(--od-fondo-claro);color:var(--od-azul)}
.od-dato__t{font-weight:700}
.od-canales{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.45fr) minmax(0,1fr);gap:20px;margin:0;padding:0;list-style:none}
.od-canal{display:flex;align-items:center;gap:16px;box-sizing:border-box;padding:20px;border-radius:18px;border-bottom:4px solid transparent;background:var(--od-blanco);color:var(--od-azul-noche);text-decoration:none;box-shadow:0 2px 0 var(--od-borde-2),0 10px 30px rgba(15,45,64,.06);transition:border-color .25s,transform .25s}
.od-sitio a.od-canal,.od-sitio a.od-canal:hover{color:var(--od-azul-noche)}
.od-sitio a.od-canal:hover{border-bottom-color:var(--od-dorado);transform:translateY(-4px)}
.od-canal__ico{display:flex;flex:none;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;background:var(--od-azul-noche);color:var(--od-dorado)}
.od-canal__txt{min-width:0;overflow-wrap:anywhere}
.od-canal__t{font-family:var(--od-fuente-titulos);font-size:var(--od-fs-canal);font-weight:700}
.od-form{box-sizing:border-box;padding:40px;border-radius:24px;border-top:6px solid var(--od-dorado);background:var(--od-blanco);box-shadow:0 20px 50px rgba(15,45,64,.12)}
.od-form__rejilla{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.od-form__ancho{grid-column:span 2}
.od-campo{display:flex;flex-direction:column;gap:6px;font-size:var(--od-fs-meta);line-height:1.6;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.od-campo input,.od-campo select,.od-campo textarea,.od-form input[type=text],.od-form input[type=email],.od-form input[type=tel],.od-form select,.od-form textarea{box-sizing:border-box;width:100%;min-height:52px;padding:0 16px;border:1.5px solid #8DA2B0;border-radius:12px;background:var(--od-blanco);color:var(--od-azul-noche);font-family:var(--od-fuente-texto);font-size:var(--od-fs-cuerpo);font-weight:400;letter-spacing:0;text-transform:none;transition:border-color .2s,box-shadow .2s}
.od-campo textarea,.od-form textarea{min-height:112px;padding:14px 16px;resize:vertical}
.od-campo input:focus,.od-campo select:focus,.od-campo textarea:focus,.od-form input:focus,.od-form select:focus,.od-form textarea:focus{border-color:var(--od-azul);box-shadow:0 0 0 4px rgba(56,131,168,.2);outline:none}
.od-form__enviar,.od-form input[type=submit],.od-form button[type=submit]{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:52px;padding:0 28px;border:2px solid transparent;border-radius:999px;background:var(--od-azul);color:var(--od-blanco);font-family:var(--od-fuente-texto);font-size:var(--od-fs-boton);font-weight:600;line-height:normal;cursor:pointer;transition:background .2s}
.od-form__enviar:hover,.od-form input[type=submit]:hover,.od-form button[type=submit]:hover{background:var(--od-azul-noche)}
.od-mapa iframe{display:block;width:100%;height:380px;border:0;border-radius:24px}
.od-mapa-vacio{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;box-sizing:border-box;height:380px;padding:24px;border-top:6px solid var(--od-dorado);border-radius:24px;background-color:var(--od-azul-noche);background-image:repeating-linear-gradient(135deg,rgba(159,204,227,.07) 0 2px,transparent 2px 22px);color:var(--od-sobre-oscuro);text-align:center}
.od-mapa-vacio svg{color:var(--od-dorado)}
.od-mapa-vacio p{max-width:360px}
.od-pv-caja{padding:16px;border:2px dashed var(--od-celeste);border-radius:14px;background:#F5FAFD;color:var(--od-texto-2);font-size:var(--od-fs-cuerpo);line-height:var(--od-lh-texto)}

/* ---------------------------------------------------------------- Cabecera (Menú A: transparente sobre la portada, azul al bajar) */
.od-saltar{position:absolute;left:-9999px;top:0;z-index:100;padding:12px 18px;background:var(--od-azul-noche);color:var(--od-blanco)}
.od-saltar:focus{left:var(--od-lateral);top:8px}
.od-cab{--od-cab-a:0;position:sticky;top:0;z-index:30;margin-bottom:calc(var(--od-cab-alto) * -1);background:rgba(15,45,64,calc(var(--od-cab-a) * .97));box-shadow:0 8px 24px rgba(5,20,35,calc(var(--od-cab-a) * .25));font-family:var(--od-fuente-texto)}
html:not(.od-js) .od-cab,.od-cab.is-solido{--od-cab-a:1}
.od-cab.is-solido{margin-bottom:0}
.admin-bar .od-cab{top:32px}
.od-cab__lateral{padding-inline:var(--od-lateral)}
.od-cab__ancho{max-width:var(--od-ancho);margin-inline:auto}
.od-cab__fila{display:flex;align-items:center;justify-content:space-between;gap:24px;height:var(--od-cab-alto)}
.od-cab__logo{display:flex;flex:none;align-items:center;min-height:44px;line-height:0}
.od-cab__logo img{display:block;width:auto;height:var(--od-logo-alto)}
.od-nav{display:flex;align-items:center}
.od-menu,.od-menu ul{margin:0;padding:0;list-style:none}
.od-menu{display:flex;align-items:center;gap:32px}
.od-menu>li{position:relative;display:flex;align-items:center}
.od-menu>li>a{position:relative;display:flex;align-items:center;min-height:44px;padding:12px 0;font-size:var(--od-fs-menu);font-weight:500;color:var(--od-blanco);text-decoration:none}
.od-menu>li>a::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:3px;border-radius:2px;background:var(--od-dorado);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.od-menu>li:hover>a::after,.od-menu>li.menu-item-has-children:focus-within>a::after,.od-menu .current-menu-item>a::after,.od-menu .current_page_item>a::after,.od-menu .current-menu-ancestor>a::after{transform:scaleX(1)}
.od-menu>li>a:hover{color:var(--od-blanco)}
.od-menu>li.menu-item-has-children>a{padding-right:22px;line-height:normal}
.od-menu>li.menu-item-has-children>a::before{content:"";position:absolute;right:0;top:50%;width:16px;height:16px;margin-top:-8px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .25s}
.od-menu>li.menu-item-has-children>a::after{right:22px}
.od-menu>li.menu-item-has-children:hover>a::before,.od-menu>li.menu-item-has-children:focus-within>a::before{transform:rotate(180deg)}
.od-menu .sub-menu{position:absolute;top:calc(100% + 6px);left:-20px;z-index:60;display:flex;flex-direction:column;gap:2px;box-sizing:border-box;min-width:270px;padding:10px;border-top:4px solid var(--od-dorado);border-radius:16px;background:var(--od-blanco);box-shadow:0 22px 44px rgba(5,20,35,.28);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .25s,transform .25s,visibility .25s}
.od-menu .sub-menu::before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px}
.od-menu li:hover>.sub-menu,.od-menu li:focus-within>.sub-menu,.od-menu li.is-abierto>.sub-menu{opacity:1;visibility:visible;transform:none}
.od-menu .sub-menu a{display:flex;align-items:center;min-height:44px;padding:0 14px;border-radius:10px;font-size:var(--od-fs-submenu);font-weight:500;color:var(--od-azul-noche);text-decoration:none;transition:background .2s,color .2s,padding .2s}
.od-menu .sub-menu a:hover,.od-menu .sub-menu .current-menu-item>a{background:var(--od-fondo-claro);color:var(--od-azul);padding-left:20px}
.od-submenu-btn{display:none}
.od-cab__acciones{display:flex;align-items:center;gap:20px}
.od-cab__tel{display:flex;align-items:center;gap:8px;min-height:44px;font-weight:600;color:var(--od-blanco);text-decoration:none}
.od-cab__tel:hover{color:var(--od-blanco)}
.od-cab__tel svg{color:var(--od-dorado)}
.od-cab__cotizar,.od-movil__cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;min-height:52px;padding:0 28px;border:2px solid transparent;border-radius:999px;background:var(--od-dorado);color:var(--od-azul-noche);font-size:var(--od-fs-boton);font-weight:600;line-height:normal;text-decoration:none;transition:background .2s,transform .2s,box-shadow .2s}
.od-sitio .od-cab__cotizar:hover,.od-sitio .od-movil__cta:hover{background:#F0BC45;color:var(--od-azul-noche);transform:translateY(-2px);box-shadow:0 10px 24px rgba(224,165,38,.35)}
.od-cab__movil,.od-cab__toggle,.od-movil{display:none}

/* Menú móvil (390 px): botón «Cotizar», hamburguesa y menú a pantalla completa */
.od-cab__toggle{width:44px;height:44px;padding:0;align-items:center;justify-content:center;border:1.5px solid rgba(255,255,255,.6);border-radius:12px;background:transparent;color:var(--od-blanco);cursor:pointer}
.od-movil{position:fixed;inset:0;z-index:50;box-sizing:border-box;flex-direction:column;padding:16px;overflow-y:auto;overscroll-behavior:contain;background-color:var(--od-azul-noche);background-image:repeating-linear-gradient(135deg,rgba(159,204,227,.07) 0 2px,transparent 2px 20px);color:var(--od-blanco)}
.od-movil[hidden]{display:none}
.od-movil__tope{display:flex;align-items:center;justify-content:space-between;height:56px}
.od-movil__tope img{display:block;width:auto;height:46px}
.od-movil__nav{margin-top:24px}
.od-movil__nav a,.od-movil__nav summary{display:flex;align-items:center;justify-content:space-between;min-height:56px;border-bottom:1px solid rgba(159,204,227,.25);color:var(--od-blanco);font-family:var(--od-fuente-titulos);font-size:var(--od-fs-menu);font-weight:700;text-decoration:none;list-style:none;cursor:pointer}
.od-movil__nav summary::-webkit-details-marker{display:none}
.od-movil__nav a span,.od-movil__nav summary span{color:var(--od-dorado)}
.od-movil__nav details[open] summary span{transform:rotate(180deg)}
.od-movil__sub{display:flex;flex-direction:column;margin:0 0 12px;padding:0 0 12px 12px;border-left:3px solid var(--od-dorado)}
.od-movil__nav .od-movil__sub a{min-height:44px;border-bottom:0;font-family:var(--od-fuente-texto);font-size:var(--od-fs-submenu);font-weight:500;color:var(--od-sobre-portada)}
.od-movil__pie{display:flex;flex-direction:column;gap:12px;margin-top:auto;padding-top:24px}
.od-movil__linea{display:inline-flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;min-height:52px;padding:0 22px;border:2px solid rgba(255,255,255,.8);border-radius:999px;color:var(--od-blanco);font-weight:600;text-decoration:none}
.od-movil__nota{padding:8px 0;font-size:var(--od-fs-meta);text-align:center;color:var(--od-celeste)}
body.od-menu-abierto{overflow:hidden}

/* Textos que cambian entre escritorio y móvil */
.od-solo-movil{display:none}

/* ---------------------------------------------------------------- Pie */
.od-pie{background-color:var(--od-pie);background-image:repeating-linear-gradient(135deg,rgba(159,204,227,.07) 0 2px,transparent 2px 22px);color:var(--od-sobre-oscuro);font-family:var(--od-fuente-texto);font-size:var(--od-fs-cuerpo);line-height:var(--od-lh-texto)}
.od-pie__tricolor{height:6px;background:linear-gradient(90deg,var(--od-dorado) 0 33%,var(--od-celeste) 33% 66%,var(--od-azul-2) 66% 100%)}
.od-pie__interior{display:flex;flex-direction:column;gap:48px;padding:72px 0 32px}
.od-pie__columnas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px}
.od-pie__col{display:flex;flex-direction:column;gap:12px}
.od-pie__marca{display:flex;flex-direction:column;gap:18px}
.od-pie__logo{display:block;align-self:flex-start;line-height:0}
.od-pie__logo img{display:block;width:auto;height:56px}
.od-pie a{color:var(--od-sobre-oscuro);text-decoration:none}
.od-pie a:hover{color:var(--od-dorado)}
.od-pie__titulo{margin:0;font-family:var(--od-fuente-titulos);font-size:var(--od-fs-cuerpo);font-weight:700;line-height:var(--od-lh-titulo);color:var(--od-blanco)}
.od-pie__red{display:flex;align-items:center;justify-content:center;align-self:flex-start;width:44px;height:44px;border:1px solid #2A4A60;border-radius:12px}
.od-pie__legal{margin:0;padding-top:24px;border-top:1px solid #1E3A4E;font-size:var(--od-fs-meta);color:#9FB3C3}
.od-pie__movil{display:none}

/* ---------------------------------------------------------------- Botón flotante de WhatsApp */
.od-wa{position:fixed;right:var(--od-wa-pos);bottom:var(--od-wa-pos);z-index:40;display:flex;align-items:center;justify-content:center;width:var(--od-wa-tam);height:var(--od-wa-tam);border-radius:999px;background:#25D366;color:var(--od-blanco);box-shadow:0 8px 20px rgba(15,45,64,.25);transition:transform .2s}
.od-wa .od-svg{stroke-width:2}
.od-sitio .od-wa:hover{transform:scale(1.08);color:var(--od-blanco)}

/* ---------------------------------------------------------------- Movimiento al entrar en pantalla (como el prototipo) */
@keyframes od-subir{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.od-sitio .od-portada__contenido{animation:od-subir .9s ease both}
@supports (animation-timeline:view()){
  .od-sitio .od-aparece{animation:od-subir linear both;animation-timeline:view();animation-range:entry 0% entry 70%}
}

/* ==========================================================================
   Tableta (≤1024 px): punto medio, sin artboard en el prototipo
   ========================================================================== */
@media (max-width:1024px){
  .od-sitio .od-grilla-6.e-con{grid-template-columns:repeat(3,minmax(0,1fr))}
  .od-sitio .od-grilla-4.e-con,.od-sitio .od-grilla-3.e-con,.od-grilla-servicios,.od-grilla-proyectos,.od-galeria{grid-template-columns:repeat(2,minmax(0,1fr))}
  .od-grilla-minis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .od-sitio .od-grilla-canales.e-con,.od-canales{grid-template-columns:repeat(2,minmax(0,1fr))}
  .od-sitio .od-dos-col.e-con,.od-sitio .od-dos-col--5-7.e-con,.od-sitio .od-contacto.e-con{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"a" "b" "c"}
  .od-sitio .od-dos-col.e-con{grid-template-areas:none}
  .od-sitio .od-collage.e-con{height:480px!important}
  .od-carrusel__vista{height:480px}
  /* Cabecera de tableta y móvil: botón «Cotizar», hamburguesa y menú a pantalla completa */
  .od-nav,.od-cab__acciones{display:none}
  .od-cab__movil{display:flex;align-items:center;gap:8px}
  .od-cab__toggle{display:flex}
  .od-cab__toggle .od-svg{width:22px;height:22px}
  .od-movil:not([hidden]){display:flex}
  .od-cab__movil .od-cab__cotizar{min-height:44px;padding:0 16px}
  .od-cab__fila{gap:10px}
  .od-pie__columnas{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ==========================================================================
   Móvil (≤767 px): prototipo a 390 px
   ========================================================================== */
@media (max-width:767px){
  .od-sitio .od-eyebrow .elementor-heading-title{letter-spacing:.14em}
  .od-sitio .od-eyebrow .elementor-heading-title::before{width:28px}
  .od-sitio .od-btn .elementor-button{min-height:50px;padding:0 22px}
  .od-sitio .od-botones.e-con .elementor-widget-button,.od-sitio .od-botones.e-con .elementor-button{width:100%}
  .od-sitio .od-fila--col.e-con > .e-con{flex:0 0 auto;width:100%}
  .od-sitio .od-fila:not(.od-fila--col).e-con > .e-con{flex:0 1 auto}
  .od-sitio .od-cta__textos.e-con,.od-sitio .od-cta-acciones.e-con{width:100%;flex:0 0 auto}
  .od-sitio .od-btn--bloque .elementor-widget-container,.od-sitio .od-btn--bloque .elementor-button{width:100%}

  /* Portadas: franjas diagonales fuera; barra dorada y celeste al pie */
  .od-sitio .od-portada.e-con::before{background:linear-gradient(0deg,rgba(15,45,64,.96) 0%,rgba(15,45,64,.6) 60%,rgba(15,45,64,.35) 100%)}
  .od-sitio .od-portada--inicio.e-con::before{background:linear-gradient(0deg,rgba(15,45,64,.95) 0%,rgba(15,45,64,.55) 60%,rgba(15,45,64,.35) 100%)}
  .od-sitio .od-portada.e-con::after{content:"";position:absolute;left:0;right:0;bottom:0;z-index:2;height:8px;pointer-events:none;background:linear-gradient(90deg,var(--od-dorado) 0 40%,var(--od-celeste) 40% 100%)}
  .od-sitio .od-banda--oro.e-con,.od-sitio .od-banda--celeste.e-con,.od-sitio .od-banda--celeste-sec.e-con{display:none}
  .od-sitio .od-banda--oro-sec.e-con{left:-40px;top:30px;width:180px;height:12px}
  .od-sitio .od-banda--oro-cta.e-con{left:-40px;top:16px;width:180px;height:12px}
  .od-sitio .od-insignia .elementor-heading-title{gap:6px;padding:6px 12px}
  .od-sitio .od-insignia .elementor-heading-title::before{width:16px;height:16px}
  .od-sitio .od-ruta a{display:inline-flex;align-items:center;min-height:44px}

  /* Tarjetas simples */
  .od-sitio .od-grilla-6.e-con{grid-template-columns:repeat(3,minmax(0,1fr))}
  .od-sitio .od-sector.e-con{min-height:92px;padding:10px 6px;border-radius:14px}
  .od-sitio .od-sector .od-ico.e-con{--od-ico-caja:24px;--od-ico-tam:24px}
  .od-sitio .od-sector__t .elementor-heading-title{font-size:var(--od-fs-meta);line-height:1.3}
  .od-sitio .od-grilla-4.e-con,.od-sitio .od-grilla-3.e-con,.od-sitio .od-grilla-2.e-con,.od-sitio .od-grilla-canales.e-con{grid-template-columns:minmax(0,1fr)}
  .od-sitio .od-valor.e-con{padding:16px;border-radius:16px}
  .od-sitio .od-valor .od-ico.e-con{width:40px;height:40px;border-radius:10px;--od-ico-tam:20px}
  .od-sitio .od-valor__t .elementor-heading-title{line-height:1.25}
  .od-sitio .od-valor--oscuro .od-valor__t .elementor-heading-title{line-height:1.1}
  .od-sitio .od-valor--oscuro.e-con{border-top:1px solid rgba(159,204,227,.25);flex-direction:row;align-items:flex-start;padding:16px;border-radius:16px}
  .od-sitio .od-valor--oscuro .od-ico.e-con{width:40px;height:40px;border-radius:10px;--od-ico-tam:20px}
  .od-sitio .od-valor__col.e-con{flex:1 1 0;min-width:0}
  .od-sitio .od-grilla-valores.e-con{grid-template-columns:repeat(2,minmax(0,1fr))}
  .od-sitio .od-mv.e-con{padding:20px;border-radius:18px}
  .od-sitio .od-pend,.od-pend{padding:12px 14px;border-radius:12px}
  .od-sitio .od-paso.e-con{flex-direction:row;align-items:flex-start;padding:16px;border-radius:16px}
  .od-sitio .od-paso__n{min-width:40px}
  .od-sitio .od-dirigido.e-con{flex-direction:row;align-items:flex-start;padding:18px;border-radius:16px;box-shadow:none}
  .od-sitio .od-dirigido .od-ico.e-con{width:40px;height:40px;border-radius:10px;--od-ico-tam:20px}
  .od-sitio .od-modalidades.e-con{padding:24px 20px;border-radius:20px}
  .od-sitio .od-lista .elementor-icon-list-items{gap:14px}
  .od-sitio .od-lista .elementor-icon-list-item{gap:12px}
  .od-sitio .od-lista .elementor-icon-list-icon{width:28px;height:28px}
  .od-sitio .od-lista .elementor-icon-list-icon::after{width:16px;height:16px}
  .od-sitio .od-collage.e-con{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;height:auto!important}
  .od-sitio .od-collage .od-foto,.od-sitio .od-collage .od-foto--a,.od-sitio .od-collage .od-foto--b{position:static;width:auto;height:200px;border:0;border-radius:18px}
  .od-sitio .od-collage--nosotros .od-foto{height:190px}
  .od-sitio .od-etiqueta-pv .elementor-heading-title{height:26px;padding:0 10px}

  /* Tarjetas de servicio */
  .od-grilla-servicios,.od-grilla-proyectos{grid-template-columns:minmax(0,1fr);gap:16px}
  .od-card-srv{border-radius:18px;box-shadow:0 2px 0 var(--od-borde-2),0 8px 22px rgba(15,45,64,.07)}
  .od-card-srv .od-foto{height:120px}
  .od-card-srv .od-barra{transform:none;background:linear-gradient(90deg,var(--od-dorado) 0 30%,var(--od-celeste) 30% 100%)}
  .od-card-srv__cuerpo{flex-direction:row;align-items:center;gap:12px;padding:16px 18px 18px}
  .od-card-srv__badge,.od-card-srv__ver,.od-card-srv__d--escritorio{display:none}
  .od-card-srv__textos{flex:1;gap:4px}
  .od-card-srv__d--movil{display:block;font-size:var(--od-fs-meta);line-height:1.55}
  .od-card-srv__flecha .od-svg{width:18px;height:18px}
  .od-card-srv__flecha{display:flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;border-radius:999px;background:var(--od-azul-noche);color:var(--od-dorado)}
  .od-grilla-minis{grid-template-columns:minmax(0,1fr);gap:10px}
  .od-mini{flex-direction:row;align-items:center;gap:12px;min-height:56px;padding:14px 16px;border-radius:14px;border-bottom:0;box-shadow:0 2px 0 var(--od-borde-2)}
  .od-sitio a.od-mini:hover{transform:none}
  .od-mini__ico{width:40px;height:40px;border-radius:10px}
  .od-mini__ico .od-svg{width:20px;height:20px}
  .od-mini__t{flex:1;font-family:var(--od-fuente-texto);font-weight:600;line-height:var(--od-lh-texto)}
  .od-mini__flecha{display:block}

  /* Fotos de «Trabajos realizados» de un servicio: fila que se desliza */
  .od-galeria{display:flex;gap:12px;margin-inline:calc(var(--od-lateral) * -1);padding-inline:var(--od-lateral);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--od-lateral)}
  .od-galeria .od-galeria__foto{flex:0 0 280px;height:240px;border-radius:18px;scroll-snap-align:start}
  .od-galeria .od-chip-tipo{left:12px;bottom:12px;padding:3px 10px}
  .od-sitio .od-galeria__aviso{margin-top:20px;font-size:var(--od-fs-meta);color:var(--od-texto-2)}

  /* Listado de trabajos */
  .od-filtros{flex-wrap:nowrap;margin-inline:calc(var(--od-lateral) * -1);padding:0 var(--od-lateral) 4px;overflow-x:auto;gap:8px;margin-bottom:18px}
  .od-filtro{flex:0 0 auto;padding:0 16px}
  .od-listado .od-pend{margin-bottom:18px}
  .od-listado .od-pend--escritorio{display:none}
  .od-listado .od-pend--movil{display:block}
  .od-card-pry{border-radius:18px;box-shadow:0 2px 0 var(--od-borde-2),0 8px 22px rgba(15,45,64,.07)}
  .od-card-pry .od-foto{height:200px}
  .od-card-pry .od-barra{transform:none;background:linear-gradient(90deg,var(--od-dorado) 0 30%,var(--od-celeste) 30% 100%)}
  .od-card-pry:hover{transform:none}
  .od-card-pry__cuerpo{gap:8px;padding:14px 16px 16px}
  .od-chip-tipo{left:12px;bottom:12px;padding:3px 10px}
  .od-pag{padding:0 12px}
  .od-paginacion{gap:8px;margin-top:8px}

  /* Carrusel: fotos arriba; flechas y puntos debajo */
  .od-carrusel__vista{height:420px;border-radius:20px}
  .od-carrusel__pie{left:18px;right:18px;bottom:20px}
  .od-carrusel__tipo{padding:3px 10px}
  .od-carrusel__ctrl{position:static;display:flex;align-items:center;justify-content:space-between;margin-top:20px;pointer-events:auto}
  .od-carrusel__flecha .od-svg{width:22px;height:22px}
  .od-carrusel__flecha{position:static;width:44px;height:44px;border-color:var(--od-azul-noche);background:var(--od-blanco);color:var(--od-azul-noche)}
  .od-carrusel__puntos{position:static;gap:0}
  .od-carrusel__punto span{width:10px;height:10px;background:var(--od-sobre-oscuro)}
  .od-carrusel__punto[aria-current="true"] span{width:30px}
  .od-carrusel__flecha--ant{order:1}.od-carrusel__puntos{order:2}.od-carrusel__flecha--sig{order:3}

  /* Logos */
  .od-logos__pista{gap:12px}
  .od-lg{width:140px;height:72px;padding:0 16px;border-radius:12px}
  .od-lg img{max-width:108px;max-height:40px}
  @keyframes od-deslizar{to{transform:translateX(calc(-50% - 6px))}}

  /* Contacto */
  .od-sitio .od-contacto.e-con{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"a" "b" "c"}
  .od-datos{gap:6px}
  .od-dato{gap:12px}
  .od-dato__ico{width:auto;height:auto;border-radius:0;background:transparent}
  .od-dato__txt br{display:none}
  .od-dato__t::after{content:" "}
  .od-dato--sin-etiqueta-movil .od-dato__t{display:none}
  .od-canales{grid-template-columns:minmax(0,1fr);gap:10px}
  .od-canal{gap:12px;min-height:64px;padding:14px 16px;border-radius:14px;border-bottom:0;box-shadow:0 2px 0 var(--od-borde-2)}
  .od-sitio a.od-canal:hover{transform:none}
  .od-canal__ico{width:44px;height:44px;border-radius:12px}
  .od-canal__ico .od-svg{width:20px;height:20px}
  .od-sitio .od-enlace-flecha .elementor-button-content-wrapper::after{width:18px;height:18px}
  .od-canal__txt{flex:1}
  .od-canal__t{font-family:var(--od-fuente-texto);font-size:var(--od-fs-cuerpo)}
  .od-form{padding:20px;border-radius:20px;box-shadow:0 14px 34px rgba(15,45,64,.12)}
  .od-form__rejilla{display:flex;flex-direction:column;gap:16px}
  .od-campo input,.od-campo select,.od-campo textarea,.od-form input[type=text],.od-form input[type=email],.od-form input[type=tel],.od-form select,.od-form textarea{min-height:50px;padding:0 14px}
  .od-campo textarea,.od-form textarea{min-height:100px;padding:12px 14px}
  .od-mapa iframe,.od-mapa-vacio{height:220px;border-radius:18px}
  .od-mapa-vacio{gap:10px;padding:16px}
  .od-mapa-vacio .od-svg{width:36px;height:36px}

  /* Cabecera y pie */
  .od-wa{box-shadow:0 8px 20px rgba(15,45,64,.25)}
  .od-solo-escritorio{display:none}
  .od-solo-movil{display:inline}
  .od-galeria__aviso.od-solo-movil{display:block}
  .od-pie__columnas{display:none}
  .od-pie__movil{display:flex;flex-direction:column;gap:24px}
  .od-pie__compacto{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px}
  .od-pie__compacto a{display:flex;align-items:center;min-height:44px}
  .od-pie__interior{gap:24px;padding:40px 0 88px}
  .od-pie__legal{padding-top:18px}
  .od-pie__movil .od-pie__logo img{height:52px}
}

/* Orden de elementos en celular (Nosotros y Contacto: el collage o el mapa va entre el texto y el aviso) */
@media (max-width:767px){
  .od-sitio .od-col-contenido.e-con{display:contents}
  .od-sitio .od-col-contenido > *{order:1}
  .od-sitio .od-o2{order:2}.od-sitio .od-o3{order:3}.od-sitio .od-o4{order:4}.od-sitio .od-o5{order:5}.od-sitio .od-o6{order:6}
  .od-sitio .od-col-contenido > .od-o3{order:3}.od-sitio .od-col-contenido > .od-o5{order:5}.od-sitio .od-col-contenido > .od-o6{order:6}
  .od-sitio .od-cinta{margin-inline:calc(var(--od-lateral) * -1);width:auto}
  .od-sitio .od-btn--flecha .elementor-button-content-wrapper::after{display:none}
}
.od-sitio .od-cinta{width:100%}

/* Orden de las franjas de Inicio en móvil (el prototipo de 390 px pone el contacto antes de «Nosotros») */
@media (max-width:767px){
  .od-pag-inicio [data-elementor-type="wp-page"]{display:flex;flex-direction:column}
  .od-pag-inicio .od-m1{order:1}.od-pag-inicio .od-m2{order:2}.od-pag-inicio .od-m3{order:3}.od-pag-inicio .od-m4{order:4}
  .od-pag-inicio .od-m5{order:5}.od-pag-inicio .od-m6{order:6}.od-pag-inicio .od-m7{order:7}.od-pag-inicio .od-m8{order:8}
}

@media (prefers-reduced-motion:reduce){
  .od-sitio *,.od-sitio *::before,.od-sitio *::after{animation:none!important;transition:none!important}
  .od-logos{overflow-x:auto;-webkit-mask-image:none;mask-image:none}
  .od-logos__pista [aria-hidden="true"],.od-logos__pausa{display:none}
  .od-carrusel__pista{transition:none}
}

/* Recursos reales del prototipo (0.4.0) */
/* Encuadre de las fotos de tarjetas, carrusel y galerías: --od-pos (escritorio) y --od-pos-m (celular, si es otro) */
.od-sitio img[style*="--od-pos"]{object-position:var(--od-pos)}
.od-sitio .od-collage .od-foto--cocina img{object-position:50% 45%}
@media (max-width:767px){
  .od-sitio img[style*="--od-pos"]{object-position:var(--od-pos-m,var(--od-pos))}
  .od-sitio .od-collage .od-foto--cocina img{object-position:40% 45%}
}
/* Video de la portada de Inicio: debajo del degradado y de las franjas, sobre el póster (fondo del contenedor) */
.od-sitio .od-portada .od-video-fondo.elementor-widget{position:absolute;inset:0;z-index:-2;width:100%;height:100%;margin:0;pointer-events:none}
.od-sitio .od-portada .od-video-fondo .elementor-widget-container{height:100%}
.od-video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
@media (prefers-reduced-motion:reduce){
  .od-video{display:none}
}
.od-paginacion .od-svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
