/* ===========================
   Origen Local — CSS completo
   =========================== */

/* Fuente Gotham (opcional) */
@font-face{
  font-family: 'Gotham';
  src: local('Gotham-Black'), url('../fonts/Gotham-Black.ttf') format('truetype');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

@font-face{
  font-family: 'Gotham-Thin';
  src: local('Gotham-Thin'), url('../fonts/Gotham-Thin.ttf') format('truetype');
  font-style: normal;
  font-display: swap;
}

/* Wrapper general del módulo */
.ol-wrapper-layout{
  font-family: 'Gotham', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

/* Texto fuerte por defecto */
b,strong,h1,h2,h3,.h4{ font-weight:900; font-family:'Gotham'; }
p{ color:#013379; font-family:'Gotham-Thin';font-weight: 600;}

/* ======= Cabecera con logo ======= */
.bg-div{
  background-image: url('../img/BackgroundOrigenLocal.jpg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 2%;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 200px;
  width: 100%;
}
.ol-logo{ display:flex; justify-content:center; }
.ol-logo img{ max-width: 220px; height: auto; display:block; }

.ol-logo-footer{ display:flex; justify-content:center; }
.ol-logo-footer img{ max-width: 220px; height: auto; display:block; }

/* ======= Hero ======= */
.ol-hero{ padding:48px 0 32px; }
.ol-hero__video .ol-video{ width:100%; height:auto; border-radius:12px; }
.ol-hero__claim{ margin-top:40%; }
@media (max-width: 992px){
  .ol-hero__claim{ margin-top:24px; }
}
@media (min-width: 992px) {
  .componente { font-size: 17px; }
  .ol-title{
    color:#87b6ee;
    font-weight:900;
    line-height:1.1;
    font-size:40px !important;
    text-align:center;
  }
  /* Heading de sección */
    .ol-heading{
        text-align:center;
        font-weight:900;
        font-size:40px !important;
        color:#013379;
        margin:32px 0 16px;
    }
    .ol-heading-marcas{
        text-align:center;
        font-weight:900;
        font-size:30px !important;
        color:#013379;
        margin:32px 0 16px;
    }
    .ol-h3--big{ font-size:20px !important; font-weight:900; color:#0b3c78; margin-bottom:10px; }
    .ol-news__email{
        flex: 1 1 560px;              /* ancho cómodo en desktop */
        max-width: 560px;
        height: 54px;
        border: 2px solid #134e93;
        border-radius: 12px;
        padding-left: 50px;           /* espacio para el ícono */
        font-weight: 700;
        color: #134e93;
        background-color: #fff;

        /* ícono de sobre (data-URI SVG) */
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23134e93' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-size: 22px 22px;
        background-position: 16px 50%;
    }
}
/* Títulos */

@media (max-width:768px){
  .ol-title{ font-size:28px; }
  .ol-logo img{ max-width:180px; }
  .ol-logo-footer img{ max-width:180px; }
}


@media (max-width:768px){ .ol-heading{ font-size:28px; } .ol-heading-marcas{ font-size:28px; } }

/* ======= Secciones ======= */
.ol-intro{ align-items:center; margin-bottom:10px; }
.ol-portrait{ width:100%; height:260px; background:#f1f4f8; border-radius:12px; }

/* ======= Acordeón (encabezado + banners) ======= */
.ol-section__header{ position:relative; margin-bottom:10px; }
.ol-toggle{
  all: unset;
  display:block;
  width:100%;
  cursor:pointer;
  position:relative;
}

/* Banners por marca — desktop por defecto */
.ol-banner-selva     { background-image:url('../img/bg_header_selva.png'); }
.ol-banner-casaocho  { background-image:url('../img/bg_header_casaocho.png'); }
.ol-banner-barbaroja { background-image:url('../img/bg_header_barbaroja.png'); }

/* Estilo común del bloque banner */
.ol-toggle [class^="ol-banner-"]{
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color:#fff;
  padding:18px 56px 70px 18px;  /* espacio para el caret */
  border-radius:16px;
  min-height:96px;              /* <- asegura altura visible */
  display:block;
  transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}


.ol-toggle:hover [class^="ol-banner-"],
.ol-toggle:focus-visible [class^="ol-banner-"]{
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(0,0,0,.18);
  filter: brightness(1.05) saturate(1.05);
}
.ol-toggle:hover [class^="ol-banner-"]::after,
.ol-toggle:focus-visible [class^="ol-banner-"]::after{
  background: rgba(255,255,255,.06);
}

/* Caret (flecha) a la derecha */
.ol-chevron{
  position:absolute; right:22px; top:50%;
  width:14px; height:14px;
  border-right:3px solid #fff;
  border-bottom:3px solid #fff;
  transform: translateY(-50%) rotate(45deg);
  transition: transform .25s ease;
}
.ol-section.is-open .ol-chevron{ transform: translateY(-50%) rotate(-135deg); }

/* Cuerpo colapsable */
.ol-section__body{
  overflow:hidden;
  max-height:0;
  transition:max-height .35s ease;
}

/* ======= Panel blanco interior ======= */
.ol-panel{
  background:#fff;
  border:1px solid #e8edf5;
  border-radius:18px;
  padding:22px;
  box-shadow:0 6px 20px rgba(0,0,0,.06);
}

/* Texto de la intro derecha (mock) */
.ol-h3{ font-weight:700; margin:8px 0 16px; }

.ol-divider{ display:block; width:120px; height:4px; background:#1e518e; border-radius:3px; margin:10px 0 14px; }
.ol-legend{ color:#4a5b70; line-height:1.6; font-weight:600; }

/* ======= Video con overlay + botón play ======= */
.ol-video-wrap{ position:relative; border-radius:16px; overflow:hidden; box-shadow:0 10px 26px rgba(0,0,0,.12); }
.ol-video{ width:100%; height:auto; display:block; }
.ol-video-wrap::after{
  content:""; position:absolute; inset:auto 0 0 0; height:120px;
  background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.15) 60%, rgba(0,0,0,.3) 100%);
  pointer-events:none;
}
.ol-play{
  position:absolute; left:24px; bottom:24px; width:64px; height:64px;
  border:0; border-radius:50%;
  background:rgba(255,255,255,.95);
  box-shadow:0 8px 20px rgba(0,0,0,.2);
  cursor:pointer;
}
.ol-play::before{
  content:""; display:block; width:0; height:0; margin:auto;
  border-left:18px solid #1c3a6b; border-top:12px solid transparent; border-bottom:12px solid transparent;
  transform:translateX(4px);
}

/* ======= Cards de producto ======= */
.ol-card{
  background:#fff; border-radius:16px; box-shadow:0 6px 18px rgba(0,0,0,.06);
  overflow:hidden; height:100%; display:flex; flex-direction:column;
}
.ol-card__img{ display:block; aspect-ratio:1/1;}
.ol-card__img img{ width:100%; height:100%; object-fit:contain; }
.ol-card__body{ padding:12px; }

/* ======= Swiper ======= */
.swiper-button-prev, .swiper-button-next{ color:#0b4f9c; }
.swiper-pagination-bullet-active{ background:#0b4f9c; }

/* ======= Formulario ======= */
.ol-form{ margin:48px auto; }
.ol-contact .form-control{ margin-bottom:12px; }
.ol-btn-submit{ margin-top:8px; }

/* Utilidades */
.ol-empty{ color:#888; }
.mt-ol{ margin:10% 0 0; padding:35px; }
.mt-pro{ margin:10% 0 0; }
.ol-logo {
    width: 10%;
}
/* ======= Responsivo ======= */

/* Tablet ≤ 992px */
@media (max-width:992px){
  .ol-hero__claim{ margin-top:24px; }
  .ol-toggle [class^="ol-banner-"]{
    padding:16px 48px 64px 16px;
    min-height:88px; /* mantiene visible la barra */
  }
  
}

/* Móvil ≤ 768px */
@media (max-width:768px){
  .ol-title{ font-size:28px; }
  .ol-logo img{ max-width:180px; }
  .ol-logo-footer img{ max-width:180px; }

  /* Cambia a imágenes mobile y ajusta relleno */
  .ol-banner-selva     { background-image:url('../img/bg_header_selva_mobile.png'); }
  .ol-banner-casaocho  { background-image:url('../img/bg_header_casaocho_mobile.png'); }
  .ol-banner-barbaroja { background-image:url('../img/bg_header_barbaroja_mobile.png'); }

  .ol-toggle [class^="ol-banner-"]{
    padding:14px 44px 56px 14px;
    min-height:76px; /* altura mínima en teléfonos */
  }
  .ol-logo {
    display: flex;
    justify-content: center;
    width: 50%;
  }
  .ol-logo-footer {
    display: flex;
    justify-content: center;
  }
  .ol-title{
    color:#87b6ee;
    font-weight:900;
    line-height:1.1;
    font-size:30px !important;
    text-align:center;
  }
  .ol-heading{
    text-align:center;
    font-weight:900;
    font-size:40px !important;
    color:#013379;
    margin:32px 0 16px;
  }
  .ol-heading-marcas{
    text-align:center;
    font-weight:900;
    font-size:30px !important;
    color:#013379;
    margin:32px 0 16px;
  }
}


/* ===== Pilares / Iconos ===== */
.ol-pillars{
  margin: 48px auto 24px;
}
.ol-pillar{
  text-align: center;
  padding: 8px 18px 24px;
}
.ol-pillar__icon{
  color: #0b3c78;           /* azul de la marca */
  margin-bottom: 14px;
}
.ol-pillar__icon svg,
.ol-pillar__icon img{
  width: 64px;
  height: 64px;
}
.ol-pillar__title{
  font-weight: 900;
  color: #0b3c78;
  font-size: 22px;
  line-height: 1.2;
  min-height: 2.6em;        /* ayuda a alinear alturas en desktop */
}
.ol-pillar__rule{
  display: block;
  width: 180px;
  height: 3px;
  background: #0b3c78;
  opacity: .35;
  border-radius: 2px;
  margin: 10px auto 14px;
}
.ol-pillar__text{
  color: #1f3f6b;
  line-height: 1.55;
  max-width: 320px;
  margin: 0 auto;
  font-weight: 600;
}

/* Responsive */
@media (max-width: 991.98px){
  .ol-pillar{ padding: 8px 10px 22px; }
  .ol-pillar__title{ font-size: 20px; }
  .ol-h3--big{ font-size:2.1rem; font-weight:900; color:#0b3c78; margin-bottom:10px; }
}
@media (max-width: 575.98px){
  .ol-pillar__icon svg,
  .ol-pillar__icon img{ width: 56px; height: 56px; }
  .ol-pillar__title{ font-size: 18px; }
  .ol-pillar__rule{ width: 140px; }
}

/* ===== Formulario Origen Local (estilo de la captura) ===== */

/* Contenedor acciones: alinear botón a la derecha */
.ol-contact__actions{
  text-align: right;
  margin-top: 12px;
}

/* Borde, radios y altura uniforme */
.ol-contact .form-control{
  border: 2px solid #134e93;              /* azul Cafam */
  border-radius: 10px;
  height: 56px;
  padding-left: 48px;                      /* espacio para el ícono */
  font-weight: 700;                        /* placeholder bold */
  color: #134e93;
  background-color: #fff;
}

/* Ícono (sobre) dentro del campo usando data-URI */
.ol-contact .form-control{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23134e93' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 22px 22px;
  background-position: 16px 50%;
}

/* Textarea con la misma altura visual que los inputs de la captura */
.ol-contact textarea.form-control{
  min-height: 56px;
  height: 56px;               /* si prefieres más alto, comenta esta línea */
  resize: none;
}

/* Placeholder azul y en bold */
.ol-contact .form-control::placeholder{
  color: #134e93;
  font-weight: 700;
  opacity: 1;
}

/* Focus limpio, sin glow */
.ol-contact .form-control:focus{
  outline: none;
  box-shadow: none;
  border-color: #0b3c78;      /* un poco más oscuro al foco */
}

/* Botón “Enviar datos” como en la captura */
.ol-btn-submit{
  background-color: #0b3c78;
  border-color: #0b3c78;
  border-radius: 14px;
  padding: 12px 24px;
  font-weight: bold !important;
  text-transform: capitalize !important;
}

/* Responsive: en móvil el botón a ancho completo */
@media (max-width: 576px){
  .ol-contact__actions{ text-align: center; }
  .ol-btn-submit{ width: 100%; }
}

/* ===== Newsletter / Suscripción ===== */
.ol-newsletter{
  margin: 36px auto 18px;
  text-align: center;
}
.ol-news__mark img{
  display: block;
  margin: 0 auto 8px;
  max-width: 120px;
  height: auto;
  opacity: .25;                 /* efecto “relieve” suave */
}
.ol-news__title{
  font-weight: 900;
  color: #013379;
  font-size: 20px;
  margin-bottom: 16px;
}

/* Fila con input + botón */
.ol-news__row{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  max-width: 920px;
  margin: 0 auto;
}


.ol-news__email::placeholder{
  color: #134e93;
  font-weight: 700;
  opacity: 1;
}
.ol-news__email:focus{
  outline: none;
  box-shadow: none;
  border-color: #0b3c78;
}

/* Botón con borde azul y radios, como en la maqueta */
.ol-news__btn{
  height: 54px;
  padding: 0 22px;
  border: 2px solid #134e93  !important;
  background: #fff !important;
  border-radius: 12px;
  font-weight: bold !important;
  text-transform: capitalize !important;
  color:#134e93 !important;
}

.ol-news__btn:hover,
.ol-news__btn:focus{
  background: #70a7ef !important;
  color: #fff !important;
  border-color: #134e93 !important;
}

/* Responsive: apilar en móviles y ocupar ancho completo */
@media (max-width: 576px){
  .ol-news__row{
    flex-direction: column;
    gap: 12px;
  }
  .ol-news__email,
  .ol-news__btn{
    width: 100%;
  }
  .ol-news__title{ font-size: 18px; }
  /* Input con borde, radios y ícono de sobre */
    .ol-news__email{
    max-width: 560px;
    height: 54px;
    border: 2px solid #134e93;
    border-radius: 12px;
    padding-left: 50px;           /* espacio para el ícono */
    font-weight: 700;
    color: #134e93;
    background-color: #fff;

    /* ícono de sobre (data-URI SVG) */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23134e93' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 22px 22px;
    background-position: 16px 50%;
    }
}

.ol-form .ol-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.ol-form .ol-row--end{justify-content:end;display:flex}
.ol-form input,.ol-form textarea{width:100%;border:1px solid #ccd3df;border-radius:10px;padding:12px}
.ol-form .ol-row { grid-template-columns: 1fr !important; }
.ol-form .ol-row--end { justify-content: stretch; }
/* Inputs con icono */
.ol-input-icon {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}
@media only screen and (min-width: 350px) and (max-width: 545px) {
    .input-icon {
        left: 1.25rem !important;
        top: 1rem;
    }
}
.ol-input-icon input,
.ol-input-icon textarea {
  width: 100%;
  padding-left: 42px; /* espacio para icono */
}
.input-icon {
  position: absolute;
  left: 1.25rem;
  top: 0.8rem !important;
  width: .875em;
  height: .875em;
  z-index: 4;
}

/* Estilo de iconos */
.input-icon {
  position: absolute;
  left: 14px;
  width: 18px;
  height: 18px;
  fill: #00327a;
  pointer-events: none; /* no bloquea el click */
}

/* Ajuste especial para textarea (icono arriba) */
.input-icon.top {
  top: 14px;
  align-self: flex-start;
}

/* Base visual de los campos */
.ol-contact .form-control{
  border: 2px solid #134e93;
  border-radius: 12px;
  font-weight: 700;
  color: #134e93;
  padding-left: 52px;                 /* espacio para el ícono */
  background-repeat: no-repeat;
  background-size: 22px 22px;
  background-position: 16px 50%;
}

/* Íconos por campo */
.ol-contact input[name="name"]{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23134e93'%3E%3Cpath d='M12 12c2.7 0 8 1.3 8 4v2H4v-2c0-2.7 5.3-4 8-4zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8z'/%3E%3C/svg%3E");
}
.ol-contact input[name="company"]{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23134e93'%3E%3Cpath d='M3 13h18V3H3v10zm0 8h6v-5H3v5zm12 0h6v-5h-6v5z'/%3E%3C/svg%3E");
}
.ol-contact input[name="phone"]{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23134e93'%3E%3Cpath d='M6.6 10.8c1.5 2.9 3.7 5.1 6.6 6.6l2.2-2.2c.3-.3.8-.4 1.2-.2 1.3.5 2.7.8 4.1.8.7 0 1.3.6 1.3 1.3v3.7c0 .7-.6 1.3-1.3 1.3C10.8 22.3 1.7 13.2 1.7 2.6c0-.7.6-1.3 1.3-1.3H6.7c.7 0 1.3.6 1.3 1.3 0 1.4.3 2.8.8 4.1.2.4.1.9-.2 1.2l-2.2 2.2z'/%3E%3C/svg%3E");
}
.ol-contact input[name="email"]{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23134e93' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E");
}
.ol-contact textarea[name="message"]{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23134e93'%3E%3Cpath d='M2 4v16l4-4h16V4H2z'/%3E%3C/svg%3E");
  background-position: 16px 16px;
  min-height: 110px;
  padding-top: 16px;
}

html { scroll-behavior: smooth; } /* scroll suave */

.ol-cta{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.9rem 1.6rem; border:2px solid #70a7ef !important; color:#70a7ef !important;
  border-radius:14px; font-weight:700; text-decoration:none;
  background:#fff;
  margin-top: 16px;
  text-transform: capitalize !important;
  background-color: #fff !important;
}
.ol-cta__chev{
  width:10px; height:10px; display:inline-block;
  border-right:2px solid currentColor; border-bottom:2px solid currentColor;
  transform:rotate(45deg); margin-left:.25rem;
  
}

/* ==== Micro-interacciones PRO (no cambian layout) ==== */
:root{
  --ol-ease: cubic-bezier(.22,.61,.36,1);
  --ol-dur: .35s;
}

/* CTA “Conócelas” */
.ol-cta{
  position: relative;
  overflow: hidden;
  box-shadow: 0 8px 18px rgba(19,78,147,.12), inset 0 0 0 1px rgba(255,255,255,.06);
  transition: transform var(--ol-dur) var(--ol-ease), box-shadow var(--ol-dur) var(--ol-ease), background-color .2s, color .2s;
  will-change: transform;
}
.ol-cta:hover{ transform: translateY(-2px); box-shadow: 0 12px 24px rgba(19,78,147,.16); }
.ol-cta:active{ transform: translateY(0); box-shadow: inset 0 3px 12px rgba(19,78,147,.22); }
/* ripple suave (activado por JS) */
.ol-cta::before{
  content:""; position:absolute; inset:-1px;
  background: radial-gradient(160px 160px at var(--ripple-x,50%) var(--ripple-y,50%), rgba(112,167,239,.25), transparent 45%);
  opacity:0; pointer-events:none; transition: opacity .45s var(--ol-ease);
}
.ol-cta.is-rippling::before{ opacity:1; }

/* Chevron del banner: “respira” cuando está cerrado */
.ol-section:not(.is-open) .ol-chevron{
  animation: ol-chevron 2.4s ease-in-out infinite;
}
@keyframes ol-chevron{
  0%,100%{ transform: translateY(-50%) rotate(45deg); }
  50%    { transform: translateY(calc(-50% + 2px)) rotate(45deg); }
}

/* Banners del acordeón: realce sutil */
.ol-toggle [class^="ol-banner-"]{
  transition: transform .35s var(--ol-ease), box-shadow .35s var(--ol-ease), filter .35s var(--ol-ease), background-position .8s var(--ol-ease);
  will-change: transform, filter;
  background-position: 50% center;
}
.ol-toggle:hover [class^="ol-banner-"]{
  transform: translateY(-2px);
  box-shadow: 0 16px 28px rgba(0,0,0,.12);
  filter: saturate(1.05) contrast(1.02);
  background-position: 49% center;
}

/* Cards de producto: levitar + zoom de imagen */
.ol-card{ transition: transform .28s var(--ol-ease), box-shadow .28s var(--ol-ease); }
.ol-card:hover{ transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,.12); }
.ol-card__img img{ transition: transform .35s var(--ol-ease), filter .35s var(--ol-ease); }
.ol-card:hover .ol-card__img img{ transform: scale(1.03); filter: saturate(1.04); }

/* Botones (agregar / enviar / newsletter) */
.btn-cafam, .ol-btn-submit, .ol-news__btn{
  transition: transform .2s var(--ol-ease), box-shadow .2s var(--ol-ease), background-color .2s, color .2s;
}
.btn-cafam:hover, .ol-btn-submit:hover, .ol-news__btn:hover{ transform: translateY(-1px); box-shadow: 0 10px 18px rgba(0,0,0,.12); }
.btn-cafam:active, .ol-btn-submit:active, .ol-news__btn:active{ transform: translateY(0); }

/* Inputs: foco con halo suave */
.ol-contact .form-control, .ol-news__email{
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
.ol-contact .form-control:focus, .ol-news__email:focus{
  box-shadow: 0 0 0 4px rgba(19,78,147,.12);
  transform: translateY(-1px);
}

/* Swiper: navegación más “viva” */
.swiper-button-prev, .swiper-button-next{
  transition: transform .2s ease, text-shadow .2s ease, color .2s ease;
  text-shadow: 0 6px 14px rgba(0,0,0,.12);
}
.swiper-button-prev:hover, .swiper-button-next:hover{ transform: translateY(-1px) scale(1.05); color:#0d56a7; }

/* Bullets activos un poco más grandes */
.swiper-pagination-bullet{ transition: transform .2s var(--ol-ease), background-color .2s; }
.swiper-pagination-bullet-active{ transform: scale(1.12); }

/* Aparición por scroll (reveal) */
.fx-reveal{ opacity:0; transform: translateY(14px); transition: opacity .6s var(--ol-ease), transform .6s var(--ol-ease); }
.fx-reveal.in{ opacity:1; transform:none; }

/* Respeto a usuarios con “reduce motion” */
@media (prefers-reduced-motion: reduce){
  *{ animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* ===== Video Card efecto teaser ===== */
.ol-vcard{ position:relative; border-radius:16px; overflow:hidden; box-shadow:0 10px 26px rgba(0,0,0,.12); isolation:isolate; }
.ol-vcard__video{ width:100%; display:block; filter:grayscale(100%) brightness(.92) contrast(1.05); transform:scale(1); transition:filter .45s ease, transform .45s ease; }
/* Degradado inferior teñido por --brand */
.ol-vcard::after{
  content:""; position:absolute; inset:auto 0 0 0; height:38%;
  background:linear-gradient(180deg, rgba(0,0,0,0) 0%,
              color-mix(in srgb, var(--brand, #6ea33a) 65%, transparent) 60%,
              var(--brand, #6ea33a) 100%);
  pointer-events:none; opacity:.98;
}
/* Marca/Texto del pie (opcional) */
.ol-vcard__brand{ position:absolute; left:0; right:0; bottom:16px; text-align:center; color:#fff; text-shadow:0 2px 6px rgba(0,0,0,.25); pointer-events:none; }
.ol-vcard__kicker{ display:block; letter-spacing:.45em; font-weight:900; font-size:.85rem; }
.ol-vcard__name{ display:block; font-weight:900; font-size:2.2rem; letter-spacing:.06em; text-transform:uppercase; }
/* Botón play */
.ol-vcard__play{
  position:absolute; left:50%; top:38%; transform:translate(-50%,-50%);
  width:92px; height:92px; border-radius:50%; border:0; background:rgba(255,255,255,.96);
  box-shadow:0 12px 26px rgba(0,0,0,.25); display:grid; place-items:center; cursor:pointer;
  transition:transform .3s ease, opacity .3s ease;
}
.ol-vcard__play::before{
  content:""; border-left:20px solid #1c3a6b; border-top:12px solid transparent; border-bottom:12px solid transparent; margin-left:4px;
}
/* Hover: leve zoom y color */
.ol-vcard:hover .ol-vcard__video{ filter:grayscale(0) brightness(1) contrast(1); transform:scale(1.01); }
/* Reproduciendo */
.ol-vcard.is-playing .ol-vcard__video{ filter:none; transform:none; }
.ol-vcard.is-playing .ol-vcard__play{ opacity:0; transform:translate(-50%,-50%) scale(.9); pointer-events:none; }

@media (max-width:576px){
  .ol-vcard__name{ font-size:1.8rem; }
  .ol-vcard__play{ width:78px; height:78px; }
}

/* ===== Carrusel nativo Origen Local ===== */
.ol-carousel{ position:relative; }
.ol-viewport{ overflow:hidden; }
.ol-track{
  display:flex;
  will-change: transform;
  transition: transform .35s ease;
}

/* 2 por vista SIEMPRE */
.ol-slide{ flex: 0 0 50%; padding: 0 6px; } /* gutter lateral */
@media (max-width: 576px){
  .ol-slide{ flex-basis: 50%; padding: 0 6px; }
}

/* Flechas redondas (match visual sitio) */
.ol-prev, .ol-next{
  --size: 30px;
  position:absolute; top:50%;
  width:var(--size); height:var(--size);
  transform: translateY(-50%);
  border:0; border-radius:50%;
  background:#1fb5a6; cursor:pointer;
  box-shadow:0 8px 18px rgba(0,0,0,.16);
  z-index:2;
  padding: 5px 7px;
}
.ol-prev{ left:8px; }
.ol-next{ right:8px; }
.ol-prev::after, .ol-next::after{
  content:""; display:block; width:8px; height:8px; margin:auto;
  border-top:3px solid #fff; border-right:3px solid #fff;
  transform: rotate(45deg);
}
.ol-prev::after{ transform: rotate(-135deg); }

/* Dots */
.ol-dots{ display:flex; gap:8px; justify-content:center; padding:10px 0; }
.ol-dots button{
  width:4px; height:4px; border-radius:50%; border:0;
  background:#cfd8e3; cursor:pointer;padding: 5px 5px;
}
.ol-dots button.is-active{ background:#2f6ae1; }

/* Evita que nada se corte si decides sacar flechas */
.ol-carousel{ overflow: visible; }


