/* Marco compartido: navegación y pie compactos, sin alterar el contenido. */
.site-header.wrap {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 28px;
  row-gap: 0;
  padding-block: 15px;
}
.site-header .brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: 154px;
  min-width: 0;
  flex: 0 0 154px;
}
.site-header .brand .brand-symbol { width: 26px; height: 26px; object-fit: contain; flex-shrink: 0; }
.site-header .brand .brand-wordmark { width: 118px; height: auto; min-width: 0; }
.site-header nav {
  display: flex;
  order: 0;
  flex: initial;
  grid-column: 2;
  grid-row: 1;
  justify-content: flex-end;
  align-items: center;
  gap: 25px;
  min-width: 0;
  margin: 0;
  font-size: 11px;
  line-height: 1.4;
}
.site-header nav > a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding-block: 3px;
  white-space: nowrap;
}
.site-header .member-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  min-height: 32px;
  max-width: 100%;
  margin: 0;
  padding-block: 3px;
  font-size: 11px;
  line-height: 1.4;
  white-space: nowrap;
}
.site-header .member-nav:hover {
  text-decoration: underline;
  text-underline-offset: 5px;
}

.site-footer.wrap {
  padding-block: 23px 18px;
}
.site-footer .footer-top {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px 26px;
  padding-bottom: 18px;
}
.site-footer .footer-top .brand { width: 110px; }
.site-footer .footer-top p {
  grid-column: 2;
  grid-row: 1;
  justify-self: center;
  margin: 0;
  font-size: 22px;
  line-height: 1.25;
}
.site-footer .footer-top > a:last-child {
  display: inline-flex;
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  align-items: center;
  gap: 9px;
  min-height: 32px;
  font-size: 10px;
  line-height: 1.4;
  text-align: left;
  white-space: nowrap;
}
.site-footer .footer-top > a:last-child .icon { width: 14px; height: 14px; }
.site-footer .footer-bottom {
  display: grid;
  grid-template-columns: minmax(170px, 1fr) auto auto;
  align-items: center;
  gap: 6px 24px;
  padding-top: 12px;
  font-size: 9px;
  line-height: 1.6;
}
.site-footer .footer-bottom > span:first-child { min-width: 0; }
.site-footer .footer-bottom > span:last-child { white-space: nowrap; }
.site-footer .footer-bottom > div {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0 18px;
  min-width: 0;
}
.site-footer .footer-bottom a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
}

@media (max-width: 1050px) {
  .site-footer .footer-bottom {
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 20px;
  }
  .site-footer .footer-bottom > span:first-child { grid-column: 1; grid-row: 1; }
  .site-footer .footer-bottom > span:last-child { grid-column: 2; grid-row: 1; justify-self: end; }
  .site-footer .footer-bottom > div { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; }
}

@media (max-width: 650px) {
  .site-header.wrap {
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 18px;
    row-gap: 3px;
    padding-block: 10px 7px;
  }
  .site-header .brand { width: 132px; flex-basis: 132px; }
  .site-header .brand .brand-symbol { width: 24px; height: 24px; }
  .site-header .brand .brand-wordmark { width: 98px; }
  .site-header .member-nav { grid-column: 2; font-size: 10px; }
  .site-header nav {
    grid-column: 1 / -1;
    grid-row: 2;
    order: 0;
    flex: initial;
    justify-content: flex-start;
    gap: 23px;
    font-size: 10px;
  }
  .site-footer.wrap { padding-block: 19px 15px; }
  .site-footer .footer-top {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 16px;
    padding-bottom: 14px;
  }
  .site-footer .footer-top .brand { width: 96px; }
  .site-footer .footer-top > a:last-child { grid-column: 2; font-size: 9px; gap: 6px; }
  .site-footer .footer-top p {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-self: start;
    font-size: 21px;
  }
  .site-footer .footer-bottom {
    gap: 6px 16px;
    align-items: start;
    padding-top: 12px;
    font-size: 9px;
  }
  .site-footer .footer-bottom > div { gap: 0 17px; }
}

@media print {
  .site-header.wrap, .site-footer.wrap { display: none; }
}

/* En páginas cortas el pie ocupa el final de la ventana, sin fijarlo al contenido. */
body{min-height:100svh;display:flex;flex-direction:column}
body>main{flex:1;min-width:0}
body>.site-header,body>.site-footer,body>.preview-bar{flex-shrink:0}
body>main:has(>.member-access),body>main:has(>.member-confirm){display:flex;align-items:center}
.member-access{padding-block:42px;gap:clamp(30px,5vw,70px);align-items:center}
.member-access-intro{position:relative;isolation:isolate;padding-block:15px}
.member-access-intro::before{content:'';position:absolute;width:210px;height:210px;left:-34px;top:0;border:1px solid #b8ccca88;border-radius:50%;z-index:-1;pointer-events:none}
.member-access-intro::after{content:'';position:absolute;width:130px;height:130px;left:45px;top:90px;background:#b8ccca25;border-radius:50%;z-index:-1;pointer-events:none}
.member-access-intro h1{font-size:clamp(50px,5.3vw,74px);margin-block:16px 22px}
.member-access>.member-panel{width:100%;max-width:560px;justify-self:end}
.member-confirm{padding-block:38px}
@media(max-width:650px){.member-access{padding-block:28px;gap:24px}.member-access-intro{padding-block:0}.member-access-intro h1{font-size:50px;margin-block:14px 18px}.member-access-intro::before{width:150px;height:150px;left:-10px;top:4px}.member-access-intro::after{width:100px;height:100px;left:52px;top:65px}.member-access>.member-panel{max-width:none}.member-confirm{padding-block:28px}}
@media print{body{display:block;min-height:0}.member-access-intro::before,.member-access-intro::after{display:none}}
.site-header .member-nav.member-avatar{width:36px;height:36px;min-height:36px;border-radius:50%;background:var(--blue);border:1px solid #9eb5b4;overflow:hidden;padding:0;display:grid;place-items:center;text-decoration:none;font:12px/1 var(--sans);letter-spacing:.02em}
.site-header .member-avatar img{width:100%;height:100%;object-fit:cover}.site-header .member-avatar:hover{outline:1px solid var(--ink);outline-offset:3px}

.footer-social{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.footer-social a{white-space:nowrap}
@media(max-width:600px){.footer-social{gap:18px}}

.footer-social{gap:10px}.footer-social a{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;text-decoration:none;transition:background .18s}.footer-social a:hover{background:var(--blue)}.footer-social img{width:18px;height:18px;object-fit:contain}.footer-social a:last-child img{width:21px;height:21px}

.site-header .member-menu{position:relative;justify-self:end;z-index:30}
.site-header .member-menu>summary{cursor:pointer;list-style:none;user-select:none}
.site-header .member-menu>summary::-webkit-details-marker{display:none}
.site-header .member-menu>summary::marker{content:""}
.member-menu[open]>.member-avatar{outline:1px solid var(--ink);outline-offset:3px}
.site-header .member-menu-panel{position:absolute;right:0;top:calc(100% + 13px);width:190px;max-width:calc(100vw - 40px);padding:6px;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 35px #243e421c}
.site-header .member-menu-panel nav{display:flex;align-items:stretch;flex-direction:column;gap:2px;font-size:12px}
.site-header .member-menu-panel a,.site-header .member-menu-panel button{display:flex;align-items:center;min-height:40px;width:100%;padding:10px 12px;background:none;border:0;border-radius:7px;text-decoration:none;text-align:left;font:12px/1.5 var(--sans);color:var(--ink)}
.site-header .member-menu-panel a:hover,.site-header .member-menu-panel button:hover{background:#e6eeea;text-decoration:none}
.site-header .member-menu-panel form{margin:5px 0 0;padding-top:5px;border-top:1px solid var(--line)}
.site-header .member-menu{grid-column:3;grid-row:1}
@media(max-width:650px){.site-header .member-menu{grid-column:2}}

.site-header .member-menu-panel a,.site-header .member-menu-panel button{gap:10px}.member-menu-icon{display:block;flex-shrink:0;width:18px;height:18px}

.ui-icon{display:block;flex-shrink:0;width:18px;height:18px}
