@charset "UTF-8";

/* =========================================================
   MENÚ GLOBAL RETIRO
   Navegación institucional · estado normal y compacto
========================================================= */
.retiro-menu,
.retiro-menu .navbar {
  background: #07111f !important;
}

.retiro-menu .navbar {
  min-height: 82px !important;
  border-bottom: 1px solid rgba(199, 140, 49, .30) !important;
  box-shadow: 0 9px 24px rgba(2, 9, 20, .18) !important;
  transition:
    min-height .28s cubic-bezier(.22, 1, .36, 1),
    box-shadow .24s ease,
    border-color .24s ease !important;
}

.retiro-menu .navbar .container {
  width: min(1600px, calc(100% - clamp(36px, 4vw, 76px))) !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: clamp(1.1rem, 2vw, 2.4rem) !important;
}

.retiro-menu .navbar-brand {
  min-height: 82px !important;
  padding: .34rem 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  flex: 0 0 auto !important;
  transition:
    min-height .28s cubic-bezier(.22, 1, .36, 1),
    padding .24s cubic-bezier(.22, 1, .36, 1) !important;
}

.retiro-brand {
  display: flex;
  align-items: center;
  gap: .78rem;
  min-width: 320px;
  color: #fff !important;
  text-decoration: none !important;
}

.retiro-brand-logo {
  width: 50px;
  height: 50px;
  flex: 0 0 50px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(199, 140, 49, .68);
  background: #030914;
  overflow: hidden;
}

.retiro-brand-logo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.retiro-brand-text {
  display: flex;
  flex-direction: column;
  line-height: 1.05;
}

.retiro-brand-text strong {
  font-family: var(--retiro-serif, "EB Garamond", serif);
  font-size: 1.13rem;
  letter-spacing: .05em;
  text-transform: uppercase;
  font-weight: 700;
  color: #fff;
}

.retiro-brand-text span {
  font-family: var(--retiro-sans, "Segoe UI", sans-serif);
  font-size: .71rem;
  color: rgba(244, 234, 219, .70);
  letter-spacing: .115em;
  text-transform: uppercase;
  margin-top: .25rem;
}

.retiro-menu .navbar-collapse {
  justify-content: flex-end !important;
  flex-grow: 1 !important;
  background: transparent !important;
}

.retiro-menu .navbar-nav {
  width: auto !important;
  justify-content: flex-end !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  column-gap: clamp(.62rem, .82vw, 1.02rem) !important;
  row-gap: 0 !important;
}

.retiro-menu .retiro-nav-link {
  position: relative;
  margin: 0 !important;
  padding: .64rem .02rem .72rem !important;
  color: rgba(255, 255, 255, .86) !important;
  font-family: var(--retiro-sans, "Segoe UI", sans-serif) !important;
  font-size: clamp(.74rem, .69rem + .08vw, .82rem) !important;
  font-weight: 720 !important;
  letter-spacing: .025em !important;
  line-height: 1.05 !important;
  white-space: nowrap !important;
  background: transparent !important;
  transform: translateY(0);
  text-shadow: none;
  transition:
    color .20s ease,
    transform .22s cubic-bezier(.22, 1, .36, 1),
    text-shadow .20s ease,
    font-size .24s cubic-bezier(.22, 1, .36, 1),
    padding .24s cubic-bezier(.22, 1, .36, 1) !important;
}

/* Línea ornamental inferior */
.retiro-menu .retiro-nav-link::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: .25rem;
  width: 46px;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(199, 140, 49, .86) 22%, rgba(231, 191, 120, 1) 50%, rgba(199, 140, 49, .86) 78%, transparent 100%);
  box-shadow: 0 0 9px rgba(199, 140, 49, .24);
  opacity: 0;
  transform: translateX(-50%) scaleX(.30);
  transform-origin: center;
  transition:
    opacity .18s ease,
    transform .24s cubic-bezier(.16, 1, .3, 1),
    bottom .24s cubic-bezier(.22, 1, .36, 1),
    width .24s cubic-bezier(.22, 1, .36, 1);
}

.retiro-menu .retiro-nav-link:hover,
.retiro-menu .retiro-nav-link:focus-visible,
.retiro-menu .retiro-nav-link[aria-current="page"] {
  color: #e7bf78 !important;
  background: transparent !important;
  text-shadow: 0 0 13px rgba(199, 140, 49, .13);
}

.retiro-menu .retiro-nav-link:hover::before,
.retiro-menu .retiro-nav-link:focus-visible::before,
.retiro-menu .retiro-nav-link[aria-current="page"]::before {
  opacity: 1;
  transform: translateX(-50%) scaleX(1);
}

@media (hover: hover) and (pointer: fine) {
  .retiro-menu .retiro-nav-link:hover,
  .retiro-menu .retiro-nav-link:focus-visible {
    transform: translateY(-2px);
  }
}

/* Estado compacto existente: navbar-dropdown.js agrega .navbar-short al hacer scroll */
.retiro-menu .navbar.navbar-short {
  min-height: 64px !important;
  box-shadow: 0 11px 30px rgba(2, 9, 20, .30) !important;
  border-bottom-color: rgba(199, 140, 49, .36) !important;
}

.retiro-menu .navbar.navbar-short .navbar-brand {
  min-height: 64px !important;
  padding: .18rem 0 !important;
}

.retiro-menu .navbar.navbar-short .retiro-nav-link {
  font-size: .72rem !important;
  padding-top: .48rem !important;
  padding-bottom: .62rem !important;
}

.retiro-menu .navbar.navbar-short .retiro-nav-link::before {
  width: 40px;
  bottom: .19rem;
}

.retiro-menu .navbar-toggler {
  border: 1px solid rgba(199, 140, 49, .48) !important;
  border-radius: 8px !important;
  padding: .42rem !important;
  background: transparent !important;
}

.retiro-menu .hamburger span {
  background: #fff !important;
}

/* =========================================================
   VOLVER ARRIBA · RETIRO
   Reutiliza el comportamiento suave ya existente en global.js
========================================================= */
#scrollToTop.mbr-arrow-up {
  right: clamp(22px, 2.4vw, 42px) !important;
  left: auto !important;
  bottom: clamp(20px, 2.2vw, 34px) !important;
  text-align: right !important;
  color: #fff !important;
  font-size: 0 !important;
  z-index: 5000;
  animation: retiroBackToTopIn .24s cubic-bezier(.22, 1, .36, 1) both;
}

#scrollToTop.mbr-arrow-up > a {
  width: 52px !important;
  height: 52px !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid rgba(199, 140, 49, .68) !important;
  border-radius: 2px !important;
  background: rgba(7, 17, 31, .96) !important;
  color: #fff !important;
  box-shadow: 0 14px 30px rgba(2, 9, 20, .30) !important;
  transform: translateY(0);
  transition:
    transform .22s cubic-bezier(.22, 1, .36, 1),
    background-color .20s ease,
    border-color .20s ease,
    box-shadow .20s ease !important;
}

#scrollToTop.mbr-arrow-up > a:hover,
#scrollToTop.mbr-arrow-up > a:focus-visible {
  background: #c78c31 !important;
  border-color: #d8aa59 !important;
  box-shadow: 0 18px 34px rgba(2, 9, 20, .34), 0 0 16px rgba(199, 140, 49, .18) !important;
  transform: translateY(-3px);
}

#scrollToTop.mbr-arrow-up > a > i {
  width: 100%;
  height: 100%;
  display: block;
  position: relative;
  line-height: 1 !important;
}

#scrollToTop.mbr-arrow-up > a > i::before {
  content: "" !important;
  position: absolute !important;
  display: block !important;
  width: 10px !important;
  height: 10px !important;
  left: 50% !important;
  top: 54% !important;
  border-left: 1.8px solid currentColor !important;
  border-top: 1.8px solid currentColor !important;
  border-right: 0 !important;
  border-bottom: 0 !important;
  transform: translate(-50%, -50%) rotate(45deg) !important;
}

@keyframes retiroBackToTopIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1399.98px) {
  .retiro-menu .navbar .container {
    width: calc(100% - 42px) !important;
  }

  .retiro-brand {
    min-width: 270px;
  }

  .retiro-menu .navbar-nav {
    column-gap: .62rem !important;
  }

  .retiro-menu .retiro-nav-link {
    font-size: .73rem !important;
  }
}

@media (max-width: 1199.98px) {
  .retiro-menu .navbar .container {
    width: calc(100% - 30px) !important;
    gap: 1rem !important;
  }

  .retiro-brand {
    min-width: 238px;
    gap: .62rem;
  }

  .retiro-brand-logo {
    width: 44px;
    height: 44px;
    flex-basis: 44px;
  }

  .retiro-brand-text strong {
    font-size: .94rem;
  }

  .retiro-brand-text span {
    font-size: .61rem;
  }

  .retiro-menu .navbar-nav {
    column-gap: .45rem !important;
  }

  .retiro-menu .retiro-nav-link {
    font-size: .68rem !important;
    letter-spacing: .015em !important;
  }

  .retiro-menu .navbar.navbar-short .retiro-nav-link {
    font-size: .66rem !important;
  }
}

@media (max-width: 991.98px) {
  .retiro-menu .navbar {
    min-height: 72px !important;
  }

  .retiro-menu .navbar.navbar-short {
    min-height: 62px !important;
  }

  .retiro-menu .navbar .container {
    width: calc(100% - 28px) !important;
    row-gap: 0 !important;
  }

  /* Menú responsive: panel oscuro institucional, sin afectar escritorio. */
  .retiro-menu .navbar-toggler {
    align-self: center !important;
    width: 46px !important;
    height: 42px !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    border: 1px solid rgba(199, 140, 49, .62) !important;
    border-radius: 2px !important;
    background: rgba(3, 9, 20, .78) !important;
    box-shadow: inset 0 0 0 1px rgba(244, 234, 219, .025), 0 8px 18px rgba(0, 0, 0, .18) !important;
    transition: background-color .22s ease, border-color .22s ease, box-shadow .22s ease !important;
  }

  .retiro-menu .navbar-toggler:hover,
  .retiro-menu .navbar-toggler:focus-visible,
  .retiro-menu .navbar-toggler[aria-expanded="true"] {
    border-color: rgba(231, 191, 120, .94) !important;
    background: #0b1625 !important;
    box-shadow: 0 0 0 1px rgba(199, 140, 49, .14), 0 0 18px rgba(199, 140, 49, .13) !important;
    outline: 0 !important;
  }

  .retiro-menu .navbar-toggler .hamburger {
    position: relative !important;
    width: 22px !important;
    height: 16px !important;
    margin: 0 !important;
  }

  .retiro-menu .navbar-toggler .hamburger span {
    position: absolute !important;
    left: 0 !important;
    width: 22px !important;
    height: 1.5px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #e7bf78 !important;
    box-shadow: 0 0 8px rgba(199, 140, 49, .20) !important;
    opacity: 1 !important;
    transform-origin: center !important;
    transition: top .24s cubic-bezier(.22, 1, .36, 1), transform .24s cubic-bezier(.22, 1, .36, 1), opacity .16s ease !important;
  }

  .retiro-menu .navbar-toggler .hamburger span:nth-child(1) { top: 0 !important; }
  .retiro-menu .navbar-toggler .hamburger span:nth-child(2) { top: 7px !important; }
  .retiro-menu .navbar-toggler .hamburger span:nth-child(3) { top: 14px !important; }
  .retiro-menu .navbar-toggler .hamburger span:nth-child(4) { display: none !important; }

  .retiro-menu .navbar-toggler[aria-expanded="true"] .hamburger span:nth-child(1) {
    top: 7px !important;
    transform: rotate(45deg) !important;
  }

  .retiro-menu .navbar-toggler[aria-expanded="true"] .hamburger span:nth-child(2) {
    opacity: 0 !important;
    transform: scaleX(.25) !important;
  }

  .retiro-menu .navbar-toggler[aria-expanded="true"] .hamburger span:nth-child(3) {
    top: 7px !important;
    transform: rotate(-45deg) !important;
  }

  /* El panel visual vive en .navbar-nav para que Bootstrap cierre hasta altura 0 sin saltos. */
  .retiro-menu .navbar-collapse {
    background: transparent !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
  }

  .retiro-menu .navbar-collapse.collapsing {
    overflow: hidden !important;
    will-change: height;
    transition: height .34s cubic-bezier(.4, 0, .2, 1) !important;
  }

  .retiro-menu .navbar-nav {
    position: relative;
    width: 100% !important;
    margin: 0 !important;
    padding: .62rem 1rem .82rem !important;
    align-items: stretch !important;
    flex-wrap: nowrap !important;
    column-gap: 0 !important;
    background: #030914 !important;
    border: 1px solid rgba(199, 140, 49, .34) !important;
    border-radius: 2px !important;
    box-shadow: 0 18px 34px rgba(0, 0, 0, .28) !important;
  }

  .retiro-menu .navbar-nav::before {
    content: "";
    display: block;
    width: min(180px, 48%);
    height: 1px;
    margin: 0 auto .38rem;
    background: linear-gradient(90deg, transparent 0%, rgba(199, 140, 49, .44) 28%, rgba(231, 191, 120, .90) 50%, rgba(199, 140, 49, .44) 72%, transparent 100%);
    box-shadow: 0 0 9px rgba(199, 140, 49, .14);
  }

  .retiro-menu .retiro-nav-link,
  .retiro-menu .navbar.navbar-short .retiro-nav-link {
    width: 100% !important;
    margin: .03rem 0 !important;
    padding: .78rem .8rem .92rem !important;
    display: block !important;
    justify-content: center !important;
    font-size: .78rem !important;
    letter-spacing: .035em !important;
    line-height: 1.18 !important;
    text-align: center !important;
    transform: none !important;
  }

  .retiro-menu .retiro-nav-link::before {
    display: block;
    width: 52px;
    bottom: .42rem;
  }

  .retiro-menu .retiro-nav-link:hover,
  .retiro-menu .retiro-nav-link:focus-visible,
  .retiro-menu .retiro-nav-link[aria-current="page"] {
    color: #e7bf78 !important;
    text-shadow: 0 0 12px rgba(199, 140, 49, .18);
  }

  .retiro-menu .retiro-nav-link:hover::before,
  .retiro-menu .retiro-nav-link:focus-visible::before,
  .retiro-menu .retiro-nav-link[aria-current="page"]::before {
    opacity: 1;
    transform: translateX(-50%) scaleX(1);
  }

  .retiro-brand {
    min-width: 0;
  }

  .retiro-brand-text strong {
    font-size: .92rem;
  }

  .retiro-brand-text span {
    font-size: .61rem;
  }
}

@media (max-width: 575.98px) {
  .retiro-menu .navbar .container {
    width: calc(100% - 22px) !important;
  }

  .retiro-brand-logo,
  .retiro-menu .navbar.navbar-short .retiro-brand-logo {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
  }

  .retiro-brand-text strong,
  .retiro-menu .navbar.navbar-short .retiro-brand-text strong {
    font-size: .78rem;
    max-width: 205px;
  }

  .retiro-brand-text span,
  .retiro-menu .navbar.navbar-short .retiro-brand-text span {
    display: none;
  }

  .retiro-menu .navbar-toggler {
    width: 43px !important;
    height: 40px !important;
  }

  .retiro-menu .navbar-collapse .navbar-nav {
    padding-left: .75rem !important;
    padding-right: .75rem !important;
  }

  .retiro-menu .retiro-nav-link,
  .retiro-menu .navbar.navbar-short .retiro-nav-link {
    font-size: .75rem !important;
    padding-top: .74rem !important;
    padding-bottom: .88rem !important;
  }

  #scrollToTop.mbr-arrow-up {
    right: 16px !important;
    left: auto !important;
    bottom: 16px !important;
  }

  #scrollToTop.mbr-arrow-up > a {
    width: 48px !important;
    height: 48px !important;
  }
}

@media (hover: none), (pointer: coarse) {
  #scrollToTop.mbr-arrow-up > a:hover,
  #scrollToTop.mbr-arrow-up > a:focus {
    background: rgba(7, 17, 31, .96) !important;
    border-color: rgba(199, 140, 49, .68) !important;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .retiro-menu .navbar,
  .retiro-menu .navbar-brand,
  .retiro-menu .navbar-toggler,
  .retiro-menu .navbar-toggler .hamburger span,
  .retiro-menu .retiro-nav-link,
  .retiro-menu .retiro-nav-link::before,
  #scrollToTop.mbr-arrow-up,
  #scrollToTop.mbr-arrow-up > a {
    animation: none !important;
    transition-duration: .01ms !important;
  }
}

/* =========================================================
   FOOTER GLOBAL RETIRO
========================================================= */
.retiro-footer{
  background:var(--retiro-dark-2,#030914)!important;color:#fff;padding:4.2rem 0 1.55rem!important;
  border-top:1px solid rgba(199,140,49,.52);
}
.retiro-footer .retiro-footer-grid{
  display:grid;grid-template-columns:1.08fr .94fr 1.68fr;gap:3.45rem;align-items:start;
}
.retiro-footer-brand{margin-bottom:1.8rem;}
.retiro-footer-brand img{display:block;width:min(220px,90%);height:auto;}
.retiro-footer .retiro-footer-block+.retiro-footer-block{margin-top:1.72rem;}
.retiro-footer-label{
  margin:0 0 .56rem!important;color:#c78c31!important;font-family:var(--retiro-sans,"Segoe UI",sans-serif)!important;
  font-size:.69rem!important;font-weight:770!important;letter-spacing:.145em!important;text-transform:uppercase!important;line-height:1.25!important;
}
.retiro-footer-value{
  margin:0!important;color:rgba(244,234,219,.78)!important;font-family:var(--retiro-serif,"EB Garamond",serif)!important;
  font-size:1rem!important;line-height:1.72!important;
}
.retiro-footer-contact{display:flex;flex-direction:column;gap:.72rem;}
.retiro-footer-contact-line{display:flex;align-items:center;gap:.64rem;min-width:0;}
.retiro-footer-contact-line a{
  min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:normal;
}
.retiro-footer-contact-icon{
  width:18px;height:18px;flex:0 0 18px;display:grid;place-items:center;color:#c78c31;
}
.retiro-footer-contact-icon svg{
  width:18px;height:18px;display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;
}
.retiro-footer a{
  position:relative;display:inline-block;color:rgba(244,234,219,.78)!important;text-decoration:none!important;transition:color .18s ease!important;
}
.retiro-footer a::after{
  content:"";position:absolute;left:0;bottom:.05em;width:100%;height:1px;background:#c78c31;
  transform:scaleX(0);transform-origin:left center;transition:transform .24s ease;
}
.retiro-footer a:hover,.retiro-footer a:focus{color:#fff!important;}
.retiro-footer a:hover::after,.retiro-footer a:focus::after{transform:scaleX(1);}

/* Dirección y datos de contacto: conserva el efecto institucional original
   (línea dorada que nace a la izquierda y avanza hacia la derecha), pero el
   trazo se pinta sobre cada fragmento real del texto y no sobre toda la fila. */
.retiro-footer .retiro-footer-value a,
.retiro-footer .retiro-footer-contact-line a{
  display:inline!important;
  background-image:linear-gradient(#c78c31,#c78c31);
  background-repeat:no-repeat;
  background-position:left calc(100% - .02em);
  background-size:0 1px;
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
  transition:color .18s ease,background-size .24s ease!important;
}
.retiro-footer .retiro-footer-value a::after,
.retiro-footer .retiro-footer-contact-line a::after{
  content:none!important;
  display:none!important;
}
.retiro-footer .retiro-footer-value a:hover,
.retiro-footer .retiro-footer-value a:focus,
.retiro-footer .retiro-footer-contact-line a:hover,
.retiro-footer .retiro-footer-contact-line a:focus{
  background-size:100% 1px;
}
.retiro-footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:.56rem;}
@media(min-width:992px){
  .retiro-footer-grid > .retiro-footer-column:nth-child(2){
    padding-left:2.1rem;
    border-left:1px solid rgba(199,140,49,.18);
  }
}
.retiro-footer-map{
  height:365px;border:1px solid rgba(199,140,49,.64);border-radius:2px;overflow:hidden;
  background:#020711;box-shadow:0 22px 44px rgba(0,0,0,.30);
}
.retiro-footer-map iframe{
  display:block!important;width:100%!important;height:100%!important;min-height:0!important;border:0!important;margin:0!important;padding:0!important;filter:none!important;
}
.retiro-footer-map-note{
  margin:.62rem 0 0;color:rgba(244,234,219,.50);font-family:var(--retiro-sans,"Segoe UI",sans-serif);font-size:.68rem;line-height:1.5;
}
.retiro-footer-lower{margin-top:3.2rem;padding-top:1.18rem;border-top:1px solid rgba(255,255,255,.10);}
.retiro-footer-copyright{
  margin:0!important;text-align:center!important;color:rgba(244,234,219,.52)!important;
  font-family:var(--retiro-sans,"Segoe UI",sans-serif)!important;font-size:.78rem!important;line-height:1.6!important;
}

@media(max-width:991.98px){
  .retiro-footer .retiro-footer-grid{grid-template-columns:1fr 1fr;}
  .retiro-footer .retiro-footer-column{text-align:center;}
  .retiro-footer-brand img{margin-left:auto;margin-right:auto;}
  .retiro-footer-contact-line{justify-content:center;}
  .retiro-footer-links{align-items:center;}
  .retiro-footer-map-column{grid-column:1/-1;}
  .retiro-footer-map{height:330px;}
  .retiro-footer-map-note{text-align:center;}
}
@media(max-width:575.98px){
  .retiro-footer{padding:3rem 0 1.1rem!important;}
  .retiro-footer .retiro-footer-grid{grid-template-columns:1fr;gap:2rem;}
  .retiro-footer-map-column{grid-column:auto;}
  .retiro-footer-brand img{width:205px;}
  .retiro-footer-map{height:280px;}
  .retiro-footer-copyright{font-size:.69rem!important;}
}
