/* ═══════════════════════════════════════════════════════════════
   LBYN · ARMAZÓN COMPARTIDO
   Una sola navegación y un mismo cierre para toda la experiencia.
   ═══════════════════════════════════════════════════════════════ */

.site-header{
  position:sticky; inset-block-start:0; z-index:100;
  color:var(--black);
  background:color-mix(in srgb, var(--cream) 94%, transparent);
  border-bottom:1px solid var(--rule-soft);
  backdrop-filter:blur(14px) saturate(120%);
}
.site-header__inner{
  width:100%; max-width:1360px; margin-inline:auto;
  min-height:76px; padding:10px var(--gutter);
  display:flex; align-items:center; justify-content:space-between; gap:var(--s6);
}
.site-brand{
  flex:0 0 auto; display:inline-flex; align-items:center; gap:12px;
  color:inherit; text-decoration:none;
}
.site-brand__seal{
  width:42px; height:42px; display:grid; place-items:center;
  background:var(--pink); border-radius:50%;
  transition:transform var(--t-control) var(--ease);
}
.site-brand:hover .site-brand__seal{ transform:rotate(-8deg) }
.site-brand__seal img{ width:23px; height:23px }
.site-brand__type{ display:grid; line-height:1.05 }
.site-brand__type strong{ font-family:'Libre',Georgia,serif; font-size:.98rem; letter-spacing:-.03em }
.site-brand__type span{
  margin-top:3px; color:var(--red-tinta); font-size:.58rem;
  font-weight:bold; letter-spacing:.2em; text-transform:uppercase;
}
.site-links{
  display:flex; align-items:center; justify-content:flex-end; gap:5px;
}
.site-links a{
  position:relative; min-height:44px; padding:11px 14px;
  display:inline-flex; align-items:center; white-space:nowrap;
  color:var(--muted); text-decoration:none; border-radius:99px;
  font-size:.72rem; font-weight:bold; letter-spacing:.07em; text-transform:uppercase;
  transition:color var(--t-control), background var(--t-control);
}
.site-links a:hover{ color:var(--black); background:var(--rosa-pálido) }
.site-links a[aria-current='page']{ color:var(--cream); background:var(--black) }
.site-links__primary{ color:var(--cream) !important; background:var(--red-tinta) !important }
.site-links__primary:hover{ background:var(--black) !important }

.site-ribbon{
  min-height:30px; padding:6px var(--gutter);
  display:flex; align-items:center; justify-content:center; gap:1rem;
  color:rgba(244,243,234,.75); background:var(--black);
  font-size:.6rem; font-weight:bold; letter-spacing:.2em; text-align:center; text-transform:uppercase;
}
.site-ribbon::before,.site-ribbon::after{ content:''; width:28px; height:1px; background:var(--pink) }

/* Apertura común para las rutas de servicio. */
.route-intro{
  position:relative; isolation:isolate; overflow:hidden;
  min-height:220px; margin:-2rem 0 var(--s8); padding:clamp(42px,7vw,82px) clamp(24px,5vw,64px);
  display:grid; align-content:center;
  color:var(--cream); background:var(--black); border-radius:2px;
}
.route-intro::after{
  content:attr(data-letters); position:absolute; z-index:-1;
  right:-.06em; top:50%; transform:translateY(-50%);
  color:var(--pink); opacity:.15;
  font-family:'Libre',Georgia,serif; font-size:clamp(8rem,22vw,18rem);
  font-weight:bold; letter-spacing:-.13em; line-height:.7;
}
.route-intro--green{ background:var(--green-dark) }
.route-intro--pink{ color:var(--black); background:var(--pink) }
.route-intro--pink::after{ color:var(--cream); opacity:.26 }
.route-intro__eyebrow{
  color:var(--pink); font-size:.66rem; font-weight:bold;
  letter-spacing:.24em; text-transform:uppercase;
}
.route-intro--pink .route-intro__eyebrow{ color:var(--tinta) }
.route-intro__claim{
  max-width:14ch; margin-top:var(--s3);
  font-family:'Libre',Georgia,serif; font-size:clamp(2rem,5vw,4.6rem);
  line-height:1; letter-spacing:-.055em; text-wrap:balance;
}
.route-intro__copy{ max-width:48ch; margin-top:var(--s4); color:var(--on-dark); font-size:.92rem }
.route-intro--pink .route-intro__copy{ color:rgba(21,23,20,.72) }

.route-card{
  position:relative; padding:clamp(32px,6vw,72px);
  background:var(--paper); border:1px solid var(--rule-soft);
  box-shadow:var(--sombra-papel);
}

/* El mapa del sitio se repite al final para que nunca haya un callejón. */
.site-journey{
  display:grid; grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--black); border-bottom:1px solid var(--black);
}
.site-journey a{
  min-height:178px; padding:clamp(28px,4vw,52px);
  display:flex; flex-direction:column; justify-content:space-between;
  color:var(--black); text-decoration:none; border-right:1px solid var(--black);
  transition:color var(--t-control), background var(--t-control);
}
.site-journey a:last-child{ border-right:0 }
.site-journey a:nth-child(1){ background:var(--pink) }
.site-journey a:nth-child(2){ color:var(--cream); background:var(--green-dark) }
.site-journey a:nth-child(3){ background:var(--yellow) }
.site-journey a:hover{ color:var(--cream); background:var(--black) }
.site-journey__kicker{ font-size:.6rem; font-weight:bold; letter-spacing:.2em; text-transform:uppercase; opacity:.7 }
.site-journey__title{ display:flex; justify-content:space-between; gap:1rem; font-family:'Libre',Georgia,serif; font-size:clamp(1.2rem,2vw,1.75rem); line-height:1.1 }

.site-footer{
  padding:clamp(48px,7vw,80px) var(--gutter);
  color:var(--cream); background:var(--black);
}
.site-footer__inner{
  max-width:1200px; margin-inline:auto;
  display:grid; grid-template-columns:1.2fr .8fr; gap:var(--s7); align-items:end;
}
.site-footer__brand{ display:flex; align-items:center; gap:var(--s4) }
.site-footer__brand img{ width:34px; filter:invert(1) }
.site-footer__brand strong{ display:block; font-family:'Libre',Georgia,serif; font-size:1.2rem }
.site-footer__brand span{ color:var(--on-dark); font-size:.75rem }
.site-footer__links{ display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px 24px }
.site-footer__links a{ color:var(--on-dark); font-size:.7rem; letter-spacing:.1em; text-decoration:none; text-transform:uppercase }
.site-footer__links a:hover{ color:var(--pink) }
.site-footer__legal{ grid-column:1/-1; padding-top:var(--s5); border-top:1px solid rgba(244,243,234,.14); color:rgba(244,243,234,.44); font-size:.65rem; letter-spacing:.1em; text-transform:uppercase }

@media (max-width:860px){
  .site-header__inner{ min-height:68px; gap:var(--s3); padding-right:0 }
  .site-brand__type{ display:none }
  .site-brand__seal{ width:38px; height:38px }
  .site-links{ flex:1 1 auto; justify-content:flex-start; overflow-x:auto; padding-right:var(--gutter); scrollbar-width:none }
  .site-links::-webkit-scrollbar{ display:none }
  .site-links a{ padding-inline:11px }
  .site-journey{ grid-template-columns:1fr }
  .site-journey a{ min-height:126px; border-right:0; border-bottom:1px solid var(--black) }
  .site-journey a:last-child{ border-bottom:0 }
  .site-footer__inner{ grid-template-columns:1fr }
  .site-footer__links{ justify-content:flex-start }
}

@media (max-width:480px){
  .site-links a{ font-size:.63rem; letter-spacing:.04em }
  .site-links a:first-child{ display:none }
  .site-ribbon{ letter-spacing:.12em }
  .route-intro{ margin-top:-1rem; margin-inline:calc(var(--gutter) * -.35); padding-inline:var(--s5) }
}

@media (prefers-reduced-motion:reduce){
  .site-brand__seal,.site-links a,.site-journey a{ transition:none }
}
