/* ============================================================
   Australis — capa de motion (transiciones, microinteracciones,
   loading). Aditiva, cargada vía header.php. 2026-10-10 BH
   ============================================================ */
:root{ --az-red:#ef2f42; --az-red2:#c8212f; --az-dark:#0b171c; }

/* Transiciones suaves en interactivos */
a, .btn, .btn-normal, .btn-enviar, .btn-menu, .animate_cube, .item img,
.navbar-nav > li > a, input, textarea, select{
  transition: color .25s ease, background-color .25s ease, border-color .25s ease,
              box-shadow .3s ease, transform .35s cubic-bezier(.2,.6,.2,1), opacity .3s ease;
}

/* ---------- Scroll reveal (solo con JS) ---------- */
.has-js .az-reveal{ opacity:0; transform:translateY(28px); filter:blur(6px);
  transition:opacity .8s ease, transform .85s cubic-bezier(.2,.65,.2,1), filter .8s ease; will-change:opacity,transform; }
.has-js .az-reveal.az-in{ opacity:1; transform:none; filter:none; }

/* ---------- Nav: subrayado rojo animado ---------- */
.navbar-nav > li > a{ position:relative; }
.navbar-nav > li > a::after{
  content:""; position:absolute; left:15px; right:15px; bottom:10px; height:2px;
  background:var(--az-red); transform:scaleX(0); transform-origin:left; transition:transform .3s ease;
}
.navbar-nav > li > a:hover::after{ transform:scaleX(1); }

/* ---------- Botones: relleno + lift ---------- */
.btn-normal, .btn-enviar{ position:relative; overflow:hidden; z-index:0; }
.btn-normal::before, .btn-enviar::before{
  content:""; position:absolute; inset:0; z-index:-1; background:var(--az-dark);
  transform:translateX(-101%); transition:transform .4s cubic-bezier(.3,.7,.2,1);
}
.btn-normal:hover::before, .btn-enviar:hover::before{ transform:translateX(0); }
.btn-normal:hover, .btn-enviar:hover{ color:#fff !important; transform:translateY(-3px); box-shadow:0 12px 26px rgba(11,23,28,.28); }
.btn-normal:active, .btn-enviar:active{ transform:translateY(-1px); }
.btn-menu{ transition:color .25s ease, background-color .25s ease; }

/* ---------- Tarjetas de proyecto (enventa) ---------- */
.animate_cube{ overflow:hidden; border-radius:6px; transition:transform .35s ease, box-shadow .35s ease; }
.animate_cube:hover{ transform:translateY(-6px); box-shadow:0 18px 40px rgba(0,0,0,.14); }
.animate_cube img{ transition:transform .6s cubic-bezier(.2,.6,.2,1); will-change:transform; }
.animate_cube:hover img{ transform:scale(1.05); }

/* ---------- Inputs ---------- */
input:focus, textarea:focus, select:focus{
  outline:none; border-color:var(--az-red) !important; box-shadow:0 0 0 3px rgba(239,47,66,.15);
}

/* ---------- Preloader (.se-pre-con) con logo + barra ---------- */
.se-pre-con{
  position:fixed; inset:0; z-index:99999; background:#fff;
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:22px;
  transition:opacity .6s ease, visibility .6s ease;
}
.se-pre-con.az-hide{ opacity:0; visibility:hidden; }
.se-pre-con img{ height:48px; width:auto; animation:azPulse 1.5s ease-in-out infinite; }
.se-pre-con .az-bar{ position:relative; width:150px; height:3px; border-radius:2px; background:rgba(239,47,66,.18); overflow:hidden; }
.se-pre-con .az-bar::after{
  content:""; position:absolute; top:0; left:-45%; height:100%; width:45%;
  background:linear-gradient(90deg,var(--az-red),var(--az-red2)); animation:azBar 1.05s ease-in-out infinite;
}
@keyframes azPulse{ 0%,100%{opacity:.78;transform:scale(.98)} 50%{opacity:1;transform:scale(1.03)} }
@keyframes azBar{ 0%{left:-45%} 100%{left:100%} }

/* ============ Enventa: hover de tarjeta mejorado ============ */
.hover_proy{ overflow:hidden; }
.hover_proy .img-proy{ transition: transform .7s cubic-bezier(.2,.6,.2,1), filter .5s ease; }
.hover_proy:hover .img-proy{ transform: scale(1.09); filter: brightness(.92); }
/* la 2da imagen entra con fade + zoom (en vez del pop scale(0)->(1)) */
.img-proy2{ transform: scale(1.1) !important; opacity:0 !important;
  transition: opacity .5s ease, transform .7s cubic-bezier(.2,.6,.2,1) !important; }
.hover_proy:hover .img-proy2{ transform: scale(1) !important; opacity:1 !important; }
.img-proy2::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(11,23,28,.05) 35%, rgba(11,23,28,.6)); }
/* "VER PROYECTO" convertido en pill rojo que sube */
.img-proy2 span{
  left:50% !important; right:auto !important; top:42% !important; bottom:auto !important;
  width:auto !important; height:auto !important; display:inline-block !important;
  padding:12px 24px !important; background:var(--az-red); border-radius:40px;
  font-size:13px !important; font-weight:700; letter-spacing:1.2px; text-transform:uppercase;
  white-space:nowrap; line-height:1 !important; box-shadow:0 12px 26px rgba(239,47,66,.5);
  opacity:0; transform:translate(-50%,16px) !important;
  transition:opacity .4s ease .05s, transform .5s cubic-bezier(.2,.6,.2,1) .05s;
}
.hover_proy:hover .img-proy2 span{ opacity:1; transform:translate(-50%,0) !important; }
.img-proy2 span::after{ content:" \2192"; }

/* ============ Home slider: Ken Burns + entrada del logo ============ */
.owl-carousel .item{ overflow:hidden; position:relative; }
.owl-carousel .owl-item.active .item > img{ animation: azKen 8s ease-out both; }
@keyframes azKen{ from{transform:scale(1.001)} to{transform:scale(1.09)} }
.owl-carousel .owl-item.active .txt-slider img{ animation: azLogoIn 1s cubic-bezier(.2,.65,.2,1) both; }
.owl-carousel .owl-item.active .txt-slider a > div{ animation: azUp 1s cubic-bezier(.2,.65,.2,1) .2s both; }
@keyframes azLogoIn{ 0%{opacity:0; transform:translateY(18px) scale(.92)} 100%{opacity:1; transform:none} }
@keyframes azUp{ 0%{opacity:0; transform:translateY(14px)} 100%{opacity:1; transform:none} }

/* ============ Postventa: botones .div-rojo-btn con microinteraccion ============ */
.div-rojo-btn{ position:relative; overflow:hidden; z-index:0;
  transition:transform .25s ease, box-shadow .3s ease, letter-spacing .25s ease, color .25s ease; }
.div-rojo-btn::before{ content:""; position:absolute; inset:0; z-index:-1; background:var(--az-dark);
  transform:translateX(-101%); transition:transform .4s cubic-bezier(.3,.7,.2,1); }
.div-rojo-btn:hover::before{ transform:translateX(0); }
.div-rojo-btn:hover{ transform:translateY(-3px); box-shadow:0 12px 26px rgba(11,23,28,.3); letter-spacing:.5px; color:#fff; }
.div-rojo-btn::after{ content:"\2192"; display:inline-block; max-width:0; opacity:0; overflow:hidden; vertical-align:middle;
  transition:max-width .35s ease, opacity .35s ease, margin-left .35s ease; }
.div-rojo-btn:hover::after{ max-width:1.4em; opacity:1; margin-left:.45em; }

/* ============ Footer rediseñado (.az-footer) ============ */
.az-footer{ background:var(--az-dark); color:#cfd6da; position:relative; }
.az-footer-top{ padding:50px 60px 28px; }
.az-foot-col{ margin-bottom:22px; }
.az-foot-logo{ height:46px; width:auto; filter:brightness(0) invert(1); margin-bottom:16px; }
.az-foot-tag{ font-size:14px; color:#9aa6ac; line-height:1.6; max-width:260px; }
.az-foot-title{ color:#fff; font-size:13px; letter-spacing:2px; text-transform:uppercase; margin:0 0 16px; font-weight:700; }
.az-foot-title::after{ content:""; display:block; width:34px; height:3px; background:var(--az-red); border-radius:2px; margin-top:9px; }
.az-footer p{ font-size:14px; color:#9aa6ac; margin:0 0 10px; }
.az-footer a{ color:#cfd6da; text-decoration:none; transition:color .25s ease; }
.az-footer a:hover{ color:var(--az-red); }
.az-social{ display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:50%;
  border:1px solid rgba(255,255,255,.22); color:#fff !important; margin-bottom:16px;
  transition:transform .3s ease, background-color .3s ease, border-color .3s ease; }
.az-social:hover{ background:var(--az-red); border-color:var(--az-red); transform:translateY(-4px); }
.az-social svg{ width:18px; height:18px; fill:currentColor; }
.az-foot-links{ display:flex; flex-direction:column; gap:9px; }
.az-foot-links a{ font-size:14px; }
.az-footer-bottom{ border-top:1px solid rgba(255,255,255,.08); padding:16px 60px; }
.az-footer-bottom .container, .az-footer-bottom .container-fluid{ display:block; text-align:center;
  font-size:12.5px; color:#7e8a90; width:100%; }
.az-footer-bottom a{ color:#9aa6ac; }
/* sello BH: el id_div=footeralterra ahora es TODO el footer (position:relative);
   el estilo por defecto (bh-style) lo ancla a la esquina inferior derecha. Solo lo nudgeamos. */
.az-footer .cont-bh{ left:auto !important; right:18px !important; bottom:14px !important; top:auto !important; transform:none !important; margin:0 !important; }
/* footer responsive */
@media (max-width:767px){
  .az-footer-top{ padding:40px 20px 18px; }
  .az-footer-bottom{ padding:16px 20px; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation:none !important; transition:none !important; }
  .has-js .az-reveal{ opacity:1 !important; transform:none !important; filter:none !important; }
}
