/* Reference layouts for the report/contact forms and the complete menu. */
.reference-form {
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,2fr);
  gap:0;
  width:100%;
  max-width:1250px;
  margin:0 auto;
  border:1px solid var(--line);
  border-radius:3px;
  background:var(--white);
  overflow:hidden;
}
.reference-form > * { min-width:0; }
.reference-form .reference-form-intro {
  position:static;
  align-self:stretch;
  padding:38px 30px;
  background:var(--ivory);
}
.reference-form .form-intro h3 {
  margin:0 0 28px;
  font-family:var(--serif);
  font-size:clamp(27px,2.4vw,34px);
  font-weight:500;
  line-height:1.5;
  letter-spacing:-.035em;
}
.reference-form .form-intro h3::before {
  content:"";
  display:block;
  width:38px;
  height:2px;
  margin-bottom:23px;
  background:var(--terracotta);
}
.reference-form .form-guidelines { display:grid; gap:26px; }
.reference-form .form-guidelines li {
  display:grid;
  grid-template-columns:30px minmax(0,1fr);
  align-items:start;
  gap:16px;
}
.reference-form .form-guidelines .icon { width:28px; height:28px; margin-top:3px; color:#7d857b; }
.reference-form .form-guidelines p { margin:0; font-size:15px; line-height:1.85; color:var(--muted); }
.reference-form .form-intro .form-intro-note {
  border-top:1px solid var(--line);
  margin:32px 0 0;
  padding-top:24px;
  font-size:14px;
  line-height:1.9;
  color:var(--muted);
}
.reference-form .form-fields { gap:21px; padding:36px clamp(24px,3.2vw,46px); }
.reference-form .form-fields label { min-width:0; font-size:15px; line-height:1.65; }
.reference-form .form-fields input:not([type="checkbox"]),
.reference-form .form-fields select,
.reference-form .form-fields textarea {
  min-width:0;
  max-width:100%;
  margin-top:8px;
  padding:9px 13px;
  border:1px solid #d7dbd5;
  border-radius:4px;
  background:#fff;
  font-size:15px;
  line-height:1.65;
}
.reference-form .form-fields :is(input,textarea)::placeholder { color:#8a918b; opacity:1; }
.reference-form .form-fields :is(input,select,textarea):focus { border-color:var(--teal); }
.reference-form .form-fields textarea { width:100%; height:164px; min-height:140px; resize:vertical; }
.reference-form .form-fields input[type="file"] { font-size:12px; padding:8px 10px; }
.reference-form .form-fields input[type="file"]::file-selector-button { padding:6px 10px; font-size:12px; border-radius:2px; }
.reference-form .form-fields small { font-size:12px; line-height:1.7; margin-top:7px; }
.reference-form .form-fields .form-optional { margin-left:4px; font-size:12px; font-weight:400; color:var(--muted); }
.reference-form .form-required { color:var(--terracotta); font-size:14px; margin-left:3px; }
.reference-form .form-row { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.reference-form .form-consent-panel { padding:17px 18px; background:var(--ivory); border-radius:3px; }
.reference-form .form-consent-panel .checkbox-label { gap:10px; font-size:14px; font-weight:500; line-height:1.7; }
.reference-form .form-consent-panel input[type="checkbox"] { flex:0 0 18px; width:18px; height:18px; margin-top:3px; }
.reference-form .form-consent-detail { display:flex; align-items:start; gap:20px; margin-top:8px; padding-left:28px; }
.reference-form .form-consent-detail p { flex:1; min-width:0; margin:0; color:var(--muted); font-size:12px; line-height:1.8; }
.reference-form .form-consent-detail a { display:inline-flex; gap:7px; align-items:center; flex-shrink:0; color:var(--teal); font-size:12px; text-decoration:underline; text-underline-offset:4px; }
.reference-form .form-consent-detail .icon { width:14px; height:14px; }
.reference-form .form-feedback:empty { display:none; }
.reference-form .form-feedback { margin:0; }
.reference-form .form-fields > .button { justify-self:stretch; justify-content:center; width:100%; min-height:52px; gap:24px; padding:12px 22px; border-radius:3px; }
.reference-form-contact { grid-template-columns:minmax(0,1fr) minmax(0,1.65fr); padding:36px; }
.reference-form-contact .reference-form-intro { padding:8px 34px 8px 0; background:transparent; border-right:1px solid var(--line); }
.reference-form-contact .form-intro h3 { font-size:clamp(30px,2.8vw,42px); }
.reference-form-contact .form-intro p:not(.eyebrow) { margin:23px 0 0; font-size:16px; line-height:1.9; }
.reference-form .form-intro-image { position:relative; width:100%; margin-top:30px; aspect-ratio:5/4; overflow:hidden; }
.reference-form .form-intro-image > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.reference-form .form-intro-image figcaption { position:absolute; bottom:10px; right:10px; padding:2px 6px; background:#f8f5e9d9; color:#5b635b; font-size:10px; line-height:1.6; }
.reference-form-contact .form-fields { padding:0 0 0 42px; }
.reference-form-contact .form-fields textarea { height:194px; min-height:160px; }
.reference-form-contact .form-consent-panel { padding:5px 0 0; background:transparent; }
.reference-form-contact .form-consent-detail { padding-left:0; }
.kc-route-submissions .section-form > .container > .section-heading,
.kc-route-contact .section-form > .container > .section-heading {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}

/* Six illustrated topic cards retain every existing subpage link. */
.sitemap-reference-topics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.sitemap-reference-topics .sitemap-topic-card {
  display:grid;
  grid-template-columns:minmax(0,.48fr) minmax(0,1fr);
  align-items:stretch;
  gap:0;
  padding:0;
  min-width:0;
  border:1px solid var(--line);
  background:var(--paper);
}
.sitemap-reference-topics .sitemap-topic-image { position:relative; min-width:0; min-height:280px; overflow:hidden; }
.sitemap-reference-topics .sitemap-topic-image > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.sitemap-reference-topics .sitemap-topic-image figcaption { position:absolute; bottom:10px; right:9px; color:#fff; font-size:10px; padding:2px 5px; background:#253c3073; line-height:1.6; }
.sitemap-reference-topics .sitemap-topic-copy { padding:24px 23px; min-width:0; }
.sitemap-reference-topics .sitemap-topic-copy h3 { font-size:clamp(20px,1.7vw,27px); margin:0 0 13px; line-height:1.45; }
.sitemap-reference-topics .sitemap-topic-copy h3 a { display:grid; grid-template-columns:30px minmax(0,1fr) 26px; gap:11px; align-items:start; color:var(--teal); }
.sitemap-topic-icon { color:var(--terracotta); padding-top:2px; }
.sitemap-topic-icon > .icon { width:29px; height:29px; }
.sitemap-topic-arrow { display:grid; place-items:center; width:26px; height:26px; border:1px solid #b97b63; border-radius:50%; color:var(--terracotta); margin-top:2px; }
.sitemap-topic-arrow > .icon { width:14px; height:14px; }
.sitemap-reference-topics .sitemap-topic-description { margin:0 0 15px; font-size:14px; line-height:1.8; color:var(--muted); }
.sitemap-topic-links { display:grid; gap:2px; }
.sitemap-topic-links a { display:flex; gap:10px; align-items:start; padding:4px 0; font-size:15px; line-height:1.65; }
.sitemap-topic-links a > .icon { flex:0 0 11px; width:11px; height:11px; margin-top:7px; transform:rotate(-90deg); }
.sitemap-topic-links a > span { min-width:0; }

/* The reference has five utility destinations, including the current page. */
.sitemap-utility-band { margin-top:44px; padding:30px 28px 32px; background:var(--sage); }
.sitemap-utility-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; }
.sitemap-utility-heading > * { min-width:0; }
.sitemap-utility-heading .eyebrow { margin-bottom:7px; font-size:12px; }
.sitemap-utility-heading h3 { font-family:var(--serif); font-weight:500; font-size:clamp(25px,2.1vw,32px); line-height:1.45; }
.sitemap-utility-heading > p { max-width:410px; color:var(--muted); font-size:14px; line-height:1.85; }
.sitemap-utility-band .sitemap-utilities { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0; margin:29px 0 0; padding:0; border:0; }
.sitemap-utility-band .sitemap-utilities .sitemap-utility-link { display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:11px; min-width:0; padding:0 18px; border-left:1px solid #cad5cc; text-align:center; }
.sitemap-utility-band .sitemap-utilities .sitemap-utility-link:first-child { border-left:0; }
.sitemap-utility-icon { display:block; color:var(--teal); margin-bottom:3px; }
.sitemap-utility-icon > .icon { width:38px; height:38px; }
.sitemap-utility-link strong { font-family:var(--sans); font-weight:500; font-size:18px; line-height:1.55; }
.sitemap-utility-link small { color:var(--muted); font-size:13px; font-weight:400; line-height:1.75; max-width:190px; }
.sitemap-utility-link:hover strong { color:var(--terracotta); }

@media(max-width:1050px) {
  .reference-form .reference-form-intro { padding:30px 24px; }
  .reference-form .form-guidelines { gap:22px; }
  .reference-form .form-guidelines li { grid-template-columns:25px minmax(0,1fr); gap:12px; }
  .reference-form .form-guidelines .icon { width:24px; height:24px; }
  .reference-form .form-fields { padding:30px 25px; }
  .reference-form .form-consent-detail { flex-direction:column; gap:8px; }
  .reference-form-contact { padding:28px; }
  .reference-form-contact .reference-form-intro { padding:6px 25px 6px 0; }
  .reference-form-contact .form-fields { padding:0 0 0 28px; }
  .sitemap-reference-topics .sitemap-topic-copy { padding:20px 18px; }
  .sitemap-reference-topics .sitemap-topic-copy h3 a { grid-template-columns:25px minmax(0,1fr) 22px; gap:9px; }
  .sitemap-topic-icon > .icon { width:24px; height:24px; }
  .sitemap-topic-arrow { width:22px; height:22px; }
  .sitemap-utility-band .sitemap-utilities .sitemap-utility-link { padding-inline:12px; }
  .sitemap-utility-link strong { font-size:16px; }
}
@media(max-width:760px) {
  .reference-form { grid-template-columns:minmax(0,1fr); }
  .reference-form .reference-form-intro { padding:28px; }
  .reference-form .form-intro h3 { margin-bottom:23px; }
  .reference-form .form-guidelines { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
  .reference-form .form-guidelines p { font-size:14px; }
  .reference-form .form-intro .form-intro-note { margin-top:24px; padding-top:20px; }
  .reference-form .form-fields { padding:28px; }
  .reference-form-contact { padding:0; }
  .reference-form-contact .reference-form-intro { border-right:0; border-bottom:1px solid var(--line); }
  .reference-form-contact .form-intro p:not(.eyebrow) { font-size:15px; }
  .reference-form-contact .form-intro p br { display:none; }
  .reference-form .form-intro-image { aspect-ratio:2/1; margin-top:24px; }
  .reference-form .form-consent-detail { padding-left:0; }
  .sitemap-reference-topics { grid-template-columns:minmax(0,1fr); gap:22px; }
  .sitemap-reference-topics .sitemap-topic-card { grid-template-columns:minmax(110px,.45fr) minmax(0,1fr); }
  .sitemap-reference-topics .sitemap-topic-image { min-height:260px; }
  .sitemap-reference-topics .sitemap-topic-copy { padding:25px; }
  .sitemap-reference-topics .sitemap-topic-copy h3 { font-size:24px; }
  .sitemap-utility-band { margin-top:32px; padding:27px 22px; }
  .sitemap-utility-heading { display:block; }
  .sitemap-utility-heading > p { margin-top:14px; }
  .sitemap-utility-band .sitemap-utilities { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 0; }
  .sitemap-utility-band .sitemap-utilities .sitemap-utility-link:nth-child(odd) { border-left:0; }
  .sitemap-utility-link strong { font-size:17px; }
}
@media(max-width:480px) {
  .reference-form .reference-form-intro,.reference-form .form-fields { padding:24px 20px; }
  .reference-form .form-guidelines { grid-template-columns:minmax(0,1fr); gap:18px; }
  .reference-form .form-row { grid-template-columns:minmax(0,1fr); gap:21px; }
  .reference-form .form-consent-panel { padding:15px 13px; }
  .reference-form-contact .form-consent-panel { padding:2px 0; }
  .sitemap-reference-topics .sitemap-topic-card { grid-template-columns:92px minmax(0,1fr); }
  .sitemap-reference-topics .sitemap-topic-copy { padding:20px 16px; }
  .sitemap-reference-topics .sitemap-topic-copy h3 { font-size:21px; }
  .sitemap-reference-topics .sitemap-topic-copy h3 a { grid-template-columns:23px minmax(0,1fr); gap:9px; }
  .sitemap-topic-arrow { display:none; }
  .sitemap-reference-topics .sitemap-topic-description { font-size:13px; }
  .sitemap-topic-links a { font-size:14px; }
  .sitemap-utility-band { padding:25px 16px; }
  .sitemap-utility-band .sitemap-utilities .sitemap-utility-link { padding-inline:10px; }
}
