/* Extended unit navigation and directories. Original Kodiak marks remain unchanged. */
:root { --header-height: 9rem; }
[id] { scroll-margin-top: calc(var(--header-height) + 1rem); }
.site-header, .site-header.scrolled {
  display: grid; grid-template-columns: minmax(0,1fr) auto;
  grid-template-rows: 5rem 4rem; height: var(--header-height); gap: 0; align-items: center;
}
.site-header .brand { grid-column: 1; grid-row: 1; justify-self: start; }
.brand img { width: 3rem; height: auto; }
.footer-brand img { height: auto; }
.site-header .header-apply { grid-column: 2; grid-row: 1; }
.site-header .menu-toggle { display: none; }
.site-nav {
  grid-column: 1 / -1; grid-row: 2; position: static;
  display: grid; grid-template-columns: minmax(0,1.2fr) repeat(3,minmax(0,1fr)) minmax(0,1.1fr) minmax(0,1.1fr) minmax(0,.5fr);
  width: 100%; height: 100%; gap: .8rem; padding: 0; border-top: 1px solid var(--line);
}
.site-nav > a {
  display: block; min-width: 0; padding: .4rem 0; white-space: normal;
  font-size: .875rem; line-height: 1.35; letter-spacing: .01em;
}
.site-nav .nav-number { display: block; margin: 0 0 .35rem; font-size: .75rem; line-height: 1; }
.site-nav .nav-apply { display: none; }
.home-showcase { padding-top: var(--header-height); }
.page-masthead, .page-entry .page-masthead { padding-top: calc(var(--header-height) + 3rem); }
.page-masthead::after { top: calc(var(--header-height) + 1.5rem); }
.faq-index { top: calc(var(--header-height) + 1.5rem); }
.apply-card {
  display: flex; align-items: center; justify-content: space-between; gap: 2rem;
  padding: .4rem 1.2rem; border-left: 2px solid var(--gold); color: #e4e8e6;
  background: #080e12; text-decoration: none; min-width: 200px;
}
.apply-card > span:first-child { display: grid; gap: .12rem; }
.apply-card strong { font: 600 1.45rem/1.15 var(--display); text-transform: uppercase; }
.apply-card > span > span { font-size: .875rem; color: #acb9c0; line-height: 1.5; }
.apply-arrow { font: 1.3rem/1 var(--mono); color: var(--gold-light); }
.apply-card:hover, .apply-card:focus-visible { background: #1b2a30; border-left-color: #f0d99d; }
.recruitment-card { margin-top: 2rem; padding: 1.5rem; border: 1px solid var(--line); background: #152129; }
.recruitment-card h3 { margin: 0; font-size: 2rem; line-height: 1.2; text-transform: uppercase; }
.recruitment-card > p { font-size: 1rem; color: #b9c6cc; }
.recruitment-card .eyebrow { color: var(--gold-light); font-size: .875rem; margin: 0 0 .75rem; }
.recruitment-card .apply-card { margin-top: 1.25rem; padding-block: .9rem; min-width: 0; }
.recruitment-card .external-link-note { margin-bottom: 0; font-size: .875rem; }

.branches-section, .schedule-section, .campaign-section { background: #10181d; }
.branch-jump { display: flex; flex-wrap: wrap; gap: .75rem 2rem; padding-bottom: 2rem; margin-bottom: 2rem; border-bottom: 1px solid var(--line); }
.branch-jump a { color: var(--gold-light); font: .875rem/1.5 var(--mono); text-underline-offset: .3em; }
.branch-jump a:hover { text-decoration: underline; }
.branch-dossier { min-width: 0; padding: 2rem; background: #121f26; border: 1px solid var(--line); border-top: 2px solid var(--gold); }
.branch-dossier-heading { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); gap: 3rem; align-items: start; }
.branch-dossier .eyebrow { margin: 0 0 1rem; }
.branch-dossier h2 { margin: 0; font-size: clamp(2.4rem,3.4vw,3.4rem); line-height: 1.08; text-transform: uppercase; }
.branch-dossier h2 span { color: #c3d7e2; }
.branch-subtitle { margin: 1rem 0 0; color: #bccad0; font-size: 1.125rem; }
.branch-roles h3 { font: .875rem/1.5 var(--mono); text-transform: uppercase; color: var(--gold-light); letter-spacing: .09em; margin: 0 0 1rem; }
.role-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.role-list li { position: relative; padding: .9rem .5rem .9rem 1rem; font-size: 1rem; color: #dee6e8; border-bottom: 1px solid var(--line); }
.role-list li::before { content: ""; position: absolute; left: 0; top: 1.55rem; width: 4px; height: 4px; background: var(--gold); }
.branch-media-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin-top: 2.5rem; }
.branch-media-grid .field-photo { margin: 0; min-width: 0; }
.branch-media-grid img { width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; }
.branch-media-grid figcaption { padding: .85rem 1rem; align-items: flex-start; flex-direction: column; gap: .35rem; font-size: .875rem; }
.infantry-branches { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; margin-top: 1.5rem; }
.infantry-branches .branch-roles { margin-top: 2rem; }
.branch-note, .schedule-note { margin: 2rem 0 0; padding-left: 1.25rem; border-left: 2px solid var(--gold); color: #b4c4cb; font-size: 1rem; }

.schedule-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 2.5rem; }
.schedule-heading .eyebrow { margin: 0 0 1rem; }
.schedule-heading h2 { margin: 0; font-size: clamp(2.6rem,4.2vw,4.15rem); line-height: 1.05; text-transform: uppercase; }
.timezone-label { margin: 0; color: var(--gold-light); font: .875rem/1.6 var(--mono); }
.schedule-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; }
.schedule-card { min-width: 0; padding: 2rem; background: #14231f; border: 1px solid #4f6056; border-top: 3px solid var(--gold); }
.schedule-card .eyebrow { margin: 0 0 1.25rem; }
.schedule-card h3 { margin: 0; font-size: clamp(3rem,4.3vw,4.5rem); line-height: 1.1; text-transform: uppercase; }
.operation-hours { display: flex; align-items: baseline; flex-wrap: wrap; column-gap: .6rem; margin: 1.25rem 0 .35rem; font: 600 clamp(1.6rem,2.6vw,2.5rem)/1.5 var(--display); color: #e7eeeb; }
.operation-hours time { white-space: nowrap; }
.schedule-zone { margin: 0; color: #b9c9c0; font-size: 1rem; }
.campaign-layout { display: grid; grid-template-columns: minmax(0,.65fr) minmax(0,1.35fr); gap: 3rem; align-items: center; }
.campaign-briefing { border-left: 2px solid var(--gold); padding-left: 1.5rem; }
.campaign-briefing .eyebrow { margin: 0 0 1rem; }
.campaign-briefing h2 { margin: 0; font-size: clamp(2.5rem,3.7vw,3.6rem); line-height: 1.1; text-transform: uppercase; }
.campaign-briefing > p:not(.eyebrow) { font-size: 1rem; color: #b5c5cc; }
.campaign-photo { margin: 0; }
@media(max-width:1040px) {
  :root { --header-height: 5rem; }
  .site-header, .site-header.scrolled { grid-template-rows: var(--header-height); grid-template-columns: minmax(0,1fr) auto; }
  .site-header .header-apply { display: none; }
  .site-header .menu-toggle { display: grid; grid-column: 2; grid-row: 1; }
  .site-nav {
    position: absolute; inset: 100% 0 auto; grid-column: auto; grid-row: auto;
    grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 1.5rem; height: auto;
    max-height: calc(100svh - var(--header-height)); overflow-y: auto;
    padding: .75rem var(--pad) 1.2rem; border-top: 0; background: #0c151b;
  }
  .site-nav > a { padding: .85rem 0; font-size: 1rem; line-height: 1.4; }
  .site-nav .nav-number { display: inline; margin-right: .5rem; }
  .site-nav .nav-apply { display: flex; grid-column: 1 / -1; margin-top: .8rem; padding: .85rem 1rem; border: 1px solid var(--line); border-left: 2px solid var(--gold); }
  .page-masthead, .page-entry .page-masthead { padding-top: 8rem; }
  .page-masthead::after { top: 6rem; }
  .branch-dossier { padding: 1.5rem; }
  .branch-dossier-heading { gap: 2rem; }
  .campaign-layout { gap: 2rem; }
}
@media(max-width:900px) {
  .branch-dossier-heading, .infantry-branches, .schedule-grid, .campaign-layout { grid-template-columns: minmax(0,1fr); }
  .branch-dossier-heading { gap: 2rem; }
  .campaign-layout { gap: 2.5rem; }
  .schedule-heading { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .branch-media-grid { gap: .8rem; }
}
@media(max-width:760px) {
  .branch-media-grid { grid-template-columns: minmax(0,1fr); gap: 1.25rem; }
  .branch-media-grid img { aspect-ratio: auto; height: auto; }
  .branch-dossier { padding: 1.25rem; }
  .branch-jump { flex-direction: column; gap: 1rem; }
  .role-list { grid-template-columns: minmax(0,1fr); }
  .branch-dossier h2 { font-size: 2.5rem; }
  .schedule-card { padding: 1.5rem; }
  .schedule-heading h2 { font-size: 2.7rem; }
  .operation-hours { font-size: 1.85rem; }
}
@media(max-width:540px) {
  .site-nav { grid-template-columns: minmax(0,1fr); }
  .brand img { width: 2.5rem; }
}
@media print {
  :root { --header-height: 0rem; }
  .site-header, .header-apply, .nav-apply, .apply-card { display: none !important; }
  .branch-dossier, .schedule-card { break-inside: avoid; color: #111; background: #fff; }
}
