/* Bellverton: layout de franja, cabecera, menú, secciones y pie */
.page-wrap { max-width: var(--wd1); margin-left: auto; margin-right: auto; padding-left: var(--gp1); padding-right: var(--gp1); }
.site-info-strip { background: var(--pn5); color: var(--pn0); font-family: var(--ffm); font-size: 0.8125rem; line-height: 1.3; }
.site-info-strip-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 20px; min-height: 44px; }
.site-info-strip a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 8px; color: var(--pn0); text-decoration: none; }
.site-info-strip a:hover { background: var(--pn0); color: var(--pn5); } /* hover seco, sin transición */
.info-strip-hours { color: var(--pn2); }
.site-header-bar { position: relative; z-index: 300; background: var(--pn0); border-bottom: 1px solid var(--pn3); }
.site-header-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 24px; min-height: 76px; }
.brand-wordmark-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; color: var(--pn5); text-decoration: none; font-family: var(--ff1); font-weight: 400; font-size: 1.55rem; }
.brand-wordmark-link svg { width: 34px; height: 34px; flex: none; }
.brand-wordmark-link:hover { color: var(--cr1); }
.primary-navigation-list { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; border-left: 1px solid var(--pn3); }
.primary-navigation-list a { display: flex; align-items: center; min-height: 76px; padding: 0 22px; border-right: 1px solid var(--pn3); color: var(--pn5); text-decoration: none; font-family: var(--ffm); font-size: 0.875rem; text-transform: uppercase; }
.primary-navigation-list a:hover { background: var(--pn5); color: var(--pn0); }
.primary-navigation-list a[aria-current='page'] { box-shadow: inset 0 -4px 0 var(--cr1); } /* filete activo, no es sombra */
.menu-toggle-button { display: none; align-items: center; gap: 10px; min-height: 48px; padding: 0 16px; background: var(--pn0); border: 1px solid var(--pn5); border-radius: var(--rd2); font-family: var(--ffm); font-size: 0.875rem; text-transform: uppercase; cursor: pointer; }
.menu-toggle-lines { display: block; width: 20px; height: 2px; background: var(--pn5); box-shadow: 0 -6px 0 var(--pn5), 0 6px 0 var(--pn5); }
.mobile-menu-sheet { display: none; }
.mobile-menu-head { display: flex; align-items: center; justify-content: space-between; min-height: 76px; border-bottom: 1px solid var(--pn3); }
.mobile-menu-close { min-height: 48px; padding: 0 16px; background: var(--pn5); color: var(--pn0); border: 0; border-radius: var(--rd2); font-family: var(--ffm); font-size: 0.875rem; text-transform: uppercase; cursor: pointer; }
.mobile-menu-list { margin: 0; padding: 0; list-style: none; }
.mobile-menu-list a { display: flex; align-items: center; justify-content: space-between; min-height: 64px; border-bottom: 1px solid var(--pn3); color: var(--pn5); text-decoration: none; font-family: var(--ff1); font-size: 1.6rem; font-weight: 300; }
.mobile-menu-list a::after { content: '\2192'; font-family: var(--ffm); font-size: 1rem; color: var(--cr1); }
.mobile-menu-contact { margin-top: 28px; font-family: var(--ffm); font-size: 0.9375rem; }
.mobile-menu-contact a { display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width: 899px) {
  .can-js .primary-navigation { display: none; }
  .can-js .menu-toggle-button { display: inline-flex; }
  .can-js .mobile-menu-sheet { display: block; position: fixed; inset: 0; z-index: 600; overflow-y: auto; background: var(--pn0); visibility: hidden; } /* cerrado = visibility, no opacidad */
  .can-js .mobile-menu-sheet.visible-now { visibility: visible; }
  .primary-navigation-list a { min-height: 48px; }
  .info-strip-hours { display: none; }
}
.band-step-1 { padding-top: 56px; padding-bottom: 56px; }
.band-step-2 { padding-top: 68px; padding-bottom: 68px; }
.band-step-3 { padding-top: 80px; padding-bottom: 80px; }
.band-step-4 { padding-top: 94px; padding-bottom: 94px; }
.band-step-5 { padding-top: 108px; padding-bottom: 108px; }
.band-step-6 { padding-top: 124px; padding-bottom: 124px; }
.band-white-to-mist { background: linear-gradient(180deg, var(--pn0) 0%, var(--pn1) 100%); }
.band-mist-to-white { background: linear-gradient(180deg, var(--pn1) 0%, var(--pn0) 100%); }
.band-white-to-cell { background: linear-gradient(180deg, var(--pn0) 0%, var(--pn2) 100%); }
.band-cell-to-mist { background: linear-gradient(180deg, var(--pn2) 0%, var(--pn1) 100%); }
.band-dark-run { background-color: var(--pn5); background-image: linear-gradient(180deg, var(--pn5) 0%, var(--pn6) 100%); color: var(--pn0); } /* color de fondo explícito para medir contraste */
.section-heading-block { max-width: 760px; margin-bottom: 36px; }
.section-heading-block p { color: var(--pn5); }
.page-intro-band { padding-top: 56px; padding-bottom: 48px; background: linear-gradient(180deg, var(--pn0) 0%, var(--pn1) 100%); border-bottom: 1px solid var(--pn3); }
.page-intro-band h1 { font-size: clamp(2.2rem, 4.4vw, 3.2rem); margin-bottom: 18px; }
.page-intro-lead { max-width: 720px; font-size: 1.125rem; margin: 0; }
.site-footer-block { background: linear-gradient(180deg, var(--pn1) 0%, var(--pn2) 100%); border-top: 1px solid var(--pn3); padding-top: 96px; padding-bottom: 40px; }
.footer-three-columns { display: grid; grid-template-columns: 1.3fr 1fr 1fr; border: 1px solid var(--pn3); background: var(--pn0); }
.footer-column-cell { padding: 28px 26px; border-right: 1px solid var(--pn3); }
.footer-column-cell:last-child { border-right: 0; }
.footer-column-cell p { font-size: 0.9375rem; margin-bottom: 10px; }
.footer-column-list { margin: 0; padding: 0; list-style: none; }
.footer-column-list a, .footer-contact-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--pn5); }
.footer-column-list a:hover, .footer-contact-link:hover { color: var(--cr1); }
.footer-bottom-line { margin: 22px 0 0; font-family: var(--ffm); font-size: 0.8125rem; color: var(--pn5); }
@media (max-width: 860px) {
  .footer-three-columns { grid-template-columns: 1fr; }
  .footer-column-cell { border-right: 0; border-bottom: 1px solid var(--pn3); }
  .footer-column-cell:last-child { border-bottom: 0; }
}
@media (max-width: 560px) {
  :root { --gp1: 20px; }
  .band-step-1, .band-step-2 { padding-top: 44px; padding-bottom: 44px; }
  .band-step-3, .band-step-4 { padding-top: 56px; padding-bottom: 56px; }
  .band-step-5, .band-step-6 { padding-top: 68px; padding-bottom: 68px; }
  .page-intro-band { padding-top: 36px; padding-bottom: 32px; }
}
