/* Shared navigation is self-contained across the directory, features and archives. */
html:has(.site-consult) { scroll-padding-top: 5rem; }
.site-header { margin: 0; padding: 0; border: 0; border-bottom: 1px solid #ccd2dc; background: #fffdf7; color: #173961; font: 16px/1.75 system-ui,sans-serif; }
.site-header__inner, .site-consult__inner { width: min(72rem,92%); margin-inline: auto; }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .65rem 1.4rem; padding-block: 1rem; }
.site-header__brand { display: inline-flex; align-items: center; gap: .6rem; min-width: 0; color: #173961; font: 700 clamp(1rem,2.3vw,1.55rem)/1.5 "Yu Mincho","Hiragino Mincho ProN",serif; text-decoration: none; }
.site-header__stamp { display: grid; place-items: center; width: 1.85em; height: 1.85em; flex-shrink: 0; background: #173961; color: #fffdf5; font-size: .86em; }
.site-header__nav { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem clamp(.9rem,2vw,1.8rem); font-size: .85rem; font-weight: 650; }
.site-header__nav a { display: inline-block; padding-block: .4rem; color: #173961; text-decoration: none; text-underline-offset: .3em; }
.site-header__nav a:hover, .site-header__nav a[aria-current] { text-decoration: underline; }
.site-consult { position: sticky; top: 0; z-index: 20; background: #173961; color: #fffdf5; font: .82rem/1.75 system-ui,sans-serif; box-shadow: 0 2px 6px #132b5020; }
.site-consult__inner { display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding-block: .55rem; }
.site-consult a { flex-shrink: 0; padding: .35rem .8rem; background: #d6eaff; color: #173961; font-weight: 750; text-decoration: none; }
.site-consult a:hover { background: #e7f3ff; color: #173961; }
.site-header a:focus-visible, .site-consult a:focus-visible { outline: 3px solid #2274b0; outline-offset: 3px; }
body.site-photos { max-width: none; margin: 0; padding: 0; }
body.site-photos > main, body.site-photos > footer { width: min(50.4rem,calc(100% - 2rem)); margin-inline: auto; }
body.site-photos > main { padding-top: 1.4rem; }
body.site-photos > footer { padding-bottom: 3rem; }
@media(max-width:700px) {
  .site-header__inner { gap: .45rem 1rem; padding-block: .8rem; }
  .site-header__nav { gap: .05rem 1rem; font-size: .8rem; }
  .site-consult { font-size: .72rem; }
  .site-consult a { padding: .4rem .55rem; }
}
