/* ==========================================================================
   Layout — header, navigation, footer, page shells
   ========================================================================== */

/* --- Utility bar --- */
.ss-utility { background: var(--ss-color-primary-deep); color: #fff; font-size: var(--ss-text-sm); }
.ss-utility .ss-container { display: flex; justify-content: space-between; align-items: center; gap: var(--ss-space-4); min-height: 36px; }
.ss-utility a { color: #fff; text-decoration: none; }
.ss-utility a:hover { text-decoration: underline; }
.ss-utility__contact { display: flex; gap: var(--ss-space-4); flex-wrap: wrap; }
.ss-utility ul { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--ss-space-4); }
@media (max-width: 767px) { .ss-utility__contact { display: none; } }

/* --- Header --- */
.ss-header { position: sticky; top: 0; z-index: 1000; background: #fff; border-bottom: 1px solid var(--ss-color-border); transition: box-shadow var(--ss-ease); }
.ss-header.is-scrolled { box-shadow: var(--ss-shadow-sm); }
.admin-bar .ss-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ss-header { top: 46px; } }
.ss-header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--ss-space-4); min-height: var(--ss-header-height); }
.ss-logo { display: inline-flex; align-items: center; flex: none; }
.ss-logo img { height: 56px; width: auto; }
.ss-logo__text { font-family: var(--ss-font-heading); font-weight: var(--ss-weight-extrabold); font-size: var(--ss-text-lg); color: var(--ss-color-text); text-decoration: none; }
@media (max-width: 767px) { .ss-logo img { height: 44px; } }

/* --- Primary nav (desktop) --- */
.ss-nav { display: flex; align-items: center; gap: var(--ss-space-3); margin-left: auto; min-width: 0; }
/* Six top-level items + carets + Donate must fit between 1024 and ~1440px: widen the header container and tighten spacing. */
.ss-header .ss-header__inner { max-width: var(--ss-container-wide); }
@media (min-width: 1024px) and (max-width: 1440px) { .ss-nav__list > li > a, .ss-nav__list > li > button { font-size: .9375rem; padding-inline: .55rem; } .ss-nav__list > li > .ss-nav__toggle-sub { min-width: 26px; margin-left: -.45rem; } .ss-nav__list { gap: 0; } }
.ss-nav__list, .ss-nav__list ul { list-style: none; margin: 0; padding: 0; }
.ss-nav__list { display: flex; gap: .25rem; }
.ss-nav__list li { margin: 0; position: relative; }
.ss-nav__list > li { display: flex; align-items: center; flex-wrap: nowrap; }
.ss-nav__list > li > .ss-nav__toggle-sub { min-width: 32px; min-height: 44px; padding: 0 .35rem; margin-left: -.5rem; display: inline-flex; align-items: center; justify-content: center; }
.ss-nav__list > li > a, .ss-nav__list > li > button { white-space: nowrap; display: inline-flex; align-items: center; gap: .35rem; padding: .6rem .9rem; min-height: 44px; font-family: var(--ss-font-display); font-weight: var(--ss-weight-semibold); font-size: 1.0625rem; letter-spacing: .03em; text-transform: uppercase; color: var(--ss-color-text); text-decoration: none; border-radius: 0; background: none; border: 0; }
.ss-nav__list > li > a:hover, .ss-nav__list > li > button:hover, .ss-nav__list > li.current-menu-item > a, .ss-nav__list > li.current-menu-ancestor > a { color: var(--ss-color-primary-dark); background: var(--ss-color-primary-tint); }
.ss-nav__list > li.current-menu-item > a { box-shadow: inset 0 -4px 0 var(--ss-color-orange); }
.ss-nav__toggle-sub { font: inherit; }
.ss-nav__toggle-sub::after { content: ""; width: .5em; height: .5em; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform var(--ss-ease); }
.ss-nav__list > li[aria-expanded="true"] > .ss-nav__toggle-sub::after, .ss-nav__list > li.is-open > .ss-nav__toggle-sub::after { transform: rotate(225deg) translateY(-1px); }

/* Submenu (desktop dropdown) */
.ss-nav__list .sub-menu { position: absolute; top: 100%; left: 0; min-width: 16rem; padding: .5rem; background: #fff; border: 1px solid var(--ss-color-border); border-radius: var(--ss-radius-md); box-shadow: var(--ss-shadow-md); display: none; z-index: 20; }
.ss-nav__list li.is-open > .sub-menu, .ss-nav__list li:focus-within > .sub-menu { display: block; }
.ss-nav__list .sub-menu a { display: block; padding: .55rem .75rem; min-height: 44px; font-size: var(--ss-text-sm); color: var(--ss-color-text); text-decoration: none; border-radius: var(--ss-radius-sm); }
.ss-nav__list .sub-menu a:hover, .ss-nav__list .sub-menu .current-menu-item > a { background: var(--ss-color-surface); color: var(--ss-color-primary-dark); }
.ss-nav__list .sub-menu .sub-menu { position: static; box-shadow: none; border: 0; padding-left: .75rem; }
.ss-nav__list .sub-menu .sub-menu a { font-size: var(--ss-text-xs); }

/* Donate */
.ss-header__donate { margin-left: var(--ss-space-2); flex: none; }
.ss-header__donate .ss-btn { min-height: 44px; padding: .6rem 1.25rem; font-size: 1.0625rem; }

/* --- Mobile toggle --- */
.ss-nav__toggle { display: none; align-items: center; gap: .5rem; min-height: 44px; min-width: 44px; padding: .5rem .75rem; background: none; border: 1px solid var(--ss-color-border); border-radius: var(--ss-radius-sm); font-family: var(--ss-font-heading); font-weight: var(--ss-weight-bold); font-size: var(--ss-text-sm); color: var(--ss-color-text); }
.ss-nav__toggle .ss-burger { position: relative; width: 20px; height: 14px; }
.ss-nav__toggle .ss-burger::before, .ss-nav__toggle .ss-burger::after, .ss-nav__toggle .ss-burger span { content: ""; position: absolute; left: 0; width: 100%; height: 2px; background: currentColor; border-radius: 2px; transition: transform var(--ss-ease), opacity var(--ss-ease); }
.ss-nav__toggle .ss-burger::before { top: 0; } .ss-nav__toggle .ss-burger span { top: 6px; } .ss-nav__toggle .ss-burger::after { bottom: 0; }
.ss-nav__toggle[aria-expanded="true"] .ss-burger::before { transform: translateY(6px) rotate(45deg); }
.ss-nav__toggle[aria-expanded="true"] .ss-burger span { opacity: 0; }
.ss-nav__toggle[aria-expanded="true"] .ss-burger::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 1023px) {
  .ss-nav__toggle { display: inline-flex; }
  .ss-nav { position: fixed; inset: var(--ss-header-height) 0 0 0; z-index: 999; background: #fff; flex-direction: column; align-items: stretch; gap: 0; padding: var(--ss-space-4) var(--ss-gutter) var(--ss-space-8); overflow-y: auto; transform: translateX(100%); transition: transform var(--ss-ease); visibility: hidden; }
  .admin-bar .ss-nav { top: calc(var(--ss-header-height) + 46px); }
  .ss-nav.is-open { transform: none; visibility: visible; }
  .ss-nav__list { flex-direction: column; gap: 0; }
  .ss-nav__list > li { border-bottom: 1px solid var(--ss-color-border); }
  .ss-nav__list > li > a, .ss-nav__list > li > button { width: 100%; justify-content: space-between; padding: .9rem .5rem; font-size: var(--ss-text-base); border-radius: 0; }
  .ss-nav__list > li.current-menu-item > a { box-shadow: inset 4px 0 0 var(--ss-color-primary); }
  .ss-nav__list .sub-menu { position: static; display: none; min-width: 0; border: 0; box-shadow: none; padding: 0 0 .5rem .75rem; }
  .ss-nav__list li.is-open > .sub-menu { display: block; }
  .ss-nav__list li:focus-within > .sub-menu { display: none; }
  .ss-nav__list li.is-open:focus-within > .sub-menu { display: block; }
  .ss-header__donate { margin: var(--ss-space-4) 0 0; width: 100%; }
  .ss-header__donate .ss-btn { width: 100%; }
  body.ss-nav-open { overflow: hidden; }
}

/* --- Transparent header (front page hero) --- */
.sse-header-transparent .ss-header:not(.is-scrolled) { position: fixed; width: 100%; background: transparent; border-color: transparent; }

/* --- Page shells --- */
.ss-main { min-height: 50vh; }
.ss-page-header { position: relative; padding-block: var(--ss-space-7) var(--ss-space-6); background: var(--ss-color-primary-deep); color: #fff; overflow: hidden; }
.ss-page-header::before { content: ""; position: absolute; inset: 0; background: var(--ss-hex-pattern) right -60px center / 320px repeat-y; opacity: .9; pointer-events: none; }
.ss-page-header .ss-container { position: relative; }
.ss-page-header__title, .ss-page-header .ss-breadcrumbs, .ss-page-header .ss-eyebrow { color: #fff; }
.ss-page-header .ss-eyebrow { color: var(--ss-color-yellow); }
.ss-page-header__title { margin: 0; }
.ss-page-header__desc { margin-top: var(--ss-space-3); max-width: var(--ss-measure); color: rgba(255,255,255,.88); font-size: var(--ss-text-lg); }
.ss-page-header--hero { position: relative; padding: 0; background: var(--ss-color-primary-deep); color: #fff; border: 0; min-height: 320px; display: grid; }
.ss-page-header--hero .ss-page-header__media { grid-area: 1/1; }
.ss-page-header--hero .ss-page-header__media img { width: 100%; height: 100%; object-fit: cover; min-height: 320px; max-height: 520px; }
.ss-page-header--hero .ss-page-header__body { grid-area: 1/1; align-self: end; padding: var(--ss-space-7) 0 var(--ss-space-6); background: linear-gradient(to top, rgba(10,63,99,.92), rgba(10,63,99,.35) 60%, transparent); }
.ss-page-header--hero .ss-page-header__title, .ss-page-header--hero .ss-page-header__desc, .ss-page-header--hero .ss-eyebrow { color: #fff; }
.ss-breadcrumbs { font-size: var(--ss-text-sm); color: var(--ss-color-text-muted); margin-bottom: var(--ss-space-3); }
.ss-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem; }
.ss-breadcrumbs li + li::before { content: "/"; margin-right: .25rem; opacity: .6; }
.ss-breadcrumbs a { color: inherit; }
.ss-page-header--hero .ss-breadcrumbs { color: rgba(255,255,255,.85); }
.ss-content { padding-block: var(--ss-section); }
.ss-content--with-sidebar { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--ss-space-8); align-items: start; }
@media (max-width: 900px) { .ss-content--with-sidebar { grid-template-columns: 1fr; } }
.ss-sidebar > * + * { margin-top: var(--ss-space-6); }

/* Shortcode-composed pages (no Elementor): sections stack with rhythm */
.ss-page-content > * + * { margin-top: var(--ss-section); }
.ss-page-content > p + p { margin-top: 1em; }
.ss-page-content > h2 { margin-bottom: var(--ss-space-5); }

/* Elementor full-width/canvas: let Elementor own the page */
.sse-elementor-page .ss-content { padding: 0; }
.elementor-page .ss-page-header { display: none; }

/* --- Footer --- */
.ss-footer { background: var(--ss-color-primary-deep); color: #fff; margin-top: auto; }
.ss-footer a:not(.ss-btn) { color: #fff; }
.ss-footer__cta { background: var(--ss-color-primary); }
.ss-footer__cta .ss-container { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ss-space-4); padding-block: var(--ss-space-6); }
.ss-footer__cta h2 { color: #fff; margin: 0; font-size: var(--ss-text-3xl); }
.ss-footer__cta, .ss-footer { position: relative; }
.ss-footer__cta::before { content: ""; position: absolute; inset: 0; background: var(--ss-hex-pattern) right -40px top -30px / 220px no-repeat; pointer-events: none; }
.ss-footer__cta .ss-container { position: relative; }
.ss-footer__cta p { margin: .25rem 0 0; color: rgba(255,255,255,.85); }
.ss-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: var(--ss-space-7); padding-block: var(--ss-space-8) var(--ss-space-6); }
@media (max-width: 900px) { .ss-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .ss-footer__grid { grid-template-columns: 1fr; gap: var(--ss-space-6); } }
.ss-footer__brand img { height: 48px; width: auto; filter: brightness(0) invert(1); }
.ss-footer__tagline { margin: var(--ss-space-4) 0; color: rgba(255,255,255,.85); max-width: 36ch; }
.ss-footer h2.widget-title, .ss-footer__heading { font-family: var(--ss-font-display); font-size: 1.25rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ss-color-yellow); margin-bottom: var(--ss-space-3); }
.ss-footer ul { list-style: none; margin: 0; padding: 0; }
.ss-footer li { margin-bottom: .5rem; }
.ss-footer__nav a, .ss-footer address a { text-decoration: none; }
.ss-footer__nav a:hover, .ss-footer address a:hover { text-decoration: underline; }
.ss-footer address { font-style: normal; line-height: 1.6; }
.ss-social { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: var(--ss-space-4); }
.ss-social a { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: rgba(255,255,255,.12); transition: background var(--ss-ease); }
.ss-social a:hover { background: rgba(255,255,255,.24); }
.ss-social svg { width: 20px; height: 20px; fill: #fff; }
.ss-footer__bottom { border-top: 1px solid rgba(255,255,255,.15); padding-block: var(--ss-space-4); font-size: var(--ss-text-sm); color: rgba(255,255,255,.75); }
.ss-footer__bottom .ss-container { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--ss-space-3); }
.ss-footer__bottom ul { display: flex; flex-wrap: wrap; gap: var(--ss-space-4); }
.ss-footer__bottom li { margin: 0; }
.ss-footer__credit { font-size: var(--ss-text-xs); opacity: .7; }
.ss-footer__hex { display: flex; gap: .3rem; margin-bottom: var(--ss-space-4); }
.ss-footer__hex .ss-hex { width: .75rem; height: .85rem; }
