/* Site layout. */
.page--site { max-width: 72rem; margin: 0 auto; padding: 0 var(--cms-gap); }
.site-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--cms-gap); padding: var(--cms-gap) 0; border-bottom: 1px solid var(--cms-border); margin-bottom: var(--cms-gap); }
.site-header .block-title { font-size: 1rem; margin: 0; }
.site-branding { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--cms-text); }
.site-logo { display: block; max-height: 3rem; width: auto; }
.site-name { font-size: 1.25rem; font-weight: 700; text-decoration: none; color: var(--cms-text); }
.site-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--cms-gap); }
/* Menus (architecture 10.11): in the header, sub-links drop down on hover
   and keyboard focus; elsewhere they are an indented list. */
.site-nav li { position: relative; }
.site-nav ul ul { display: none; position: absolute; top: 100%; left: 0; z-index: 20; min-width: 12rem; flex-direction: column; gap: 0; padding: .35rem 0; background: var(--cms-bg); border: 1px solid var(--cms-border); border-radius: var(--cms-radius); box-shadow: 0 4px 12px rgba(0, 0, 0, .08); }
.site-nav ul ul a { display: block; padding: .3rem .9rem; }
.site-nav li:hover > ul, .site-nav li:focus-within > ul { display: flex; }
.site-nav ul ul ul { top: 0; left: 100%; }
.menu-nav a[aria-current="page"], .menu-nav .is-active-trail > a { font-weight: 600; }
.region-sidebar .menu-nav ul, .region-footer .menu-nav ul { list-style: none; margin: 0; padding: 0; }
.region-sidebar .menu-nav ul ul { padding-left: 1rem; }
.region-sidebar .menu-nav a { display: block; padding: .2rem 0; }
.region-footer .menu-nav > ul { display: flex; flex-wrap: wrap; gap: var(--cms-gap); }
.site-body { display: flex; gap: 2rem; align-items: flex-start; }
.site-main { flex: 1; min-width: 0; padding-bottom: 2rem; }
.region-sidebar { flex: 0 0 15rem; min-width: 0; padding-bottom: 2rem; }
.region-sidebar .block + .block { margin-top: 1.5rem; }
.block-title { font-size: 1.1rem; margin: 0 0 .5rem; }
.site-footer { border-top: 1px solid var(--cms-border); padding: var(--cms-gap) 0 2rem; margin-top: var(--cms-gap); display: flex; flex-wrap: wrap; gap: var(--cms-gap); justify-content: space-between; }
@media (max-width: 48rem) {
  .site-body { flex-direction: column; }
  .region-sidebar { flex-basis: auto; width: 100%; order: 2; }
}
@media print { .site-header, .region-sidebar, .site-footer { display: none; } }
