/* HyLo Map page. Uses the established Anton / Archivo / Space Mono system. */
.map-page .reveal { opacity:1; transform:none; }
.map-page :is(a,summary,iframe):focus-visible { outline:3px solid var(--magenta); outline-offset:5px; }
.map-skip { position:fixed; top:0; left:1rem; padding:.75rem 1rem; background:var(--gold); color:var(--ink); z-index:200; transform:translateY(-150%); }
.map-skip:focus { transform:none; }
.map-intro { padding-top:clamp(8rem,13vw,11rem); padding-bottom:clamp(3rem,6vw,5rem); }
.map-intro__grid { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(2rem,6vw,6rem); align-items:end; }
.map-intro h1 { font-size:clamp(4rem,8.6vw,7.6rem); }
.map-intro__copy>p+p { margin-top:1.25rem; max-width:48ch; }
.map-intro .btn-row { margin-top:1.75rem; align-items:center; }
.map-intro__link { font-family:var(--font-mono); font-size:.8rem; text-underline-offset:5px; }
.map-explorer { padding:0; scroll-margin-top:6rem; }
.map-explorer__bar { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1.25rem; padding:2rem var(--pad-x) 1rem; }
.map-explorer__bar .eyebrow { margin-bottom:.35rem; font-size:.65rem; }
.map-explorer h2 { font-family:var(--font-display); font-weight:400; font-size:clamp(1.7rem,3vw,2.5rem); text-transform:uppercase; line-height:1.15; }
.map-explorer__hint { padding:0 var(--pad-x); max-width:95ch; font-size:.92rem; color:rgba(250,250,247,.85); }
.map-explorer__skip { display:inline-block; margin:.65rem var(--pad-x) 1.25rem; font-size:.82rem; text-underline-offset:4px; }
.map-explorer__frame { margin:0 1rem; border:1px solid rgba(250,250,247,.28); background:var(--paper); }
.map-explorer iframe { display:block; width:100%; height:76vh; height:76svh; min-height:600px; max-height:960px; border:0; }
.map-explorer__fallback { display:flex; justify-content:space-between; gap:1.25rem; flex-wrap:wrap; padding:1.25rem var(--pad-x) 1.75rem; font-size:.84rem; }
.map-explorer__fallback a { text-underline-offset:4px; }
.map-guide { scroll-margin-top:5rem; }
.map-guide__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2.5rem; margin-top:3rem; }
.map-guide__grid article { border-top:2px solid var(--ink); padding-top:1.25rem; }
.map-guide__number { display:block; color:#006497; font:700 .72rem var(--font-mono); letter-spacing:.1em; }
.map-guide h3 { font-family:var(--font-display); font-size:1.8rem; font-weight:400; text-transform:uppercase; line-height:1.15; margin:1.25rem 0 1rem; }
.map-guide p { font-size:1rem; }
.map-guide strong { font-size:.88em; }
.map-purpose__grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,6rem); }
.map-purpose p+p,.map-contribute p+p { margin-top:1.25rem; }
.map-purpose .btn-row,.map-contribute .btn-row { margin-top:2rem; }
.map-purpose h2,.map-contribute h2 { font-size:clamp(2.6rem,4.5vw,4rem); }
.map-purpose .btn--ghost { max-width:100%; }
.map-lineage { border-top:1px solid rgba(11,14,34,.2); padding-top:2rem; margin-top:3rem; max-width:70ch; font-size:.9rem; }
@media(max-width:900px) {
  .map-intro__grid,.map-purpose__grid { grid-template-columns:1fr; gap:2rem; }
  .map-intro h1 { font-size:clamp(4rem,13vw,7rem); }
  .map-intro__copy .lede { max-width:44ch; }
  .map-guide__grid { gap:1.5rem; }
}
@media(max-width:640px) {
  .map-intro { padding-top:7.5rem; padding-bottom:2.5rem; }
  .map-intro .eyebrow { letter-spacing:.15em; font-size:.66rem; }
  .map-explorer__bar { align-items:flex-start; }
  .map-explorer__bar .btn { width:100%; justify-content:center; }
  .map-explorer__frame { margin:0; border-left:0; border-right:0; }
  .map-explorer iframe { min-height:560px; height:78svh; }
  .map-explorer__fallback { flex-direction:column; }
  .map-guide__grid { grid-template-columns:1fr; gap:2rem; }
  .map-guide__grid article { padding-top:1rem; }
  .map-guide h3 { margin-top:.8rem; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* Contextual map landing page */
.map-landing #about-the-map { scroll-margin-top:5rem; }
.map-intro__context { display:inline-block; margin-top:1.25rem; }
.map-context .map-purpose__grid p+p { margin-top:1.2rem; }
.map-context .map-purpose__grid h2 { font-size:clamp(2.6rem,4.5vw,4rem); }
.map-pathways { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; margin-top:3rem; }
.map-pathway { display:flex; flex-direction:column; text-decoration:none; border-top:3px solid var(--cerulean); background:var(--paper-dim); padding:1.75rem; }
.map-pathway h3 { font:400 clamp(1.65rem,2.5vw,2rem)/1.1 var(--font-display); text-transform:uppercase; margin:1.25rem 0 1rem; }
.map-pathway p { font-size:1rem; margin-bottom:1.5rem; }
.map-pathway__action { margin-top:auto; font:700 .72rem/1.6 var(--font-mono); letter-spacing:.06em; text-transform:uppercase; text-decoration:underline; text-underline-offset:5px; }
.map-pathway:hover .map-pathway__action { color:#006497; }
.map-corridor { padding-top:0; }
.map-corridor .corridor-partner { border-top:1px solid rgba(11,14,34,.2); padding-top:3rem; }
.map-resource-callout { margin:1.5rem 0; padding:1.25rem 1.5rem; border-left:4px solid var(--cerulean); background:var(--paper-dim); }
.map-resource-callout h3 { font:400 1.5rem/1.15 var(--font-display); text-transform:uppercase; margin-bottom:.65rem; }
.map-resource-callout p { font-size:1rem; }
.map-next p+p { margin-top:1.25rem; }
.map-next h2 { font-size:clamp(2.6rem,4.5vw,4rem); }
.map-next__links { display:grid; margin-top:2rem; }
.map-next__links a { padding:1rem 0; display:flex; justify-content:space-between; gap:1.5rem; border-top:1px solid rgba(255,255,255,.3); text-decoration:none; }
.map-next__links a:hover { color:var(--gold); }
@media(max-width:700px) { .map-pathways { grid-template-columns:1fr; } .map-pathway { padding:1.5rem; } }
/* Map scroll shield (map.html + hylo-inno-map.html): page scrolls past the iframe until the user opts in. */
.map-explorer__frame { position: relative; }
.map-shield {
  position: absolute; inset: 0; z-index: 3; width: 100%;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .6rem;
  padding: 1rem; border: 0; cursor: pointer;
  background: rgba(11,14,34,.14);
  transition: background .2s ease;
}
.map-shield:hover, .map-shield:focus-visible { background: rgba(11,14,34,.32); }
.map-shield__pill {
  font: 700 .78rem/1 var(--font-mono); letter-spacing: .16em; text-transform: uppercase;
  background: var(--magenta); color: var(--white); padding: 1rem 1.6rem;
  box-shadow: 0 6px 24px rgba(11,14,34,.35);
}
.map-shield:hover .map-shield__pill { background: var(--gold); color: var(--ink); }
.map-shield__sub { font: 400 .72rem/1.4 var(--font-mono); letter-spacing: .06em; color: var(--white); background: rgba(11,14,34,.78); padding: .35rem .7rem; }
.map-shield__touch { display: none; }
@media (hover: none) { .map-shield__desk { display: none; } .map-shield__touch { display: inline; } }
.map-explorer__frame:not(.map-shielded) .map-shield { display: none; }
.map-explorer__frame { display: flex; flex-direction: column; }
.map-explorer__frame iframe { order: 1; }
.map-unlock {
  order: 2; display: block; width: 100%;
  font: 700 .72rem/1 var(--font-mono); letter-spacing: .16em; text-transform: uppercase;
  background: var(--magenta); color: var(--white); border: 0; padding: 1rem; cursor: pointer;
}
.map-unlock:hover, .map-unlock:focus-visible { background: var(--gold); color: var(--ink); border-color: var(--gold); }
.map-unlock[hidden] { display: none; }

/* Map partners strip (map.html + hylo-inno-map.html). Regional Connector Partner is
   its own, larger tier above Strategic Partners. Logos link to each partner's site. */
.map-partners { padding-top: clamp(3.5rem, 8vh, 5rem); padding-bottom: clamp(3.5rem, 8vh, 5rem); }
.map-partners__lead { border: 2px solid var(--gold); padding: clamp(1.5rem, 3.5vw, 2.5rem); }
.map-partners__lead-row { display: flex; align-items: center; gap: clamp(1.5rem, 4vw, 3rem); margin-top: 1.4rem; }
.map-partners__name { font: 400 clamp(1.8rem, 3.6vw, 2.8rem)/1.05 var(--font-display); text-transform: uppercase; margin-bottom: .7rem; }
.map-partners__lead-row p { max-width: 56ch; color: rgba(250,250,247,.86); }
.map-partners__link { display: inline-block; margin-top: 1rem; font: 700 .74rem/1.6 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--gold); text-underline-offset: 5px; }
.map-partners__tier { display: block; margin-top: clamp(2.5rem, 5vw, 3.5rem); }
.map-partners .partner-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2rem 3rem; margin-top: 2rem; }
.map-partners .partner-row a, .map-partners .p-fhtc { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; transition: transform .2s; }
.map-partners .partner-row a:hover, .map-partners .p-fhtc:hover { transform: translateY(-2px); }
/* Corridor artwork is green/black, so it sits on a white tile like elsewhere on the site */
.p-fhtc { flex: none; background: var(--white); padding: 10px; }
.p-fhtc img { display: block; height: 150px; width: auto; }
.p-tbtw-icon { height: 72px; width: auto; }
.p-tbtw-word { height: 40px; width: auto; mix-blend-mode: screen; }
.p-southbox { height: 58px; width: auto; filter: invert(1); mix-blend-mode: screen; }
.p-ieee { height: 66px; width: auto; }
@media (max-width: 768px) {
  .map-partners__lead-row { flex-direction: column; align-items: flex-start; }
  .p-fhtc img { height: 120px; }
  .map-partners .partner-row { flex-direction: column; align-items: flex-start; }
  .p-tbtw-icon { height: 56px; } .p-tbtw-word { height: 32px; } .p-southbox { height: 46px; } .p-ieee { height: 52px; }
}
