/* Carrusel "Lo nuevo" y modal de los 66 años */
.novedades { background: var(--casco-hondo); color: #fff; padding: clamp(2.5rem, 5vw, 4.5rem) 0 0; }
.novedades-cabeza { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0 clamp(1rem, 4vw, 4rem) 1.5rem; }
.novedades-cabeza h2 { margin: 0; color: #fff; font-size: clamp(2.75rem, 7vw, 5.5rem); line-height: 1; }
.nov-pausa { width: 48px; height: 48px; border: 2px solid var(--oro); background: none; color: var(--oro); font-size: 1.5rem; line-height: 1; transition: background-color .2s, color .2s; }
.nov-pausa:hover, .nov-pausa:focus-visible { background: var(--oro); color: var(--casco-hondo); }

.nov-lienzo { position: relative; overflow: hidden; height: clamp(320px, 62vh, 720px); background: #000; }
.nov-fondo { position: absolute; inset: -30px; background-size: cover; background-position: center; filter: blur(22px) brightness(.45); }
.nov-imagen { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; padding: clamp(.75rem, 2vw, 1.5rem) clamp(.75rem, 6vw, 5.5rem); border: 0; background: none; cursor: zoom-in; }
.nov-imagen img { display: block; max-width: 100%; max-height: 100%; box-shadow: 0 18px 50px rgba(0, 0, 0, .55); }
.novedades .carousel-item.active .nov-imagen img { animation: nov-entra .9s var(--curva) both; }
@keyframes nov-entra { from { transform: scale(1.05); opacity: .4; } to { transform: none; opacity: 1; } }

.nov-texto { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem 3rem; padding: 1.5rem clamp(1rem, 4vw, 4rem) 3.75rem; border-top: 4px solid var(--oro); }
.nov-texto h3 { margin: .15rem 0 .35rem; color: #fff; font-size: clamp(1.75rem, 3.4vw, 2.75rem); line-height: 1.1; }
.nov-texto p { margin: 0; max-width: 62ch; font-size: 1.125rem; color: #fff; }
.nov-texto .btn { flex: none; }
.nov-etiqueta { font-family: var(--display); font-size: 1.125rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--oro); }

.novedades .carousel-control-prev, .novedades .carousel-control-next { top: calc(clamp(320px, 62vh, 720px) / 2 - 28px); bottom: auto; width: 56px; height: 56px; margin: 0 clamp(.25rem, 1.5vw, 1.25rem); background: rgba(7, 24, 46, .85); border: 2px solid var(--oro); color: var(--oro); font-size: 1.5rem; opacity: 1; }
.novedades .carousel-control-prev:hover, .novedades .carousel-control-next:hover, .novedades .carousel-control-prev:focus-visible, .novedades .carousel-control-next:focus-visible { background: var(--oro); color: var(--casco-hondo); }
.novedades .carousel-indicators { margin-bottom: 1.25rem; z-index: 3; }
.novedades .carousel-indicators [data-bs-target] { width: 44px; height: 6px; border: 0; background: #fff; opacity: .5; }
.novedades .carousel-indicators .active { background: var(--oro); opacity: 1; }

/* Encabezado de subpágina: video a todo lo ancho, sin foto lateral */
.page-header.ph-video { display: flex; align-items: center; justify-content: center; min-height: clamp(320px, 48vh, 500px); padding: 3rem 1.25rem 6rem; text-align: center; background: var(--casco-hondo); overflow: hidden; }
.ph-fondo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ph-velo { position: absolute; inset: 0; z-index: 1; background: rgba(7, 24, 46, .58); }
.ph-credito { position: absolute; z-index: 4; left: 1rem; bottom: 4.25rem; color: #fff; font-size: .75rem; text-decoration: underline; }
.page-header.ph-video .bubbles { z-index: 2; }
.page-header.ph-video .ph-texto { display: block; position: relative; z-index: 3; padding: 0 !important; }
.page-header.ph-video h1 { font-size: clamp(3.25rem, 9vw, 7.5rem); line-height: 1; overflow-wrap: anywhere; }
.page-header.ph-video .wave-divider { z-index: 3; }

/* Video del organigrama */
.org-video { padding: clamp(2.5rem, 5vw, 4.5rem) 0; background: #fff; text-align: center; }
.org-video h2 { margin: 0 0 .5rem; color: var(--casco); font-size: clamp(2.25rem, 5vw, 4rem); line-height: 1.05; }
.org-video p { margin: 0 auto 1.75rem; max-width: 62ch; font-size: 1.125rem; }
.org-video video { display: block; width: 100%; aspect-ratio: 16 / 9; background: var(--casco-hondo); border: 2px solid var(--oro); box-shadow: 0 18px 50px rgba(7, 24, 46, .3); }

/* Orto y ocaso */
.orto-franja { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem 2rem; padding: 1.25rem clamp(1rem, 4vw, 4rem); background: var(--oro); color: var(--casco-hondo); }
.orto-franja-dato { display: flex; align-items: center; gap: .75rem; font-family: var(--display); font-size: 1.35rem; font-weight: 700; text-transform: uppercase; }
.orto-franja-dato:last-child { justify-content: flex-end; }
.orto-franja-dato i { font-size: 2.25rem; }
.orto-franja-dato strong { font-size: clamp(2rem, 4vw, 3rem); font-weight: 700; line-height: 1; }
.orto-franja-centro { text-align: center; font-size: 1.05rem; font-weight: 600; }
.orto-franja-centro span { display: block; }
.orto-franja-centro a { color: var(--casco-hondo); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.orto-hoy { padding: clamp(2.5rem, 5vw, 4rem) 0; background: var(--casco-hondo); color: #fff; text-align: center; }
.orto-fecha { margin: 0 0 1.5rem; font-family: var(--display); font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 600; color: var(--oro); }
.orto-grandes { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: var(--oro); border: 2px solid var(--oro); }
.orto-grandes > div { display: flex; flex-direction: column; align-items: center; gap: .25rem; padding: clamp(1.5rem, 4vw, 3rem) 1rem; background: var(--casco); }
.orto-grandes i { font-size: clamp(2.5rem, 6vw, 4.5rem); color: var(--oro); line-height: 1; }
.orto-grandes span { font-family: var(--display); font-size: 1.5rem; font-weight: 700; text-transform: uppercase; }
.orto-grandes > div { min-width: 0; }
.orto-grandes strong { font-family: 'Saira Stencil One', var(--display); font-size: clamp(2.5rem, 11vw, 8rem); font-weight: 400; line-height: 1; }
.orto-titulo { margin-bottom: 1.25rem; color: var(--casco); }
.orto-tabla { font-size: 1.05rem; }
.orto-tabla thead th { background: var(--casco); color: #fff; font-family: var(--display); font-size: 1.1rem; vertical-align: bottom; }
.orto-tabla th[scope="row"] { font-weight: 600; white-space: nowrap; }
.orto-tabla .orto-clave { font-weight: 700; color: var(--casco); background: rgba(224, 178, 60, .18); }
.orto-nota { margin: 1rem 0 0; font-size: 1rem; }
@media (max-width: 767.98px) {
  .orto-franja { grid-template-columns: 1fr 1fr; }
  .orto-franja-centro { grid-column: 1 / -1; grid-row: 2; }
  .orto-franja-dato { flex-wrap: wrap; gap: .25rem .5rem; }
}

.btn-close-promo, .btn-close-promo i { color: #fff !important; }

/* Reloj, orto y ocaso en el menú */
html { scroll-padding-top: 128px; }
.navbar-naval { padding-top: 0; flex-wrap: wrap !important; }
.nav-guardia { order: -1; display: flex; align-items: center; justify-content: center; gap: clamp(.75rem, 4vw, 3rem); width: 100%; height: 38px; margin-bottom: .25rem; background: var(--oro); color: var(--casco-hondo); font-family: var(--display); font-size: 1.15rem; font-weight: 600; line-height: 1; text-decoration: none; }
.ng-datos { display: flex; align-items: center; gap: clamp(.5rem, 4vw, 3rem); color: inherit; text-decoration: none; }
.ng-datos:hover, .ng-datos:focus-visible { color: inherit; text-decoration: underline; }
.ng-boton { display: inline-flex; align-items: center; gap: .35rem; height: 100%; padding: 0 .85rem; background: var(--casco-hondo); color: #fff; font-weight: 700; text-transform: uppercase; text-decoration: none; white-space: nowrap; transition: background-color .2s, color .2s; }
.ng-boton:hover, .ng-boton:focus-visible { background: #fff; color: var(--casco-hondo); }
.ng-dato { display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; }
.ng-dato i { font-size: 1.2rem; }
.ng-rotulo { text-transform: uppercase; letter-spacing: .04em; }
.ng-dato strong { font-size: 1.3rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.casco-video { min-height: clamp(600px, calc(100vh - 116px), 900px); }
.ceremonial-apertura { height: max(620px, calc(100svh - 128px)); }
@media (max-width: 575.98px) {
  .ng-rotulo { display: none; }
  .nav-guardia { gap: .5rem; font-size: 1rem; }
  .ng-dato { gap: .2rem; }
  .ng-dato i { font-size: 1rem; }
  .ng-dato strong { font-size: 1.05rem; }
  .ng-boton { padding: 0 .5rem; }
}

/* Mareas y oleaje */
.mareas-intro { max-width: 70ch; }
.mareas-seccion { margin-top: clamp(2.5rem, 6vw, 4.5rem); }
.mareas-grilla { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.marea-ficha { min-width: 0; display: flex; flex-direction: column; gap: .85rem; }
.marea-ficha h3 { margin: 0; color: var(--casco); }
.marea-grafica { display: block; background: #fff; border: 2px solid var(--casco); box-shadow: 0 12px 30px rgba(7, 24, 46, .18); transition: transform .35s var(--curva), box-shadow .35s var(--curva); }
.marea-grafica:hover, .marea-grafica:focus-visible { transform: translateY(-6px); box-shadow: 0 16px 34px rgba(7, 24, 46, .28); }
.marea-grafica img { display: block; width: 100%; height: auto; }
.marea-aviso { display: none; padding: 1.5rem; color: var(--casco); font-weight: 600; }
.sin-grafica img { display: none; }
.sin-grafica .marea-aviso { display: block; }
.marea-acciones { display: flex; flex-wrap: wrap; gap: .75rem; }
.mareas .btn-outline-gold { color: var(--casco) !important; border: 2px solid var(--casco) !important; background: transparent !important; }
.mareas .btn-outline-gold:hover, .mareas .btn-outline-gold:focus-visible { color: #fff !important; background: var(--casco) !important; }
.mareas-pie { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 2px solid var(--oro); }
@media (max-width: 767.98px) {
  .mareas-grilla { grid-template-columns: 1fr; }
}

/* Modal */
.modal-66 .modal-content { border: 2px solid var(--oro); border-radius: 0; background: var(--casco-hondo); color: #fff; box-shadow: 0 30px 90px rgba(0, 0, 0, .7); }
.modal-66.show .modal-content { animation: modal-66-entra .75s var(--curva) both; }
@keyframes modal-66-entra { from { transform: scale(.82); opacity: 0; } to { transform: none; opacity: 1; } }
.modal-66 ~ .modal-backdrop, .modal-backdrop.show { --bs-backdrop-opacity: .85; }
.modal-66-cabeza { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 1rem .75rem 1.25rem; }
.modal-66-cabeza h2 { margin: 0; color: #fff; font-size: clamp(1.35rem, 3vw, 2rem); line-height: 1.1; }
.modal-66-cabeza strong { color: var(--oro); font-size: 1.5em; font-weight: 400; }
.modal-66-cerrar { flex: none; width: 48px; height: 48px; border: 2px solid var(--oro); background: none; color: var(--oro); font-size: 1.25rem; }
.modal-66-cerrar:hover, .modal-66-cerrar:focus-visible { background: var(--oro); color: var(--casco-hondo); }
.modal-66 .carousel-item img { display: block; width: 100%; height: auto; max-height: 72vh; object-fit: contain; background: #000; }
.modal-66 .carousel-control-prev, .modal-66 .carousel-control-next { top: 50%; bottom: auto; width: 52px; height: 52px; margin: -26px .5rem 0; background: rgba(7, 24, 46, .85); border: 2px solid var(--oro); color: var(--oro); font-size: 1.4rem; opacity: 1; }
.modal-66-pie { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; padding: 1rem; }
.modal-66-pie .btn-outline-gold { color: #fff !important; border: 2px solid var(--oro) !important; background: transparent !important; }
.modal-66-pie .btn-outline-gold:hover, .modal-66-pie .btn-outline-gold:focus-visible { color: var(--casco-hondo) !important; background: var(--oro) !important; }

@media (max-width: 767.98px) {
  .novedades-cabeza { padding-bottom: 1rem; }
  .nov-lienzo { height: auto; aspect-ratio: 16 / 10; }
  .nov-imagen { padding: .5rem; }
  .nov-texto { flex-direction: column; align-items: stretch; padding-bottom: 3.5rem; }
  .novedades .carousel-control-prev, .novedades .carousel-control-next { top: calc(50vw * 1.25 / 2 - 22px); width: 44px; height: 44px; margin: 0 .25rem; }
  .modal-66 .modal-dialog { margin: .5rem; }
  .modal-66 .carousel-control-prev, .modal-66 .carousel-control-next { width: 44px; height: 44px; margin-top: -22px; }
  .modal-66-pie .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .novedades .carousel-item.active .nov-imagen img, .modal-66.show .modal-content { animation: none; }
}

/* Enlaces institucionales del pie */
.pie-enlaces { margin-top: 32px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.2); }
.pie-enlaces ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px 24px; margin: 0; }
.pie-enlaces a { display: block; padding: 6px 0; color: #fff; }
.pie-enlaces strong { display: block; font-weight: 600; font-size: .95rem; }
.pie-enlaces span { display: block; font-size: .85rem; color: rgba(255,255,255,.75); }
.pie-enlaces a:hover strong, .pie-enlaces a:focus-visible strong { color: var(--oro); }
.pie-enlaces ul { grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 12px 24px; }
.pie-enlaces a { display: flex; align-items: center; gap: 14px; }
.pie-logo { flex: 0 0 68px; width: 68px; height: 68px; padding: 7px; display: flex; align-items: center; justify-content: center; background: #fff; border-radius: 6px; }
.pie-logo.oscuro { background: var(--casco); border: 1px solid rgba(255,255,255,.35); }
.pie-logo.ancho { padding: 2px; }
.pie-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.pie-texto, .pie-enlaces a .pie-texto > span { display: block; min-width: 0; }

/* Publicaciones de redes */
.redes-grilla { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 28px; }
.red-ficha { display: flex; flex-direction: column; min-width: 0; background: #fff; border: 2px solid var(--casco); }
.red-ficha header { display: flex; align-items: center; gap: 14px; padding: 14px 18px; background: var(--casco); color: #fff; }
.red-ficha header i { font-size: 1.8rem; color: var(--oro); }
.red-ficha h3 { margin: 0; color: #fff; font-size: 1.3rem; }
.red-ficha header p { margin: 0; color: #fff; font-size: .9rem; }
.red-visor { flex: 1; height: 720px; overflow: auto; background: #f3f5f8; }
.red-visor iframe { display: block; width: 100%; height: 100%; border: 0; }
.red-abrir { margin: 14px 18px; align-self: flex-start; }
.red-visor { flex: 0 0 720px; }
.redes-grilla .red-visor:has(.red-sin-visor) { flex-basis: 320px; height: 320px; }
.red-sin-visor { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 24px; text-align: center; color: var(--casco); }
.red-sin-visor i { font-size: 3.5rem; }
.red-sin-visor strong { font-size: 1.3rem; overflow-wrap: anywhere; }
.red-sin-visor p { margin: 0; }
.red-visor iframe.red-post { height: 640px; margin-bottom: 14px; background: #fff; }

/* Galería por año */
.gal-filtros { display: flex; flex-wrap: wrap; gap: .5rem; margin: 2.5rem 0 0; }
.gal-filtros[hidden] { display: none; }
.gal-filtros button { min-height: 48px; padding: .5rem 1.1rem; border: 2px solid var(--casco); background: #fff; color: var(--casco); font-family: var(--display); font-size: 1.2rem; font-weight: 600; transition: background-color .2s, color .2s; }
.gal-filtros button:hover, .gal-filtros button:focus-visible { background: var(--casco); color: #fff; }
.gal-filtros button[aria-pressed="true"] { background: var(--oro); border-color: var(--oro); color: var(--casco-hondo); }
.gal-anio { margin-top: clamp(2.5rem, 5vw, 4rem); }
.gal-anio[hidden], .gal-antes[hidden] { display: none; }
.gal-anio-titulo { margin: 0 0 1rem; padding-bottom: .5rem; border-bottom: 4px solid var(--oro); color: var(--casco); font-size: clamp(2.75rem, 7vw, 5rem); line-height: 1; overflow-wrap: anywhere; }
.gal-aviso { margin: 0 0 1.25rem; max-width: 70ch; font-size: 1.125rem; }
.gal-antes { margin-top: clamp(3rem, 7vw, 5.5rem); padding-top: 2rem; border-top: 2px solid var(--casco); }
.gal-antes > h2 { margin: 0 0 .5rem; color: var(--casco); font-size: clamp(2.25rem, 5vw, 4rem); line-height: 1.05; }
.gal-antes .gal-anio { margin-top: 2.5rem; }
.gal-ampliar { display: block; width: 100%; padding: 0; border: 0; background: var(--casco-hondo); cursor: zoom-in; }
.gal-antes .gp-item img { object-fit: contain; }
.gp-item figcaption:has(small) { display: block; }
.gp-item figcaption small { display: block; margin-top: .4rem; font-family: var(--cuerpo, inherit); font-size: .95rem; font-weight: 400; }
.gal-credito a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.gal-credito a:hover, .gal-credito a:focus-visible { color: var(--oro); }

/* Directores anteriores */
.dir-anteriores { margin-top: clamp(3rem, 7vw, 5.5rem); padding-top: 2rem; border-top: 4px solid var(--oro); }
.dir-anteriores > h2 { margin: 0 0 .75rem; color: var(--casco); font-size: clamp(2.25rem, 5vw, 4rem); line-height: 1.05; }
.dir-aviso { margin: 0 0 2rem; max-width: 72ch; font-size: 1.125rem; }
.dir-anterior h3 { margin: .25rem 0 .5rem; color: var(--casco); font-size: 1.3rem; line-height: 1.15; text-transform: uppercase; overflow-wrap: anywhere; }
.dir-anterior .body { padding: 1rem; }
.dir-periodo, .dir-fuente { margin: 0 0 .5rem; font-size: 1rem; }
.dir-fuente { margin: 0; }
.dir-fuente a { color: var(--casco); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
@media (max-width: 575.98px) {
  .dir-anterior h3 { font-size: 1.1rem; }
  .dir-anterior .body { padding: .75rem; }
}

/* Trámites de la Escuela Naval (tramites.php) */
.tram-busqueda { margin: 2.5rem 0 1rem; }
html:not(.js) .tram-busqueda { display: none; }
.tram-busqueda label { display: block; margin-bottom: .5rem; font-family: var(--display); font-size: 1.3rem; font-weight: 700; color: var(--casco); text-transform: uppercase; }
.tram-campo { display: flex; gap: .75rem; flex-wrap: wrap; }
.tram-campo input { flex: 1 1 240px; min-width: 0; height: 52px; padding: 0 12px; border: 2px solid var(--casco); border-radius: 0; background: #fff; color: var(--texto); font-size: 1.125rem; }
.tram-campo input::placeholder { color: var(--texto-2); opacity: 1; }
.tram-campo input:focus-visible { outline: 3px solid #1f6fa8; outline-offset: -3px; }
.tram-todas { min-height: 52px; padding: .35rem 1.25rem; border: 2px solid var(--casco); border-radius: 0; background: #fff; color: var(--casco); font-family: var(--display); font-size: 1.2rem; font-weight: 700; transition: background-color .2s, color .2s; }
.tram-todas:hover { background: var(--acero); }
.tram-todas[aria-pressed="true"] { background: var(--casco); color: #fff; }
.tram-todas:focus-visible { outline: 3px solid var(--casco); outline-offset: 3px; }
.tramites { margin: 0; padding: 0; list-style: none; background: #fff; border-top: 2px solid var(--casco); }
.tramites > li { border: 2px solid var(--casco); border-top: 0; }
.tramites > li[hidden] { display: none; }
.tramite > summary { display: grid; grid-template-columns: 3rem minmax(0, 1fr) 1.25rem; gap: .25rem 1rem; align-items: center; min-height: 60px; padding: .75rem 1rem; cursor: pointer; list-style: none; transition: background-color .2s; }
.tramite > summary::-webkit-details-marker { display: none; }
.tramite > summary:hover { background: var(--acero); }
.tramite > summary:focus-visible { outline: 3px solid var(--casco); outline-offset: -3px; }
.tramite[open] > summary:focus-visible { outline-color: var(--oro); }
.tram-num { font-family: var(--stencil); font-size: 1.6rem; line-height: 1; color: var(--oro-texto); font-variant-numeric: tabular-nums; }
.tram-nombre { font-family: var(--display); font-size: 1.4rem; font-weight: 700; line-height: 1.15; color: var(--casco); overflow-wrap: anywhere; }
.tramite .bi-chevron-down { color: var(--casco); transition: transform .2s; }
.tramite[open] .bi-chevron-down { transform: rotate(180deg); }
.tramite[open] > summary { background: var(--casco); }
.tramite[open] > summary .tram-nombre, .tramite[open] > summary .bi-chevron-down { color: #fff; }
.tramite[open] > summary .tram-num { color: var(--oro); }
.tram-cuerpo { display: grid; gap: 1.25rem; padding: 1.25rem 1rem 1.5rem; }
.tram-cuerpo h3 { margin: 0 0 .5rem; font-size: 1.3rem; color: var(--casco); text-transform: uppercase; }
.tram-lista { margin: 0; padding-left: 1.5rem; max-width: 72ch; font-size: 1.0625rem; line-height: 1.55; }
.tram-lista li + li { margin-top: .4rem; }
.tram-lista a, .tram-soporte a { color: var(--casco); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.tram-lista a:focus-visible, .tram-soporte a:focus-visible, .tram-origen a:focus-visible { outline: 3px solid var(--casco); outline-offset: 3px; }
.tram-soporte { overflow-wrap: anywhere; }
.tram-origen { margin: 0; }
.tram-origen .btn-outline { display: inline-flex; align-items: center; gap: .5rem; min-height: 48px; padding: .6rem 1.25rem; border: 2px solid var(--casco); border-radius: 0; color: var(--casco); font-family: var(--display); font-size: 1.2rem; font-weight: 700; text-decoration: none; transition: background-color .2s, color .2s; }
.tram-origen .btn-outline:hover { background: var(--casco); color: #fff; }
.tram-vacio { margin: 1.5rem 0 0; font-size: 1.125rem; }
.tram-vacio[hidden] { display: none; }
.tram-fuente { margin: 2.5rem 0 0; padding-top: 1rem; border-top: 2px solid var(--casco); max-width: 72ch; font-size: 1rem; color: var(--texto-2); }
@media (max-width: 575.98px) {
  .tramite > summary { grid-template-columns: 2.25rem minmax(0, 1fr) 1.25rem; padding: .75rem; }
  .tram-num { font-size: 1.3rem; }
  .tram-nombre { font-size: 1.2rem; }
  .tram-cuerpo { padding: 1rem .75rem 1.25rem; }
  .tram-lista { padding-left: 1.25rem; }
  .tram-origen .btn-outline, .tram-todas { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .tramite .bi-chevron-down, .tramite > summary, .tram-todas, .tram-origen .btn-outline { transition: none; }
}
.tram-diagrama { display: block; max-width: 720px; border: 2px solid var(--linea, #0d2b5c); background: #fff; }
.tram-diagrama img { display: block; width: 100%; height: auto; }

/* Enlace de ingreso en la barra */
.navbar-naval .nav-ingresar { color: var(--oro, #c9a227) !important; font-weight: 600; white-space: nowrap; }

/* Botón Ingresar: acceso a los sistemas */
.navbar-naval .btn-acceso { color: var(--casco-hondo, #07182e) !important; background: var(--oro, #c9a227); border: 2px solid var(--oro, #c9a227); padding: .35rem .9rem !important; margin-left: .5rem; font-weight: 600; white-space: nowrap; }
.navbar-naval .btn-acceso:hover, .navbar-naval .btn-acceso:focus-visible { background: transparent; color: var(--oro, #c9a227) !important; }
@media (max-width: 1199.98px) { .navbar-naval .btn-acceso { display: inline-block; margin: .5rem 0 0; } }

/* Directores anteriores: grado actual, notas y lista de fuentes */
.dir-anterior .body { text-align: left; }
.dir-anterior .grado { font-size: 1rem; letter-spacing: 0; }
.dir-hoy { margin: 0 0 .5rem; padding: .15rem .5rem; display: inline-block; background: var(--casco, #0b2240); color: #fff; font-family: var(--display, "Barlow Condensed", sans-serif); font-size: 1.1rem; font-weight: 700; text-transform: uppercase; }
.dir-nota { margin: 0 0 .5rem; font-size: .95rem; color: var(--texto-2, #43536a); }
.dir-fuente-tit { font-weight: 700; color: var(--casco, #0b2240); }
.dir-fuentes { margin: 0 0 .5rem; padding-left: 1.1rem; font-size: .95rem; line-height: 1.4; color: var(--texto-2, #43536a); }
.dir-fuentes li + li { margin-top: .25rem; }
.dir-fuentes a { color: var(--casco, #0b2240); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.dir-anterior .director-photo-placeholder { aspect-ratio: 3 / 4; }
@media (max-width: 575.98px) {
  .dir-hoy { font-size: 1rem; }
  .dir-fuentes, .dir-nota { font-size: .9rem; }
}
