/*
 * layout.css — Safe Seguros
 * Estructura: topbar, header, hero, secciones, footer.
 */

.container{max-width:var(--container-max);margin:0 auto;padding:0 20px}

/* Topbar — navy con acentos naranja, serio y con contraste */
.topbar{background:linear-gradient(90deg,var(--color-navy-dark) 0%,var(--color-navy) 100%);color:#d7dde6;font-size:.85rem;position:relative}
.topbar::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent 0%,var(--color-primary) 50%,transparent 100%)}
.topbar__inner{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;gap:16px;flex-wrap:wrap}
.topbar a{color:#d7dde6;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:color .2s}
.topbar a:hover{color:#fff}

.topbar__social{display:flex;gap:8px}
.topbar__social a{width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.06);color:#fff;font-weight:700;font-size:.78rem;display:inline-flex;align-items:center;justify-content:center;transition:all .25s ease;border:1px solid rgba(255,255,255,.08)}
.topbar__social a:hover{background:var(--color-primary);border-color:var(--color-primary);transform:translateY(-2px);color:#fff}

.topbar__contacts{display:flex;flex-wrap:wrap;gap:0;align-items:center}
.topbar__contacts a{padding:0 18px;border-right:1px solid rgba(255,255,255,.1);line-height:1}
.topbar__contacts a:first-child{border-left:1px solid rgba(255,255,255,.1)}
.topbar__contacts a .tb-ic{width:22px;height:22px;border-radius:50%;background:var(--color-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;flex-shrink:0}

/* Site header (blanco) */
.site-header{background:#fff;position:relative;z-index:40;padding:18px 0}
.site-header__inner{display:flex;align-items:center;gap:32px;padding:0 20px;max-width:var(--container-max);margin:0 auto}
.brand{flex-shrink:0}
.brand img{height:56px;width:auto;display:block}
.site-header__info{display:flex;gap:28px;margin-left:auto;align-items:center}
.info-pill{display:flex;align-items:center;gap:12px;color:var(--color-navy)}
.info-pill__icon{width:52px;height:52px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;box-shadow:0 4px 12px rgba(245,130,32,.3)}
.info-pill__text{display:flex;flex-direction:column;line-height:1.2;font-size:.95rem}
.info-pill__text strong{color:var(--color-navy);font-weight:700;font-size:1rem}
.info-pill__text span{color:var(--color-text-muted);font-size:.78rem}
.site-header__cta{flex-shrink:0;margin-left:8px}

/* Toggle del menú móvil (oculto fuera de mobile) */
.mob-nav-toggle{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.mob-nav-btn{display:none;margin-left:auto;width:44px;height:44px;border-radius:8px;align-items:center;justify-content:center;cursor:pointer;background:transparent;color:var(--color-navy);transition:background .2s}
.mob-nav-btn:hover{background:rgba(14,44,75,.06)}
.mob-nav-btn__bars{display:inline-flex;flex-direction:column;gap:5px;align-items:center}
.mob-nav-btn__bars span{display:block;width:24px;height:2px;background:currentColor;border-radius:2px;transition:transform .25s ease, opacity .2s ease}
.mob-nav-toggle:checked ~ * .mob-nav-btn{color:var(--color-primary)}
.mob-nav-toggle:checked ~ * .mob-nav-btn__bars span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.mob-nav-toggle:checked ~ * .mob-nav-btn__bars span:nth-child(2){opacity:0}
.mob-nav-toggle:checked ~ * .mob-nav-btn__bars span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Nav — barra naranja ancha, flush a la derecha del container, pisa el hero */
.site-nav{position:relative;z-index:30;max-width:var(--container-max);margin:0 auto -40px;padding:0 20px}
.site-nav__inner{background:var(--color-primary);background-image:linear-gradient(90deg,var(--color-primary) 0%,#ff9035 100%);box-shadow:0 10px 30px rgba(14,44,75,.22);padding:20px 40px;display:flex;gap:40px;align-items:center;border-radius:4px;position:relative;overflow:hidden}
.site-nav__inner::before{content:"";position:absolute;right:-40px;top:-40px;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.05);pointer-events:none}
.site-nav__inner::after{content:"";position:absolute;right:60px;bottom:-80px;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.04);pointer-events:none}
.site-nav__links{display:flex;gap:40px;align-items:center;flex:1}
.site-nav a.nav-link{color:#fff;text-decoration:none;font-weight:700;font-size:.92rem;text-transform:uppercase;letter-spacing:.08em;padding:6px 0;position:relative;transition:opacity .2s}
.site-nav a.nav-link::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:#fff;transform:scaleX(0);transition:transform .25s ease;transform-origin:left}
.site-nav a.nav-link:hover::after,.site-nav a.nav-link.is-active::after{transform:scaleX(1)}
.site-nav a.nav-link:hover{opacity:.92}

/* Meta + CTA en la parte derecha de la barra */
.site-nav__meta{display:flex;align-items:center;gap:22px;color:#fff;font-size:.82rem;letter-spacing:.02em;position:relative;z-index:1}
.site-nav__hours{display:flex;align-items:center;gap:10px;padding-right:22px;border-right:1px solid rgba(255,255,255,.3);line-height:1.25}
.site-nav__hours-ic{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.15);display:inline-flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.site-nav__hours-txt{display:flex;flex-direction:column}
.site-nav__hours-txt strong{font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;opacity:.85}
.site-nav__hours-txt span{font-weight:600;font-size:.88rem}
.site-nav__wa{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--color-primary);padding:10px 18px;border-radius:4px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.82rem;text-decoration:none;transition:all .2s;box-shadow:0 4px 14px rgba(0,0,0,.08)}
.site-nav__wa:hover{background:var(--color-navy);color:#fff;transform:translateY(-1px)}
.site-nav__wa-ic{font-size:1rem}

/* Hero — full bleed con slider */
.hero{position:relative;min-height:82vh;overflow:hidden;color:#fff;background:#0e2c4b;padding-top:40px}
.hero__slides{position:absolute;inset:0}
.hero__slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.08);transition:opacity 1.2s ease,transform 6s ease}
.hero__slide.is-active{opacity:1;transform:scale(1)}
.hero__slide::before{content:"";position:absolute;inset:0;background:linear-gradient(95deg,rgba(245,130,32,.92) 0%,rgba(245,130,32,.55) 38%,rgba(245,130,32,0) 65%)}
.hero__inner{position:relative;z-index:2;max-width:var(--container-max);margin:0 auto;padding:140px 20px 120px;min-height:82vh;display:flex;flex-direction:column;justify-content:center}
.hero__copy{max-width:640px}
.hero__kicker{display:inline-flex;align-items:center;gap:16px;text-transform:uppercase;letter-spacing:.22em;font-size:.95rem;margin:0 0 20px;font-weight:700}
.hero__kicker::after{content:"";width:60px;height:2px;background:#fff;display:block}
.hero__title{color:#fff;font-size:4rem;line-height:1.02;letter-spacing:-.01em;margin:0 0 28px;font-weight:800;text-transform:uppercase}
.hero__lead{font-size:1.1rem;max-width:520px;margin:0 0 32px;padding-left:18px;border-left:3px solid #fff;line-height:1.5}
.hero__slide.is-active .hero__kicker,.hero__slide.is-active .hero__title,.hero__slide.is-active .hero__lead,.hero__slide.is-active .hero__cta{animation:heroIn .9s cubic-bezier(.2,.8,.2,1) both}
.hero__slide.is-active .hero__title{animation-delay:.1s}
.hero__slide.is-active .hero__lead{animation-delay:.25s}
.hero__slide.is-active .hero__cta{animation-delay:.4s}
@keyframes heroIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}

/* Dots del slider */
.hero__dots{position:absolute;left:30px;top:50%;transform:translateY(-50%);z-index:3;display:flex;flex-direction:column;gap:14px}
.hero__dot{width:12px;height:12px;border-radius:50%;border:2px solid #fff;background:transparent;cursor:pointer;padding:0;transition:all .2s}
.hero__dot.is-active{background:#fff;transform:scale(1.2)}

/* Sections */
.section{padding:70px 0}
.section--alt{background:var(--color-bg-alt)}
.section__title{text-align:center;font-size:2rem;text-transform:uppercase;margin:0 0 12px;position:relative}
.section__title span{display:inline-block;padding-bottom:14px;position:relative}
.section__title span::after{content:"";position:absolute;left:50%;bottom:0;width:60px;height:3px;background:var(--color-primary);transform:translateX(-50%)}
.section__title--left{text-align:left}
.section__title--left span::after{left:0;transform:none}
.section__lead{text-align:center;max-width:720px;margin:0 auto 40px;color:var(--color-text-muted);font-size:1.05rem}

/* CTA band */
.cta-band{background:var(--color-primary);color:#fff;padding:36px 0}
.cta-band__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.cta-band h3{color:#fff;margin:0 0 6px;font-size:1.5rem;text-transform:uppercase}
.cta-band p{margin:0;opacity:.95}
.cta-band__actions{display:flex;gap:12px;flex-wrap:wrap}

/* Quote */
.quote{background:var(--color-navy)}
.quote *{color:#fff}
.quote .section__title{color:#fff}
.quote__inner{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.quote__art img{border-radius:8px}

/* Partners — carrusel infinito */
.partners{padding:32px 0 36px;background:#fff;border-top:1px solid var(--color-border);overflow:hidden}
.partners h3{text-align:center;color:var(--color-text-muted);font-size:.9rem;letter-spacing:.2em;text-transform:uppercase;margin:0 0 18px;font-weight:700}
.partners__marquee{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%)}
.partners__track{display:flex;gap:64px;align-items:center;width:max-content;animation:partnersScroll 40s linear infinite}
.partners__marquee:hover .partners__track{animation-play-state:paused}
.partners__track img,.partners__track a{height:220px;width:auto;max-width:380px;flex-shrink:0;opacity:.95;transition:transform .3s ease, opacity .3s ease}
.partners__track img{object-fit:contain;filter:none}
.partners__track a{display:flex;align-items:center;justify-content:center}
.partners__track a img{height:100%;width:auto;max-width:100%;opacity:1;transition:none}
.partners__track img:hover,.partners__track a:hover{opacity:1;transform:scale(1.06)}
@keyframes partnersScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:900px){.partners{padding:26px 0 28px}.partners__track img,.partners__track a{height:150px;max-width:260px}.partners__track{gap:48px}}
@media(max-width:600px){.partners__track img,.partners__track a{height:110px;max-width:200px}.partners__track{gap:36px}}

/* Footer */
.site-footer{background:var(--color-navy-dark);color:#b8c2d0;padding:60px 0 0;margin-top:0;border:0}
.site-footer__grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;padding-bottom:40px}
.site-footer h4{color:#fff;text-transform:uppercase;font-size:1rem;letter-spacing:.08em;margin:0 0 18px;padding-bottom:10px;border-bottom:2px solid var(--color-primary);display:inline-block}
.site-footer a{color:#b8c2d0;text-decoration:none}
.site-footer a:hover{color:var(--color-primary)}
.site-footer ul li{padding:4px 0}
.site-footer__logo{height:70px;width:auto;background:#fff;padding:8px;border-radius:4px;margin-bottom:14px}
.site-footer__bottom{background:#071627;padding:16px 0;color:#8895a8;font-size:.85rem;text-align:center}

/* Scroll reveal */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal,.reveal.is-visible{opacity:1;transform:none;transition:none}
  .hero__slide{transition:opacity .3s ease}
  .hero__slide.is-active .hero__kicker,.hero__slide.is-active .hero__title,.hero__slide.is-active .hero__lead,.hero__slide.is-active .hero__cta{animation:none}
}

/* === Tablet/Móvil: cabecera compacta + menú hamburguesa === */
@media (max-width:900px){
  .topbar__inner{padding:8px 14px;gap:8px;flex-wrap:nowrap;justify-content:space-between}
  .topbar__social{gap:6px}
  .topbar__social a{width:26px;height:26px}
  .topbar__contacts{flex-wrap:nowrap;gap:0;font-size:.82rem;justify-content:flex-end}
  .topbar__contacts a{padding:0 10px;border:none !important;gap:6px}
  .topbar__contacts a .tb-ic{width:18px;height:18px}
  .topbar__contact-extra{display:none}

  .site-header{padding:10px 0}
  .site-header__inner{flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;padding:0 14px}
  .brand{margin-bottom:0}
  .brand img{height:46px}
  .site-header__info{display:none}
  .site-header__cta{display:none}
  .mob-nav-btn{display:inline-flex}

  /* Nav como menú desplegable controlado por el toggle */
  .site-nav{display:block;margin:0;padding:0;max-height:0;overflow:hidden;transition:max-height .35s ease}
  .mob-nav-toggle:checked ~ .site-nav{max-height:520px}
  .site-nav__inner{flex-direction:column;align-items:stretch;padding:14px 18px;gap:14px;border-radius:0;background-image:linear-gradient(180deg,var(--color-primary) 0%,#ff9035 100%);flex-wrap:nowrap;justify-content:flex-start}
  .site-nav__inner::before,.site-nav__inner::after{display:none}
  .site-nav__links{flex-direction:column;align-items:stretch;gap:6px;width:100%}
  .site-nav a.nav-link{padding:10px 4px;font-size:.95rem}
  .site-nav a.nav-link::after{display:none}
  .nav-link--has-sub .nav-sub{position:static;background:rgba(255,255,255,.08);box-shadow:none;border-radius:6px;margin-top:6px;padding:6px 0;display:block;opacity:1;visibility:visible;transform:none}
  .nav-link--has-sub .nav-sub li a{color:#fff;padding:8px 14px}
  .site-nav__meta{flex-direction:column;align-items:stretch;gap:10px;width:100%;padding-top:10px;border-top:1px solid rgba(255,255,255,.18)}
  .site-nav__hours{padding-right:0;border-right:0;justify-content:flex-start}
  .site-nav__wa{justify-content:center}

  .hero{min-height:auto}
  .hero__inner{padding:40px 20px 60px;min-height:auto}
  .hero__title{font-size:2.2rem}
  .hero__dots{left:14px}
  .hero__inner,.quote__inner,.site-footer__grid{grid-template-columns:1fr}
  .partners__grid{grid-template-columns:repeat(3,1fr)}
  .section{padding:48px 0}
}

@media (max-width:520px){
  .topbar__contacts a:nth-child(2){display:none}
  .topbar__contacts a{font-size:.78rem;padding:0 8px}
  .brand img{height:42px}
}
