/* Marco común de la web pública (25-10-2026, tercera vuelta): la cabecera de dos barras, el menú del móvil, el pie,
   los botones y las variables de la marca. Lo cargan todas las páginas públicas salvo las de acceso: la portada y las
   páginas con su estilo (después va /web/portada.css) y las que aún llevan el estilo anterior (antes van bee.css y
   web.css). Por eso todo va con clases propias (pt-) y fija su letra, color y medidas: no hereda nada de bee.css. */

:root {
  --pt-letra: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --pt-letra-marca: "Space Grotesk", "Geist", system-ui, sans-serif;
  --pt-letra-mono: "Geist Mono", ui-monospace, "SF Mono", "Cascadia Mono", "Segoe UI Mono", Consolas, monospace;
  --pt-tinta: #171717;
  --pt-texto: #3d3d3d;
  --pt-gris: #595959;
  --pt-fondo: #f6f6f6;
  --pt-borde: #dcdcdc;
  --pt-linea: #ebebeb;
  --pt-borde-fino: #e6e6e6;
  --pt-marca: #ffc400;
  --pt-marca-2: #f1ba00;
  --pt-miel: #fff6d5;
  --pt-oscuro: #171717;
  --pt-oscuro-2: #333333;
  --pt-oscuro-texto: #c8c8c8;
  --pt-m: clamp(16px, 5vw, 72px);
  --pt-hueco: clamp(24px, 4.45vw, 64px);
}

*, *::before, *::after { box-sizing: border-box; }
.pt-ancho { max-width: 1440px; margin: 0 auto; padding-inline: var(--pt-m); }
.pt-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pt-cab, .pt-pie { font-family: var(--pt-letra); color: var(--pt-tinta); -webkit-font-smoothing: antialiased; }
:where(.pt-cab, .pt-pie) :where(p, ul, li, nav) { margin: 0; }
:where(.pt-cab, .pt-pie) img { display: block; max-width: 100%; }
:where(.pt-cab, .pt-pie) a { color: inherit; }
:is(.pt-cab, .pt-pie, .pt) :is(a, button, summary, [tabindex]):focus-visible { outline: 3px solid var(--pt-tinta); outline-offset: 2px; }

/* ---------- Botones y enlaces ---------- */
.pt-boton { display: inline-flex; align-items: center; justify-content: center; height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid transparent; font-family: var(--pt-letra); font-size: 16px; line-height: 24px; font-weight: 500; letter-spacing: .5px; text-decoration: none; white-space: nowrap; cursor: pointer; transition: background-color .2s, box-shadow .2s, color .2s; }
.pt-boton.marca { background: var(--pt-marca); color: var(--pt-tinta); }
.pt-boton.marca:hover { background: var(--pt-marca-2); box-shadow: 0 1px 2px rgba(23, 23, 23, .25), 0 1px 3px 1px rgba(23, 23, 23, .12); }
.pt-boton.borde { background: #fff; border-color: var(--pt-borde); color: var(--pt-tinta); }
.pt-boton.borde:hover { background: var(--pt-fondo); }
.pt-boton.tinta { background: var(--pt-tinta); color: #fff; }
.pt-boton.tinta:hover { background: #303030; }
.pt-boton.grande { height: 50px; padding: 0 20px; letter-spacing: .1px; }
.pt-boton.ancho { width: 100%; height: 50px; letter-spacing: .1px; }
.pt-enlace { display: inline-block; margin-top: 16px; font-weight: 500; color: var(--pt-tinta); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.pt-enlace:hover { text-decoration-thickness: 2px; }

/* ---------- Cabecera de dos barras ---------- */
.pt-cab { position: sticky; top: -48px; z-index: 60; background: var(--pt-fondo); font-size: 16px; line-height: 24px; }
.pt-cab-sup { height: 48px; display: flex; align-items: center; padding: 0 42px 0 41px; }
.pt-cab-logo { display: flex; width: 24px; height: 24px; margin-right: 29px; }
.pt-cab-logo img { width: 24px; height: 24px; }
.pt-cab-sec { display: flex; }
.pt-cab-sec a, .pt-cab-nav a { display: inline-flex; align-items: center; font-size: 14px; line-height: 20px; font-weight: 500; letter-spacing: .25px; text-decoration: none; border-radius: 4px; transition: background .4s; }
.pt-cab-sec a { height: 48px; padding: 0 12px; color: var(--pt-texto); }
.pt-cab-sec a:hover, .pt-cab-nav a:hover { background: rgba(23, 23, 23, .06); color: var(--pt-tinta); }
.pt-entrar { margin-left: auto; display: inline-flex; align-items: center; height: 44px; padding: 0 18px; border: 1px solid var(--pt-borde); border-radius: 999px; background: #fff; color: var(--pt-tinta); font-size: 14px; line-height: 20px; font-weight: 500; letter-spacing: .25px; text-decoration: none; }
.pt-entrar:hover { background: var(--pt-fondo); }
.pt-cab-inf { position: relative; background: var(--pt-fondo); }
.pt-cab-tira { height: 56px; display: flex; align-items: center; padding: 0 32px 0 44px; background: #fff; border-radius: 32px 32px 0 0; transition: box-shadow .3s; }
.pt-cab.pegada .pt-cab-tira { box-shadow: 0 1px 2px rgba(23, 23, 23, .10), 0 2px 6px 2px rgba(23, 23, 23, .06); }
.pt-cab-marca { margin-right: 16px; font-family: var(--pt-letra-marca); font-size: 18px; line-height: 32px; font-weight: 600; letter-spacing: -.5px; color: #000; text-decoration: none; white-space: nowrap; }
.pt-cab-nav { display: flex; gap: 2px; }
.pt-cab-nav a { height: 32px; padding: 0 10px; color: var(--pt-gris); }
.pt-cab-acts { margin-left: auto; display: flex; gap: 16px; }
/* La página en la que estás (o su apartado): letra en tinta y fondo miel, el mismo del apartado activo del panel. */
.pt-cab-sec a[aria-current], .pt-cab-nav a[aria-current] { background: var(--pt-miel); color: var(--pt-tinta); font-weight: 600; box-shadow: inset 0 -2px 0 var(--pt-tinta); border-radius: 4px 4px 0 0; }
.pt-menu-boton { display: none; }
.pt-menu[hidden] { display: none; }

/* ---------- Pie ---------- */
.pt-pie { padding: 24px 0 48px; background: var(--pt-fondo); font-size: 16px; line-height: 24px; }
.pt-pie-marca { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; min-height: 48px; padding-bottom: 24px; border-bottom: 1px solid var(--pt-borde); }
.pt-pie-marca p { font-size: 16px; line-height: 24px; color: var(--pt-texto); }
.pt-pie-marca p a { text-decoration: underline; text-underline-offset: 3px; }
.pt-pie-logo { display: inline-flex; align-items: center; gap: 10px; color: var(--pt-tinta); text-decoration: none; font-family: var(--pt-letra-marca); font-size: 19px; font-weight: 600; letter-spacing: -.02em; white-space: nowrap; }
.pt-pie-logo img { width: 32px; height: 32px; }
.pt-pie-logo.peq { font-size: 16px; }
.pt-pie-logo.peq img { width: 24px; height: 24px; }
.pt-pie-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 43px 0 40px; border-bottom: 1px solid var(--pt-borde); }
.pt-pie-col summary { list-style: none; font-size: 16px; line-height: 24px; font-weight: 500; color: var(--pt-tinta); cursor: default; }
.pt-pie-col summary::-webkit-details-marker { display: none; }
.pt-pie-col ul { list-style: none; display: flex; flex-direction: column; gap: 15px; margin: 14px 0 0; padding: 0 16px 0 0; }
.pt-pie-col a, .pt-pie-enlaces a { font-size: 16px; line-height: 24px; font-weight: 500; color: var(--pt-gris); text-decoration: none; border-radius: 4px; overflow-wrap: anywhere; }
.pt-pie-col a:hover, .pt-pie-enlaces a:hover { color: var(--pt-tinta); text-decoration: underline; }
.pt-pie-avisos { padding-top: 41px; }
.pt-pie-avisos p { max-width: 900px; font-size: 16px; line-height: 24px; color: var(--pt-texto); }
.pt-pie-avisos a { color: var(--pt-tinta); text-decoration: underline; text-underline-offset: 3px; }
.pt-pie-avisos .pt-pie-afiliacion { margin-top: 8px; font-size: 14px; line-height: 20px; }
.pt-pie-base { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 48px; }
.pt-pie-enlaces { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-left: 24px; }
.pt-pie-dato { margin-left: auto; font-size: 14px; line-height: 20px; color: var(--pt-gris); }

@media (prefers-reduced-motion: reduce) { :is(.pt-cab, .pt-pie) *, .pt-cab-tira { transition: none !important; } }

/* ================= Móvil y tableta: menú plegado ================= */
@media (max-width: 959px) {
  .pt-cab-sup { padding: 0 12px 0 16px; }
  .pt-cab-logo { margin-right: auto; }
  .pt-cab-sec, .pt-cab-nav, .pt-cab-acts { display: none; }
  .pt-cab-tira { padding: 0 12px 0 16px; border-radius: 24px 24px 0 0; }
  .pt-cab-marca { margin-right: auto; font-size: 18px; }
  .pt-menu-boton { display: inline-flex; align-items: center; height: 44px; padding: 0 18px; border: 1px solid var(--pt-borde); border-radius: 999px; background: #fff; color: var(--pt-tinta); font: 500 15px/20px var(--pt-letra); cursor: pointer; }
  .pt-menu { position: absolute; left: 0; right: 0; top: 100%; max-height: calc(100vh - 56px); overflow: auto; padding: 4px 16px 20px; background: #fff; box-shadow: 0 10px 24px rgba(23, 23, 23, .14); }
  .pt-menu nav { display: flex; flex-direction: column; }
  .pt-menu nav a { display: flex; align-items: center; min-height: 52px; border-bottom: 1px solid var(--pt-linea); font-size: 17px; line-height: 24px; font-weight: 500; color: var(--pt-tinta); text-decoration: none; }
  .pt-menu nav a[aria-current] { margin: 0 -16px; padding: 0 16px 0 13px; border-left: 3px solid var(--pt-tinta); background: var(--pt-miel); font-weight: 600; }
  .pt-menu .pt-boton { margin-top: 16px; }
}

@media (max-width: 759px) {
  .pt-pie-cols { grid-template-columns: minmax(0, 1fr); padding: 8px 0 16px; }
  .pt-pie-col { border-bottom: 1px solid var(--pt-borde); }
  .pt-pie-col:last-child { border-bottom: 0; }
  .pt-pie-col summary { display: flex; align-items: center; justify-content: space-between; min-height: 60px; cursor: pointer; color: var(--pt-gris); }
  .pt-pie-col summary::after { content: ""; width: 9px; height: 9px; margin-right: 6px; border-right: 2px solid var(--pt-gris); border-bottom: 2px solid var(--pt-gris); transform: rotate(45deg); transition: transform .2s; }
  .pt-pie-col[open] summary::after { transform: rotate(-135deg); }
  .pt-pie-col ul { gap: 0; margin: 0 0 12px; }
  .pt-pie-col a { display: inline-flex; align-items: center; min-height: 44px; }
  .pt-pie-enlaces { margin-left: 0; }
  .pt-pie-enlaces a { display: inline-flex; align-items: center; min-height: 44px; }
  .pt-pie-dato { margin-left: 0; }
  .pt-pie-avisos a, .pt-pie-marca p a { display: inline; }
}

/* Zonas táctiles: en pantallas táctiles y en el móvil, todo lo que se pulsa mide 44 px o más */
@media (max-width: 959px), (pointer: coarse) {
  .pt-cab-logo { width: 44px; height: 44px; align-items: center; justify-content: center; margin-left: -10px; }
  .pt-cab-marca, .pt-pie-logo { display: inline-flex; align-items: center; min-height: 44px; }
  .pt-enlace { display: inline-flex; align-items: center; min-height: 44px; margin-top: 6px; }
}
