/* =====================================================================
   SCORE Maine Mentor Resources: block adapters.

   Hand-written. Loads after score.css, which is the static site's design
   system projected unchanged from _source/. Everything here exists because
   the pages are native blocks rather than the static site's markup:

     1. What WordPress's own wrappers and layout rules change.
     2. Link cards: the static site wraps a whole card in one <a>, which no
        block can do, so the title carries the link and stretches over the
        card.
     3. Modifier classes standing in for the static site's inline style
        attributes, which blocks cannot carry without breaking validation.

   Nothing here restyles a component. A rule the static site also needs
   belongs in the snapshot's stylesheet.
   ===================================================================== */

/* ---- 1. WordPress wrappers ----------------------------------------- */

/* The skip link WordPress adds for block themes, in the static site's look. */
.skip-link.screen-reader-text:focus {
  clip: auto; clip-path: none; width: auto; height: auto;
  top: var(--sp-3); left: var(--sp-3);
  background: var(--score-navy); color: #fff;
  padding: var(--sp-2) var(--sp-3); border-radius: var(--radius);
  font-weight: 700; text-decoration: none; z-index: 200;
}

/* The masthead is the SCORE Maine condensed logo, in place of the static hub's SCORE badge and
   "Maine" wordmark, with the hub's name beside it under a thin rule. */
.brand-logo { display: block; height: 52px; width: auto; }
.brand-hub { padding-left: var(--sp-2); border-left: 2px solid var(--border); font-weight: 600; color: var(--score-navy); }

/* On a phone the internal-only band and the five-link menu took about 440px before a page's title:
   the band's padding and type are tightened, and the menu links, which wrapped onto three rows, are
   laid out as a two-row grid. Every link stays visible and keeps a 44px target, since the hub's
   design rules out hidden menus. */
@media (max-width: 600px) {
  .internal-bar { padding-block: var(--sp-1); }
  .internal-note { padding: var(--sp-1) var(--sp-2); font-size: .9375rem; line-height: 1.4; border-left-width: 4px; }
  .header-bar { gap: var(--sp-2); padding-block: var(--sp-2); }
  .brand-logo { height: 40px; }
  .main-nav { margin-left: 0; width: 100%; }
  .main-nav ul { display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; }
  .main-nav li { grid-column: span 2; }
  .main-nav li:nth-child(n+4) { grid-column: span 3; }
  .main-nav a { min-height: 44px; padding: 0 .5rem; justify-content: center; text-align: center; font-size: 1rem; line-height: 1.2; }
}

/* ---- 2. Link cards -------------------------------------------------- */

.door, .tile, .stage { position: relative; }
.door-title a, .tile-title a, .stage-title a {
  color: inherit; text-decoration: none;
}
.door-title a::after, .tile-title a::after, .stage-title a::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit;
}
.door:hover .door-title a, .tile:hover .tile-title a, .stage:hover .stage-title a { text-decoration: underline; }
.door:focus-within { box-shadow: var(--shadow-2); }

/* The static site's card parts were spans; as paragraphs they drop the paragraph margin and measure. */
.door > p, .tile > p, .stage > p { margin: 0; max-width: none; text-wrap: wrap; }
.door-desc { max-width: 40ch !important; }

.door--blue { --door-color: var(--score-blue); }
.door--navy { --door-color: var(--score-navy); }

/* SLATE's lettered rows. The static site's rows are <li>s holding a letter and a body; a list-item
   block cannot hold groups, so each row is a group and takes the row's rules here. */
.letter-list > .letter-row {
  display: grid; grid-template-columns: 3.5rem 1fr; gap: var(--sp-3);
  align-items: start; padding: var(--sp-3) 0; border-top: 1px solid var(--border); margin: 0;
}
.letter-list > .letter-row:first-child { border-top: 0; padding-top: 0; }
.letter-row > p.letter { margin: 0; max-width: none; }

/* A run of buttons in a side panel. The static site puts them loose in the <aside>, where only the
   last one drops its margin; a paragraph holds them here, so the run sets that itself. */
.action-panel .u-btns { margin: 0; max-width: none; }
.action-panel .u-btns > .btn { margin-bottom: var(--sp-2); }
.action-panel .u-btns--last > .btn:last-of-type { margin-bottom: 0; }

/* Pages the static hub never built, drawn in its components. The calendar is an embedded Google
   Calendar at a height that shows several weeks of its agenda; the office map is a picture. */
.calendar-panel { padding: var(--sp-2); margin-top: var(--sp-3); }
.calendar-embed { display: block; width: 100%; height: 640px; border: 0; border-radius: var(--radius); background: var(--surface); }
.office-map { margin: 0; }
.office-map img { display: block; width: 100%; height: auto; border: 1px solid var(--border); border-radius: var(--radius); }

/* A pull quote, which the static site drew with an inline style on a <blockquote>. */
.u-quote { margin: 0 0 var(--sp-3); padding-left: var(--sp-3); border-left: 4px solid var(--score-blue); }

/* ---- 3. Stand-ins for inline styles --------------------------------- */

/* Each class below replaces one inline style attribute the static site set on an element. They
   carry !important because the inline style they replace beat every component rule. */

.hero--tight { padding-block: var(--sp-5); }
.searchbox--narrow { max-width: 760px; }
.hero-eyebrow { max-width: none; }

.u-mt-0 { margin-top: 0 !important; }
.u-mt-075 { margin-top: .75rem !important; }
.u-mt-3 { margin-top: var(--sp-3) !important; }
.u-mt-4 { margin-top: var(--sp-4) !important; }
.u-mt-5 { margin-top: var(--sp-5) !important; }
.u-mt-6 { margin-top: var(--sp-6) !important; }
.u-mb-0 { margin-bottom: 0 !important; }
.u-mb-half { margin-bottom: .5rem !important; }
.u-mb-1rem { margin-bottom: 1rem !important; }
.u-mb-2 { margin-bottom: var(--sp-2) !important; }
.u-mb-5 { margin-bottom: var(--sp-5) !important; }
.u-py-4 { padding-block: var(--sp-4) !important; }
.u-py-5 { padding-block: var(--sp-5) !important; }
.u-py-4-5 { padding-block: var(--sp-4) var(--sp-5) !important; }
.u-page-narrow { padding-block: var(--sp-4) var(--sp-5) !important; max-width: 900px !important; }

.u-muted { color: var(--muted) !important; }
.u-navy { color: var(--score-navy) !important; }
.u-lede { color: var(--muted); font-size: var(--step-1); }
.u-fs-sm { font-size: .9375rem !important; }
.u-fs-base { font-size: 1rem !important; }
.u-fs-lg { font-size: 1.1875rem !important; }
.u-step-1 { font-size: var(--step-1) !important; }
.u-step-2, .u-fs-step-2 { font-size: var(--step-2) !important; }
.u-step-3, .u-fs-step-3 { font-size: var(--step-3) !important; }
.u-measure-62 { max-width: 62ch; }
.u-measure-64 { max-width: 64ch; }
.u-measure-66 { max-width: 66ch; }

.u-aside-title { font-size: var(--step-2) !important; margin-bottom: 1rem !important; }
.u-aside-subtitle { font-size: 1.1875rem !important; color: var(--score-navy) !important; margin-top: 0 !important; }
.u-aside-note { font-size: 1rem; color: var(--muted); }
.u-aside-small { font-size: .9375rem; color: var(--muted); margin: 0 !important; }

/* Copy we wrote that the client has not vetted (.claude/rules/unvetted-copy.md). */
.unvetted { background: #fff3c4; box-shadow: 0 0 0 2px #fff3c4; }

/* The document page's "Others on the same subject": a short list of links rather than cards. */
.related-links { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.related-links li { display: flex; flex-wrap: wrap; gap: .25rem .75rem; align-items: baseline; }
.related-links a { font-weight: 600; }

/* Headings raised a level so the outline does not skip one (the collections page's card titles, the
   document page's stages heading). Each keeps the look of the h3 it replaced. */
.card h2.card-title { margin: 0; font-size: var(--step-1); }
.card h2.card-title a { color: var(--score-navy); text-decoration: none; }
.card h2.card-title a:hover { text-decoration: underline; }
.panel .panel-subhead { font-size: var(--step-1); color: var(--score-navy); margin-top: var(--sp-4); }
.panel > .panel-subhead:first-child { margin-top: 0; }
