/* Local fonts (hosted in /fonts/) */
    @font-face {
      font-family: "Atkinson Hyperlegible Next";
      src: url("/fonts/AtkinsonHyperlegibleNext-Medium.otf") format("opentype");
      font-weight: 500;
      font-style: normal;
      font-display: swap;
    }
    @font-face {
      font-family: "Oxanium";
      src: url("/fonts/Oxanium-SemiBold.ttf") format("truetype");
      font-weight: 600;
      font-style: normal;
      font-display: swap;
    }
    @font-face {
      font-family: "Oxanium";
      src: url("/fonts/Oxanium-Light.ttf") format("truetype");
      font-weight: 300;
      font-style: normal;
      font-display: swap;
    }

    :root {
      --graphite: #5F6368;
      --parchment: #E6E1D6;
      --black: #000000;

      /* Responsive type: respects user settings while scaling gently across devices */
      --body-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
      --body-leading: 1.55;
    }

    * { box-sizing: border-box; }

    body {
      margin: 0;
      background: var(--bg);
      color: var(--fg);
      font-family: var(--font-body);
      font-size: var(--body-size);
      line-height: var(--body-leading);
      text-rendering: optimizeLegibility;
    
      padding-bottom: 4.25rem; /* keeps last content clear of footer */
    }

    /* Top logo: pinned to top, centred horizontally */
    header {
      width: 100%;
      padding: 1.25rem 1rem 0.75rem;
      display: flex;
      justify-content: center;
      align-items: flex-start;
    }

    header img {
      display: block;
      max-width: min(90vw, 680px);
      height: auto;
    }

    main {
      width: 100%;
      padding: 0 0 2.5rem;
    }

    .banner {
      width: 100%;
      background: var(--graphite);
      color: var(--parchment);
      padding: 0.9rem 1rem;
    }

    .banner h2 {
      margin: 0;
      font-family: "Oxanium", system-ui, sans-serif;
      font-weight: 600;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      font-size: 1.5em; /* ≈ 1.5x body size */
      line-height: 1.2;
    }

    .content {
      width: 100%;
      max-width: 980px;
      margin: 0 auto;
      padding: 1.25rem 1rem 1.75rem;
    }

    .subtitle {
      color: #3E5F8A;
      font-family: "Oxanium", system-ui, sans-serif;
      font-weight: 600;
      font-size: 1.5em;     /* same as body */
      letter-spacing: 0.02em;
      text-transform: none; /* normal capitalisation */
    
      line-height: 1.2;
    }

    p { margin: 0 0 1rem; }

    ul {
      margin: 0 0 1rem 1.25rem;
      padding: 0;
    }
    li { margin: 0.4rem 0; }

    .table-wrap {
      overflow-x: auto;
      border: 1px solid rgba(0,0,0,0.12);
      border-radius: 10px;
      background: rgba(255,255,255,0.35);
      margin: 0 0 1.25rem;
    }

    table {
      width: 100%;
      border-collapse: collapse;
      min-width: 560px;
    }

    th, td {
      text-align: left;
      padding: 0.85rem 0.9rem;
      border-bottom: 1px solid rgba(0,0,0,0.10);
      vertical-align: top;
    }

    thead th {
      font-family: "Oxanium", system-ui, sans-serif;
      font-weight: 600;
      font-size: 1em;
    }

    .subnote {
      font-size: 0.95em;
      opacity: 0.9;
    }

    a {
      color: #6E2C2C;
      text-decoration: underline;
      text-decoration-thickness: 2px;
      text-underline-offset: 3px;
    }

    .cta {
      font-family: "Oxanium", system-ui, sans-serif;
      font-weight: 600;
    }

    .legal-list {
      margin-left: 1.1rem;
    }

    /* Anchor offset: if/when you add a fixed menu later */
    :target {
      scroll-margin-top: calc(var(--masthead-h) + 16px);
    }

    /* Anchor offset for section jumps (fixed masthead aware) */
    section[id] {
      scroll-margin-top: calc(var(--masthead-h) + 16px);
    }

    

    /* Night mode */
    @media (prefers-color-scheme: dark) {
  :root { --bg: #2F3339; --fg: var(--parchment); --footer-bg: var(--graphite); }

      body {
        background: #2F3339;
        color: var(--parchment);
      }
      .content {
        background: transparent;
      }
      .table-wrap {
        border-color: rgba(230,225,214,0.25);
        background: rgba(0,0,0,0.15);
      }
      th, td {
        border-bottom-color: rgba(230,225,214,0.18);
      }
      a {
        color: var(--parchment);
      }
    }


    /* Fixed masthead (three-bar) */
    .masthead {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 1000;
      background: transparent;
    }

    .masthead-top {
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.5rem;
      padding: 0.35rem 0.75rem;
      background: #FFFFFF;
    }

    .masthead-left {
      display: flex;
      align-items: center;
      gap: 0.5rem;
      min-width: 0;
    }

    .nav-toggle {
      position: absolute;
      opacity: 0;
      pointer-events: none;
    }

    /* Icon buttons: 44px tap target; 32px square artwork */
    .icon-btn {
      width: 44px;
      height: 44px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 10px;
      text-decoration: none;
      flex: 0 0 auto;
    }

    .icon-swap {
      position: relative;
      width: 32px;
      height: 32px;
      display: inline-block;
    }

    .icon {
      width: 32px;
      height: 32px;
      display: block;
    }

    .icon-default, .icon-hover, .icon-open {
      position: absolute;
      inset: 0;
      opacity: 0;
      transition: opacity 140ms linear;
    }
    .icon-default { opacity: 1; }

    /* Hover/focus swaps to the -h asset (Muted Blue artwork as provided) */
    .icon-btn:hover .icon-default,
    .icon-btn:focus-visible .icon-default {
      opacity: 0;
    }
    .icon-btn:hover .icon-hover,
    .icon-btn:focus-visible .icon-hover {
      opacity: 1;
    }

    /* Third state for menu: open (checkbox checked) */
    #nav-toggle:checked + .icon-btn--menu .icon-default { opacity: 0; }
    #nav-toggle:checked + .icon-btn--menu .icon-hover { opacity: 0; }
    #nav-toggle:checked + .icon-btn--menu .icon-open { opacity: 1; }

    /* Brand text */
    .brand {
      display: flex;
      align-items: baseline;
      gap: 0.35rem;
      min-width: 0;
      white-space: nowrap;
      font-family: "Oxanium", system-ui, sans-serif;
      letter-spacing: 0.04em;
      font-size: 1.5em; /* matches section banner titles */
      line-height: 1.1;
    }

    .brand-line1 {
      font-weight: 600;
      color: #6E2C2C;
      text-transform: none;
    }

    .brand-line2 {
      font-weight: 300;
      color: #5F6368;
      text-transform: none;
    }

    /* Mobile: two-line lockup, 2:1 ratio, no ellipsis */
    @media (max-width: 520px) {
      .brand {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.08em;
      }
      .brand-line1 {
        font-size: 1em;
        line-height: 1.05;
      }
      .brand-line2 {
        font-size: 0.5em;
        line-height: 1.0;
      }
    }

    /* Menu icon visible on mobile only */
    @media (min-width: 768px) {
      .icon-btn--menu {
        display: none;
      }
    }

    .masthead-accent {
      height: 5px;
      background: #3E5F8A;
    }

    .masthead-hairline {
      height: 1px;
      background: #FFFFFF;
    }

    /* Offset page content so fixed masthead doesn't cover it */
    body {
      padding-top: calc(44px + 0.7rem + 6px);
    }

    /* Night mode: masthead background adapts */
    @media (prefers-color-scheme: dark) {
      .masthead-top {
        background: #2F3339;
      }
      .masthead-hairline {
        background: #2F3339;
      }
    }


    /* Navigation drawer / sidebar */
    .side-menu {
      position: fixed;
      top: calc(44px + 0.7rem + 6px); /* below masthead */
      left: 0;
      height: calc(100vh - (44px + 0.7rem + 6px));
      width: 100%;
      background: #FFFFFF;
      transform: translateX(-100%);
      transition: transform 180ms ease;
      z-index: 900;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
    }

    .side-menu-inner {
      padding: 1rem 1rem 2rem;
      max-width: 520px;
    }

    .menu-link,
    .menu-contact {
      display: block;
      font-family: "Oxanium", system-ui, sans-serif;
      font-weight: 600;
      font-size: 1.5em; /* subtitle now matches title scale per your latest decision */
      letter-spacing: 0.04em;
      text-transform: none;
      padding: 0.75rem 0.25rem;
      color: #6E2C2C; /* follows link rule: oxblood default */
      text-decoration: none;
    }

    .menu-link:hover,
    .menu-link:focus-visible,
    .menu-contact:hover,
    .menu-contact:focus-visible {
      color: #5F6368; /* follows link hover rule */
      text-decoration: none;
    }

    
    .menu-link.is-active {
      background: #5F6368;
      color: #E6E1D6;
    }
    .menu-link.is-active:hover,
    .menu-link.is-active:focus-visible {
      background: #5F6368;
      color: #E6E1D6;
    }
.menu-sep {
      height: 1px;
      background: #3E5F8A;
      width: 100%;
    }

    .menu-overlay {
      position: fixed;
      inset: calc(44px + 0.7rem + 6px) 0 0 0;
      background: rgba(0,0,0,0.15);
      opacity: 0;
      pointer-events: none;
      transition: opacity 180ms ease;
      z-index: 850;
    }

    /* Open state (mobile): drawer slides in; overlay appears; page locks */
    body.menu-open .side-menu {
      transform: translateX(0);
    }
    body.menu-open .menu-overlay {
      opacity: 1;
      pointer-events: auto;
    }
    body.menu-open {
      overflow: hidden;
      touch-action: none;
    }

    /* Desktop persistent sidebar */
    @media (min-width: 768px) {
      .side-menu {
        transform: translateX(0);
        width: 280px;
      }
      .side-menu-inner {
        max-width: none;
      }
      .menu-overlay {
        display: none;
      }
      body {
        padding-left: 280px;
      }
    }

    /* Night mode for menu surfaces */
    @media (prefers-color-scheme: dark) {
      .side-menu {
        background: #2F3339;
      }
      .menu-overlay {
        background: rgba(0,0,0,0.35);
      }
    }

    /* Menu icon open state: oxblood asset when open, muted blue on hover */
    #nav-toggle:checked + .icon-btn--menu .icon-default { opacity: 0; }
    #nav-toggle:checked + .icon-btn--menu .icon-open { opacity: 1; }
    #nav-toggle:checked + .icon-btn--menu .icon-hover { opacity: 0; }

    #nav-toggle:checked + .icon-btn--menu:hover .icon-open,
    #nav-toggle:checked + .icon-btn--menu:focus-visible .icon-open {
      opacity: 0;
    }
    #nav-toggle:checked + .icon-btn--menu:hover .icon-hover,
    #nav-toggle:checked + .icon-btn--menu:focus-visible .icon-hover {
      opacity: 1;
    }


    /* Site footer */
    .site-footer {
      color: var(--parchment);

      width: 100%;
      background: var(--footer-bg);
    }

    

/* --- Footer colour enforcement (authoritative) --- */
.site-footer,
.site-footer *{
  color: var(--parchment) !important;
}
.site-footer a{
  color: var(--parchment) !important;
}
.site-footer a:hover,
.site-footer a:focus-visible{
  color: var(--oxblood) !important;
}

.footer-hairline {
      height: 1px;
      background: #FFFFFF;
      width: 100%;
    }

    .footer-inner {
      display: flex;
      justify-content: space-between;
      align-items: flex-end;
      gap: 1rem;
      padding: 0.45rem 0.75rem 0.5rem; /* minimal vertical space */
      font-family: "Oxanium", system-ui, sans-serif;
      font-size: 0.85rem;
      line-height: 1.15;
    }

    .footer-left {
      color: #5F6368;
      font-weight: 600; /* SemiBold feel */
    }

    .footer-cookie {
      white-space: nowrap;
    }

    .footer-right {
      text-align: right;
      color: #E6E1D6;
      font-weight: 300; /* Light */
    }

    .footer-line1 {
      color: #E6E1D6;
      font-weight: 600; /* SemiBold */
    }

    .footer-line2 {
      margin-top: 0.15rem;
    }

    .footer-legal {
      display: inline-block;
      margin-top: 0.15rem;
      color: #E6E1D6;
      font-weight: 300;
      text-decoration: underline;
      text-decoration-thickness: 2px;
      text-underline-offset: 3px;
    }

    .footer-legal:hover,
.footer-legal:focus-visible {
  color: var(--oxblood) !important;
}
/* Mobile footer: stack but KEEP the left block visible (cookie statement + legal link) */
@media (max-width: 520px) {
  .footer-inner {
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
  }

  .footer-right {
    order: 1;
    text-align: right;
  }

  .footer-left {
    order: 2;
    display: block;
    width: 100%;
    text-align: right;
  }

  /* Make the cookie statement a single line on mobile where possible */
  .footer-left .footer-cookie {
    display: inline;
    white-space: nowrap;
  }
  .footer-left .footer-cookie br { display: none; }

  .footer-left .footer-legal {
    display: inline;
    margin-left: 0.6rem;
    white-space: nowrap;
  }
}

@media (prefers-reduced-motion: reduce) {
      html:focus-within { scroll-behavior: auto; }
      * { transition: none !important; }
    }
  a:hover, a:focus-visible {
      color: #5F6368;
    }

/* --- Contact form (shared) --- */
.contact-wrap { max-width: 980px; margin: 0 auto; }
.contact-error-banner {
  background: rgba(110,44,44,0.10);
  border: 1px solid rgba(110,44,44,0.35);
  padding: 0.8rem 1rem;
  border-radius: 16px;
  margin: 0 0 1rem;
  line-height: 1.35;
}
.contact-form label {
  display: block;
  margin: 0.9rem 0 0.25rem;
  font-family: var(--font-title);
  font-weight: 600;
}
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea {
  width: calc(100% - 10px);
  margin-right: 10px;
  box-sizing: border-box;
  border-radius: 16px;
  border: 1px solid rgba(95,99,104,0.55);
  padding: 0.75rem 0.85rem;
  font-family: var(--font-body);
  font-size: 1rem;
  background: transparent;
  color: inherit;
}
.contact-form textarea {
  min-height: 10rem;
  max-height: 35vh;
  resize: vertical;
}
.contact-field-error {
  border-color: var(--oxblood) !important;
  box-shadow: 0 0 0 2px rgba(110,44,44,0.20);
}
.contact-charcount {
  margin-top: 0.35rem;
  font-size: 0.95rem;
  opacity: 0.9;
}
.contact-verify {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-top: 0.5rem;
}
.contact-verify input { width: 20px; height: 20px; accent-color: var(--graphite); }
.contact-notice {
  margin: 1rem 0 0.75rem;
  font-size: 0.95rem;
  line-height: 1.35;
}

/* Cancel modal */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.35);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 3000;
  padding: 1rem;
}
.modal {
  width: min(520px, 100%);
  background: var(--bg);
  color: var(--fg);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0,0,0,0.25);
}
.modal .modal-bar {
  background: var(--graphite);
  color: var(--parchment);
  font-family: var(--font-title);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.75rem 1rem;
  font-size: 1.1rem;
}
.modal .modal-body { padding: 1rem; line-height: 1.35; }
.modal .modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  padding: 0 1rem 1rem;
}

/* Sending page */
.sending-page {
  margin: 0;
  min-height: 100%;
  display: grid;
  place-items: center;
}

/* Minimal (temporary) pages: keep within viewport and vertically centre content */
body.minimal-page{
  overflow: hidden;
}
body.minimal-page .page-main{
  padding-top: var(--masthead-h);
  padding-bottom: 0;
  padding-left: 0;
  padding-right: 0;
  min-height: calc(100vh - var(--masthead-h));
  display: grid;
  place-items: center;
}
body.minimal-page .sending-page{
  min-height: 0;
  width: 100%;
}


/* ==========================
   OVERRIDES: menu + layout + footer fix
   ========================== */

/* Ensure layout accounts for fixed masthead + fixed footer */
:root{
  --menu-width: 280px;
  --masthead-h: 120px; /* JS will correct */
  --footer-h: 90px;    /* JS will correct */
  --bg: #FFFFFF;
  --fg: #000000;
  --oxblood: #6E2C2C;
  --muted-blue: #3E5F8A;
  --font-title: "Oxanium", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --font-body: "Atkinson Hyperlegible Next", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --footer-bg: var(--muted-blue);
}

/* Page main spacing so fixed header/footer never hide content */
.page-main{
  padding-top: calc(var(--masthead-h) + 16px);
  padding-bottom: calc(var(--footer-h) + 16px);

  padding-left: 24px;
}

/* Masthead internal layout: contact icon on the right */
.masthead-left{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.masthead-leftgroup{
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}
.masthead-rightgroup{
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

/* Menu container (works with JS class toggle .menu-open) */
.site-menu{
  position: fixed;
  top: var(--masthead-h);
  left: 0;
  width: 100%;
  height: calc(100vh - var(--masthead-h) - var(--footer-h));
  overflow: auto;
  background: var(--bg);
  z-index: 1500;
  transform: translateX(-100%);
  transition: transform 220ms ease;
  -webkit-overflow-scrolling: touch;
  padding: 0;
}

/* Menu open (mobile overlay) */
.site-menu.menu-open{
  transform: translateX(0);
}
body.menu-open{
  overflow: hidden; /* lock page scroll when menu is open */
}

/* Menu link blocks */
.site-menu .menu-link{
  display: block;
  padding: 0.9rem 1rem;
  font-family: var(--font-title);
  font-weight: 600;
  font-size: 1rem;
  text-decoration: none;
  color: var(--oxblood);
}
.site-menu .menu-link:hover,
.site-menu .menu-link:focus-visible{
  color: var(--graphite);
}
.site-menu .menu-link.is-active{
  background: var(--graphite);
  color: var(--parchment);
}
.site-menu .menu-sep{
  height: 1px;
  background: var(--muted-blue);
  width: 100%;
}

/* Tablet/Desktop: persistent sidebar */
@media (min-width: 768px){
  .site-menu{
    width: var(--menu-width);
    transform: translateX(0);
    border-right: 1px solid var(--muted-blue);
  }
  body{
    overflow: auto;
  

  /* Keep content beside fixed sidebar without horizontal overflow */
  main{
    margin-left: var(--menu-width);
    width: calc(100% - var(--menu-width));
    max-width: none;
  }
  .page-main{
    margin-left: var(--menu-width);
    width: calc(100% - var(--menu-width));
  }
  /* As a final guard against off-canvas overflow */
  html, body{ overflow-x: hidden; }

}
  /* Prevent double horizontal offset.
     Earlier legacy rules also apply a desktop body padding-left.
     We keep the sidebar offset on .page-main and neutralise body padding. */
  body{
    padding-left: 0 !important;
  }
  body.menu-open{
    overflow: auto; /* no lock in desktop */
  }
  .page-main{
    margin-left: var(--menu-width);
  width: calc(100% - var(--menu-width));
  }
  /* Hide hamburger on tablet/desktop */
  .icon-btn--menu{
    display: none;
  }
}

/* Footer: fixed + minimal + black text on muted blue */
.site-footer{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1400;
}
/* --- Icon button reset (hamburger border fix) --- */
.icon-btn {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  box-shadow: none;
  appearance: none;
  -webkit-appearance: none;
  border-radius: 0;
}
.icon-btn:focus { outline: none; }
.icon-btn:focus-visible {
  outline: 2px solid var(--muted-blue);
  outline-offset: 3px;
}

/* --- Contact page spacing (mobile friendly) --- */
.contact-wrap { padding: 0 0.75rem; }

/* --- Hide honeypot field --- */
.hidden-trap {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* --- Footer colour modes --- */
footer { background: var(--muted-blue); color: var(--parchment); }
@media (prefers-color-scheme: dark) {
  footer { background: var(--graphite); color: var(--parchment); }
}

/* --- Menu background + item styling (v5 lock) --- */
body .site-menu {
  background-color: var(--bg) !important;
}
body .site-menu .menu-link {
  background-color: var(--bg);
  font-family: var(--font-title);
  font-weight: 600;
  color: var(--oxblood);
}
body .site-menu .menu-link.is-active {
  background-color: var(--graphite);
  color: var(--parchment);
}
body .site-menu .menu-sep {
  height: 2px;
  background-color: var(--graphite);
}

/* --- Layering: footer above menu (v10) --- */
.site-menu { z-index: 1200; }
footer { z-index: 2000; position: fixed; left: 0; right: 0; bottom: 0; }

/* --- Footer colour lock (v10) --- */
footer {
  background: var(--footer-bg);
  color: var(--parchment);
}
@media (prefers-color-scheme: dark) {
  :root { --footer-bg: var(--graphite); }
}
@media (prefers-color-scheme: light) {
  :root { --footer-bg: var(--muted-blue); }
}



/* --- Masthead background: light stays white, dark becomes graphite --- */
.masthead-top {
  background: #FFFFFF;
}

@media (prefers-color-scheme: dark) {
  .masthead-top {
    background: var(--graphite);
  }
  .masthead-hairline {
    background: var(--graphite);
  }
}



/* Brand subtitle colour in dark mode */

@media (prefers-color-scheme: dark) {
  .brand-line2 {
    color: var(--parchment);
  }
}




/* Menu background follows page background (light/dark) */
.side-menu,
.site-menu {
  background: var(--bg) !important;
}




/* --- Dark mode: sync theme variables and menu background --- */
@media (prefers-color-scheme: dark) {
  :root{
    --bg: #2F3339;
    --fg: var(--parchment);
  }

  .side-menu,
  .site-menu{
    background: var(--bg) !important;
  }
}




/* --- Dark mode: menu uses graphite with stable parchment links --- */
@media (prefers-color-scheme: dark) {

  .side-menu,
  .site-menu {
    background: var(--graphite) !important;
  }

  .side-menu a,
  .side-menu a:hover,
  .side-menu a:focus-visible,
  .site-menu a,
  .site-menu a:hover,
  .site-menu a:focus-visible {
    color: var(--parchment) !important;
  }
}



/* --- Flowchart wrap (authoritative) --- */
/* Mobile: centered, never wider than content */
.flowchart-figure{
  float: none !important;
  width: 100% !important;
  max-width: 520px;
  margin: 0.5rem auto 1rem;
}
.flowchart-figure .flowchart-img{
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
}
.flowchart-figure figcaption{
  margin-top: 0.35rem;
  font-size: 0.9rem;
  line-height: 1.35;
  color: var(--fg);
}

/* Desktop: float left so subtitles + paragraphs wrap alongside */
@media (min-width: 768px){
  .flowchart-figure{
    float: left !important;
    width: min(420px, 40vw) !important;
    max-width: none;
    margin: 0.35rem 1.25rem 0.9rem 0;
  }
}


/* --- Further Information submenu (slides over main menu) --- */
.site-submenu{
  z-index: 1601;
  /* Hidden by default (even on desktop, where .site-menu is persistent) */
  transform: translateX(-100%);
}
.site-submenu.menu-open{
  transform: translateX(0);
}

/* Desktop: keep submenu hidden unless explicitly opened */
@media (min-width: 768px){
  .site-submenu{ transform: translateX(-100%) !important; }
  .site-submenu.menu-open{ transform: translateX(0) !important; }
}


/* ORION PRINT ICON TWEAKS */

/* Title bar banners: allow right-aligned action icons without changing height */
.banner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

/* Generic print link wrapper (icon + text) */
.print-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
}

/* Force icon sizes and vertical alignment */
.print-ico-titlebar,
.print-ico-footer{
  width:32px;
  height:32px;
  display:inline-block;
  flex:0 0 32px;
  vertical-align:middle;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}

/* Title bar icon uses print-t assets */
.print-ico-titlebar{
  background-image:url("/images/print-t.png");
}
.print-link-titlebar:hover .print-ico-titlebar,
.print-link-titlebar:focus .print-ico-titlebar{
  background-image:url("/images/print-t-h.png");
}

/* Body/footer print icon uses print assets */
.print-ico-footer{
  background-image:url("/images/print.png");
}
.print-link:hover .print-ico-footer,
.print-link:focus .print-ico-footer{
  background-image:url("/images/print-h.png");
}

/* Ensure print-only legal block never shows on screen */
.print-legal, #print-legal{
  display:none !important;
}

/* Accessible helper for icon-only links */
.sr-only{
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}
