/* DS3 reading and tool surfaces. Housing cards and home have their own owning
   styles. Never set renderer --paper, --ink, materials or canvas backgrounds. */
body[data-gw-ds3][data-gw-ds3-family]:not([data-gw-ds3-family="immersive"]) {
  background: var(--gw-paper);
  color: var(--gw-ink);
  font-family: var(--gw-font, Figtree, system-ui, sans-serif);
  -webkit-font-smoothing: antialiased;
}
body[data-gw-ds3][data-gw-ds3-family] [hidden] { display: none !important; }
body[data-gw-ds3][data-gw-ds3-family] :is(button, input, select, textarea) { font-family: inherit; }
body[data-gw-ds3][data-gw-ds3-family] :is(a, button, input, select, textarea, summary):focus-visible {
  outline: 2px solid var(--gw-action); outline-offset: 4px;
}

/* Clear chapter hierarchy and the guides' quieter section navigation. */
.gw-workspace[data-gw-ds3-family] { font-size: 16px; line-height: 1.6; }
.gw-workspace[data-gw-ds3-family] .gw-section-bar { border-color: var(--gw-rule); }
.gw-workspace[data-gw-ds3-family] .gw-section-bar a { font-weight: 600; min-height: 52px; }
.gw-workspace[data-gw-ds3-family] .gw-section-bar a[aria-current] { box-shadow: inset 0 -2px var(--gw-ink); }
body[data-gw-ds3][data-gw-ds3-family="courses"] :is(h1, h2, h3),
body[data-gw-ds3][data-gw-ds3-family="resources"] :is(h1, h2, h3),
body[data-gw-ds3][data-gw-ds3-family="research"] :is(h1, h2, h3),
body[data-gw-ds3][data-gw-ds3-family="tools"] :is(h1, h2, h3) {
  font-family: inherit; font-weight: 750; letter-spacing: -.028em; line-height: 1.18;
}
body[data-gw-ds3][data-gw-ds3-family="courses"] :is(.course-hero, .subject-hero) h1,
body[data-gw-ds3][data-gw-ds3-family="resources"] .query-hero h1,
body[data-gw-ds3][data-gw-ds3-family="research"] .query-hero h1,
body[data-gw-ds3][data-gw-ds3-family="tools"] .calc-hero h1 { font-size: clamp(32px, 3.2vw, 48px); font-weight: 750; letter-spacing: -.035em; }

/* Course lookup keeps its real query, loading status, term controls and charts. */
body[data-gw-ds3][data-gw-ds3-family="courses"] .course-hero { padding-block: 48px 28px; }
body[data-gw-ds3][data-gw-ds3-family="courses"] .course-dek { font-size: 18px; line-height: 1.6; margin-top: 18px; }
body[data-gw-ds3][data-gw-ds3-family="courses"] .course-search { margin-block: 8px 32px; max-width: 820px; }
body[data-gw-ds3][data-gw-ds3-family="courses"] .course-search > div {
  min-height: 64px; border: 1px solid var(--gw-rule-strong); border-radius: 999px; padding: 5px;
  background: var(--gw-paper); box-shadow: 0 3px 12px color-mix(in srgb, var(--gw-ink) 8%, transparent); align-items: center;
}
body[data-gw-ds3][data-gw-ds3-family="courses"] .course-search input {
  border: 0; background: transparent; border-radius: 999px; padding-inline: 18px;
  min-height: 50px; font-size: 16px;
}
body[data-gw-ds3][data-gw-ds3-family="courses"] .course-search button {
  border-radius: 999px; min-height: 50px; padding-inline: 24px; font-size: 15px; font-weight: 700;
}
body[data-gw-ds3][data-gw-ds3-family="courses"] :is(.course-search, .subject-controls, .course-list-controls) label { font-weight: 600; }
body[data-gw-ds3][data-gw-ds3-family="courses"] .subject-alphabet a { border-radius: 8px; min-height: 44px; }
body[data-gw-ds3][data-gw-ds3-family="courses"] .department-grid { gap: 0 32px; }
body[data-gw-ds3][data-gw-ds3-family="courses"] .department-grid strong { font-size: 20px; font-weight: 700; }
body[data-gw-ds3][data-gw-ds3-family="courses"] .department-grid a { padding-block: 22px; }
body[data-gw-ds3][data-gw-ds3-family="courses"] .answer-stats { border: 0; gap: 16px; }
body[data-gw-ds3][data-gw-ds3-family="courses"] .answer-stats > div { padding: 20px; border: 1px solid var(--gw-rule-strong); border-radius: 12px; }
body[data-gw-ds3][data-gw-ds3-family="courses"] .answer-stats dd { font-weight: 750; font-size: 36px; }
body[data-gw-ds3][data-gw-ds3-family="courses"] :is(.distribution-panel, .table-scroll) { border-radius: 12px; border-color: var(--gw-rule-strong); }
body[data-gw-ds3][data-gw-ds3-family="courses"] .distribution-panel { padding: 28px; }
body[data-gw-ds3][data-gw-ds3-family="courses"] :is(.grade-share, .grade-letter) { font-size: 14px; }
body[data-gw-ds3][data-gw-ds3-family="courses"] :is(.course-chapters, .course-section) { border-color: var(--gw-rule); }
body[data-gw-ds3][data-gw-ds3-family="courses"] .course-chapters a { font-weight: 600; }

/* Guides and research keep their source tables, figures and reading order. */
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-hero { padding-block: 48px 32px; }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-hero h1 { max-width: 24ch; }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-answer { font-size: 18px; line-height: 1.65; max-width: 64ch; }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-layout { gap: 48px; grid-template-columns: 200px minmax(0, 1fr); }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-reading { max-width: 680px; font-size: 17px; line-height: 1.8; min-width: 0; }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-reading h2 { font-size: 28px; font-weight: 700; letter-spacing: -.025em; }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-reading h3 { font-size: 22px; font-weight: 700; }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-reading section { border-color: var(--gw-rule); padding-block: 36px; }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) :is(.query-byline, .query-source-note, .query-note, .query-sources, .query-footer) { font-size: 14px; }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-rail { font-size: 14px; }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-rail li a { min-height: 44px; }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) :is(.query-tool, .query-table-scroll) { border-radius: 12px; border-color: var(--gw-rule-strong); background: var(--gw-paper); }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-tool { padding: 24px; }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-tool :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea) { font-size: 16px; min-height: 48px; border-radius: 8px; }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-tool button { min-height: 48px; border-radius: 8px; font-weight: 650; }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) :is([data-tool-result], .gw-answer-date) { border-radius: 12px; background: var(--gw-card); }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .ut-guide-index li a { font-size: 21px; font-weight: 650; }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .ut-guide-index li { padding-block: 24px; border-color: var(--gw-rule); }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .gw-featured-tools { gap: 20px; }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .gw-featured-tools > a { padding: 24px; border: 1px solid var(--gw-rule-strong); border-radius: 12px; }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .gw-featured-tools strong { font-size: 22px; font-weight: 700; }
body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .ut-hub-filter input { border: 1px solid var(--gw-rule-strong); border-radius: 999px; min-height: 52px; padding-inline: 18px; font-size: 16px; }

/* The authored campus map owns its stage dimensions and geographic palette. */
body.cm-page[data-gw-ds3] main.cm-main { max-width: none; width: auto; margin: 0; padding: 0; }
body.cm-page[data-gw-ds3] .cm-head h1 { font-family: inherit; font-weight: 750; letter-spacing: -.03em; }
body.cm-page[data-gw-ds3] .cm-search label { font-weight: 650; }
body.cm-page[data-gw-ds3] .cm-search input { border-radius: 999px; min-height: 50px; font-size: 16px; padding-inline: 18px; }
body.cm-page[data-gw-ds3] .cm-controls { border-radius: 12px; box-shadow: 0 3px 12px color-mix(in srgb, var(--gw-ink) 8%, transparent); }
body.cm-page[data-gw-ds3] .cm-card h2 { font-weight: 700; font-size: 26px; }
body.cm-page[data-gw-ds3] .cm-card h3 { font-weight: 650; }
body.cm-page[data-gw-ds3] .cm-row b { font-weight: 700; }

/* Calculators retain every input and the same arithmetic. */
body[data-gw-ds3][data-gw-ds3-family="tools"] .calc-hero { padding-block: 48px 32px; border-color: var(--gw-rule); }
body[data-gw-ds3][data-gw-ds3-family="tools"] .calc-workspace { gap: 48px; padding-top: 32px; }
body[data-gw-ds3][data-gw-ds3-family="tools"] .calc-result-panel { border: 1px solid var(--gw-rule-strong); border-radius: 12px; padding: 28px; background: var(--gw-paper); box-shadow: 0 6px 20px color-mix(in srgb, var(--gw-ink) 7%, transparent); }
body[data-gw-ds3][data-gw-ds3-family="tools"] :is(.calc-panel-heading h2, .calc-result h3) { font-weight: 700; }
body[data-gw-ds3][data-gw-ds3-family="tools"] .calc-result-main { font-weight: 750; }
body[data-gw-ds3][data-gw-ds3-family="tools"] .calc-field :is(input, select, textarea) { border: 1px solid var(--gw-input-line); border-radius: 8px; font-size: 16px; min-height: 50px; background: var(--gw-paper); }
body[data-gw-ds3][data-gw-ds3-family="tools"] .calc-primary { border-radius: 8px; background: var(--gw-action); color: var(--gw-paper); font-weight: 700; min-height: 50px; }
body[data-gw-ds3][data-gw-ds3-family="tools"] :is(.calc-reset, .calc-add, .calc-result-actions button) { min-height: 44px; font-size: 14px; }
body[data-gw-ds3][data-gw-ds3-family="tools"] .calc-result-empty { min-height: 180px; }

/* The original miniature remains the subject, with a white reading frame. */
body[data-gw-ds3][data-gw-ds3-family="figures"] { font-size: 16px; line-height: 1.6; }
body[data-gw-ds3][data-gw-ds3-family="figures"] :is(.figure-opening, .housing-model-opening) { padding-top: 48px; }
body[data-gw-ds3][data-gw-ds3-family="figures"] :is(.figure-opening h1, .housing-model-opening h1) { font-family: inherit; font-weight: 750; font-size: clamp(32px, 3.4vw, 48px); letter-spacing: -.035em; }
body[data-gw-ds3][data-gw-ds3-family="figures"] :is(.figure-description h2, .housing-model-detail h2) { font-weight: 700; font-size: 28px; }
body[data-gw-ds3][data-gw-ds3-family="figures"] :is(.figure-workspace, .housing-model-workspace) { border-color: var(--gw-rule); }
body[data-gw-ds3][data-gw-ds3-family="figures"] :is(.figure-controls button, .figure-enter, .housing-model-controls button) { min-height: 44px; border-radius: 8px; font-family: inherit; font-weight: 600; }
body[data-gw-ds3][data-gw-ds3-family="figures"] .figure-choices a { border-color: var(--gw-rule); min-height: 56px; }
body[data-gw-ds3][data-gw-ds3-family="figures"] .figure-description > p { font-size: 16px; line-height: 1.75; }
body[data-gw-ds3][data-gw-ds3-family="figures"] :is(.figure-sources, .figure-tower-link, .figure-ending) { border-color: var(--gw-rule); }

/* Search, privacy and recovery pages share the same readable shell. */
body[data-gw-ds3][data-gw-ds3-family="utility"] { margin: 0; font-size: 16px; line-height: 1.6; }
body[data-gw-ds3][data-gw-ds3-family="utility"] :is(.nf-main, .search-main, .privacy-main, .about-main) { width: min(100% - 80px, 1120px); margin-inline: auto; padding-block: 56px; }
body[data-gw-ds3][data-gw-ds3-family="utility"] :is(.nf-main, .search-main, .privacy-main, .about-main) h1 { font-family: inherit; font-size: clamp(32px, 3.2vw, 48px); font-weight: 750; letter-spacing: -.035em; line-height: 1.15; }
body[data-gw-ds3][data-gw-ds3-family="utility"] .nf-rows a { border-color: var(--gw-rule); min-height: 64px; }
body[data-gw-ds3][data-gw-ds3-family="utility"] .nf-row-title { font-weight: 650; }
body[data-gw-ds3][data-gw-ds3-family="utility"] .nf-lead { font-size: 18px; max-width: 60ch; }

@media (max-width: 800px) {
  body[data-gw-ds3][data-gw-ds3-family="courses"] .course-hero,
  body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-hero,
  body[data-gw-ds3][data-gw-ds3-family="tools"] .calc-hero { padding-block: 32px 24px; }
  body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-layout { display: block; }
  body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-reading { max-width: none; font-size: 16px; }
  body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-rail { display: none; }
  body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-reading h2 { font-size: 26px; }
  body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-tool { padding: 20px; }
  body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .gw-featured-tools { grid-template-columns: 1fr; gap: 12px; }
  body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .gw-featured-tools > a { padding: 20px; }
  body[data-gw-ds3][data-gw-ds3-family="tools"] .calc-workspace { gap: 28px; }
  body[data-gw-ds3][data-gw-ds3-family="tools"] .calc-result-panel { padding: 22px; }
}
@media (max-width: 560px) {
  .gw-workspace[data-gw-ds3-family] .gw-section-bar { gap: 16px; padding-inline: 20px; }
  .gw-workspace[data-gw-ds3-family] .gw-section-bar nav { gap: 24px; }
  body[data-gw-ds3][data-gw-ds3-family="courses"] .course-search > div { gap: 4px; }
  body[data-gw-ds3][data-gw-ds3-family="courses"] .course-search input { padding-inline: 12px; }
  body[data-gw-ds3][data-gw-ds3-family="courses"] .course-search button { padding-inline: 16px; }
  body[data-gw-ds3][data-gw-ds3-family="courses"] .answer-stats { gap: 10px; }
  body[data-gw-ds3][data-gw-ds3-family="courses"] .answer-stats > div { padding: 16px 12px; }
  body[data-gw-ds3][data-gw-ds3-family="courses"] .answer-stats dd { font-size: 28px; }
  body[data-gw-ds3][data-gw-ds3-family="courses"] .distribution-panel { padding: 20px 16px; }
  body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-answer { font-size: 17px; }
  body[data-gw-ds3]:is([data-gw-ds3-family="resources"], [data-gw-ds3-family="research"]) .query-tool-fields { grid-template-columns: 1fr; }
  body[data-gw-ds3][data-gw-ds3-family="tools"] .calc-workspace { grid-template-columns: 1fr; }
  body[data-gw-ds3][data-gw-ds3-family="tools"] .calc-result-panel { position: static; }
  body[data-gw-ds3][data-gw-ds3-family="figures"] :is(.figure-opening, .housing-model-opening) { padding-top: 30px; }
  body[data-gw-ds3][data-gw-ds3-family="utility"] :is(.nf-main, .search-main, .privacy-main, .about-main) { width: calc(100% - 40px); padding-block: 32px; }
}
