      :root {
        --navy: #003078; --navy-deep: #002350; --royal: #003090;
        --yellow: #f0a800; --yellow-soft: #ffd766;
        --paper: #ffffff; --mist: #f4f7fb; --ink: #1c2430; --muted: #5b6774;
        --maxw: 72rem;
      }
      * { box-sizing: border-box; }
      html { overflow-x: clip; }
      body {
        margin: 0; font-family: Georgia, 'Times New Roman', serif;
        color: var(--ink); background: var(--paper); line-height: 1.65; font-size: 1.125rem;
        overflow-x: clip;
      }
      img { max-width: 100%; height: auto; }
      a { color: var(--navy); }
      .draft-banner {
        background: #fff4d6; color: #6b5300; text-align: center;
        font-family: -apple-system, Helvetica, Arial, sans-serif; font-size: 0.85rem;
        padding: 0.4rem 1rem; border-bottom: 1px solid #e8d9a8;
      }
      header.site { background: #fff; border-bottom: 1px solid #dde5ee; position: sticky; top: 0; z-index: 10; }
      .logo-banner {
        background: #fff; border-bottom: 1px solid #dde5ee; text-align: center; padding: 1.25rem 1.5rem 0.75rem;
      }
      .logo-banner img { width: 128px; height: 128px; }
      .logo-banner .brand-name { display: block; font-size: 1.85rem; font-weight: 700; color: var(--navy-deep); letter-spacing: 0.02em; margin-top: 0.6rem; font-family: Georgia, 'Times New Roman', serif; }
      .header-inner {
        max-width: var(--maxw); margin: 0 auto; padding: 0.5rem 1.5rem;
        display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; justify-content: center;
      }
      .brand-wrap { display: flex; align-items: center; gap: 0.75rem; text-decoration: none; }
      .brand-wrap img { width: 48px; height: 48px; }
      .brand { font-size: 1.25rem; font-weight: bold; color: var(--navy-deep); letter-spacing: 0.02em; }
      nav.main { margin-left: auto; display: flex; align-items: center; gap: 1.1rem; flex-wrap: wrap; justify-content: center; }
      .nav-toggle {
        display: none;
        background: none; border: none; cursor: pointer; padding: 0.5rem;
        font-family: -apple-system, Helvetica, Arial, sans-serif; font-size: 1rem; font-weight: 600;
        color: var(--navy-deep); align-self: center; margin-left: auto;
      }
      .nav-toggle .bars { display: inline-flex; flex-direction: column; gap: 5px; }
      .nav-toggle .bars span { display: block; width: 24px; height: 3px; background: var(--navy-deep); border-radius: 2px; transition: transform 0.25s, opacity 0.25s; }
      .nav-toggle[aria-expanded="true"] .bars span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
      .nav-toggle[aria-expanded="true"] .bars span:nth-child(2) { opacity: 0; }
      .nav-toggle[aria-expanded="true"] .bars span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
      nav.main a {
        font-family: -apple-system, Helvetica, Arial, sans-serif; font-size: 0.95rem;
        color: var(--ink); text-decoration: none;
      }
      nav.main a:hover, nav.main a[aria-current="page"] { color: var(--navy); text-decoration: underline; }
      .nav-cta {
        background: var(--yellow); color: var(--navy-deep) !important; padding: 0.5rem 1.1rem;
        border-radius: 999px; font-weight: 700;
      }
      .nav-cta:hover { background: var(--yellow-soft); text-decoration: none !important; }
      main { max-width: var(--maxw); margin: 0 auto; padding: 0 1.5rem 4rem; }
      h1, h2, h3 { color: var(--navy-deep); line-height: 1.25; }
      h1 { font-size: 2.4rem; margin: 2.5rem 0 1.25rem; }
      h2 { font-size: 1.7rem; margin-top: 2.75rem; }
      section { max-width: 52rem; margin: 0 auto; }
      .hero { padding: 3.5rem 0 2rem; text-align: center; }
      .hero .mission { font-size: 1.35rem; color: var(--navy); max-width: 46rem; margin: 0 auto 2rem; font-style: italic; }
      .cta {
        display: inline-block; background: var(--yellow); color: var(--navy-deep);
        font-family: -apple-system, Helvetica, Arial, sans-serif; font-size: 1.05rem; font-weight: 700;
        padding: 0.85rem 2rem; border-radius: 999px; text-decoration: none;
      }
      .cta:hover, .cta:focus { background: var(--yellow-soft); }
      .cta.secondary { background: #fff; color: var(--navy); border: 2px solid var(--navy); }
      .card { background: var(--mist); border: 1px solid #dde5ee; border-radius: 12px; padding: 1.75rem 2rem; margin-top: 1.5rem; }
      ul.plain { padding-left: 1.25rem; }
      .photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0.75rem; margin-top: 1.5rem; }
      .photo-grid a { display: block; border-radius: 10px; overflow: hidden; border: 1px solid #dde5ee; }
      .photo-grid img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; }
      .photo-grid.compact { max-width: 34rem; margin-left: auto; margin-right: auto; }
      .post-list { list-style: none; padding: 0; }
      .post-list li { background: var(--mist); border: 1px solid #dde5ee; border-radius: 12px; padding: 1.25rem 1.5rem; margin-bottom: 1rem; }
      .post-list .date { color: var(--muted); font-size: 0.9rem; font-family: -apple-system, Helvetica, Arial, sans-serif; }
      /* Blog article hero images — constrain height, center, rounded */
      main img[alt] { max-height: 400px; width: auto; max-width: 100%; border-radius: 12px; margin: 1.5rem auto; display: block; box-shadow: 0 4px 20px rgba(0,35,80,0.12); }
      @media (max-width: 48rem) { main img[alt] { max-height: 260px; } }
      main table { border-collapse: collapse; width: 100%; margin: 1.5rem 0; font-size: 0.95rem; }
      main th { background: var(--navy); color: #fff; text-align: left; padding: 0.75rem 1rem; font-weight: 600; }
      main td { padding: 0.75rem 1rem; border-bottom: 1px solid #e0e0e0; text-align: left; }
      main tbody tr:nth-child(even) { background: var(--mist); }
      main tbody tr:hover { background: #eef2f8; }
      @media (max-width: 48rem) {
        main table { font-size: 0.85rem; }
        main th, main td { padding: 0.5rem 0.6rem; }
      }
      /* --- Visual richness --- */
      .hero-full {
        position: relative; left: 50%; margin-left: -50vw; width: 100vw;
        background-color: var(--navy-deep);
        background-repeat: no-repeat; background-position: center; background-size: cover;
        color: #fff; text-align: center; padding: 6.5rem 1.5rem 5.5rem;
      }
      .hero-full h1 { color: #fff; font-size: 3rem; margin: 0 0 1.25rem; text-shadow: 0 2px 12px rgba(0,0,0,0.35); }
      .hero-full .mission { color: #e8eefc; font-size: 1.4rem; font-style: italic; max-width: 46rem; margin: 0 auto 2.25rem; }
      .hero-full .cta { box-shadow: 0 4px 18px rgba(0,0,0,0.3); }
      .hero-full .cta.secondary { background: rgba(255,255,255,0.12); color: #fff; border: 2px solid #fff; }
      .band {
        position: relative; left: 50%; margin-left: -50vw; width: 100vw;
        background: var(--navy); color: #e8eefc; padding: 2rem 1.5rem;
      }
      .band .band-inner { max-width: 62rem; margin: 0 auto; display: flex; flex-wrap: wrap; gap: 2rem; justify-content: center; text-align: center; }
      .band .fact { min-width: 200px; flex: 1; max-width: 300px; }
      .band .fact strong { display: block; color: var(--yellow); font-size: 1.25rem; margin-bottom: 0.3rem; }
      .split { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; align-items: center; max-width: 62rem; margin: 0 auto; }
      .split img { border-radius: 14px; box-shadow: 0 8px 30px rgba(0,35,80,0.16); width: 100%; }
      .feature-img { width: 100%; border-radius: 14px; box-shadow: 0 8px 30px rgba(0,35,80,0.16); margin-top: 1.5rem; }
      .cta-band {
        position: relative; left: 50%; margin-left: -50vw; width: 100vw;
        margin-top: 3rem; margin-bottom: -4rem;
        background-color: var(--navy-deep);
        background-repeat: no-repeat; background-position: center; background-size: cover;
        color: #fff; text-align: center; padding: 4.5rem 1.5rem;
      }
      .cta-band h2 { color: #fff; margin-top: 0; }
      .cta-band p { color: #e8eefc; max-width: 40rem; margin: 0 auto 1.75rem; }
      .card { box-shadow: 0 2px 12px rgba(0,35,80,0.06); }
      @media (max-width: 48rem) {
        .hero-full { padding: 4rem 1.25rem 3.5rem; }
        .hero-full h1 { font-size: 2.1rem; }
        .split { grid-template-columns: 1fr; gap: 1.5rem; }
      }
      footer.site {
        background: var(--navy-deep); color: #e8eefc;
        font-family: -apple-system, Helvetica, Arial, sans-serif; font-size: 0.95rem;
        padding: 2.5rem 1.5rem; margin-top: 3rem;
      }
      footer .footer-inner { max-width: var(--maxw); margin: 0 auto; display: flex; flex-wrap: wrap; gap: 2rem; }
      footer .col { min-width: 220px; }
      footer h3 { margin: 0 0 0.6rem; color: var(--yellow); font-size: 1rem; }
      .skip-link { position: absolute; left: -9999px; top: 0; background: var(--yellow); color: var(--navy-deep); font-family: -apple-system, Helvetica, Arial, sans-serif; font-weight: 700; padding: 0.6rem 1.2rem; border-radius: 0 0 8px 0; text-decoration: none; z-index: 100; }
      .skip-link:focus { left: 0; }
      footer a { color: #e8eefc; }
      footer .legal { margin: 0.25rem 0; }
      footer .draft-note { color: #9fb3d4; font-size: 0.8rem; text-align: center; margin-top: 2rem; }
      footer .accessibility-note { color: #9fb3d4; font-size: 0.85rem; text-align: center; margin-top: 2rem; max-width: 50rem; margin-left: auto; margin-right: auto; line-height: 1.5; }
      footer .accessibility-note a { color: var(--yellow-soft); }
      form.inquiry { background: var(--mist); border: 1px solid #dde5ee; border-radius: 12px; padding: 2rem; max-width: 34rem; }
      form.inquiry label { display: block; font-family: -apple-system, Helvetica, Arial, sans-serif; font-size: 0.95rem; font-weight: 600; margin-top: 1.1rem; }
      form.inquiry input, form.inquiry select, form.inquiry textarea {
        width: 100%; padding: 0.65rem; border: 1px solid #cbb; border-radius: 8px;
        font-size: 1rem; font-family: inherit; margin-top: 0.3rem;
      }
      form.inquiry .check { display: flex; gap: 0.6rem; align-items: flex-start; margin-top: 1.25rem; }
      form.inquiry .check input { width: auto; margin-top: 0.3rem; }
      /* Mobile nav: hamburger toggle visible below 48rem (768px) */
      @media (max-width: 48rem) {
        h1 { font-size: 1.9rem; }
        .hero { padding: 2rem 0 1.25rem; }
        .nav-toggle { display: inline-flex; align-items: center; }
        nav.main {
          display: none; flex-direction: column; align-items: stretch;
          gap: 0.5rem; padding: 0.75rem 0; margin-left: 0; width: 100%;
        }
        nav.main.open { display: flex; }
        nav.main a { padding: 0.4rem 0; }
        .nav-cta { text-align: center; margin-top: 0.25rem; }
      }
      /* Small phone breakpoint (480px) — tighter spacing and type */
      @media (max-width: 30rem) {
        body { font-size: 1rem; }
        h1 { font-size: 1.6rem; }
        h2 { font-size: 1.35rem; }
        main { padding: 0 1rem 3rem; }
        .logo-banner { padding: 1rem 1rem 0.5rem; }
        .logo-banner img { width: 96px; height: 96px; }
        .logo-banner .brand-name { font-size: 1.5rem; }
        .hero-full { padding: 3rem 1rem 2.5rem; }
        .hero-full h1 { font-size: 1.75rem; }
        .hero-full .mission { font-size: 1.1rem; }
        .cta { font-size: 0.95rem; padding: 0.7rem 1.5rem; }
        .band .band-inner { gap: 1.25rem; }
        .band .fact { min-width: unset; }
        .card { padding: 1.25rem 1.25rem; }
        footer.site { padding: 2rem 1rem; }
        footer .col { min-width: unset; width: 100%; }
      }
    /* Inquiry form */
    .inquiry-form-wrap { background: var(--mist); border-radius: 12px; padding: 1.5rem; }
    .inquiry-form-wrap form { display: flex; flex-direction: column; gap: 1rem; }
    .form-row { display: flex; gap: 1rem; }
    .form-field { flex: 1; display: flex; flex-direction: column; }
    .form-field label { font-size: 0.9rem; font-weight: 500; color: var(--ink); margin-bottom: 0.35rem; }
    .form-field input, .form-field textarea {
      font-family: inherit; font-size: 1rem; padding: 0.6rem 0.7rem;
      border: 1px solid #D0D5DD; border-radius: 6px; background: #fff; color: var(--ink);
      resize: vertical;
    }
    .form-field input:focus, .form-field textarea:focus { border-color: var(--navy); outline: none; }
    .inquiry-form-wrap button[type="submit"] { cursor: pointer; border: none; }
    @media (max-width: 30rem) { .form-row { flex-direction: column; } .inquiry-form-wrap { padding: 1rem; } }
